@shenghuabi/workflow 1.0.7 → 1.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/index.js +2 -2
- package/index.js.map +2 -2
- package/index.mjs +2 -2
- package/index.mjs.map +2 -2
- package/package.json +2 -2
- package/share/index.js +2 -2
- package/share/index.js.map +2 -2
- package/share/index.mjs +2 -2
- package/share/index.mjs.map +2 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shenghuabi/workflow",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.8",
|
|
4
4
|
"description": "模板",
|
|
5
5
|
"author": "wszgrcy",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"@cyia/external-call": "^1.5.2",
|
|
12
12
|
"@cyia/util": "^1.5.2",
|
|
13
13
|
"@cyia/vfs2": "^1.5.2",
|
|
14
|
-
"@shenghuabi/openai": "1.0.
|
|
14
|
+
"@shenghuabi/openai": "1.0.8",
|
|
15
15
|
"static-injector": "^6.1.2",
|
|
16
16
|
"@piying/view-angular-core": "^2.9.3",
|
|
17
17
|
"@piying/valibot-visit": "^1.3.11"
|
package/share/index.js
CHANGED
|
@@ -178,7 +178,7 @@ var INLINE_Template = v3.pipe(
|
|
|
178
178
|
v3.optional(v3.string(), "{{NODE.description}}"),
|
|
179
179
|
v3.title("模板"),
|
|
180
180
|
v3.description("允许使用变量:{{NODE.xxx}}(参考节点帮助)"),
|
|
181
|
-
import_view_angular_core4.actions.wrappers.set(["tooltip", "
|
|
181
|
+
import_view_angular_core4.actions.wrappers.set(["tooltip", "label"]),
|
|
182
182
|
import_view_angular_core4.actions.class.top("flex-1"),
|
|
183
183
|
(0, import_view_angular_core4.disableWhen)({
|
|
184
184
|
listen: (fn) => fn({
|
|
@@ -197,7 +197,7 @@ var INLINE_Template2 = v3.pipe(
|
|
|
197
197
|
v3.optional(v3.string()),
|
|
198
198
|
v3.title("模板"),
|
|
199
199
|
v3.description("允许使用变量:{{ENTRY.xxx}}(参考节点帮助)"),
|
|
200
|
-
import_view_angular_core4.actions.wrappers.set(["tooltip", "
|
|
200
|
+
import_view_angular_core4.actions.wrappers.set(["tooltip", "label"]),
|
|
201
201
|
import_view_angular_core4.actions.class.top("flex-1"),
|
|
202
202
|
(0, import_view_angular_core4.disableWhen)({
|
|
203
203
|
listen: (fn) => fn({
|
package/share/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../packages/workflow/share/index.ts", "../../../packages/workflow/share/const.ts", "../../../packages/workflow/share/handle-node.ts", "../../../packages/workflow/share/util.ts", "../../../packages/workflow/share/workflow.const.ts", "../../../packages/workflow/share/common/examples.define.ts", "../../../packages/workflow/share/util/layout.ts", "../../../packages/workflow/share/common/handle.define.ts", "../../../packages/workflow/share/common/inline-template.define.ts", "../../../packages/workflow/share/common/llm.define.ts", "../../../packages/workflow/share/common/const.ts", "../../../packages/workflow/share/type2.ts", "../../../packages/workflow/share/workflow.emit.ts"],
|
|
4
|
-
"sourcesContent": ["export * from './type';\nexport * from './const';\nexport * from './handle-node';\nexport * from './util';\nexport * from './workflow.const';\nexport * from './common';\nexport * from './type2';\nexport * from './workflow.emit';\n", "export const DEFAULT_INPUT_KEY = `[INPUT]`;\nexport const HelpObj = {\n templateVarLine: `- 变量定义格式: {{xx}},{{xx.yy}}`,\n pathTodoLine: `- **TODO** 接收传入路径而不是指定`,\n};\n", "import { ChatInput2, ChatInputType } from './type';\nimport { WorkflowNodeType } from './workflow.const';\nimport type { Node, ReactFlowJsonObject } from '@xyflow/react';\n\nexport interface HandleNode {\n id: string;\n /** 真正赋值使用 */\n value: string;\n /** 应该应用于tooltip显示,不应该被其他显示 */\n label: string;\n type?: 'connect';\n\n inputType?: ChatInputType;\n /** 是否可选,用于某些不用传入的参数 */\n optional?: boolean;\n}\n/** 将handle节点全部拍平 */\nexport function flatFilterHandleList(list: HandleNode[][] | undefined) {\n if (!list) {\n return [];\n }\n return list.flat().filter(Boolean) as HandleNode[];\n}\n/** 继承 handleNode */\nexport type ResolvedInputNode = Omit<HandleNode, 'label'> & {\n nodeId?: string;\n outputName?: string;\n};\nexport interface WorkflowNodeData {\n value?: any;\n\n handle?: {\n input: HandleNode[][];\n output: HandleNode[][];\n };\n config?: Record<string, any>;\n title?: string;\n outputName?: string;\n /** 在工作流中禁止使用 @internal */\n excludeUsage?: boolean;\n [name: string]: any;\n}\n/** 工作流定义 */\nexport interface WorkflowData {\n flow: ReactFlowJsonObject<Node<WorkflowNodeData>>;\n version: number;\n}\nexport type RawWorkflowNode = Omit<Node<WorkflowNodeData>, 'position'>;\nexport interface ParsedNode {\n id: string;\n type: WorkflowNodeType;\n // todo 因为加上Omit会导致类型不识别\n data: WorkflowNodeData;\n /** 所有输入是都是需要节点连接的,如果没有节点连接会酌情处理 handleinput过来的 */\n inputs: ResolvedInputNode[];\n /** 可能是多出口 */\n outputs: HandleNode[];\n subFlowList?: { key: any; flow: ResolvedWorkflow; startId?: string }[];\n}\nexport interface ResolvedWorkflow {\n nodes: Record<string, ParsedNode>;\n /** 出口 */\n end: string;\n inputList: ChatInput2[];\n}\n", "import { v5 } from 'uuid';\nconst UUID_NS = '404cfae8-94e7-41a6-acec-1037dd1fdaad';\nexport function generateHandle(value: string, label = value) {\n return { id: v5(value, UUID_NS), label: label, value: value };\n}\n", "export const enum WorkflowNodeType {\n 'iteration' = 'iteration',\n 'iterationStart' = 'iteration-start',\n 'inputParams' = 'input-params',\n 'serialize' = 'serialize',\n parameters = 'parameters',\n inlineInputItem = 'inlineInputItem',\n}\n", "import {\n actions,\n condition,\n renderConfig,\n} from '@piying/view-angular-core';\nimport * as v from 'valibot';\nimport { asColumn } from '../util/layout';\n\nexport const EXAMPLES_DEFINE = v.pipe(\n v.optional(\n v.array(\n v.pipe(\n v.object({\n input: v.pipe(\n v.object({\n format: v.pipe(\n v.optional(v.boolean(), false),\n v.description(\n '选中后会尝试使用yaml解析为对象,再序列化为对应的响应类型',\n ),\n actions.wrappers.set(['tooltip']),\n ),\n value: v.pipe(v.string(), v.title('问题'), actions.class.top('flex-1')),\n }),\n // todo 待修复\n actions.class.top('flex gap-2 items-center'),\n ),\n\n output: v.pipe(\n v.object({\n format: v.pipe(\n v.optional(v.boolean(), false),\n v.description('是否需要格式化'),\n actions.wrappers.set(['tooltip']),\n ),\n value: v.pipe(v.string(), v.title('回答'), actions.class.top('flex-1')),\n }),\n actions.class.top('flex gap-2 items-center'),\n ),\n }),\n asColumn(),\n ),\n ),\n [],\n ),\n v.title('用例'),\n v.description('回答问题之前,会参考定义的用例格式进行回复,用于规范回答'),\n condition({\n environments: ['display'],\n actions: [\n renderConfig({\n hidden: true,\n }),\n ],\n }),\n);\n", "import { actions } from '@piying/view-angular-core';\n\nexport function asRow<TInput>(count?: number) {\n return actions.class.component<TInput>(\n typeof count === 'number'\n ? `grid gap-2 grid-cols-${count}`\n : 'flex gap-2 *:flex-1 items-center',\n );\n}\nexport function asColumn<TInput>() {\n return actions.class.component<TInput>('grid gap-2');\n}\n", "import * as v from 'valibot';\nimport { renderConfig, setComponent } from '@piying/view-angular-core';\nimport { condition } from '@piying/valibot-visit';\nconst HiddenAction = condition<any>({\n environments: ['display', 'default'],\n actions: [setComponent(''), renderConfig({ hidden: true })],\n});\nconst AnyHiddenList = v.pipe(\n v.array(v.pipe(v.optional(v.any()), HiddenAction)),\n setComponent(''),\n renderConfig({ hidden: true }),\n);\nexport const HandleDataDefine = v.pipe(\n v.optional(\n v.object({\n output: AnyHiddenList,\n input: AnyHiddenList,\n }),\n ),\n HiddenAction,\n);\n", "import {\n actions,\n disableWhen,\n} from '@piying/view-angular-core';\nimport { map } from 'rxjs';\nimport * as v from 'valibot';\n\nexport const INLINE_Template = v.pipe(\n v.object({\n enable: v.optional(v.boolean(), true),\n // 经用条件\n value: v.pipe(\n v.optional(v.string(), '{{NODE.description}}'),\n v.title('模板'),\n v.description('允许使用变量:{{NODE.xxx}}(参考节点帮助)'),\n actions.wrappers.set(['tooltip', 'form-field']),\n actions.class.top('flex-1'),\n\n disableWhen({\n listen: (fn) =>\n fn({\n list: [['..', 'enable']],\n }).pipe(map(({ list }) => !list[0])),\n }),\n ),\n }),\n actions.class.component('flex gap-2'),\n);\nexport const INLINE_Template2 = v.pipe(\n v.object({\n enable: v.optional(v.boolean(), false),\n // 经用条件\n value: v.pipe(\n v.optional(v.string()),\n v.title('模板'),\n v.description('允许使用变量:{{ENTRY.xxx}}(参考节点帮助)'),\n actions.wrappers.set(['tooltip', 'form-field']),\n\n actions.class.top('flex-1'),\n\n disableWhen({\n listen: (fn) =>\n fn({\n list: [['..', 'enable']],\n }).pipe(map(({ list }) => !list[0])),\n }),\n ),\n }),\n actions.class.component('flex gap-2 items-center'),\n);\n", "import {\n asVirtualGroup,\n actions,\n setComponent,\n} from '@piying/view-angular-core';\nimport { condition } from '@piying/valibot-visit';\nimport * as v from 'valibot';\nimport { asColumn } from '../util/layout';\nexport function llmModelConfig(item?: { label: string }) {\n return v.pipe(\n v.intersect([\n v.pipe(\n v.intersect([\n v.pipe(\n v.object({\n name: v.pipe(\n v.optional(v.string()),\n v.title('预定义模型配置'),\n setComponent('select'),\n actions.inputs.patchAsync({\n options: (field) => field.context!.getModelList(),\n }),\n ),\n model: v.pipe(v.optional(v.string()), v.title('模型')),\n // todo 配置变化configuration层被去掉.这里应该更详细支持更多参数\n\n baseURL: v.pipe(v.optional(v.string()), v.title('地址')),\n }),\n asColumn(),\n ),\n ]),\n v.title(item?.label ?? '对话模型'),\n condition({\n environments: ['display', 'config'],\n actions: [asVirtualGroup()],\n }),\n ),\n ]),\n condition({\n environments: ['display', 'config'],\n actions: [asVirtualGroup()],\n }),\n setComponent('accordion'),\n );\n}\n\nexport type ModelInputConfig = v.InferOutput<ReturnType<typeof llmModelConfig>>;\n", "export const DEFAULT_CHAT_SCHEMA_KEY = `[JsonSchema]`;\nexport const RUNNER_ORIGIN_OUTPUT_KEY = `[Origin]`;\n", "import { v4 } from 'uuid';\nimport type { ChatMessageListOutputType } from '@shenghuabi/openai';\nimport type { ChatModelOptions } from '@shenghuabi/openai';\nimport * as v from 'valibot';\nimport { ChatMetadata } from './type';\nexport type WorkflowRunnerInputs = Map<\n string | symbol,\n { value: any; extra?: any }\n>;\nexport type WorkflowRunnerEnvironmentParams = Record<string, any>;\nexport type WorkflowRunnerInputsWithContext = {\n input: WorkflowRunnerInputs;\n environmentParameters?: WorkflowRunnerEnvironmentParams;\n modelOptions?: ChatModelOptions;\n};\n\nexport interface WorkflowExtraMetadata {\n metadata: ChatMetadata;\n}\nconst extraData = v.looseObject({\n references: v.optional(v.array(v.custom<ChatMetadata>(Boolean))),\n});\nconst baseDataDefine = v.object({\n node: v.object({ type: v.string(), id: v.string() }),\n nodeResult: v.pipe(v.optional(v.boolean(), false)),\n dataId: v.optional(v.string(), () => v4()),\n extra: v.optional(extraData),\n});\nexport const CommonDataDefine = v.object({\n ...baseDataDefine.entries,\n value: v.any(),\n});\nexport type CommonDataType = v.InferOutput<typeof CommonDataDefine>;\n\nexport const LLMDataDefine = v.object({\n ...baseDataDefine.entries,\n type: v.optional(v.literal('chat-stream'), 'chat-stream'),\n // 用来进行普通查询\n value: v.string(),\n extra: v.object({\n ...extraData.entries,\n content: v.string(),\n thinkContent: v.optional(v.string()),\n isThinking: v.optional(v.boolean()),\n delta: v.string(),\n historyList: v.custom<ChatMessageListOutputType>(Boolean),\n }),\n});\nexport type LLMWorkflowData = v.InferOutput<typeof LLMDataDefine>;\nexport function createLLMData(data: v.InferInput<typeof LLMDataDefine>) {\n return v.parse(LLMDataDefine, data);\n}\nexport function createResultData(data: v.InferInput<typeof CommonDataDefine>) {\n const result = v.parse(CommonDataDefine, data);\n result.nodeResult = true;\n return result;\n}\nexport type WorkflowStreamData =\n | v.InferOutput<typeof CommonDataDefine>\n | v.InferOutput<typeof LLMDataDefine>;\n\nexport function isChatStream(\n data: WorkflowStreamData,\n): data is LLMWorkflowData {\n return (\n !!data.extra && 'content' in data.extra && 'thinkContent' in data.extra\n );\n}\n", "import { Observer } from './type';\nimport { createLLMData, WorkflowStreamData } from './type2';\n\nexport class WorkflowEmitter {\n #ob?: Observer<WorkflowStreamData, any>;\n setObserver(ob: Observer<any, any>) {\n this.#ob = ob;\n }\n getObserver() {\n return this.#ob;\n }\n\n createLLMData = createLLMData;\n send(data: WorkflowStreamData) {\n if (this.#ob) {\n this.#ob.next(data);\n }\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAO,IAAM,oBAAoB;AAC1B,IAAM,UAAU;AAAA,EACrB,iBAAiB;AAAA,EACjB,cAAc;AAChB;;;ACaO,SAAS,qBAAqB,MAAkC;AACrE,MAAI,CAAC,MAAM;AACT,WAAO,CAAC;AAAA,EACV;AACA,SAAO,KAAK,KAAK,EAAE,OAAO,OAAO;AACnC;;;ACtBA,kBAAmB;AACnB,IAAM,UAAU;AACT,SAAS,eAAe,OAAe,QAAQ,OAAO;AAC3D,SAAO,EAAE,QAAI,gBAAG,OAAO,OAAO,GAAG,OAAc,MAAa;AAC9D;;;ACJO,IAAW,mBAAX,kBAAWA,sBAAX;AACL,EAAAA,kBAAA,eAAc;AACd,EAAAA,kBAAA,oBAAmB;AACnB,EAAAA,kBAAA,iBAAgB;AAChB,EAAAA,kBAAA,eAAc;AACd,EAAAA,kBAAA,gBAAa;AACb,EAAAA,kBAAA,qBAAkB;AANF,SAAAA;AAAA,GAAA;;;ACAlB,IAAAC,4BAIO;AACP,QAAmB;;;ACLnB,+BAAwB;AASjB,SAAS,WAAmB;AACjC,SAAO,iCAAQ,MAAM,UAAkB,YAAY;AACrD;;;ADHO,IAAM,kBAAoB;AAAA,EAC7B;AAAA,IACE;AAAA,MACE;AAAA,QACE,SAAO;AAAA,UACP,OAAS;AAAA,YACL,SAAO;AAAA,cACP,QAAU;AAAA,gBACN,WAAW,UAAQ,GAAG,KAAK;AAAA,gBAC3B;AAAA,kBACA;AAAA,gBACF;AAAA,gBACA,kCAAQ,SAAS,IAAI,CAAC,SAAS,CAAC;AAAA,cAClC;AAAA,cACA,OAAS,OAAO,SAAO,GAAK,QAAM,IAAI,GAAG,kCAAQ,MAAM,IAAI,QAAQ,CAAC;AAAA,YACtE,CAAC;AAAA;AAAA,YAED,kCAAQ,MAAM,IAAI,yBAAyB;AAAA,UAC7C;AAAA,UAEA,QAAU;AAAA,YACN,SAAO;AAAA,cACP,QAAU;AAAA,gBACN,WAAW,UAAQ,GAAG,KAAK;AAAA,gBAC3B,cAAY,SAAS;AAAA,gBACvB,kCAAQ,SAAS,IAAI,CAAC,SAAS,CAAC;AAAA,cAClC;AAAA,cACA,OAAS,OAAO,SAAO,GAAK,QAAM,IAAI,GAAG,kCAAQ,MAAM,IAAI,QAAQ,CAAC;AAAA,YACtE,CAAC;AAAA,YACD,kCAAQ,MAAM,IAAI,yBAAyB;AAAA,UAC7C;AAAA,QACF,CAAC;AAAA,QACD,SAAS;AAAA,MACX;AAAA,IACF;AAAA,IACA,CAAC;AAAA,EACH;AAAA,EACE,QAAM,IAAI;AAAA,EACV,cAAY,8BAA8B;AAAA,MAC5C,qCAAU;AAAA,IACR,cAAc,CAAC,SAAS;AAAA,IACxB,SAAS;AAAA,UACP,wCAAa;AAAA,QACX,QAAQ;AAAA,MACV,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACH;;;AEvDA,IAAAC,KAAmB;AACnB,IAAAC,4BAA2C;AAC3C,2BAA0B;AAC1B,IAAM,mBAAe,gCAAe;AAAA,EAClC,cAAc,CAAC,WAAW,SAAS;AAAA,EACnC,SAAS,KAAC,wCAAa,EAAE,OAAG,wCAAa,EAAE,QAAQ,KAAK,CAAC,CAAC;AAC5D,CAAC;AACD,IAAM,gBAAkB;AAAA,EACpB,SAAQ,QAAO,YAAW,OAAI,CAAC,GAAG,YAAY,CAAC;AAAA,MACjD,wCAAa,EAAE;AAAA,MACf,wCAAa,EAAE,QAAQ,KAAK,CAAC;AAC/B;AACO,IAAM,mBAAqB;AAAA,EAC9B;AAAA,IACE,UAAO;AAAA,MACP,QAAQ;AAAA,MACR,OAAO;AAAA,IACT,CAAC;AAAA,EACH;AAAA,EACA;AACF;;;ACpBA,IAAAC,4BAGO;AACP,kBAAoB;AACpB,IAAAC,KAAmB;AAEZ,IAAM,kBAAoB;AAAA,EAC7B,UAAO;AAAA,IACP,QAAU,YAAW,WAAQ,GAAG,IAAI;AAAA;AAAA,IAEpC,OAAS;AAAA,MACL,YAAW,UAAO,GAAG,sBAAsB;AAAA,MAC3C,SAAM,IAAI;AAAA,MACV,eAAY,6BAA6B;AAAA,MAC3C,kCAAQ,SAAS,IAAI,CAAC,WAAW,
|
|
4
|
+
"sourcesContent": ["export * from './type';\nexport * from './const';\nexport * from './handle-node';\nexport * from './util';\nexport * from './workflow.const';\nexport * from './common';\nexport * from './type2';\nexport * from './workflow.emit';\n", "export const DEFAULT_INPUT_KEY = `[INPUT]`;\nexport const HelpObj = {\n templateVarLine: `- 变量定义格式: {{xx}},{{xx.yy}}`,\n pathTodoLine: `- **TODO** 接收传入路径而不是指定`,\n};\n", "import { ChatInput2, ChatInputType } from './type';\nimport { WorkflowNodeType } from './workflow.const';\nimport type { Node, ReactFlowJsonObject } from '@xyflow/react';\n\nexport interface HandleNode {\n id: string;\n /** 真正赋值使用 */\n value: string;\n /** 应该应用于tooltip显示,不应该被其他显示 */\n label: string;\n type?: 'connect';\n\n inputType?: ChatInputType;\n /** 是否可选,用于某些不用传入的参数 */\n optional?: boolean;\n}\n/** 将handle节点全部拍平 */\nexport function flatFilterHandleList(list: HandleNode[][] | undefined) {\n if (!list) {\n return [];\n }\n return list.flat().filter(Boolean) as HandleNode[];\n}\n/** 继承 handleNode */\nexport type ResolvedInputNode = Omit<HandleNode, 'label'> & {\n nodeId?: string;\n outputName?: string;\n};\nexport interface WorkflowNodeData {\n value?: any;\n\n handle?: {\n input: HandleNode[][];\n output: HandleNode[][];\n };\n config?: Record<string, any>;\n title?: string;\n outputName?: string;\n /** 在工作流中禁止使用 @internal */\n excludeUsage?: boolean;\n [name: string]: any;\n}\n/** 工作流定义 */\nexport interface WorkflowData {\n flow: ReactFlowJsonObject<Node<WorkflowNodeData>>;\n version: number;\n}\nexport type RawWorkflowNode = Omit<Node<WorkflowNodeData>, 'position'>;\nexport interface ParsedNode {\n id: string;\n type: WorkflowNodeType;\n // todo 因为加上Omit会导致类型不识别\n data: WorkflowNodeData;\n /** 所有输入是都是需要节点连接的,如果没有节点连接会酌情处理 handleinput过来的 */\n inputs: ResolvedInputNode[];\n /** 可能是多出口 */\n outputs: HandleNode[];\n subFlowList?: { key: any; flow: ResolvedWorkflow; startId?: string }[];\n}\nexport interface ResolvedWorkflow {\n nodes: Record<string, ParsedNode>;\n /** 出口 */\n end: string;\n inputList: ChatInput2[];\n}\n", "import { v5 } from 'uuid';\nconst UUID_NS = '404cfae8-94e7-41a6-acec-1037dd1fdaad';\nexport function generateHandle(value: string, label = value) {\n return { id: v5(value, UUID_NS), label: label, value: value };\n}\n", "export const enum WorkflowNodeType {\n 'iteration' = 'iteration',\n 'iterationStart' = 'iteration-start',\n 'inputParams' = 'input-params',\n 'serialize' = 'serialize',\n parameters = 'parameters',\n inlineInputItem = 'inlineInputItem',\n}\n", "import {\n actions,\n condition,\n renderConfig,\n} from '@piying/view-angular-core';\nimport * as v from 'valibot';\nimport { asColumn } from '../util/layout';\n\nexport const EXAMPLES_DEFINE = v.pipe(\n v.optional(\n v.array(\n v.pipe(\n v.object({\n input: v.pipe(\n v.object({\n format: v.pipe(\n v.optional(v.boolean(), false),\n v.description(\n '选中后会尝试使用yaml解析为对象,再序列化为对应的响应类型',\n ),\n actions.wrappers.set(['tooltip']),\n ),\n value: v.pipe(v.string(), v.title('问题'), actions.class.top('flex-1')),\n }),\n // todo 待修复\n actions.class.top('flex gap-2 items-center'),\n ),\n\n output: v.pipe(\n v.object({\n format: v.pipe(\n v.optional(v.boolean(), false),\n v.description('是否需要格式化'),\n actions.wrappers.set(['tooltip']),\n ),\n value: v.pipe(v.string(), v.title('回答'), actions.class.top('flex-1')),\n }),\n actions.class.top('flex gap-2 items-center'),\n ),\n }),\n asColumn(),\n ),\n ),\n [],\n ),\n v.title('用例'),\n v.description('回答问题之前,会参考定义的用例格式进行回复,用于规范回答'),\n condition({\n environments: ['display'],\n actions: [\n renderConfig({\n hidden: true,\n }),\n ],\n }),\n);\n", "import { actions } from '@piying/view-angular-core';\n\nexport function asRow<TInput>(count?: number) {\n return actions.class.component<TInput>(\n typeof count === 'number'\n ? `grid gap-2 grid-cols-${count}`\n : 'flex gap-2 *:flex-1 items-center',\n );\n}\nexport function asColumn<TInput>() {\n return actions.class.component<TInput>('grid gap-2');\n}\n", "import * as v from 'valibot';\nimport { renderConfig, setComponent } from '@piying/view-angular-core';\nimport { condition } from '@piying/valibot-visit';\nconst HiddenAction = condition<any>({\n environments: ['display', 'default'],\n actions: [setComponent(''), renderConfig({ hidden: true })],\n});\nconst AnyHiddenList = v.pipe(\n v.array(v.pipe(v.optional(v.any()), HiddenAction)),\n setComponent(''),\n renderConfig({ hidden: true }),\n);\nexport const HandleDataDefine = v.pipe(\n v.optional(\n v.object({\n output: AnyHiddenList,\n input: AnyHiddenList,\n }),\n ),\n HiddenAction,\n);\n", "import {\n actions,\n disableWhen,\n} from '@piying/view-angular-core';\nimport { map } from 'rxjs';\nimport * as v from 'valibot';\n\nexport const INLINE_Template = v.pipe(\n v.object({\n enable: v.optional(v.boolean(), true),\n // 经用条件\n value: v.pipe(\n v.optional(v.string(), '{{NODE.description}}'),\n v.title('模板'),\n v.description('允许使用变量:{{NODE.xxx}}(参考节点帮助)'),\n actions.wrappers.set(['tooltip', 'label']),\n actions.class.top('flex-1'),\n\n disableWhen({\n listen: (fn) =>\n fn({\n list: [['..', 'enable']],\n }).pipe(map(({ list }) => !list[0])),\n }),\n ),\n }),\n actions.class.component('flex gap-2'),\n);\nexport const INLINE_Template2 = v.pipe(\n v.object({\n enable: v.optional(v.boolean(), false),\n // 经用条件\n value: v.pipe(\n v.optional(v.string()),\n v.title('模板'),\n v.description('允许使用变量:{{ENTRY.xxx}}(参考节点帮助)'),\n actions.wrappers.set(['tooltip', 'label']),\n\n actions.class.top('flex-1'),\n\n disableWhen({\n listen: (fn) =>\n fn({\n list: [['..', 'enable']],\n }).pipe(map(({ list }) => !list[0])),\n }),\n ),\n }),\n actions.class.component('flex gap-2 items-center'),\n);\n", "import {\n asVirtualGroup,\n actions,\n setComponent,\n} from '@piying/view-angular-core';\nimport { condition } from '@piying/valibot-visit';\nimport * as v from 'valibot';\nimport { asColumn } from '../util/layout';\nexport function llmModelConfig(item?: { label: string }) {\n return v.pipe(\n v.intersect([\n v.pipe(\n v.intersect([\n v.pipe(\n v.object({\n name: v.pipe(\n v.optional(v.string()),\n v.title('预定义模型配置'),\n setComponent('select'),\n actions.inputs.patchAsync({\n options: (field) => field.context!.getModelList(),\n }),\n ),\n model: v.pipe(v.optional(v.string()), v.title('模型')),\n // todo 配置变化configuration层被去掉.这里应该更详细支持更多参数\n\n baseURL: v.pipe(v.optional(v.string()), v.title('地址')),\n }),\n asColumn(),\n ),\n ]),\n v.title(item?.label ?? '对话模型'),\n condition({\n environments: ['display', 'config'],\n actions: [asVirtualGroup()],\n }),\n ),\n ]),\n condition({\n environments: ['display', 'config'],\n actions: [asVirtualGroup()],\n }),\n setComponent('accordion'),\n );\n}\n\nexport type ModelInputConfig = v.InferOutput<ReturnType<typeof llmModelConfig>>;\n", "export const DEFAULT_CHAT_SCHEMA_KEY = `[JsonSchema]`;\nexport const RUNNER_ORIGIN_OUTPUT_KEY = `[Origin]`;\n", "import { v4 } from 'uuid';\nimport type { ChatMessageListOutputType } from '@shenghuabi/openai';\nimport type { ChatModelOptions } from '@shenghuabi/openai';\nimport * as v from 'valibot';\nimport { ChatMetadata } from './type';\nexport type WorkflowRunnerInputs = Map<\n string | symbol,\n { value: any; extra?: any }\n>;\nexport type WorkflowRunnerEnvironmentParams = Record<string, any>;\nexport type WorkflowRunnerInputsWithContext = {\n input: WorkflowRunnerInputs;\n environmentParameters?: WorkflowRunnerEnvironmentParams;\n modelOptions?: ChatModelOptions;\n};\n\nexport interface WorkflowExtraMetadata {\n metadata: ChatMetadata;\n}\nconst extraData = v.looseObject({\n references: v.optional(v.array(v.custom<ChatMetadata>(Boolean))),\n});\nconst baseDataDefine = v.object({\n node: v.object({ type: v.string(), id: v.string() }),\n nodeResult: v.pipe(v.optional(v.boolean(), false)),\n dataId: v.optional(v.string(), () => v4()),\n extra: v.optional(extraData),\n});\nexport const CommonDataDefine = v.object({\n ...baseDataDefine.entries,\n value: v.any(),\n});\nexport type CommonDataType = v.InferOutput<typeof CommonDataDefine>;\n\nexport const LLMDataDefine = v.object({\n ...baseDataDefine.entries,\n type: v.optional(v.literal('chat-stream'), 'chat-stream'),\n // 用来进行普通查询\n value: v.string(),\n extra: v.object({\n ...extraData.entries,\n content: v.string(),\n thinkContent: v.optional(v.string()),\n isThinking: v.optional(v.boolean()),\n delta: v.string(),\n historyList: v.custom<ChatMessageListOutputType>(Boolean),\n }),\n});\nexport type LLMWorkflowData = v.InferOutput<typeof LLMDataDefine>;\nexport function createLLMData(data: v.InferInput<typeof LLMDataDefine>) {\n return v.parse(LLMDataDefine, data);\n}\nexport function createResultData(data: v.InferInput<typeof CommonDataDefine>) {\n const result = v.parse(CommonDataDefine, data);\n result.nodeResult = true;\n return result;\n}\nexport type WorkflowStreamData =\n | v.InferOutput<typeof CommonDataDefine>\n | v.InferOutput<typeof LLMDataDefine>;\n\nexport function isChatStream(\n data: WorkflowStreamData,\n): data is LLMWorkflowData {\n return (\n !!data.extra && 'content' in data.extra && 'thinkContent' in data.extra\n );\n}\n", "import { Observer } from './type';\nimport { createLLMData, WorkflowStreamData } from './type2';\n\nexport class WorkflowEmitter {\n #ob?: Observer<WorkflowStreamData, any>;\n setObserver(ob: Observer<any, any>) {\n this.#ob = ob;\n }\n getObserver() {\n return this.#ob;\n }\n\n createLLMData = createLLMData;\n send(data: WorkflowStreamData) {\n if (this.#ob) {\n this.#ob.next(data);\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["WorkflowNodeType", "import_view_angular_core", "v", "import_view_angular_core", "import_view_angular_core", "v", "import_view_angular_core", "import_valibot_visit", "v", "import_uuid", "v"]
|
|
7
7
|
}
|
package/share/index.mjs
CHANGED
|
@@ -132,7 +132,7 @@ var INLINE_Template = v3.pipe(
|
|
|
132
132
|
v3.optional(v3.string(), "{{NODE.description}}"),
|
|
133
133
|
v3.title("模板"),
|
|
134
134
|
v3.description("允许使用变量:{{NODE.xxx}}(参考节点帮助)"),
|
|
135
|
-
actions3.wrappers.set(["tooltip", "
|
|
135
|
+
actions3.wrappers.set(["tooltip", "label"]),
|
|
136
136
|
actions3.class.top("flex-1"),
|
|
137
137
|
disableWhen({
|
|
138
138
|
listen: (fn) => fn({
|
|
@@ -151,7 +151,7 @@ var INLINE_Template2 = v3.pipe(
|
|
|
151
151
|
v3.optional(v3.string()),
|
|
152
152
|
v3.title("模板"),
|
|
153
153
|
v3.description("允许使用变量:{{ENTRY.xxx}}(参考节点帮助)"),
|
|
154
|
-
actions3.wrappers.set(["tooltip", "
|
|
154
|
+
actions3.wrappers.set(["tooltip", "label"]),
|
|
155
155
|
actions3.class.top("flex-1"),
|
|
156
156
|
disableWhen({
|
|
157
157
|
listen: (fn) => fn({
|
package/share/index.mjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../packages/workflow/share/const.ts", "../../../packages/workflow/share/handle-node.ts", "../../../packages/workflow/share/util.ts", "../../../packages/workflow/share/workflow.const.ts", "../../../packages/workflow/share/common/examples.define.ts", "../../../packages/workflow/share/util/layout.ts", "../../../packages/workflow/share/common/handle.define.ts", "../../../packages/workflow/share/common/inline-template.define.ts", "../../../packages/workflow/share/common/llm.define.ts", "../../../packages/workflow/share/common/const.ts", "../../../packages/workflow/share/type2.ts", "../../../packages/workflow/share/workflow.emit.ts"],
|
|
4
|
-
"sourcesContent": ["export const DEFAULT_INPUT_KEY = `[INPUT]`;\nexport const HelpObj = {\n templateVarLine: `- 变量定义格式: {{xx}},{{xx.yy}}`,\n pathTodoLine: `- **TODO** 接收传入路径而不是指定`,\n};\n", "import { ChatInput2, ChatInputType } from './type';\nimport { WorkflowNodeType } from './workflow.const';\nimport type { Node, ReactFlowJsonObject } from '@xyflow/react';\n\nexport interface HandleNode {\n id: string;\n /** 真正赋值使用 */\n value: string;\n /** 应该应用于tooltip显示,不应该被其他显示 */\n label: string;\n type?: 'connect';\n\n inputType?: ChatInputType;\n /** 是否可选,用于某些不用传入的参数 */\n optional?: boolean;\n}\n/** 将handle节点全部拍平 */\nexport function flatFilterHandleList(list: HandleNode[][] | undefined) {\n if (!list) {\n return [];\n }\n return list.flat().filter(Boolean) as HandleNode[];\n}\n/** 继承 handleNode */\nexport type ResolvedInputNode = Omit<HandleNode, 'label'> & {\n nodeId?: string;\n outputName?: string;\n};\nexport interface WorkflowNodeData {\n value?: any;\n\n handle?: {\n input: HandleNode[][];\n output: HandleNode[][];\n };\n config?: Record<string, any>;\n title?: string;\n outputName?: string;\n /** 在工作流中禁止使用 @internal */\n excludeUsage?: boolean;\n [name: string]: any;\n}\n/** 工作流定义 */\nexport interface WorkflowData {\n flow: ReactFlowJsonObject<Node<WorkflowNodeData>>;\n version: number;\n}\nexport type RawWorkflowNode = Omit<Node<WorkflowNodeData>, 'position'>;\nexport interface ParsedNode {\n id: string;\n type: WorkflowNodeType;\n // todo 因为加上Omit会导致类型不识别\n data: WorkflowNodeData;\n /** 所有输入是都是需要节点连接的,如果没有节点连接会酌情处理 handleinput过来的 */\n inputs: ResolvedInputNode[];\n /** 可能是多出口 */\n outputs: HandleNode[];\n subFlowList?: { key: any; flow: ResolvedWorkflow; startId?: string }[];\n}\nexport interface ResolvedWorkflow {\n nodes: Record<string, ParsedNode>;\n /** 出口 */\n end: string;\n inputList: ChatInput2[];\n}\n", "import { v5 } from 'uuid';\nconst UUID_NS = '404cfae8-94e7-41a6-acec-1037dd1fdaad';\nexport function generateHandle(value: string, label = value) {\n return { id: v5(value, UUID_NS), label: label, value: value };\n}\n", "export const enum WorkflowNodeType {\n 'iteration' = 'iteration',\n 'iterationStart' = 'iteration-start',\n 'inputParams' = 'input-params',\n 'serialize' = 'serialize',\n parameters = 'parameters',\n inlineInputItem = 'inlineInputItem',\n}\n", "import {\n actions,\n condition,\n renderConfig,\n} from '@piying/view-angular-core';\nimport * as v from 'valibot';\nimport { asColumn } from '../util/layout';\n\nexport const EXAMPLES_DEFINE = v.pipe(\n v.optional(\n v.array(\n v.pipe(\n v.object({\n input: v.pipe(\n v.object({\n format: v.pipe(\n v.optional(v.boolean(), false),\n v.description(\n '选中后会尝试使用yaml解析为对象,再序列化为对应的响应类型',\n ),\n actions.wrappers.set(['tooltip']),\n ),\n value: v.pipe(v.string(), v.title('问题'), actions.class.top('flex-1')),\n }),\n // todo 待修复\n actions.class.top('flex gap-2 items-center'),\n ),\n\n output: v.pipe(\n v.object({\n format: v.pipe(\n v.optional(v.boolean(), false),\n v.description('是否需要格式化'),\n actions.wrappers.set(['tooltip']),\n ),\n value: v.pipe(v.string(), v.title('回答'), actions.class.top('flex-1')),\n }),\n actions.class.top('flex gap-2 items-center'),\n ),\n }),\n asColumn(),\n ),\n ),\n [],\n ),\n v.title('用例'),\n v.description('回答问题之前,会参考定义的用例格式进行回复,用于规范回答'),\n condition({\n environments: ['display'],\n actions: [\n renderConfig({\n hidden: true,\n }),\n ],\n }),\n);\n", "import { actions } from '@piying/view-angular-core';\n\nexport function asRow<TInput>(count?: number) {\n return actions.class.component<TInput>(\n typeof count === 'number'\n ? `grid gap-2 grid-cols-${count}`\n : 'flex gap-2 *:flex-1 items-center',\n );\n}\nexport function asColumn<TInput>() {\n return actions.class.component<TInput>('grid gap-2');\n}\n", "import * as v from 'valibot';\nimport { renderConfig, setComponent } from '@piying/view-angular-core';\nimport { condition } from '@piying/valibot-visit';\nconst HiddenAction = condition<any>({\n environments: ['display', 'default'],\n actions: [setComponent(''), renderConfig({ hidden: true })],\n});\nconst AnyHiddenList = v.pipe(\n v.array(v.pipe(v.optional(v.any()), HiddenAction)),\n setComponent(''),\n renderConfig({ hidden: true }),\n);\nexport const HandleDataDefine = v.pipe(\n v.optional(\n v.object({\n output: AnyHiddenList,\n input: AnyHiddenList,\n }),\n ),\n HiddenAction,\n);\n", "import {\n actions,\n disableWhen,\n} from '@piying/view-angular-core';\nimport { map } from 'rxjs';\nimport * as v from 'valibot';\n\nexport const INLINE_Template = v.pipe(\n v.object({\n enable: v.optional(v.boolean(), true),\n // 经用条件\n value: v.pipe(\n v.optional(v.string(), '{{NODE.description}}'),\n v.title('模板'),\n v.description('允许使用变量:{{NODE.xxx}}(参考节点帮助)'),\n actions.wrappers.set(['tooltip', 'form-field']),\n actions.class.top('flex-1'),\n\n disableWhen({\n listen: (fn) =>\n fn({\n list: [['..', 'enable']],\n }).pipe(map(({ list }) => !list[0])),\n }),\n ),\n }),\n actions.class.component('flex gap-2'),\n);\nexport const INLINE_Template2 = v.pipe(\n v.object({\n enable: v.optional(v.boolean(), false),\n // 经用条件\n value: v.pipe(\n v.optional(v.string()),\n v.title('模板'),\n v.description('允许使用变量:{{ENTRY.xxx}}(参考节点帮助)'),\n actions.wrappers.set(['tooltip', 'form-field']),\n\n actions.class.top('flex-1'),\n\n disableWhen({\n listen: (fn) =>\n fn({\n list: [['..', 'enable']],\n }).pipe(map(({ list }) => !list[0])),\n }),\n ),\n }),\n actions.class.component('flex gap-2 items-center'),\n);\n", "import {\n asVirtualGroup,\n actions,\n setComponent,\n} from '@piying/view-angular-core';\nimport { condition } from '@piying/valibot-visit';\nimport * as v from 'valibot';\nimport { asColumn } from '../util/layout';\nexport function llmModelConfig(item?: { label: string }) {\n return v.pipe(\n v.intersect([\n v.pipe(\n v.intersect([\n v.pipe(\n v.object({\n name: v.pipe(\n v.optional(v.string()),\n v.title('预定义模型配置'),\n setComponent('select'),\n actions.inputs.patchAsync({\n options: (field) => field.context!.getModelList(),\n }),\n ),\n model: v.pipe(v.optional(v.string()), v.title('模型')),\n // todo 配置变化configuration层被去掉.这里应该更详细支持更多参数\n\n baseURL: v.pipe(v.optional(v.string()), v.title('地址')),\n }),\n asColumn(),\n ),\n ]),\n v.title(item?.label ?? '对话模型'),\n condition({\n environments: ['display', 'config'],\n actions: [asVirtualGroup()],\n }),\n ),\n ]),\n condition({\n environments: ['display', 'config'],\n actions: [asVirtualGroup()],\n }),\n setComponent('accordion'),\n );\n}\n\nexport type ModelInputConfig = v.InferOutput<ReturnType<typeof llmModelConfig>>;\n", "export const DEFAULT_CHAT_SCHEMA_KEY = `[JsonSchema]`;\nexport const RUNNER_ORIGIN_OUTPUT_KEY = `[Origin]`;\n", "import { v4 } from 'uuid';\nimport type { ChatMessageListOutputType } from '@shenghuabi/openai';\nimport type { ChatModelOptions } from '@shenghuabi/openai';\nimport * as v from 'valibot';\nimport { ChatMetadata } from './type';\nexport type WorkflowRunnerInputs = Map<\n string | symbol,\n { value: any; extra?: any }\n>;\nexport type WorkflowRunnerEnvironmentParams = Record<string, any>;\nexport type WorkflowRunnerInputsWithContext = {\n input: WorkflowRunnerInputs;\n environmentParameters?: WorkflowRunnerEnvironmentParams;\n modelOptions?: ChatModelOptions;\n};\n\nexport interface WorkflowExtraMetadata {\n metadata: ChatMetadata;\n}\nconst extraData = v.looseObject({\n references: v.optional(v.array(v.custom<ChatMetadata>(Boolean))),\n});\nconst baseDataDefine = v.object({\n node: v.object({ type: v.string(), id: v.string() }),\n nodeResult: v.pipe(v.optional(v.boolean(), false)),\n dataId: v.optional(v.string(), () => v4()),\n extra: v.optional(extraData),\n});\nexport const CommonDataDefine = v.object({\n ...baseDataDefine.entries,\n value: v.any(),\n});\nexport type CommonDataType = v.InferOutput<typeof CommonDataDefine>;\n\nexport const LLMDataDefine = v.object({\n ...baseDataDefine.entries,\n type: v.optional(v.literal('chat-stream'), 'chat-stream'),\n // 用来进行普通查询\n value: v.string(),\n extra: v.object({\n ...extraData.entries,\n content: v.string(),\n thinkContent: v.optional(v.string()),\n isThinking: v.optional(v.boolean()),\n delta: v.string(),\n historyList: v.custom<ChatMessageListOutputType>(Boolean),\n }),\n});\nexport type LLMWorkflowData = v.InferOutput<typeof LLMDataDefine>;\nexport function createLLMData(data: v.InferInput<typeof LLMDataDefine>) {\n return v.parse(LLMDataDefine, data);\n}\nexport function createResultData(data: v.InferInput<typeof CommonDataDefine>) {\n const result = v.parse(CommonDataDefine, data);\n result.nodeResult = true;\n return result;\n}\nexport type WorkflowStreamData =\n | v.InferOutput<typeof CommonDataDefine>\n | v.InferOutput<typeof LLMDataDefine>;\n\nexport function isChatStream(\n data: WorkflowStreamData,\n): data is LLMWorkflowData {\n return (\n !!data.extra && 'content' in data.extra && 'thinkContent' in data.extra\n );\n}\n", "import { Observer } from './type';\nimport { createLLMData, WorkflowStreamData } from './type2';\n\nexport class WorkflowEmitter {\n #ob?: Observer<WorkflowStreamData, any>;\n setObserver(ob: Observer<any, any>) {\n this.#ob = ob;\n }\n getObserver() {\n return this.#ob;\n }\n\n createLLMData = createLLMData;\n send(data: WorkflowStreamData) {\n if (this.#ob) {\n this.#ob.next(data);\n }\n }\n}\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["export const DEFAULT_INPUT_KEY = `[INPUT]`;\nexport const HelpObj = {\n templateVarLine: `- 变量定义格式: {{xx}},{{xx.yy}}`,\n pathTodoLine: `- **TODO** 接收传入路径而不是指定`,\n};\n", "import { ChatInput2, ChatInputType } from './type';\nimport { WorkflowNodeType } from './workflow.const';\nimport type { Node, ReactFlowJsonObject } from '@xyflow/react';\n\nexport interface HandleNode {\n id: string;\n /** 真正赋值使用 */\n value: string;\n /** 应该应用于tooltip显示,不应该被其他显示 */\n label: string;\n type?: 'connect';\n\n inputType?: ChatInputType;\n /** 是否可选,用于某些不用传入的参数 */\n optional?: boolean;\n}\n/** 将handle节点全部拍平 */\nexport function flatFilterHandleList(list: HandleNode[][] | undefined) {\n if (!list) {\n return [];\n }\n return list.flat().filter(Boolean) as HandleNode[];\n}\n/** 继承 handleNode */\nexport type ResolvedInputNode = Omit<HandleNode, 'label'> & {\n nodeId?: string;\n outputName?: string;\n};\nexport interface WorkflowNodeData {\n value?: any;\n\n handle?: {\n input: HandleNode[][];\n output: HandleNode[][];\n };\n config?: Record<string, any>;\n title?: string;\n outputName?: string;\n /** 在工作流中禁止使用 @internal */\n excludeUsage?: boolean;\n [name: string]: any;\n}\n/** 工作流定义 */\nexport interface WorkflowData {\n flow: ReactFlowJsonObject<Node<WorkflowNodeData>>;\n version: number;\n}\nexport type RawWorkflowNode = Omit<Node<WorkflowNodeData>, 'position'>;\nexport interface ParsedNode {\n id: string;\n type: WorkflowNodeType;\n // todo 因为加上Omit会导致类型不识别\n data: WorkflowNodeData;\n /** 所有输入是都是需要节点连接的,如果没有节点连接会酌情处理 handleinput过来的 */\n inputs: ResolvedInputNode[];\n /** 可能是多出口 */\n outputs: HandleNode[];\n subFlowList?: { key: any; flow: ResolvedWorkflow; startId?: string }[];\n}\nexport interface ResolvedWorkflow {\n nodes: Record<string, ParsedNode>;\n /** 出口 */\n end: string;\n inputList: ChatInput2[];\n}\n", "import { v5 } from 'uuid';\nconst UUID_NS = '404cfae8-94e7-41a6-acec-1037dd1fdaad';\nexport function generateHandle(value: string, label = value) {\n return { id: v5(value, UUID_NS), label: label, value: value };\n}\n", "export const enum WorkflowNodeType {\n 'iteration' = 'iteration',\n 'iterationStart' = 'iteration-start',\n 'inputParams' = 'input-params',\n 'serialize' = 'serialize',\n parameters = 'parameters',\n inlineInputItem = 'inlineInputItem',\n}\n", "import {\n actions,\n condition,\n renderConfig,\n} from '@piying/view-angular-core';\nimport * as v from 'valibot';\nimport { asColumn } from '../util/layout';\n\nexport const EXAMPLES_DEFINE = v.pipe(\n v.optional(\n v.array(\n v.pipe(\n v.object({\n input: v.pipe(\n v.object({\n format: v.pipe(\n v.optional(v.boolean(), false),\n v.description(\n '选中后会尝试使用yaml解析为对象,再序列化为对应的响应类型',\n ),\n actions.wrappers.set(['tooltip']),\n ),\n value: v.pipe(v.string(), v.title('问题'), actions.class.top('flex-1')),\n }),\n // todo 待修复\n actions.class.top('flex gap-2 items-center'),\n ),\n\n output: v.pipe(\n v.object({\n format: v.pipe(\n v.optional(v.boolean(), false),\n v.description('是否需要格式化'),\n actions.wrappers.set(['tooltip']),\n ),\n value: v.pipe(v.string(), v.title('回答'), actions.class.top('flex-1')),\n }),\n actions.class.top('flex gap-2 items-center'),\n ),\n }),\n asColumn(),\n ),\n ),\n [],\n ),\n v.title('用例'),\n v.description('回答问题之前,会参考定义的用例格式进行回复,用于规范回答'),\n condition({\n environments: ['display'],\n actions: [\n renderConfig({\n hidden: true,\n }),\n ],\n }),\n);\n", "import { actions } from '@piying/view-angular-core';\n\nexport function asRow<TInput>(count?: number) {\n return actions.class.component<TInput>(\n typeof count === 'number'\n ? `grid gap-2 grid-cols-${count}`\n : 'flex gap-2 *:flex-1 items-center',\n );\n}\nexport function asColumn<TInput>() {\n return actions.class.component<TInput>('grid gap-2');\n}\n", "import * as v from 'valibot';\nimport { renderConfig, setComponent } from '@piying/view-angular-core';\nimport { condition } from '@piying/valibot-visit';\nconst HiddenAction = condition<any>({\n environments: ['display', 'default'],\n actions: [setComponent(''), renderConfig({ hidden: true })],\n});\nconst AnyHiddenList = v.pipe(\n v.array(v.pipe(v.optional(v.any()), HiddenAction)),\n setComponent(''),\n renderConfig({ hidden: true }),\n);\nexport const HandleDataDefine = v.pipe(\n v.optional(\n v.object({\n output: AnyHiddenList,\n input: AnyHiddenList,\n }),\n ),\n HiddenAction,\n);\n", "import {\n actions,\n disableWhen,\n} from '@piying/view-angular-core';\nimport { map } from 'rxjs';\nimport * as v from 'valibot';\n\nexport const INLINE_Template = v.pipe(\n v.object({\n enable: v.optional(v.boolean(), true),\n // 经用条件\n value: v.pipe(\n v.optional(v.string(), '{{NODE.description}}'),\n v.title('模板'),\n v.description('允许使用变量:{{NODE.xxx}}(参考节点帮助)'),\n actions.wrappers.set(['tooltip', 'label']),\n actions.class.top('flex-1'),\n\n disableWhen({\n listen: (fn) =>\n fn({\n list: [['..', 'enable']],\n }).pipe(map(({ list }) => !list[0])),\n }),\n ),\n }),\n actions.class.component('flex gap-2'),\n);\nexport const INLINE_Template2 = v.pipe(\n v.object({\n enable: v.optional(v.boolean(), false),\n // 经用条件\n value: v.pipe(\n v.optional(v.string()),\n v.title('模板'),\n v.description('允许使用变量:{{ENTRY.xxx}}(参考节点帮助)'),\n actions.wrappers.set(['tooltip', 'label']),\n\n actions.class.top('flex-1'),\n\n disableWhen({\n listen: (fn) =>\n fn({\n list: [['..', 'enable']],\n }).pipe(map(({ list }) => !list[0])),\n }),\n ),\n }),\n actions.class.component('flex gap-2 items-center'),\n);\n", "import {\n asVirtualGroup,\n actions,\n setComponent,\n} from '@piying/view-angular-core';\nimport { condition } from '@piying/valibot-visit';\nimport * as v from 'valibot';\nimport { asColumn } from '../util/layout';\nexport function llmModelConfig(item?: { label: string }) {\n return v.pipe(\n v.intersect([\n v.pipe(\n v.intersect([\n v.pipe(\n v.object({\n name: v.pipe(\n v.optional(v.string()),\n v.title('预定义模型配置'),\n setComponent('select'),\n actions.inputs.patchAsync({\n options: (field) => field.context!.getModelList(),\n }),\n ),\n model: v.pipe(v.optional(v.string()), v.title('模型')),\n // todo 配置变化configuration层被去掉.这里应该更详细支持更多参数\n\n baseURL: v.pipe(v.optional(v.string()), v.title('地址')),\n }),\n asColumn(),\n ),\n ]),\n v.title(item?.label ?? '对话模型'),\n condition({\n environments: ['display', 'config'],\n actions: [asVirtualGroup()],\n }),\n ),\n ]),\n condition({\n environments: ['display', 'config'],\n actions: [asVirtualGroup()],\n }),\n setComponent('accordion'),\n );\n}\n\nexport type ModelInputConfig = v.InferOutput<ReturnType<typeof llmModelConfig>>;\n", "export const DEFAULT_CHAT_SCHEMA_KEY = `[JsonSchema]`;\nexport const RUNNER_ORIGIN_OUTPUT_KEY = `[Origin]`;\n", "import { v4 } from 'uuid';\nimport type { ChatMessageListOutputType } from '@shenghuabi/openai';\nimport type { ChatModelOptions } from '@shenghuabi/openai';\nimport * as v from 'valibot';\nimport { ChatMetadata } from './type';\nexport type WorkflowRunnerInputs = Map<\n string | symbol,\n { value: any; extra?: any }\n>;\nexport type WorkflowRunnerEnvironmentParams = Record<string, any>;\nexport type WorkflowRunnerInputsWithContext = {\n input: WorkflowRunnerInputs;\n environmentParameters?: WorkflowRunnerEnvironmentParams;\n modelOptions?: ChatModelOptions;\n};\n\nexport interface WorkflowExtraMetadata {\n metadata: ChatMetadata;\n}\nconst extraData = v.looseObject({\n references: v.optional(v.array(v.custom<ChatMetadata>(Boolean))),\n});\nconst baseDataDefine = v.object({\n node: v.object({ type: v.string(), id: v.string() }),\n nodeResult: v.pipe(v.optional(v.boolean(), false)),\n dataId: v.optional(v.string(), () => v4()),\n extra: v.optional(extraData),\n});\nexport const CommonDataDefine = v.object({\n ...baseDataDefine.entries,\n value: v.any(),\n});\nexport type CommonDataType = v.InferOutput<typeof CommonDataDefine>;\n\nexport const LLMDataDefine = v.object({\n ...baseDataDefine.entries,\n type: v.optional(v.literal('chat-stream'), 'chat-stream'),\n // 用来进行普通查询\n value: v.string(),\n extra: v.object({\n ...extraData.entries,\n content: v.string(),\n thinkContent: v.optional(v.string()),\n isThinking: v.optional(v.boolean()),\n delta: v.string(),\n historyList: v.custom<ChatMessageListOutputType>(Boolean),\n }),\n});\nexport type LLMWorkflowData = v.InferOutput<typeof LLMDataDefine>;\nexport function createLLMData(data: v.InferInput<typeof LLMDataDefine>) {\n return v.parse(LLMDataDefine, data);\n}\nexport function createResultData(data: v.InferInput<typeof CommonDataDefine>) {\n const result = v.parse(CommonDataDefine, data);\n result.nodeResult = true;\n return result;\n}\nexport type WorkflowStreamData =\n | v.InferOutput<typeof CommonDataDefine>\n | v.InferOutput<typeof LLMDataDefine>;\n\nexport function isChatStream(\n data: WorkflowStreamData,\n): data is LLMWorkflowData {\n return (\n !!data.extra && 'content' in data.extra && 'thinkContent' in data.extra\n );\n}\n", "import { Observer } from './type';\nimport { createLLMData, WorkflowStreamData } from './type2';\n\nexport class WorkflowEmitter {\n #ob?: Observer<WorkflowStreamData, any>;\n setObserver(ob: Observer<any, any>) {\n this.#ob = ob;\n }\n getObserver() {\n return this.#ob;\n }\n\n createLLMData = createLLMData;\n send(data: WorkflowStreamData) {\n if (this.#ob) {\n this.#ob.next(data);\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["WorkflowNodeType", "actions", "actions", "v", "renderConfig", "condition", "actions", "v", "actions", "setComponent", "condition", "v", "setComponent", "actions", "condition", "v4", "v"]
|
|
7
7
|
}
|