@fudanda/workflow 2.20261024.1-beta.2 → 2.20261107.1-beta.1
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 -21
- package/README.md +114 -114
- package/THIRD-PARTY-NOTICES.md +57 -57
- package/dist/{ai-markdown-esl-I5ck.js → ai-markdown--SqEglSn.js} +1 -2
- package/dist/chrome.js +46 -53
- package/dist/core.js +3 -3
- package/dist/{header-shortcuts-BQZuNfpA.js → header-shortcuts-BcwVJV2g.js} +1 -2
- package/dist/index.js +925 -1000
- package/dist/{schema-tree-CTM6hEdm.js → schema-tree-B4yoWS9A.js} +5 -10
- package/dist/{start-form-L6xw9phk.js → start-form-DWlAhZhs.js} +169 -335
- package/dist/styles.css +1 -1
- package/dist/{test-input-validation-CkORPCfm.js → test-input-validation-Ch9pS4X8.js} +1 -2
- package/package.json +108 -106
- package/vendor/coze/LICENSE-APACHE +177 -177
- package/vendor/coze/UPSTREAM.json +8 -8
- package/vendor/coze/original/base-test-button.tsx +22 -22
- package/vendor/coze/original/comment-container.tsx +68 -68
- package/vendor/coze/original/condition-container.tsx +60 -60
- package/vendor/coze/original/condition-tag.tsx +58 -58
- package/vendor/coze/original/coze-global.less +234 -234
- package/vendor/coze/original/create-loop-function-json.ts +134 -134
- package/vendor/coze/original/create-loop-function.ts +56 -56
- package/vendor/coze/original/end-registry.ts +41 -41
- package/vendor/coze/original/execute-result-panel.less +97 -97
- package/vendor/coze/original/execute-result-panel.tsx +171 -171
- package/vendor/coze/original/form-item.less +39 -39
- package/vendor/coze/original/form-item.tsx +200 -200
- package/vendor/coze/original/http-api-field.tsx +42 -42
- package/vendor/coze/original/http-form-render.tsx +102 -102
- package/vendor/coze/original/icon-add.svg +3 -3
- package/vendor/coze/original/icon-arrow-left.svg +3 -3
- package/vendor/coze/original/icon-auto-layout.svg +18 -18
- package/vendor/coze/original/icon-code.svg +13 -13
- package/vendor/coze/original/icon-condition.svg +12 -12
- package/vendor/coze/original/icon-database.svg +18 -18
- package/vendor/coze/original/icon-delete.svg +5 -5
- package/vendor/coze/original/icon-fullscreen.svg +9 -9
- package/vendor/coze/original/icon-more.svg +11 -11
- package/vendor/coze/original/icon-play-round-outlined.svg +8 -8
- package/vendor/coze/original/icon-plugin-tool.svg +6 -6
- package/vendor/coze/original/icon-standard-copy.svg +8 -8
- package/vendor/coze/original/icon-unknown.svg +7 -7
- package/vendor/coze/original/icon-var.svg +6 -6
- package/vendor/coze/original/icon-workflow-end.svg +5 -5
- package/vendor/coze/original/icon-workflow-start.svg +5 -5
- package/vendor/coze/original/icon-workflow.svg +21 -21
- package/vendor/coze/original/icon-workflows.svg +5 -5
- package/vendor/coze/original/if-form-meta.tsx +88 -88
- package/vendor/coze/original/logic-display.tsx +33 -33
- package/vendor/coze/original/mouse-icon.tsx +35 -35
- package/vendor/coze/original/mouse-pad-selector.tsx +180 -180
- package/vendor/coze/original/node-card.tsx +77 -77
- package/vendor/coze/original/node-category-panel.less +4 -4
- package/vendor/coze/original/node-category-panel.tsx +53 -53
- package/vendor/coze/original/node-config-form.tsx +67 -67
- package/vendor/coze/original/node-header.less +165 -165
- package/vendor/coze/original/node-header.tsx +552 -552
- package/vendor/coze/original/node-panel.less +183 -183
- package/vendor/coze/original/node-render.less +20 -20
- package/vendor/coze/original/node-side-sheet.less +57 -57
- package/vendor/coze/original/node-side-sheet.tsx +214 -214
- package/vendor/coze/original/node-wrapper.tsx +71 -71
- package/vendor/coze/original/pad-icon.tsx +45 -45
- package/vendor/coze/original/resizable-side-panel-constants.ts +18 -18
- package/vendor/coze/original/resizable-side-panel.tsx +42 -42
- package/vendor/coze/original/start-registry.ts +53 -53
- package/vendor/coze/original/sub-canvas-background.less +4 -4
- package/vendor/coze/original/sub-canvas-background.tsx +48 -48
- package/vendor/coze/original/sub-canvas-container.less +16 -16
- package/vendor/coze/original/sub-canvas-container.tsx +97 -97
- package/vendor/coze/original/sub-canvas-header.less +75 -75
- package/vendor/coze/original/sub-canvas-header.tsx +95 -95
- package/vendor/coze/original/test-form-sheet-header.tsx +82 -82
- package/vendor/coze/original/test-form-sheet.less +178 -178
- package/vendor/coze/original/toolbar-add-node.tsx +68 -68
- package/vendor/coze/original/toolbar-auto-layout.tsx +61 -61
- package/vendor/coze/original/toolbar-comment.tsx +121 -121
- package/vendor/coze/original/toolbar-container.tsx +42 -42
- package/vendor/coze/original/toolbar-interactive.tsx +98 -98
- package/vendor/coze/original/toolbar-minimap-switch.tsx +41 -41
- package/vendor/coze/original/toolbar-tools.less +46 -46
- package/vendor/coze/original/toolbar-tools.tsx +89 -89
- package/vendor/coze/original/toolbar-zoom.tsx +134 -134
- package/vendor/coze/original/tree-variable-selector.less +291 -291
- package/vendor/coze/original/tree-variable-selector.tsx +298 -298
- package/vendor/coze/original/workflow-document-custom-options.ts +151 -151
- package/vendor/coze/original/workflow-header.less +65 -65
- package/vendor/coze/original/workflow-header.tsx +85 -85
- package/vendor/coze/source/agent-models/model-option/index.module.less +18 -18
- package/vendor/coze/source/agent-models/model-option/index.tsx +321 -321
- package/vendor/coze/source/agent-models/model-option-avatar/index.tsx +175 -175
- package/vendor/coze/source/agent-models/model-option-group/index.tsx +87 -87
- package/vendor/coze/source/agent-models/model-option-thumb/index.tsx +41 -41
- package/vendor/coze/source/agent-models/model-select-ui/index.tsx +238 -238
- package/vendor/coze/source/agent-models/popover-model-list-view/index.tsx +146 -146
- package/vendor/coze/source/components/code-editor/text-editor.tsx +71 -71
- package/vendor/coze/source/components/comment/components/editor/block.tsx +117 -117
- package/vendor/coze/source/components/comment/components/editor/leaf.tsx +64 -64
- package/vendor/coze/source/components/comment/components/toolbar.tsx +366 -366
- package/vendor/coze/source/components/comment/constant.ts +94 -94
- package/vendor/coze/source/components/editor-container/expand-editor/index.module.less +107 -107
- package/vendor/coze/source/components/editor-container/expand-editor/index.tsx +117 -117
- package/vendor/coze/source/components/model-select/components/model-setting.tsx +300 -300
- package/vendor/coze/source/components/model-select/components/settings.tsx +144 -144
- package/vendor/coze/source/components/model-select/index.module.less +34 -34
- package/vendor/coze/source/components/model-select/utils/index.tsx +100 -100
- package/vendor/coze/source/components/node-render/node-render-new/fields/constants.tsx +79 -79
- package/vendor/coze/source/components/node-render/node-render-new/fields/field-empty.module.less +12 -12
- package/vendor/coze/source/components/node-render/node-render-new/fields/field-empty.tsx +37 -37
- package/vendor/coze/source/components/node-render/node-render-new/fields/field.module.less +19 -19
- package/vendor/coze/source/components/node-render/node-render-new/fields/field.tsx +52 -52
- package/vendor/coze/source/components/node-render/node-render-new/fields/http-api-field/index.tsx +42 -42
- package/vendor/coze/source/components/node-render/node-render-new/fields/overflow-tag-list.module.less +47 -47
- package/vendor/coze/source/components/node-render/node-render-new/fields/overflow-tag-list.tsx +162 -162
- package/vendor/coze/source/components/node-render/node-render-new/fields/variable-tag-list.module.less +48 -48
- package/vendor/coze/source/components/node-render/node-render-new/fields/variable-tag-list.tsx +126 -126
- package/vendor/coze/source/components/node-wrapper/execute-result-panel/index.module.less +97 -97
- package/vendor/coze/source/components/node-wrapper/execute-result-panel/index.tsx +171 -171
- package/vendor/coze/source/components/sub-canvas/components/background/index.module.less +4 -4
- package/vendor/coze/source/components/sub-canvas/components/header/index.module.less +75 -75
- package/vendor/coze/source/components/test-run/test-run-button/single-node.tsx +158 -158
- package/vendor/coze/source/execution-panel/panel.module.less +48 -48
- package/vendor/coze/source/execution-panel/panel.tsx +99 -99
- package/vendor/coze/source/execution-panel/use-resize.ts +79 -79
- package/vendor/coze/source/external/features/log/components/data-viewer/constants.ts +28 -28
- package/vendor/coze/source/external/features/log/components/data-viewer/context/context.ts +21 -21
- package/vendor/coze/source/external/features/log/components/data-viewer/context/create-store.ts +48 -48
- package/vendor/coze/source/external/features/log/components/data-viewer/context/index.ts +19 -19
- package/vendor/coze/source/external/features/log/components/data-viewer/context/provider.tsx +50 -50
- package/vendor/coze/source/external/features/log/components/data-viewer/data-viewer.module.less +26 -26
- package/vendor/coze/source/external/features/log/components/data-viewer/data-viewer.tsx +79 -79
- package/vendor/coze/source/external/features/log/components/data-viewer/hooks/index.ts +18 -18
- package/vendor/coze/source/external/features/log/components/data-viewer/hooks/use-data-viewer-store.ts +29 -29
- package/vendor/coze/source/external/features/log/components/data-viewer/hooks/use-expand.ts +35 -35
- package/vendor/coze/source/external/features/log/components/data-viewer/hooks/use-value.tsx +66 -66
- package/vendor/coze/source/external/features/log/components/data-viewer/index.tsx +21 -21
- package/vendor/coze/source/external/features/log/components/data-viewer/json-field/index.tsx +186 -186
- package/vendor/coze/source/external/features/log/components/data-viewer/json-field/json-field.module.less +79 -79
- package/vendor/coze/source/external/features/log/components/data-viewer/types.ts +50 -50
- package/vendor/coze/source/external/features/log/components/data-viewer/utils/big-number.ts +35 -35
- package/vendor/coze/source/external/features/log/components/data-viewer/utils/generate-field.ts +104 -104
- package/vendor/coze/source/external/features/log/components/log-parser/log-wrap.module.less +27 -27
- package/vendor/coze/source/external/features/log/components/log-parser/log-wrap.tsx +109 -109
- package/vendor/coze/source/external/features/log/components/node-status-bar/node-status-bar.module.less +52 -52
- package/vendor/coze/source/external/features/log/components/node-status-bar/node-status-bar.tsx +113 -113
- package/vendor/coze/source/form/components/field-empty.tsx +45 -45
- package/vendor/coze/source/form/components/section.tsx +91 -91
- package/vendor/coze/source/form-extensions/components/add-item-button/index.tsx +64 -64
- package/vendor/coze/source/form-extensions/components/form-card/index.module.less +131 -131
- package/vendor/coze/source/form-extensions/components/form-card/index.tsx +309 -309
- package/vendor/coze/source/form-extensions/components/form-item/index.module.less +39 -39
- package/vendor/coze/source/form-extensions/components/form-item/index.tsx +200 -200
- package/vendor/coze/source/form-extensions/components/form-item-feedback/index.module.less +7 -7
- package/vendor/coze/source/form-extensions/components/form-item-feedback/index.tsx +39 -39
- package/vendor/coze/source/form-extensions/components/level-line/index.module.less +346 -346
- package/vendor/coze/source/form-extensions/components/level-line/index.ts +17 -17
- package/vendor/coze/source/form-extensions/components/level-line/level-line.tsx +460 -460
- package/vendor/coze/source/form-extensions/components/level-line/types.ts +38 -38
- package/vendor/coze/source/form-extensions/components/level-line/utils.ts +60 -60
- package/vendor/coze/source/form-extensions/components/literal-value-input/constants.ts +61 -61
- package/vendor/coze/source/form-extensions/components/literal-value-input/input-boolean.tsx +80 -80
- package/vendor/coze/source/form-extensions/components/literal-value-input/input-integer.tsx +68 -68
- package/vendor/coze/source/form-extensions/components/literal-value-input/input-number.tsx +62 -62
- package/vendor/coze/source/form-extensions/components/literal-value-input/input-select.tsx +59 -59
- package/vendor/coze/source/form-extensions/components/literal-value-input/input-string.tsx +55 -55
- package/vendor/coze/source/form-extensions/components/literal-value-input/literal-value-input.tsx +35 -35
- package/vendor/coze/source/form-extensions/components/literal-value-input/styles.module.less +46 -46
- package/vendor/coze/source/form-extensions/components/literal-value-input/type.ts +61 -61
- package/vendor/coze/source/form-extensions/components/literal-value-input/utils.tsx +117 -117
- package/vendor/coze/source/form-extensions/components/node-header/components/close-button.tsx +44 -44
- package/vendor/coze/source/form-extensions/components/node-header/description-display.tsx +52 -52
- package/vendor/coze/source/form-extensions/components/node-header/description.tsx +131 -131
- package/vendor/coze/source/form-extensions/components/node-header/index.module.less +165 -165
- package/vendor/coze/source/form-extensions/components/node-header/index.tsx +552 -552
- package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-btn/index.tsx +43 -43
- package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-content/default-value-input.tsx +276 -276
- package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-content/index.module.less +124 -124
- package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-content/index.tsx +131 -131
- package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/expand-content/types.ts +32 -32
- package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-name/index.module.less +38 -38
- package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-name/index.tsx +101 -101
- package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-operator/index.module.less +51 -51
- package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-operator/index.tsx +107 -107
- package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-required/index.module.less +17 -17
- package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-required/index.tsx +53 -53
- package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-type/constants.tsx +77 -77
- package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-type/index.module.less +97 -97
- package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/components/param-type/index.tsx +155 -155
- package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/constants.ts +38 -38
- package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/index.module.less +138 -138
- package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/index.tsx +360 -360
- package/vendor/coze/source/form-extensions/components/output-tree/components/custom-tree-node/type.ts +88 -88
- package/vendor/coze/source/form-extensions/components/output-tree/components/header/index.module.less +36 -36
- package/vendor/coze/source/form-extensions/components/output-tree/components/header/index.tsx +104 -104
- package/vendor/coze/source/form-extensions/components/output-tree/constants.ts +22 -22
- package/vendor/coze/source/form-extensions/components/output-tree/context.ts +28 -28
- package/vendor/coze/source/form-extensions/components/output-tree/hooks/use-columns-style.ts +39 -39
- package/vendor/coze/source/form-extensions/components/output-tree/index.module.less +83 -83
- package/vendor/coze/source/form-extensions/components/output-tree/index.tsx +692 -692
- package/vendor/coze/source/form-extensions/components/output-tree/utils.ts +185 -185
- package/vendor/coze/source/form-extensions/components/setting-on-error/components/process-type/index.tsx +97 -97
- package/vendor/coze/source/form-extensions/components/setting-on-error/components/process-type/option-item.tsx +30 -30
- package/vendor/coze/source/form-extensions/components/setting-on-error/components/process-type/types.ts +23 -23
- package/vendor/coze/source/form-extensions/components/setting-on-error/components/retry-times/index.tsx +45 -45
- package/vendor/coze/source/form-extensions/components/setting-on-error/components/timeout/index.tsx +102 -102
- package/vendor/coze/source/form-extensions/components/tree-variable-selector/composite-select-option.tsx +167 -167
- package/vendor/coze/source/form-extensions/components/tree-variable-selector/composite-select-tree-panel.tsx +165 -165
- package/vendor/coze/source/form-extensions/components/tree-variable-selector/composite-select.module.less +96 -96
- package/vendor/coze/source/form-extensions/components/tree-variable-selector/composite-select.tsx +265 -265
- package/vendor/coze/source/form-extensions/components/tree-variable-selector/context.tsx +42 -42
- package/vendor/coze/source/form-extensions/components/tree-variable-selector/expand-icon.tsx +30 -30
- package/vendor/coze/source/form-extensions/components/tree-variable-selector/index.module.less +291 -291
- package/vendor/coze/source/form-extensions/components/tree-variable-selector/node-variable-tree.module.less +48 -48
- package/vendor/coze/source/form-extensions/components/tree-variable-selector/node-variable-tree.tsx +149 -149
- package/vendor/coze/source/form-extensions/components/tree-variable-selector/utils.tsx +500 -500
- package/vendor/coze/source/form-extensions/components/tree-variable-selector/value-display.tsx +130 -130
- package/vendor/coze/source/form-extensions/components/value-expression-input/const.ts +68 -68
- package/vendor/coze/source/form-extensions/components/value-expression-input/context.ts +27 -27
- package/vendor/coze/source/form-extensions/components/value-expression-input/index.module.less +144 -144
- package/vendor/coze/source/form-extensions/components/value-expression-input/value-expression-input.tsx +418 -418
- package/vendor/coze/source/form-extensions/components/variable-type-selector/constants.tsx +77 -77
- package/vendor/coze/source/form-extensions/components/variable-type-selector/index.module.less +31 -31
- package/vendor/coze/source/form-extensions/components/variable-type-selector/index.tsx +17 -17
- package/vendor/coze/source/form-extensions/components/variable-type-selector/utils.tsx +298 -298
- package/vendor/coze/source/form-extensions/components/variable-type-selector/variable-type-selector.tsx +235 -235
- package/vendor/coze/source/form-extensions/components/variable-type-tag/index.tsx +54 -54
- package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-branch.module.less +9 -9
- package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-branch.tsx +249 -249
- package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-header.tsx +50 -50
- package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-item-logic.module.less +13 -13
- package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-item-logic.tsx +73 -73
- package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/delete/index.module.less +10 -10
- package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/delete/index.tsx +42 -42
- package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/index.module.less +9 -9
- package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/index.tsx +254 -254
- package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/operator/index.module.less +7 -7
- package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/operator/index.tsx +144 -144
- package/vendor/coze/source/form-extensions/setters/condition/multi-condition/condition-params-item/value-expression-with-state/index.tsx +69 -69
- package/vendor/coze/source/form-extensions/setters/condition/multi-condition/context.ts +36 -36
- package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/condition-branch-preview.tsx +44 -44
- package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/condition-branch.tsx +152 -152
- package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/container.tsx +19 -19
- package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/custom-drag-layer.tsx +117 -117
- package/vendor/coze/source/form-extensions/setters/condition/multi-condition/draggable/types.ts +18 -18
- package/vendor/coze/source/form-extensions/setters/condition/multi-condition/types.ts +58 -58
- package/vendor/coze/source/node-registries/end/components/terminate-plan-field.tsx +29 -29
- package/vendor/coze/source/node-registries/end/constants.ts +34 -34
- package/vendor/coze/source/node-registries/end/form.tsx +66 -66
- package/vendor/coze/source/node-registries/end/types.ts +45 -45
- package/vendor/coze/source/node-registries/http/components/base-editor/raw-text-editor.tsx +80 -80
- package/vendor/coze/source/node-registries/http/constants.ts +80 -80
- package/vendor/coze/source/node-registries/http/fields/json-import-editor/index.module.less +191 -191
- package/vendor/coze/source/node-registries/http/fields/json-import-editor/json-import-components/json-expand-editor.tsx +141 -141
- package/vendor/coze/source/node-registries/http/fields/json-import-editor/json-import-components/json-import.tsx +99 -99
- package/vendor/coze/source/node-registries/http/form-render.tsx +102 -102
- package/vendor/coze/source/node-registries/http/setters/api/curl-expand-editor.tsx +161 -161
- package/vendor/coze/source/node-registries/http/setters/api/curl-import.tsx +96 -96
- package/vendor/coze/source/node-registries/http/setters/api/index.module.less +199 -199
- package/vendor/coze/source/node-registries/http/setters/api/index.tsx +149 -149
- package/vendor/coze/source/node-registries/http/setters/api/utils.ts +41 -41
- package/vendor/coze/source/node-registries/http/setters/body/index.tsx +201 -201
- package/vendor/coze/source/node-registries/http/setters/constants.ts +83 -83
- package/vendor/coze/source/node-registries/if/components/else/index.tsx +41 -41
- package/vendor/coze/source/node-registries/intent/components/intents/index.module.less +14 -14
- package/vendor/coze/source/node-registries/intent/components/intents/option-item/index.tsx +189 -189
- package/vendor/coze/source/node-registries/json-stringify/constants.ts +32 -32
- package/vendor/coze/source/node-registries/json-stringify/form.tsx +46 -46
- package/vendor/coze/source/node-registries/loop/constants.ts +43 -43
- package/vendor/coze/source/node-registries/loop/loop-fields/loop-settings-section/index.tsx +48 -48
- package/vendor/coze/source/node-registries/loop/loop-fields/loop-type/index.tsx +81 -81
- package/vendor/coze/source/node-registries/loop/loop-fields/loop-type/options.ts +34 -34
- package/vendor/coze/source/node-registries/start/form.tsx +209 -209
- package/vendor/coze/source/node-registries/text-process/components/method-selector/index.tsx +46 -46
- package/vendor/coze/source/node-registries/text-process/constants.ts +132 -132
- package/vendor/coze/source/nodes-v2/components/form-item-feedback/index.module.less +7 -7
- package/vendor/coze/source/nodes-v2/components/form-item-feedback/index.tsx +47 -47
- package/vendor/coze/source/nodes-v2/components/system-prompt/index.module.less +66 -66
- package/vendor/coze/source/nodes-v2/components/system-prompt/prompt-kit-bar.tsx +129 -129
- package/vendor/coze/source/nodes-v2/components/system-prompt/system-prompt-editor.tsx +110 -110
- package/vendor/coze/source/nodes-v2/llm/user-prompt/index.tsx +64 -64
- package/vendor/coze/source/prompt-kit/input-config-popover/index.tsx +80 -80
- package/vendor/coze/source/prompt-kit/input-slot-widget/index.css +34 -34
- package/vendor/coze/source/prompt-kit/input-slot-widget/index.ts +169 -169
- package/vendor/coze/source/prompt-kit/library-item.tsx +141 -141
- package/vendor/coze/source/prompt-kit/prompt-info-input.tsx +90 -90
- package/vendor/coze/source/ui-components/add-operation/index.module.less +19 -19
- package/vendor/coze/source/ui-components/add-operation/index.tsx +67 -67
- package/vendor/coze/source/ui-components/auto-size-tooltip/index.module.less +39 -39
- package/vendor/coze/source/ui-components/auto-size-tooltip/index.tsx +74 -74
- package/vendor/coze/source/ui-components/workflow-sl-input/index.module.less +36 -36
- package/vendor/coze/source/ui-components/workflow-sl-input/index.tsx +194 -194
- package/vendor/coze/source/utils/create-slots/index.tsx +126 -126
- package/vendor/coze/source/utils/create-slots/use-force-update.ts +23 -23
|
@@ -1,321 +1,321 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2025 coze-dev Authors
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
/* eslint-disable complexity -- ignore */
|
|
18
|
-
import { type PropsWithChildren, useRef } from 'react';
|
|
19
|
-
|
|
20
|
-
import cls from 'classnames';
|
|
21
|
-
import { useHover } from 'ahooks';
|
|
22
|
-
import {
|
|
23
|
-
useBenefitAvailable,
|
|
24
|
-
PremiumPaywallScene,
|
|
25
|
-
usePremiumPaywallModal,
|
|
26
|
-
} from '@coze-studio/premium-components-adapter';
|
|
27
|
-
import { I18n } from '@coze-arch/i18n';
|
|
28
|
-
import { type Model, ModelTagClass } from '@coze-arch/bot-api/developer_api';
|
|
29
|
-
import {
|
|
30
|
-
useBotCreatorContext,
|
|
31
|
-
BotCreatorScene,
|
|
32
|
-
} from '@coze-agent-ide/bot-creator-context';
|
|
33
|
-
import {
|
|
34
|
-
IconCozLongArrowTopRight,
|
|
35
|
-
IconCozSetting,
|
|
36
|
-
IconCozLongArrowUpCircle,
|
|
37
|
-
IconCozDiamondFill,
|
|
38
|
-
} from '@coze-arch/coze-design/icons';
|
|
39
|
-
import { IconButton, Tag, Tooltip, Typography } from '@coze-arch/coze-design';
|
|
40
|
-
import { OverflowList } from '@blueprintjs/core';
|
|
41
|
-
|
|
42
|
-
import { ModelOptionAvatar } from '../model-option-avatar';
|
|
43
|
-
|
|
44
|
-
import styles from './index.module.less';
|
|
45
|
-
|
|
46
|
-
export type ModelOptionProps = {
|
|
47
|
-
model: Model;
|
|
48
|
-
selected?: boolean;
|
|
49
|
-
disabled?: boolean;
|
|
50
|
-
/** Return whether the switch was successful */
|
|
51
|
-
onClick: () => boolean;
|
|
52
|
-
} & (
|
|
53
|
-
| {
|
|
54
|
-
enableConfig?: false;
|
|
55
|
-
}
|
|
56
|
-
| {
|
|
57
|
-
enableConfig: true;
|
|
58
|
-
onConfigClick: () => void;
|
|
59
|
-
}
|
|
60
|
-
) &
|
|
61
|
-
(
|
|
62
|
-
| {
|
|
63
|
-
enableJumpDetail?: false;
|
|
64
|
-
}
|
|
65
|
-
| {
|
|
66
|
-
enableJumpDetail: true;
|
|
67
|
-
/**
|
|
68
|
-
* Click to jump to the model management page
|
|
69
|
-
*
|
|
70
|
-
* Because the component positioning is a pure UI component, and the way to obtain the space id of different modules is different, the splicing of jump behavior and url is not built-in
|
|
71
|
-
*/
|
|
72
|
-
onDetailClick: (modelId: string) => void;
|
|
73
|
-
}
|
|
74
|
-
);
|
|
75
|
-
|
|
76
|
-
// eslint-disable-next-line @coze-arch/max-line-per-function
|
|
77
|
-
export function ModelOption({
|
|
78
|
-
model,
|
|
79
|
-
selected,
|
|
80
|
-
disabled,
|
|
81
|
-
onClick,
|
|
82
|
-
...props
|
|
83
|
-
}: ModelOptionProps) {
|
|
84
|
-
/** This ref is purely for judging whether to hover or not. */
|
|
85
|
-
const ref = useRef<HTMLElement>(null);
|
|
86
|
-
const isHovering = useHover(ref);
|
|
87
|
-
const { scene } = useBotCreatorContext();
|
|
88
|
-
|
|
89
|
-
const featureTags = model.model_tag_list
|
|
90
|
-
?.filter(t => t.tag_class === ModelTagClass.ModelFeature && t.tag_name)
|
|
91
|
-
.map(t => t.tag_name);
|
|
92
|
-
const functionTags = model.model_tag_list
|
|
93
|
-
?.filter(t => t.tag_class === ModelTagClass.ModelFunction && t.tag_name)
|
|
94
|
-
.map(t => t.tag_name);
|
|
95
|
-
|
|
96
|
-
// Paywall, open source version does not support this feature
|
|
97
|
-
const isProModel =
|
|
98
|
-
model.model_status_details?.is_new_model ||
|
|
99
|
-
model.model_status_details?.is_advanced_model;
|
|
100
|
-
const isNewModelAvailable = useBenefitAvailable({
|
|
101
|
-
scene: PremiumPaywallScene.NewModel,
|
|
102
|
-
});
|
|
103
|
-
const { node: premiumPaywallModal, open: openPremiumPaywallModal } =
|
|
104
|
-
usePremiumPaywallModal({ scene: PremiumPaywallScene.NewModel });
|
|
105
|
-
|
|
106
|
-
return (
|
|
107
|
-
<>
|
|
108
|
-
<article
|
|
109
|
-
ref={ref}
|
|
110
|
-
className={cls(
|
|
111
|
-
'pl-[16px] pr-[12px] w-full relative',
|
|
112
|
-
'flex gap-[16px] items-center rounded-[12px]',
|
|
113
|
-
selected
|
|
114
|
-
? 'coz-mg-hglt hover:coz-mg-hglt-hovered'
|
|
115
|
-
: 'hover:coz-mg-secondary-hovered active:coz-mg-secondary-pressed',
|
|
116
|
-
disabled ? 'cursor-not-allowed' : 'cursor-pointer',
|
|
117
|
-
// The following cls only hide the upper and lower dividing lines when implementing hover, active, and last (note that the dividing lines are in model-info-border, the designer's careful thought)
|
|
118
|
-
styles['model-option'],
|
|
119
|
-
// @ts-expect-error -- I don't know why the error is reported.
|
|
120
|
-
{ [styles['model-option_selected']]: selected },
|
|
121
|
-
)}
|
|
122
|
-
onClick={() => {
|
|
123
|
-
if (disabled) {
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
if (isProModel && !isNewModelAvailable) {
|
|
127
|
-
openPremiumPaywallModal();
|
|
128
|
-
return;
|
|
129
|
-
}
|
|
130
|
-
onClick();
|
|
131
|
-
}}
|
|
132
|
-
>
|
|
133
|
-
<ModelOptionAvatar model={model} />
|
|
134
|
-
<div
|
|
135
|
-
className={cls(
|
|
136
|
-
'h-[80px] py-[12px] w-full',
|
|
137
|
-
'flex flex-col overflow-hidden',
|
|
138
|
-
'border-0 border-b border-solid coz-stroke-primary',
|
|
139
|
-
styles['model-info-border'],
|
|
140
|
-
)}
|
|
141
|
-
style={
|
|
142
|
-
isHovering
|
|
143
|
-
? {
|
|
144
|
-
mask: calcMaskStyle([
|
|
145
|
-
props.enableConfig,
|
|
146
|
-
props.enableJumpDetail,
|
|
147
|
-
]),
|
|
148
|
-
}
|
|
149
|
-
: undefined
|
|
150
|
-
}
|
|
151
|
-
>
|
|
152
|
-
<div className="w-full flex items-center gap-[6px] overflow-hidden">
|
|
153
|
-
<Typography.Title fontSize="14px" ellipsis={{ showTooltip: true }}>
|
|
154
|
-
{model.name}
|
|
155
|
-
</Typography.Title>
|
|
156
|
-
<div className="shrink-0 flex gap-[6px]">
|
|
157
|
-
{model.model_status_details?.is_free_model &&
|
|
158
|
-
scene !== BotCreatorScene.DouyinBot ? (
|
|
159
|
-
<Tag size="mini" color="primary" className="!coz-mg-plus">
|
|
160
|
-
{I18n.t('model_list_free')}
|
|
161
|
-
</Tag>
|
|
162
|
-
) : null}
|
|
163
|
-
{isProModel && !isNewModelAvailable ? (
|
|
164
|
-
<IconCozDiamondFill className="coz-fg-hglt" />
|
|
165
|
-
) : null}
|
|
166
|
-
{featureTags?.length
|
|
167
|
-
? featureTags.map(feature => (
|
|
168
|
-
<Tag
|
|
169
|
-
key={feature}
|
|
170
|
-
size="mini"
|
|
171
|
-
color="primary"
|
|
172
|
-
className="!bg-transparent !border border-solid coz-stroke-plus"
|
|
173
|
-
>
|
|
174
|
-
{feature}
|
|
175
|
-
</Tag>
|
|
176
|
-
))
|
|
177
|
-
: null}
|
|
178
|
-
</div>
|
|
179
|
-
</div>
|
|
180
|
-
<div className="flex items-center text-[12px] leading-[16px] coz-fg-dim overflow-hidden">
|
|
181
|
-
<ModelTag isFirst>
|
|
182
|
-
{((model.model_quota?.token_limit || 0) / 1024).toFixed(0)}K
|
|
183
|
-
</ModelTag>
|
|
184
|
-
<ModelTag
|
|
185
|
-
isLast={!functionTags?.length}
|
|
186
|
-
className="flex items-center gap-[4px]"
|
|
187
|
-
>
|
|
188
|
-
<span>{model.model_name}</span>
|
|
189
|
-
{model.model_status_details?.update_info ? (
|
|
190
|
-
<Tooltip content={model.model_status_details.update_info}>
|
|
191
|
-
<IconCozLongArrowUpCircle className="ml-[2px] coz-fg-hglt-green" />
|
|
192
|
-
</Tooltip>
|
|
193
|
-
) : null}
|
|
194
|
-
</ModelTag>
|
|
195
|
-
{functionTags?.length ? (
|
|
196
|
-
<Tooltip content={functionTags.join(IS_OVERSEA ? ', ' : '、')}>
|
|
197
|
-
<span className="overflow-hidden">
|
|
198
|
-
<OverflowList
|
|
199
|
-
items={functionTags}
|
|
200
|
-
visibleItemRenderer={(item, idx) => (
|
|
201
|
-
<ModelTag
|
|
202
|
-
key={idx}
|
|
203
|
-
isLast={idx === functionTags.length - 1}
|
|
204
|
-
>
|
|
205
|
-
{item}
|
|
206
|
-
</ModelTag>
|
|
207
|
-
)}
|
|
208
|
-
overflowRenderer={restItems => (
|
|
209
|
-
<span className="pl-[6px] flex items-center">{`+${restItems.length}`}</span>
|
|
210
|
-
)}
|
|
211
|
-
collapseFrom="end"
|
|
212
|
-
/>
|
|
213
|
-
</span>
|
|
214
|
-
</Tooltip>
|
|
215
|
-
) : null}
|
|
216
|
-
</div>
|
|
217
|
-
<Typography.Text
|
|
218
|
-
className="mt-[4px] text-[12px] leading-[16px] coz-fg-secondary"
|
|
219
|
-
ellipsis={{ showTooltip: true }}
|
|
220
|
-
>
|
|
221
|
-
{model.model_brief_desc}
|
|
222
|
-
</Typography.Text>
|
|
223
|
-
</div>
|
|
224
|
-
{isHovering ? (
|
|
225
|
-
<div className="absolute right-[12px] h-full flex items-center gap-[3px]">
|
|
226
|
-
{props.enableConfig ? (
|
|
227
|
-
<IconButton
|
|
228
|
-
icon={<IconCozSetting />}
|
|
229
|
-
color="secondary"
|
|
230
|
-
size="default"
|
|
231
|
-
data-testid="model_select_option.config_btn"
|
|
232
|
-
onClick={e => {
|
|
233
|
-
e.stopPropagation();
|
|
234
|
-
|
|
235
|
-
// paywall blocking
|
|
236
|
-
if (isProModel && !isNewModelAvailable) {
|
|
237
|
-
openPremiumPaywallModal();
|
|
238
|
-
return;
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
if (selected) {
|
|
242
|
-
props.onConfigClick();
|
|
243
|
-
return;
|
|
244
|
-
}
|
|
245
|
-
const success = onClick();
|
|
246
|
-
if (success) {
|
|
247
|
-
setTimeout(() => props.onConfigClick());
|
|
248
|
-
}
|
|
249
|
-
}}
|
|
250
|
-
/>
|
|
251
|
-
) : null}
|
|
252
|
-
{props.enableJumpDetail ? (
|
|
253
|
-
<IconButton
|
|
254
|
-
icon={<IconCozLongArrowTopRight />}
|
|
255
|
-
color="secondary"
|
|
256
|
-
size="default"
|
|
257
|
-
data-testid="model_select_option.detail_btn"
|
|
258
|
-
onClick={e => {
|
|
259
|
-
e.stopPropagation();
|
|
260
|
-
props.onDetailClick(String(model.model_type));
|
|
261
|
-
}}
|
|
262
|
-
/>
|
|
263
|
-
) : null}
|
|
264
|
-
</div>
|
|
265
|
-
) : null}
|
|
266
|
-
</article>
|
|
267
|
-
{premiumPaywallModal}
|
|
268
|
-
</>
|
|
269
|
-
);
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
function ModelTag({
|
|
273
|
-
isFirst,
|
|
274
|
-
isLast,
|
|
275
|
-
className,
|
|
276
|
-
children,
|
|
277
|
-
}: PropsWithChildren<{
|
|
278
|
-
isFirst?: boolean;
|
|
279
|
-
isLast?: boolean;
|
|
280
|
-
className?: string;
|
|
281
|
-
}>) {
|
|
282
|
-
return (
|
|
283
|
-
<div
|
|
284
|
-
className={cls(
|
|
285
|
-
{ 'pl-[6px]': !isFirst },
|
|
286
|
-
'shrink-0 flex items-center gap-[6px]',
|
|
287
|
-
)}
|
|
288
|
-
>
|
|
289
|
-
<span className={className}>{children}</span>
|
|
290
|
-
{isLast ? null : (
|
|
291
|
-
<span className="h-[9px] border-0 border-r border-solid coz-stroke-primary" />
|
|
292
|
-
)}
|
|
293
|
-
</div>
|
|
294
|
-
);
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
/**
|
|
298
|
-
* When hovering to display several icons (such as jumping to the model details page and detailed configuration), there should be a gradual change mask effect on the content under the icon
|
|
299
|
-
* This method is used to calculate the mask style
|
|
300
|
-
*/
|
|
301
|
-
function calcMaskStyle(buttonVisible: Array<boolean | undefined>) {
|
|
302
|
-
const btnNum = buttonVisible.reduce(
|
|
303
|
-
(prevNum, showBtn) => prevNum + (showBtn ? 1 : 0),
|
|
304
|
-
0,
|
|
305
|
-
);
|
|
306
|
-
if (btnNum === 0) {
|
|
307
|
-
return 'none';
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
const BTN_WIDTH = 32;
|
|
311
|
-
const BTN_GAP = 3;
|
|
312
|
-
/** Fixed width of mask that does not vary with the number of buttons */
|
|
313
|
-
const PRESET_PADDING = 16;
|
|
314
|
-
/** A gradual change in the width of the mask */
|
|
315
|
-
const MASK_WIDTH = 24;
|
|
316
|
-
|
|
317
|
-
const gradientStart =
|
|
318
|
-
btnNum * BTN_WIDTH + (btnNum - 1) * BTN_GAP + PRESET_PADDING;
|
|
319
|
-
const gradientEnd = gradientStart + MASK_WIDTH;
|
|
320
|
-
return `linear-gradient(to left, rgba(0,0,0,0), rgba(0,0,0,0) ${gradientStart}px, #fff ${gradientEnd}px)`;
|
|
321
|
-
}
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 coze-dev Authors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/* eslint-disable complexity -- ignore */
|
|
18
|
+
import { type PropsWithChildren, useRef } from 'react';
|
|
19
|
+
|
|
20
|
+
import cls from 'classnames';
|
|
21
|
+
import { useHover } from 'ahooks';
|
|
22
|
+
import {
|
|
23
|
+
useBenefitAvailable,
|
|
24
|
+
PremiumPaywallScene,
|
|
25
|
+
usePremiumPaywallModal,
|
|
26
|
+
} from '@coze-studio/premium-components-adapter';
|
|
27
|
+
import { I18n } from '@coze-arch/i18n';
|
|
28
|
+
import { type Model, ModelTagClass } from '@coze-arch/bot-api/developer_api';
|
|
29
|
+
import {
|
|
30
|
+
useBotCreatorContext,
|
|
31
|
+
BotCreatorScene,
|
|
32
|
+
} from '@coze-agent-ide/bot-creator-context';
|
|
33
|
+
import {
|
|
34
|
+
IconCozLongArrowTopRight,
|
|
35
|
+
IconCozSetting,
|
|
36
|
+
IconCozLongArrowUpCircle,
|
|
37
|
+
IconCozDiamondFill,
|
|
38
|
+
} from '@coze-arch/coze-design/icons';
|
|
39
|
+
import { IconButton, Tag, Tooltip, Typography } from '@coze-arch/coze-design';
|
|
40
|
+
import { OverflowList } from '@blueprintjs/core';
|
|
41
|
+
|
|
42
|
+
import { ModelOptionAvatar } from '../model-option-avatar';
|
|
43
|
+
|
|
44
|
+
import styles from './index.module.less';
|
|
45
|
+
|
|
46
|
+
export type ModelOptionProps = {
|
|
47
|
+
model: Model;
|
|
48
|
+
selected?: boolean;
|
|
49
|
+
disabled?: boolean;
|
|
50
|
+
/** Return whether the switch was successful */
|
|
51
|
+
onClick: () => boolean;
|
|
52
|
+
} & (
|
|
53
|
+
| {
|
|
54
|
+
enableConfig?: false;
|
|
55
|
+
}
|
|
56
|
+
| {
|
|
57
|
+
enableConfig: true;
|
|
58
|
+
onConfigClick: () => void;
|
|
59
|
+
}
|
|
60
|
+
) &
|
|
61
|
+
(
|
|
62
|
+
| {
|
|
63
|
+
enableJumpDetail?: false;
|
|
64
|
+
}
|
|
65
|
+
| {
|
|
66
|
+
enableJumpDetail: true;
|
|
67
|
+
/**
|
|
68
|
+
* Click to jump to the model management page
|
|
69
|
+
*
|
|
70
|
+
* Because the component positioning is a pure UI component, and the way to obtain the space id of different modules is different, the splicing of jump behavior and url is not built-in
|
|
71
|
+
*/
|
|
72
|
+
onDetailClick: (modelId: string) => void;
|
|
73
|
+
}
|
|
74
|
+
);
|
|
75
|
+
|
|
76
|
+
// eslint-disable-next-line @coze-arch/max-line-per-function
|
|
77
|
+
export function ModelOption({
|
|
78
|
+
model,
|
|
79
|
+
selected,
|
|
80
|
+
disabled,
|
|
81
|
+
onClick,
|
|
82
|
+
...props
|
|
83
|
+
}: ModelOptionProps) {
|
|
84
|
+
/** This ref is purely for judging whether to hover or not. */
|
|
85
|
+
const ref = useRef<HTMLElement>(null);
|
|
86
|
+
const isHovering = useHover(ref);
|
|
87
|
+
const { scene } = useBotCreatorContext();
|
|
88
|
+
|
|
89
|
+
const featureTags = model.model_tag_list
|
|
90
|
+
?.filter(t => t.tag_class === ModelTagClass.ModelFeature && t.tag_name)
|
|
91
|
+
.map(t => t.tag_name);
|
|
92
|
+
const functionTags = model.model_tag_list
|
|
93
|
+
?.filter(t => t.tag_class === ModelTagClass.ModelFunction && t.tag_name)
|
|
94
|
+
.map(t => t.tag_name);
|
|
95
|
+
|
|
96
|
+
// Paywall, open source version does not support this feature
|
|
97
|
+
const isProModel =
|
|
98
|
+
model.model_status_details?.is_new_model ||
|
|
99
|
+
model.model_status_details?.is_advanced_model;
|
|
100
|
+
const isNewModelAvailable = useBenefitAvailable({
|
|
101
|
+
scene: PremiumPaywallScene.NewModel,
|
|
102
|
+
});
|
|
103
|
+
const { node: premiumPaywallModal, open: openPremiumPaywallModal } =
|
|
104
|
+
usePremiumPaywallModal({ scene: PremiumPaywallScene.NewModel });
|
|
105
|
+
|
|
106
|
+
return (
|
|
107
|
+
<>
|
|
108
|
+
<article
|
|
109
|
+
ref={ref}
|
|
110
|
+
className={cls(
|
|
111
|
+
'pl-[16px] pr-[12px] w-full relative',
|
|
112
|
+
'flex gap-[16px] items-center rounded-[12px]',
|
|
113
|
+
selected
|
|
114
|
+
? 'coz-mg-hglt hover:coz-mg-hglt-hovered'
|
|
115
|
+
: 'hover:coz-mg-secondary-hovered active:coz-mg-secondary-pressed',
|
|
116
|
+
disabled ? 'cursor-not-allowed' : 'cursor-pointer',
|
|
117
|
+
// The following cls only hide the upper and lower dividing lines when implementing hover, active, and last (note that the dividing lines are in model-info-border, the designer's careful thought)
|
|
118
|
+
styles['model-option'],
|
|
119
|
+
// @ts-expect-error -- I don't know why the error is reported.
|
|
120
|
+
{ [styles['model-option_selected']]: selected },
|
|
121
|
+
)}
|
|
122
|
+
onClick={() => {
|
|
123
|
+
if (disabled) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
if (isProModel && !isNewModelAvailable) {
|
|
127
|
+
openPremiumPaywallModal();
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
onClick();
|
|
131
|
+
}}
|
|
132
|
+
>
|
|
133
|
+
<ModelOptionAvatar model={model} />
|
|
134
|
+
<div
|
|
135
|
+
className={cls(
|
|
136
|
+
'h-[80px] py-[12px] w-full',
|
|
137
|
+
'flex flex-col overflow-hidden',
|
|
138
|
+
'border-0 border-b border-solid coz-stroke-primary',
|
|
139
|
+
styles['model-info-border'],
|
|
140
|
+
)}
|
|
141
|
+
style={
|
|
142
|
+
isHovering
|
|
143
|
+
? {
|
|
144
|
+
mask: calcMaskStyle([
|
|
145
|
+
props.enableConfig,
|
|
146
|
+
props.enableJumpDetail,
|
|
147
|
+
]),
|
|
148
|
+
}
|
|
149
|
+
: undefined
|
|
150
|
+
}
|
|
151
|
+
>
|
|
152
|
+
<div className="w-full flex items-center gap-[6px] overflow-hidden">
|
|
153
|
+
<Typography.Title fontSize="14px" ellipsis={{ showTooltip: true }}>
|
|
154
|
+
{model.name}
|
|
155
|
+
</Typography.Title>
|
|
156
|
+
<div className="shrink-0 flex gap-[6px]">
|
|
157
|
+
{model.model_status_details?.is_free_model &&
|
|
158
|
+
scene !== BotCreatorScene.DouyinBot ? (
|
|
159
|
+
<Tag size="mini" color="primary" className="!coz-mg-plus">
|
|
160
|
+
{I18n.t('model_list_free')}
|
|
161
|
+
</Tag>
|
|
162
|
+
) : null}
|
|
163
|
+
{isProModel && !isNewModelAvailable ? (
|
|
164
|
+
<IconCozDiamondFill className="coz-fg-hglt" />
|
|
165
|
+
) : null}
|
|
166
|
+
{featureTags?.length
|
|
167
|
+
? featureTags.map(feature => (
|
|
168
|
+
<Tag
|
|
169
|
+
key={feature}
|
|
170
|
+
size="mini"
|
|
171
|
+
color="primary"
|
|
172
|
+
className="!bg-transparent !border border-solid coz-stroke-plus"
|
|
173
|
+
>
|
|
174
|
+
{feature}
|
|
175
|
+
</Tag>
|
|
176
|
+
))
|
|
177
|
+
: null}
|
|
178
|
+
</div>
|
|
179
|
+
</div>
|
|
180
|
+
<div className="flex items-center text-[12px] leading-[16px] coz-fg-dim overflow-hidden">
|
|
181
|
+
<ModelTag isFirst>
|
|
182
|
+
{((model.model_quota?.token_limit || 0) / 1024).toFixed(0)}K
|
|
183
|
+
</ModelTag>
|
|
184
|
+
<ModelTag
|
|
185
|
+
isLast={!functionTags?.length}
|
|
186
|
+
className="flex items-center gap-[4px]"
|
|
187
|
+
>
|
|
188
|
+
<span>{model.model_name}</span>
|
|
189
|
+
{model.model_status_details?.update_info ? (
|
|
190
|
+
<Tooltip content={model.model_status_details.update_info}>
|
|
191
|
+
<IconCozLongArrowUpCircle className="ml-[2px] coz-fg-hglt-green" />
|
|
192
|
+
</Tooltip>
|
|
193
|
+
) : null}
|
|
194
|
+
</ModelTag>
|
|
195
|
+
{functionTags?.length ? (
|
|
196
|
+
<Tooltip content={functionTags.join(IS_OVERSEA ? ', ' : '、')}>
|
|
197
|
+
<span className="overflow-hidden">
|
|
198
|
+
<OverflowList
|
|
199
|
+
items={functionTags}
|
|
200
|
+
visibleItemRenderer={(item, idx) => (
|
|
201
|
+
<ModelTag
|
|
202
|
+
key={idx}
|
|
203
|
+
isLast={idx === functionTags.length - 1}
|
|
204
|
+
>
|
|
205
|
+
{item}
|
|
206
|
+
</ModelTag>
|
|
207
|
+
)}
|
|
208
|
+
overflowRenderer={restItems => (
|
|
209
|
+
<span className="pl-[6px] flex items-center">{`+${restItems.length}`}</span>
|
|
210
|
+
)}
|
|
211
|
+
collapseFrom="end"
|
|
212
|
+
/>
|
|
213
|
+
</span>
|
|
214
|
+
</Tooltip>
|
|
215
|
+
) : null}
|
|
216
|
+
</div>
|
|
217
|
+
<Typography.Text
|
|
218
|
+
className="mt-[4px] text-[12px] leading-[16px] coz-fg-secondary"
|
|
219
|
+
ellipsis={{ showTooltip: true }}
|
|
220
|
+
>
|
|
221
|
+
{model.model_brief_desc}
|
|
222
|
+
</Typography.Text>
|
|
223
|
+
</div>
|
|
224
|
+
{isHovering ? (
|
|
225
|
+
<div className="absolute right-[12px] h-full flex items-center gap-[3px]">
|
|
226
|
+
{props.enableConfig ? (
|
|
227
|
+
<IconButton
|
|
228
|
+
icon={<IconCozSetting />}
|
|
229
|
+
color="secondary"
|
|
230
|
+
size="default"
|
|
231
|
+
data-testid="model_select_option.config_btn"
|
|
232
|
+
onClick={e => {
|
|
233
|
+
e.stopPropagation();
|
|
234
|
+
|
|
235
|
+
// paywall blocking
|
|
236
|
+
if (isProModel && !isNewModelAvailable) {
|
|
237
|
+
openPremiumPaywallModal();
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
if (selected) {
|
|
242
|
+
props.onConfigClick();
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
const success = onClick();
|
|
246
|
+
if (success) {
|
|
247
|
+
setTimeout(() => props.onConfigClick());
|
|
248
|
+
}
|
|
249
|
+
}}
|
|
250
|
+
/>
|
|
251
|
+
) : null}
|
|
252
|
+
{props.enableJumpDetail ? (
|
|
253
|
+
<IconButton
|
|
254
|
+
icon={<IconCozLongArrowTopRight />}
|
|
255
|
+
color="secondary"
|
|
256
|
+
size="default"
|
|
257
|
+
data-testid="model_select_option.detail_btn"
|
|
258
|
+
onClick={e => {
|
|
259
|
+
e.stopPropagation();
|
|
260
|
+
props.onDetailClick(String(model.model_type));
|
|
261
|
+
}}
|
|
262
|
+
/>
|
|
263
|
+
) : null}
|
|
264
|
+
</div>
|
|
265
|
+
) : null}
|
|
266
|
+
</article>
|
|
267
|
+
{premiumPaywallModal}
|
|
268
|
+
</>
|
|
269
|
+
);
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
function ModelTag({
|
|
273
|
+
isFirst,
|
|
274
|
+
isLast,
|
|
275
|
+
className,
|
|
276
|
+
children,
|
|
277
|
+
}: PropsWithChildren<{
|
|
278
|
+
isFirst?: boolean;
|
|
279
|
+
isLast?: boolean;
|
|
280
|
+
className?: string;
|
|
281
|
+
}>) {
|
|
282
|
+
return (
|
|
283
|
+
<div
|
|
284
|
+
className={cls(
|
|
285
|
+
{ 'pl-[6px]': !isFirst },
|
|
286
|
+
'shrink-0 flex items-center gap-[6px]',
|
|
287
|
+
)}
|
|
288
|
+
>
|
|
289
|
+
<span className={className}>{children}</span>
|
|
290
|
+
{isLast ? null : (
|
|
291
|
+
<span className="h-[9px] border-0 border-r border-solid coz-stroke-primary" />
|
|
292
|
+
)}
|
|
293
|
+
</div>
|
|
294
|
+
);
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* When hovering to display several icons (such as jumping to the model details page and detailed configuration), there should be a gradual change mask effect on the content under the icon
|
|
299
|
+
* This method is used to calculate the mask style
|
|
300
|
+
*/
|
|
301
|
+
function calcMaskStyle(buttonVisible: Array<boolean | undefined>) {
|
|
302
|
+
const btnNum = buttonVisible.reduce(
|
|
303
|
+
(prevNum, showBtn) => prevNum + (showBtn ? 1 : 0),
|
|
304
|
+
0,
|
|
305
|
+
);
|
|
306
|
+
if (btnNum === 0) {
|
|
307
|
+
return 'none';
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
const BTN_WIDTH = 32;
|
|
311
|
+
const BTN_GAP = 3;
|
|
312
|
+
/** Fixed width of mask that does not vary with the number of buttons */
|
|
313
|
+
const PRESET_PADDING = 16;
|
|
314
|
+
/** A gradual change in the width of the mask */
|
|
315
|
+
const MASK_WIDTH = 24;
|
|
316
|
+
|
|
317
|
+
const gradientStart =
|
|
318
|
+
btnNum * BTN_WIDTH + (btnNum - 1) * BTN_GAP + PRESET_PADDING;
|
|
319
|
+
const gradientEnd = gradientStart + MASK_WIDTH;
|
|
320
|
+
return `linear-gradient(to left, rgba(0,0,0,0), rgba(0,0,0,0) ${gradientStart}px, #fff ${gradientEnd}px)`;
|
|
321
|
+
}
|