Full Code of coze-dev/coze-studio for AI

main 8de249dda3ec cached
14278 files
56.4 MB
5.1M tokens
35446 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (19,712K chars total). Download the full file to get everything.
Repository: coze-dev/coze-studio
Branch: main
Commit: 8de249dda3ec
Files: 14278
Total size: 56.4 MB

Directory structure:
gitextract_xprctcyt/

├── .claude/
│   └── agents/
│       └── frontend-infrastructure-expert.md
├── .dockerignore
├── .gitattributes
├── .github/
│   ├── .licenserc.yaml
│   ├── CODEOWNERS
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   └── feature_request.md
│   ├── PULL_REQUEST_TEMPLATE.md
│   ├── scripts/
│   │   └── check-file-size.sh
│   └── workflows/
│       ├── ci.yml
│       ├── ci@backend.yml
│       ├── ci@main.yml
│       ├── claude.yml
│       ├── common-pr-checks.yml
│       ├── idl.yaml
│       ├── license-check.yaml
│       └── semantic-pull-request.yaml
├── .gitignore
├── .mcp.json
├── .nvmrc
├── .prettierrc.js
├── .vscode/
│   ├── extensions.json
│   └── settings.template.json
├── AUTHORS
├── CLAUDE.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE-APACHE
├── Makefile
├── README.md
├── README.zh_CN.md
├── backend/
│   ├── .gitignore
│   ├── .hz
│   ├── Dockerfile
│   ├── README.md
│   ├── api/
│   │   ├── handler/
│   │   │   └── coze/
│   │   │       ├── agent_run_service.go
│   │   │       ├── base.go
│   │   │       ├── bot_open_api_service.go
│   │   │       ├── config_service.go
│   │   │       ├── conversation_service.go
│   │   │       ├── database_service.go
│   │   │       ├── developer_api_service.go
│   │   │       ├── intelligence_service.go
│   │   │       ├── knowledge_service.go
│   │   │       ├── memory_service.go
│   │   │       ├── message_service.go
│   │   │       ├── message_service_test.go
│   │   │       ├── open_apiauth_service.go
│   │   │       ├── passport_service.go
│   │   │       ├── playground_service.go
│   │   │       ├── plugin_develop_service.go
│   │   │       ├── public_product_service.go
│   │   │       ├── resource_service.go
│   │   │       ├── upload_service.go
│   │   │       ├── workflow_service.go
│   │   │       └── workflow_service_test.go
│   │   ├── internal/
│   │   │   └── httputil/
│   │   │       └── error_resp.go
│   │   ├── middleware/
│   │   │   ├── ctx_cache.go
│   │   │   ├── host.go
│   │   │   ├── i18n.go
│   │   │   ├── log.go
│   │   │   ├── openapi_auth.go
│   │   │   ├── request_inspector.go
│   │   │   └── session.go
│   │   ├── model/
│   │   │   ├── admin/
│   │   │   │   └── config/
│   │   │   │       └── config.go
│   │   │   ├── app/
│   │   │   │   ├── bot_common/
│   │   │   │   │   └── bot_common.go
│   │   │   │   ├── bot_open_api/
│   │   │   │   │   └── bot_open_api.go
│   │   │   │   ├── developer_api/
│   │   │   │   │   └── developer_api.go
│   │   │   │   └── intelligence/
│   │   │   │       ├── common/
│   │   │   │       │   ├── common_struct.go
│   │   │   │       │   ├── intelligence_common_struct.go
│   │   │   │       │   └── task_struct.go
│   │   │   │       ├── intelligence.go
│   │   │   │       ├── project/
│   │   │   │       │   └── project.go
│   │   │   │       ├── publish/
│   │   │   │       │   └── publish.go
│   │   │   │       ├── search.go
│   │   │   │       └── task/
│   │   │   │           └── task.go
│   │   │   ├── base/
│   │   │   │   └── base.go
│   │   │   ├── conversation/
│   │   │   │   ├── agentrun/
│   │   │   │   │   └── agentrun_service.go
│   │   │   │   ├── common/
│   │   │   │   │   └── common.go
│   │   │   │   ├── conversation/
│   │   │   │   │   ├── conversation.go
│   │   │   │   │   └── conversation_service.go
│   │   │   │   ├── message/
│   │   │   │   │   ├── message.go
│   │   │   │   │   └── message_service.go
│   │   │   │   └── run/
│   │   │   │       └── run.go
│   │   │   ├── coze/
│   │   │   │   └── api.go
│   │   │   ├── data/
│   │   │   │   ├── database/
│   │   │   │   │   ├── database_svc.go
│   │   │   │   │   └── table/
│   │   │   │   │       └── table.go
│   │   │   │   ├── knowledge/
│   │   │   │   │   ├── common.go
│   │   │   │   │   ├── document.go
│   │   │   │   │   ├── knowledge.go
│   │   │   │   │   ├── knowledge_svc.go
│   │   │   │   │   ├── review.go
│   │   │   │   │   └── slice.go
│   │   │   │   └── variable/
│   │   │   │       ├── kvmemory/
│   │   │   │       │   └── kvmemory.go
│   │   │   │       ├── project_memory/
│   │   │   │       │   └── project_memory.go
│   │   │   │       └── variable_svc.go
│   │   │   ├── file/
│   │   │   │   └── upload/
│   │   │   │       └── upload.go
│   │   │   ├── marketplace/
│   │   │   │   ├── marketplace_common/
│   │   │   │   │   └── marketplace_common.go
│   │   │   │   ├── product_common/
│   │   │   │   │   └── product_common.go
│   │   │   │   └── product_public_api/
│   │   │   │       └── public_api.go
│   │   │   ├── passport/
│   │   │   │   └── passport.go
│   │   │   ├── permission/
│   │   │   │   └── openapiauth/
│   │   │   │       ├── openapiauth.go
│   │   │   │       └── openapiauth_service.go
│   │   │   ├── playground/
│   │   │   │   ├── playground.go
│   │   │   │   ├── prompt_resource.go
│   │   │   │   └── shortcut_command.go
│   │   │   ├── plugin_develop/
│   │   │   │   ├── common/
│   │   │   │   │   └── plugin_develop_common.go
│   │   │   │   └── plugin_develop.go
│   │   │   ├── resource/
│   │   │   │   ├── common/
│   │   │   │   │   └── resource_common.go
│   │   │   │   └── resource.go
│   │   │   └── workflow/
│   │   │       ├── trace.go
│   │   │       ├── workflow.go
│   │   │       └── workflow_svc.go
│   │   └── router/
│   │       ├── coze/
│   │       │   ├── api.go
│   │       │   └── middleware.go
│   │       └── register.go
│   ├── application/
│   │   ├── app/
│   │   │   ├── app.go
│   │   │   ├── convert.go
│   │   │   ├── init.go
│   │   │   └── model.go
│   │   ├── application.go
│   │   ├── base/
│   │   │   ├── appinfra/
│   │   │   │   └── app_infra.go
│   │   │   └── ctxutil/
│   │   │       ├── api_auth.go
│   │   │       ├── request.go
│   │   │       └── session.go
│   │   ├── connector/
│   │   │   ├── connector.go
│   │   │   └── init.go
│   │   ├── conversation/
│   │   │   ├── agent_run.go
│   │   │   ├── build_chunk_event.go
│   │   │   ├── conversation.go
│   │   │   ├── init.go
│   │   │   ├── message.go
│   │   │   ├── openapi_agent_run.go
│   │   │   ├── openapi_agent_run_test.go
│   │   │   └── openapi_message.go
│   │   ├── knowledge/
│   │   │   ├── convertor.go
│   │   │   ├── init.go
│   │   │   └── knowledge.go
│   │   ├── memory/
│   │   │   ├── convertor.go
│   │   │   ├── database.go
│   │   │   ├── init.go
│   │   │   └── variables.go
│   │   ├── modelmgr/
│   │   │   ├── init.go
│   │   │   └── modelmgr.go
│   │   ├── openauth/
│   │   │   ├── init.go
│   │   │   └── openapiauth.go
│   │   ├── permission/
│   │   │   └── init.go
│   │   ├── plugin/
│   │   │   ├── api_management.go
│   │   │   ├── auth.go
│   │   │   ├── info.go
│   │   │   ├── init.go
│   │   │   ├── lifecycle.go
│   │   │   ├── playground.go
│   │   │   ├── plugin.go
│   │   │   ├── plugin_test.go
│   │   │   └── registration.go
│   │   ├── prompt/
│   │   │   ├── init.go
│   │   │   └── prompt.go
│   │   ├── search/
│   │   │   ├── init.go
│   │   │   ├── project_pack.go
│   │   │   ├── project_search.go
│   │   │   ├── resource_pack.go
│   │   │   └── resource_search.go
│   │   ├── shortcutcmd/
│   │   │   ├── init.go
│   │   │   └── shortcut_cmd.go
│   │   ├── singleagent/
│   │   │   ├── create.go
│   │   │   ├── duplicate.go
│   │   │   ├── get.go
│   │   │   ├── image.go
│   │   │   ├── init.go
│   │   │   ├── publish.go
│   │   │   └── single_agent.go
│   │   ├── template/
│   │   │   ├── init.go
│   │   │   └── template.go
│   │   ├── upload/
│   │   │   ├── consts.go
│   │   │   └── icon.go
│   │   ├── user/
│   │   │   ├── init.go
│   │   │   └── user.go
│   │   └── workflow/
│   │       ├── chatflow.go
│   │       ├── chatflow_test.go
│   │       ├── eventbus.go
│   │       ├── init.go
│   │       ├── workflow.go
│   │       └── workflow_test.go
│   ├── bizpkg/
│   │   ├── config/
│   │   │   ├── base/
│   │   │   │   └── base.go
│   │   │   ├── config.go
│   │   │   ├── knowledge/
│   │   │   │   └── knowledge.go
│   │   │   └── modelmgr/
│   │   │       ├── builtin_conf.go
│   │   │       ├── deprecate_model_get.go
│   │   │       ├── extra.go
│   │   │       ├── internal/
│   │   │       │   ├── model/
│   │   │       │   │   └── model_instance.gen.go
│   │   │       │   └── query/
│   │   │       │       ├── gen.go
│   │   │       │       └── model_instance.gen.go
│   │   │       ├── mode_provider.go
│   │   │       ├── model_get.go
│   │   │       ├── model_meta.go
│   │   │       ├── model_param.go
│   │   │       ├── model_save.go
│   │   │       └── modelmgr.go
│   │   ├── debugutil/
│   │   │   └── workflow_debug.go
│   │   ├── fileutil/
│   │   │   ├── fileutil.go
│   │   │   └── pyutil.go
│   │   └── llm/
│   │       └── modelbuilder/
│   │           ├── ark.go
│   │           ├── builtin.go
│   │           ├── claude.go
│   │           ├── deepseek.go
│   │           ├── gemini.go
│   │           ├── llm_params.go
│   │           ├── model_builder.go
│   │           ├── ollama.go
│   │           ├── openai.go
│   │           └── qwen.go
│   ├── build.sh
│   ├── conf/
│   │   ├── admin/
│   │   │   └── index.html
│   │   ├── model/
│   │   │   ├── model_meta.json
│   │   │   └── template/
│   │   │       ├── model_template_ark.yaml
│   │   │       ├── model_template_ark_doubao-1.5-lite.yaml
│   │   │       ├── model_template_ark_doubao-1.5-pro-256k.yaml
│   │   │       ├── model_template_ark_doubao-1.5-pro-32k.yaml
│   │   │       ├── model_template_ark_doubao-1.5-thinking-pro.yaml
│   │   │       ├── model_template_ark_doubao-1.5-thinking-vision-pro.yaml
│   │   │       ├── model_template_ark_doubao-1.5-vision-lite.yaml
│   │   │       ├── model_template_ark_doubao-1.5-vision-pro.yaml
│   │   │       ├── model_template_ark_doubao-seed-1.6-flash.yaml
│   │   │       ├── model_template_ark_doubao-seed-1.6-thinking.yaml
│   │   │       ├── model_template_ark_doubao-seed-1.6.yaml
│   │   │       ├── model_template_ark_volc_deepseek-r1.yaml
│   │   │       ├── model_template_ark_volc_deepseek-v3.yaml
│   │   │       ├── model_template_basic.yaml
│   │   │       ├── model_template_byteplus_seed-1.6-flash.yaml
│   │   │       ├── model_template_byteplus_seed-1.6.yaml
│   │   │       ├── model_template_claude.yaml
│   │   │       ├── model_template_deepseek.yaml
│   │   │       ├── model_template_gemini.yaml
│   │   │       ├── model_template_ollama.yaml
│   │   │       ├── model_template_openai.yaml
│   │   │       └── model_template_qwen.yaml
│   │   ├── plugin/
│   │   │   ├── common/
│   │   │   │   └── oauth_schema.json
│   │   │   └── pluginproduct/
│   │   │       ├── bocha_search.yaml
│   │   │       ├── chestnut_sign.yaml
│   │   │       ├── gaode_map.yaml
│   │   │       ├── image_compression.yaml
│   │   │       ├── lark_authentication_authorization.yaml
│   │   │       ├── lark_base.yaml
│   │   │       ├── lark_calendar.yaml
│   │   │       ├── lark_docx.yaml
│   │   │       ├── lark_message.yaml
│   │   │       ├── lark_sheet.yaml
│   │   │       ├── lark_task.yaml
│   │   │       ├── lark_wiki.yaml
│   │   │       ├── library_search.yaml
│   │   │       ├── maker_smart_design.yaml
│   │   │       ├── plugin_meta.yaml
│   │   │       ├── sky_eye_check.yaml
│   │   │       ├── sohu_hot_news.yaml
│   │   │       ├── wolfram_alpha.yaml
│   │   │       └── worth_buying.yaml
│   │   ├── prompt/
│   │   │   ├── messages_to_query_template_jinja2.json
│   │   │   └── nl2sql_template_jinja2.json
│   │   └── workflow/
│   │       └── config.yaml
│   ├── crossdomain/
│   │   ├── agent/
│   │   │   ├── contract.go
│   │   │   ├── impl/
│   │   │   │   └── single_agent.go
│   │   │   └── model/
│   │   │       └── single_agent.go
│   │   ├── agentrun/
│   │   │   ├── agentrunmock/
│   │   │   │   └── agent_run_mock.go
│   │   │   ├── contract.go
│   │   │   ├── impl/
│   │   │   │   └── agent_run.go
│   │   │   └── model/
│   │   │       └── agent_run.go
│   │   ├── app/
│   │   │   ├── contract.go
│   │   │   ├── impl/
│   │   │   │   └── app.go
│   │   │   └── model/
│   │   │       ├── app.go
│   │   │       ├── connector.go
│   │   │       └── consts.go
│   │   ├── connector/
│   │   │   ├── contract.go
│   │   │   ├── impl/
│   │   │   │   └── connector.go
│   │   │   └── model/
│   │   │       └── connector.go
│   │   ├── conversation/
│   │   │   ├── contract.go
│   │   │   ├── conversationmock/
│   │   │   │   └── conversation_mock.go
│   │   │   ├── impl/
│   │   │   │   └── conversation.go
│   │   │   └── model/
│   │   │       └── conversation.go
│   │   ├── database/
│   │   │   ├── contract.go
│   │   │   ├── databasemock/
│   │   │   │   └── database_mock.go
│   │   │   ├── impl/
│   │   │   │   └── database.go
│   │   │   └── model/
│   │   │       ├── const.go
│   │   │       └── database.go
│   │   ├── datacopy/
│   │   │   ├── contract.go
│   │   │   ├── impl/
│   │   │   │   └── datacopy.go
│   │   │   └── model/
│   │   │       └── .gitkeep
│   │   ├── knowledge/
│   │   │   ├── contract.go
│   │   │   ├── impl/
│   │   │   │   └── knowledge.go
│   │   │   ├── knowledgemock/
│   │   │   │   └── knowledge_mock.go
│   │   │   └── model/
│   │   │       └── knowledge.go
│   │   ├── message/
│   │   │   ├── contract.go
│   │   │   ├── impl/
│   │   │   │   ├── message.go
│   │   │   │   └── message_test.go
│   │   │   ├── messagemock/
│   │   │   │   └── message_mock.go
│   │   │   └── model/
│   │   │       └── message.go
│   │   ├── permission/
│   │   │   ├── contract.go
│   │   │   ├── impl/
│   │   │   │   └── permission.go
│   │   │   ├── model/
│   │   │   │   └── permission.go
│   │   │   └── permissionmock/
│   │   │       └── permission_mock.go
│   │   ├── plugin/
│   │   │   ├── consts/
│   │   │   │   └── consts.go
│   │   │   ├── contract.go
│   │   │   ├── convert/
│   │   │   │   ├── api/
│   │   │   │   │   └── api.go
│   │   │   │   ├── auth.go
│   │   │   │   ├── format.go
│   │   │   │   ├── http.go
│   │   │   │   ├── param.go
│   │   │   │   └── plugin.go
│   │   │   ├── impl/
│   │   │   │   └── plugin.go
│   │   │   ├── model/
│   │   │   │   ├── default.go
│   │   │   │   ├── openapi.go
│   │   │   │   ├── option.go
│   │   │   │   ├── plugin.go
│   │   │   │   ├── plugin_manifest.go
│   │   │   │   ├── plugin_method.go
│   │   │   │   └── toolinfo.go
│   │   │   └── pluginmock/
│   │   │       └── plugin_mock.go
│   │   ├── search/
│   │   │   ├── contract.go
│   │   │   ├── impl/
│   │   │   │   └── search.go
│   │   │   └── model/
│   │   │       ├── resource_doc.go
│   │   │       └── search.go
│   │   ├── upload/
│   │   │   ├── contract.go
│   │   │   ├── impl/
│   │   │   │   └── upload.go
│   │   │   └── uploadmock/
│   │   │       └── upload_mock.go
│   │   ├── user/
│   │   │   ├── contract.go
│   │   │   └── impl/
│   │   │       └── user.go
│   │   ├── variables/
│   │   │   ├── contract.go
│   │   │   ├── impl/
│   │   │   │   └── variables.go
│   │   │   └── model/
│   │   │       └── variable_instance.go
│   │   └── workflow/
│   │       ├── contract.go
│   │       ├── impl/
│   │       │   └── workflow.go
│   │       └── model/
│   │           └── workflow.go
│   ├── domain/
│   │   ├── agent/
│   │   │   └── singleagent/
│   │   │       ├── entity/
│   │   │       │   ├── agent_draft_display_info.go
│   │   │       │   ├── agent_event.go
│   │   │       │   ├── publish.go
│   │   │       │   ├── single_agent.go
│   │   │       │   └── single_agent_pulish.go
│   │   │       ├── internal/
│   │   │       │   ├── agentflow/
│   │   │       │   │   ├── agent_flow_builder.go
│   │   │       │   │   ├── agent_flow_builder_test.go
│   │   │       │   │   ├── agent_flow_runner.go
│   │   │       │   │   ├── callback_reply_chunk.go
│   │   │       │   │   ├── node_chat_prompt.go
│   │   │       │   │   ├── node_persona_render.go
│   │   │       │   │   ├── node_prompt_variables.go
│   │   │       │   │   ├── node_retriever.go
│   │   │       │   │   ├── node_suggest_graph.go
│   │   │       │   │   ├── node_suggest_parser.go
│   │   │       │   │   ├── node_suggest_persona_render.go
│   │   │       │   │   ├── node_suggest_prompt_variable.go
│   │   │       │   │   ├── node_tool_database.go
│   │   │       │   │   ├── node_tool_database_test.go
│   │   │       │   │   ├── node_tool_knowledge.go
│   │   │       │   │   ├── node_tool_plugin.go
│   │   │       │   │   ├── node_tool_pre_retriever.go
│   │   │       │   │   ├── node_tool_variables.go
│   │   │       │   │   ├── node_tool_workflow.go
│   │   │       │   │   ├── suggest_prompt.go
│   │   │       │   │   └── system_prompt.go
│   │   │       │   └── dal/
│   │   │       │       ├── agent_display_info.go
│   │   │       │       ├── counter.go
│   │   │       │       ├── model/
│   │   │       │       │   ├── single_agent_draft.gen.go
│   │   │       │       │   ├── single_agent_publish.gen.go
│   │   │       │       │   └── single_agent_version.gen.go
│   │   │       │       ├── query/
│   │   │       │       │   ├── gen.go
│   │   │       │       │   ├── single_agent_draft.gen.go
│   │   │       │       │   ├── single_agent_publish.gen.go
│   │   │       │       │   └── single_agent_version.gen.go
│   │   │       │       ├── single_agent_draft.go
│   │   │       │       ├── single_agent_publish.go
│   │   │       │       └── single_agent_version.go
│   │   │       ├── repository/
│   │   │       │   └── repository.go
│   │   │       └── service/
│   │   │           ├── count_info.go
│   │   │           ├── publish.go
│   │   │           ├── single_agent.go
│   │   │           └── single_agent_impl.go
│   │   ├── app/
│   │   │   ├── entity/
│   │   │   │   ├── app.go
│   │   │   │   ├── connector.go
│   │   │   │   └── consts.go
│   │   │   ├── internal/
│   │   │   │   └── dal/
│   │   │   │       ├── app_connector_release_ref.go
│   │   │   │       ├── app_draft.go
│   │   │   │       ├── app_release_record.go
│   │   │   │       ├── cache.go
│   │   │   │       ├── model/
│   │   │   │       │   ├── app_connector_release_ref.gen.go
│   │   │   │       │   ├── app_draft.gen.go
│   │   │   │       │   └── app_release_record.gen.go
│   │   │   │       ├── option.go
│   │   │   │       └── query/
│   │   │   │           ├── app_connector_release_ref.gen.go
│   │   │   │           ├── app_draft.gen.go
│   │   │   │           ├── app_release_record.gen.go
│   │   │   │           └── gen.go
│   │   │   ├── repository/
│   │   │   │   ├── app.go
│   │   │   │   ├── app_impl.go
│   │   │   │   └── option.go
│   │   │   └── service/
│   │   │       ├── publish_app.go
│   │   │       ├── service.go
│   │   │       └── service_impl.go
│   │   ├── connector/
│   │   │   ├── entity/
│   │   │   │   └── connector.go
│   │   │   └── service/
│   │   │       ├── connector.go
│   │   │       ├── connector_impl.go
│   │   │       └── connector_impl_test.go
│   │   ├── conversation/
│   │   │   ├── agentrun/
│   │   │   │   ├── entity/
│   │   │   │   │   ├── const.go
│   │   │   │   │   ├── interrupt_event.go
│   │   │   │   │   └── run_record.go
│   │   │   │   ├── internal/
│   │   │   │   │   ├── agent_info.go
│   │   │   │   │   ├── chatflow_run.go
│   │   │   │   │   ├── dal/
│   │   │   │   │   │   ├── dao.go
│   │   │   │   │   │   ├── model/
│   │   │   │   │   │   │   └── run_record.gen.go
│   │   │   │   │   │   └── query/
│   │   │   │   │   │       ├── gen.go
│   │   │   │   │   │       └── run_record.gen.go
│   │   │   │   │   ├── message_builder.go
│   │   │   │   │   ├── message_builder_test.go
│   │   │   │   │   ├── message_event.go
│   │   │   │   │   ├── run.go
│   │   │   │   │   ├── run_process_event.go
│   │   │   │   │   └── singleagent_run.go
│   │   │   │   ├── repository/
│   │   │   │   │   └── repository.go
│   │   │   │   └── service/
│   │   │   │       ├── agent_run.go
│   │   │   │       ├── agent_run_impl.go
│   │   │   │       └── agent_run_test.go
│   │   │   ├── conversation/
│   │   │   │   ├── entity/
│   │   │   │   │   └── conversation.go
│   │   │   │   ├── internal/
│   │   │   │   │   └── dal/
│   │   │   │   │       ├── dao.go
│   │   │   │   │       ├── model/
│   │   │   │   │       │   └── conversation.gen.go
│   │   │   │   │       └── query/
│   │   │   │   │           ├── conversation.gen.go
│   │   │   │   │           └── gen.go
│   │   │   │   ├── repository/
│   │   │   │   │   └── repository.go
│   │   │   │   └── service/
│   │   │   │       ├── conversation.go
│   │   │   │       ├── conversation_impl.go
│   │   │   │       └── conversation_test.go
│   │   │   └── message/
│   │   │       ├── entity/
│   │   │       │   ├── const.go
│   │   │       │   ├── knowledge.go
│   │   │       │   ├── message.go
│   │   │       │   └── message_ext.go
│   │   │       ├── internal/
│   │   │       │   └── dal/
│   │   │       │       ├── message.go
│   │   │       │       ├── model/
│   │   │       │       │   └── message.gen.go
│   │   │       │       └── query/
│   │   │       │           ├── gen.go
│   │   │       │           └── message.gen.go
│   │   │       ├── repository/
│   │   │       │   └── repository.go
│   │   │       └── service/
│   │   │           ├── message.go
│   │   │           ├── message_impl.go
│   │   │           └── message_test.go
│   │   ├── datacopy/
│   │   │   ├── entity/
│   │   │   │   └── entity.go
│   │   │   ├── interface.go
│   │   │   ├── internal/
│   │   │   │   ├── convert/
│   │   │   │   │   └── convert.go
│   │   │   │   └── dal/
│   │   │   │       ├── dao/
│   │   │   │       │   └── data_copy_task.go
│   │   │   │       ├── model/
│   │   │   │       │   └── data_copy_task.gen.go
│   │   │   │       └── query/
│   │   │   │           ├── data_copy_task.gen.go
│   │   │   │           └── gen.go
│   │   │   └── service/
│   │   │       └── datacopy.go
│   │   ├── knowledge/
│   │   │   ├── entity/
│   │   │   │   ├── const.go
│   │   │   │   ├── document.go
│   │   │   │   ├── event.go
│   │   │   │   ├── knowledge.go
│   │   │   │   ├── review.go
│   │   │   │   ├── slice.go
│   │   │   │   └── strategy.go
│   │   │   ├── internal/
│   │   │   │   ├── consts/
│   │   │   │   │   └── consts.go
│   │   │   │   ├── convert/
│   │   │   │   │   ├── parser.go
│   │   │   │   │   ├── rdb.go
│   │   │   │   │   ├── table.go
│   │   │   │   │   └── table_test.go
│   │   │   │   ├── dal/
│   │   │   │   │   ├── dao/
│   │   │   │   │   │   ├── knowledge.go
│   │   │   │   │   │   ├── knowledge_document.go
│   │   │   │   │   │   ├── knowledge_document_review.go
│   │   │   │   │   │   ├── knowledge_document_slice.go
│   │   │   │   │   │   ├── knowledge_document_test.go
│   │   │   │   │   │   └── knowledge_test.go
│   │   │   │   │   ├── model/
│   │   │   │   │   │   ├── knowledge.gen.go
│   │   │   │   │   │   ├── knowledge_document.gen.go
│   │   │   │   │   │   ├── knowledge_document_review.gen.go
│   │   │   │   │   │   ├── knowledge_document_slice.gen.go
│   │   │   │   │   │   ├── progress.go
│   │   │   │   │   │   └── strategy.go
│   │   │   │   │   └── query/
│   │   │   │   │       ├── gen.go
│   │   │   │   │       ├── knowledge.gen.go
│   │   │   │   │       ├── knowledge_document.gen.go
│   │   │   │   │       ├── knowledge_document_review.gen.go
│   │   │   │   │       └── knowledge_document_slice.gen.go
│   │   │   │   ├── events/
│   │   │   │   │   └── events.go
│   │   │   │   └── mock/
│   │   │   │       └── dal/
│   │   │   │           └── dao/
│   │   │   │               ├── knowledge.go
│   │   │   │               ├── knowledge_document.go
│   │   │   │               └── knowledge_document_slice.go
│   │   │   ├── processor/
│   │   │   │   ├── impl/
│   │   │   │   │   ├── base.go
│   │   │   │   │   ├── custom_doc.go
│   │   │   │   │   ├── custom_table.go
│   │   │   │   │   ├── init.go
│   │   │   │   │   ├── local_table.go
│   │   │   │   │   └── utils.go
│   │   │   │   └── interface.go
│   │   │   ├── repository/
│   │   │   │   └── repository.go
│   │   │   └── service/
│   │   │       ├── convert.go
│   │   │       ├── datacopy.go
│   │   │       ├── event_handle.go
│   │   │       ├── event_handle_test.go
│   │   │       ├── interface.go
│   │   │       ├── knowledge.go
│   │   │       ├── knowledge_integration_test.go
│   │   │       ├── knowledge_test.go
│   │   │       ├── rdb.go
│   │   │       ├── retrieve.go
│   │   │       ├── retrieve_test.go
│   │   │       ├── sheet.go
│   │   │       ├── sheet_test.go
│   │   │       └── validate.go
│   │   ├── memory/
│   │   │   ├── database/
│   │   │   │   ├── entity/
│   │   │   │   │   └── database.go
│   │   │   │   ├── internal/
│   │   │   │   │   ├── convertor/
│   │   │   │   │   │   ├── database.go
│   │   │   │   │   │   └── types.go
│   │   │   │   │   ├── dal/
│   │   │   │   │   │   ├── agent_to_database.go
│   │   │   │   │   │   ├── draft_database_info.go
│   │   │   │   │   │   ├── model/
│   │   │   │   │   │   │   ├── agent_to_database.gen.go
│   │   │   │   │   │   │   ├── draft_database_info.gen.go
│   │   │   │   │   │   │   └── online_database_info.gen.go
│   │   │   │   │   │   ├── online_database_info.go
│   │   │   │   │   │   └── query/
│   │   │   │   │   │       ├── agent_to_database.gen.go
│   │   │   │   │   │       ├── draft_database_info.gen.go
│   │   │   │   │   │       ├── gen.go
│   │   │   │   │   │       └── online_database_info.gen.go
│   │   │   │   │   ├── physicaltable/
│   │   │   │   │   │   └── physical.go
│   │   │   │   │   └── sheet/
│   │   │   │   │       └── sheet.go
│   │   │   │   ├── repository/
│   │   │   │   │   └── repository.go
│   │   │   │   └── service/
│   │   │   │       ├── database.go
│   │   │   │       ├── database_impl.go
│   │   │   │       └── database_impl_test.go
│   │   │   └── variables/
│   │   │       ├── entity/
│   │   │       │   ├── sys_variables.go
│   │   │       │   ├── variable_instance.go
│   │   │       │   ├── variable_meta.go
│   │   │       │   ├── variable_meta_schema.go
│   │   │       │   └── variables_meta.go
│   │   │       ├── internal/
│   │   │       │   └── dal/
│   │   │       │       ├── dal.go
│   │   │       │       ├── model/
│   │   │       │       │   ├── variable_instance.gen.go
│   │   │       │       │   └── variables_meta.gen.go
│   │   │       │       ├── query/
│   │   │       │       │   ├── gen.go
│   │   │       │       │   ├── variable_instance.gen.go
│   │   │       │       │   └── variables_meta.gen.go
│   │   │       │       ├── variable_instance.go
│   │   │       │       └── variables_meta.go
│   │   │       ├── repository/
│   │   │       │   └── repository.go
│   │   │       └── service/
│   │   │           ├── variables.go
│   │   │           └── variables_impl.go
│   │   ├── openauth/
│   │   │   └── openapiauth/
│   │   │       ├── api_auth.go
│   │   │       ├── api_auth_impl.go
│   │   │       ├── api_auth_impl_test.go
│   │   │       ├── entity/
│   │   │       │   ├── api_auth.go
│   │   │       │   └── consts.go
│   │   │       └── internal/
│   │   │           └── dal/
│   │   │               ├── api_key.go
│   │   │               ├── model/
│   │   │               │   └── api_key.gen.go
│   │   │               └── query/
│   │   │                   ├── api_key.gen.go
│   │   │                   └── gen.go
│   │   ├── permission/
│   │   │   ├── authz_checker.go
│   │   │   ├── consts.go
│   │   │   ├── permission.go
│   │   │   ├── permission_impl.go
│   │   │   └── resource_queryiers.go
│   │   ├── plugin/
│   │   │   ├── conf/
│   │   │   │   ├── config.go
│   │   │   │   └── load_plugin.go
│   │   │   ├── dto/
│   │   │   │   ├── auth.go
│   │   │   │   ├── coze_saas.go
│   │   │   │   ├── plugin.go
│   │   │   │   └── tool.go
│   │   │   ├── encrypt/
│   │   │   │   ├── aes.go
│   │   │   │   └── aes_test.go
│   │   │   ├── entity/
│   │   │   │   ├── plugin.go
│   │   │   │   └── tool.go
│   │   │   ├── internal/
│   │   │   │   ├── dal/
│   │   │   │   │   ├── agent_tool_draft.go
│   │   │   │   │   ├── agent_tool_version.go
│   │   │   │   │   ├── cache.go
│   │   │   │   │   ├── model/
│   │   │   │   │   │   ├── agent_tool_draft.gen.go
│   │   │   │   │   │   ├── agent_tool_version.gen.go
│   │   │   │   │   │   ├── plugin.gen.go
│   │   │   │   │   │   ├── plugin_draft.gen.go
│   │   │   │   │   │   ├── plugin_oauth_auth.gen.go
│   │   │   │   │   │   ├── plugin_version.gen.go
│   │   │   │   │   │   ├── tool.gen.go
│   │   │   │   │   │   ├── tool_draft.gen.go
│   │   │   │   │   │   └── tool_version.gen.go
│   │   │   │   │   ├── option.go
│   │   │   │   │   ├── plugin.go
│   │   │   │   │   ├── plugin_draft.go
│   │   │   │   │   ├── plugin_oauth_auth.go
│   │   │   │   │   ├── plugin_version.go
│   │   │   │   │   ├── query/
│   │   │   │   │   │   ├── agent_tool_draft.gen.go
│   │   │   │   │   │   ├── agent_tool_version.gen.go
│   │   │   │   │   │   ├── gen.go
│   │   │   │   │   │   ├── plugin.gen.go
│   │   │   │   │   │   ├── plugin_draft.gen.go
│   │   │   │   │   │   ├── plugin_oauth_auth.gen.go
│   │   │   │   │   │   ├── plugin_version.gen.go
│   │   │   │   │   │   ├── tool.gen.go
│   │   │   │   │   │   ├── tool_draft.gen.go
│   │   │   │   │   │   └── tool_version.gen.go
│   │   │   │   │   ├── tool.go
│   │   │   │   │   ├── tool_draft.go
│   │   │   │   │   └── tool_version.go
│   │   │   │   ├── encoder/
│   │   │   │   │   └── req_encode.go
│   │   │   │   └── openapi/
│   │   │   │       └── convert_protocol.go
│   │   │   ├── repository/
│   │   │   │   ├── mock/
│   │   │   │   │   └── mock_oauth_repository.go
│   │   │   │   ├── oauth_impl.go
│   │   │   │   ├── oauth_repository.go
│   │   │   │   ├── option.go
│   │   │   │   ├── plugin_impl.go
│   │   │   │   ├── plugin_repository.go
│   │   │   │   ├── tool_impl.go
│   │   │   │   ├── tool_impl_test.go
│   │   │   │   └── tool_repository.go
│   │   │   └── service/
│   │   │       ├── agent_tool.go
│   │   │       ├── exec_tool.go
│   │   │       ├── exec_tool_test.go
│   │   │       ├── plugin_auth.go
│   │   │       ├── plugin_draft.go
│   │   │       ├── plugin_oauth.go
│   │   │       ├── plugin_oauth_test.go
│   │   │       ├── plugin_online.go
│   │   │       ├── plugin_release.go
│   │   │       ├── plugin_saas.go
│   │   │       ├── plugin_saas_test.go
│   │   │       ├── service.go
│   │   │       ├── service_impl.go
│   │   │       └── tool/
│   │   │           ├── invocation.go
│   │   │           ├── invocation_args.go
│   │   │           ├── invocation_custom_call.go
│   │   │           ├── invocation_http.go
│   │   │           ├── invocation_mcp.go
│   │   │           └── invocation_saas.go
│   │   ├── prompt/
│   │   │   ├── entity/
│   │   │   │   └── promot_resource.go
│   │   │   ├── internal/
│   │   │   │   ├── dal/
│   │   │   │   │   ├── model/
│   │   │   │   │   │   └── prompt_resource.gen.go
│   │   │   │   │   ├── prompt_resource.go
│   │   │   │   │   └── query/
│   │   │   │   │       ├── gen.go
│   │   │   │   │       └── prompt_resource.gen.go
│   │   │   │   └── official/
│   │   │   │       ├── official_prompt.go
│   │   │   │       └── official_prompt_test.go
│   │   │   ├── repository/
│   │   │   │   └── repository.go
│   │   │   └── service/
│   │   │       ├── prompt.go
│   │   │       └── prompt_impl.go
│   │   ├── search/
│   │   │   ├── entity/
│   │   │   │   ├── project_doc.go
│   │   │   │   ├── project_event.go
│   │   │   │   ├── resource_doc.go
│   │   │   │   ├── resources_event.go
│   │   │   │   └── search.go
│   │   │   └── service/
│   │   │       ├── eventbus.go
│   │   │       ├── handler_project.go
│   │   │       ├── handler_resource.go
│   │   │       ├── search.go
│   │   │       └── service.go
│   │   ├── shortcutcmd/
│   │   │   ├── entity/
│   │   │   │   └── shortcut_cmd.go
│   │   │   ├── internal/
│   │   │   │   └── dal/
│   │   │   │       ├── dao.go
│   │   │   │       ├── model/
│   │   │   │       │   └── shortcut_command.gen.go
│   │   │   │       └── query/
│   │   │   │           ├── gen.go
│   │   │   │           └── shortcut_command.gen.go
│   │   │   ├── repository/
│   │   │   │   └── repository.go
│   │   │   └── service/
│   │   │       ├── shortcut_cmd.go
│   │   │       └── shortcut_cmd_impl.go
│   │   ├── template/
│   │   │   ├── entity/
│   │   │   │   └── template.go
│   │   │   ├── internal/
│   │   │   │   └── dal/
│   │   │   │       ├── model/
│   │   │   │       │   └── template.gen.go
│   │   │   │       ├── query/
│   │   │   │       │   ├── gen.go
│   │   │   │       │   └── template.gen.go
│   │   │   │       └── template.go
│   │   │   └── repository/
│   │   │       └── repository.go
│   │   ├── upload/
│   │   │   ├── entity/
│   │   │   │   ├── default_icon_uri.go
│   │   │   │   └── file.go
│   │   │   ├── internal/
│   │   │   │   └── dal/
│   │   │   │       ├── dao/
│   │   │   │       │   └── files.go
│   │   │   │       ├── model/
│   │   │   │       │   └── files.gen.go
│   │   │   │       └── query/
│   │   │   │           ├── files.gen.go
│   │   │   │           └── gen.go
│   │   │   ├── repository/
│   │   │   │   └── repository.go
│   │   │   └── service/
│   │   │       ├── interface.go
│   │   │       └── service.go
│   │   ├── user/
│   │   │   ├── entity/
│   │   │   │   ├── saas_user.go
│   │   │   │   ├── session.go
│   │   │   │   ├── space.go
│   │   │   │   └── user.go
│   │   │   ├── internal/
│   │   │   │   └── dal/
│   │   │   │       ├── model/
│   │   │   │       │   ├── space.gen.go
│   │   │   │       │   ├── space_user.gen.go
│   │   │   │       │   └── user.gen.go
│   │   │   │       ├── query/
│   │   │   │       │   ├── gen.go
│   │   │   │       │   ├── space.gen.go
│   │   │   │       │   ├── space_user.gen.go
│   │   │   │       │   └── user.gen.go
│   │   │   │       ├── space.go
│   │   │   │       ├── space_user.go
│   │   │   │       └── user.go
│   │   │   ├── repository/
│   │   │   │   └── repository.go
│   │   │   └── service/
│   │   │       ├── user.go
│   │   │       ├── user_impl.go
│   │   │       └── user_saas_impl.go
│   │   └── workflow/
│   │       ├── component_interface.go
│   │       ├── config/
│   │       │   └── workflow_config.go
│   │       ├── entity/
│   │       │   ├── chatflow_role.go
│   │       │   ├── conversation.go
│   │       │   ├── interrupt_event.go
│   │       │   ├── message.go
│   │       │   ├── node_meta.go
│   │       │   ├── vo/
│   │       │   │   ├── canvas.go
│   │       │   │   ├── chat_flow_role.go
│   │       │   │   ├── chatflow.go
│   │       │   │   ├── conversation.go
│   │       │   │   ├── curd.go
│   │       │   │   ├── draft.go
│   │       │   │   ├── meta.go
│   │       │   │   ├── modelmgr.go
│   │       │   │   ├── node.go
│   │       │   │   ├── node_test.go
│   │       │   │   ├── plugin_tool_info.go
│   │       │   │   ├── validate_info.go
│   │       │   │   ├── version_info.go
│   │       │   │   ├── workflow_copy.go
│   │       │   │   ├── workflow_info.go
│   │       │   │   ├── workflow_publish.go
│   │       │   │   └── workflow_tool.go
│   │       │   ├── workflow.go
│   │       │   ├── workflow_execution.go
│   │       │   └── workflow_reference.go
│   │       ├── interface.go
│   │       ├── internal/
│   │       │   ├── canvas/
│   │       │   │   ├── adaptor/
│   │       │   │   │   ├── canvas_test.go
│   │       │   │   │   ├── from_node.go
│   │       │   │   │   └── to_schema.go
│   │       │   │   ├── convert/
│   │       │   │   │   └── type_convert.go
│   │       │   │   ├── examples/
│   │       │   │   │   ├── app_variables_for_sub_process.json
│   │       │   │   │   ├── batch/
│   │       │   │   │   │   ├── batch_with_inner_interrupt.json
│   │       │   │   │   │   ├── node_batches.json
│   │       │   │   │   │   └── sub_workflow_as_batch.json
│   │       │   │   │   ├── chatflow/
│   │       │   │   │   │   ├── chat_run_with_interrupt.json
│   │       │   │   │   │   ├── llm_chat.json
│   │       │   │   │   │   ├── llm_chat_with_history.json
│   │       │   │   │   │   ├── new_chatflow.json
│   │       │   │   │   │   └── start_exit.json
│   │       │   │   │   ├── code_plugin.json
│   │       │   │   │   ├── conversation_manager/
│   │       │   │   │   │   ├── conversation_history.json
│   │       │   │   │   │   ├── conversation_list.json
│   │       │   │   │   │   ├── create_conversation.json
│   │       │   │   │   │   ├── delete_conversation.json
│   │       │   │   │   │   ├── update_conversation.json
│   │       │   │   │   │   └── update_dynamic_conversation.json
│   │       │   │   │   ├── copy_to_app/
│   │       │   │   │   │   ├── child2_1.json
│   │       │   │   │   │   ├── child_1.json
│   │       │   │   │   │   ├── child_2.json
│   │       │   │   │   │   ├── child_3.json
│   │       │   │   │   │   ├── child_4.json
│   │       │   │   │   │   ├── child_5.json
│   │       │   │   │   │   ├── main.json
│   │       │   │   │   │   └── main2.json
│   │       │   │   │   ├── database_curd.json
│   │       │   │   │   ├── entry_exit.json
│   │       │   │   │   ├── exception/
│   │       │   │   │   │   ├── code_exception_branch.json
│   │       │   │   │   │   ├── llm_default_output_retry_timeout.json
│   │       │   │   │   │   └── llm_timeout_throw.json
│   │       │   │   │   ├── function_call/
│   │       │   │   │   │   ├── llm_with_workflow_as_tool.json
│   │       │   │   │   │   ├── llm_with_workflow_as_tool_1.json
│   │       │   │   │   │   ├── llm_workflow_stream_tool.json
│   │       │   │   │   │   ├── llm_workflow_stream_tool_1.json
│   │       │   │   │   │   ├── tool_workflow_1.json
│   │       │   │   │   │   ├── tool_workflow_2.json
│   │       │   │   │   │   └── tool_workflow_3.json
│   │       │   │   │   ├── get_canvas/
│   │       │   │   │   │   ├── get_canvas.json
│   │       │   │   │   │   └── get_canvas_modify.json
│   │       │   │   │   ├── httprequester/
│   │       │   │   │   │   ├── bear_auth_no_body.json
│   │       │   │   │   │   ├── custom_auth_file_body.json
│   │       │   │   │   │   ├── custom_auth_form_data_body.json
│   │       │   │   │   │   ├── custom_auth_form_url_body.json
│   │       │   │   │   │   ├── custom_auth_json_body.json
│   │       │   │   │   │   ├── custom_auth_no_body.json
│   │       │   │   │   │   ├── http_error.json
│   │       │   │   │   │   ├── http_implicit_dependencies.json
│   │       │   │   │   │   ├── http_with_url_template.json
│   │       │   │   │   │   └── no_auth_no_body.json
│   │       │   │   │   ├── input_complex.json
│   │       │   │   │   ├── input_receiver.json
│   │       │   │   │   ├── intent_detector_database_custom_sql.json
│   │       │   │   │   ├── json/
│   │       │   │   │   │   ├── json_test.json
│   │       │   │   │   │   └── json_test_warning.json
│   │       │   │   │   ├── knowledge.json
│   │       │   │   │   ├── knowledge_delete.json
│   │       │   │   │   ├── llm_node_with_skills/
│   │       │   │   │   │   ├── llm_node_with_plugin_tool.json
│   │       │   │   │   │   ├── llm_node_with_workflow_tool.json
│   │       │   │   │   │   ├── llm_with_knowledge_skill.json
│   │       │   │   │   │   └── llm_workflow_as_tool.json
│   │       │   │   │   ├── loop_selector_variable_assign_text_processor.json
│   │       │   │   │   ├── loop_with_object_input.json
│   │       │   │   │   ├── message/
│   │       │   │   │   │   ├── agent_message.json
│   │       │   │   │   │   ├── create_assistant_message.json
│   │       │   │   │   │   ├── create_message.json
│   │       │   │   │   │   ├── create_message_in_agent.json
│   │       │   │   │   │   ├── delete_message.json
│   │       │   │   │   │   ├── edit_message.json
│   │       │   │   │   │   ├── edit_message_no_permission.json
│   │       │   │   │   │   └── message_list.json
│   │       │   │   │   ├── move_to_app/
│   │       │   │   │   │   ├── c1.json
│   │       │   │   │   │   ├── c2.json
│   │       │   │   │   │   ├── cc1.json
│   │       │   │   │   │   └── main.json
│   │       │   │   │   ├── parallel_interrupt.json
│   │       │   │   │   ├── publish/
│   │       │   │   │   │   ├── publish_workflow.json
│   │       │   │   │   │   ├── release_c1_workflow.json
│   │       │   │   │   │   ├── release_cc1_workflow.json
│   │       │   │   │   │   ├── release_error_workflow.json
│   │       │   │   │   │   └── release_main_workflow.json
│   │       │   │   │   ├── qa_with_structured_output.json
│   │       │   │   │   ├── query_types/
│   │       │   │   │   │   ├── llm_intent_http_nodes.json
│   │       │   │   │   │   ├── loop_condition.json
│   │       │   │   │   │   ├── subworkflows.json
│   │       │   │   │   │   ├── wf2.json
│   │       │   │   │   │   └── wf2child.json
│   │       │   │   │   ├── sse/
│   │       │   │   │   │   └── llm_emitter.json
│   │       │   │   │   ├── start_node_default_values.json
│   │       │   │   │   ├── subworkflow/
│   │       │   │   │   │   ├── bottom_workflow.json
│   │       │   │   │   │   ├── middle_workflow.json
│   │       │   │   │   │   └── top_workflow.json
│   │       │   │   │   ├── type_convert/
│   │       │   │   │   │   └── mismatched_types.json
│   │       │   │   │   ├── validate/
│   │       │   │   │   │   ├── invalid_input_parameter.json
│   │       │   │   │   │   ├── sub_workflow_terminate_plan_type.json
│   │       │   │   │   │   ├── workflow_has_loop.json
│   │       │   │   │   │   ├── workflow_has_no_connected_nodes.json
│   │       │   │   │   │   ├── workflow_nested_has_loop_or_batch.json
│   │       │   │   │   │   ├── workflow_of_prune_isolate.json
│   │       │   │   │   │   ├── workflow_ref_variable.json
│   │       │   │   │   │   └── workflow_variable_assigner.json
│   │       │   │   │   ├── variable_aggregate/
│   │       │   │   │   │   ├── aggregate_streams.json
│   │       │   │   │   │   └── variable_aggregator.json
│   │       │   │   │   └── workflow_wf_file_name.json
│   │       │   │   └── validate/
│   │       │   │       └── canvas_validate.go
│   │       │   ├── compose/
│   │       │   │   ├── designate_option.go
│   │       │   │   ├── field_fill.go
│   │       │   │   ├── field_fill_test.go
│   │       │   │   ├── node_builder.go
│   │       │   │   ├── node_runner.go
│   │       │   │   ├── state.go
│   │       │   │   ├── stream.go
│   │       │   │   ├── test/
│   │       │   │   │   ├── batch_test.go
│   │       │   │   │   ├── loop_test.go
│   │       │   │   │   ├── question_answer_test.go
│   │       │   │   │   └── workflow_test.go
│   │       │   │   ├── workflow.go
│   │       │   │   ├── workflow_field_mapping_test.go
│   │       │   │   ├── workflow_from_node.go
│   │       │   │   ├── workflow_run.go
│   │       │   │   └── workflow_tool.go
│   │       │   ├── execute/
│   │       │   │   ├── callback.go
│   │       │   │   ├── collect_token.go
│   │       │   │   ├── consts.go
│   │       │   │   ├── context.go
│   │       │   │   ├── event.go
│   │       │   │   ├── event_handle.go
│   │       │   │   ├── stream_container.go
│   │       │   │   └── tool_option.go
│   │       │   ├── nodes/
│   │       │   │   ├── batch/
│   │       │   │   │   └── batch.go
│   │       │   │   ├── callbacks.go
│   │       │   │   ├── code/
│   │       │   │   │   ├── code.go
│   │       │   │   │   └── code_test.go
│   │       │   │   ├── conversation/
│   │       │   │   │   ├── clearconversationhistory.go
│   │       │   │   │   ├── conversationhistory.go
│   │       │   │   │   ├── conversationlist.go
│   │       │   │   │   ├── createconversation.go
│   │       │   │   │   ├── createmessage.go
│   │       │   │   │   ├── deleteconversation.go
│   │       │   │   │   ├── deletemessage.go
│   │       │   │   │   ├── editmessage.go
│   │       │   │   │   ├── messagelist.go
│   │       │   │   │   └── updateconversation.go
│   │       │   │   ├── convert.go
│   │       │   │   ├── database/
│   │       │   │   │   ├── adapt.go
│   │       │   │   │   ├── common.go
│   │       │   │   │   ├── customsql.go
│   │       │   │   │   ├── customsql_test.go
│   │       │   │   │   ├── delete.go
│   │       │   │   │   ├── insert.go
│   │       │   │   │   ├── query.go
│   │       │   │   │   ├── query_test.go
│   │       │   │   │   └── update.go
│   │       │   │   ├── emitter/
│   │       │   │   │   └── emitter.go
│   │       │   │   ├── entry/
│   │       │   │   │   └── entry.go
│   │       │   │   ├── exit/
│   │       │   │   │   └── exit.go
│   │       │   │   ├── httprequester/
│   │       │   │   │   ├── adapt.go
│   │       │   │   │   ├── http_requester.go
│   │       │   │   │   └── http_requester_test.go
│   │       │   │   ├── intentdetector/
│   │       │   │   │   ├── intent_detector.go
│   │       │   │   │   ├── prompt.go
│   │       │   │   │   └── prompt_test.go
│   │       │   │   ├── interrupt.go
│   │       │   │   ├── json/
│   │       │   │   │   ├── json_deserialization.go
│   │       │   │   │   ├── json_deserialization_test.go
│   │       │   │   │   ├── json_serialization.go
│   │       │   │   │   └── json_serialization_test.go
│   │       │   │   ├── knowledge/
│   │       │   │   │   ├── adaptor.go
│   │       │   │   │   ├── knowledge_deleter.go
│   │       │   │   │   ├── knowledge_indexer.go
│   │       │   │   │   └── knowledge_retrieve.go
│   │       │   │   ├── llm/
│   │       │   │   │   ├── llm.go
│   │       │   │   │   ├── model_with_info.go
│   │       │   │   │   ├── plugin.go
│   │       │   │   │   ├── prompt.go
│   │       │   │   │   └── prompt_test.go
│   │       │   │   ├── loop/
│   │       │   │   │   ├── break/
│   │       │   │   │   │   └── break.go
│   │       │   │   │   ├── continue/
│   │       │   │   │   │   └── continue.go
│   │       │   │   │   └── loop.go
│   │       │   │   ├── node.go
│   │       │   │   ├── option.go
│   │       │   │   ├── parent_intermediate.go
│   │       │   │   ├── plugin/
│   │       │   │   │   ├── exec.go
│   │       │   │   │   └── plugin.go
│   │       │   │   ├── qa/
│   │       │   │   │   └── question_answer.go
│   │       │   │   ├── receiver/
│   │       │   │   │   ├── input_receiver.go
│   │       │   │   │   └── input_receiver_test.go
│   │       │   │   ├── selector/
│   │       │   │   │   ├── callbacks.go
│   │       │   │   │   ├── clause.go
│   │       │   │   │   ├── clause_test.go
│   │       │   │   │   ├── operator.go
│   │       │   │   │   ├── operator_test.go
│   │       │   │   │   ├── schema.go
│   │       │   │   │   └── selector.go
│   │       │   │   ├── state.go
│   │       │   │   ├── stream.go
│   │       │   │   ├── subworkflow/
│   │       │   │   │   └── sub_workflow.go
│   │       │   │   ├── template.go
│   │       │   │   ├── textprocessor/
│   │       │   │   │   └── text_processor.go
│   │       │   │   ├── utils.go
│   │       │   │   ├── utils_test.go
│   │       │   │   ├── variableaggregator/
│   │       │   │   │   └── variable_aggregator.go
│   │       │   │   └── variableassigner/
│   │       │   │       ├── variable_assign.go
│   │       │   │       ├── variable_assign_in_loop.go
│   │       │   │       └── variable_assign_test.go
│   │       │   ├── repo/
│   │       │   │   ├── cancel_signal_store.go
│   │       │   │   ├── conversation_repository.go
│   │       │   │   ├── dal/
│   │       │   │   │   ├── model/
│   │       │   │   │   │   ├── app_conversation_template_draft.gen.go
│   │       │   │   │   │   ├── app_conversation_template_online.gen.go
│   │       │   │   │   │   ├── app_dynamic_conversation_draft.gen.go
│   │       │   │   │   │   ├── app_dynamic_conversation_online.gen.go
│   │       │   │   │   │   ├── app_static_conversation_draft.gen.go
│   │       │   │   │   │   ├── app_static_conversation_online.gen.go
│   │       │   │   │   │   ├── chat_flow_role_config.gen.go
│   │       │   │   │   │   ├── connector_workflow_version.gen.go
│   │       │   │   │   │   ├── node_execution.gen.go
│   │       │   │   │   │   ├── workflow_draft.gen.go
│   │       │   │   │   │   ├── workflow_execution.gen.go
│   │       │   │   │   │   ├── workflow_meta.gen.go
│   │       │   │   │   │   ├── workflow_reference.gen.go
│   │       │   │   │   │   ├── workflow_snapshot.gen.go
│   │       │   │   │   │   └── workflow_version.gen.go
│   │       │   │   │   └── query/
│   │       │   │   │       ├── app_conversation_template_draft.gen.go
│   │       │   │   │       ├── app_conversation_template_online.gen.go
│   │       │   │   │       ├── app_dynamic_conversation_draft.gen.go
│   │       │   │   │       ├── app_dynamic_conversation_online.gen.go
│   │       │   │   │       ├── app_static_conversation_draft.gen.go
│   │       │   │   │       ├── app_static_conversation_online.gen.go
│   │       │   │   │       ├── chat_flow_role_config.gen.go
│   │       │   │   │       ├── connector_workflow_version.gen.go
│   │       │   │   │       ├── gen.go
│   │       │   │   │       ├── node_execution.gen.go
│   │       │   │   │       ├── workflow_draft.gen.go
│   │       │   │   │       ├── workflow_execution.gen.go
│   │       │   │   │       ├── workflow_meta.gen.go
│   │       │   │   │       ├── workflow_reference.gen.go
│   │       │   │   │       ├── workflow_snapshot.gen.go
│   │       │   │   │       └── workflow_version.gen.go
│   │       │   │   ├── execute_history_store.go
│   │       │   │   ├── execute_history_store_test.go
│   │       │   │   ├── interrupt_event_store.go
│   │       │   │   ├── repository.go
│   │       │   │   └── suggest.go
│   │       │   └── schema/
│   │       │       ├── branch_schema.go
│   │       │       ├── node_builder.go
│   │       │       ├── node_schema.go
│   │       │       ├── stream.go
│   │       │       └── workflow_schema.go
│   │       ├── plugin/
│   │       │   ├── model.go
│   │       │   ├── plugin.go
│   │       │   └── plugin_test.go
│   │       ├── service/
│   │       │   ├── as_tool_impl.go
│   │       │   ├── conversation_impl.go
│   │       │   ├── executable_impl.go
│   │       │   ├── executable_impl_test.go
│   │       │   ├── global_handler.go
│   │       │   ├── service_impl.go
│   │       │   └── utils.go
│   │       └── variable/
│   │           ├── variable.go
│   │           ├── variable_impl.go
│   │           └── varmock/
│   │               └── var_mock.go
│   ├── go.mod
│   ├── go.sum
│   ├── infra/
│   │   ├── cache/
│   │   │   ├── cache.go
│   │   │   └── impl/
│   │   │       └── redis/
│   │   │           └── redis.go
│   │   ├── checkpoint/
│   │   │   ├── mem.go
│   │   │   └── redis.go
│   │   ├── coderunner/
│   │   │   ├── code.go
│   │   │   └── impl/
│   │   │       ├── direct/
│   │   │       │   └── runner.go
│   │   │       ├── impl.go
│   │   │       ├── sandbox/
│   │   │       │   └── runner.go
│   │   │       └── script/
│   │   │           └── sandbox.py
│   │   ├── document/
│   │   │   ├── extra.go
│   │   │   ├── messages2query/
│   │   │   │   ├── impl/
│   │   │   │   │   ├── builtin/
│   │   │   │   │   │   ├── messages_to_query.go
│   │   │   │   │   │   └── messages_to_query_test.go
│   │   │   │   │   └── impl.go
│   │   │   │   ├── messages_to_query.go
│   │   │   │   └── options.go
│   │   │   ├── nl2sql/
│   │   │   │   ├── impl/
│   │   │   │   │   ├── builtin/
│   │   │   │   │   │   ├── nl2sql.go
│   │   │   │   │   │   └── nl2sql_test.go
│   │   │   │   │   └── impl.go
│   │   │   │   ├── nl2sql.go
│   │   │   │   └── options.go
│   │   │   ├── ocr/
│   │   │   │   ├── impl/
│   │   │   │   │   ├── impl.go
│   │   │   │   │   ├── ppocr/
│   │   │   │   │   │   └── ppocr.go
│   │   │   │   │   └── veocr/
│   │   │   │   │       └── ve_ocr.go
│   │   │   │   └── ocr.go
│   │   │   ├── parser/
│   │   │   │   ├── impl/
│   │   │   │   │   ├── builtin/
│   │   │   │   │   │   ├── align_schema.go
│   │   │   │   │   │   ├── align_schema_test.go
│   │   │   │   │   │   ├── chunk_custom.go
│   │   │   │   │   │   ├── chunk_custom_test.go
│   │   │   │   │   │   ├── convert.go
│   │   │   │   │   │   ├── image.go
│   │   │   │   │   │   ├── manager.go
│   │   │   │   │   │   ├── parse_csv.go
│   │   │   │   │   │   ├── parse_csv_test.go
│   │   │   │   │   │   ├── parse_docx.py
│   │   │   │   │   │   ├── parse_image.go
│   │   │   │   │   │   ├── parse_iter.go
│   │   │   │   │   │   ├── parse_json.go
│   │   │   │   │   │   ├── parse_json_maps.go
│   │   │   │   │   │   ├── parse_json_maps_test.go
│   │   │   │   │   │   ├── parse_json_test.go
│   │   │   │   │   │   ├── parse_markdown.go
│   │   │   │   │   │   ├── parse_markdown_test.go
│   │   │   │   │   │   ├── parse_pdf.py
│   │   │   │   │   │   ├── parse_text.go
│   │   │   │   │   │   ├── parse_xlsx.go
│   │   │   │   │   │   ├── parse_xlsx_test.go
│   │   │   │   │   │   ├── parser.go
│   │   │   │   │   │   ├── py_parser_protocol.go
│   │   │   │   │   │   ├── test_data/
│   │   │   │   │   │   │   ├── test_csv.csv
│   │   │   │   │   │   │   ├── test_csv_badcase_1.csv
│   │   │   │   │   │   │   ├── test_csv_header_only.csv
│   │   │   │   │   │   │   ├── test_docx.docx
│   │   │   │   │   │   │   ├── test_docx_1.docx
│   │   │   │   │   │   │   ├── test_markdown.md
│   │   │   │   │   │   │   └── test_xlsx.xlsx
│   │   │   │   │   │   └── util.go
│   │   │   │   │   ├── impl.go
│   │   │   │   │   └── ppstructure/
│   │   │   │   │       ├── manager.go
│   │   │   │   │       └── parser.go
│   │   │   │   ├── manager.go
│   │   │   │   └── parser.go
│   │   │   ├── progressbar/
│   │   │   │   ├── impl/
│   │   │   │   │   └── progressbar/
│   │   │   │   │       └── impl.go
│   │   │   │   └── interface.go
│   │   │   ├── rerank/
│   │   │   │   ├── impl/
│   │   │   │   │   ├── impl.go
│   │   │   │   │   ├── rrf/
│   │   │   │   │   │   └── rrf.go
│   │   │   │   │   └── vikingdb/
│   │   │   │   │       └── vikingdb.go
│   │   │   │   └── rerank.go
│   │   │   ├── searchstore/
│   │   │   │   ├── dsl.go
│   │   │   │   ├── impl/
│   │   │   │   │   ├── elasticsearch/
│   │   │   │   │   │   ├── consts.go
│   │   │   │   │   │   ├── elasticsearch_manager.go
│   │   │   │   │   │   └── elasticsearch_searchstore.go
│   │   │   │   │   ├── impl.go
│   │   │   │   │   ├── milvus/
│   │   │   │   │   │   ├── consts.go
│   │   │   │   │   │   ├── convert.go
│   │   │   │   │   │   ├── milvus_manager.go
│   │   │   │   │   │   └── milvus_searchstore.go
│   │   │   │   │   ├── oceanbase/
│   │   │   │   │   │   ├── consts.go
│   │   │   │   │   │   ├── convert.go
│   │   │   │   │   │   ├── factory.go
│   │   │   │   │   │   ├── oceanbase_manager.go
│   │   │   │   │   │   ├── oceanbase_searchstore.go
│   │   │   │   │   │   └── register.go
│   │   │   │   │   └── vikingdb/
│   │   │   │   │       ├── consts.go
│   │   │   │   │       ├── vikingdb_manager.go
│   │   │   │   │       ├── vikingdb_searchstore.go
│   │   │   │   │       └── vk_test.go
│   │   │   │   ├── manager.go
│   │   │   │   ├── options.go
│   │   │   │   └── searchstore.go
│   │   │   └── table.go
│   │   ├── dynconf/
│   │   │   ├── impl/
│   │   │   │   ├── .gitkeep
│   │   │   │   └── static/
│   │   │   │       ├── internal/
│   │   │   │       │   ├── common.go
│   │   │   │       │   ├── raw_json.go
│   │   │   │       │   └── raw_yaml.go
│   │   │   │       ├── json.go
│   │   │   │       ├── static_config.go
│   │   │   │       └── yaml.go
│   │   │   └── provider.go
│   │   ├── embedding/
│   │   │   ├── embedding.go
│   │   │   └── impl/
│   │   │       ├── ark/
│   │   │       │   └── ark.go
│   │   │       ├── http/
│   │   │       │   ├── http.go
│   │   │       │   └── http_test.go
│   │   │       ├── impl.go
│   │   │       └── wrap/
│   │   │           ├── dense_only.go
│   │   │           ├── gemini.go
│   │   │           ├── ollama.go
│   │   │           └── openai.go
│   │   ├── es/
│   │   │   ├── es.go
│   │   │   ├── impl/
│   │   │   │   └── es/
│   │   │   │       ├── es7.go
│   │   │   │       ├── es8.go
│   │   │   │       ├── es_impl.go
│   │   │   │       └── parse_address.go
│   │   │   ├── model.go
│   │   │   └── query.go
│   │   ├── eventbus/
│   │   │   ├── consume_option.go
│   │   │   ├── eventbus.go
│   │   │   ├── impl/
│   │   │   │   ├── eventbus.go
│   │   │   │   ├── kafka/
│   │   │   │   │   ├── consumer.go
│   │   │   │   │   └── producer.go
│   │   │   │   ├── nats/
│   │   │   │   │   ├── consumer.go
│   │   │   │   │   ├── nats_test.go
│   │   │   │   │   └── producer.go
│   │   │   │   ├── nsq/
│   │   │   │   │   ├── consumer.go
│   │   │   │   │   └── producer.go
│   │   │   │   ├── pulsar/
│   │   │   │   │   ├── consumer.go
│   │   │   │   │   ├── producer.go
│   │   │   │   │   └── pulsar_test.go
│   │   │   │   └── rmq/
│   │   │   │       ├── consumer.go
│   │   │   │       ├── local_test.go
│   │   │   │       └── producer.go
│   │   │   └── send_option.go
│   │   ├── idgen/
│   │   │   ├── idgen.go
│   │   │   └── impl/
│   │   │       └── idgen/
│   │   │           └── idgen.go
│   │   ├── imagex/
│   │   │   ├── get_resource_opt.go
│   │   │   ├── imagex.go
│   │   │   ├── impl/
│   │   │   │   └── veimagex/
│   │   │   │       └── veimagex.go
│   │   │   └── upload_auth_opt.go
│   │   ├── oceanbase/
│   │   │   ├── oceanbase.go
│   │   │   ├── oceanbase_official.go
│   │   │   └── types.go
│   │   ├── orm/
│   │   │   ├── database.go
│   │   │   └── impl/
│   │   │       └── mysql/
│   │   │           └── mysql.go
│   │   ├── rdb/
│   │   │   ├── entity/
│   │   │   │   ├── const.go
│   │   │   │   └── rdb.go
│   │   │   ├── impl/
│   │   │   │   └── rdb/
│   │   │   │       ├── mysql.go
│   │   │   │       └── mysql_test.go
│   │   │   └── rdb.go
│   │   ├── sqlparser/
│   │   │   ├── impl/
│   │   │   │   └── sqlparser/
│   │   │   │       ├── sql_parser.go
│   │   │   │       └── sql_parser_test.go
│   │   │   └── sql_parser.go
│   │   ├── sse/
│   │   │   ├── impl/
│   │   │   │   └── sse/
│   │   │   │       └── sse.go
│   │   │   └── sse.go
│   │   └── storage/
│   │       ├── impl/
│   │       │   ├── internal/
│   │       │   │   └── fileutil/
│   │       │   │       └── file_util.go
│   │       │   ├── minio/
│   │       │   │   ├── minio.go
│   │       │   │   └── minio_imagex.go
│   │       │   ├── s3/
│   │       │   │   ├── s3.go
│   │       │   │   └── s3_imagex.go
│   │       │   ├── storage.go
│   │       │   └── tos/
│   │       │       ├── tos.go
│   │       │       └── tos_imagex.go
│   │       ├── option.go
│   │       └── storage.go
│   ├── internal/
│   │   ├── mock/
│   │   │   ├── crossdomain/
│   │   │   │   └── crossuser/
│   │   │   │       └── crossuser.go
│   │   │   ├── domain/
│   │   │   │   ├── agent/
│   │   │   │   │   └── singleagent/
│   │   │   │   │       ├── database_service_mock.go
│   │   │   │   │       ├── knowledge_mock.go
│   │   │   │   │       └── single_agent_mock.go
│   │   │   │   ├── conversation/
│   │   │   │   │   ├── agentrun/
│   │   │   │   │   │   └── agent_run_mock.go
│   │   │   │   │   └── conversation/
│   │   │   │   │       └── conversation_mock.go
│   │   │   │   ├── memory/
│   │   │   │   │   └── database/
│   │   │   │   │       ├── crossdomain/
│   │   │   │   │       │   └── search.go
│   │   │   │   │       └── database_mock.go
│   │   │   │   ├── plugin/
│   │   │   │   │   └── interface.go
│   │   │   │   ├── shortcutcmd/
│   │   │   │   │   └── shortcut_cmd_mock.go
│   │   │   │   ├── upload/
│   │   │   │   │   └── upload_service_mock.go
│   │   │   │   └── workflow/
│   │   │   │       ├── crossdomain/
│   │   │   │       │   └── code/
│   │   │   │       │       └── code_mock.go
│   │   │   │       └── interface.go
│   │   │   └── infra/
│   │   │       ├── chatmodel/
│   │   │       │   └── base_model_mock.go
│   │   │       ├── eventbus/
│   │   │       │   └── eventbus_mock.go
│   │   │       ├── idgen/
│   │   │       │   └── idgen_mock.go
│   │   │       ├── imagex/
│   │   │       │   └── imagex_mock.go
│   │   │       ├── nl2sql_mock/
│   │   │       │   └── nl2sql_mock.go
│   │   │       ├── orm/
│   │   │       │   └── sqlitedb.go
│   │   │       ├── rdb/
│   │   │       │   └── rdb_mock.go
│   │   │       └── storage/
│   │   │           └── storage_mock.go
│   │   └── testutil/
│   │       └── chat_model.go
│   ├── main.go
│   ├── pkg/
│   │   ├── ctxcache/
│   │   │   ├── ctx_cache.go
│   │   │   └── ctx_cache_test.go
│   │   ├── envkey/
│   │   │   └── env_key.go
│   │   ├── errorx/
│   │   │   ├── code/
│   │   │   │   └── register.go
│   │   │   ├── error.go
│   │   │   ├── error_test.go
│   │   │   └── internal/
│   │   │       ├── msg.go
│   │   │       ├── register.go
│   │   │       ├── stack.go
│   │   │       ├── stack_test.go
│   │   │       └── status.go
│   │   ├── execute/
│   │   │   └── execute.go
│   │   ├── goutil/
│   │   │   ├── goutil.go
│   │   │   └── url.go
│   │   ├── hertzutil/
│   │   │   └── domain/
│   │   │       └── origin_host.go
│   │   ├── i18n/
│   │   │   └── i18n.go
│   │   ├── kvstore/
│   │   │   └── kvstore.go
│   │   ├── lang/
│   │   │   ├── conv/
│   │   │   │   └── to.go
│   │   │   ├── crypto/
│   │   │   │   └── md5.go
│   │   │   ├── maps/
│   │   │   │   └── maps.go
│   │   │   ├── ptr/
│   │   │   │   └── ptr.go
│   │   │   ├── sets/
│   │   │   │   └── sets.go
│   │   │   ├── signal/
│   │   │   │   └── signal.go
│   │   │   ├── slices/
│   │   │   │   └── iter.go
│   │   │   ├── sqlutil/
│   │   │   │   └── sqlutil.go
│   │   │   └── ternary/
│   │   │       └── ternary.go
│   │   ├── logs/
│   │   │   ├── default.go
│   │   │   └── logger.go
│   │   ├── saasapi/
│   │   │   └── client.go
│   │   ├── safego/
│   │   │   ├── panic_err.go
│   │   │   └── safego.go
│   │   ├── sonic/
│   │   │   └── sonic.go
│   │   ├── taskgroup/
│   │   │   └── taskgroup.go
│   │   └── urltobase64url/
│   │       └── parser.go
│   └── types/
│       ├── consts/
│       │   └── consts.go
│       ├── ddl/
│       │   └── gen_orm_query.go
│       └── errno/
│           ├── agent.go
│           ├── app.go
│           ├── connector.go
│           ├── conversation.go
│           ├── knowledge.go
│           ├── memory.go
│           ├── modelmgr.go
│           ├── permission.go
│           ├── plugin.go
│           ├── prompt.go
│           ├── search.go
│           ├── shortcutcmd.go
│           ├── upload.go
│           ├── user.go
│           └── workflow.go
├── common/
│   ├── _templates/
│   │   ├── _plugins/
│   │   │   ├── SelectTeamPlugin.ts
│   │   │   ├── SetDefaultAuthorPlugin.ts
│   │   │   ├── ShowTemplatePlugin.ts
│   │   │   ├── global.config.ts
│   │   │   └── utils/
│   │   │       ├── index.ts
│   │   │       └── parse-args.ts
│   │   ├── component/
│   │   │   ├── .storybook/
│   │   │   │   ├── main.js
│   │   │   │   └── preview.js
│   │   │   ├── .stylelintrc.js
│   │   │   ├── README.md
│   │   │   ├── __tests__/
│   │   │   │   └── .gitkeep
│   │   │   ├── config/
│   │   │   │   └── rush-project.json
│   │   │   ├── eslint.config.js
│   │   │   ├── init.config.ts
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── demo/
│   │   │   │   │   ├── index.module.less
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── index.tsx
│   │   │   │   └── typings.d.ts
│   │   │   ├── stories/
│   │   │   │   ├── demo.stories.tsx
│   │   │   │   └── hello.mdx
│   │   │   ├── tsconfig.build.json
│   │   │   ├── tsconfig.json
│   │   │   ├── tsconfig.misc.json
│   │   │   └── vitest.config.ts
│   │   ├── node-core/
│   │   │   ├── README.md
│   │   │   ├── __tests__/
│   │   │   │   └── .gitkeep
│   │   │   ├── config/
│   │   │   │   └── rush-project.json
│   │   │   ├── eslint.config.js
│   │   │   ├── init.config.ts
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   └── index.ts
│   │   │   ├── tsconfig.build.json
│   │   │   ├── tsconfig.json
│   │   │   ├── tsconfig.misc.json
│   │   │   └── vitest.config.ts
│   │   ├── rsbuild-web/
│   │   │   ├── .stylelintrc.js
│   │   │   ├── README.md
│   │   │   ├── __tests__/
│   │   │   │   └── .gitkeep
│   │   │   ├── config/
│   │   │   │   └── rush-project.json
│   │   │   ├── eslint.config.js
│   │   │   ├── index.html
│   │   │   ├── init.config.ts
│   │   │   ├── package.json
│   │   │   ├── rsbuild.config.ts
│   │   │   ├── src/
│   │   │   │   ├── app.tsx
│   │   │   │   ├── global.d.ts
│   │   │   │   ├── index.css
│   │   │   │   ├── index.tsx
│   │   │   │   └── pages/
│   │   │   │       ├── main/
│   │   │   │       │   ├── index.module.less
│   │   │   │       │   └── index.tsx
│   │   │   │       └── page1/
│   │   │   │           └── index.tsx
│   │   │   ├── tailwind.config.ts
│   │   │   ├── tsconfig.build.json
│   │   │   ├── tsconfig.json
│   │   │   ├── tsconfig.misc.json
│   │   │   └── vitest.config.ts
│   │   ├── rspack-web/
│   │   │   ├── .stylelintrc.js
│   │   │   ├── README.md
│   │   │   ├── __tests__/
│   │   │   │   └── .gitkeep
│   │   │   ├── config/
│   │   │   │   └── rush-project.json
│   │   │   ├── env/
│   │   │   │   ├── README.md
│   │   │   │   ├── index.ts
│   │   │   │   ├── scripts/
│   │   │   │   │   └── index.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── eslint.config.js
│   │   │   ├── index.html
│   │   │   ├── init.config.ts
│   │   │   ├── package.json
│   │   │   ├── rspack.config.ts
│   │   │   ├── src/
│   │   │   │   ├── App.css
│   │   │   │   ├── App.tsx
│   │   │   │   ├── components/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── index.tsx
│   │   │   │   ├── pages/
│   │   │   │   │   ├── page1/
│   │   │   │   │   │   ├── index.less
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   └── page2/
│   │   │   │   │       ├── index.tsx
│   │   │   │   │       └── store.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── store/
│   │   │   │   │   ├── store.ts
│   │   │   │   │   └── userinfo-slice.ts
│   │   │   │   ├── typing/
│   │   │   │   │   ├── env/
│   │   │   │   │   │   └── index.d.ts
│   │   │   │   │   └── global.d.ts
│   │   │   │   └── utils/
│   │   │   │       └── .gitkeep
│   │   │   ├── tailwind.config.js
│   │   │   ├── tsconfig.build.json
│   │   │   ├── tsconfig.json
│   │   │   ├── tsconfig.misc.json
│   │   │   └── vitest.config.ts
│   │   ├── solid-component/
│   │   │   ├── .storybook/
│   │   │   │   ├── main.js
│   │   │   │   └── preview.js
│   │   │   ├── .stylelintrc.js
│   │   │   ├── README.md
│   │   │   ├── __tests__/
│   │   │   │   └── .gitkeep
│   │   │   ├── config/
│   │   │   │   └── rush-project.json
│   │   │   ├── eslint.config.js
│   │   │   ├── init.config.ts
│   │   │   ├── package.json
│   │   │   ├── rollup.config.mjs
│   │   │   ├── src/
│   │   │   │   ├── demo/
│   │   │   │   │   ├── index.module.less
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── index.ts
│   │   │   │   ├── main.css
│   │   │   │   └── typings.d.ts
│   │   │   ├── stories/
│   │   │   │   ├── demo.stories.tsx
│   │   │   │   └── hello.mdx
│   │   │   ├── tailwind.config.ts
│   │   │   ├── tsconfig.build.json
│   │   │   ├── tsconfig.json
│   │   │   ├── tsconfig.misc.json
│   │   │   └── vitest.config.ts
│   │   └── template.json
│   ├── autoinstallers/
│   │   ├── package.json
│   │   ├── plugins/
│   │   │   ├── package.json
│   │   │   └── rush-plugins/
│   │   │       ├── @coze-arch/
│   │   │       │   ├── rush-clear-build-cache-plugin/
│   │   │       │   │   ├── @coze-arch/
│   │   │       │   │   │   └── rush-clear-build-cache-plugin/
│   │   │       │   │   │       └── command-line.json
│   │   │       │   │   └── rush-plugin-manifest.json
│   │   │       │   ├── rush-dep-level-check-plugin/
│   │   │       │   │   └── rush-plugin-manifest.json
│   │   │       │   ├── rush-fix-ts-refers-plugin/
│   │   │       │   │   ├── @coze-arch/
│   │   │       │   │   │   └── rush-fix-ts-refers-plugin/
│   │   │       │   │   │       └── command-line.json
│   │   │       │   │   └── rush-plugin-manifest.json
│   │   │       │   ├── rush-increment-run-plugin/
│   │   │       │   │   ├── @coze-arch/
│   │   │       │   │   │   └── rush-increment-run-plugin/
│   │   │       │   │   │       └── command-line.json
│   │   │       │   │   └── rush-plugin-manifest.json
│   │   │       │   ├── rush-publish-plugin/
│   │   │       │   │   ├── @coze-arch/
│   │   │       │   │   │   └── rush-publish-plugin/
│   │   │       │   │   │       └── command-line.json
│   │   │       │   │   └── rush-plugin-manifest.json
│   │   │       │   └── rush-run-tsc-plugin/
│   │   │       │       ├── @coze-arch/
│   │   │       │       │   └── rush-run-tsc-plugin/
│   │   │       │       │       └── command-line.json
│   │   │       │       └── rush-plugin-manifest.json
│   │   │       └── rush-init-project-plugin/
│   │   │           ├── rush-init-project-plugin/
│   │   │           │   └── command-line.json
│   │   │           └── rush-plugin-manifest.json
│   │   ├── rush-commands/
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   └── convert-comments/
│   │   │   │       ├── README.md
│   │   │   │       ├── cli/
│   │   │   │       │   ├── command.ts
│   │   │   │       │   └── config.ts
│   │   │   │       ├── example/
│   │   │   │       │   └── config.json
│   │   │   │       ├── implementation-plan.md
│   │   │   │       ├── index.ts
│   │   │   │       ├── modules/
│   │   │   │       │   ├── chinese-detection.ts
│   │   │   │       │   ├── file-replacement.ts
│   │   │   │       │   ├── file-scan.ts
│   │   │   │       │   ├── report.ts
│   │   │   │       │   └── translation.ts
│   │   │   │       ├── requirements.md
│   │   │   │       ├── technical-specification.md
│   │   │   │       ├── types/
│   │   │   │       │   ├── config.ts
│   │   │   │       │   └── index.ts
│   │   │   │       ├── utils/
│   │   │   │       │   ├── chinese.ts
│   │   │   │       │   ├── fp.ts
│   │   │   │       │   ├── git.ts
│   │   │   │       │   ├── language.ts
│   │   │   │       │   └── semaphore.ts
│   │   │   │       └── volc/
│   │   │   │           └── translate.ts
│   │   │   └── tsconfig.json
│   │   ├── rush-commitlint/
│   │   │   ├── .cz-config.js
│   │   │   ├── commitlint.config.js
│   │   │   ├── package.json
│   │   │   └── utils.js
│   │   └── rush-lint-staged/
│   │       ├── .lintstagedrc.js
│   │       ├── package.json
│   │       └── utils.js
│   ├── config/
│   │   ├── rush/
│   │   │   ├── .npmrc-publish
│   │   │   ├── artifactory.json
│   │   │   ├── build-cache.json
│   │   │   ├── cobuild.json
│   │   │   ├── command-line.json
│   │   │   ├── custom-tips.json
│   │   │   ├── deploy.json
│   │   │   ├── experiments.json
│   │   │   ├── pnpm-config.json
│   │   │   ├── repo-state.json
│   │   │   ├── rush-plugins.json
│   │   │   ├── subspaces.json
│   │   │   └── version-policies.json
│   │   ├── rush-plugins/
│   │   │   └── rush-bytedance-build-cache-plugin.json
│   │   └── subspaces/
│   │       ├── default/
│   │       │   ├── .npmrc
│   │       │   ├── .pnpmfile.cjs
│   │       │   ├── common-versions.json
│   │       │   ├── pnpm-config.json
│   │       │   ├── pnpm-patches/
│   │       │   │   ├── @douyinfe__semi-rspack-plugin@2.61.0.patch
│   │       │   │   ├── ahooks@3.7.8.patch
│   │       │   │   ├── web-streams-polyfill@3.2.1.patch
│   │       │   │   └── web-streams-polyfill@3.3.2.patch
│   │       │   └── repo-state.json
│   │       ├── e2e/
│   │       │   ├── .npmrc
│   │       │   ├── pnpm-config.json
│   │       │   └── repo-state.json
│   │       └── e2e-opencoze/
│   │           └── repo-state.json
│   ├── git-hooks/
│   │   ├── commit-msg
│   │   ├── commit-msg.sample
│   │   ├── post-checkout
│   │   ├── post-commit
│   │   ├── post-merge
│   │   ├── pre-commit
│   │   └── pre-push
│   └── scripts/
│       ├── install-run-rush-pnpm.js
│       ├── install-run-rush.js
│       ├── install-run-rushx.js
│       └── install-run.js
├── cspell.json
├── docker/
│   ├── atlas/
│   │   ├── README.md
│   │   ├── atlas.hcl
│   │   ├── migrations/
│   │   │   ├── 20250703095335_initial.sql
│   │   │   ├── 20250703115304_update.sql
│   │   │   ├── 20250704040445_update.sql
│   │   │   ├── 20250708075302_update.sql
│   │   │   ├── 20250710100212_update.sql
│   │   │   ├── 20250711034533_update.sql
│   │   │   ├── 20250717125913_update.sql
│   │   │   ├── 20250718104121_update.sql
│   │   │   ├── 20250730131847_update.sql
│   │   │   ├── 20250802115105_update.sql
│   │   │   ├── 20250812093734_update.sql
│   │   │   ├── 20250813081543_update.sql
│   │   │   ├── 20250822060516_update.sql
│   │   │   ├── 20251015103940_update.sql
│   │   │   ├── 20251016034721_update.sql
│   │   │   ├── 20251024091145_update.sql
│   │   │   ├── 20251028085526_update.sql
│   │   │   └── atlas.sum
│   │   └── opencoze_latest_schema.hcl
│   ├── docker-compose-debug.yml
│   ├── docker-compose-oceanbase.yml
│   ├── docker-compose-oceanbase_debug.yml
│   ├── docker-compose.yml
│   ├── nginx/
│   │   ├── conf.d/
│   │   │   └── default.conf
│   │   ├── nginx.conf
│   │   └── ssl/
│   │       └── .gitkeep
│   └── volumes/
│       ├── elasticsearch/
│       │   ├── elasticsearch.yml
│       │   ├── es_index_schema/
│       │   │   ├── coze_resource.index-template.json
│       │   │   └── project_draft.index-template.json
│       │   └── setup_es.sh
│       ├── etcd/
│       │   └── etcd.conf.yml
│       ├── minio/
│       │   └── .mc/
│       │       └── config.json
│       ├── mysql/
│       │   ├── schema.sql
│       │   └── sql_init.sql
│       └── rocketmq/
│           └── broker.conf
├── docs/
│   ├── .gitkeep
│   ├── nats-eventbus-integration-guide-en.md
│   ├── nats-eventbus-integration-guide.md
│   ├── oceanbase-integration-guide-en.md
│   ├── oceanbase-integration-guide.md
│   ├── pulsar-eventbus-integration-guide-en.md
│   └── pulsar-eventbus-integration-guide.md
├── frontend/
│   ├── .gitignore
│   ├── .npmignore
│   ├── .prettierignore
│   ├── .stylelintignore
│   ├── Dockerfile
│   ├── README.md
│   ├── apps/
│   │   └── coze-studio/
│   │       ├── .stylelintrc.js
│   │       ├── README.md
│   │       ├── __tests__/
│   │       │   └── .gitkeep
│   │       ├── config/
│   │       │   └── rush-project.json
│   │       ├── eslint.config.js
│   │       ├── index.html
│   │       ├── package.json
│   │       ├── postcss.config.js
│   │       ├── rsbuild.config.ts
│   │       ├── server.js
│   │       ├── src/
│   │       │   ├── app.tsx
│   │       │   ├── global.d.ts
│   │       │   ├── global.less
│   │       │   ├── index.less
│   │       │   ├── index.tsx
│   │       │   ├── layout.tsx
│   │       │   ├── pages/
│   │       │   │   ├── develop.tsx
│   │       │   │   ├── docs.tsx
│   │       │   │   ├── explore.tsx
│   │       │   │   ├── library.tsx
│   │       │   │   ├── plugin/
│   │       │   │   │   ├── layout.tsx
│   │       │   │   │   ├── page.tsx
│   │       │   │   │   └── tool/
│   │       │   │   │       ├── page.tsx
│   │       │   │   │       └── plugin-mock-set/
│   │       │   │   │           ├── detail/
│   │       │   │   │           │   └── page.tsx
│   │       │   │   │           └── page.tsx
│   │       │   │   └── redirect.tsx
│   │       │   └── routes/
│   │       │       ├── async-components.tsx
│   │       │       └── index.tsx
│   │       ├── tailwind.config.ts
│   │       ├── tsconfig.build.json
│   │       ├── tsconfig.json
│   │       ├── tsconfig.misc.json
│   │       └── vitest.config.ts
│   ├── config/
│   │   ├── eslint-config/
│   │   │   ├── .prettierrc.js
│   │   │   ├── README.md
│   │   │   ├── compat.js
│   │   │   ├── config/
│   │   │   │   └── rush-project.json
│   │   │   ├── eslint.config.base.js
│   │   │   ├── eslint.config.js
│   │   │   ├── eslint.config.node.js
│   │   │   ├── eslint.config.web.js
│   │   │   ├── package.json
│   │   │   ├── rules/
│   │   │   │   ├── common-standard.js
│   │   │   │   ├── import.js
│   │   │   │   ├── js-standard.js
│   │   │   │   ├── test-standard.js
│   │   │   │   └── ts-standard.js
│   │   │   ├── scripts/
│   │   │   │   ├── reslint.sh
│   │   │   │   └── rprettier.sh
│   │   │   ├── src/
│   │   │   │   ├── define-config.ts
│   │   │   │   └── index.js
│   │   │   ├── tsconfig.build.json
│   │   │   ├── tsconfig.json
│   │   │   └── tsconfig.misc.json
│   │   ├── postcss-config/
│   │   │   ├── README.md
│   │   │   ├── config/
│   │   │   │   └── rush-project.json
│   │   │   ├── eslint.config.js
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   └── index.js
│   │   │   ├── tsconfig.build.json
│   │   │   ├── tsconfig.json
│   │   │   └── tsconfig.misc.json
│   │   ├── rsbuild-config/
│   │   │   ├── README.md
│   │   │   ├── __tests__/
│   │   │   │   └── .gitkeep
│   │   │   ├── config/
│   │   │   │   └── rush-project.json
│   │   │   ├── eslint.config.js
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   └── index.ts
│   │   │   ├── tsconfig.build.json
│   │   │   ├── tsconfig.json
│   │   │   ├── tsconfig.misc.json
│   │   │   └── vitest.config.ts
│   │   ├── stylelint-config/
│   │   │   ├── .stylelintrc.js
│   │   │   ├── README.md
│   │   │   ├── config/
│   │   │   │   └── rush-project.json
│   │   │   ├── eslint.config.js
│   │   │   ├── examples/
│   │   │   │   ├── class-pattern.less
│   │   │   │   ├── first-level-global.less
│   │   │   │   ├── max-nesting-level.less
│   │   │   │   └── no-important.less
│   │   │   ├── package.json
│   │   │   ├── plugins/
│   │   │   │   └── plugin-disallow-nesting-level-one-global.js
│   │   │   ├── src/
│   │   │   │   ├── define-config.ts
│   │   │   │   └── index.js
│   │   │   ├── tsconfig.build.json
│   │   │   ├── tsconfig.json
│   │   │   └── tsconfig.misc.json
│   │   ├── tailwind-config/
│   │   │   ├── README.md
│   │   │   ├── config/
│   │   │   │   └── rush-project.json
│   │   │   ├── eslint.config.js
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── coze.js
│   │   │   │   ├── dark.js
│   │   │   │   ├── design-token.ts
│   │   │   │   ├── index.js
│   │   │   │   ├── light.js
│   │   │   │   ├── tailwind-contents.ts
│   │   │   │   └── util.js
│   │   │   ├── tsconfig.build.json
│   │   │   ├── tsconfig.json
│   │   │   └── tsconfig.misc.json
│   │   ├── ts-config/
│   │   │   ├── README.md
│   │   │   ├── config/
│   │   │   │   ├── rush-project.json
│   │   │   │   └── rushx-config.json
│   │   │   ├── eslint.config.js
│   │   │   ├── global.d.ts
│   │   │   ├── package.json
│   │   │   ├── scripts/
│   │   │   │   └── rtsc.sh
│   │   │   ├── tsconfig.base.json
│   │   │   ├── tsconfig.build.json
│   │   │   ├── tsconfig.node.json
│   │   │   └── tsconfig.web.json
│   │   └── vitest-config/
│   │       ├── README.md
│   │       ├── config/
│   │       │   └── rush-project.json
│   │       ├── eslint.config.js
│   │       ├── package.json
│   │       ├── src/
│   │       │   ├── define-config.ts
│   │       │   ├── index.js
│   │       │   ├── preset-default.ts
│   │       │   ├── preset-node.ts
│   │       │   ├── preset-web.ts
│   │       │   └── tsc-only.ts
│   │       ├── tsconfig.build.json
│   │       └── tsconfig.json
│   ├── disallowed_3rd_libraries.json
│   ├── infra/
│   │   ├── eslint-plugin/
│   │   │   ├── README.md
│   │   │   ├── config/
│   │   │   │   └── rush-project.json
│   │   │   ├── eslint.config.js
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── index.js
│   │   │   │   ├── index.ts
│   │   │   │   ├── processors/
│   │   │   │   │   └── json.ts
│   │   │   │   ├── rules/
│   │   │   │   │   ├── max-lines-per-function/
│   │   │   │   │   │   ├── index.test.ts
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── no-batch-import-or-export/
│   │   │   │   │   │   ├── index.test.ts
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── no-deep-relative-import/
│   │   │   │   │   │   ├── index.test.ts
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── no-duplicated-deps/
│   │   │   │   │   │   ├── index.test.ts
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── no-empty-catch/
│   │   │   │   │   │   ├── index.test.ts
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── no-new-error/
│   │   │   │   │   │   ├── index.test.ts
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── no-pkg-dir-import/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── test/
│   │   │   │   │   │   │   ├── index.test.ts
│   │   │   │   │   │   │   └── utils.test.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── package-disallow-deps/
│   │   │   │   │   │   ├── index.test.ts
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── package-require-author/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── tsx-no-leaked-render/
│   │   │   │   │   │   ├── fixture/
│   │   │   │   │   │   │   ├── react.tsx
│   │   │   │   │   │   │   └── tsconfig.json
│   │   │   │   │   │   ├── index.test.ts
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   └── use-error-in-catch/
│   │   │   │   │       ├── index.test.ts
│   │   │   │   │       └── index.ts
│   │   │   │   └── zustand/
│   │   │   │       ├── index.js
│   │   │   │       ├── index.ts
│   │   │   │       └── rules/
│   │   │   │           ├── __tests__/
│   │   │   │           │   └── utils.test.ts
│   │   │   │           ├── no-get-state-in-comp/
│   │   │   │           │   ├── index.test.ts
│   │   │   │           │   └── index.ts
│   │   │   │           ├── no-state-mutation/
│   │   │   │           │   ├── index.test.ts
│   │   │   │           │   └── index.ts
│   │   │   │           ├── prefer-curry-create/
│   │   │   │           │   ├── index.test.ts
│   │   │   │           │   └── index.ts
│   │   │   │           ├── prefer-selector/
│   │   │   │           │   ├── index.test.ts
│   │   │   │           │   └── index.ts
│   │   │   │           ├── prefer-shallow/
│   │   │   │           │   ├── index.test.ts
│   │   │   │           │   └── index.ts
│   │   │   │           ├── proper-store-typing/
│   │   │   │           │   ├── index.test.ts
│   │   │   │           │   └── index.ts
│   │   │   │           ├── store-filename-convention/
│   │   │   │           │   ├── index.test.ts
│   │   │   │           │   └── index.ts
│   │   │   │           ├── store-name-convention/
│   │   │   │           │   ├── index.test.ts
│   │   │   │           │   └── index.ts
│   │   │   │           ├── tester.ts
│   │   │   │           ├── utils.ts
│   │   │   │           ├── zustand-devtools-config/
│   │   │   │           │   ├── index.test.ts
│   │   │   │           │   └── index.ts
│   │   │   │           └── zustand-prefer-middlewares/
│   │   │   │               ├── index.test.ts
│   │   │   │               └── index.ts
│   │   │   ├── tsconfig.build.json
│   │   │   ├── tsconfig.json
│   │   │   ├── tsconfig.misc.json
│   │   │   └── vitest.config.mts
│   │   ├── idl/
│   │   │   ├── idl-parser/
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   ├── common.ts
│   │   │   │   │   ├── demo.proto.ts
│   │   │   │   │   ├── demo.thrift.ts
│   │   │   │   │   ├── demo.unify.ts
│   │   │   │   │   ├── idl/
│   │   │   │   │   │   ├── dep/
│   │   │   │   │   │   │   ├── base.proto
│   │   │   │   │   │   │   ├── base.thrift
│   │   │   │   │   │   │   ├── basee.proto
│   │   │   │   │   │   │   ├── basee.thrift
│   │   │   │   │   │   │   ├── common.proto
│   │   │   │   │   │   │   └── common.thrift
│   │   │   │   │   │   ├── error.proto
│   │   │   │   │   │   ├── error.thrift
│   │   │   │   │   │   ├── index.proto
│   │   │   │   │   │   ├── index.thrift
│   │   │   │   │   │   ├── unify_base.thrift
│   │   │   │   │   │   ├── unify_dependent1.proto
│   │   │   │   │   │   ├── unify_dependent1.thrift
│   │   │   │   │   │   ├── unify_dependent2.proto
│   │   │   │   │   │   ├── unify_dependent2.thrift
│   │   │   │   │   │   ├── unify_error.thrift
│   │   │   │   │   │   ├── unify_index.proto
│   │   │   │   │   │   ├── unify_index.thrift
│   │   │   │   │   │   ├── unify_search.proto
│   │   │   │   │   │   ├── unify_search.thrift
│   │   │   │   │   │   └── weird.proto
│   │   │   │   │   ├── proto.field.test.ts
│   │   │   │   │   ├── proto.index.test.ts
│   │   │   │   │   ├── proto.method.test.ts
│   │   │   │   │   ├── proto.service.test.ts
│   │   │   │   │   ├── thrift.enum.test.ts
│   │   │   │   │   ├── thrift.field.test.ts
│   │   │   │   │   ├── thrift.function.test.ts
│   │   │   │   │   ├── thrift.index.test.ts
│   │   │   │   │   ├── thrift.service.test.ts
│   │   │   │   │   ├── tsconfig.json
│   │   │   │   │   ├── unify.enum.test.ts
│   │   │   │   │   ├── unify.field.test.ts
│   │   │   │   │   ├── unify.function.test.ts
│   │   │   │   │   ├── unify.index.test.ts
│   │   │   │   │   ├── unify.other.test.ts
│   │   │   │   │   └── unify.service.test.ts
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── common/
│   │   │   │   │   │   ├── extension_type.ts
│   │   │   │   │   │   └── extension_util.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── proto/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── type.ts
│   │   │   │   │   ├── thrift/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── type.ts
│   │   │   │   │   ├── unify/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── proto.ts
│   │   │   │   │   │   ├── thrift.ts
│   │   │   │   │   │   ├── type.ts
│   │   │   │   │   │   └── util.ts
│   │   │   │   │   └── utils/
│   │   │   │   │       └── index.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── idl2ts-cli/
│   │   │   │   ├── README.md
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── actions.ts
│   │   │   │   │   ├── cli.js
│   │   │   │   │   ├── cli.ts
│   │   │   │   │   ├── mock-dev.ts
│   │   │   │   │   ├── optional/
│   │   │   │   │   │   ├── forward.ts
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── plugins/
│   │   │   │   │   │   ├── alias.ts
│   │   │   │   │   │   ├── comment.ts
│   │   │   │   │   │   ├── filter-types-plugin.ts
│   │   │   │   │   │   ├── formatter.ts
│   │   │   │   │   │   ├── local-config.ts
│   │   │   │   │   │   └── mock-plugin.ts
│   │   │   │   │   ├── types.ts
│   │   │   │   │   └── utils.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── idl2ts-generator/
│   │   │   │   ├── README.md
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── context.ts
│   │   │   │   │   ├── core.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── plugin/
│   │   │   │   │   │   ├── adapter-plugin.ts
│   │   │   │   │   │   ├── auto-fix-duplicate-plugin.ts
│   │   │   │   │   │   ├── auto-fix-path-plugin.ts
│   │   │   │   │   │   ├── client-plugin.ts
│   │   │   │   │   │   ├── comment-format-plugin.ts
│   │   │   │   │   │   ├── ignore-struct-field.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── meta-plugin.ts
│   │   │   │   │   │   ├── mock-transformer.ts
│   │   │   │   │   │   ├── pkg-entry-plugin.ts
│   │   │   │   │   │   └── schema-plugin.ts
│   │   │   │   │   ├── template.ts
│   │   │   │   │   ├── type-mapper.ts
│   │   │   │   │   └── types.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── idl2ts-helper/
│   │   │   │   ├── README.md
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── constant.ts
│   │   │   │   │   ├── ctx.ts
│   │   │   │   │   ├── helper.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── parser.ts
│   │   │   │   │   ├── types.ts
│   │   │   │   │   └── utils.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── idl2ts-plugin/
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── plugin.test.ts
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── hooks.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── program.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   └── idl2ts-runtime/
│   │   │       ├── README.md
│   │   │       ├── config/
│   │   │       │   └── rush-project.json
│   │   │       ├── eslint.config.js
│   │   │       ├── package.json
│   │   │       ├── src/
│   │   │       │   ├── config-center.ts
│   │   │       │   ├── create-api.ts
│   │   │       │   ├── index.ts
│   │   │       │   ├── types.ts
│   │   │       │   └── utils.ts
│   │   │       ├── tsconfig.build.json
│   │   │       ├── tsconfig.json
│   │   │       ├── tsconfig.misc.json
│   │   │       └── vitest.config.ts
│   │   ├── plugins/
│   │   │   ├── import-watch-loader/
│   │   │   │   ├── README.md
│   │   │   │   ├── __test__/
│   │   │   │   │   └── index.test.js
│   │   │   │   ├── config/
│   │   │   │   │   ├── rush-project.json
│   │   │   │   │   └── rushx-config.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── index.js
│   │   │   │   ├── package.json
│   │   │   │   └── tsconfig.build.json
│   │   │   └── pkg-root-webpack-plugin/
│   │   │       ├── .gitignore
│   │   │       ├── README.md
│   │   │       ├── __tests__/
│   │   │       │   └── index.test.ts
│   │   │       ├── config/
│   │   │       │   ├── rush-project.json
│   │   │       │   └── rushx-config.json
│   │   │       ├── eslint.config.js
│   │   │       ├── lib/
│   │   │       │   ├── index.d.ts
│   │   │       │   └── index.js
│   │   │       ├── package.json
│   │   │       ├── src/
│   │   │       │   └── index.ts
│   │   │       ├── tsconfig.build.json
│   │   │       ├── tsconfig.json
│   │   │       ├── tsconfig.misc.json
│   │   │       └── vitest.config.ts
│   │   └── utils/
│   │       ├── fs-enhance/
│   │       │   ├── README.md
│   │       │   ├── __tests__/
│   │       │   │   └── file-enhance.test.ts
│   │       │   ├── config/
│   │       │   │   └── rush-project.json
│   │       │   ├── eslint.config.js
│   │       │   ├── package.json
│   │       │   ├── src/
│   │       │   │   └── index.ts
│   │       │   ├── tsconfig.build.json
│   │       │   ├── tsconfig.json
│   │       │   ├── tsconfig.misc.json
│   │       │   └── vitest.config.ts
│   │       ├── monorepo-kits/
│   │       │   ├── README.md
│   │       │   ├── __tests__/
│   │       │   │   └── .gitkeep
│   │       │   ├── config/
│   │       │   │   └── rush-project.json
│   │       │   ├── docs/
│   │       │   │   └── llms.txt
│   │       │   ├── eslint.config.js
│   │       │   ├── package.json
│   │       │   ├── src/
│   │       │   │   ├── index.ts
│   │       │   │   ├── lookup.ts
│   │       │   │   ├── rush-config.ts
│   │       │   │   └── sub-packages.ts
│   │       │   ├── tsconfig.build.json
│   │       │   ├── tsconfig.json
│   │       │   ├── tsconfig.misc.json
│   │       │   └── vitest.config.ts
│   │       └── rush-logger/
│   │           ├── README.md
│   │           ├── __tests__/
│   │           │   └── logger.test.ts
│   │           ├── config/
│   │           │   └── rush-project.json
│   │           ├── eslint.config.js
│   │           ├── package.json
│   │           ├── src/
│   │           │   └── index.ts
│   │           ├── tsconfig.build.json
│   │           ├── tsconfig.json
│   │           ├── tsconfig.misc.json
│   │           └── vitest.config.ts
│   ├── packages/
│   │   ├── agent-ide/
│   │   │   ├── agent-publish/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── bot-publish/
│   │   │   │   │   │       ├── hooks/
│   │   │   │   │   │       │   ├── use-auth-fail.ts
│   │   │   │   │   │       │   └── use-get-bot-info.ts
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── publish-result/
│   │   │   │   │   │       │   ├── component/
│   │   │   │   │   │       │   │   └── publish-result-area/
│   │   │   │   │   │       │   │       ├── index.module.less
│   │   │   │   │   │       │   │       └── index.tsx
│   │   │   │   │   │       │   ├── index.tsx
│   │   │   │   │   │       │   └── typings.ts
│   │   │   │   │   │       └── publish-table/
│   │   │   │   │   │           ├── context/
│   │   │   │   │   │           │   └── index.tsx
│   │   │   │   │   │           ├── get-connector-selectable.ts
│   │   │   │   │   │           ├── hooks/
│   │   │   │   │   │           │   └── use-connectors-publish.ts
│   │   │   │   │   │           ├── index.module.less
│   │   │   │   │   │           ├── index.tsx
│   │   │   │   │   │           └── table-collection/
│   │   │   │   │   │               ├── config-status.tsx
│   │   │   │   │   │               ├── connector-action/
│   │   │   │   │   │               │   ├── api-bind-button.tsx
│   │   │   │   │   │               │   ├── index.ts
│   │   │   │   │   │               │   └── store-bind.tsx
│   │   │   │   │   │               ├── get-config-status.ts
│   │   │   │   │   │               ├── hooks/
│   │   │   │   │   │               │   └── use-auth-success.ts
│   │   │   │   │   │               ├── index.tsx
│   │   │   │   │   │               └── plugin-limit-tooltip.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-audit-adapter/
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── index.test.ts
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   └── use-bot-audit/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-audit-base/
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── audit-error-message/
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── interfaces/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-config-area/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── model-config-view/
│   │   │   │   │   │   ├── dialogue-config-view/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── model-config-view.tsx
│   │   │   │   │   │   └── single-agent-model-view/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── monetize-config/
│   │   │   │   │   │   ├── button/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── panel/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── query-collect/
│   │   │   │   │   │   ├── generate-by-template.tsx
│   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── tips.tsx
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── stories/
│   │   │   │   │   ├── demo.stories.tsx
│   │   │   │   │   └── hello.mdx
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-config-area-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── bot-config-area.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── model-config-view/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── model-config-view.tsx
│   │   │   │   │   │   └── single-agent-model-view/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── stories/
│   │   │   │   │   ├── demo.stories.tsx
│   │   │   │   │   └── hello.mdx
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-editor-context-store/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── context/
│   │   │   │   │   │   └── bot-editor-context/
│   │   │   │   │   │       ├── context.tsx
│   │   │   │   │   │       ├── index.ts
│   │   │   │   │   │       └── type.ts
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   └── model-capability/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── store/
│   │   │   │   │   │   ├── bot-plugins.ts
│   │   │   │   │   │   ├── dataset.ts
│   │   │   │   │   │   ├── free-grab-modal-hierarchy.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   └── get-model-preset-values.ts
│   │   │   │   │   │   ├── model.ts
│   │   │   │   │   │   ├── nl-prompt-modal.ts
│   │   │   │   │   │   ├── onboarding-dirty-logic-compatibility.ts
│   │   │   │   │   │   └── type.ts
│   │   │   │   │   ├── typings.d.ts
│   │   │   │   │   └── utils/
│   │   │   │   │       ├── exhaustive-check.ts
│   │   │   │   │       ├── model/
│   │   │   │   │       │   ├── convert-model-value-type.ts
│   │   │   │   │       │   └── get-model-by-id.ts
│   │   │   │   │       └── model-capability/
│   │   │   │   │           └── index.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-input-length-limit/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── services.test.ts
│   │   │   │   ├── config/
│   │   │   │   │   ├── rush-project.json
│   │   │   │   │   └── rushx-config.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── services/
│   │   │   │   │   │   ├── constants.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── type.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-plugin/
│   │   │   │   ├── entry/
│   │   │   │   │   ├── .stylelintrc.js
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── __tests__/
│   │   │   │   │   │   ├── .gitkeep
│   │   │   │   │   │   ├── hook/
│   │   │   │   │   │   │   └── auth/
│   │   │   │   │   │   │       └── use-auth-for-api-tool.test.ts
│   │   │   │   │   │   ├── setup.ts
│   │   │   │   │   │   └── util/
│   │   │   │   │   │       └── get-env.test.ts
│   │   │   │   │   ├── config/
│   │   │   │   │   │   └── rush-project.json
│   │   │   │   │   ├── eslint.config.js
│   │   │   │   │   ├── package.json
│   │   │   │   │   ├── src/
│   │   │   │   │   │   ├── common/
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── components/
│   │   │   │   │   │   │   ├── check_failed/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── code-snippet/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   ├── oauth-action/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── plugin-apis/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   ├── plugin-modal.tsx
│   │   │   │   │   │   │   │   └── use-plugin-apis-modal.tsx
│   │   │   │   │   │   │   ├── plugin-header/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   └── plugin-tool-detail/
│   │   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │   │       ├── tool-header.tsx
│   │   │   │   │   │   │       ├── use-content-base-more.tsx
│   │   │   │   │   │   │       ├── use-content-baseinfo.tsx
│   │   │   │   │   │   │       ├── use-content-debug.tsx
│   │   │   │   │   │   │       ├── use-content-request.tsx
│   │   │   │   │   │   │       └── use-content-response.tsx
│   │   │   │   │   │   ├── hooks/
│   │   │   │   │   │   │   ├── auth/
│   │   │   │   │   │   │   │   └── use-auth-for-api-tool.ts
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── pages/
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   ├── mock-set/
│   │   │   │   │   │   │   │   ├── get-col.tsx
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── mock-set-detail/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── plugin-id/
│   │   │   │   │   │   │   │   ├── create-tool.tsx
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   └── plugin-tool-detail/
│   │   │   │   │   │   │       └── index.ts
│   │   │   │   │   │   ├── typings.d.ts
│   │   │   │   │   │   └── util/
│   │   │   │   │   │       ├── get-env.ts
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── tsconfig.build.json
│   │   │   │   │   ├── tsconfig.json
│   │   │   │   │   ├── tsconfig.misc.json
│   │   │   │   │   └── vitest.config.ts
│   │   │   │   ├── export/
│   │   │   │   │   ├── .stylelintrc.js
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── __tests__/
│   │   │   │   │   │   ├── .gitkeep
│   │   │   │   │   │   └── file-import-utils.test.ts
│   │   │   │   │   ├── config/
│   │   │   │   │   │   └── rush-project.json
│   │   │   │   │   ├── eslint.config.js
│   │   │   │   │   ├── package.json
│   │   │   │   │   ├── src/
│   │   │   │   │   │   ├── component/
│   │   │   │   │   │   │   ├── agent-skill-plugin-modal/
│   │   │   │   │   │   │   │   ├── content/
│   │   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   ├── hooks.tsx
│   │   │   │   │   │   │   │   ├── sider/
│   │   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   └── use-request-cache.tsx
│   │   │   │   │   │   │   ├── bot_edit/
│   │   │   │   │   │   │   │   ├── bot-code-edit.tsx
│   │   │   │   │   │   │   │   ├── bot-form-edit/
│   │   │   │   │   │   │   │   │   ├── code-modal.tsx
│   │   │   │   │   │   │   │   │   ├── import-modal.tsx
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   │   └── plugin-edit/
│   │   │   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │   │   │       └── index.tsx
│   │   │   │   │   │   │   ├── editor/
│   │   │   │   │   │   │   │   ├── editor.tsx
│   │   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   │   ├── file-import/
│   │   │   │   │   │   │   │   ├── const.ts
│   │   │   │   │   │   │   │   ├── import-content.module.less
│   │   │   │   │   │   │   │   ├── import-content.tsx
│   │   │   │   │   │   │   │   ├── import-modal.module.less
│   │   │   │   │   │   │   │   ├── import-modal.tsx
│   │   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   │   ├── plugin-info-confirm/
│   │   │   │   │   │   │   │   │   ├── fields.tsx
│   │   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   │   │   ├── interface.ts
│   │   │   │   │   │   │   │   │   └── utils.ts
│   │   │   │   │   │   │   │   ├── show-merge-tool.tsx
│   │   │   │   │   │   │   │   └── utils.ts
│   │   │   │   │   │   │   ├── plugin-docs/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   └── plugin-feat-modal/
│   │   │   │   │   │   │       ├── feat-button/
│   │   │   │   │   │   │       │   ├── index.module.less
│   │   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │   │       └── index.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── typings.d.ts
│   │   │   │   │   ├── tsconfig.build.json
│   │   │   │   │   ├── tsconfig.json
│   │   │   │   │   ├── tsconfig.misc.json
│   │   │   │   │   └── vitest.config.ts
│   │   │   │   ├── mock-set/
│   │   │   │   │   ├── .stylelintrc.js
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── __tests__/
│   │   │   │   │   │   ├── .gitkeep
│   │   │   │   │   │   ├── hook/
│   │   │   │   │   │   │   └── mock-set/
│   │   │   │   │   │   │       ├── use-gen-tree-branch.test.ts
│   │   │   │   │   │   │       ├── use-mock-set-in-setting-modal.test.ts
│   │   │   │   │   │   │       └── use-save-mock-data.test.ts
│   │   │   │   │   │   ├── mock-set/
│   │   │   │   │   │   │   ├── hooks.test.ts
│   │   │   │   │   │   │   └── utils.test.ts
│   │   │   │   │   │   ├── mock-utils.test.ts
│   │   │   │   │   │   ├── setup.ts
│   │   │   │   │   │   ├── use-trans-schema.test.ts
│   │   │   │   │   │   └── util/
│   │   │   │   │   │       └── mock-set/
│   │   │   │   │   │           └── get-mock-set-options.test.ts
│   │   │   │   │   ├── config/
│   │   │   │   │   │   └── rush-project.json
│   │   │   │   │   ├── eslint.config.js
│   │   │   │   │   ├── package.json
│   │   │   │   │   ├── src/
│   │   │   │   │   │   ├── component/
│   │   │   │   │   │   │   ├── const.ts
│   │   │   │   │   │   │   ├── hooks/
│   │   │   │   │   │   │   │   ├── store.ts
│   │   │   │   │   │   │   │   └── use-get-mockset.ts
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   ├── long-text-with-tooltip/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── mock-data-card/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── mock-data-create-card.tsx
│   │   │   │   │   │   │   ├── mock-data-list.tsx
│   │   │   │   │   │   │   ├── mock-data-page-breadcrumb.tsx
│   │   │   │   │   │   │   ├── mock-select/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   │   ├── option-item.module.less
│   │   │   │   │   │   │   │   └── option-item.tsx
│   │   │   │   │   │   │   ├── mock-set-intro.tsx
│   │   │   │   │   │   │   ├── mockset-delete-modal/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   └── space-holder/
│   │   │   │   │   │   │       └── index.tsx
│   │   │   │   │   │   ├── edenx-app-env.d.ts
│   │   │   │   │   │   ├── hook/
│   │   │   │   │   │   │   ├── use-gen-tree-branch.ts
│   │   │   │   │   │   │   ├── use-mock-set-in-setting-modal.ts
│   │   │   │   │   │   │   ├── use-save-mock-data.ts
│   │   │   │   │   │   │   └── use-trans-schema.ts
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── typings.d.ts
│   │   │   │   │   │   └── util/
│   │   │   │   │   │       ├── get-mock-set-options.tsx
│   │   │   │   │   │       ├── index.ts
│   │   │   │   │   │       ├── typings.ts
│   │   │   │   │   │       └── utils.ts
│   │   │   │   │   ├── tsconfig.build.json
│   │   │   │   │   ├── tsconfig.json
│   │   │   │   │   ├── tsconfig.misc.json
│   │   │   │   │   └── vitest.config.ts
│   │   │   │   ├── plugin-risk-warning/
│   │   │   │   │   ├── .storybook/
│   │   │   │   │   │   ├── main.js
│   │   │   │   │   │   └── preview.js
│   │   │   │   │   ├── .stylelintrc.js
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── __tests__/
│   │   │   │   │   │   └── .gitkeep
│   │   │   │   │   ├── config/
│   │   │   │   │   │   └── rush-project.json
│   │   │   │   │   ├── eslint.config.js
│   │   │   │   │   ├── package.json
│   │   │   │   │   ├── src/
│   │   │   │   │   │   ├── global.d.ts
│   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── store.ts
│   │   │   │   │   ├── stories/
│   │   │   │   │   │   ├── demo.stories.tsx
│   │   │   │   │   │   └── hello.mdx
│   │   │   │   │   ├── tsconfig.build.json
│   │   │   │   │   ├── tsconfig.json
│   │   │   │   │   ├── tsconfig.misc.json
│   │   │   │   │   └── vitest.config.ts
│   │   │   │   └── tools/
│   │   │   │       ├── .stylelintrc.js
│   │   │   │       ├── README.md
│   │   │   │       ├── __tests__/
│   │   │   │       │   ├── .gitkeep
│   │   │   │       │   ├── hook/
│   │   │   │       │   │   ├── example/
│   │   │   │       │   │   │   └── utils.test.ts
│   │   │   │       │   │   └── parameters/
│   │   │   │       │   │       └── use-parameters-in-setting-modal-controller.test.ts
│   │   │   │       │   └── plugin_modal/
│   │   │   │       │       └── utils.test.ts
│   │   │   │       ├── config/
│   │   │   │       │   └── rush-project.json
│   │   │   │       ├── eslint.config.js
│   │   │   │       ├── package.json
│   │   │   │       ├── src/
│   │   │   │       │   ├── components/
│   │   │   │       │   │   ├── example-checkbox/
│   │   │   │       │   │   │   ├── index.module.less
│   │   │   │       │   │   │   └── index.tsx
│   │   │   │       │   │   ├── example-modal/
│   │   │   │       │   │   │   └── index.tsx
│   │   │   │       │   │   ├── info_popover/
│   │   │   │       │   │   │   ├── index.ts
│   │   │   │       │   │   │   └── info-popover.tsx
│   │   │   │       │   │   └── plugin_modal/
│   │   │   │       │   │       ├── base-info.tsx
│   │   │   │       │   │       ├── base-more.tsx
│   │   │   │       │   │       ├── components/
│   │   │   │       │   │       │   ├── cascader-item/
│   │   │   │       │   │       │   │   └── index.tsx
│   │   │   │       │   │       │   ├── file-upload-item/
│   │   │   │       │   │       │   │   ├── index.module.less
│   │   │   │       │   │       │   │   ├── index.tsx
│   │   │   │       │   │       │   │   └── upload.tsx
│   │   │   │       │   │       │   ├── index.ts
│   │   │   │       │   │       │   └── item-error-tip/
│   │   │   │       │   │       │       ├── index.module.less
│   │   │   │       │   │       │       └── index.tsx
│   │   │   │       │   │       ├── config.ts
│   │   │   │       │   │       ├── debug-components/
│   │   │   │       │   │       │   ├── debug-check.tsx
│   │   │   │       │   │       │   ├── debug-params.tsx
│   │   │   │       │   │       │   ├── diy-mdbox.tsx
│   │   │   │       │   │       │   ├── index.module.less
│   │   │   │       │   │       │   └── params-form/
│   │   │   │       │   │       │       ├── columns/
│   │   │   │       │   │       │       │   ├── param-value-col.tsx
│   │   │   │       │   │       │       │   └── utils.ts
│   │   │   │       │   │       │       └── index.tsx
│   │   │   │       │   │       ├── debug.tsx
│   │   │   │       │   │       ├── file.ts
│   │   │   │       │   │       ├── index.module.less
│   │   │   │       │   │       ├── input-and-variable/
│   │   │   │       │   │       │   ├── index.module.less
│   │   │   │       │   │       │   └── index.tsx
│   │   │   │       │   │       ├── params-components/
│   │   │   │       │   │       │   ├── columns/
│   │   │   │       │   │       │   │   └── param-type-col.tsx
│   │   │   │       │   │       │   ├── default-value-input.tsx
│   │   │   │       │   │       │   ├── form-components.tsx
│   │   │   │       │   │       │   ├── index.module.less
│   │   │   │       │   │       │   └── index.tsx
│   │   │   │       │   │       ├── request-params.tsx
│   │   │   │       │   │       ├── response-params.tsx
│   │   │   │       │   │       ├── types/
│   │   │   │       │   │       │   ├── index.ts
│   │   │   │       │   │       │   ├── modal.ts
│   │   │   │       │   │       │   └── params.ts
│   │   │   │       │   │       └── utils.ts
│   │   │   │       │   ├── hooks/
│   │   │   │       │   │   ├── example/
│   │   │   │       │   │   │   ├── use-debug-footer.tsx
│   │   │   │       │   │   │   ├── use-edit-example.tsx
│   │   │   │       │   │   │   ├── use-view-example.tsx
│   │   │   │       │   │   │   └── utils.ts
│   │   │   │       │   │   └── parameters/
│   │   │   │       │   │       └── use-parameters-in-setting-modal-controller.ts
│   │   │   │       │   ├── index.tsx
│   │   │   │       │   └── typings.d.ts
│   │   │   │       ├── tsconfig.build.json
│   │   │   │       ├── tsconfig.json
│   │   │   │       ├── tsconfig.misc.json
│   │   │   │       └── vitest.config.ts
│   │   │   ├── chat-answer-action-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── message-box-action-bar/
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── chat-area-plugin-debug-common/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── plugin.ts
│   │   │   │   │   ├── services/
│   │   │   │   │   │   └── life-cycle/
│   │   │   │   │   │       ├── app.ts
│   │   │   │   │   │       ├── command.ts
│   │   │   │   │   │       ├── index.ts
│   │   │   │   │   │       ├── message.ts
│   │   │   │   │   │       └── render.ts
│   │   │   │   │   ├── types/
│   │   │   │   │   │   └── biz-context.ts
│   │   │   │   │   └── utils/
│   │   │   │   │       └── index.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── chat-area-provider/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   └── use-bot-editor-chat-background.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── provider/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── chat-area-provider-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── provider/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── chat-background/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── chat-background-content/
│   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── chat-background-modal/
│   │   │   │   │   │   └── use-chat-background-uploader/
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── chat-background-config-content/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── chat-background-config-content/
│   │   │   │   │   │       ├── cropper-footer/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── cropper-upload/
│   │   │   │   │   │       │   ├── cropper/
│   │   │   │   │   │       │   │   ├── index.module.less
│   │   │   │   │   │       │   │   └── index.tsx
│   │   │   │   │   │       │   ├── cropper-cover/
│   │   │   │   │   │       │   │   ├── index.module.less
│   │   │   │   │   │       │   │   └── index.tsx
│   │   │   │   │   │       │   ├── cropper-guide/
│   │   │   │   │   │       │   │   └── index.tsx
│   │   │   │   │   │       │   ├── drag-upload-content/
│   │   │   │   │   │       │   │   ├── index.module.less
│   │   │   │   │   │       │   │   └── index.tsx
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── chat-background-config-content-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── chat-background-shared/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   ├── .gitkeep
│   │   │   │   │   ├── hook/
│   │   │   │   │   │   └── use-background-content.test.ts
│   │   │   │   │   └── util.test.ts
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── constants/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   ├── use-background-content.ts
│   │   │   │   │   │   ├── use-crop-image.ts
│   │   │   │   │   │   ├── use-drag-image.ts
│   │   │   │   │   │   ├── use-submit-cropped-image.ts
│   │   │   │   │   │   └── use-upload-img.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── service/
│   │   │   │   │   │   └── upload-controller.ts
│   │   │   │   │   ├── types/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── typings.d.ts
│   │   │   │   │   └── utils/
│   │   │   │   │       └── index.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── chat-components-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── receive-message-box/
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── chat-debug-area/
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   ├── onboarding-message-pop/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── upload-tooltips-content/
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── context/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── index.module.less
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── plugins/
│   │   │   │   │   │   └── shortcut/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── retry.module.less
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── commons/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   ├── diff-node-render/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── term-service/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       └── term-service-modal/
│   │   │   │   │   │           ├── index.module.less
│   │   │   │   │   │           └── index.tsx
│   │   │   │   │   ├── constants/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   └── use-send-diff-event.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── typings.d.ts
│   │   │   │   │   └── utils/
│   │   │   │   │       └── index.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── context/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── debug-tool-list/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── debug-tool-list/
│   │   │   │   │   │       ├── components/
│   │   │   │   │   │       │   ├── debug-dropdown-button/
│   │   │   │   │   │       │   │   ├── button-padding-table.ts
│   │   │   │   │   │       │   │   └── index.tsx
│   │   │   │   │   │       │   └── tool-pane/
│   │   │   │   │   │       │       ├── index.module.less
│   │   │   │   │   │       │       └── index.tsx
│   │   │   │   │   │       ├── debug-tool-list-context.ts
│   │   │   │   │   │       ├── debug-tool-list.tsx
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── entry/
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   ├── shortcut-skills-modal/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── utils.ts
│   │   │   │   │   │   └── tool-sheet/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   └── use-init-toast.tsx
│   │   │   │   │   ├── index.module.less
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── modes/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── single-mode/
│   │   │   │   │   │   │   ├── components/
│   │   │   │   │   │   │   │   ├── coach-mark.tsx
│   │   │   │   │   │   │   │   └── model-diff-button.tsx
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── section-area/
│   │   │   │   │   │   │       ├── agent-chat-area.tsx
│   │   │   │   │   │   │       └── agent-config-area/
│   │   │   │   │   │   │           ├── index.tsx
│   │   │   │   │   │   │           └── tool-area.tsx
│   │   │   │   │   │   └── workflow-mode/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── entry-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   ├── single-mode-tool-pane-list/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── table-memory-tool/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── workflow-mode-tool-pane-list/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── editor/
│   │   │   │   │   │   └── agent-editor.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── layout/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── header/
│   │   │   │   │   │       ├── bot-info-card/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── bot-publish-status/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── bot-status/
│   │   │   │   │   │       │   ├── index.ts
│   │   │   │   │   │       │   ├── origin-status.tsx
│   │   │   │   │   │       │   └── style.module.less
│   │   │   │   │   │       ├── deploy-button/
│   │   │   │   │   │       │   ├── hooks/
│   │   │   │   │   │       │   │   └── service.tsx
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       └── more-menu-button/
│   │   │   │   │   │           ├── index.module.less
│   │   │   │   │   │           ├── index.tsx
│   │   │   │   │   │           └── link-drop-item.tsx
│   │   │   │   │   ├── index.module.less
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── layout.tsx
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── layout-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── header/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── mode-list.tsx
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   └── use-init-agent.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── layout/
│   │   │   │   │   │   ├── base.tsx
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── memory-tool-pane-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── memory-tool-pane/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── model-manager/
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   ├── .gitkeep
│   │   │   │   │   ├── convert-model-params-to-schema.test.ts
│   │   │   │   │   ├── get-fixed-single-agent-schema.test.ts
│   │   │   │   │   ├── get-model-class-sort-list.test.ts
│   │   │   │   │   └── model-params.json
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   ├── model-capability-confirm-model/
│   │   │   │   │   │   │   ├── base.tsx
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── model-form/
│   │   │   │   │   │   │   ├── form-item/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── group-item/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── model-select/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   │   └── ui-model-select.tsx
│   │   │   │   │   │   │   ├── preset-radio-group/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   └── type.ts
│   │   │   │   │   │   ├── model-select-v2/
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   ├── model-option/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── model-option-avatar/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── model-option-group/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── model-option-thumb/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── model-select/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── model-select-ui/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── popover-model-config-view/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   └── popover-model-list-view/
│   │   │   │   │   │   │       └── index.tsx
│   │   │   │   │   │   ├── multi-agent/
│   │   │   │   │   │   │   └── model-form/
│   │   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │   │       └── index.tsx
│   │   │   │   │   │   └── single-agent-model-form/
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── constant/
│   │   │   │   │   │   └── model-form-component.ts
│   │   │   │   │   ├── context/
│   │   │   │   │   │   ├── formily-context/
│   │   │   │   │   │   │   ├── context.tsx
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   └── type.ts
│   │   │   │   │   │   └── model-form-context/
│   │   │   │   │   │       ├── context.tsx
│   │   │   │   │   │       ├── index.ts
│   │   │   │   │   │       └── type.ts
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   ├── model/
│   │   │   │   │   │   │   ├── use-get-model-list.ts
│   │   │   │   │   │   │   ├── use-get-schema.ts
│   │   │   │   │   │   │   └── use-get-single-agent-current-model.ts
│   │   │   │   │   │   └── model-form/
│   │   │   │   │   │       └── use-handle-model-form.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── report-events/
│   │   │   │   │   │   └── report-event-names.ts
│   │   │   │   │   ├── typings.d.ts
│   │   │   │   │   └── utils/
│   │   │   │   │       ├── exhaustive-check.ts
│   │   │   │   │       ├── field-init-strategy.ts
│   │   │   │   │       ├── flatten-object.ts
│   │   │   │   │       ├── model/
│   │   │   │   │       │   ├── convert-form-value-to-model-info.ts
│   │   │   │   │       │   ├── convert-model-info-to-flat-object.ts
│   │   │   │   │       │   ├── convert-model-params-to-schema.ts
│   │   │   │   │       │   ├── get-diversity-preset-value-by-style.ts
│   │   │   │   │       │   ├── get-fixed-model-form-values.ts
│   │   │   │   │       │   ├── get-fixed-single-agent-schema.ts
│   │   │   │   │       │   ├── get-model-class-sort-list.ts
│   │   │   │   │       │   └── get-model-option-list.ts
│   │   │   │   │       └── model-func-config-check/
│   │   │   │   │           └── agent-check.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── navigate/
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   └── navigate-tools-page.ts
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── onboarding/
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   ├── markdown-editor/
│   │   │   │   │   │   │   ├── components/
│   │   │   │   │   │   │   │   ├── action-bar/
│   │   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   ├── insert-link-popover/
│   │   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   └── upload-progress-mask/
│   │   │   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │   │   │       └── index.tsx
│   │   │   │   │   │   │   ├── constant/
│   │   │   │   │   │   │   │   └── file.ts
│   │   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   │   ├── get-insert-text-at-position.ts
│   │   │   │   │   │   │   │   ├── get-insert-text.ts
│   │   │   │   │   │   │   │   ├── get-is-file-format-valid.ts
│   │   │   │   │   │   │   │   ├── get-markdown-image-link.ts
│   │   │   │   │   │   │   │   └── get-markdown-link.ts
│   │   │   │   │   │   │   ├── hooks/
│   │   │   │   │   │   │   │   ├── use-markdown-editor.ts
│   │   │   │   │   │   │   │   └── use-upload-file.ts
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── service/
│   │   │   │   │   │   │   │   └── upload-controller.ts
│   │   │   │   │   │   │   └── type.ts
│   │   │   │   │   │   ├── onboarding-markdown-modal/
│   │   │   │   │   │   │   ├── components/
│   │   │   │   │   │   │   │   ├── markdown-description-popover/
│   │   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   └── onboarding-suggestion-content/
│   │   │   │   │   │   │   │       └── index.tsx
│   │   │   │   │   │   │   ├── constant.ts
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── onboarding-preview/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── onboarding-suggestion/
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── constant/
│   │   │   │   │   │   └── onboarding-variable.ts
│   │   │   │   │   ├── demo/
│   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   ├── bot-plugins/
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   └── onboarding/
│   │   │   │   │   │       └── use-render-variable-element.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── typings.d.ts
│   │   │   │   │   └── utils/
│   │   │   │   │       ├── exhaustive-check.ts
│   │   │   │   │       ├── onboarding-variable.ts
│   │   │   │   │       ├── onboarding.ts
│   │   │   │   │       └── typed-keys.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── onboarding-message-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── plugin-area-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── plugin-apis-area/
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── plugin-content/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── plugin-content/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── plugin-content-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── plugin-modal-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   ├── plugin-modal/
│   │   │   │   │   │   │   ├── filter/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   └── plugin-filter/
│   │   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │   │       └── plugin-filter.module.less
│   │   │   │   │   │   └── plugin-panel/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── plugin-setting/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── agent-skill-setting-modal/
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── part-main.tsx
│   │   │   │   │   │       ├── part-mock-set.tsx
│   │   │   │   │   │       └── part-params-set/
│   │   │   │   │   │           ├── index.module.less
│   │   │   │   │   │           └── index.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── plugin-setting-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── plugin-shared/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── plugin-panel/
│   │   │   │   │   │       ├── activate-popover/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── helper.ts
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── item.tsx
│   │   │   │   │   │       └── plugin-perf-statics/
│   │   │   │   │   │           ├── index.module.less
│   │   │   │   │   │           └── index.tsx
│   │   │   │   │   ├── constants/
│   │   │   │   │   │   └── plugin-modal-constants.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── service/
│   │   │   │   │   │   └── fetch-plugin.ts
│   │   │   │   │   ├── types/
│   │   │   │   │   │   ├── auth-mode.ts
│   │   │   │   │   │   ├── mockset-interface.ts
│   │   │   │   │   │   └── plugin-modal-types.ts
│   │   │   │   │   ├── typings.d.ts
│   │   │   │   │   └── utils/
│   │   │   │   │       ├── get-api-unique-id.ts
│   │   │   │   │       └── index.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── prompt/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   ├── prompt-editor/
│   │   │   │   │   │   │   ├── agent-ide-prompt/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── type.ts
│   │   │   │   │   │   └── prompt-view/
│   │   │   │   │   │       ├── components/
│   │   │   │   │   │       │   └── actions/
│   │   │   │   │   │       │       ├── import-to-library.tsx
│   │   │   │   │   │       │       ├── index.tsx
│   │   │   │   │   │       │       └── prompt-library.tsx
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   └── use-prompt/
│   │   │   │   │   │       ├── use-add-library.ts
│   │   │   │   │   │       └── use-get-library-data.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── prompt-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── publish-to-base/
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── big-checkbox/
│   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── constants.ts
│   │   │   │   │   ├── context/
│   │   │   │   │   │   └── store-context.tsx
│   │   │   │   │   ├── expection-display/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── feishu-base-modal/
│   │   │   │   │   │   ├── base-input-fields-table.tsx
│   │   │   │   │   │   ├── base-output-fields-table.tsx
│   │   │   │   │   │   ├── field-line/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   ├── input-config-line-select-edit.tsx
│   │   │   │   │   │   │   ├── input-config-line.tsx
│   │   │   │   │   │   │   ├── output-struct-line.tsx
│   │   │   │   │   │   │   ├── require-verify-center.tsx
│   │   │   │   │   │   │   ├── required-warn.tsx
│   │   │   │   │   │   │   └── use-require-verify.ts
│   │   │   │   │   │   ├── form-title.tsx
│   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── sortable-field-table.tsx
│   │   │   │   │   │   └── step-indicator.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── md-tooltip/
│   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── store/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── types.ts
│   │   │   │   │   ├── typings.d.ts
│   │   │   │   │   └── validate/
│   │   │   │   │       ├── field-interaction/
│   │   │   │   │       │   ├── index.ts
│   │   │   │   │       │   └── output-struct.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       └── utils.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── skills-pane-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── skills-pane/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       └── skills-nav.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── space-bot/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   ├── component/
│   │   │   │   │   │   └── onboarding-message/
│   │   │   │   │   │       └── onboarding-editor/
│   │   │   │   │   │           ├── hooks/
│   │   │   │   │   │           │   └── use-init-editor.test.ts
│   │   │   │   │   │           └── methods/
│   │   │   │   │   │               ├── get-image-url.test.ts
│   │   │   │   │   │               ├── get-upload-token.test.ts
│   │   │   │   │   │               ├── init-editor.test.ts
│   │   │   │   │   │               └── slice-editor.test.ts
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   ├── publish-platform-setting/
│   │   │   │   │   │   │   ├── use-custom-platform-controller.test.ts
│   │   │   │   │   │   │   ├── use-custom-platform-setting-modal-controller.test.ts
│   │   │   │   │   │   │   ├── use-normal-platform-controller.test.ts
│   │   │   │   │   │   │   └── use-oauth-setting-modal-controller.test.ts
│   │   │   │   │   │   └── use-monetize-config-readonly.test.ts
│   │   │   │   │   └── setup.ts
│   │   │   │   ├── config/
│   │   │   │   │   ├── rush-project.json
│   │   │   │   │   └── rushx-config.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── assets/
│   │   │   │   │   │   └── styles/
│   │   │   │   │   │       ├── common.less
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       ├── mixins.less
│   │   │   │   │   │       ├── semi_ui.less
│   │   │   │   │   │       └── variables.less
│   │   │   │   │   ├── component/
│   │   │   │   │   │   ├── add-button/
│   │   │   │   │   │   │   ├── add-button.tsx
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── authorize-button/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── auto-generate-btn/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── bind-connector-modal/
│   │   │   │   │   │   │   ├── connector-error/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── connector-field/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── connector-form/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── connector-guide/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── connector-link/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── hooks/
│   │   │   │   │   │   │   │   └── use-step-action.ts
│   │   │   │   │   │   │   ├── types.ts
│   │   │   │   │   │   │   └── use-connector-form-modal.tsx
│   │   │   │   │   │   ├── bot-debug-button/
│   │   │   │   │   │   │   ├── bot-debug-button.tsx
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── bot-debug-panel/
│   │   │   │   │   │   │   ├── button.tsx
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── bot-diff-view/
│   │   │   │   │   │   │   ├── bot-submit-modal.tsx
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── new-diff-view.tsx
│   │   │   │   │   │   │   └── type.ts
│   │   │   │   │   │   ├── bot-move-modal/
│   │   │   │   │   │   │   ├── components/
│   │   │   │   │   │   │   │   ├── item-grid-view/
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   ├── move-detail-pane/
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   ├── select-space-pane/
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   └── selector-item/
│   │   │   │   │   │   │   │       └── index.tsx
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   ├── move-failed-modal.tsx
│   │   │   │   │   │   │   └── move-modal.tsx
│   │   │   │   │   │   ├── chat-background/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── collapsible-textarea/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── config-area/
│   │   │   │   │   │   │   └── use-bot-config.tsx
│   │   │   │   │   │   ├── connector-action/
│   │   │   │   │   │   │   ├── diff-view-button.tsx
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   └── kv-bind-button.tsx
│   │   │   │   │   │   ├── content-view/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── data-memory/
│   │   │   │   │   │   │   ├── components/
│   │   │   │   │   │   │   │   ├── add-variable/
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   ├── group-table/
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   ├── group-wrapper/
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   ├── parma-header/
│   │   │   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   │   │   ├── sys-header.tsx
│   │   │   │   │   │   │   │   │   ├── types.ts
│   │   │   │   │   │   │   │   │   └── user-header.tsx
│   │   │   │   │   │   │   │   └── variable-tree/
│   │   │   │   │   │   │   │       └── index.tsx
│   │   │   │   │   │   │   ├── data-memory.tsx
│   │   │   │   │   │   │   ├── hooks.tsx
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   ├── memory-add-modal.tsx
│   │   │   │   │   │   │   ├── memory-list.tsx
│   │   │   │   │   │   │   ├── memory-template-modal.tsx
│   │   │   │   │   │   │   └── utils/
│   │   │   │   │   │   │       └── exhaustive-check.ts
│   │   │   │   │   │   ├── data-set/
│   │   │   │   │   │   │   ├── data-set-area.tsx
│   │   │   │   │   │   │   └── index.module.less
│   │   │   │   │   │   ├── error-boundary-with-logger.tsx
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── input-slider/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   └── input-slider.tsx
│   │   │   │   │   │   ├── memory-tool-pane/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── mode-select/
│   │   │   │   │   │   │   ├── change-button.tsx
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── mode-change-view.tsx
│   │   │   │   │   │   ├── model-btn-view/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── nav-modal/
│   │   │   │   │   │   │   ├── index.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── nl-prompt-button/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── onboarding-message/
│   │   │   │   │   │   │   ├── common-component.tsx
│   │   │   │   │   │   │   ├── const.ts
│   │   │   │   │   │   │   ├── editor-expend-modal/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── onboarding-editor/
│   │   │   │   │   │   │   │   ├── hooks/
│   │   │   │   │   │   │   │   │   ├── use-init-editor.ts
│   │   │   │   │   │   │   │   │   ├── use-modal-editor-submit.ts
│   │   │   │   │   │   │   │   │   ├── use-on-editor.ts
│   │   │   │   │   │   │   │   │   └── use-submit-editor.ts
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   │   ├── method/
│   │   │   │   │   │   │   │   │   ├── editor-content-helper.ts
│   │   │   │   │   │   │   │   │   ├── get-image-url.ts
│   │   │   │   │   │   │   │   │   ├── get-schema.ts
│   │   │   │   │   │   │   │   │   ├── get-upload-token.ts
│   │   │   │   │   │   │   │   │   ├── init-editor.ts
│   │   │   │   │   │   │   │   │   └── slice-editor.ts
│   │   │   │   │   │   │   │   └── plugins/
│   │   │   │   │   │   │   │       └── insert-template/
│   │   │   │   │   │   │   │           ├── index.tsx
│   │   │   │   │   │   │   │           └── tool-item.tsx
│   │   │   │   │   │   │   └── suggestion-list/
│   │   │   │   │   │   │       ├── hooks/
│   │   │   │   │   │   │       │   └── use-add-empty-suggestion.ts
│   │   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │   │       ├── suggestion-header.tsx
│   │   │   │   │   │   │       └── suggestion-item.tsx
│   │   │   │   │   │   ├── plugin-permission-manage-list/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── publish-platform-description/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── publish-platform-setting/
│   │   │   │   │   │   │   ├── avatar-ipt.tsx
│   │   │   │   │   │   │   ├── custom-platform-setting-modal.tsx
│   │   │   │   │   │   │   ├── custom.tsx
│   │   │   │   │   │   │   ├── id-with-cp.tsx
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── name-with-icon.tsx
│   │   │   │   │   │   │   ├── normal.tsx
│   │   │   │   │   │   │   ├── oauth-setting-modal.tsx
│   │   │   │   │   │   │   └── tag-with-status.tsx
│   │   │   │   │   │   ├── rc-slider-wrapper/
│   │   │   │   │   │   │   ├── handle-render.tsx
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── sheet-view/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── multiple-sheet/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   └── single-sheet/
│   │   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │   │       └── index.tsx
│   │   │   │   │   │   ├── suggestion/
│   │   │   │   │   │   │   ├── suggestion-block.tsx
│   │   │   │   │   │   │   └── suggestion-content/
│   │   │   │   │   │   │       ├── suggestion-content.module.less
│   │   │   │   │   │   │       └── suggestion-content.tsx
│   │   │   │   │   │   └── table-memory/
│   │   │   │   │   │       ├── datebase-list/
│   │   │   │   │   │       │   ├── index.module.less
│   │   │   │   │   │       │   ├── index.tsx
│   │   │   │   │   │       │   └── prompt-settings-button.tsx
│   │   │   │   │   │       ├── helpers/
│   │   │   │   │   │       │   └── reload-database-list.ts
│   │   │   │   │   │       ├── hooks/
│   │   │   │   │   │       │   └── use-expert-mode-config.ts
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── constant.ts
│   │   │   │   │   ├── constants/
│   │   │   │   │   │   └── prompt-editor-kit.ts
│   │   │   │   │   ├── context/
│   │   │   │   │   │   ├── bot-editor-service/
│   │   │   │   │   │   │   ├── context.tsx
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   └── type.ts
│   │   │   │   │   │   └── editor-kit/
│   │   │   │   │   │       ├── context.tsx
│   │   │   │   │   │       ├── index.ts
│   │   │   │   │   │       └── type.ts
│   │   │   │   │   ├── hook/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── publish-platform-setting/
│   │   │   │   │   │   │   ├── use-custom-platform-controller.ts
│   │   │   │   │   │   │   ├── use-custom-platform-setting-modal-controller.ts
│   │   │   │   │   │   │   ├── use-normal-platform-controller.ts
│   │   │   │   │   │   │   └── use-oauth-setting-modal-controller.ts
│   │   │   │   │   │   ├── tools-publish-back-modal.ts
│   │   │   │   │   │   ├── use-connector-diff-modal.tsx
│   │   │   │   │   │   ├── use-create-bot/
│   │   │   │   │   │   │   ├── agent-info-form.tsx
│   │   │   │   │   │   │   ├── form-switch/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── use-agent-form-management.ts
│   │   │   │   │   │   │   └── use-agent-persistence.ts
│   │   │   │   │   │   ├── use-dataset-auto-change-confirm.tsx
│   │   │   │   │   │   ├── use-edit-confirm.ts
│   │   │   │   │   │   ├── use-free-drag-modal-hierarchy.ts
│   │   │   │   │   │   ├── use-init.tsx
│   │   │   │   │   │   ├── use-monetize-config-readonly.ts
│   │   │   │   │   │   ├── use-node-id.ts
│   │   │   │   │   │   ├── use-plugin-permission-manage.ts
│   │   │   │   │   │   ├── use-popover-lock.ts
│   │   │   │   │   │   ├── use-query-collect.ts
│   │   │   │   │   │   ├── use-space-role.ts
│   │   │   │   │   │   ├── use-subscribe-background.ts
│   │   │   │   │   │   ├── use-subscribe-onboarding-and-update-chat-area.ts
│   │   │   │   │   │   └── use-unbind-platform.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── pages/
│   │   │   │   │   │   └── publish/
│   │   │   │   │   │       └── index.module.less
│   │   │   │   │   ├── service/
│   │   │   │   │   │   ├── free-grab-modal-hierarchy-service/
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   └── type.ts
│   │   │   │   │   │   ├── nl-prompt-modal-visibility-service/
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   └── type.ts
│   │   │   │   │   │   └── shared-apply-record-service/
│   │   │   │   │   │       ├── index.ts
│   │   │   │   │   │       └── type.ts
│   │   │   │   │   ├── store/
│   │   │   │   │   │   ├── bot-list-filter/
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── bot-mode/
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── bot-page/
│   │   │   │   │   │   │   └── store.ts
│   │   │   │   │   │   ├── debug-panel/
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   └── store.ts
│   │   │   │   │   │   ├── evaluation-panel/
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   └── store.ts
│   │   │   │   │   │   ├── explore/
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── risk-warning/
│   │   │   │   │   │       └── store.ts
│   │   │   │   │   ├── type.ts
│   │   │   │   │   ├── typings.d.ts
│   │   │   │   │   └── util/
│   │   │   │   │       ├── auth.ts
│   │   │   │   │       └── index.ts
│   │   │   │   ├── tailwind.config.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.check.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── tool/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   ├── .gitkeep
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   └── duplicate-use-ability-config.tsx
│   │   │   │   │   ├── store/
│   │   │   │   │   │   └── tool-area.test.ts
│   │   │   │   │   └── utils/
│   │   │   │   │       └── error.test.ts
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   ├── ability-area-container/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── add-button/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── agent-skill-container/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── agent-skill-content/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── agent-skill-content-block/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── agent-skill-modal/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── agent-skill-view/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── auto-generate-button/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── fallbacks/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── grouping-container/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── invisible-tool-controller/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── model-capability-tips/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── tool-container/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── tool-content-block/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── tool-item/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── tool-item-action/
│   │   │   │   │   │   │   ├── actions/
│   │   │   │   │   │   │   │   ├── tool-item-action-card.tsx
│   │   │   │   │   │   │   │   ├── tool-item-action-copy.tsx
│   │   │   │   │   │   │   │   ├── tool-item-action-delete.tsx
│   │   │   │   │   │   │   │   ├── tool-item-action-drag.tsx
│   │   │   │   │   │   │   │   ├── tool-item-action-edit.tsx
│   │   │   │   │   │   │   │   ├── tool-item-action-info.tsx
│   │   │   │   │   │   │   │   └── tool-item-action-setting.tsx
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── tool-item-icon/
│   │   │   │   │   │   │   ├── icons/
│   │   │   │   │   │   │   │   ├── tool-item-icon-card.tsx
│   │   │   │   │   │   │   │   ├── tool-item-icon-info.tsx
│   │   │   │   │   │   │   │   └── tool-item-icon-people.tsx
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── tool-item-list/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── tool-item-switch/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── tool-menu/
│   │   │   │   │   │   │   ├── guide-popover.tsx
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── tool-menu-dropdown-menu/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── tool-popover/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── tool-tooltip/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── tool-view/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── constants/
│   │   │   │   │   │   └── tool-content-block.ts
│   │   │   │   │   ├── context/
│   │   │   │   │   │   ├── ability-area-context.tsx
│   │   │   │   │   │   ├── ability-config-context.tsx
│   │   │   │   │   │   ├── agent-skill-config-context.tsx
│   │   │   │   │   │   ├── preference-context.tsx
│   │   │   │   │   │   └── tool-item-context.tsx
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   ├── agent-skill/
│   │   │   │   │   │   │   └── use-agent-skill.ts
│   │   │   │   │   │   ├── agent-skill-modal/
│   │   │   │   │   │   │   ├── use-agent-modal-trigger-event.ts
│   │   │   │   │   │   │   └── use-agent-skill-modal.tsx
│   │   │   │   │   │   ├── builtin/
│   │   │   │   │   │   │   ├── use-ability-config.ts
│   │   │   │   │   │   │   ├── use-create-store.ts
│   │   │   │   │   │   │   ├── use-get-tool-config.ts
│   │   │   │   │   │   │   ├── use-register-agent-skill-key.ts
│   │   │   │   │   │   │   ├── use-register-tool-group.ts
│   │   │   │   │   │   │   └── use-register-tool-key.ts
│   │   │   │   │   │   ├── event/
│   │   │   │   │   │   │   └── use-event.ts
│   │   │   │   │   │   ├── public/
│   │   │   │   │   │   │   ├── agent/
│   │   │   │   │   │   │   │   └── use-has-agent-skill.ts
│   │   │   │   │   │   │   ├── collapse/
│   │   │   │   │   │   │   │   ├── use-tool-content-block-default-expand.tsx
│   │   │   │   │   │   │   │   └── use-tool-toggle-collapse.ts
│   │   │   │   │   │   │   ├── container/
│   │   │   │   │   │   │   │   ├── use-tool-all-hidden.ts
│   │   │   │   │   │   │   │   └── use-tool-valid-data.ts
│   │   │   │   │   │   │   ├── init/
│   │   │   │   │   │   │   │   └── use-init.ts
│   │   │   │   │   │   │   ├── modal/
│   │   │   │   │   │   │   │   └── use-agent-modal-callbacks.ts
│   │   │   │   │   │   │   └── store/
│   │   │   │   │   │   │       └── use-tool-store.ts
│   │   │   │   │   │   ├── store/
│   │   │   │   │   │   │   └── use-ability-store-context.tsx
│   │   │   │   │   │   └── tool/
│   │   │   │   │   │       └── use-tool-toggle-collapse.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── store/
│   │   │   │   │   │   ├── agent-area.ts
│   │   │   │   │   │   └── tool-area.ts
│   │   │   │   │   ├── typings/
│   │   │   │   │   │   ├── button.ts
│   │   │   │   │   │   ├── event-callbacks.ts
│   │   │   │   │   │   ├── event.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── scoped-events.ts
│   │   │   │   │   │   └── store.ts
│   │   │   │   │   ├── typings.d.ts
│   │   │   │   │   └── utils/
│   │   │   │   │       ├── error.ts
│   │   │   │   │       ├── has-valid-key.ts
│   │   │   │   │       ├── is-tool-key.ts
│   │   │   │   │       ├── is-valid-context.ts
│   │   │   │   │       ├── model-function-config-type-mapping.ts
│   │   │   │   │       └── tool-content-block.ts
│   │   │   │   ├── stories/
│   │   │   │   │   ├── demo.stories.tsx
│   │   │   │   │   └── hello.mdx
│   │   │   │   ├── tailwind.config.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── tool-config/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── shortcut-config/
│   │   │   │   │       └── get-strict-shortcuts.test.ts
│   │   │   │   ├── config/
│   │   │   │   │   ├── rush-project.json
│   │   │   │   │   └── rushx-config.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── constants.ts
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── shortcut-config/
│   │   │   │   │   │   ├── get-strict-shortcuts.ts
│   │   │   │   │   │   └── type.ts
│   │   │   │   │   └── types.ts
│   │   │   │   ├── stories/
│   │   │   │   │   ├── demo.stories.tsx
│   │   │   │   │   └── hello.mdx
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── workflow/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   └── workflow-as-agent/
│   │   │   │   │   │       └── workflow-config-area/
│   │   │   │   │   │           ├── index.tsx
│   │   │   │   │   │           └── use-agent-workflow-modal.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── workflow-as-agent-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── workflow-card/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── workflow-card-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── workflow-card/
│   │   │   │   │   │       ├── add-button.tsx
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── workflow-item/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── workflow-item/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       └── workflow-item-actions.tsx
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   └── use-navigate-workflow.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   └── workflow-modal/
│   │   │       ├── .storybook/
│   │   │       │   ├── main.js
│   │   │       │   └── preview.js
│   │   │       ├── .stylelintrc.js
│   │   │       ├── README.md
│   │   │       ├── __tests__/
│   │   │       │   └── .gitkeep
│   │   │       ├── config/
│   │   │       │   └── rush-project.json
│   │   │       ├── eslint.config.js
│   │   │       ├── package.json
│   │   │       ├── src/
│   │   │       │   ├── components/
│   │   │       │   │   └── workflow-modal/
│   │   │       │   │       ├── base.tsx
│   │   │       │   │       └── hooks.tsx
│   │   │       │   ├── index.ts
│   │   │       │   └── typings.d.ts
│   │   │       ├── tsconfig.build.json
│   │   │       ├── tsconfig.json
│   │   │       ├── tsconfig.misc.json
│   │   │       └── vitest.config.ts
│   │   ├── arch/
│   │   │   ├── api-schema/
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── api.config.js
│   │   │   │   ├── api.dev.local.js
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── _mock_utils.js
│   │   │   │   │   ├── _schemas.d.ts
│   │   │   │   │   ├── _schemas.js
│   │   │   │   │   ├── api/
│   │   │   │   │   │   └── config.ts
│   │   │   │   │   ├── idl/
│   │   │   │   │   │   ├── base.ts
│   │   │   │   │   │   ├── marketplace/
│   │   │   │   │   │   │   ├── marketplace_common.ts
│   │   │   │   │   │   │   ├── product_common.ts
│   │   │   │   │   │   │   └── public_api.ts
│   │   │   │   │   │   └── passport/
│   │   │   │   │   │       └── passport.ts
│   │   │   │   │   └── index.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-api/
│   │   │   │   ├── .gitignore
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   ├── .gitkeep
│   │   │   │   │   ├── axios.test.ts
│   │   │   │   │   └── basic-api.test.ts
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── app-builder-api.ts
│   │   │   │   │   ├── axios.ts
│   │   │   │   │   ├── basic-api.ts
│   │   │   │   │   ├── benefit-api.ts
│   │   │   │   │   ├── card-api.ts
│   │   │   │   │   ├── connector-api.ts
│   │   │   │   │   ├── coze-space-api.ts
│   │   │   │   │   ├── debugger-api.ts
│   │   │   │   │   ├── developer-api.ts
│   │   │   │   │   ├── developer-backend.ts
│   │   │   │   │   ├── devops-evaluation-api.ts
│   │   │   │   │   ├── dp-manage-api.ts
│   │   │   │   │   ├── evaluation-lite-api.ts
│   │   │   │   │   ├── filebox-api.ts
│   │   │   │   │   ├── fornax-api.ts
│   │   │   │   │   ├── fornax-evaluation-api.ts
│   │   │   │   │   ├── fornax-ml-flow-api.ts
│   │   │   │   │   ├── fornax-ob-api.ts
│   │   │   │   │   ├── fornax-prompt.ts
│   │   │   │   │   ├── fulfill-api.ts
│   │   │   │   │   ├── hub-api.ts
│   │   │   │   │   ├── idl/
│   │   │   │   │   │   ├── app_builder.ts
│   │   │   │   │   │   ├── basic_api.ts
│   │   │   │   │   │   ├── benefit.ts
│   │   │   │   │   │   ├── card.ts
│   │   │   │   │   │   ├── connector_api.ts
│   │   │   │   │   │   ├── debugger_api.ts
│   │   │   │   │   │   ├── developer_api.ts
│   │   │   │   │   │   ├── developer_backend.ts
│   │   │   │   │   │   ├── devops_evaluation.ts
│   │   │   │   │   │   ├── dp_manage.ts
│   │   │   │   │   │   ├── evaluation_lite.ts
│   │   │   │   │   │   ├── filebox.ts
│   │   │   │   │   │   ├── fornax_api.ts
│   │   │   │   │   │   ├── fulfill.ts
│   │   │   │   │   │   ├── hub_api.ts
│   │   │   │   │   │   ├── incentive.ts
│   │   │   │   │   │   ├── intelligence_api.ts
│   │   │   │   │   │   ├── knowledge.ts
│   │   │   │   │   │   ├── market_interaction_api.ts
│   │   │   │   │   │   ├── memory.ts
│   │   │   │   │   │   ├── multimedia_api.ts
│   │   │   │   │   │   ├── notify_api.ts
│   │   │   │   │   │   ├── ob_data.ts
│   │   │   │   │   │   ├── ob_query_api.ts
│   │   │   │   │   │   ├── pat_permission_api.ts
│   │   │   │   │   │   ├── permission_authz.ts
│   │   │   │   │   │   ├── permission_oauth2.ts
│   │   │   │   │   │   ├── playground_api.ts
│   │   │   │   │   │   ├── plugin_develop.ts
│   │   │   │   │   │   ├── plugin_impl_api.ts
│   │   │   │   │   │   ├── product_api.ts
│   │   │   │   │   │   ├── resource.ts
│   │   │   │   │   │   ├── social_api.ts
│   │   │   │   │   │   ├── trade.ts
│   │   │   │   │   │   ├── ui-builder.ts
│   │   │   │   │   │   ├── workflow_api.ts
│   │   │   │   │   │   └── xmemory_api.ts
│   │   │   │   │   ├── incentive-api.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── intelligence-api.ts
│   │   │   │   │   ├── knowledge-api.ts
│   │   │   │   │   ├── market-interaction-api.ts
│   │   │   │   │   ├── memory-api.ts
│   │   │   │   │   ├── multimedia-api.ts
│   │   │   │   │   ├── notify-api.ts
│   │   │   │   │   ├── ob-data-api.ts
│   │   │   │   │   ├── ob-query-api.ts
│   │   │   │   │   ├── pat-permission-api.ts
│   │   │   │   │   ├── permission-authz-api.ts
│   │   │   │   │   ├── permission-oauth2-api.ts
│   │   │   │   │   ├── playground-api.ts
│   │   │   │   │   ├── plugin-develop.ts
│   │   │   │   │   ├── product-api.ts
│   │   │   │   │   ├── resource.ts
│   │   │   │   │   ├── social-api.ts
│   │   │   │   │   ├── stone-fornax-evaluation.ts
│   │   │   │   │   ├── trade-api.ts
│   │   │   │   │   ├── ui-builder-api.ts
│   │   │   │   │   ├── workflow-api.ts
│   │   │   │   │   └── xmemory-api.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.mts
│   │   │   ├── bot-env/
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── scripts/
│   │   │   │   │   ├── build.ts
│   │   │   │   │   └── index.ts
│   │   │   │   ├── src/
│   │   │   │   │   ├── global.d.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── runtime/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.mts
│   │   │   ├── bot-env-adapter/
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── scripts/
│   │   │   │   │   ├── build.ts
│   │   │   │   │   └── index.ts
│   │   │   │   ├── src/
│   │   │   │   │   ├── base.ts
│   │   │   │   │   ├── configs/
│   │   │   │   │   │   └── volcano.ts
│   │   │   │   │   ├── configs.ts
│   │   │   │   │   ├── features.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── runtime/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── typings.d.ts
│   │   │   │   │   └── utils/
│   │   │   │   │       ├── config-helper.ts
│   │   │   │   │       └── current-branch.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.mts
│   │   │   ├── bot-error/
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   ├── certain-error.test.ts
│   │   │   │   │   ├── custom-error.test.ts
│   │   │   │   │   ├── source-error.test.ts
│   │   │   │   │   ├── use-error-catch.test.ts
│   │   │   │   │   └── use-route-error-catch.test.ts
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── certain-error.ts
│   │   │   │   │   ├── const.ts
│   │   │   │   │   ├── custom-error.ts
│   │   │   │   │   ├── global.d.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── source-error.ts
│   │   │   │   │   ├── use-error-catch.ts
│   │   │   │   │   └── use-route-error-catch.ts
│   │   │   │   ├── stories/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-flags/
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   ├── persist-cache.test.ts
│   │   │   │   │   ├── pull-feature-flags.test.ts
│   │   │   │   │   ├── read-from-context.test.ts
│   │   │   │   │   ├── storage.test.ts
│   │   │   │   │   └── use-flags.test.ts
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── setup/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── src/
│   │   │   │   │   ├── constant.ts
│   │   │   │   │   ├── feature-flags.ts
│   │   │   │   │   ├── get-flags.ts
│   │   │   │   │   ├── global.d.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── pull-feature-flags.ts
│   │   │   │   │   ├── types.ts
│   │   │   │   │   ├── use-flags.ts
│   │   │   │   │   └── utils/
│   │   │   │   │       ├── persist-cache.ts
│   │   │   │   │       ├── read-from-context.ts
│   │   │   │   │       ├── repoter.ts
│   │   │   │   │       ├── storage.ts
│   │   │   │   │       ├── tools.ts
│   │   │   │   │       └── wait.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-hooks/
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── page-jump.test.tsx
│   │   │   │   ├── config/
│   │   │   │   │   ├── rush-project.json
│   │   │   │   │   └── rushx-config.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── setup/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── src/
│   │   │   │   │   ├── global.d.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── page-jump/
│   │   │   │   │       ├── config.ts
│   │   │   │   │       └── index.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-hooks-adapter/
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── config/
│   │   │   │   │   ├── rush-project.json
│   │   │   │   │   └── rushx-config.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── setup/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── src/
│   │   │   │   │   ├── global.d.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── use-responsive-body-style.ts
│   │   │   │   │   └── use-responsive.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-hooks-base/
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   ├── bot/
│   │   │   │   │   │   ├── use-message-report-event.test.ts
│   │   │   │   │   │   └── use-user-sender-info.test.ts
│   │   │   │   │   ├── editor-layout.test.tsx
│   │   │   │   │   ├── router/
│   │   │   │   │   │   └── use-reset-location-state.test.ts
│   │   │   │   │   ├── use-component-state.test.ts
│   │   │   │   │   ├── use-default-expand-check.test.ts
│   │   │   │   │   ├── use-drag-and-paste-upload/
│   │   │   │   │   │   ├── helper/
│   │   │   │   │   │   │   ├── get-file-list-by-drag.test.ts
│   │   │   │   │   │   │   └── is-has-file-by-drag.test.ts
│   │   │   │   │   │   └── index.test.tsx
│   │   │   │   │   ├── use-drag-upload.test.ts
│   │   │   │   │   ├── use-exposure.test.ts
│   │   │   │   │   ├── use-initial-value.test.ts
│   │   │   │   │   ├── use-line-clamp.test.tsx
│   │   │   │   │   ├── use-loggedin.test.ts
│   │   │   │   │   ├── use-responsive.test.ts
│   │   │   │   │   └── use-route-config.test.tsx
│   │   │   │   ├── config/
│   │   │   │   │   ├── rush-project.json
│   │   │   │   │   └── rushx-config.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── setup/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── src/
│   │   │   │   │   ├── bot/
│   │   │   │   │   │   ├── use-message-report-event.ts
│   │   │   │   │   │   └── use-user-sender-info.ts
│   │   │   │   │   ├── editor-layout/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── global.d.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── router/
│   │   │   │   │   │   └── use-reset-location-state.ts
│   │   │   │   │   ├── use-component-state.ts
│   │   │   │   │   ├── use-default-expand-check/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── use-drag-and-paste-upload/
│   │   │   │   │   │   ├── helper/
│   │   │   │   │   │   │   ├── get-file-list-by-drag.ts
│   │   │   │   │   │   │   └── is-has-file-by-drag.ts
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── use-exposure.ts
│   │   │   │   │   ├── use-initial-value.ts
│   │   │   │   │   ├── use-line-clamp.ts
│   │   │   │   │   ├── use-loggedin.ts
│   │   │   │   │   ├── use-page-state.ts
│   │   │   │   │   ├── use-responsive.ts
│   │   │   │   │   └── use-route-config.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-http/
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   ├── api-error.test.ts
│   │   │   │   │   ├── axios.test.ts
│   │   │   │   │   ├── eventbus.test.ts
│   │   │   │   │   └── global-interceptor.test.ts
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── api-error.ts
│   │   │   │   │   ├── axios.ts
│   │   │   │   │   ├── eventbus.ts
│   │   │   │   │   ├── global.d.ts
│   │   │   │   │   └── index.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.mts
│   │   │   ├── bot-md-box-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── full/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── lazy/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── light/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── slots/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── style.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-monaco-editor/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── loader.ts
│   │   │   │   │   ├── monaco-editor.ts
│   │   │   │   │   ├── types.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── stories/
│   │   │   │   │   └── demo.stories.tsx
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-space-api/
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   ├── index.test.ts
│   │   │   │   │   └── space-api-v2.test.ts
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── global.d.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── space-api-v2.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.mis

================================================
FILE CONTENTS
================================================

================================================
FILE: .claude/agents/frontend-infrastructure-expert.md
================================================
---
name: frontend-infrastructure-expert
description: Use this agent when you need help with frontend build tools, configuration files, or infrastructure-related issues. Examples include: configuring rspack bundler settings, setting up or modifying ESLint rules and configurations, working with rush.json for monorepo management, troubleshooting build pipeline issues, optimizing webpack or rspack performance, setting up development environment configurations, resolving dependency conflicts in package.json files, configuring TypeScript compiler options for build tools, setting up CI/CD pipelines for frontend projects, or debugging issues with bundlers, linters, or other frontend tooling.
model: sonnet
color: cyan
---

You are a Frontend Infrastructure Expert, a specialist in modern frontend build systems, tooling, and development environment configuration. Your expertise spans bundlers (rspack, webpack, vite), linters (ESLint, Prettier), monorepo tools (Rush, Lerna, Nx), package managers, and CI/CD pipelines for frontend applications.

Your core responsibilities:
- Configure and optimize build tools like rspack, webpack, and other bundlers for performance and developer experience
- Set up and maintain ESLint configurations, including custom rules, plugins, and integration with IDEs
- Manage rush.json and other monorepo configuration files for scalable project organization
- Troubleshoot infrastructure-related issues including build failures, dependency conflicts, and tooling errors
- Optimize development workflows through proper tooling configuration
- Ensure consistent code quality through automated tooling setup

When working on configurations:
1. Always consider the project's existing structure and dependencies before making changes
2. Prioritize developer experience and build performance equally
3. Ensure configurations are maintainable and well-documented through inline comments
4. Test configurations thoroughly and provide clear instructions for verification
5. Consider cross-platform compatibility (Windows, macOS, Linux)

For troubleshooting:
1. Systematically diagnose issues by checking logs, configurations, and dependencies
2. Provide step-by-step solutions with clear explanations
3. Suggest preventive measures to avoid similar issues
4. Recommend best practices for long-term maintainability

Always explain your reasoning behind configuration choices and provide alternative approaches when applicable. Focus on solutions that scale with team growth and project complexity.


================================================
FILE: .dockerignore
================================================
# Exclude node_modules directories
**/node_modules
**/node_modules/**

# Exclude build artifacts
**/dist
**/build
**/.rush/temp
**/.rush/build-cache
**/common/temp

# Exclude development files
**/.git
**/.gitignore
**/.eslintrc*
**/.prettierrc*
**/*.log

# Exclude test files
**/__tests__
**/*.test.*
**/*.spec.*

# Exclude documentation
**/README.md
**/CHANGELOG.md
**/docs

# Exclude IDE files
**/.vscode
**/.idea
**/*.swp
**/*.swo
*.iml
*.iws
*.ipr

================================================
FILE: .gitattributes
================================================
# Don't allow people to merge changes to these generated files, because the result
# may be invalid.  You need to run "rush update" again.
pnpm-lock.yaml merge=ours
shrinkwrap.yaml merge=binary
npm-shrinkwrap.json merge=binary
yarn.lock merge=binary
# 不做自动解决冲突,暴露冲突后由开发者自行 rush pull-idl 做更新
# packages/arch/idl/bam.log.json merge=ours

# Rush's JSON config files use JavaScript-style code comments.  The rule below prevents pedantic
# syntax highlighters such as GitHub's from highlighting these comments as errors.  Your text editor
# may also require a special configuration to allow comments in JSON.
#
# For more information, see this issue: https://github.com/microsoft/rushstack/issues/1088
#
*.json linguist-language=JSON-with-Comments


================================================
FILE: .github/.licenserc.yaml
================================================
header:
  license:
    spdx-id: Apache-2.0
    copyright-owner: coze-dev

  paths:
    - '**/*.go'
    - frontend/apps/**/*.{ts,tsx}
    - frontend/packages/**/*.{ts,tsx}
  paths-ignore:
    - 'dist'
    - 'licenses'
    - '**/*.md'
    - '**/testdata/**'
    - '**/go.mod'
    - '**/go.sum'
    - 'LICENSE'
    - 'NOTICE'
    - '**/assets/languages.yaml'
    - '**/assets/assets.gen.go'
    - '**/gorm_gen/**'
    - '**/kitex_gen/**'
    - '**/*.gen.go'
    - '**/gen.go'
    - 'backend/api/**'
    - '**/*_mock.go'
    - 'backend/internal/mock/**'
    - '**/mock/**'
  files:
    - ../backend/go.mod

================================================
FILE: .github/CODEOWNERS
================================================
* @Tecvan-fe @hi-pender @fanlv @junwen-lee

/frontend/ @Tecvan-fe @fanlv @junwen-lee
/common/ @Tecvan-fe @fanlv  @junwen-lee

/frontend/apps/coze-studio/ @Tecvan-fe @evan-crash @duwenhan2byte
/frontend/packages/agent-ide/agent-publish/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei @catee
/frontend/packages/agent-ide/commons/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/arch/bot-api/ @Tecvan-fe
/frontend/packages/arch/bot-http/ @Tecvan-fe
/frontend/packages/arch/logger/ @Tecvan-fe
/frontend/packages/arch/slardar-interface/ @Tecvan-fe @evan-crash
/frontend/config/eslint-config/ @Tecvan-fe @leeight @soonco
/frontend/infra/eslint-plugin/ @Tecvan-fe
/frontend/config/ts-config/ @leeight @Tecvan-fe
/frontend/config/vitest-config/ @Tecvan-fe
/frontend/packages/arch/bot-env/ @Tecvan-fe @leeight
/frontend/packages/arch/bot-env-adapter/ @dragooncjw @Tecvan-fe @leeight
/frontend/packages/arch/bot-typings/ @Tecvan-fe
/frontend/packages/arch/web-context/ @Tecvan-fe
/frontend/packages/components/bot-semi/ @Tecvan-fe
/frontend/packages/components/bot-icons/ @DingGao-Devin
/frontend/packages/arch/i18n/ @Tecvan-fe @leeight
/frontend/packages/arch/resources/studio-i18n-resource/ @dragooncjw @Tecvan-fe
/frontend/config/stylelint-config/ @Tecvan-fe
/frontend/packages/arch/idl/ @Tecvan-fe
/frontend/infra/utils/fs-enhance/ @Tecvan-fe
/frontend/packages/arch/bot-store/ @Tecvan-fe @catee @duwenhan2byte
/frontend/packages/arch/bot-error/ @haozhenfei @duwenhan2byte
/frontend/packages/foundation/space-store/ @evan-crash @duwenhan2byte
/frontend/packages/arch/bot-flags/ @Tecvan-fe
/frontend/packages/arch/report-events/ @Tecvan-fe
/frontend/packages/foundation/enterprise-store-adapter/ @evan-crash @duwenhan2byte
/frontend/packages/foundation/local-storage/ @duwenhan2byte @evan-crash
/frontend/packages/foundation/space-store-adapter/ @evan-crash @duwenhan2byte
/frontend/packages/arch/bot-tea/ @Tecvan-fe @catee @soonco
/frontend/packages/arch/tea/ @Tecvan-fe @evan-crash @soonco
/frontend/packages/arch/tea-adapter/ @dragooncjw @Tecvan-fe
/frontend/packages/arch/tea-interface/ @dragooncjw @Tecvan-fe
/frontend/packages/studio/stores/bot-detail/ @Hezi-crypto @catee @DingGao-Devin @duwenhan2byte @evan-crash
/frontend/packages/agent-ide/bot-input-length-limit/ @Hezi-crypto @catee @duwenhan2byte
/frontend/packages/agent-ide/tool-config/ @haozhenfei @catee
/frontend/packages/arch/bot-space-api/ @Tecvan-fe @duwenhan2byte
/frontend/packages/arch/bot-utils/ @Tecvan-fe
/frontend/packages/common/uploader-adapter/ @dragooncjw @Tecvan-fe
/frontend/packages/common/uploader-interface/ @dragooncjw @Tecvan-fe
/frontend/packages/studio/user-store/ @duwenhan2byte @catee @lihuiwen
/frontend/packages/arch/foundation-sdk/ @evan-crash @duwenhan2byte
/frontend/packages/common/chat-area/chat-core/ @haozhenfei @Hezi-crypto @evan-crash
/frontend/packages/common/chat-area/utils/ @Hezi-crypto @haozhenfei
/frontend/packages/arch/bot-md-box-adapter/ @Hezi-crypto @iu1340 @dragooncjw @Tecvan-fe
/frontend/packages/studio/common/file-kit/ @haozhenfei @evan-crash
/frontend/packages/arch/slardar-adapter/ @Tecvan-fe @dragooncjw
/frontend/packages/arch/default-slardar/ @Tecvan-fe @evan-crash
/frontend/packages/arch/fetch-stream/ @Hezi-crypto @haozhenfei
/frontend/packages/common/websocket-manager-adapter/ @haozhenfei @Hezi-crypto @catee
/frontend/packages/studio/autosave/ @catee
/frontend/packages/studio/bot-utils/ @catee @soonco @Hezi-crypto
/frontend/packages/common/flowgram-adapter/common/ @zxhfighter @xiamidaxia @dragooncjw
/frontend/packages/common/flowgram-adapter/free-layout-editor/ @zxhfighter @xiamidaxia @dragooncjw
/frontend/packages/agent-ide/space-bot/ @soonco @evan-crash @duwenhan2byte @catee @DingGao-Devin
/frontend/packages/agent-ide/space-bot/src/store/bot-list-filter/ @duwenhan2byte @lihuiwen
/frontend/packages/agent-ide/space-bot/src/store/bot-page/ @DingGao-Devin
/frontend/packages/agent-ide/space-bot/src/store/explore/ @Tecvan-fe
/frontend/packages/agent-ide/space-bot/src/store/risk-warning/ @lihuiwen @catee
/frontend/packages/agent-ide/context/ @evan-crash
/frontend/packages/agent-ide/bot-editor-context-store/ @Hezi-crypto @duwenhan2byte @catee
/frontend/packages/agent-ide/chat-background/ @catee
/frontend/packages/agent-ide/chat-background-config-content-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/agent-ide/chat-background-config-content/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/agent-ide/chat-background-shared/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/common/chat-area/chat-uikit/ @catee @Hezi-crypto @evan-crash @haozhenfei
/frontend/packages/common/chat-area/hooks/ @Hezi-crypto @evan-crash
/frontend/packages/common/chat-area/chat-uikit-shared/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/agent-ide/bot-audit-adapter/ @evan-crash @duwenhan2byte @Hezi-crypto @haozhenfei
/frontend/packages/agent-ide/bot-audit-base/ @evan-crash @duwenhan2byte @Hezi-crypto @haozhenfei
/frontend/packages/studio/components/ @soonco @evan-crash @duwenhan2byte @catee
/frontend/packages/arch/bot-hooks/ @catee @Tecvan-fe @soonco
/frontend/packages/arch/bot-hooks/src/page-jump/ @evan-crash @catee
/frontend/packages/arch/bot-hooks-adapter/ @catee @Tecvan-fe @soonco
/frontend/packages/arch/bot-hooks-base/ @catee @Tecvan-fe @soonco
/frontend/packages/arch/responsive-kit/ @Tecvan-fe @DingGao-Devin
/frontend/packages/common/chat-area/chat-area/ @Hezi-crypto @haozhenfei @evan-crash @haozhenfei
/frontend/packages/data/memory/llm-plugins/ @haozhenfei @catee @Hezi-crypto
/frontend/packages/data/common/reporter/ @soonco @catee @evan-crash
/frontend/packages/components/json-viewer/ @duwenhan2byte
/frontend/packages/components/scroll-view/ @evan-crash
/frontend/packages/common/assets/ @Tecvan-fe @catee
/frontend/packages/common/biz-components/ @duwenhan2byte
/frontend/packages/data/common/e2e/ @soonco @catee @evan-crash @haozhenfei @duwenhan2byte
/frontend/packages/agent-ide/debug-tool-list/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/agent-ide/model-manager/ @Hezi-crypto @catee
/frontend/packages/agent-ide/model-manager/src/components/multi-agent/ @catee
/frontend/packages/agent-ide/tool/ @catee
/frontend/packages/data/knowledge/knowledge-modal-base/ @haozhenfei @catee @Hezi-crypto
/frontend/packages/components/biz-tooltip-ui/ @Hezi-crypto @catee @evan-crash
/frontend/packages/components/table-view/ @lihuiwen
/frontend/packages/components/virtual-list/ @Tecvan-fe
/frontend/packages/data/common/utils/ @soonco @catee @evan-crash
/frontend/packages/data/knowledge/knowledge-resource-processor-core/ @haozhenfei @catee @Hezi-crypto
/frontend/packages/arch/pdfjs-shadow/ @Tecvan-fe
/frontend/packages/data/knowledge/common/stores/ @soonco @catee @evan-crash
/frontend/packages/foundation/global-store/ @duwenhan2byte @evan-crash
/frontend/config/postcss-config/ @Tecvan-fe
/frontend/config/tailwind-config/ @Tecvan-fe
/frontend/infra/utils/monorepo-kits/ @Tecvan-fe @evan-crash
/frontend/packages/studio/premium/premium-components-adapter/ @evan-crash
/frontend/packages/studio/premium/premium-store-adapter/ @evan-crash
/frontend/packages/agent-ide/onboarding/ @Hezi-crypto @catee
/frontend/packages/agent-ide/publish-to-base/ @catee
/frontend/packages/arch/report-tti/ @duwenhan2byte
/frontend/packages/data/memory/database-creator/ @haozhenfei @catee @Hezi-crypto
/frontend/packages/arch/hooks/ @Tecvan-fe @evan-crash
/frontend/packages/common/coze-mitt/ @evan-crash @duwenhan2byte
/frontend/packages/common/editor-plugins/ @haozhenfei @stream-pipe @Hezi-crypto
/frontend/packages/common/md-editor-adapter/ @haozhenfei @Hezi-crypto @catee
/frontend/packages/common/prompt-kit/main/ @haozhenfei @Hezi-crypto @catee
/frontend/packages/common/chat-area/chat-answer-action/ @Hezi-crypto @haozhenfei @lihuiwen
/frontend/packages/common/chat-area/plugin-message-grab/ @Hezi-crypto @haozhenfei
/frontend/packages/common/chat-area/text-grab/ @Hezi-crypto @haozhenfei
/frontend/packages/common/prompt-kit/adapter/ @haozhenfei @Hezi-crypto @catee
/frontend/packages/common/prompt-kit/base/ @haozhenfei @Hezi-crypto @catee
/frontend/packages/data/memory/database/ @haozhenfei @catee @Hezi-crypto
/frontend/packages/data/knowledge/knowledge-resource-processor-base/ @haozhenfei @catee @Hezi-crypto
/frontend/packages/arch/utils/ @Tecvan-fe @evan-crash
/frontend/packages/data/knowledge/common/components/ @haozhenfei @catee @Hezi-crypto
/frontend/packages/data/common/feature-register/ @haozhenfei @catee @Hezi-crypto
/frontend/packages/data/knowledge/common/hooks/ @Hezi-crypto @catee @evan-crash
/frontend/packages/data/knowledge/common/services/ @Hezi-crypto @catee @evan-crash
/frontend/packages/data/memory/database-v2-main/ @haozhenfei @catee @Hezi-crypto
/frontend/packages/data/memory/database-v2-adapter/ @haozhenfei @catee @Hezi-crypto
/frontend/packages/data/memory/database-v2-base/ @haozhenfei @catee @Hezi-crypto
/frontend/packages/data/knowledge/knowledge-data-set-for-agent/ @Hezi-crypto @catee @evan-crash
/frontend/packages/data/knowledge/knowledge-ide-base/ @haozhenfei @catee @Hezi-crypto
/frontend/packages/arch/bot-monaco-editor/ @Tecvan-fe
/frontend/packages/data/knowledge/knowledge-modal-adapter/ @haozhenfei @catee @Hezi-crypto
/frontend/packages/data/knowledge/knowledge-resource-processor-adapter/ @haozhenfei @catee @Hezi-crypto
/frontend/packages/devops/debug/debug-panel/ @soonco @evan-crash @catee
/frontend/packages/devops/json-link-preview/ @Maidang1 @Zhangchi123456
/frontend/packages/devops/common-modules/ @duwenhan2byte @evan-crash @catee
/frontend/packages/foundation/account-adapter/ @duwenhan2byte @evan-crash
/frontend/packages/foundation/account-base/ @evan-crash @duwenhan2byte
/frontend/packages/arch/api-schema/ @Tecvan-fe @evan-crash
/frontend/infra/idl/idl2ts-runtime/ @Tecvan-fe @evan-crash
/frontend/infra/idl/idl2ts-cli/ @Tecvan-fe @evan-crash
/frontend/infra/idl/idl2ts-generator/ @Tecvan-fe @evan-crash
/frontend/infra/idl/idl-parser/ @Tecvan-fe @evan-crash
/frontend/infra/utils/rush-logger/ @catee @Tecvan-fe
/frontend/infra/idl/idl2ts-helper/ @Tecvan-fe @evan-crash
/frontend/infra/idl/idl2ts-plugin/ @Tecvan-fe @evan-crash
/frontend/packages/studio/open-platform/open-env-adapter/ @soonco @Hezi-crypto @DingGao-Devin
/frontend/infra/plugins/pkg-root-webpack-plugin/ @Tecvan-fe
/frontend/packages/studio/publish-manage-hooks/ @duwenhan2byte @evan-crash
/frontend/packages/foundation/layout/ @evan-crash @duwenhan2byte
/frontend/packages/studio/open-platform/open-auth/ @evan-crash @DingGao-Devin
/frontend/packages/studio/open-platform/open-chat/ @tomasyu985 @DingGao-Devin
/frontend/packages/agent-ide/entry-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/agent-ide/entry/ @soonco @duwenhan2byte @catee @evan-crash
/frontend/packages/agent-ide/bot-config-area-adapter/ @haozhenfei @Hezi-crypto @duwenhan2byte @catee @evan-crash
/frontend/packages/agent-ide/bot-config-area/ @haozhenfei @Hezi-crypto @duwenhan2byte @catee @evan-crash
/frontend/packages/agent-ide/bot-plugin/entry/ @evan-crash @lihuiwen @catee
/frontend/packages/agent-ide/bot-plugin/export/ @lihuiwen @catee
/frontend/packages/agent-ide/bot-plugin/mock-set/ @lihuiwen @catee @duwenhan2byte
/frontend/packages/studio/mockset-edit-modal-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/studio/mockset-shared/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/studio/mockset-editor/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/studio/mockset-editor-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/agent-ide/bot-plugin/tools/ @lihuiwen @catee
/frontend/packages/studio/stores/bot-plugin/ @lihuiwen @Hezi-crypto @catee
/frontend/packages/studio/plugin-shared/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/agent-ide/plugin-modal-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/agent-ide/plugin-shared/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/community/component/ @DingGao-Devin @Hezi-crypto @evan-crash @duwenhan2byte
/frontend/packages/studio/plugin-form-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/workflow/base/ @xiamidaxia @zxhfighter
/frontend/packages/agent-ide/plugin-content-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/agent-ide/plugin-content/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/agent-ide/plugin-setting-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/agent-ide/plugin-setting/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/agent-ide/bot-plugin/plugin-risk-warning/ @catee @evan-crash
/frontend/packages/studio/plugin-publish-ui-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/studio/plugin-tool-columns-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/studio/plugin-tool-columns/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/agent-ide/chat-debug-area/ @soonco @duwenhan2byte @catee @Hezi-crypto @haozhenfei @evan-crash
/frontend/packages/agent-ide/chat-answer-action-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/agent-ide/chat-area-plugin-debug-common/ @Hezi-crypto @haozhenfei
/frontend/packages/agent-ide/chat-components-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/common/chat-area/plugin-chat-background/ @Tecvan-fe
/frontend/packages/common/chat-area/chat-area-plugin-reasoning/ @catee @Hezi-crypto
/frontend/packages/common/chat-area/plugin-resume/ @Tecvan-fe
/frontend/packages/common/chat-area/plugin-chat-shortcuts/ @haozhenfei @duwenhan2byte @Hezi-crypto
/frontend/packages/workflow/sdk/ @zxhfighter @xiamidaxia
/frontend/packages/workflow/components/ @LLLLeeJ @zxhfighter
/frontend/packages/components/loading-button/ @catee
/frontend/packages/components/mouse-pad-selector/ @zxhfighter
/frontend/packages/workflow/adapter/resources/ @LLLLeeJ @JxJuly @xiamidaxia @luics @zxhfighter @stream-pipe
/frontend/packages/common/chat-area/chat-workflow-render/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/agent-ide/onboarding-message-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/agent-ide/plugin-area-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/agent-ide/prompt-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/agent-ide/prompt/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/agent-ide/workflow/ @soonco @duwenhan2byte @catee
/frontend/packages/agent-ide/navigate/ @soonco @duwenhan2byte @catee
/frontend/packages/agent-ide/workflow-as-agent-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/agent-ide/workflow-item/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/agent-ide/workflow-card-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/agent-ide/workflow-modal/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/agent-ide/memory-tool-pane-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/agent-ide/skills-pane-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/agent-ide/layout-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/agent-ide/layout/ @soonco @duwenhan2byte @catee
/frontend/packages/agent-ide/chat-area-provider-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/agent-ide/chat-area-provider/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/studio/entity-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/foundation/account-ui-adapter/ @duwenhan2byte @evan-crash
/frontend/packages/foundation/account-ui-base/ @evan-crash @duwenhan2byte
/frontend/packages/foundation/foundation-sdk/ @evan-crash @duwenhan2byte
/frontend/packages/foundation/global/ @evan-crash @duwenhan2byte
/frontend/packages/studio/workspace/project-entity-adapter/ @Hezi-crypto @catee @duwenhan2byte
/frontend/packages/studio/workspace/project-entity-base/ @Hezi-crypto @catee @duwenhan2byte
/frontend/packages/foundation/global-adapter/ @evan-crash @duwenhan2byte
/frontend/packages/foundation/browser-upgrade-banner/ @evan-crash @duwenhan2byte
/frontend/packages/foundation/space-ui-adapter/ @evan-crash @duwenhan2byte
/frontend/packages/foundation/space-ui-base/ @evan-crash @duwenhan2byte
/frontend/packages/common/auth/ @evan-crash @duwenhan2byte
/frontend/packages/common/auth-adapter/ @evan-crash @duwenhan2byte
/frontend/packages/project-ide/main/ @dragooncjw @JxJuly @xiamidaxia @catee @lihuiwen
/frontend/packages/components/resource-tree/ @dragooncjw @xiamidaxia @JxJuly
/frontend/packages/common/flowgram-adapter/fixed-layout-editor/ @zxhfighter @xiamidaxia @dragooncjw
/frontend/packages/project-ide/biz-components/ @zxhfighter @xiamidaxia
/frontend/packages/project-ide/framework/ @dragooncjw @JxJuly @xiamidaxia
/frontend/packages/project-ide/base-adapter/ @dragooncjw @xiamidaxia
/frontend/packages/project-ide/base-interface/ @dragooncjw @xiamidaxia
/frontend/packages/project-ide/client/ @dragooncjw @JxJuly @xiamidaxia
/frontend/packages/project-ide/core/ @dragooncjw @JxJuly @xiamidaxia
/frontend/packages/project-ide/view/ @dragooncjw @JxJuly @xiamidaxia
/frontend/packages/project-ide/biz-data/ @haozhenfei @lihuiwen @catee @soonco
/frontend/packages/data/knowledge/knowledge-ide-adapter/ @haozhenfei @catee @Hezi-crypto
/frontend/packages/data/memory/variables/ @haozhenfei @catee @Hezi-crypto
/frontend/packages/project-ide/biz-plugin/ @xiamidaxia @lihuiwen @catee
/frontend/packages/project-ide/biz-plugin-registry-adapter/ @Hezi-crypto @duwenhan2byte @catee @evan-crash @haozhenfei
/frontend/packages/project-ide/biz-workflow/ @dragooncjw @JxJuly @xiamidaxia
/frontend/packages/studio/open-platform/open-chat/ @soonco @Hezi-crypto @DingGao-Devin
/frontend/packages/workflow/playground/ @LLLLeeJ @xiamidaxia @luics @zxhfighter
/frontend/packages/arch/load-remote-worker/ @Tecvan-fe
/frontend/packages/devops/mockset-manage/ @soonco @evan-crash @catee
/frontend/packages/devops/testset-manage/ @mocayo @JxJuly
/frontend/packages/workflow/adapter/base/ @LLLLeeJ @JxJuly @xiamidaxia @luics @zxhfighter @stream-pipe
/frontend/packages/workflow/adapter/code-editor/ @LLLLeeJ @JxJuly @xiamidaxia @luics @zxhfighter @stream-pipe
/frontend/packages/workflow/fabric-canvas/ @xiamidaxia @zxhfighter
/frontend/packages/workflow/feature-encapsulate/ @zxhfighter
/frontend/packages/workflow/nodes/ @xiamidaxia @zxhfighter
/frontend/packages/workflow/setters/ @Tecvan-fe
/frontend/packages/workflow/variable/ @zxhfighter @LLLLeeJ @xiamidaxia
/frontend/packages/workflow/render/ @dragooncjw @xiamidaxia
/frontend/packages/workflow/history/ @xiamidaxia @zxhfighter
/frontend/packages/workflow/adapter/nodes/ @LLLLeeJ @JxJuly @xiamidaxia @luics @zxhfighter @stream-pipe
/frontend/packages/workflow/test-run/ @JxJuly @xiamidaxia @luics @zxhfighter @dragooncjw
/frontend/packages/workflow/test-run-next/main/ @JxJuly @LLLLeeJ @xiamidaxia @zxhfighter
/frontend/packages/workflow/test-run-next/form/ @JxJuly @LLLLeeJ @xiamidaxia @zxhfighter
/frontend/packages/workflow/test-run-next/shared/ @JxJuly @LLLLeeJ @xiamidaxia @zxhfighter
/frontend/packages/workflow/test-run-next/trace/ @JxJuly @LLLLeeJ @xiamidaxia @zxhfighter
/frontend/packages/project-ide/ui-adapter/ @dragooncjw @xiamidaxia
/frontend/packages/studio/workspace/project-publish/ @catee @lihuiwen
/frontend/packages/studio/workspace/entry-adapter/ @duwenhan2byte @evan-crash
/frontend/packages/studio/workspace/entry-base/ @duwenhan2byte @catee @evan-crash
/frontend/packages/workflow/adapter/playground/ @LLLLeeJ @JxJuly @xiamidaxia @luics @zxhfighter @stream-pipe
/frontend/infra/plugins/import-watch-loader/ @Tecvan-fe
/frontend/config/rsbuild-config/ @Tecvan-fe
/frontend/packages/community/explore/ @evan-crash @duwenhan2byte
/frontend/common/_templates/node-core/ @Tecvan-fe
/frontend/common/_templates/rspack-web/ @Tecvan-fe


/backend/ @fanlv @junwen-lee @liuyunchao-1998 @lvxinyu-1117 @hi-pender @luohq-bytedance @shentongmartin @mrh997 @meguminnnnnnnnn @N3kox @zhuangjie1125
/docker/ @fanlv @junwen-lee @liuyunchao-1998 @lvxinyu-1117 @hi-pender @luohq-bytedance @shentongmartin @mrh997 @meguminnnnnnnnn @N3kox @zhuangjie1125
/helm/ @fanlv @junwen-lee @liuyunchao-1998 @lvxinyu-1117 @hi-pender @luohq-bytedance @shentongmartin @mrh997 @meguminnnnnnnnn @N3kox @zhuangjie1125
/idl/ @fanlv @junwen-lee @liuyunchao-1998 @lvxinyu-1117 @hi-pender @luohq-bytedance @shentongmartin @mrh997 @meguminnnnnnnnn @N3kox @zhuangjie1125



================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''

---

**Describe the bug**

A clear and concise description of what the bug is.

**To Reproduce**

Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**

A clear and concise description of what you expected to happen.

**Screenshots**

If applicable, add screenshots to help explain your problem.

**Version:**

Please provide the version of {project_name} you are using.

**Environment:**

The output of `go env`.

**Additional context**

Add any other context about the problem here.


================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''

---

**Is your feature request related to a problem? Please describe.**

A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**

A clear and concise description of what you want to happen.

**Describe alternatives you've considered**

A clear and concise description of any alternative solutions or features you've considered.

**Additional context**

Add any other context or screenshots about the feature request here.


================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
#### What type of PR is this?
<!--
Add one of the following kinds:

build: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
ci: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)
docs: Documentation only changes
feat: A new feature
optimize: A new optimization
fix: A bug fix
perf: A code change that improves performance
refactor: A code change that neither fixes a bug nor adds a feature
style: Changes that do not affect the meaning of the code (white space, formatting, missing semi-colons, etc)
test: Adding missing tests or correcting existing tests
chore: Changes to the build process or auxiliary tools and libraries such as documentation generation
-->

#### Check the PR title.
<!--
The description of the title will be attached in Release Notes, 
so please describe it from user-oriented, what this PR does / why we need it.
Please check your PR title with the below requirements:
-->
- [ ] This PR title match the format: \<type\>(optional scope): \<description\>
- [ ] The description of this PR title is user-oriented and clear enough for others to understand.
- [ ] Add documentation if the current PR requires user awareness at the usage level.


#### (Optional) Translate the PR title into Chinese.


#### (Optional) More detailed description for this PR(en: English/zh: Chinese).
<!--
Provide more detailed info for review(e.g., it's recommended to provide perf data if this is a perf type PR).
-->
en:
zh(optional): 


#### (Optional) Which issue(s) this PR fixes:
<!--
Automatically closes linked issue when PR is merged.
Eg: `Fixes #<issue number>`, or `Fixes (paste link of issue)`.
-->


================================================
FILE: .github/scripts/check-file-size.sh
================================================
#!/bin/bash
#
# Copyright 2025 coze-dev Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#


# Set default value
TARGET_BRANCH=${targetBranch}
CI_MODE=${CI:-false}

# Specify the pattern you want to exclude, using *space* as the separator
EXCLUDE_PATTERNS=(
  '**/pnpm-lock.yaml'
  'packages/arch/bot-api/src/auto-generate/**'
  'apps/bot-op/src/services/bam-auto-generate/**'
  'apps/prompt-platform/src/services/auto-generate/**'
  "**/lib/**"
  "**/.*/**"
  '**/__tests__/**'
  '**/__test__/**'
  "**/__mocks__/**"
  "**/__mock__/**"
  "**/*.test.*/**"
  "**/*.spec.*/**"
  "**/__snapshots__/**"
  "**/*.snap"
  '**/e2e/**'
  'common/changes/**'
  'apps/fornax/**',
  "packages/arch/semi-theme-hand01",
  "frontend/packages/arch/resources/studio-i18n-resource/src/**"
)

for pattern in "${EXCLUDE_PATTERNS[@]}"; do
  EXCLUDE_STRING+=":(exclude)$pattern "
done

if [ "$CI_MODE" = true ]; then
  files=$(git diff --name-only --diff-filter=AM "origin/$TARGET_BRANCH..." $EXCLUDE_STRING)
else
  files=$(git diff --name-only --diff-filter=AM --cached $EXCLUDE_STRING)
fi

# The volume limit is 512KB.
size_limit=$((512))
large_files_info=""

IFS=$'\n' # Handling the existence of spaces in the file name
for file in $files; do
  file_size=$(wc -c <"$file" 2>/dev/null)
  if [ $? -ne 0 ]; then
    echo "错误: 无法获取文件 '$file' 的大小"
    continue
  fi
  file_size_kb=$((file_size / 1024))
  echo "$file file size is $file_size_kb KB"
  if [ "$file_size_kb" -gt "$size_limit" ]; then
    large_files_info+="- \`$file\` ($file_size_kb KB)\n"
  fi
done
unset IFS

output_conclusion() {
  local conclusion="$1"
  echo "$conclusion" >check-file-size.log
  echo "::update-check-run::check-file-size.log"
}

if [ -n "$large_files_info" ]; then
  if [ "$CI_MODE" = true ]; then
    CONCLUSION="{
      \"name\": \"文件体积\",
      \"conclusion\": \"failed\",
      \"output\": {
        \"summary\": \"<h1>错误: 文件体积过大</h1> <br />  以下文件体积超过限制 (${size_limit}KB): \\n \\n $large_files_info  \\n \\n <br /> \"
      }
    }"
    output_conclusion "$CONCLUSION"
  else
    echo "错误: 以下文件体积超过限制 (${size_limit}KB):"
    echo -e "$large_files_info"
    exit 1
  fi
else
  if [ "$CI_MODE" = true ]; then
    CONCLUSION="{
      \"name\": \"文件体积\",
      \"conclusion\": \"success\",
      \"output\": {
        \"summary\": \"GOOD\"
      }
    }"
    output_conclusion "$CONCLUSION"
  fi
fi


================================================
FILE: .github/workflows/ci.yml
================================================
name: CI
on:
  pull_request:
    branches: ['main']
    paths:
      - 'github/**'
      - 'idl/**'
      - 'frontend/**'
      - 'common/**'
      - 'rush.json'
  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

permissions:
  contents: read
  actions: read

jobs:
  setup:
    strategy:
      matrix:
        include:
          - NodeVersion: 22.16.0
            NodeVersionDisplayName: 22
            OS: ubuntu-latest
    name: Setup and Install Dependencies
    runs-on: ${{ matrix.OS }}
    outputs:
      cache_file: ${{ steps.process-files.outputs.cache_file }}
      matrix_node_version: ${{ matrix.NodeVersion }}
      matrix_os: ${{ matrix.OS }}
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 1

      - name: Get changed files
        id: changed-files
        uses: tj-actions/changed-files@v45

      - name: Process changed files
        id: process-files
        run: |
          # Get all change files
          all_files="${{ steps.changed-files.outputs.all_changed_files }}"

          # Filter out files in the common/changes directory
          filtered_files=""
          for file in $all_files; do
            if [[ ! "$file" =~ ^common/changes/.* ]]; then
              if [ -z "$filtered_files" ]; then
                filtered_files="$file"
              else
                filtered_files="$filtered_files $file"
              fi
            fi
          done

          # Create cached files in JSON format
          echo "[$( echo "$filtered_files" | sed 's/ /", "/g' | sed 's/^/"/' | sed 's/$/"/' )]" > changed-files-cache.json

          # Output cache file path for subsequent steps
          echo "cache_file=changed-files-cache.json" >> $GITHUB_OUTPUT

          echo "过滤前文件数量: $(echo $all_files | wc -w)"
          echo "过滤后文件数量: $(echo $filtered_files | wc -w)"
          echo "已生成缓存文件: changed-files-cache.json"

      - name: Config Git User
        # should be turn to ci user
        run: |
          git config --local user.name "flow_bot"
          git config --local user.email "flow_bot@bytedance.com"

      - uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.NodeVersion }}

      - name: Upload changed files cache
        uses: actions/upload-artifact@v4
        with:
          name: changed-files-cache
          path: changed-files-cache.json
          retention-days: 1

  build:
    needs: setup
    runs-on: ${{ needs.setup.outputs.matrix_os }}
    name: Increment Build
    env:
      BUILD_BRANCH: ${{ github.head_ref || github.ref_name }}
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 1

      - uses: actions/setup-node@v3
        with:
          node-version: ${{ needs.setup.outputs.matrix_node_version }}

      - name: Cache
        uses: actions/cache@v4
        with:
          path: |
            common/temp/pnpm-local
            common/temp/pnpm-store
            common/temp/install-run
          key: ${{ runner.os }}-rush-store-${{ hashFiles('common/config/subspaces/**/pnpm-lock.yaml') }}
          restore-keys: |
            ${{ runner.os }}-rush-store-main
            ${{ runner.os }}-rush-store

      - name: Download changed files cache
        uses: actions/download-artifact@v4
        with:
          name: changed-files-cache

      - name: Install Dependencies
        run: |
          sudo apt-get update
          sudo apt-get install -y libasound2-dev
          node common/scripts/install-run-rush.js install --to tag:core
          node common/scripts/install-run-rush.js update-autoinstaller --name plugins
          node common/scripts/install-run-rush.js increment --action install -p "${{ needs.setup.outputs.cache_file }}"

      - name: Increment Build
        run: node common/scripts/install-run-rush.js increment --action build -p "${{ needs.setup.outputs.cache_file }}"

  test:
    needs: setup
    runs-on: ${{ needs.setup.outputs.matrix_os }}
    name: Increment Test Coverage
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 1

      - uses: actions/setup-node@v3
        with:
          node-version: ${{ needs.setup.outputs.matrix_node_version }}

      - name: Cache
        uses: actions/cache@v4
        with:
          path: |
            common/temp/pnpm-local
            common/temp/pnpm-store
            common/temp/install-run
          key: ${{ runner.os }}-rush-store-${{ hashFiles('common/config/subspaces/**/pnpm-lock.yaml') }}
          restore-keys: |
            ${{ runner.os }}-rush-store-main
            ${{ runner.os }}-rush-store

      - name: Download changed files cache
        uses: actions/download-artifact@v4
        with:
          name: changed-files-cache

      - name: Install Dependencies
        run: |
          sudo apt-get update
          sudo apt-get install -y libasound2-dev
          node common/scripts/install-run-rush.js install --to tag:core
          node common/scripts/install-run-rush.js update-autoinstaller --name plugins
          node common/scripts/install-run-rush.js increment --action install -p "${{ needs.setup.outputs.cache_file }}"

      - name: Increment Test:cov
        run: node common/scripts/install-run-rush.js increment --action test:cov -p "${{ needs.setup.outputs.cache_file }}"

      # TODO: should resolve later
      # - name: Upload coverage reports
      #   uses: codecov/codecov-action@v4
      #   with:
      #     token: ${{ secrets.CODECOV_TOKEN }}
      #     fail_ci_if_error: true
      #     verbose: true

  lint:
    needs: setup
    runs-on: ${{ needs.setup.outputs.matrix_os }}
    name: Increment Lint
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 1

      - uses: actions/setup-node@v3
        with:
          node-version: ${{ needs.setup.outputs.matrix_node_version }}

      - name: Cache
        uses: actions/cache@v4
        with:
          path: |
            common/temp/pnpm-local
            common/temp/pnpm-store
            common/temp/install-run
          key: ${{ runner.os }}-rush-store-${{ hashFiles('common/config/subspaces/**/pnpm-lock.yaml') }}
          restore-keys: |
            ${{ runner.os }}-rush-store-main
            ${{ runner.os }}-rush-store

      - name: Download changed files cache
        uses: actions/download-artifact@v4
        with:
          name: changed-files-cache

      - name: Install Dependencies
        run: |
          sudo apt-get update
          sudo apt-get install -y libasound2-dev
          node common/scripts/install-run-rush.js install --to tag:core
          node common/scripts/install-run-rush.js update-autoinstaller --name plugins
          node common/scripts/install-run-rush.js increment --action install -p "${{ needs.setup.outputs.cache_file }}"

      - name: Increment Lint
        run: node common/scripts/install-run-rush.js increment --action lint -p "${{ needs.setup.outputs.cache_file }}"

  ts-check:
    needs: setup
    runs-on: ${{ needs.setup.outputs.matrix_os }}
    name: Increment TS Check
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 1

      - uses: actions/setup-node@v3
        with:
          node-version: ${{ needs.setup.outputs.matrix_node_version }}

      - name: Cache
        uses: actions/cache@v4
        with:
          path: |
            common/temp/pnpm-local
            common/temp/pnpm-store
            common/temp/install-run
          key: ${{ runner.os }}-rush-store-${{ hashFiles('common/config/subspaces/**/pnpm-lock.yaml') }}
          restore-keys: |
            ${{ runner.os }}-rush-store-main
            ${{ runner.os }}-rush-store

      - name: Download changed files cache
        uses: actions/download-artifact@v4
        with:
          name: changed-files-cache

      - name: Install Dependencies
        run: |
          sudo apt-get update
          sudo apt-get install -y libasound2-dev
          node common/scripts/install-run-rush.js install --to tag:core
          node common/scripts/install-run-rush.js update-autoinstaller --name plugins
          node common/scripts/install-run-rush.js increment --action install -p "${{ needs.setup.outputs.cache_file }}"

      - name: Increment TS Check
        run: node common/scripts/install-run-rush.js increment --action ts-check -p "${{ needs.setup.outputs.cache_file }}"

  package-audit:
    needs: setup
    runs-on: ${{ needs.setup.outputs.matrix_os }}
    name: Increment Package Audit
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 1

      - uses: actions/setup-node@v3
        with:
          node-version: ${{ needs.setup.outputs.matrix_node_version }}

      - name: Cache
        uses: actions/cache@v4
        with:
          path: |
            common/temp/pnpm-local
            common/temp/pnpm-store
            common/temp/install-run
          key: ${{ runner.os }}-rush-store-${{ hashFiles('common/config/subspaces/**/pnpm-lock.yaml') }}
          restore-keys: |
            ${{ runner.os }}-rush-store-main
            ${{ runner.os }}-rush-store

      - name: Download changed files cache
        uses: actions/download-artifact@v4
        with:
          name: changed-files-cache

      - name: Install Dependencies
        run: |
          sudo apt-get update
          sudo apt-get install -y libasound2-dev
          node common/scripts/install-run-rush.js install --to tag:core
          node common/scripts/install-run-rush.js update-autoinstaller --name plugins
          node common/scripts/install-run-rush.js increment --action install -p "${{ needs.setup.outputs.cache_file }}"

      - name: Increment Package Audit
        run: node common/scripts/install-run-rush.js increment --action package-audit -p "${{ needs.setup.outputs.cache_file }}"


================================================
FILE: .github/workflows/ci@backend.yml
================================================
name: Backend Tests

on:
  pull_request:
    paths:
      - 'backend/**'
      - 'docker/atlas/**'
      - '.github/workflows/ci@backend.yml'
  push:
    branches:
      - main
    paths:
      - 'backend/**'
      - 'docker/atlas/**'
      - '.github/workflows/ci@backend.yml'
  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:


env:
  DEFAULT_GO_VERSION: "1.24"

jobs:
  backend-unit-test:
    name: backend-unit-test
    runs-on: ubuntu-latest
    permissions:
      contents: write
      pull-requests: write
      repository-projects: write
    env:
      COVERAGE_FILE: coverage.out
      BREAKDOWN_FILE: main.breakdown

    steps:
      - uses: actions/checkout@v4
      - name: Set up Go
        uses: actions/setup-go@v5
        with:
          go-version: ${{ env.DEFAULT_GO_VERSION }}

      # - name: Shutdown Ubuntu MySQL
      #   run: service mysql stop

      - name: Set Up MySQL
        uses: mirromutth/mysql-action@v1.1
        with:
          host port: 3306
          container port: 3306
          character set server: 'utf8mb4'
          collation server: 'utf8mb4_general_ci'
          mysql version: '8.4.5'
          mysql database: 'opencoze'
          mysql root password: 'root'

      - name: Verify MySQL Startup
        run: |
          echo "Waiting for MySQL to be ready..."
          for i in {1..60}; do
            if cat /proc/net/tcp | grep 0CEA; then
              echo "MySQL port 3306 is listening!"
              break
            fi
            echo "Waiting for MySQL port... ($i/60)"
            sleep 1
          done
          echo "Final verification: MySQL port 3306 is accessible"

      - name: Install MySQL Client
        run: sudo apt-get update && sudo apt-get install -y mysql-client

      - name: Initialize Database
        uses: nick-fields/retry@v3
        with:
          timeout_minutes: 10
          max_attempts: 20
          command: mysql -h 127.0.0.1 -P 3306 -u root -proot opencoze < docker/volumes/mysql/schema.sql

      - name: Run Go Test
        run: |
          modules=`find . -name "go.mod" -exec dirname {} \;`
          echo $modules
          list=""
          coverpkg=""
          if [[ ! -f "go.work" ]];then go work init;fi
          for module in $modules; do go work use $module; list=$module"/... "$list; coverpkg=$module"/...,"$coverpkg; done
          go work sync
          go test -race -v -coverprofile=${{ env.COVERAGE_FILE }} -gcflags="all=-l -N" -coverpkg=$coverpkg $list

      - name: Upload coverage to Codecov
        uses: codecov/codecov-action@v5
        with:
          name: coze-studio-backend
          env_vars: GOLANG,Coze-Studio,BACKEND
          fail_ci_if_error: 'false'
          files: ${{ env.COVERAGE_FILE }}
          token: ${{ secrets.CODECOV_TOKEN }}

      - name: Shutdown MySQL
        if: always()
        continue-on-error: true
        run: docker rm -f $(docker ps -q --filter "ancestor=mysql:8.4.5")
  benchmark-test:
    runs-on: ubuntu-latest
    permissions:
      contents: write
      pull-requests: write
      repository-projects: write
    steps:
      - uses: actions/checkout@v4
      - name: Set up Go
        uses: actions/setup-go@v5
        with:
          go-version: ${{ env.DEFAULT_GO_VERSION }}

      - name: Run Go Benchmark
        run: |
          modules=`find . -name "go.mod" -exec dirname {} \;`
          echo $modules
          list=""
          coverpkg=""
          if [[ ! -f "go.work" ]];then go work init;fi
          for module in $modules; do go work use $module; list=$module"/... "$list; coverpkg=$module"/...,"$coverpkg; done
          go work sync
          go test -race -v -bench=. -benchmem -run=none -gcflags="all=-l -N" $list


================================================
FILE: .github/workflows/ci@main.yml
================================================
# should be optimize as increment build & test
name: CI@main
on:
  push:
    # test only
    branches: ['main',"chore/setup-ci"]
    paths:
      - 'github/**'
      - 'idl/**'
      - 'frontend/**'
      - 'common/**'
      - 'rush.json'
  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

permissions:
  contents: read

jobs:
  build:
    strategy:
      matrix:
        include:
          - NodeVersion: 22.16.0
            NodeVersionDisplayName: 22
            OS: ubuntu-latest
    name: Node.js v${{ matrix.NodeVersionDisplayName }} (${{ matrix.OS }})
    runs-on: ${{ matrix.OS }}
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 1

      - name: Config Git User
        # should be turn to ci user
        run: |
          git config --local user.name "flow_bot"
          git config --local user.email "flow_bot@bytedance.com"

      - uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.NodeVersion }}

      - name: Cache
        uses: actions/cache@v4
        with:
          path: |
            common/temp/pnpm-local
            common/temp/pnpm-store
            common/temp/install-run
          key: ${{ runner.os }}-rush-store-main
          restore-keys: |
            ${{ runner.os }}-rush-store-main
            ${{ runner.os }}-rush-store

      - name: Install Dependencies
        run: |
          sudo apt-get update
          sudo apt-get install -y libasound2-dev
          node common/scripts/install-run-rush.js install

      - name: Build all
        run: node common/scripts/install-run-rush.js build --verbose

      - name: Test:cov all
        run: node common/scripts/install-run-rush.js test:cov --verbose

      - name: Upload coverage reports
        uses: codecov/codecov-action@v4
        with:
          token: ${{ secrets.CODECOV_TOKEN }}
          fail_ci_if_error: true
          verbose: true

      - name: Lint all
        run: node common/scripts/install-run-rush.js lint --verbose


================================================
FILE: .github/workflows/claude.yml
================================================
name: Claude PR Assistant

on:
  issue_comment:
    types: [created]
  pull_request_review_comment:
    types: [created]
  issues:
    types: [opened, assigned]
  pull_request_review:
    types: [submitted]

jobs:
  claude-code-action:
    if: |
      (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
      (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
      (github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
      (github.event_name == 'issues' && contains(github.event.issue.body, '@claude'))
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: read
      issues: read
      id-token: write
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
        with:
          fetch-depth: 1

      - name: Run Claude PR Action
        uses: anthropics/claude-code-action@beta
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          # Or use OAuth token instead:
          # claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
          timeout_minutes: '60'
          # mode: tag  # Default: responds to @claude mentions
          # Optional: Restrict network access to specific domains only
          # experimental_allowed_domains: |
          #   .anthropic.com
          #   .github.com
          #   api.github.com
          #   .githubusercontent.com
          #   bun.sh
          #   registry.npmjs.org
          #   .blob.core.windows.net


================================================
FILE: .github/workflows/common-pr-checks.yml
================================================
name: PR Common Checks
on:
  pull_request:
    paths:
      - 'github/**'
      - 'idl/**'
      - 'frontend/**'
      - 'common/**'
      - 'rush.json'
    types: [opened, edited, synchronize, reopened]

permissions:
  contents: read

jobs:
  common-checks:
    name: PR Common Checks
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 1

      - name: Config Git User
        run: |
          git config --local user.name "flow_bot"
          git config --local user.email "flow_bot@bytedance.com"

      - uses: actions/setup-node@v3
        with:
          node-version: 22.16.0

      - name: Install Dependencies
        run: node common/scripts/install-run-rush.js install

      # PR Title Format Check
      - name: Check PR Title Format
        if: ${{ !contains(github.event.pull_request.title, 'WIP') && !contains(github.event.pull_request.title, 'wip') }}
        env:
          PR_TITLE: ${{ github.event.pull_request.title }}
        run: |
          node common/scripts/install-run-rush.js update-autoinstaller --name rush-commitlint && \
          pushd common/autoinstallers/rush-commitlint && \
          echo "$PR_TITLE" | npx commitlint --config commitlint.config.js && \
          popd

      # Add more common checks here
      # For example: file size checks, specific file format validations, etc.


================================================
FILE: .github/workflows/idl.yaml
================================================
name: Thrift Syntax Validation

on:
  push:
    branches: ['main']
    paths:
      - 'idl/**'
      - '.github/workflows/idl.yaml'
  pull_request:
    branches: ['main']
    paths:
      - 'idl/**'
      - '.github/workflows/idl.yaml'

permissions:
  contents: read

jobs:
  validate-thrift:
    runs-on: ubuntu-latest
    timeout-minutes: 10
    steps:
      - uses: actions/checkout@v4

      - name: Set up Go
        uses: actions/setup-go@v4
        with:
          go-version: '1.21'

      - name: Install kitex tools
        run: |
          go install github.com/cloudwego/thriftgo@v0.4.1
          go install github.com/cloudwego/kitex/tool/cmd/kitex@v0.13.1
          go install github.com/cloudwego/thrift-gen-validator@v0.2.6

      - name: Validate Thrift Files via kitex
        run: |
          # Initialize error flag
          ERROR_FOUND=0

          # Create temporary working directory
          TEMP_DIR=$(mktemp -d)
          echo "Created temporary working directory: $TEMP_DIR"

          # Initialize go mod in temp directory
          cd "$TEMP_DIR"
          go mod init dummy

          # Find all thrift files and validate them
          while IFS= read -r -d '' thrift_file; do
            echo "Validating $thrift_file..."
            if ! kitex -streamx -thrift ignore_initialisms=false -module=dummy "$thrift_file" 2>&1; then
              echo "IDL gen code error in file: $thrift_file"
              ERROR_FOUND=1
            fi
          done < <(find "$GITHUB_WORKSPACE/idl" -name '*.thrift' -print0)

          # Clean up temporary directory
          cd "$GITHUB_WORKSPACE"
          rm -rf "$TEMP_DIR"
          echo "Cleaned up temporary working directory"

          # Exit with appropriate status
          if [ $ERROR_FOUND -eq 1 ]; then
            echo "Thrift validation failed. Please check the errors above."
            exit 1
          else
            echo "All Thrift files validated successfully!"
            exit 0
          fi


================================================
FILE: .github/workflows/license-check.yaml
================================================
name: License Check

on:
  push:
    branches: ['main']
  pull_request:

  workflow_dispatch:

permissions:
  contents: read

jobs:
  license-check:
    name: License Check
    runs-on: ubuntu-latest
    steps:
      - name: Setup Go
        uses: actions/setup-go@v5
        with:
          go-version: 1.23

      - name: Install license-eye
        run: |
          go install github.com/apache/skywalking-eyes/cmd/license-eye@v0.4.0

      - name: Checkout
        uses: actions/checkout@v4
        with:
          fetch-depth: 1

      - name: License Header Check
        run: |
          license-eye header check -c .github/.licenserc.yaml

      - name: License Dependency Check
        run: |
          license-eye dependency check -c .github/.licenserc.yaml


================================================
FILE: .github/workflows/semantic-pull-request.yaml
================================================
name: Semantic Pull Request

on:
  pull_request:
    types:
      - opened
      - reopened
      - edited

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.number }}
  cancel-in-progress: true

permissions:
  pull-requests: read

jobs:
  main:
    name: Check Pull Request Title
    runs-on: ubuntu-latest
    steps:
      - uses: amannn/action-semantic-pull-request@v5.5.2
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          # see https://github.com/angular/angular/blob/22b96b9/CONTRIBUTING.md#type
          types: |
            build
            ci
            docs
            feat
            fix
            perf
            refactor
            style
            test
            chore
          # idl: idl
          # infra:
          #   - go version update, lint, database, etc
          #   - rush update, {eslint,ts,vitest}-config, prettier etc
          # frontend
          # backend
          # workflow: gh workflow
          # prompt, evaluation, trace, model, dataset, foundation
          scopes: |
            idl
            frontend
            backend
            infra
            app
            singleagent
            memory
            search
            workflow
            prompt
            knowledge
            plugin
            middleware
            model
            database
            foundation
            comment
            ci

          # The pull request's title should be fulfilled the following pattern:
          #
          #     [<type>][<optional scope>] <description>
          #
          # ... where valid types and scopes can be found above; for example:
          #
          #     [fix][test] flaky test V1_ProxyAuthenticationTest.anonymousSocketTest
          # headerPattern: '^\[(\w*?)\](?:\[(.*?)\])?(?:\s*)(.*)$'
          headerPatternCorrespondence: type, scope, subject


================================================
FILE: .gitignore
================================================
# Binaries for programs and plugins
*.exe
*.exe~
*.dll
*.so
*.dylib

.env
.env.debug
.env.oceanbase

# Test binary, built with `go test -c`
*.test

# Output of the go coverage tool, specifically when used with LiteIDE
*.out

# Dependency directories (remove the comment below to include it)
# vendor/

# Go workspace file
go.work
go.work.sum

# the result of the go build
backend/**/output*
output/*

# Files generated by IDEs
.idea/
*.iml

# Vim swap files
*.swp

# Vscode files
.vscode/settings.json
.vscode/launch.json

/patches
/oldimpl

.DS_Store

bin/*

docker/data/*

backend/static

node_modules
common/temp
.rush
.eslintcache


backend/conf/model/*.yaml
values-dev.yaml
**/conf/model_ark_doubao-seed-1.6.yaml

*.tsbuildinfo
.trae/*


================================================
FILE: .mcp.json
================================================
{
  "mcpServers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer ${GITHUB_PAT}"
      }
    }
  }
}


================================================
FILE: .nvmrc
================================================
lts/iron


================================================
FILE: .prettierrc.js
================================================
// Do not modify this file
module.exports = {
  ...require('./frontend/config/eslint-config/.prettierrc.js'),
};


================================================
FILE: .vscode/extensions.json
================================================
{
  "recommendations": [
    "editorconfig.editorconfig",
    "esbenp.prettier-vscode",
    "streetsidesoftware.code-spell-checker",
    "codezombiech.gitignore",
    "aaron-bond.better-comments",
    "mikestead.dotenv",
    "stylelint.vscode-stylelint"
  ],
  "unwantedRecommendations": [
    "nucllear.vscode-extension-auto-import",
    "steoates.autoimport"
  ]
}


================================================
FILE: .vscode/settings.template.json
================================================
{
  "eslint.nodePath": "frontend/config/eslint-config/node_modules/eslint",
  "prettier.prettierPath": "frontend/config/eslint-config/node_modules/prettier",
  "editor.tabSize": 2,
  "editor.insertSpaces": true,
  "editor.formatOnSave": true,
  "editor.formatOnType": false,
  "editor.formatOnPaste": false,
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.codeActionsOnSave": {
    "source.fixAll": "never",
    "source.fixAll.eslint": "never",
    "source.removeUnused": "never",
    "source.organizeImports": "never"
    // "source.sortImports": "always"
  },
  "editor.formatOnSaveMode": "modificationsIfAvailable",
  "search.followSymlinks": false,
  "search.exclude": {
    "**/node_modules": true,
    "**/.nyc_output": true,
    "**/.rush": true,
    "**/pnpm-lock.yaml": true,
    "**/CHANGELOG.json": true,
    "**/CHANGELOG.md": true,
    "common/changes": true,
    "**/output": true,
    "**/lib": true,
    "**/rush-logs": true,
    "**/dist": true,
    "**/coverage": true,
    "common/temp": true
  },
  "eslint.workingDirectories": [
    {
      "mode": "auto"
    }
  ],
  "files.defaultLanguage": "plaintext",
  "files.associations": {
    ".code-workspace": "jsonc",
    ".babelrc": "json",
    ".eslintrc": "jsonc",
    ".eslintrc*.json": "jsonc",
    ".stylelintrc": "javascript",
    "stylelintrc": "jsonc",
    "*.json": "jsonc",
    "package.json": "json",
    ".htmlhintrc": "jsonc",
    "htmlhintrc": "jsonc",
    "Procfile*": "shellscript",
    "README": "markdown",
    "**/coverage/**/*.*": "plaintext",
    "OWNERS": "yaml",
    // Set the pnpm-lock file to plaintext to avoid parsing; otherwise, VSCode may freeze when opening the file
    "**/pnpm-lock.yaml": "plaintext",
    "**/dist/**": "plaintext",
    "**/dist_*/**": "plaintext",
    "*.map": "plaintext",
    "*.log": "plaintext"
  },
  "files.exclude": {
    "**/.git": true,
    "**/.svn": true,
    "**/.hg": true,
    "**/CVS": true,
    "**/.DS_Store": true,
    "**/Thumbs.db": true,
    "**/.rush": true,
    "**/.swc": true,
    "**/rush-logs": true
  },
  "files.watcherExclude": {
    "**/.git/objects/**": true,
    "**/.git/subtree-cache/**": true,
    "**/node_modules/*/**": true
  },
  "search.useIgnoreFiles": true,
  //
  "editor.rulers": [80, 120],
  "files.eol": "\n",
  "files.trimTrailingWhitespace": true,
  "files.insertFinalNewline": true,
  "cSpell.diagnosticLevel": "Warning",
  "eslint.probe": [
    "javascript",
    "javascriptreact",
    "typescript",
    "typescriptreact"
  ],
  "editor.semanticHighlighting.enabled": false,
  "eslint.format.enable": false,
  "eslint.enable": true,
  "eslint.useFlatConfig": true,
  "eslint.codeActionsOnSave.mode": "problems",
  "eslint.lintTask.enable": false,
  "javascript.validate.enable": false,
  "typescript.tsdk": "frontend/config/ts-config/node_modules/typescript/lib",
  "typescript.enablePromptUseWorkspaceTsdk": true,
  "typescript.disableAutomaticTypeAcquisition": true,
  "typescript.format.enable": false,
  "typescript.referencesCodeLens.enabled": false,
  "typescript.preferGoToSourceDefinition": true,
  "typescript.updateImportsOnFileMove.enabled": "never",
  // tsserver log 不会自动删除,日积月累,导致磁盘空间不足,因此默认关闭
  "typescript.tsserver.log": "off",
  // "typescript.tsserver.useSeparateSyntaxServer": true,
  "typescript.tsserver.forceConsistentCasingInFileNames": true,
  "typescript.workspaceSymbols.excludeLibrarySymbols": true,
  "editor.minimap.enabled": true,
  "typescript.preferences.includePackageJsonAutoImports": "off",
  "typescript.suggest.autoImports": true,
  "typescript.tsserver.maxTsServerMemory": 16384,
  "typescript.tsserver.enableRegionDiagnostics": false,
  "typescript.tsserver.experimental.enableProjectDiagnostics": true,
  "typescript.tsserver.watchOptions": {
    "fallbackPolling": "dynamicPriorityPolling",
    "synchronousWatchDirectory": false,
    "watchDirectory": "useFsEvents",
    "watchFile": "useFsEventsOnParentDirectory",
    "excludeDirectories": [
      "/**/node_modules",
      "/**/dist",
      "/**/lib",
      "/**/coverage",
      "**/temp"
    ],
    "excludeLibrarySymbols": true,
    "excludeFiles": [
      "/**/node_modules/**",
      "/**/dist/**",
      "/**/lib/**",
      "/**/coverage/**",
      "**/temp/**"
    ]
  },
  "css.validate": false,
  "scss.validate": false,
  "less.validate": false,
  "stylelint.enable": true,
  "stylelint.validate": ["css", "scss", "less"],
  "stylelint.stylelintPath": "frontend/config/stylelint-config/node_modules/stylelint",
  "emmet.triggerExpansionOnTab": true,
  "[typescript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[yaml]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[css]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[html]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[javascriptreact]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[json]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[jsonc]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[less]": {
    "editor.defaultFormatter": "stylelint.vscode-stylelint"
  },
  "[scss]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[typescriptreact]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[ignore]": {
    "editor.defaultFormatter": "foxundermoon.shell-format"
  },
  "[shellscript]": {
    "editor.defaultFormatter": "foxundermoon.shell-format"
  },
  "[dotenv]": {
    "editor.defaultFormatter": "foxundermoon.shell-format"
  },
  "[svg]": {
    "editor.defaultFormatter": "jock.svg"
  },
  "svg.preview.background": "white",
  "[xml]": {
    "editor.defaultFormatter": "mblode.pretty-formatter"
  },
  "[sql]": {
    "editor.defaultFormatter": "adpyke.vscode-sql-formatter"
  },
  "git.openRepositoryInParentFolders": "always",
  "references.preferredLocation": "view"
}


================================================
FILE: AUTHORS
================================================
# Below is a list of people and organizations that have contributed
# to the Coze Studio project. Names should be added to the list like so:
#
#   Name/Organization <email address>
#
# Anyone who has contributed to the Coze Studio project in any way (not
# limited to submitting PRs) is welcome to submit a PR to add their
# name to this file.
#
# Thanks to everyone for your contributions!

ByteDance Ltd. and/or its Affiliates

luohuaqing.2018 <luohuaqing.2018@bytedance.com>
lipandeng <lipandeng@bytedance.com>
fanlv <fanlv@bytedance.com>
lijunwen.gigoo <lijunwen.gigoo@bytedance.com>
shentong.martin <shentong.martin@bytedance.com>
maronghong <maronghong@bytedance.com>
xuzhaonan <xuzhaonan@bytedance.com>
zhuangjie <zhuangjie.1125@bytedance.com>
liuyunchao <liuyunchao.0510@bytedance.com>
liujian.0502 <liujian.0502@bytedance.com>
wangdezheng <wangdezheng@bytedance.com>
liyubei <liyubei@bytedance.com>
xukai.luics <xukai.luics@bytedance.com>
sunzhiyuan.evan <sunzhiyuan.evan@bytedance.com>
yangyu.1 <yangyu.1@bytedance.com>
haozhenfei <haozhenfei@bytedance.com>
zengxiaohui <zengxiaohui@bytedance.com>
gaoyuanhan.duty <gaoyuanhan.duty@bytedance.com>
duwenhan <duwenhan@bytedance.com>
gaoding.devingao <gaoding.devingao@bytedance.com>
chenjiawei.inizio <chenjiawei.inizio@bytedance.com>
wencheng.lwc <wencheng.lwc@bytedance.com>
fanwenjie.fe <fanwenjie.fe@bytedance.com>
lihuiwen.123 <lihuiwen.123@bytedance.com>
liji.leej <liji.leej@bytedance.com>
fengzilong <fengzilong@bytedance.com>
shanrenkai <shanrenkai@bytedance.com>
sunkuo <sunkuo@bytedance.com>
fanchen <fanchen@bytedance.com>
lingyibin.jason <lingyibin.jason@bytedance.com>
chenchen.dabaishu <chenchen.dabaishu@bytedance.com>
jiangxujin <jiangxujin@bytedance.com>
huyongbiao <huyongbiao@bytedance.com>
wenming.2020 <wenming.2020@bytedance.com>
tanjizhen <tanjizhen@bytedance.com>


================================================
FILE: CLAUDE.md
================================================
# CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

## Project Overview

Coze Studio is an all-in-one AI agent development platform with both frontend (React + TypeScript) and backend (Go) components. The project uses a sophisticated monorepo architecture managed by Rush.js with 135+ frontend packages organized in a hierarchical dependency system.

## Development Commands

### Environment Setup
```bash
# Clone and setup
git clone https://github.com/coze-dev/coze-studio.git
cd coze-studio

# Install frontend dependencies
rush update

# For Docker-based development
cd docker
cp .env.example .env
# Configure model settings in backend/conf/model/
docker compose up -d
# Access at http://localhost:8888
```

### Development Workflow
```bash
# Start middleware services (MySQL, Redis, Elasticsearch, etc.)
make middleware

# Start Go backend in development mode
make server

# Start frontend development server
cd frontend/apps/coze-studio
npm run dev

# Full development environment
make debug
```

### Build Commands
```bash
# Build frontend only
make fe

# Build Go server
make build_server

# Build everything with Docker
make web

# Rush monorepo commands
rush build                    # Build all packages
rush rebuild -o @coze-studio/app  # Build specific package
rush test                     # Run all tests
rush lint                     # Lint all packages
```

### Testing
```bash
# Run tests (Vitest-based)
rush test
npm run test                  # In specific package
npm run test:cov             # With coverage

# Backend tests
cd backend && go test ./...
```

## Architecture Overview

### Frontend Architecture
- **Monorepo**: Rush.js with 135+ packages across 4 dependency levels
- **Build System**: Rsbuild (Rspack-based) for fast builds
- **UI Framework**: React 18 + TypeScript + Semi Design + Tailwind CSS
- **State Management**: Zustand for global state
- **Package Organization**:
  - `arch/`: Core infrastructure (level-1)
  - `common/`: Shared components and utilities (level-2)
  - `agent-ide/`, `workflow/`, `studio/`: Feature domains (level-3)
  - `apps/coze-studio`: Main application (level-4)

### Backend Architecture (Go)
- **Framework**: Hertz HTTP framework
- **Architecture**: Domain-Driven Design (DDD) with microservices
- **Structure**:
  - `domain/`: Business logic and entities
  - `application/`: Application services and use cases
  - `api/`: HTTP handlers and routing
  - `infra/`: Infrastructure implementations
  - `crossdomain/`: Cross-cutting concerns

### Key Architectural Patterns
- **Adapter Pattern**: Extensive use for loose coupling between layers
- **Interface Segregation**: Clear contracts between domains
- **Event-Driven**: NSQ message queue for async communication
- **API-First**: Comprehensive OpenAPI specifications

## Database & Infrastructure

### Docker Services Stack
- **Database**: MySQL 8.4.5
- **Cache**: Redis 8.0
- **Search**: Elasticsearch 8.18.0 with SmartCN analyzer
- **Vector DB**: Milvus v2.5.10 for embeddings
- **Storage**: MinIO for object storage
- **Message Queue**: NSQ (nsqlookupd, nsqd, nsqadmin)
- **Configuration**: etcd 3.5

### Database Management
```bash
# Sync database schema
make sync_db

# Dump database schema
make dump_db

# Initialize SQL data
make sql_init

# Atlas migration management
make atlas-hash
```

## Key Development Patterns

### Frontend Package Development
- Each package follows consistent structure with `README.md`, `package.json`, `tsconfig.json`, `eslint.config.js`
- Adapter pattern extensively used for decoupling (e.g., `-adapter` suffix packages)
- Base/Core pattern for shared functionality (e.g., `-base` suffix packages)
- Use workspace references (`workspace:*`) for internal dependencies

### Backend Development
- Follow DDD principles with clear domain boundaries
- Use dependency injection via interfaces
- Implement proper error handling with custom error types
- Write comprehensive tests for domain logic

### Model Configuration
Before deployment, configure AI models in `backend/conf/model/`:
1. Copy template from `backend/conf/model/template/`
2. Set `id`, `meta.conn_config.api_key`, and `meta.conn_config.model`
3. Supported providers: OpenAI, Volcengine Ark, Claude, Gemini, Qwen, DeepSeek, Ollama

## Testing Strategy

### Coverage Requirements by Package Level
- **Level 1**: 80% coverage, 90% increment
- **Level 2**: 30% coverage, 60% increment
- **Level 3-4**: 0% coverage (flexible)

### Testing Framework
- **Frontend**: Vitest for unit/integration tests
- **Backend**: Go's built-in testing framework
- **E2E**: Separate e2e subspace configuration

## Common Issues & Solutions

### Frontend Development
- Use `rush update` instead of `npm install` at root level
- Build packages in dependency order using `rush build`
- For hot reload issues, check Rsbuild configuration in specific package

### Backend Development
- Ensure middleware services are running (`make middleware`)
- Check database connectivity and schema sync
- Verify model configurations are properly set

### Docker Issues
- Ensure sufficient resources (minimum 2 Core, 4GB RAM)
- Check port conflicts (8888 for frontend, various for services)
- Use `make clean` to reset Docker volumes if needed

## IDL and Code Generation

The project uses Interface Definition Language (IDL) for API contract management:
- IDL files in `idl/` directory (Thrift format)
- Frontend code generation via `@coze-arch/idl2ts-*` packages
- Backend uses generated Go structs

## Plugin Development

For custom plugin development:
- Reference templates in `backend/conf/plugin/pluginproduct/`
- Follow OAuth schema in `backend/conf/plugin/common/oauth_schema.json`
- Configure authentication keys for third-party services

## Contributing

- Use conventional commits via `rush commit`
- Run linting with `rush lint-staged` (pre-commit hook)
- Ensure tests pass before submitting PRs
- Follow team-based package organization and tagging conventions

================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment for our
community include:

* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
  and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
  overall community

Examples of unacceptable behavior include:

* The use of sexualized language or imagery, and sexual attention or
  advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
  address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
  professional setting

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.

Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.

## Scope

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
conduct@cloudwego.io.
All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
reporter of any incident.

## Enforcement Guidelines

Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:

### 1. Correction

**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.

**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.

### 2. Warning

**Community Impact**: A violation through a single incident or series
of actions.

**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.

### 3. Temporary Ban

**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.

**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.

### 4. Permanent Ban

**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior,  harassment of an
individual, or aggression toward or disparagement of classes of individuals.

**Consequence**: A permanent ban from any sort of public interaction within
the community.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.

Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.


================================================
FILE: CONTRIBUTING.md
================================================
# How to Contribute

## Your First Pull Request
We use GitHub for our codebase. You can start by reading [How To Pull Request](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests).

## Branch Organization
We use [git-flow](https://nvie.com/posts/a-successful-git-branching-model/) as our branch organization, as known as [FDD](https://en.wikipedia.org/wiki/Feature-driven_development)

## Bugs
### 1. How to Find Known Issues
We are using [Github Issues](https://github.com/coze-dev/{project_name}/issues) for our public bugs. We keep a close eye on this and try to make it clear when we have an internal fix in progress. Before filing a new task, try to make sure your problem doesn’t already exist.

### 2. Reporting New Issues
Providing a reduced test code is a recommended way for reporting issues. Then can place in:
- Just in issues
- [Golang Playground](https://play.golang.org/)

### 3. Security Bugs
Please do not report the safe disclosure of bugs to public issues. Contact us by [Support Email](mailto:opensource-studio@coze.cn)

## How to Get in Touch
- [Email](mailto:opensource-studio@coze.cn)

## Submit a Pull Request
Before you submit your Pull Request (PR) consider the following guidelines:
1. Search [GitHub](https://github.com/coze-dev/{project_name}/pulls) for an open or closed PR that relates to your submission. You don't want to duplicate existing efforts.
2. Be sure that an issue describes the problem you're fixing, or documents the design for the feature you'd like to add. Discussing the design upfront helps to ensure that we're ready to accept your work.
3. [Fork](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo) the coze-dev {project_name} repo.
4. In your forked repository, make your changes in a new git branch:
    ```
    git checkout -b my-fix-branch main
    ```
5. Create your patch, including appropriate test cases.
6. Follow our [Style Guides](#code-style-guides).
7. Commit your changes using a descriptive commit message that follows [AngularJS Git Commit Message Conventions](https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit).
   Adherence to these conventions is necessary because release notes are automatically generated from these messages.
8. Push your branch to GitHub:
    ```
    git push origin my-fix-branch
    ```
9. In GitHub, send a pull request to `{project_name}:main`

## Contribution Prerequisites
- Our development environment keeps up with [Go Official](https://golang.org/project/).
- You need fully checking with lint tools before submit your pull request. [gofmt](https://golang.org/pkg/cmd/gofmt/) and [golangci-lint](https://github.com/golangci/golangci-lint)
- You are familiar with [GitHub](https://github.com)
- Maybe you need familiar with [Actions](https://github.com/features/actions)(our default workflow tool).

## Code Style Guides
- [Effective Go](https://golang.org/doc/effective_go)
- [Go Code Review Comments](https://github.com/golang/go/wiki/CodeReviewComments)


================================================
FILE: LICENSE-APACHE
================================================
                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS



================================================
FILE: Makefile
================================================
.PHONY: debug fe server sync_db dump_db middleware web down clean python help

# 定义脚本路径
SCRIPTS_DIR := ./scripts
BUILD_FE_SCRIPT := $(SCRIPTS_DIR)/build_fe.sh
BUILD_SERVER_SCRIPT := $(SCRIPTS_DIR)/setup/server.sh
SYNC_DB_SCRIPT := $(SCRIPTS_DIR)/setup/db_migrate_apply.sh
DUMP_DB_SCRIPT := $(SCRIPTS_DIR)/setup/db_migrate_dump.sh
SETUP_DOCKER_SCRIPT := $(SCRIPTS_DIR)/setup/docker.sh
SETUP_PYTHON_SCRIPT := $(SCRIPTS_DIR)/setup/python.sh
COMPOSE_FILE := docker/docker-compose-debug.yml
OCEANBASE_COMPOSE_FILE := docker/docker-compose-oceanbase.yml
OCEANBASE_DEBUG_COMPOSE_FILE := docker/docker-compose-oceanbase_debug.yml
MYSQL_SCHEMA := ./docker/volumes/mysql/schema.sql
MYSQL_INIT_SQL := ./docker/volumes/mysql/sql_init.sql
ENV_FILE := ./docker/.env.debug
WEB_ENV_FILE := ./docker/.env
OCEANBASE_ENV_FILE := ./docker/.env.debug
STATIC_DIR := ./bin/resources/static
ES_INDEX_SCHEMA := ./docker/volumes/elasticsearch/es_index_schema
ES_SETUP_SCRIPT := ./docker/volumes/elasticsearch/setup_es.sh

debug: env middleware python server

env:
	@if [ ! -f "$(ENV_FILE)" ]; then \
		echo "Env file '$(ENV_FILE)' not found, using example env..."; \
		cp ./docker/.env.debug.example $(ENV_FILE); \
	fi

fe:
	@echo "Building frontend..."
	@bash $(BUILD_FE_SCRIPT)

server: env
	@if [ ! -d "$(STATIC_DIR)" ]; then \
		echo "Static directory '$(STATIC_DIR)' not found, building frontend..."; \
		$(MAKE) fe; \
	fi
	@echo "Building and run server..."
	@APP_ENV=debug bash $(BUILD_SERVER_SCRIPT) -start


build_server:
	@echo "Building server..."
	@bash $(BUILD_SERVER_SCRIPT)

sync_db: env
	@echo "Syncing database..."
	@docker compose -f $(COMPOSE_FILE) --env-file $(ENV_FILE) --profile mysql-setup up -d

dump_db: env dump_sql_schema
	@echo "Dumping database..."
	@. $(ENV_FILE); \
	bash $(DUMP_DB_SCRIPT)

sql_init:
	@echo "Init sql data..."
	@docker compose -f $(COMPOSE_FILE) --env-file $(ENV_FILE) --profile mysql-setup up -d

middleware:
	@echo "Start middleware docker environment for opencoze app"
	@docker compose -f $(COMPOSE_FILE) --env-file $(ENV_FILE) --profile middleware up -d --wait

build_docker:
	@echo "Build docker image"
	@docker compose -f $(COMPOSE_FILE) --profile build-server build

web_env:
	@if [ ! -f "$(WEB_ENV_FILE)" ]; then \
		echo "Env file '$(WEB_ENV_FILE)' not found, using example env..."; \
		cp ./docker/.env.example $(WEB_ENV_FILE); \
	fi

web: web_env
	@echo "Start web server in docker"
	@docker compose -f docker/docker-compose.yml --env-file $(WEB_ENV_FILE) up -d

down_web:
	@echo "Stop web server in docker"
	@docker compose -f docker/docker-compose.yml --env-file $(WEB_ENV_FILE) down

down: env
	@echo "Stop all docker containers"
	@docker compose -f $(COMPOSE_FILE) --profile '*' down

clean: down
	@echo "Remove docker containers and volumes data"
	@rm -rf ./docker/data

python:
	@echo "Setting up Python..."
	@bash $(SETUP_PYTHON_SCRIPT)

dump_sql_schema:
	@echo "Dumping mysql schema to $(MYSQL_SCHEMA)..."
	@. $(ENV_FILE); \
	{ echo "SET NAMES utf8mb4;\nCREATE DATABASE IF NOT EXISTS opencoze COLLATE utf8mb4_unicode_ci;"; atlas schema inspect -u $$ATLAS_URL --format "{{ sql . }}" --exclude "atlas_schema_revisions,table_*" | sed 's/CREATE TABLE/CREATE TABLE IF NOT EXISTS/g'; } > $(MYSQL_SCHEMA)
		@sed -i.bak -E 's/(\))[[:space:]]+CHARSET utf8mb4/\1 ENGINE=InnoDB CHARSET utf8mb4/' $(MYSQL_SCHEMA) && rm -f $(MYSQL_SCHEMA).bak
		@sed -i.bak "s/\"/'/g" $(MYSQL_SCHEMA) && rm -f $(MYSQL_SCHEMA).bak
	@cat $(MYSQL_INIT_SQL) >> $(MYSQL_SCHEMA)
	@echo "Dumping mysql schema to helm/charts/opencoze/files/mysql ..."
	@cp $(MYSQL_SCHEMA) ./helm/charts/opencoze/files/mysql/

atlas-hash:
	@echo "Rehash atlas migration files..."
	@(cd ./docker/atlas && atlas migrate hash)

setup_es_index:
	@echo "Setting up Elasticsearch index..."
	@. $(ENV_FILE); \
	bash $(ES_SETUP_SCRIPT) --index-dir $(ES_INDEX_SCHEMA) --docker-host false --es-address "$$ES_ADDR"

oceanbase_env:
	@bash scripts/setup/oceanbase_env.sh debug

oceanbase_debug: oceanbase_env oceanbase_middleware_debug python oceanbase_server_debug

oceanbase_middleware_debug:
	@echo "Starting OceanBase debug middleware..."
	@docker compose -f $(OCEANBASE_DEBUG_COMPOSE_FILE) --env-file $(ENV_FILE) --profile middleware up -d --wait

oceanbase_server_debug:
	@if [ ! -d "$(STATIC_DIR)" ]; then \
		echo "Static directory '$(STATIC_DIR)' not found, building frontend..."; \
		$(MAKE) fe; \
	fi
	@echo "Building and run OceanBase debug server..."
	@APP_ENV=debug bash $(BUILD_SERVER_SCRIPT) -start

help:
	@echo "Usage: make [target]"
	@echo ""
	@echo "Targets:"
	@echo "  debug            - Start the debug environment."
	@echo "  env              - Setup env file."
	@echo "  fe               - Build the frontend."
	@echo "  server           - Build and run the server binary."
	@echo "  build_server     - Build the server binary."
	@echo "  sync_db          - Sync opencoze_latest_schema.hcl to the database."
	@echo "  dump_db          - Dump the database to opencoze_latest_schema.hcl and migrations files."
	@echo "  sql_init         - Init sql data..."
	@echo "  dump_sql_schema  - Dump the database schema to sql file."
	@echo "  middleware       - Setup middlewares docker environment, but exclude the server app."
	@echo "  web              - Setup web docker environment, include middlewares docker."
	@echo "  down             - Stop the docker containers."
	@echo "  down_web         - Stop the web docker containers."
	@echo "  clean            - Stop the docker containers and clean volumes."
	@echo "  python           - Setup python environment."
	@echo "  atlas-hash       - Rehash atlas migration files."
	@echo "  setup_es_index   - Setup elasticsearch index."
	@echo ""
	@echo "OceanBase Commands:"
	@echo "  oceanbase_env    - Setup OceanBase environment file (like 'env')."
	@echo "  oceanbase_debug  - Start OceanBase debug environment (like 'debug')."
	@echo ""
	@echo "  help             - Show this help message."


================================================
FILE: README.md
================================================
![Image](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/943f576df3424fa98580c2ad18946719~tplv-goo7wpa0wc-image.image)

<div align="center"><p>
<a href="#what-is-coze-studio">Coze Studio</a> •
<a href="#feature-list">Feature list</a> •
<a href="#quickstart">Quickstart</a> •
<a href="#developer-guide">Developer Guide</a>
</p>
<p>
  <img alt="License" src="https://img.shields.io/badge/license-apache2.0-blue.svg">
  <img alt="Go Version" src="https://img.shields.io/badge/go-%3E%3D%201.23.4-blue">
</p>

English | [中文](README.zh_CN.md)

</div>

## What is Coze Studio?

[Coze Studio](https://www.coze.cn/home) is an all-in-one AI agent development tool. Providing the latest large models and tools, various development modes and frameworks, Coze Studio offers the most convenient AI agent development environment, from development to deployment. 

* **Provides all core technologies needed for AI agent development**: prompt, RAG, plugin, workflow, enabling developers to focus on creating the core value of AI.
* **Ready to use for professional AI agent development at the lowest cost**: Coze Studio provides developers with complete app templates and build frameworks, allowing you to quickly construct various AI agents and turn creative ideas into reality.

Coze Studio, derived from the "Coze Development Platform" which has served tens of thousands of enterprises and millions of developers, we have made its core engine completely open. It is a one-stop visual development tool for AI Agents that makes creating, debugging, and deploying AI Agents unprecedentedly simple. Through Coze Studio's visual design and build tools, developers can quickly create and debug agents, apps, and workflows using no-code or low-code approaches, enabling powerful AI app development and more customized business logic. It's an ideal choice for building low-code AI products tailored . Coze Studio aims to lower the threshold for AI agent development and application, encouraging community co-construction and sharing for deeper exploration and practice in the AI field.

The backend of Coze Studio is developed using Golang, the frontend uses React + TypeScript, and the overall architecture is based on microservices and built following domain-driven design (DDD) principles. Provide developers with a high-performance, highly scalable, and easy-to-customize underlying framework to help them address complex business needs.
## Feature list
| **Module** | **Feature** |
| --- | --- |
| Model service | Manage the model list, integrate services such as OpenAI and Volcengine |
| Build agent | * Build, publish, and manage agent <br> * Support configuring workflows, knowledge bases, and other resources |
| Build apps | * Create and publish apps <br> * Build business logic through workflows |
| Build a workflow | Create, modify, publish, and delete workflows |
| Develop resources | Support creating and managing the following resources: <br> * Plugins <br> * Knowledge bases <br> * Databases <br> * Prompts |
| API and SDK | * Create conversations, initiate chats, and other OpenAPI <br> * Integrate agents or apps into your own app through Chat SDK |

## Quickstart
Learn how to obtain and deploy the open-source version of Coze Studio, quickly build projects, and experience Coze Studio's open-source version.

Environment requirements:

* Before installing Coze Studio, please ensure that your machine meets the following minimum system requirements: 2 Core、4 GB
* Pre-install Docker and Docker Compose, and start the Docker service.

Deployment steps:

1. Retrieve the source code.
   ```Bash
   # Clone code
   git clone https://github.com/coze-dev/coze-studio.git
   ```
2. Deploy and start the service. When deploying and starting Coze Studio for the first time, it may take a while to retrieve images and build local images. Please be patient. If you see the message "Container coze-server Started," it means the Coze Studio service has started successfully.

   ```Bash
   cd coze-studio
   # start service
   # for macOS or Linux
   make web  
   # for windows
   cp ./docker/.env.example ./docker/.env
   docker compose -f ./docker/docker-compose.yml up
   ```

   For common startup failure issues, **please refer to the [FAQ](https://github.com/coze-dev/coze-studio/wiki/9.-FAQ)**.
3.	Register an account by visiting `http://localhost:8888/sign`, entering your username and password, and clicking the Register button.
4.	Configure the model at `http://localhost:8888/admin/#model-management` by adding a new model. (The image version must be greater than or equal to 0.5.0.)
5.	Visit Coze Studio at `http://localhost:8888/`.

> [!WARNING]
> If you want to deploy Coze Studio in a public network environment, it is recommended to assess security risks before you begin, and take corresponding protection measures. Possible security risks include account registration functions, Python execution environments in workflow code nodes, Coze Server listening address configurations, SSRF (Server - Side Request Forgery), and some horizontal privilege escalations in APIs.  For more details, refer to [Quickstart](https://github.com/coze-dev/coze-studio/wiki/2.-Quickstart#security-risks-in-public-networks).

## Developer Guide

* **Project Configuration**:
   * [Model Configuration](https://github.com/coze-dev/coze-studio/wiki/3.-Model-configuration): Before deploying the open-source version of Coze Studio, you must configure the model service. Otherwise, you cannot select models when building agents, workflows, and apps.
   * [Plugin Configuration](https://github.com/coze-dev/coze-studio/wiki/4.-Plugin-Configuration): To use official plugins from the plugin store, you must first configure the plugins and add the authentication keys for third-party services.
   * [Basic Component Configuration](https://github.com/coze-dev/coze-studio/wiki/5.-Basic-component-configuration): Learn how to configure components such as image uploaders to use functions like image uploading in Coze Studio .
* [API Reference](https://github.com/coze-dev/coze-studio/wiki/6.-API-Reference): The Coze Studio Community Edition API and Chat SDK are authenticated using Personal Access Token, providing APIs for conversations and workflows.
* [Development Guidelines](https://github.com/coze-dev/coze-studio/wiki/7.-Development-Standards):
   * [Project Architecture](https://github.com/coze-dev/coze-studio/wiki/7.-Development-Standards#project-architecture): Learn about the technical architecture and core components of the open-source version of Coze Studio.
   * [Code Development and Testing](https://github.com/coze-dev/coze-studio/wiki/7.-Development-Standards#code-development-and-testing): Learn how to perform secondary development and testing based on the open-source version of Coze Studio.
   * [Troubleshooting](https://github.com/coze-dev/coze-studio/wiki/7.-Development-Standards#troubleshooting): Learn how to view container states and system logs.

## Using the open-source version of Coze Studio
> Regarding how to use Coze Studio, refer to the [Coze Development Platform Official Documentation Center](https://www.coze.cn/open/docs) for more information. Please note that certain features, such as tone customization, are limited to the commercial version. Differences between the open-source and commercial versions can be found in the **Feature List**.


* [Quick Start](https://www.coze.cn/open/docs/guides/quickstart): Quickly build an AI assistant agent with Coze Studio.
* [Developing Agents](https://www.coze.cn/open/docs/guides/agent_overview): Learn how to create, build, publish, and manage agents. You can use functions such as knowledge, plugins, etc., to resolve model hallucination and lack of expertise in professional fields. In addition, Coze Studio provides rich memory features that enable agents to generate more accurate responses based on a personal user's historical conversations during interactions.
* [Develop workflows](https://www.coze.cn/open/docs/guides/workflow): A workflow is a set of executable instructions used to implement business logic or complete specific tasks. It structures data flow and task processing for apps or agents. Coze Studio provides a visual canvas where you can quickly build workflows by dragging and dropping nodes.
* [Resources such as plugins](https://www.coze.cn/open/docs/guides/plugin): In Coze Studio, workflows, plugins, databases, knowledge bases, and variables are collectively referred to as resources.
* **API & SDK**: Coze Studio supports [API related to chat and workflows](https://github.com/coze-dev/coze-studio/wiki/6.-API-Reference), and you can also integrate agents or apps with local business systems through [Chat SDK](https://www.coze.cn/open/docs/developer_guides/web_sdk_overview).
* [Tutorials for practice](https://www.coze.cn/open/docs/tutorial/chat_sdk_web_online_customer_service): Learn how to use Coze Studio to implement various AI scenarios, such as building web-based online customer service using Chat SDK.

## License
This project uses the Apache 2.0 license. For details, please refer to the [LICENSE](https://github.com/coze-dev/coze-studio/blob/main/LICENSE-APACHE) file.
## Community contributions
We welcome community contributions. For contribution guidelines, please refer to [CONTRIBUTING](https://github.com/coze-dev/coze-studio/blob/main/CONTRIBUTING.md) and [Code of conduct](https://github.com/coze-dev/coze-studio/blob/main/CODE_OF_CONDUCT.md). We look forward to your contributions!
## Security and privacy
If you discover potential security issues in the project, or believe you may have found a security issue, please notify the ByteDance security team through our [security center](https://security.bytedance.com/src) or [vulnerability reporting email](mailto:sec@bytedance.com).
Please **do not** create public GitHub Issues.
## Join Community

We are committed to building an open and friendly developer community. All developers interested in AI Agent development are welcome to join us!

### 🐛 Issue Reports & Feature Requests
To efficiently track and resolve issues while ensuring transparency and collaboration, we recommend participating through:
- **GitHub Issues**: [Submit bug reports or feature requests](https://github.com/coze-dev/coze-studio/issues)
- **Pull Requests**: [Contribute code or documentation improvements](https://github.com/coze-dev/coze-studio/pulls)

### 💬 Technical Discussion & Communication
Join our technical discussion groups to share experiences with other developers and stay updated with the latest project developments:

**Feishu Group Chat**  
Scan the QR code below with Feishu mobile app to join:

![Image](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/0a49081e8f3743e8bf3dcdded4bb571a~tplv-goo7wpa0wc-image.image)

**Discord Server**  
Click to join: [Coze Community](https://discord.gg/sTVN9EVS4B)

**Telegram Group**  
Click to join: Telegram Group [Coze](https://t.me/+pP9CkPnomDA0Mjgx)

## Acknowledgments
Thank you to all the developers and community members who have contributed to the Coze Studio project. Special thanks:

* The [Eino](https://github.com/cloudwego/eino) framework team - providing powerful support for Coze Studio's agent and workflow runtime engines, model abstractions and implementations, and knowledge base indexing and retrieval
* The [FlowGram](https://github.com/bytedance/flowgram.ai) team - providing a high-quality workflow building engine for Coze Studio's frontend workflow canvas editor
* The [Hertz](https://github.com/cloudwego/hertz) team - Go HTTP framework with high-performance and strong-extensibility for building micro-services
* All users who participated in testing and feedback


================================================
FILE: README.zh_CN.md
================================================
![Image](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/943f576df3424fa98580c2ad18946719~tplv-goo7wpa0wc-image.image)
<div align="center">
<p>
  <a href="#什么是-coze-studio">Coze Studio</a> •
  <a href="#功能清单">功能清单</a> •
  <a href="#快速开始">快速开始</a> •
  <a href="#开发指南">开发指南</a>
</p>
<p>
  <img alt="License" src="https://img.shields.io/badge/license-apache2.0-blue.svg">
  <img alt="Go Version" src="https://img.shields.io/badge/go-%3E%3D%201.23.4-blue">
</p>

[English](README.md) | 中文

</div>

## 什么是 Coze Studio

[Coze Studio](https://www.coze.cn/home) 是一站式 AI Agent 开发工具。提供各类最新大模型和工具、多种开发模式和框架,从开发到部署,为你提供最便捷的 AI Agent 开发环境。

* **提供 AI Agent 开发所需的全部核心技术**:Prompt、RAG、Plugin、Workflow,使得开发者可以聚焦创造 AI 核心价值。
* **开箱即用,用最低的成本开发最专业的 AI Agent**:Coze Studio 为开发者提供了健全的应用模板和编排框架,你可以基于它们快速构建各种 AI Agent ,将创意变为现实。

Coze Studio,源自服务了上万家企业、数百万开发者的「扣子开发平台」,我们将它的核心引擎完全开放。它是一个一站式的 AI Agent 可视化开发工具,让 AI Agent 的创建、调试和部署变得前所未有的简单。通过 Coze Studio 提供的可视化设计与编排工具,开发者可以通过零代码或低代码的方式,快速打造和调试智能体、应用和工作流,实现强大的 AI 应用开发和更多定制化业务逻辑,是构建低代码 AI 产品的理想选择。Coze Studio 致力于降低 AI Agent 开发与应用门槛,鼓励社区共建和分享交流,助你在 AI 领域进行更深层次的探索与实践。

Coze Studio 的后端采用 Golang 开发,前端使用 React + TypeScript,整体基于微服务架构并遵循领域驱动设计(DDD)原则构建。为开发者提供一个高性能、高扩展性、易于二次开发的底层框架,助力开发者应对复杂的业务需求。

## 功能清单
| **功能模块** | **功能点** |
| --- | --- |
| 模型服务 | 管理模型列表,可接入OpenAI、火山方舟 等在线或离线模型服务 |
| 搭建智能体 | * 编排、发布、管理智能体 <br> * 支持配置工作流、知识库等资源 |
| 搭建应用 | * 创建、发布应用 <br> * 通过工作流搭建业务逻辑 |
| 搭建工作流 | 创建、修改、发布、删除工作流 |
| 开发资源 | 支持创建并管理以下资源: <br> * 插件 <br> * 知识库 <br> * 数据库 <br> * 提示词 |
| API 与 SDK | * 创建会话、发起对话等 OpenAPI <br> * 通过 Chat SDK 将智能体或应用集成到自己的应用 |
## 快速开始
了解如何获取并部署 Coze Studio 开源版,快速构建项目、体验 Coze Studio 开源版。

环境要求:

* 在安装 Coze Studio 之前,请确保您的机器满足以下最低系统要求: 2 Core、4 GB
* 提前安装 Docker、Docker Compose,并启动 Docker 服务。

部署步骤:

1. 获取源码。

   ```Bash
   # 克隆代码
   git clone https://github.com/coze-dev/coze-studio.git
   ```

2. 部署并启动服务。
   首次部署并启动 Coze Studio 需要拉取镜像、构建本地镜像,可能耗时较久,请耐心等待。如果看到提示 "Container coze-server Started",表示 Coze Studio 服务已成功启动。 
   
   ```Bash
   cd coze-studio
   # start service
   # for macOS or Linux
   make web  
   # for windows
   cp ./docker/.env.example ./docker/.env
   docker compose -f ./docker/docker-compose.yml up
   ```
   
   **启动失败常见问题可参考[常见问题](https://github.com/coze-dev/coze-studio/wiki/9.-%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)**。
3. 注册账号,访问 `http://localhost:8888/sign` 输入用户名、密码点击注册按钮。
4. 配置模型:访问 `http://localhost:8888/admin/#model-management` 新增模型。(镜像版本需要大于等于 0.5.0)。
5. 访问 Coze Studio `http://localhost:8888/`。

> [!WARNING]
> 如果要将 Coze Studio 部署到公网环境,建议在部署前评估整体评估安全风险,例如账号注册功能、工作流代码节点 Python执行环境、Coze Server 监听地址配置、SSRF 和部分 API 水平越权的风险,并采取相应防护措施。详细信息可参考[快速开始](https://github.com/coze-dev/coze-studio/wiki/2.-%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B#%E5%85%AC%E7%BD%91%E5%AE%89%E5%85%A8%E9%A3%8E%E9%99%A9)。
## 开发指南

* **项目配置**:
   * [模型配置](https://github.com/coze-dev/coze-studio/wiki/3.-模型配置):部署 Coze Studio 开源版之前,必须配置模型服务,否则无法在搭建智能体、工作流和应用时选择模型。
   * [插件配置](https://github.com/coze-dev/coze-studio/wiki/4.-插件配置):如需使用插件商店中的官方插件,必须先配置插件,添加第三方服务的鉴权秘钥。
   * [基础组件配置](https://github.com/coze-dev/coze-studio/wiki/5.-基础组件配置):了解如何配置图片上传等组件,以便在 Coze Studio 中使用上传图片等功能。
* [API 参考](https://github.com/coze-dev/coze-studio/wiki/6.-API-参考):Coze Studio 社区版 API 和 Chat SDK 通过个人访问令牌鉴权,提供对话和工作流相关 API。
* [开发规范](https://github.com/coze-dev/coze-studio/wiki/7.-开发规范):
   * [项目架构](https://github.com/coze-dev/coze-studio/wiki/7.-%E5%BC%80%E5%8F%91%E8%A7%84%E8%8C%83#%E9%A1%B9%E7%9B%AE%E6%9E%B6%E6%9E%84):了解 Coze Studio 开源版的技术架构与核心组件。
   * [代码开发与测试](https://github.com/coze-dev/coze-studio/wiki/7.-%E5%BC%80%E5%8F%91%E8%A7%84%E8%8C%83#%E4%BB%A3%E7%A0%81%E5%BC%80%E5%8F%91%E4%B8%8E%E6%B5%8B%E8%AF%95):了解如何基于 Coze Studio 开源版进行二次开发与测试。
   * [故障排查](https://github.com/coze-dev/coze-studio/wiki/7.-%E5%BC%80%E5%8F%91%E8%A7%84%E8%8C%83#%E6%95%85%E9%9A%9C%E6%8E%92%E6%9F%A5):了解如何查看容器状态、系统日志。

## 使用 Coze Studio 开源版
> 关于如何使用 Coze Studio,可参考[扣子开发平台官方文档中心](https://www.coze.cn/open/docs)获取更多资料。需要注意的是,音色等部分功能限商业版本使用,开源版与商业版的功能差异可参考**功能清单**。


* [快速入门](https://www.coze.cn/open/docs/guides/quickstart):通过 Coze Studio 快速搭建一个 AI 助手智能体。
* [开发智能体](https://www.coze.cn/open/docs/guides/agent_overview):如何创建、编排、发布与管理智能体。你可以使用知识、插件等功能解决模型幻觉、专业领域知识不足等问题。除此之外,Coze Studio 还提供了丰富的记忆功能,使智能体在与个人用户交互时,可根据个人用户的历史对话等生成更准确性的回复。
* [开发工作流](https://www.coze.cn/open/docs/guides/workflow):工作流是一系列可执行指令的集合,用于实现业务逻辑或完成特定任务。它为应用/智能体的数据流动和任务处理提供了一个结构化框架。 Coze Studio 提供了一个可视化画布,你可以通过拖拽节点迅速搭建工作流。
* [插件等资源](https://www.coze.cn/open/docs/guides/plugin):在 Coze Studio,工作流、插件、数据库、知识库和变量统称为资源。
* **API & SDK**: Coze Studio 支持[对话和工作流相关 API](https://github.com/coze-dev/coze-studio/wiki/6.-API-%E5%8F%82%E8%80%83),你也可以通过 [Chat SDK](https://www.coze.cn/open/docs/developer_guides/web_sdk_overview) 将智能体或应用集成到本地业务系统。
* [实践教程](https://www.coze.cn/open/docs/tutorial/chat_sdk_web_online_customer_service):了解如何通过 Coze Studio 实现各种 AI 场景,例如通过 Chat SDK 搭建网页在线客服。 

## License
本项目采用 Apache 2.0 许可证。详情请参阅 [LICENSE](https://github.com/coze-dev/coze-studio/blob/main/LICENSE-APACHE) 文件。
## 社区贡献
我们欢迎社区贡献,贡献指南参见 [CONTRIBUTING](https://github.com/coze-dev/coze-studio/blob/main/CONTRIBUTING.md) 和 [Code of conduct](https://github.com/coze-dev/coze-studio/blob/main/CODE_OF_CONDUCT.md),期待您的贡献!
## 安全与隐私
如果你在该项目中发现潜在的安全问题,或你认为可能发现了安全问题,请通过我们的[安全中心](https://security.bytedance.com/src) 或[漏洞报告邮箱](mailto:sec@bytedance.com)通知字节跳动安全团队。
请**不要**创建公开的 GitHub Issue。
## 加入社区

我们致力于构建一个开放、友好的开发者社区,欢迎所有对 AI Agent 开发感兴趣的开发者加入我们!

### 🐛 问题反馈与功能建议
为了更高效地跟踪和解决问题,保证信息透明和便于协同,我们推荐通过以下方式参与:
- **GitHub Issues**:[提交 Bug 报告或功能请求](https://github.com/coze-dev/coze-studio/issues)
- **Pull Requests**:[贡献代码或文档改进](https://github.com/coze-dev/coze-studio/pulls)

### 💬 技术交流与讨论
加入我们的技术交流群,与其他开发者分享经验、获取项目最新动态:

**飞书群聊**  
使用飞书移动端扫描下方二维码加入:

![Image](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/0a49081e8f3743e8bf3dcdded4bb571a~tplv-goo7wpa0wc-image.image)

**Discord 服务器**  
点击加入:[Coze Community](https://discord.gg/sTVN9EVS4B)

**Telegram 群组**  
点击加入:Telegram Group [Coze](https://t.me/+pP9CkPnomDA0Mjgx)

## 致谢
感谢所有为 Coze Studio 项目做出贡献的开发者和社区成员。特别感谢:

* [Eino](https://github.com/cloudwego/eino) 框架团队 - 为 Coze Studio 的智能体和工作流运行时、模型抽象封装、知识库索引构建和检索提供了强大的支持
* [FlowGram](https://github.com/bytedance/flowgram.ai) 团队 - 为 Coze Studio 的工作流画布编辑页提供了高质量的流程搭建引擎
* [Hertz](https://github.com/cloudwego/hertz) 团队 - 高性能、强扩展性的 Go HTTP 框架,用于构建微服务
* 所有参与测试和反馈的用户


================================================
FILE: backend/.gitignore
================================================
*.o
*.a
*.so
_obj
_test
*.[568vq]
[568vq].out
*.cgo1.go
*.cgo2.c
_cgo_defun.c
_cgo_gotypes.go
_cgo_export.*
_testmain.go
*.exe
*.exe~
*.test
*.prof
*.rar
*.zip
*.gz
*.psd
*.bmd
*.cfg
*.pptx
*.log
*nohup.out
*settings.pyc
*.sublime-project
*.sublime-workspace
!.gitkeep
.DS_Store
/.idea
/.vscode
/output
*.local.yml
dumped_hertz_remote_config.json
/oldimpl
/vendor
*gen_test.go
/domain/workflow/internal/nodes/code/script/RestrictedPython/__pycache__/**
.env.dev
.env.local


================================================
FILE: backend/.hz
================================================
// Code generated by hz. DO NOT EDIT.

hz version: v0.9.7
handlerDir: api/handler
modelDir: api/model
routerDir: api/router


================================================
FILE: backend/Dockerfile
================================================
# Stage 1: Builder for Go application
FROM golang:1.24-alpine AS builder

WORKDIR /app

# Install build dependencies for Go
RUN apk add --no-cache git gcc libc-dev

# Copy go.mod and go.sum first to leverage Docker cache
COPY backend/go.mod backend/go.sum ./
RUN go mod download

# Copy the entire backend source code
COPY backend/ ./

# Build the Go application
RUN go build -ldflags="-s -w" -o /app/opencoze main.go


# Stage 2: Final image
FROM alpine:3.22.0

WORKDIR /app

# Install runtime dependencies for Go app and base for Python
# pax-utils for scanelf, python3 for running Python, python3-dev for headers/shared libs
# bind-tools for nslookup etc., file for debugging file types
RUN apk add --no-cache pax-utils python3 python3-dev bind-tools file deno curl

RUN deno run -A jsr:@langchain/pyodide-sandbox -c "print('Hello, World')"

# Install Python build dependencies, create venv, install packages, then remove build deps
RUN apk add --no-cache --virtual .python-build-deps build-base py3-pip git && \
    python3 -m venv --copies --upgrade-deps /app/.venv && \
    # Activate venv and install packages
    . /app/.venv/bin/activate && \
    # If you want to use other third-party libraries, you can install them here.
    pip install urllib3==1.26.16 && \
    pip install --no-cache-dir h11==0.16.0 httpx==0.28.1 pillow==11.2.1 pdfplumber==0.11.7 python-docx==1.2.0 numpy==2.3.1 && \
    # Deactivate (optional, as RUN is a new shell)
    # deactivate && \
    # Remove build dependencies
    apk del .python-build-deps


# Copy the built Go binary from the builder stage
COPY --from=builder /app/opencoze /app/opencoze

# Copy Python application scripts
COPY backend/infra/document/parser/impl/builtin/parse_pdf.py /app/parse_pdf.py
COPY backend/infra/document/parser/impl/builtin/parse_docx.py /app/parse_docx.py
COPY backend/infra/coderunner/impl/script/sandbox.py /app/sandbox.py


# Copy static resources
# COPY backend/static /app/resources/static/
COPY backend/conf /app/resources/conf/
COPY docker/.env.example /app/.env
# COPY docker/.env.ve /app/.env
# COPY docker/cert.pem /app/cert.pem
# COPY docker/key.pem /app/key.pem

# Set PATH to prioritize venv's binaries
ENV PATH="/app/.venv/bin:${PATH}"
# ENV LD_LIBRARY_PATH="/usr/lib:${LD_LIBRARY_PATH}" # Keep commented for now

# Ensure python scripts and venv executables are executable
RUN chmod +x /app/parse_pdf.py /app/parse_docx.py  && \
    find /app/.venv/bin -type f -exec chmod +x {} \;


EXPOSE 8888

ENV SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt

CMD ["/app/opencoze"]


================================================
FILE: backend/README.md
================================================
# Coze Backend API


================================================
FILE: backend/api/handler/coze/agent_run_service.go
================================================
/*
 * Copyright 2025 coze-dev Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package coze

import (
	"context"
	"encoding/json"
	"errors"
	"net/http"

	"github.com/hertz-contrib/sse"

	"github.com/cloudwego/hertz/pkg/app"
	"github.com/cloudwego/hertz/pkg/protocol/consts"

	"github.com/coze-dev/coze-studio/backend/api/model/conversation/run"

	"github.com/coze-dev/coze-studio/backend/application/conversation"
	sseImpl "github.com/coze-dev/coze-studio/backend/infra/sse/impl/sse"
	"github.com/coze-dev/coze-studio/backend/pkg/errorx"
	"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr"
	"github.com/coze-dev/coze-studio/backend/types/errno"
)

// AgentRun .
// @router /api/conversation/chat [POST]
func AgentRun(ctx context.Context, c *app.RequestContext) {
	var err error
	var req run.AgentRunRequest

	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	if checkErr := checkParams(ctx, &req); checkErr != nil {
		invalidParamRequestResponse(c, checkErr.Error())
		return
	}

	sseSender := sseImpl.NewSSESender(sse.NewStream(c))
	c.SetStatusCode(http.StatusOK)
	c.Response.Header.Set("X-Accel-Buffering", "no")

	err = conversation.ConversationSVC.Run(ctx, sseSender, &req)
	if err != nil {
		errData := run.ErrorData{
			Code: errno.ErrConversationAgentRunError,
			Msg:  err.Error(),
		}
		ed, _ := json.Marshal(errData)
		_ = sseSender.Send(ctx, &sse.Event{
			Event: run.RunEventError,
			Data:  ed,
		})
	}
}

func checkParams(_ context.Context, ar *run.AgentRunRequest) error {
	if ar.BotID == 0 {
		return errorx.New(errno.ErrConversationInvalidParamCode, errorx.KV("msg", "bot id is required"))
	}

	if ar.Scene == nil {
		return errorx.New(errno.ErrConversationInvalidParamCode, errorx.KV("msg", "scene is required"))
	}

	if ar.ContentType == nil {
		ar.ContentType = ptr.Of(run.ContentTypeText)
	}
	return nil
}

// ChatV3 .
// @router /v3/chat [POST]
func ChatV3(ctx context.Context, c *app.RequestContext) {
	var err error
	var req run.ChatV3Request

	// Pre-process parameters field: convert JSON object to string if needed
	if err = preprocessChatV3Parameters(c); err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}
	if checkErr := checkParamsV3(ctx, &req); checkErr != nil {
		invalidParamRequestResponse(c, checkErr.Error())
		return
	}

	if req.Stream != nil && !*req.Stream {

		resp, err := conversation.ConversationOpenAPISVC.OpenapiAgentRunSync(ctx, &req)
		if err != nil {
			invalidParamRequestResponse(c, err.Error())
			return
		}
		c.JSON(consts.StatusOK, resp)
		return
	}

	// Streaming mode (default)
	c.SetStatusCode(http.StatusOK)
	c.Response.Header.Set("X-Accel-Buffering", "no")
	sseSender := sseImpl.NewSSESender(sse.NewStream(c))
	err = conversation.ConversationOpenAPISVC.OpenapiAgentRun(ctx, sseSender, &req)
	if err != nil {
		errData := run.ErrorData{
			Code: errno.ErrConversationAgentRunError,
			Msg:  err.Error(),
		}
		ed, _ := json.Marshal(errData)
		_ = sseSender.Send(ctx, &sse.Event{
			Event: run.RunEventError,
			Data:  ed,
		})
	}

}

func checkParamsV3(_ context.Context, ar *run.ChatV3Request) error {
	if ar.BotID == 0 {
		return errorx.New(errno.ErrConversationInvalidParamCode, errorx.KV("msg", "bot id is required"))
	}
	return nil
}

// CancelChatApi .
// @router /v3/chat/cancel [POST]
func CancelChatApi(ctx context.Context, c *app.RequestContext) {
	var err error
	var req run.CancelChatApiRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := conversation.ConversationOpenAPISVC.CancelRun(ctx, &req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// preprocessChatV3Parameters handles the conversion of parameters field from JSON object to string
func preprocessChatV3Parameters(c *app.RequestContext) error {
	// Get the raw request body
	body := c.Request.Body()
	if len(body) == 0 {
		return nil
	}

	// Parse the JSON body
	var requestData map[string]interface{}
	if err := json.Unmarshal(body, &requestData); err != nil {
		return nil // If it's not valid JSON, let BindAndValidate handle the error
	}

	// Check if parameters field exists and is an object
	if parametersValue, exists := requestData["parameters"]; exists {
		// If parameters is already a string, no conversion needed
		if _, isString := parametersValue.(string); isString {
			return errors.New("parameters field should be an object, not a string")
		}

		// If parameters is an object, convert it to JSON string
		if parametersObj, isObject := parametersValue.(map[string]interface{}); isObject {
			parametersJSON, err := json.Marshal(parametersObj)
			if err != nil {
				return err
			}
			requestData["parameters"] = string(parametersJSON)

			// Update the request body with the modified data
			modifiedBody, err := json.Marshal(requestData)
			if err != nil {
				return err
			}

			// Replace the request body
			c.Request.SetBody(modifiedBody)
		}
	}

	return nil
}

// RetrieveChatOpen .
// @router /v3/chat/retrieve [GET]
func RetrieveChatOpen(ctx context.Context, c *app.RequestContext) {
	var err error
	var req run.RetrieveChatOpenRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := conversation.ConversationOpenAPISVC.RetrieveRunRecord(ctx, &req)
	if err != nil {
		c.String(consts.StatusInternalServerError, err.Error())
		return
	}

	c.JSON(consts.StatusOK, resp)
}


================================================
FILE: backend/api/handler/coze/base.go
================================================
/*
 * Copyright 2025 coze-dev Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package coze

import (
	"context"

	"github.com/cloudwego/hertz/pkg/app"

	"github.com/coze-dev/coze-studio/backend/api/internal/httputil"
)

func invalidParamRequestResponse(c *app.RequestContext, errMsg string) {
	httputil.BadRequest(c, errMsg)
}

func internalServerErrorResponse(ctx context.Context, c *app.RequestContext, err error) {
	httputil.InternalError(ctx, c, err)
}


================================================
FILE: backend/api/handler/coze/bot_open_api_service.go
================================================
/*
 * Copyright 2025 coze-dev Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Code generated by hertz generator.

package coze

import (
	"context"
	"fmt"

	openapiauthApp "github.com/coze-dev/coze-studio/backend/application/openauth"
	"github.com/coze-dev/coze-studio/backend/application/plugin"
	"github.com/coze-dev/coze-studio/backend/application/singleagent"
	"github.com/coze-dev/coze-studio/backend/application/upload"
	"github.com/coze-dev/coze-studio/backend/bizpkg/config"

	"github.com/cloudwego/hertz/pkg/app"
	"github.com/cloudwego/hertz/pkg/protocol/consts"

	"github.com/coze-dev/coze-studio/backend/api/model/app/bot_open_api"
)

// OauthAuthorizationCode .
// @router /api/oauth/authorization_code [GET]
func OauthAuthorizationCode(ctx context.Context, c *app.RequestContext) {
	var err error
	var req bot_open_api.OauthAuthorizationCodeReq
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	if req.Code == "" {
		invalidParamRequestResponse(c, "authorization failed, code is required")
		return
	}
	if req.State == "" {
		invalidParamRequestResponse(c, "state is required")
		return
	}

	_, err = plugin.PluginApplicationSVC.OauthAuthorizationCode(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	host, err := config.Base().GetServerHost(ctx)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	redirectURL := fmt.Sprintf("%s/information/auth/success", host)
	c.Redirect(consts.StatusFound, []byte(redirectURL))
	c.Abort()
}

// UploadFileOpen .
// @router /v1/files/upload [POST]
func UploadFileOpen(ctx context.Context, c *app.RequestContext) {
	var err error
	var req bot_open_api.UploadFileOpenRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp := new(bot_open_api.UploadFileOpenResponse)
	resp, err = upload.SVC.UploadFileOpen(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// GetBotOnlineInfo .
// @router /v1/bot/get_online_info [GET]
func GetBotOnlineInfo(ctx context.Context, c *app.RequestContext) {
	var err error
	var req bot_open_api.GetBotOnlineInfoReq
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := singleagent.SingleAgentSVC.GetAgentOnlineInfo(ctx, &req)

	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// ImpersonateCozeUser .
// @router /api/permission_api/coze_web_app/impersonate_coze_user [POST]
func ImpersonateCozeUser(ctx context.Context, c *app.RequestContext) {
	var err error
	var req bot_open_api.ImpersonateCozeUserRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := openapiauthApp.OpenAuthApplication.ImpersonateCozeUserAccessToken(ctx, &req)

	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// OpenGetBotInfo .
// @router /v1/bots/:bot_id [GET]
func OpenGetBotInfo(ctx context.Context, c *app.RequestContext) {
	var err error
	var req bot_open_api.OpenGetBotInfoRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := singleagent.SingleAgentSVC.OpenGetBotInfo(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}


================================================
FILE: backend/api/handler/coze/config_service.go
================================================
// Code generated by hertz generator.

package coze

import (
	"context"
	"fmt"
	"net"
	"net/url"
	"strconv"
	"strings"

	"github.com/cloudwego/eino/schema"
	"github.com/cloudwego/hertz/pkg/app"
	"github.com/cloudwego/hertz/pkg/protocol/consts"

	"github.com/coze-dev/coze-studio/backend/api/model/admin/config"
	bizConf "github.com/coze-dev/coze-studio/backend/bizpkg/config"
	"github.com/coze-dev/coze-studio/backend/bizpkg/config/modelmgr"
	"github.com/coze-dev/coze-studio/backend/bizpkg/llm/modelbuilder"
	"github.com/coze-dev/coze-studio/backend/infra/embedding/impl"
	"github.com/coze-dev/coze-studio/backend/pkg/lang/conv"
	"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr"
	"github.com/coze-dev/coze-studio/backend/pkg/logs"
)

// GetBasicConfiguration .
// @router /api/admin/config/basic/get [GET]
func GetBasicConfiguration(ctx context.Context, c *app.RequestContext) {
	baseConfig, err := bizConf.Base().GetBaseConfig(ctx)
	if err != nil {
		c.String(consts.StatusInternalServerError, err.Error())
		return
	}

	resp := new(config.GetBasicConfigurationResp)
	resp.Configuration = baseConfig

	c.JSON(consts.StatusOK, resp)
}

// SaveBasicConfiguration .
// @router /api/admin/config/basic/save [POST]
func SaveBasicConfiguration(ctx context.Context, c *app.RequestContext) {
	var err error
	var req config.SaveBasicConfigurationReq
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	if req.Configuration == nil {
		invalidParamRequestResponse(c, "Configuration is nil")
		return
	}

	// TODO: check coze api token

	// Validate ServerHost: allow http/https URLs, or hostname:port
	if req.Configuration.ServerHost == "" {
		invalidParamRequestResponse(c, "ServerHost is empty")
		return
	}

	host := req.Configuration.ServerHost
	if strings.Contains(host, "://") {
		u, parseErr := url.Parse(host)
		if parseErr != nil || u.Host == "" || (u.Scheme != "http" && u.Scheme != "https") {
			invalidParamRequestResponse(c, "ServerHost is invalid URL, require http/https")
			return
		}
	} else {
		// Expect hostname:port format
		h, p, splitErr := net.SplitHostPort(host)
		if splitErr != nil || h == "" {
			invalidParamRequestResponse(c, "ServerHost must be hostname:port or http(s) URL")
			return
		}
		port, portErr := strconv.Atoi(p)
		if portErr != nil || port <= 0 || port > 65535 {
			invalidParamRequestResponse(c, "ServerHost port is invalid")
			return
		}
	}

	logs.Infof("server host is valid %s", req.Configuration.ServerHost)

	if req.Configuration.CodeRunnerType.String() == "<UNSET>" {
		invalidParamRequestResponse(c, "CodeRunnerType is invalid")
		return
	}

	err = bizConf.Base().SaveBaseConfig(ctx, req.Configuration)
	if err != nil {
		internalServerErrorResponse(ctx, c, fmt.Errorf("save basic config failed: %w", err))
		return
	}

	resp := new(config.SaveBasicConfigurationResp)
	c.JSON(consts.StatusOK, resp)
}

// GetKnowledgeConfig .
// @router /api/admin/config/knowledge/get [GET]
func GetKnowledgeConfig(ctx context.Context, c *app.RequestContext) {
	knowledgeConfig, err := bizConf.Knowledge().GetKnowledgeConfig(ctx)
	if err != nil {
		internalServerErrorResponse(ctx, c, fmt.Errorf("get knowledge config failed: %w", err))
		return
	}

	resp := new(config.GetKnowledgeConfigResp)
	resp.KnowledgeConfig = knowledgeConfig

	c.JSON(consts.StatusOK, resp)
}

// UpdateKnowledgeConfig .
// @router /api/admin/config/knowledge/save [POST]
func UpdateKnowledgeConfig(ctx context.Context, c *app.RequestContext) {
	var err error
	var req config.UpdateKnowledgeConfigReq
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	if req.KnowledgeConfig == nil {
		invalidParamRequestResponse(c, "KnowledgeConfig is nil")
		return
	}

	if req.KnowledgeConfig.EmbeddingConfig == nil {
		invalidParamRequestResponse(c, "EmbeddingConfig is nil")
		return
	}

	if req.KnowledgeConfig.EmbeddingConfig.Connection == nil {
		invalidParamRequestResponse(c, "Connection is nil")
		return
	}

	if req.KnowledgeConfig.EmbeddingConfig.Connection.EmbeddingInfo == nil {
		invalidParamRequestResponse(c, "EmbeddingInfo is nil")
		return
	}

	embedding, err := impl.GetEmbedding(ctx, req.KnowledgeConfig.EmbeddingConfig)
	if err != nil {
		invalidParamRequestResponse(c, fmt.Sprintf("get embedding failed: %v", err))
		return
	}

	if req.KnowledgeConfig.EmbeddingConfig.Connection.EmbeddingInfo.Dims <= 0 {
		req.KnowledgeConfig.EmbeddingConfig.Connection.EmbeddingInfo.Dims = int32(embedding.Dimensions())

		embedding, err = impl.GetEmbedding(ctx, req.KnowledgeConfig.EmbeddingConfig)
		if err != nil {
			invalidParamRequestResponse(c, fmt.Sprintf("get embedding failed: %v", err))
			return
		}
	}

	denseEmbeddings, err := embedding.EmbedStrings(ctx, []string{"test"})
	if err != nil {
		invalidParamRequestResponse(c, fmt.Sprintf("embed test string failed: %v", err))
		return
	}

	if len(denseEmbeddings) == 0 {
		invalidParamRequestResponse(c, fmt.Sprintf("embed test string failed: %v", err))
		return
	}

	logs.CtxDebugf(ctx, "embed test string result: %d, expect %d",
		len(denseEmbeddings[0]), req.KnowledgeConfig.EmbeddingConfig.Connection.EmbeddingInfo.Dims)
	if len(denseEmbeddings[0]) != int(req.KnowledgeConfig.EmbeddingConfig.Connection.EmbeddingInfo.Dims) {
		invalidParamRequestResponse(c, fmt.Sprintf("embed test string failed: dims not match, expect %d, got %d",
			req.KnowledgeConfig.EmbeddingConfig.Connection.EmbeddingInfo.Dims, len(denseEmbeddings[0])))
		return
	}

	err = bizConf.Knowledge().SaveKnowledgeConfig(ctx, req.KnowledgeConfig)
	if err != nil {
		internalServerErrorResponse(ctx, c, fmt.Errorf("save knowledge config failed: %w", err))
		return
	}

	resp := new(config.UpdateKnowledgeConfigResp)

	c.JSON(consts.StatusOK, resp)
}

// GetModelList .
// @router /api/admin/config/model/list [GET]
func GetModelList(ctx context.Context, c *app.RequestContext) {
	var err error
	var req config.GetModelListReq
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	modelList, err := bizConf.ModelConf().GetProviderModelList(ctx)
	if err != nil {
		internalServerErrorResponse(ctx, c, fmt.Errorf("get model list failed: %w", err))
		return
	}

	resp := new(config.GetModelListResp)
	resp.ProviderModelList = modelList

	c.JSON(consts.StatusOK, resp)
}

// CreateModel .
// @router /api/admin/config/model/create [POST]
func CreateModel(ctx context.Context, c *app.RequestContext) {
	var err error
	var req config.CreateModelReq
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	modelBuilder, err := modelbuilder.NewModelBuilder(req.ModelClass, &config.Model{
		EnableBase64URL: req.EnableBase64URL,
		Connection:      req.Connection,
	})
	if err != nil {
		invalidParamRequestResponse(c, fmt.Sprintf("create model builder failed: %v", err))
		return
	}

	logs.CtxDebugf(ctx, "create model req: %s, conn: %s", conv.DebugJsonToStr(req), conv.DebugJsonToStr(req.Connection.BaseConnInfo))

	chatModel, err := modelBuilder.Build(ctx, &modelbuilder.LLMParams{EnableThinking: ptr.Of(false)})
	if err != nil {
		invalidParamRequestResponse(c, fmt.Sprintf("build model failed: %v", err))
		return
	}

	respMsgs, err := chatModel.Generate(ctx, []*schema.Message{
		schema.SystemMessage("Just answer with a number, no explanation."),
		schema.UserMessage("1+1=?"),
	})
	if err != nil {
		invalidParamRequestResponse(c, fmt.Sprintf("generate model failed: %v", err))
		return
	}

	logs.CtxDebugf(ctx, "chatModel.Generate resp : %s", conv.DebugJsonToStr(respMsgs))

	id, err := bizConf.ModelConf().CreateModel(ctx, req.ModelClass, req.ModelName, req.Connection, &modelmgr.ModelExtra{
		EnableBase64URL: req.EnableBase64URL,
	})
	if err != nil {
		invalidParamRequestResponse(c, fmt.Sprintf("create model failed: %v", err))
		return
	}

	resp := new(config.CreateModelResp)
	resp.ID = id

	c.JSON(consts.StatusOK, resp)
}

// DeleteModel .
// @router /api/admin/config/model/delete [POST]
func DeleteModel(ctx context.Context, c *app.RequestContext) {
	var err error
	var req config.DeleteModelReq
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	err = bizConf.ModelConf().DeleteModel(ctx, req.ID)
	if err != nil {
		internalServerErrorResponse(ctx, c, fmt.Errorf("delete model failed: %w", err))
		return
	}

	resp := new(config.DeleteModelResp)

	c.JSON(consts.StatusOK, resp)
}


================================================
FILE: backend/api/handler/coze/conversation_service.go
================================================
/*
 * Copyright 2025 coze-dev Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Code generated by hertz generator.

package coze

import (
	"context"

	"github.com/cloudwego/hertz/pkg/app"
	"github.com/cloudwego/hertz/pkg/protocol/consts"

	"github.com/coze-dev/coze-studio/backend/api/model/conversation/conversation"
	application "github.com/coze-dev/coze-studio/backend/application/conversation"
	"github.com/coze-dev/coze-studio/backend/pkg/errorx"
	"github.com/coze-dev/coze-studio/backend/types/errno"
)

// ClearConversationHistory .
// @router /api/conversation/clear_message [POST]
func ClearConversationHistory(ctx context.Context, c *app.RequestContext) {
	var err error
	var req conversation.ClearConversationHistoryRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	if checkErr := checkCCHParams(ctx, &req); checkErr != nil {
		invalidParamRequestResponse(c, checkErr.Error())
		return
	}

	resp, err := application.ConversationSVC.ClearHistory(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

func checkCCHParams(_ context.Context, req *conversation.ClearConversationHistoryRequest) error {
	if req.ConversationID <= 0 {
		return errorx.New(errno.ErrConversationInvalidParamCode, errorx.KV("msg", "invalid conversation id"))
	}

	if req.Scene == nil {
		return errorx.New(errno.ErrConversationInvalidParamCode, errorx.KV("msg", "scene is required"))
	}

	return nil
}

// ClearConversationCtx .
// @router /api/conversation/create_section [POST]
func ClearConversationCtx(ctx context.Context, c *app.RequestContext) {
	resp := new(conversation.ClearConversationCtxResponse)
	var err error
	var req conversation.ClearConversationCtxRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	if checkErr := checkCCCParams(ctx, &req); checkErr != nil {
		invalidParamRequestResponse(c, checkErr.Error())
		return
	}

	newSectionID, err := application.ConversationSVC.CreateSection(ctx, req.ConversationID)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	resp.NewSectionID = newSectionID

	c.JSON(consts.StatusOK, resp)
}

func checkCCCParams(ctx context.Context, req *conversation.ClearConversationCtxRequest) error {
	if req.ConversationID <= 0 {
		return errorx.New(errno.ErrConversationInvalidParamCode, errorx.KV("msg", "invalid conversation id"))
	}

	if req.Scene == nil {
		return errorx.New(errno.ErrConversationInvalidParamCode, errorx.KV("msg", "scene is required"))
	}
	return nil
}

// CreateConversation .
// @router /api/conversation/create [POST]
func CreateConversation(ctx context.Context, c *app.RequestContext) {
	var err error
	var req conversation.CreateConversationRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := application.ConversationSVC.CreateConversation(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// ClearConversationApi .
// @router /v1/conversations/:conversation_id/clear [POST]
func ClearConversationApi(ctx context.Context, c *app.RequestContext) {
	var err error
	var req conversation.ClearConversationApiRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp := new(conversation.ClearConversationApiResponse)

	sectionID, err := application.ConversationSVC.CreateSection(ctx, req.ConversationID)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	resp.Data = &conversation.Section{
		ID:             sectionID,
		ConversationID: req.ConversationID,
	}

	c.JSON(consts.StatusOK, resp)
}

// ListConversationsApi .
// @router /v1/conversations [GET]
func ListConversationsApi(ctx context.Context, c *app.RequestContext) {
	var err error
	var req conversation.ListConversationsApiRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := application.ConversationSVC.ListConversation(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// UpdateConversationApi .
// @router /v1/conversations/:conversation_id [PUT]
func UpdateConversationApi(ctx context.Context, c *app.RequestContext) {
	var err error
	var req conversation.UpdateConversationApiRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := application.ConversationSVC.UpdateConversation(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// DeleteConversationApi .
// @router /v1/conversations/:conversation_id [DELETE]
func DeleteConversationApi(ctx context.Context, c *app.RequestContext) {
	var err error
	var req conversation.DeleteConversationApiRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}
	resp, err := application.ConversationSVC.DeleteConversation(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// RetrieveConversationApi .
// @router /v1/conversation/retrieve [GET]
func RetrieveConversationApi(ctx context.Context, c *app.RequestContext) {
	var err error
	var req conversation.RetrieveConversationApiRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := application.ConversationSVC.RetrieveConversation(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}


================================================
FILE: backend/api/handler/coze/database_service.go
================================================
/*
 * Copyright 2025 coze-dev Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Code generated by hertz generator.

package coze

import (
	"context"

	"github.com/cloudwego/hertz/pkg/app"
	"github.com/cloudwego/hertz/pkg/protocol/consts"

	"github.com/coze-dev/coze-studio/backend/api/model/data/database/table"
	"github.com/coze-dev/coze-studio/backend/api/model/data/knowledge"
	"github.com/coze-dev/coze-studio/backend/application/memory"
	"github.com/coze-dev/coze-studio/backend/application/singleagent"
)

// ListDatabase .
// @router /api/memory/database/list [POST]
func ListDatabase(ctx context.Context, c *app.RequestContext) {
	var err error
	var req table.ListDatabaseRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := memory.DatabaseApplicationSVC.ListDatabase(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// GetDatabaseByID .
// @router /api/memory/database/get_by_id [POST]
func GetDatabaseByID(ctx context.Context, c *app.RequestContext) {
	var err error
	var req table.SingleDatabaseRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := memory.DatabaseApplicationSVC.GetDatabaseByID(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// AddDatabase .
// @router /api/memory/database/add [POST]
func AddDatabase(ctx context.Context, c *app.RequestContext) {
	var err error
	var req table.AddDatabaseRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := memory.DatabaseApplicationSVC.AddDatabase(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// UpdateDatabase .
// @router /api/memory/database/update [POST]
func UpdateDatabase(ctx context.Context, c *app.RequestContext) {
	var err error
	var req table.UpdateDatabaseRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := memory.DatabaseApplicationSVC.UpdateDatabase(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// DeleteDatabase .
// @router /api/memory/database/delete [POST]
func DeleteDatabase(ctx context.Context, c *app.RequestContext) {
	var err error
	var req table.DeleteDatabaseRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := memory.DatabaseApplicationSVC.DeleteDatabase(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// BindDatabase .
// @router /api/memory/database/bind_to_bot [POST]
func BindDatabase(ctx context.Context, c *app.RequestContext) {
	var err error
	var req table.BindDatabaseToBotRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := singleagent.SingleAgentSVC.BindDatabase(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// UnBindDatabase .
// @router /api/memory/database/unbind_to_bot [POST]
func UnBindDatabase(ctx context.Context, c *app.RequestContext) {
	var err error
	var req table.BindDatabaseToBotRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := singleagent.SingleAgentSVC.UnBindDatabase(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// ListDatabaseRecords .
// @router /api/memory/database/list_records [POST]
func ListDatabaseRecords(ctx context.Context, c *app.RequestContext) {
	var err error
	var req table.ListDatabaseRecordsRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := memory.DatabaseApplicationSVC.ListDatabaseRecords(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// UpdateDatabaseRecords .
// @router /api/memory/database/update_records [POST]
func UpdateDatabaseRecords(ctx context.Context, c *app.RequestContext) {
	var err error
	var req table.UpdateDatabaseRecordsRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := memory.DatabaseApplicationSVC.UpdateDatabaseRecords(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// GetOnlineDatabaseId .
// @router /api/memory/database/get_online_database_id [POST]
func GetOnlineDatabaseId(ctx context.Context, c *app.RequestContext) {
	var err error
	var req table.GetOnlineDatabaseIdRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := memory.DatabaseApplicationSVC.GetOnlineDatabaseId(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// ResetBotTable .
// @router /api/memory/database/table/reset [POST]
func ResetBotTable(ctx context.Context, c *app.RequestContext) {
	var err error
	var req table.ResetBotTableRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := memory.DatabaseApplicationSVC.ResetBotTable(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// GetDatabaseTemplate .
// @router /api/memory/database/get_template [POST]
func GetDatabaseTemplate(ctx context.Context, c *app.RequestContext) {
	var err error
	var req table.GetDatabaseTemplateRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := memory.DatabaseApplicationSVC.GetDatabaseTemplate(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// GetConnectorName .
// @router /api/memory/database/get_connector_name [POST]
func GetConnectorName(ctx context.Context, c *app.RequestContext) {
	var err error
	var req table.GetSpaceConnectorListRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := memory.DatabaseApplicationSVC.GetConnectorName(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// GetBotDatabase .
// @router /api/memory/database/table/list_new [POST]
func GetBotDatabase(ctx context.Context, c *app.RequestContext) {
	var err error
	var req table.GetBotTableRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := memory.DatabaseApplicationSVC.GetBotDatabase(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// UpdateDatabaseBotSwitch .
// @router /api/memory/database/update_bot_switch [POST]
func UpdateDatabaseBotSwitch(ctx context.Context, c *app.RequestContext) {
	var err error
	var req table.UpdateDatabaseBotSwitchRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := singleagent.SingleAgentSVC.UpdatePromptDisable(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// GetDatabaseTableSchema .
// @router /api/memory/table_schema/get [POST]
func GetDatabaseTableSchema(ctx context.Context, c *app.RequestContext) {
	var err error
	var req table.GetTableSchemaRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	var resp *knowledge.GetTableSchemaInfoResponse
	resp, err = memory.DatabaseApplicationSVC.GetDatabaseTableSchema(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// SubmitDatabaseInsertTask .
// @router /api/memory/table_file/submit [POST]
func SubmitDatabaseInsertTask(ctx context.Context, c *app.RequestContext) {
	var err error
	var req table.SubmitDatabaseInsertRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := memory.DatabaseApplicationSVC.SubmitDatabaseInsertTask(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// DatabaseFileProgressData .
// @router /api/memory/table_file/get_progress [POST]
func DatabaseFileProgressData(ctx context.Context, c *app.RequestContext) {
	var err error
	var req table.GetDatabaseFileProgressRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := memory.DatabaseApplicationSVC.DatabaseFileProgressData(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// ValidateDatabaseTableSchema .
// @router /api/memory/table_schema/validate [POST]
func ValidateDatabaseTableSchema(ctx context.Context, c *app.RequestContext) {
	var err error
	var req table.ValidateTableSchemaRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := memory.DatabaseApplicationSVC.ValidateDatabaseTableSchema(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}


================================================
FILE: backend/api/handler/coze/developer_api_service.go
================================================
/*
 * Copyright 2025 coze-dev Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Code generated by hertz generator.

package coze

import (
	"context"
	"crypto/sha256"
	"encoding/base64"
	"fmt"
	"math/rand"
	"time"
	"unicode/utf8"

	"github.com/cloudwego/hertz/pkg/app"
	"github.com/cloudwego/hertz/pkg/protocol/consts"

	"github.com/coze-dev/coze-studio/backend/api/model/app/developer_api"
	"github.com/coze-dev/coze-studio/backend/application/base/ctxutil"
	"github.com/coze-dev/coze-studio/backend/application/modelmgr"
	"github.com/coze-dev/coze-studio/backend/application/singleagent"
	application "github.com/coze-dev/coze-studio/backend/application/singleagent"
	"github.com/coze-dev/coze-studio/backend/application/upload"
	"github.com/coze-dev/coze-studio/backend/application/user"
	"github.com/coze-dev/coze-studio/backend/pkg/errorx"
	"github.com/coze-dev/coze-studio/backend/pkg/lang/ptr"
	"github.com/coze-dev/coze-studio/backend/types/errno"
)

// DraftBotCreate .
// @router /api/draftbot/create [POST]
func DraftBotCreate(ctx context.Context, c *app.RequestContext) {
	var err error
	var req developer_api.DraftBotCreateRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	if req.SpaceID <= 0 {
		invalidParamRequestResponse(c, "space id is not set")
		return
	}

	if req.Name == "" {
		invalidParamRequestResponse(c, "name is nil")
		return
	}

	if req.IconURI == "" {
		invalidParamRequestResponse(c, "icon uri is nil")
		return
	}

	if utf8.RuneCountInString(req.Name) > 50 {
		invalidParamRequestResponse(c, "name is too long")
		return
	}

	if utf8.RuneCountInString(req.Description) > 2000 {
		invalidParamRequestResponse(c, "description is too long")
		return
	}

	resp, err := application.SingleAgentSVC.CreateSingleAgentDraft(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// DeleteDraftBot .
// @router /api/draftbot/delete [POST]
func DeleteDraftBot(ctx context.Context, c *app.RequestContext) {
	var err error
	var req developer_api.DeleteDraftBotRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := application.SingleAgentSVC.DeleteAgentDraft(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// UpdateDraftBotDisplayInfo .
// @router /api/draftbot/update_display_info [POST]
func UpdateDraftBotDisplayInfo(ctx context.Context, c *app.RequestContext) {
	var err error
	var req developer_api.UpdateDraftBotDisplayInfoRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp, err := application.SingleAgentSVC.UpdateAgentDraftDisplayInfo(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// DuplicateDraftBot .
// @router /api/draftbot/duplicate [POST]
func DuplicateDraftBot(ctx context.Context, c *app.RequestContext) {
	var err error
	var req developer_api.DuplicateDraftBotRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := application.SingleAgentSVC.DuplicateDraftBot(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// GetDraftBotDisplayInfo .
// @router /api/draftbot/get_display_info [POST]
func GetDraftBotDisplayInfo(ctx context.Context, c *app.RequestContext) {
	var err error
	var req developer_api.GetDraftBotDisplayInfoRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp, err := application.SingleAgentSVC.GetAgentDraftDisplayInfo(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// PublishDraftBot .
// @router /api/draftbot/publish [POST]
func PublishDraftBot(ctx context.Context, c *app.RequestContext) {
	var err error
	var req developer_api.PublishDraftBotRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	if len(req.Connectors) == 0 {
		invalidParamRequestResponse(c, "connectors is nil")
		return
	}

	resp, err := application.SingleAgentSVC.PublishAgent(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// ListDraftBotHistory .
// @router /api/draftbot/list_draft_history [POST]
func ListDraftBotHistory(ctx context.Context, c *app.RequestContext) {
	var err error
	var req developer_api.ListDraftBotHistoryRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	if req.BotID == 0 {
		invalidParamRequestResponse(c, "bot id is not set")
		return
	}

	if req.PageIndex <= 0 {
		req.PageIndex = 1
	}

	if req.PageSize <= 0 {
		req.PageSize = 30
	}

	resp, err := application.SingleAgentSVC.ListAgentPublishHistory(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// GetIcon .
// @router /api/developer/get_icon [POST]
func GetIcon(ctx context.Context, c *app.RequestContext) {
	var err error
	var req developer_api.GetIconRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := upload.SVC.GetIcon(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// GetUploadAuthToken .
// @router /api/playground/upload/auth_token [POST]
func GetUploadAuthToken(ctx context.Context, c *app.RequestContext) {
	var err error
	var req developer_api.GetUploadAuthTokenRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp, err := application.SingleAgentSVC.GetUploadAuthToken(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

func createSecret(uid int64, fileType string) string {
	num := 10
	input := fmt.Sprintf("upload_%d_Ma*9)fhi_%d_gou_%s_rand_%d", uid, time.Now().Unix(), fileType, rand.Intn(100000))
	// Do md5, take the first 20,//mapIntToBase62 map the number to Base62
	hash := sha256.Sum256([]byte(fmt.Sprintf("%s", input)))
	hashString := base64.StdEncoding.EncodeToString(hash[:])
	if len(hashString) > num {
		hashString = hashString[:num]
	}

	result := ""
	for _, char := range hashString {
		index := int(char) % 62
		result += string(baseWord[index])
	}
	return result
}

// UploadFile .
// @router /api/bot/upload_file [POST]
func UploadFile(ctx context.Context, c *app.RequestContext) {
	var err error
	var req developer_api.UploadFileRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(developer_api.UploadFileResponse)
	fileContent, err := base64.StdEncoding.DecodeString(req.Data)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}
	userID := ctxutil.GetUIDFromCtx(ctx)
	if userID == nil {
		internalServerErrorResponse(ctx, c, errorx.New(errno.ErrUploadPermissionCode, errorx.KV("msg", "session required")))
		return
	}
	secret := createSecret(ptr.From(userID), req.FileHead.FileType)
	fileName := fmt.Sprintf("%d_%d_%s.%s", ptr.From(userID), time.Now().UnixNano(), secret, req.FileHead.FileType)
	objectName := fmt.Sprintf("%s/%s", req.FileHead.BizType.String(), fileName)
	resp, err = upload.SVC.UploadFile(ctx, fileContent, objectName)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

const baseWord = "1Aa2Bb3Cc4Dd5Ee6Ff7Gg8Hh9Ii0JjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"

// GetOnboarding .
// @router /api/playground/get_onboarding [POST]
func GetOnboarding(ctx context.Context, c *app.RequestContext) {
	var err error
	var req developer_api.GetOnboardingRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(developer_api.GetOnboardingResponse)

	c.JSON(consts.StatusOK, resp)
}

// PublishConnectorList .
// @router /api/draftbot/publish/connector/list [POST]
func PublishConnectorList(ctx context.Context, c *app.RequestContext) {
	var err error
	var req developer_api.PublishConnectorListRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	if req.BotID == 0 {
		invalidParamRequestResponse(c, "bot id is not set")
		return
	}

	resp, err := singleagent.SingleAgentSVC.GetPublishConnectorList(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// CheckDraftBotCommit .
// @router /api/draftbot/commit_check [POST]
func CheckDraftBotCommit(ctx context.Context, c *app.RequestContext) {
	var err error
	var req developer_api.CheckDraftBotCommitRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return

	}
	resp := new(developer_api.CheckDraftBotCommitResponse)
	c.JSON(consts.StatusOK, resp)
}

// UpdateUserProfileCheck .
// @router /api/user/update_profile_check [POST]
func UpdateUserProfileCheck(ctx context.Context, c *app.RequestContext) {
	var err error
	var req developer_api.UpdateUserProfileCheckRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp, err := user.UserApplicationSVC.UpdateUserProfileCheck(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// GetTypeList .
// @router /api/bot/get_type_list [POST]
func GetTypeList(ctx context.Context, c *app.RequestContext) {
	var err error
	var req developer_api.GetTypeListRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp, err := modelmgr.ModelmgrApplicationSVC.GetModelList(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}


================================================
FILE: backend/api/handler/coze/intelligence_service.go
================================================
/*
 * Copyright 2025 coze-dev Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Code generated by hertz generator.

package coze

import (
	"context"
	"fmt"

	"github.com/cloudwego/hertz/pkg/app"
	"github.com/cloudwego/hertz/pkg/protocol/consts"

	"github.com/coze-dev/coze-studio/backend/api/model/app/intelligence"
	"github.com/coze-dev/coze-studio/backend/api/model/app/intelligence/common"
	project "github.com/coze-dev/coze-studio/backend/api/model/app/intelligence/project"
	publish "github.com/coze-dev/coze-studio/backend/api/model/app/intelligence/publish"
	task "github.com/coze-dev/coze-studio/backend/api/model/app/intelligence/task"
	appApplication "github.com/coze-dev/coze-studio/backend/application/app"
	"github.com/coze-dev/coze-studio/backend/application/search"
)

// GetDraftIntelligenceList .
// @router /api/intelligence_api/search/get_draft_intelligence_list [POST]
func GetDraftIntelligenceList(ctx context.Context, c *app.RequestContext) {
	var err error
	var req intelligence.GetDraftIntelligenceListRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := search.SearchSVC.GetDraftIntelligenceList(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// GetDraftIntelligenceInfo .
// @router /api/intelligence_api/search/get_draft_intelligence_info [POST]
func GetDraftIntelligenceInfo(ctx context.Context, c *app.RequestContext) {
	var err error
	var req intelligence.GetDraftIntelligenceInfoRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	if req.IntelligenceID <= 0 {
		invalidParamRequestResponse(c, "invalid intelligence id")
		return
	}
	if req.IntelligenceType != common.IntelligenceType_Project {
		invalidParamRequestResponse(c, fmt.Sprintf("invalid intelligence type '%d'", req.IntelligenceType))
		return
	}

	resp, err := appApplication.APPApplicationSVC.GetDraftIntelligenceInfo(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// GetUserRecentlyEditIntelligence .
// @router /api/intelligence_api/search/get_recently_edit_intelligence [POST]
func GetUserRecentlyEditIntelligence(ctx context.Context, c *app.RequestContext) {
	var err error
	var req intelligence.GetUserRecentlyEditIntelligenceRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(intelligence.GetUserRecentlyEditIntelligenceResponse)

	c.JSON(consts.StatusOK, resp)
}

// DraftProjectCreate .
// @router /api/intelligence_api/draft_project/create [POST]
func DraftProjectCreate(ctx context.Context, c *app.RequestContext) {
	var err error
	var req project.DraftProjectCreateRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	if req.SpaceID <= 0 {
		invalidParamRequestResponse(c, "invalid space id")
		return
	}
	if req.Name == "" || len(req.Name) > 256 {
		invalidParamRequestResponse(c, "invalid name")
		return
	}
	if req.IconURI == "" || len(req.IconURI) > 512 {
		invalidParamRequestResponse(c, "invalid icon uri")
		return
	}

	resp, err := appApplication.APPApplicationSVC.DraftProjectCreate(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// DraftProjectUpdate .
// @router /api/intelligence_api/draft_project/update [POST]
func DraftProjectUpdate(ctx context.Context, c *app.RequestContext) {
	var err error
	var req project.DraftProjectUpdateRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	if req.ProjectID <= 0 {
		invalidParamRequestResponse(c, "invalid project id")
		return
	}
	if req.Name != nil && (len(*req.Name) == 0 || len(*req.Name) > 256) {
		invalidParamRequestResponse(c, "invalid name")
		return
	}
	if req.IconURI != nil && (len(*req.IconURI) == 0 || len(*req.IconURI) > 512) {
		invalidParamRequestResponse(c, "invalid icon uri")
		return
	}

	resp, err := appApplication.APPApplicationSVC.DraftProjectUpdate(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// DraftProjectDelete .
// @router /api/intelligence_api/draft_project/delete [POST]
func DraftProjectDelete(ctx context.Context, c *app.RequestContext) {
	var err error
	var req project.DraftProjectDeleteRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	if req.ProjectID <= 0 {
		invalidParamRequestResponse(c, "invalid project id")
		return
	}

	resp, err := appApplication.APPApplicationSVC.DraftProjectDelete(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// GetProjectPublishedConnector .
// @router /api/intelligence_api/publish/get_published_connector [POST]
func GetProjectPublishedConnector(ctx context.Context, c *app.RequestContext) {
	var err error
	var req publish.GetProjectPublishedConnectorRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(publish.GetProjectPublishedConnectorResponse)

	c.JSON(consts.StatusOK, resp)
}

// CheckProjectVersionNumber .
// @router /api/intelligence_api/publish/check_version_number [POST]
func CheckProjectVersionNumber(ctx context.Context, c *app.RequestContext) {
	var err error
	var req publish.CheckProjectVersionNumberRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	if req.ProjectID <= 0 {
		invalidParamRequestResponse(c, "invalid project id")
		return
	}
	if req.VersionNumber == "" {
		invalidParamRequestResponse(c, "invalid version number")
		return
	}

	resp, err := appApplication.APPApplicationSVC.CheckProjectVersionNumber(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// PublishProject .
// @router /api/intelligence_api/publish/publish_project [POST]
func PublishProject(ctx context.Context, c *app.RequestContext) {
	var err error
	var req publish.PublishProjectRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	if req.ProjectID <= 0 {
		invalidParamRequestResponse(c, "invalid project id")
		return
	}
	if req.VersionNumber == "" {
		invalidParamRequestResponse(c, "invalid version number")
		return
	}

	resp, err := appApplication.APPApplicationSVC.PublishAPP(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// GetPublishRecordList .
// @router /api/intelligence_api/publish/publish_record_list [POST]
func GetPublishRecordList(ctx context.Context, c *app.RequestContext) {
	var err error
	var req publish.GetPublishRecordListRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	if req.ProjectID <= 0 {
		invalidParamRequestResponse(c, "invalid project id")
		return
	}

	resp, err := appApplication.APPApplicationSVC.GetPublishRecordList(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// ProjectPublishConnectorList .
// @router /api/intelligence_api/publish/connector_list [POST]
func ProjectPublishConnectorList(ctx context.Context, c *app.RequestContext) {
	var err error
	var req publish.PublishConnectorListRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	if req.ProjectID <= 0 {
		invalidParamRequestResponse(c, "invalid project id")
		return
	}

	resp, err := appApplication.APPApplicationSVC.ProjectPublishConnectorList(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// GetPublishRecordDetail .
// @router /api/intelligence_api/publish/publish_record_detail [POST]
func GetPublishRecordDetail(ctx context.Context, c *app.RequestContext) {
	var err error
	var req publish.GetPublishRecordDetailRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	if req.ProjectID <= 0 {
		invalidParamRequestResponse(c, "invalid project id")
		return
	}
	if req.PublishRecordID != nil && *req.PublishRecordID <= 0 {
		invalidParamRequestResponse(c, "invalid publish record id")
		return
	}

	resp, err := appApplication.APPApplicationSVC.GetPublishRecordDetail(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// DraftProjectInnerTaskList .
// @router /api/intelligence_api/draft_project/inner_task_list [POST]
func DraftProjectInnerTaskList(ctx context.Context, c *app.RequestContext) {
	var err error
	var req task.DraftProjectInnerTaskListRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	if req.ProjectID <= 0 {
		invalidParamRequestResponse(c, "invalid project id")
		return
	}

	resp, err := appApplication.APPApplicationSVC.DraftProjectInnerTaskList(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// DraftProjectCopy .
// @router /api/intelligence_api/draft_project/copy [POST]
func DraftProjectCopy(ctx context.Context, c *app.RequestContext) {
	var err error
	var req project.DraftProjectCopyRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	if req.ProjectID <= 0 {
		invalidParamRequestResponse(c, "invalid project id")
		return
	}
	if req.ToSpaceID <= 0 {
		invalidParamRequestResponse(c, "invalid to space id")
		return
	}
	if req.Name == "" || len(req.Name) > 256 {
		invalidParamRequestResponse(c, "invalid name")
		return
	}
	if req.IconURI == "" || len(req.IconURI) > 512 {
		invalidParamRequestResponse(c, "invalid icon uri")
		return
	}

	resp, err := appApplication.APPApplicationSVC.DraftProjectCopy(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// GetOnlineAppData .
// @router /v1/apps/:app_id [GET]
func GetOnlineAppData(ctx context.Context, c *app.RequestContext) {
	var err error
	var req project.GetOnlineAppDataRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp, err := appApplication.APPApplicationSVC.GetOnlineAppData(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}


================================================
FILE: backend/api/handler/coze/knowledge_service.go
================================================
/*
 * Copyright 2025 coze-dev Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Code generated by hertz generator.

package coze

import (
	"context"

	"github.com/cloudwego/hertz/pkg/app"
	"github.com/cloudwego/hertz/pkg/protocol/consts"

	dataset "github.com/coze-dev/coze-studio/backend/api/model/data/knowledge"
	"github.com/coze-dev/coze-studio/backend/application/knowledge"
	application "github.com/coze-dev/coze-studio/backend/application/knowledge"
	"github.com/coze-dev/coze-studio/backend/application/memory"
	"github.com/coze-dev/coze-studio/backend/application/upload"
)

// CreateDataset .
// @router /api/knowledge/create [POST]
func CreateDataset(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.CreateDatasetRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}
	resp := new(dataset.CreateDatasetResponse)
	resp, err = application.KnowledgeSVC.CreateKnowledge(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// DatasetDetail .
// @router /api/knowledge/detail [POST]
func DatasetDetail(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.DatasetDetailRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}
	resp := new(dataset.DatasetDetailResponse)
	resp, err = application.KnowledgeSVC.DatasetDetail(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// ListDataset .
// @router /api/knowledge/list [POST]
func ListDataset(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.ListDatasetRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(dataset.ListDatasetResponse)
	resp, err = application.KnowledgeSVC.ListKnowledge(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// DeleteDataset .
// @router /api/knowledge/delete [POST]
func DeleteDataset(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.DeleteDatasetRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(dataset.DeleteDatasetResponse)
	resp, err = application.KnowledgeSVC.DeleteKnowledge(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// UpdateDataset .
// @router /api/knowledge/update [POST]
func UpdateDataset(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.UpdateDatasetRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(dataset.UpdateDatasetResponse)
	resp, err = application.KnowledgeSVC.UpdateKnowledge(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// CreateDocument .
// @router /api/knowledge/document/create [POST]
func CreateDocument(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.CreateDocumentRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(dataset.CreateDocumentResponse)
	resp, err = application.KnowledgeSVC.CreateDocument(ctx, &req, false)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// ListDocument .
// @router /api/knowledge/document/list [POST]
func ListDocument(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.ListDocumentRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(dataset.ListDocumentResponse)
	resp, err = application.KnowledgeSVC.ListDocument(ctx, &req, false)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// DeleteDocument .
// @router /api/knowledge/document/delete [POST]
func DeleteDocument(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.DeleteDocumentRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(dataset.DeleteDocumentResponse)
	resp, err = application.KnowledgeSVC.DeleteDocument(ctx, &req, false)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// UpdateDocument .
// @router /api/knowledge/document/update [POST]
func UpdateDocument(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.UpdateDocumentRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(dataset.UpdateDocumentResponse)
	resp, err = application.KnowledgeSVC.UpdateDocument(ctx, &req, false)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// GetDocumentProgress .
// @router /api/knowledge/document/progress/get [POST]
func GetDocumentProgress(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.GetDocumentProgressRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(dataset.GetDocumentProgressResponse)
	resp, err = application.KnowledgeSVC.GetDocumentProgress(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// Resegment .
// @router /api/knowledge/document/resegment [POST]
func Resegment(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.ResegmentRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(dataset.ResegmentResponse)
	resp, err = application.KnowledgeSVC.Resegment(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// UpdatePhotoCaption .
// @router /api/knowledge/photo/caption [POST]
func UpdatePhotoCaption(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.UpdatePhotoCaptionRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(dataset.UpdatePhotoCaptionResponse)
	resp, err = application.KnowledgeSVC.UpdatePhotoCaption(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// ListPhoto .
// @router /api/knowledge/photo/list [POST]
func ListPhoto(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.ListPhotoRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(dataset.ListPhotoResponse)
	resp, err = application.KnowledgeSVC.ListPhoto(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// PhotoDetail .
// @router /api/knowledge/photo/detail [POST]
func PhotoDetail(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.PhotoDetailRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(dataset.PhotoDetailResponse)
	resp, err = application.KnowledgeSVC.PhotoDetail(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// GetTableSchema .
// @router /api/knowledge/table_schema/get [POST]
func GetTableSchema(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.GetTableSchemaRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(dataset.GetTableSchemaResponse)
	resp, err = application.KnowledgeSVC.GetTableSchema(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// ValidateTableSchema .
// @router /api/knowledge/table_schema/validate [POST]
func ValidateTableSchema(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.ValidateTableSchemaRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(dataset.ValidateTableSchemaResponse)
	resp, err = application.KnowledgeSVC.ValidateTableSchema(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// DeleteSlice .
// @router /api/knowledge/slice/delete [POST]
func DeleteSlice(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.DeleteSliceRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(dataset.DeleteSliceResponse)
	resp, err = application.KnowledgeSVC.DeleteSlice(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// CreateSlice .
// @router /api/knowledge/slice/create [POST]
func CreateSlice(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.CreateSliceRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(dataset.CreateSliceResponse)
	resp, err = application.KnowledgeSVC.CreateSlice(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// UpdateSlice .
// @router /api/knowledge/slice/update [POST]
func UpdateSlice(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.UpdateSliceRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(dataset.UpdateSliceResponse)
	resp, err = application.KnowledgeSVC.UpdateSlice(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// ListSlice .
// @router /api/knowledge/slice/list [POST]
func ListSlice(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.ListSliceRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(dataset.ListSliceResponse)
	resp, err = application.KnowledgeSVC.ListSlice(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// CreateDocumentReview .
// @router /api/knowledge/review/create [POST]
func CreateDocumentReview(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.CreateDocumentReviewRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(dataset.CreateDocumentReviewResponse)
	resp, err = application.KnowledgeSVC.CreateDocumentReview(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// MGetDocumentReview .
// @router /api/knowledge/review/mget [POST]
func MGetDocumentReview(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.MGetDocumentReviewRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(dataset.MGetDocumentReviewResponse)
	resp, err = application.KnowledgeSVC.MGetDocumentReview(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// SaveDocumentReview .
// @router /api/knowledge/review/save [POST]
func SaveDocumentReview(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.SaveDocumentReviewRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(dataset.SaveDocumentReviewResponse)
	resp, err = application.KnowledgeSVC.SaveDocumentReview(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// GetIconForDataset .
// @router /api/knowledge/icon/get [POST]
func GetIconForDataset(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.GetIconRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(dataset.GetIconResponse)
	resp, err = upload.SVC.GetIconForDataset(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// ExtractPhotoCaption .
// @router /api/knowledge/photo/extract_caption [POST]
func ExtractPhotoCaption(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.ExtractPhotoCaptionRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(dataset.ExtractPhotoCaptionResponse)
	resp, err = application.KnowledgeSVC.ExtractPhotoCaption(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// GetDocumentTableInfo .
// @router /api/memory/doc_table_info [GET]
func GetDocumentTableInfo(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.GetDocumentTableInfoRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(dataset.GetDocumentTableInfoResponse)
	resp, err = knowledge.KnowledgeSVC.GetDocumentTableInfo(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// GetModeConfig .
// @router /api/memory/table_mode_config [GET]
func GetModeConfig(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.GetModeConfigRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	if req.BotID == 0 {
		invalidParamRequestResponse(c, "bot_id is zero")
		return
	}

	resp, err := memory.DatabaseApplicationSVC.GetModeConfig(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// CreateDocumentOpenAPI .
// @router /open_api/knowledge/document/create [POST]
func CreateDocumentOpenAPI(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.CreateDocumentRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp := new(dataset.CreateDocumentResponse)
	resp, err = application.KnowledgeSVC.CreateDocument(ctx, &req, true)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// DeleteDocumentOpenAPI .
// @router /open_api/knowledge/document/delete [POST]
func DeleteDocumentOpenAPI(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.DeleteDocumentRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(dataset.DeleteDocumentResponse)
	resp, err = application.KnowledgeSVC.DeleteDocument(ctx, &req, true)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// UpdateDocumentOpenAPI .
// @router /open_api/knowledge/document/update [POST]
func UpdateDocumentOpenAPI(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.UpdateDocumentRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(dataset.UpdateDocumentResponse)
	resp, err = application.KnowledgeSVC.UpdateDocument(ctx, &req, true)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// ListDocumentOpenAPI .
// @router /open_api/knowledge/document/list [POST]
func ListDocumentOpenAPI(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.ListDocumentRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		c.String(consts.StatusBadRequest, err.Error())
		return
	}

	resp := new(dataset.ListDocumentResponse)
	resp, err = application.KnowledgeSVC.ListDocument(ctx, &req, true)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// CreateDatasetOpenAPI .
// @router /v1/datasets [POST]
func CreateDatasetOpenAPI(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.CreateDatasetOpenApiRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := application.KnowledgeSVC.CreateKnowledgeAPI(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}

	c.JSON(consts.StatusOK, resp)
}

// ListDatasetOpenAPI .
// @router /v1/datasets [GET]
func ListDatasetOpenAPI(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.ListDatasetOpenApiRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := application.KnowledgeSVC.ListKnowledgeAPI(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// UpdateDatasetOpenAPI .
// @router /v1/datasets/:dataset_id [PUT]
func UpdateDatasetOpenAPI(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.UpdateDatasetOpenApiRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := application.KnowledgeSVC.UpdateKnowledgeAPI(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// DeleteDatasetOpenAPI .
// @router /v1/datasets/:dataset_id [DELETE]
func DeleteDatasetOpenAPI(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.DeleteDatasetOpenApiRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := application.KnowledgeSVC.DeleteKnowledgeAPI(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// ListPhotoDocumentOpenAPI .
// @router /v1/datasets/:dataset_id/images [GET]
func ListPhotoDocumentOpenAPI(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.ListPhotoOpenApiRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := application.KnowledgeSVC.ListPhotoAPI(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}

// GetDocumentProgressOpenAPI .
// @router /v1/datasets/:dataset_id/process [POST]
func GetDocumentProgressOpenAPI(ctx context.Context, c *app.RequestContext) {
	var err error
	var req dataset.GetDocumentProgressOpenApiRequest
	err = c.BindAndValidate(&req)
	if err != nil {
		invalidParamRequestResponse(c, err.Error())
		return
	}

	resp, err := application.KnowledgeSVC.GetDocumentProgressAPI(ctx, &req)
	if err != nil {
		internalServerErrorResponse(ctx, c, err)
		return
	}
	c.JSON(consts.StatusOK, resp)
}


================================================
FILE: backend/api/handler/coze/memory_service.go
================================================
/*
 * Copyright 2025 coze-dev Authors
 *
 * Licensed under th
Download .txt
Showing preview only (861K chars total). Download the full file or copy to clipboard to get everything.
gitextract_xprctcyt/

├── .claude/
│   └── agents/
│       └── frontend-infrastructure-expert.md
├── .dockerignore
├── .gitattributes
├── .github/
│   ├── .licenserc.yaml
│   ├── CODEOWNERS
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   └── feature_request.md
│   ├── PULL_REQUEST_TEMPLATE.md
│   ├── scripts/
│   │   └── check-file-size.sh
│   └── workflows/
│       ├── ci.yml
│       ├── ci@backend.yml
│       ├── ci@main.yml
│       ├── claude.yml
│       ├── common-pr-checks.yml
│       ├── idl.yaml
│       ├── license-check.yaml
│       └── semantic-pull-request.yaml
├── .gitignore
├── .mcp.json
├── .nvmrc
├── .prettierrc.js
├── .vscode/
│   ├── extensions.json
│   └── settings.template.json
├── AUTHORS
├── CLAUDE.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE-APACHE
├── Makefile
├── README.md
├── README.zh_CN.md
├── backend/
│   ├── .gitignore
│   ├── .hz
│   ├── Dockerfile
│   ├── README.md
│   ├── api/
│   │   ├── handler/
│   │   │   └── coze/
│   │   │       ├── agent_run_service.go
│   │   │       ├── base.go
│   │   │       ├── bot_open_api_service.go
│   │   │       ├── config_service.go
│   │   │       ├── conversation_service.go
│   │   │       ├── database_service.go
│   │   │       ├── developer_api_service.go
│   │   │       ├── intelligence_service.go
│   │   │       ├── knowledge_service.go
│   │   │       ├── memory_service.go
│   │   │       ├── message_service.go
│   │   │       ├── message_service_test.go
│   │   │       ├── open_apiauth_service.go
│   │   │       ├── passport_service.go
│   │   │       ├── playground_service.go
│   │   │       ├── plugin_develop_service.go
│   │   │       ├── public_product_service.go
│   │   │       ├── resource_service.go
│   │   │       ├── upload_service.go
│   │   │       ├── workflow_service.go
│   │   │       └── workflow_service_test.go
│   │   ├── internal/
│   │   │   └── httputil/
│   │   │       └── error_resp.go
│   │   ├── middleware/
│   │   │   ├── ctx_cache.go
│   │   │   ├── host.go
│   │   │   ├── i18n.go
│   │   │   ├── log.go
│   │   │   ├── openapi_auth.go
│   │   │   ├── request_inspector.go
│   │   │   └── session.go
│   │   ├── model/
│   │   │   ├── admin/
│   │   │   │   └── config/
│   │   │   │       └── config.go
│   │   │   ├── app/
│   │   │   │   ├── bot_common/
│   │   │   │   │   └── bot_common.go
│   │   │   │   ├── bot_open_api/
│   │   │   │   │   └── bot_open_api.go
│   │   │   │   ├── developer_api/
│   │   │   │   │   └── developer_api.go
│   │   │   │   └── intelligence/
│   │   │   │       ├── common/
│   │   │   │       │   ├── common_struct.go
│   │   │   │       │   ├── intelligence_common_struct.go
│   │   │   │       │   └── task_struct.go
│   │   │   │       ├── intelligence.go
│   │   │   │       ├── project/
│   │   │   │       │   └── project.go
│   │   │   │       ├── publish/
│   │   │   │       │   └── publish.go
│   │   │   │       ├── search.go
│   │   │   │       └── task/
│   │   │   │           └── task.go
│   │   │   ├── base/
│   │   │   │   └── base.go
│   │   │   ├── conversation/
│   │   │   │   ├── agentrun/
│   │   │   │   │   └── agentrun_service.go
│   │   │   │   ├── common/
│   │   │   │   │   └── common.go
│   │   │   │   ├── conversation/
│   │   │   │   │   ├── conversation.go
│   │   │   │   │   └── conversation_service.go
│   │   │   │   ├── message/
│   │   │   │   │   ├── message.go
│   │   │   │   │   └── message_service.go
│   │   │   │   └── run/
│   │   │   │       └── run.go
│   │   │   ├── coze/
│   │   │   │   └── api.go
│   │   │   ├── data/
│   │   │   │   ├── database/
│   │   │   │   │   ├── database_svc.go
│   │   │   │   │   └── table/
│   │   │   │   │       └── table.go
│   │   │   │   ├── knowledge/
│   │   │   │   │   ├── common.go
│   │   │   │   │   ├── document.go
│   │   │   │   │   ├── knowledge.go
│   │   │   │   │   ├── knowledge_svc.go
│   │   │   │   │   ├── review.go
│   │   │   │   │   └── slice.go
│   │   │   │   └── variable/
│   │   │   │       ├── kvmemory/
│   │   │   │       │   └── kvmemory.go
│   │   │   │       ├── project_memory/
│   │   │   │       │   └── project_memory.go
│   │   │   │       └── variable_svc.go
│   │   │   ├── file/
│   │   │   │   └── upload/
│   │   │   │       └── upload.go
│   │   │   ├── marketplace/
│   │   │   │   ├── marketplace_common/
│   │   │   │   │   └── marketplace_common.go
│   │   │   │   ├── product_common/
│   │   │   │   │   └── product_common.go
│   │   │   │   └── product_public_api/
│   │   │   │       └── public_api.go
│   │   │   ├── passport/
│   │   │   │   └── passport.go
│   │   │   ├── permission/
│   │   │   │   └── openapiauth/
│   │   │   │       ├── openapiauth.go
│   │   │   │       └── openapiauth_service.go
│   │   │   ├── playground/
│   │   │   │   ├── playground.go
│   │   │   │   ├── prompt_resource.go
│   │   │   │   └── shortcut_command.go
│   │   │   ├── plugin_develop/
│   │   │   │   ├── common/
│   │   │   │   │   └── plugin_develop_common.go
│   │   │   │   └── plugin_develop.go
│   │   │   ├── resource/
│   │   │   │   ├── common/
│   │   │   │   │   └── resource_common.go
│   │   │   │   └── resource.go
│   │   │   └── workflow/
│   │   │       ├── trace.go
│   │   │       ├── workflow.go
│   │   │       └── workflow_svc.go
│   │   └── router/
│   │       ├── coze/
│   │       │   ├── api.go
│   │       │   └── middleware.go
│   │       └── register.go
│   ├── application/
│   │   ├── app/
│   │   │   ├── app.go
│   │   │   ├── convert.go
│   │   │   ├── init.go
│   │   │   └── model.go
│   │   ├── application.go
│   │   ├── base/
│   │   │   ├── appinfra/
│   │   │   │   └── app_infra.go
│   │   │   └── ctxutil/
│   │   │       ├── api_auth.go
│   │   │       ├── request.go
│   │   │       └── session.go
│   │   ├── connector/
│   │   │   ├── connector.go
│   │   │   └── init.go
│   │   ├── conversation/
│   │   │   ├── agent_run.go
│   │   │   ├── build_chunk_event.go
│   │   │   ├── conversation.go
│   │   │   ├── init.go
│   │   │   ├── message.go
│   │   │   ├── openapi_agent_run.go
│   │   │   ├── openapi_agent_run_test.go
│   │   │   └── openapi_message.go
│   │   ├── knowledge/
│   │   │   ├── convertor.go
│   │   │   ├── init.go
│   │   │   └── knowledge.go
│   │   ├── memory/
│   │   │   ├── convertor.go
│   │   │   ├── database.go
│   │   │   ├── init.go
│   │   │   └── variables.go
│   │   ├── modelmgr/
│   │   │   ├── init.go
│   │   │   └── modelmgr.go
│   │   ├── openauth/
│   │   │   ├── init.go
│   │   │   └── openapiauth.go
│   │   ├── permission/
│   │   │   └── init.go
│   │   ├── plugin/
│   │   │   ├── api_management.go
│   │   │   ├── auth.go
│   │   │   ├── info.go
│   │   │   ├── init.go
│   │   │   ├── lifecycle.go
│   │   │   ├── playground.go
│   │   │   ├── plugin.go
│   │   │   ├── plugin_test.go
│   │   │   └── registration.go
│   │   ├── prompt/
│   │   │   ├── init.go
│   │   │   └── prompt.go
│   │   ├── search/
│   │   │   ├── init.go
│   │   │   ├── project_pack.go
│   │   │   ├── project_search.go
│   │   │   ├── resource_pack.go
│   │   │   └── resource_search.go
│   │   ├── shortcutcmd/
│   │   │   ├── init.go
│   │   │   └── shortcut_cmd.go
│   │   ├── singleagent/
│   │   │   ├── create.go
│   │   │   ├── duplicate.go
│   │   │   ├── get.go
│   │   │   ├── image.go
│   │   │   ├── init.go
│   │   │   ├── publish.go
│   │   │   └── single_agent.go
│   │   ├── template/
│   │   │   ├── init.go
│   │   │   └── template.go
│   │   ├── upload/
│   │   │   ├── consts.go
│   │   │   └── icon.go
│   │   ├── user/
│   │   │   ├── init.go
│   │   │   └── user.go
│   │   └── workflow/
│   │       ├── chatflow.go
│   │       ├── chatflow_test.go
│   │       ├── eventbus.go
│   │       ├── init.go
│   │       ├── workflow.go
│   │       └── workflow_test.go
│   ├── bizpkg/
│   │   ├── config/
│   │   │   ├── base/
│   │   │   │   └── base.go
│   │   │   ├── config.go
│   │   │   ├── knowledge/
│   │   │   │   └── knowledge.go
│   │   │   └── modelmgr/
│   │   │       ├── builtin_conf.go
│   │   │       ├── deprecate_model_get.go
│   │   │       ├── extra.go
│   │   │       ├── internal/
│   │   │       │   ├── model/
│   │   │       │   │   └── model_instance.gen.go
│   │   │       │   └── query/
│   │   │       │       ├── gen.go
│   │   │       │       └── model_instance.gen.go
│   │   │       ├── mode_provider.go
│   │   │       ├── model_get.go
│   │   │       ├── model_meta.go
│   │   │       ├── model_param.go
│   │   │       ├── model_save.go
│   │   │       └── modelmgr.go
│   │   ├── debugutil/
│   │   │   └── workflow_debug.go
│   │   ├── fileutil/
│   │   │   ├── fileutil.go
│   │   │   └── pyutil.go
│   │   └── llm/
│   │       └── modelbuilder/
│   │           ├── ark.go
│   │           ├── builtin.go
│   │           ├── claude.go
│   │           ├── deepseek.go
│   │           ├── gemini.go
│   │           ├── llm_params.go
│   │           ├── model_builder.go
│   │           ├── ollama.go
│   │           ├── openai.go
│   │           └── qwen.go
│   ├── build.sh
│   ├── conf/
│   │   ├── admin/
│   │   │   └── index.html
│   │   ├── model/
│   │   │   ├── model_meta.json
│   │   │   └── template/
│   │   │       ├── model_template_ark.yaml
│   │   │       ├── model_template_ark_doubao-1.5-lite.yaml
│   │   │       ├── model_template_ark_doubao-1.5-pro-256k.yaml
│   │   │       ├── model_template_ark_doubao-1.5-pro-32k.yaml
│   │   │       ├── model_template_ark_doubao-1.5-thinking-pro.yaml
│   │   │       ├── model_template_ark_doubao-1.5-thinking-vision-pro.yaml
│   │   │       ├── model_template_ark_doubao-1.5-vision-lite.yaml
│   │   │       ├── model_template_ark_doubao-1.5-vision-pro.yaml
│   │   │       ├── model_template_ark_doubao-seed-1.6-flash.yaml
│   │   │       ├── model_template_ark_doubao-seed-1.6-thinking.yaml
│   │   │       ├── model_template_ark_doubao-seed-1.6.yaml
│   │   │       ├── model_template_ark_volc_deepseek-r1.yaml
│   │   │       ├── model_template_ark_volc_deepseek-v3.yaml
│   │   │       ├── model_template_basic.yaml
│   │   │       ├── model_template_byteplus_seed-1.6-flash.yaml
│   │   │       ├── model_template_byteplus_seed-1.6.yaml
│   │   │       ├── model_template_claude.yaml
│   │   │       ├── model_template_deepseek.yaml
│   │   │       ├── model_template_gemini.yaml
│   │   │       ├── model_template_ollama.yaml
│   │   │       ├── model_template_openai.yaml
│   │   │       └── model_template_qwen.yaml
│   │   ├── plugin/
│   │   │   ├── common/
│   │   │   │   └── oauth_schema.json
│   │   │   └── pluginproduct/
│   │   │       ├── bocha_search.yaml
│   │   │       ├── chestnut_sign.yaml
│   │   │       ├── gaode_map.yaml
│   │   │       ├── image_compression.yaml
│   │   │       ├── lark_authentication_authorization.yaml
│   │   │       ├── lark_base.yaml
│   │   │       ├── lark_calendar.yaml
│   │   │       ├── lark_docx.yaml
│   │   │       ├── lark_message.yaml
│   │   │       ├── lark_sheet.yaml
│   │   │       ├── lark_task.yaml
│   │   │       ├── lark_wiki.yaml
│   │   │       ├── library_search.yaml
│   │   │       ├── maker_smart_design.yaml
│   │   │       ├── plugin_meta.yaml
│   │   │       ├── sky_eye_check.yaml
│   │   │       ├── sohu_hot_news.yaml
│   │   │       ├── wolfram_alpha.yaml
│   │   │       └── worth_buying.yaml
│   │   ├── prompt/
│   │   │   ├── messages_to_query_template_jinja2.json
│   │   │   └── nl2sql_template_jinja2.json
│   │   └── workflow/
│   │       └── config.yaml
│   ├── crossdomain/
│   │   ├── agent/
│   │   │   ├── contract.go
│   │   │   ├── impl/
│   │   │   │   └── single_agent.go
│   │   │   └── model/
│   │   │       └── single_agent.go
│   │   ├── agentrun/
│   │   │   ├── agentrunmock/
│   │   │   │   └── agent_run_mock.go
│   │   │   ├── contract.go
│   │   │   ├── impl/
│   │   │   │   └── agent_run.go
│   │   │   └── model/
│   │   │       └── agent_run.go
│   │   ├── app/
│   │   │   ├── contract.go
│   │   │   ├── impl/
│   │   │   │   └── app.go
│   │   │   └── model/
│   │   │       ├── app.go
│   │   │       ├── connector.go
│   │   │       └── consts.go
│   │   ├── connector/
│   │   │   ├── contract.go
│   │   │   ├── impl/
│   │   │   │   └── connector.go
│   │   │   └── model/
│   │   │       └── connector.go
│   │   ├── conversation/
│   │   │   ├── contract.go
│   │   │   ├── conversationmock/
│   │   │   │   └── conversation_mock.go
│   │   │   ├── impl/
│   │   │   │   └── conversation.go
│   │   │   └── model/
│   │   │       └── conversation.go
│   │   ├── database/
│   │   │   ├── contract.go
│   │   │   ├── databasemock/
│   │   │   │   └── database_mock.go
│   │   │   ├── impl/
│   │   │   │   └── database.go
│   │   │   └── model/
│   │   │       ├── const.go
│   │   │       └── database.go
│   │   ├── datacopy/
│   │   │   ├── contract.go
│   │   │   ├── impl/
│   │   │   │   └── datacopy.go
│   │   │   └── model/
│   │   │       └── .gitkeep
│   │   ├── knowledge/
│   │   │   ├── contract.go
│   │   │   ├── impl/
│   │   │   │   └── knowledge.go
│   │   │   ├── knowledgemock/
│   │   │   │   └── knowledge_mock.go
│   │   │   └── model/
│   │   │       └── knowledge.go
│   │   ├── message/
│   │   │   ├── contract.go
│   │   │   ├── impl/
│   │   │   │   ├── message.go
│   │   │   │   └── message_test.go
│   │   │   ├── messagemock/
│   │   │   │   └── message_mock.go
│   │   │   └── model/
│   │   │       └── message.go
│   │   ├── permission/
│   │   │   ├── contract.go
│   │   │   ├── impl/
│   │   │   │   └── permission.go
│   │   │   ├── model/
│   │   │   │   └── permission.go
│   │   │   └── permissionmock/
│   │   │       └── permission_mock.go
│   │   ├── plugin/
│   │   │   ├── consts/
│   │   │   │   └── consts.go
│   │   │   ├── contract.go
│   │   │   ├── convert/
│   │   │   │   ├── api/
│   │   │   │   │   └── api.go
│   │   │   │   ├── auth.go
│   │   │   │   ├── format.go
│   │   │   │   ├── http.go
│   │   │   │   ├── param.go
│   │   │   │   └── plugin.go
│   │   │   ├── impl/
│   │   │   │   └── plugin.go
│   │   │   ├── model/
│   │   │   │   ├── default.go
│   │   │   │   ├── openapi.go
│   │   │   │   ├── option.go
│   │   │   │   ├── plugin.go
│   │   │   │   ├── plugin_manifest.go
│   │   │   │   ├── plugin_method.go
│   │   │   │   └── toolinfo.go
│   │   │   └── pluginmock/
│   │   │       └── plugin_mock.go
│   │   ├── search/
│   │   │   ├── contract.go
│   │   │   ├── impl/
│   │   │   │   └── search.go
│   │   │   └── model/
│   │   │       ├── resource_doc.go
│   │   │       └── search.go
│   │   ├── upload/
│   │   │   ├── contract.go
│   │   │   ├── impl/
│   │   │   │   └── upload.go
│   │   │   └── uploadmock/
│   │   │       └── upload_mock.go
│   │   ├── user/
│   │   │   ├── contract.go
│   │   │   └── impl/
│   │   │       └── user.go
│   │   ├── variables/
│   │   │   ├── contract.go
│   │   │   ├── impl/
│   │   │   │   └── variables.go
│   │   │   └── model/
│   │   │       └── variable_instance.go
│   │   └── workflow/
│   │       ├── contract.go
│   │       ├── impl/
│   │       │   └── workflow.go
│   │       └── model/
│   │           └── workflow.go
│   ├── domain/
│   │   ├── agent/
│   │   │   └── singleagent/
│   │   │       ├── entity/
│   │   │       │   ├── agent_draft_display_info.go
│   │   │       │   ├── agent_event.go
│   │   │       │   ├── publish.go
│   │   │       │   ├── single_agent.go
│   │   │       │   └── single_agent_pulish.go
│   │   │       ├── internal/
│   │   │       │   ├── agentflow/
│   │   │       │   │   ├── agent_flow_builder.go
│   │   │       │   │   ├── agent_flow_builder_test.go
│   │   │       │   │   ├── agent_flow_runner.go
│   │   │       │   │   ├── callback_reply_chunk.go
│   │   │       │   │   ├── node_chat_prompt.go
│   │   │       │   │   ├── node_persona_render.go
│   │   │       │   │   ├── node_prompt_variables.go
│   │   │       │   │   ├── node_retriever.go
│   │   │       │   │   ├── node_suggest_graph.go
│   │   │       │   │   ├── node_suggest_parser.go
│   │   │       │   │   ├── node_suggest_persona_render.go
│   │   │       │   │   ├── node_suggest_prompt_variable.go
│   │   │       │   │   ├── node_tool_database.go
│   │   │       │   │   ├── node_tool_database_test.go
│   │   │       │   │   ├── node_tool_knowledge.go
│   │   │       │   │   ├── node_tool_plugin.go
│   │   │       │   │   ├── node_tool_pre_retriever.go
│   │   │       │   │   ├── node_tool_variables.go
│   │   │       │   │   ├── node_tool_workflow.go
│   │   │       │   │   ├── suggest_prompt.go
│   │   │       │   │   └── system_prompt.go
│   │   │       │   └── dal/
│   │   │       │       ├── agent_display_info.go
│   │   │       │       ├── counter.go
│   │   │       │       ├── model/
│   │   │       │       │   ├── single_agent_draft.gen.go
│   │   │       │       │   ├── single_agent_publish.gen.go
│   │   │       │       │   └── single_agent_version.gen.go
│   │   │       │       ├── query/
│   │   │       │       │   ├── gen.go
│   │   │       │       │   ├── single_agent_draft.gen.go
│   │   │       │       │   ├── single_agent_publish.gen.go
│   │   │       │       │   └── single_agent_version.gen.go
│   │   │       │       ├── single_agent_draft.go
│   │   │       │       ├── single_agent_publish.go
│   │   │       │       └── single_agent_version.go
│   │   │       ├── repository/
│   │   │       │   └── repository.go
│   │   │       └── service/
│   │   │           ├── count_info.go
│   │   │           ├── publish.go
│   │   │           ├── single_agent.go
│   │   │           └── single_agent_impl.go
│   │   ├── app/
│   │   │   ├── entity/
│   │   │   │   ├── app.go
│   │   │   │   ├── connector.go
│   │   │   │   └── consts.go
│   │   │   ├── internal/
│   │   │   │   └── dal/
│   │   │   │       ├── app_connector_release_ref.go
│   │   │   │       ├── app_draft.go
│   │   │   │       ├── app_release_record.go
│   │   │   │       ├── cache.go
│   │   │   │       ├── model/
│   │   │   │       │   ├── app_connector_release_ref.gen.go
│   │   │   │       │   ├── app_draft.gen.go
│   │   │   │       │   └── app_release_record.gen.go
│   │   │   │       ├── option.go
│   │   │   │       └── query/
│   │   │   │           ├── app_connector_release_ref.gen.go
│   │   │   │           ├── app_draft.gen.go
│   │   │   │           ├── app_release_record.gen.go
│   │   │   │           └── gen.go
│   │   │   ├── repository/
│   │   │   │   ├── app.go
│   │   │   │   ├── app_impl.go
│   │   │   │   └── option.go
│   │   │   └── service/
│   │   │       ├── publish_app.go
│   │   │       ├── service.go
│   │   │       └── service_impl.go
│   │   ├── connector/
│   │   │   ├── entity/
│   │   │   │   └── connector.go
│   │   │   └── service/
│   │   │       ├── connector.go
│   │   │       ├── connector_impl.go
│   │   │       └── connector_impl_test.go
│   │   ├── conversation/
│   │   │   ├── agentrun/
│   │   │   │   ├── entity/
│   │   │   │   │   ├── const.go
│   │   │   │   │   ├── interrupt_event.go
│   │   │   │   │   └── run_record.go
│   │   │   │   ├── internal/
│   │   │   │   │   ├── agent_info.go
│   │   │   │   │   ├── chatflow_run.go
│   │   │   │   │   ├── dal/
│   │   │   │   │   │   ├── dao.go
│   │   │   │   │   │   ├── model/
│   │   │   │   │   │   │   └── run_record.gen.go
│   │   │   │   │   │   └── query/
│   │   │   │   │   │       ├── gen.go
│   │   │   │   │   │       └── run_record.gen.go
│   │   │   │   │   ├── message_builder.go
│   │   │   │   │   ├── message_builder_test.go
│   │   │   │   │   ├── message_event.go
│   │   │   │   │   ├── run.go
│   │   │   │   │   ├── run_process_event.go
│   │   │   │   │   └── singleagent_run.go
│   │   │   │   ├── repository/
│   │   │   │   │   └── repository.go
│   │   │   │   └── service/
│   │   │   │       ├── agent_run.go
│   │   │   │       ├── agent_run_impl.go
│   │   │   │       └── agent_run_test.go
│   │   │   ├── conversation/
│   │   │   │   ├── entity/
│   │   │   │   │   └── conversation.go
│   │   │   │   ├── internal/
│   │   │   │   │   └── dal/
│   │   │   │   │       ├── dao.go
│   │   │   │   │       ├── model/
│   │   │   │   │       │   └── conversation.gen.go
│   │   │   │   │       └── query/
│   │   │   │   │           ├── conversation.gen.go
│   │   │   │   │           └── gen.go
│   │   │   │   ├── repository/
│   │   │   │   │   └── repository.go
│   │   │   │   └── service/
│   │   │   │       ├── conversation.go
│   │   │   │       ├── conversation_impl.go
│   │   │   │       └── conversation_test.go
│   │   │   └── message/
│   │   │       ├── entity/
│   │   │       │   ├── const.go
│   │   │       │   ├── knowledge.go
│   │   │       │   ├── message.go
│   │   │       │   └── message_ext.go
│   │   │       ├── internal/
│   │   │       │   └── dal/
│   │   │       │       ├── message.go
│   │   │       │       ├── model/
│   │   │       │       │   └── message.gen.go
│   │   │       │       └── query/
│   │   │       │           ├── gen.go
│   │   │       │           └── message.gen.go
│   │   │       ├── repository/
│   │   │       │   └── repository.go
│   │   │       └── service/
│   │   │           ├── message.go
│   │   │           ├── message_impl.go
│   │   │           └── message_test.go
│   │   ├── datacopy/
│   │   │   ├── entity/
│   │   │   │   └── entity.go
│   │   │   ├── interface.go
│   │   │   ├── internal/
│   │   │   │   ├── convert/
│   │   │   │   │   └── convert.go
│   │   │   │   └── dal/
│   │   │   │       ├── dao/
│   │   │   │       │   └── data_copy_task.go
│   │   │   │       ├── model/
│   │   │   │       │   └── data_copy_task.gen.go
│   │   │   │       └── query/
│   │   │   │           ├── data_copy_task.gen.go
│   │   │   │           └── gen.go
│   │   │   └── service/
│   │   │       └── datacopy.go
│   │   ├── knowledge/
│   │   │   ├── entity/
│   │   │   │   ├── const.go
│   │   │   │   ├── document.go
│   │   │   │   ├── event.go
│   │   │   │   ├── knowledge.go
│   │   │   │   ├── review.go
│   │   │   │   ├── slice.go
│   │   │   │   └── strategy.go
│   │   │   ├── internal/
│   │   │   │   ├── consts/
│   │   │   │   │   └── consts.go
│   │   │   │   ├── convert/
│   │   │   │   │   ├── parser.go
│   │   │   │   │   ├── rdb.go
│   │   │   │   │   ├── table.go
│   │   │   │   │   └── table_test.go
│   │   │   │   ├── dal/
│   │   │   │   │   ├── dao/
│   │   │   │   │   │   ├── knowledge.go
│   │   │   │   │   │   ├── knowledge_document.go
│   │   │   │   │   │   ├── knowledge_document_review.go
│   │   │   │   │   │   ├── knowledge_document_slice.go
│   │   │   │   │   │   ├── knowledge_document_test.go
│   │   │   │   │   │   └── knowledge_test.go
│   │   │   │   │   ├── model/
│   │   │   │   │   │   ├── knowledge.gen.go
│   │   │   │   │   │   ├── knowledge_document.gen.go
│   │   │   │   │   │   ├── knowledge_document_review.gen.go
│   │   │   │   │   │   ├── knowledge_document_slice.gen.go
│   │   │   │   │   │   ├── progress.go
│   │   │   │   │   │   └── strategy.go
│   │   │   │   │   └── query/
│   │   │   │   │       ├── gen.go
│   │   │   │   │       ├── knowledge.gen.go
│   │   │   │   │       ├── knowledge_document.gen.go
│   │   │   │   │       ├── knowledge_document_review.gen.go
│   │   │   │   │       └── knowledge_document_slice.gen.go
│   │   │   │   ├── events/
│   │   │   │   │   └── events.go
│   │   │   │   └── mock/
│   │   │   │       └── dal/
│   │   │   │           └── dao/
│   │   │   │               ├── knowledge.go
│   │   │   │               ├── knowledge_document.go
│   │   │   │               └── knowledge_document_slice.go
│   │   │   ├── processor/
│   │   │   │   ├── impl/
│   │   │   │   │   ├── base.go
│   │   │   │   │   ├── custom_doc.go
│   │   │   │   │   ├── custom_table.go
│   │   │   │   │   ├── init.go
│   │   │   │   │   ├── local_table.go
│   │   │   │   │   └── utils.go
│   │   │   │   └── interface.go
│   │   │   ├── repository/
│   │   │   │   └── repository.go
│   │   │   └── service/
│   │   │       ├── convert.go
│   │   │       ├── datacopy.go
│   │   │       ├── event_handle.go
│   │   │       ├── event_handle_test.go
│   │   │       ├── interface.go
│   │   │       ├── knowledge.go
│   │   │       ├── knowledge_integration_test.go
│   │   │       ├── knowledge_test.go
│   │   │       ├── rdb.go
│   │   │       ├── retrieve.go
│   │   │       ├── retrieve_test.go
│   │   │       ├── sheet.go
│   │   │       ├── sheet_test.go
│   │   │       └── validate.go
│   │   ├── memory/
│   │   │   ├── database/
│   │   │   │   ├── entity/
│   │   │   │   │   └── database.go
│   │   │   │   ├── internal/
│   │   │   │   │   ├── convertor/
│   │   │   │   │   │   ├── database.go
│   │   │   │   │   │   └── types.go
│   │   │   │   │   ├── dal/
│   │   │   │   │   │   ├── agent_to_database.go
│   │   │   │   │   │   ├── draft_database_info.go
│   │   │   │   │   │   ├── model/
│   │   │   │   │   │   │   ├── agent_to_database.gen.go
│   │   │   │   │   │   │   ├── draft_database_info.gen.go
│   │   │   │   │   │   │   └── online_database_info.gen.go
│   │   │   │   │   │   ├── online_database_info.go
│   │   │   │   │   │   └── query/
│   │   │   │   │   │       ├── agent_to_database.gen.go
│   │   │   │   │   │       ├── draft_database_info.gen.go
│   │   │   │   │   │       ├── gen.go
│   │   │   │   │   │       └── online_database_info.gen.go
│   │   │   │   │   ├── physicaltable/
│   │   │   │   │   │   └── physical.go
│   │   │   │   │   └── sheet/
│   │   │   │   │       └── sheet.go
│   │   │   │   ├── repository/
│   │   │   │   │   └── repository.go
│   │   │   │   └── service/
│   │   │   │       ├── database.go
│   │   │   │       ├── database_impl.go
│   │   │   │       └── database_impl_test.go
│   │   │   └── variables/
│   │   │       ├── entity/
│   │   │       │   ├── sys_variables.go
│   │   │       │   ├── variable_instance.go
│   │   │       │   ├── variable_meta.go
│   │   │       │   ├── variable_meta_schema.go
│   │   │       │   └── variables_meta.go
│   │   │       ├── internal/
│   │   │       │   └── dal/
│   │   │       │       ├── dal.go
│   │   │       │       ├── model/
│   │   │       │       │   ├── variable_instance.gen.go
│   │   │       │       │   └── variables_meta.gen.go
│   │   │       │       ├── query/
│   │   │       │       │   ├── gen.go
│   │   │       │       │   ├── variable_instance.gen.go
│   │   │       │       │   └── variables_meta.gen.go
│   │   │       │       ├── variable_instance.go
│   │   │       │       └── variables_meta.go
│   │   │       ├── repository/
│   │   │       │   └── repository.go
│   │   │       └── service/
│   │   │           ├── variables.go
│   │   │           └── variables_impl.go
│   │   ├── openauth/
│   │   │   └── openapiauth/
│   │   │       ├── api_auth.go
│   │   │       ├── api_auth_impl.go
│   │   │       ├── api_auth_impl_test.go
│   │   │       ├── entity/
│   │   │       │   ├── api_auth.go
│   │   │       │   └── consts.go
│   │   │       └── internal/
│   │   │           └── dal/
│   │   │               ├── api_key.go
│   │   │               ├── model/
│   │   │               │   └── api_key.gen.go
│   │   │               └── query/
│   │   │                   ├── api_key.gen.go
│   │   │                   └── gen.go
│   │   ├── permission/
│   │   │   ├── authz_checker.go
│   │   │   ├── consts.go
│   │   │   ├── permission.go
│   │   │   ├── permission_impl.go
│   │   │   └── resource_queryiers.go
│   │   ├── plugin/
│   │   │   ├── conf/
│   │   │   │   ├── config.go
│   │   │   │   └── load_plugin.go
│   │   │   ├── dto/
│   │   │   │   ├── auth.go
│   │   │   │   ├── coze_saas.go
│   │   │   │   ├── plugin.go
│   │   │   │   └── tool.go
│   │   │   ├── encrypt/
│   │   │   │   ├── aes.go
│   │   │   │   └── aes_test.go
│   │   │   ├── entity/
│   │   │   │   ├── plugin.go
│   │   │   │   └── tool.go
│   │   │   ├── internal/
│   │   │   │   ├── dal/
│   │   │   │   │   ├── agent_tool_draft.go
│   │   │   │   │   ├── agent_tool_version.go
│   │   │   │   │   ├── cache.go
│   │   │   │   │   ├── model/
│   │   │   │   │   │   ├── agent_tool_draft.gen.go
│   │   │   │   │   │   ├── agent_tool_version.gen.go
│   │   │   │   │   │   ├── plugin.gen.go
│   │   │   │   │   │   ├── plugin_draft.gen.go
│   │   │   │   │   │   ├── plugin_oauth_auth.gen.go
│   │   │   │   │   │   ├── plugin_version.gen.go
│   │   │   │   │   │   ├── tool.gen.go
│   │   │   │   │   │   ├── tool_draft.gen.go
│   │   │   │   │   │   └── tool_version.gen.go
│   │   │   │   │   ├── option.go
│   │   │   │   │   ├── plugin.go
│   │   │   │   │   ├── plugin_draft.go
│   │   │   │   │   ├── plugin_oauth_auth.go
│   │   │   │   │   ├── plugin_version.go
│   │   │   │   │   ├── query/
│   │   │   │   │   │   ├── agent_tool_draft.gen.go
│   │   │   │   │   │   ├── agent_tool_version.gen.go
│   │   │   │   │   │   ├── gen.go
│   │   │   │   │   │   ├── plugin.gen.go
│   │   │   │   │   │   ├── plugin_draft.gen.go
│   │   │   │   │   │   ├── plugin_oauth_auth.gen.go
│   │   │   │   │   │   ├── plugin_version.gen.go
│   │   │   │   │   │   ├── tool.gen.go
│   │   │   │   │   │   ├── tool_draft.gen.go
│   │   │   │   │   │   └── tool_version.gen.go
│   │   │   │   │   ├── tool.go
│   │   │   │   │   ├── tool_draft.go
│   │   │   │   │   └── tool_version.go
│   │   │   │   ├── encoder/
│   │   │   │   │   └── req_encode.go
│   │   │   │   └── openapi/
│   │   │   │       └── convert_protocol.go
│   │   │   ├── repository/
│   │   │   │   ├── mock/
│   │   │   │   │   └── mock_oauth_repository.go
│   │   │   │   ├── oauth_impl.go
│   │   │   │   ├── oauth_repository.go
│   │   │   │   ├── option.go
│   │   │   │   ├── plugin_impl.go
│   │   │   │   ├── plugin_repository.go
│   │   │   │   ├── tool_impl.go
│   │   │   │   ├── tool_impl_test.go
│   │   │   │   └── tool_repository.go
│   │   │   └── service/
│   │   │       ├── agent_tool.go
│   │   │       ├── exec_tool.go
│   │   │       ├── exec_tool_test.go
│   │   │       ├── plugin_auth.go
│   │   │       ├── plugin_draft.go
│   │   │       ├── plugin_oauth.go
│   │   │       ├── plugin_oauth_test.go
│   │   │       ├── plugin_online.go
│   │   │       ├── plugin_release.go
│   │   │       ├── plugin_saas.go
│   │   │       ├── plugin_saas_test.go
│   │   │       ├── service.go
│   │   │       ├── service_impl.go
│   │   │       └── tool/
│   │   │           ├── invocation.go
│   │   │           ├── invocation_args.go
│   │   │           ├── invocation_custom_call.go
│   │   │           ├── invocation_http.go
│   │   │           ├── invocation_mcp.go
│   │   │           └── invocation_saas.go
│   │   ├── prompt/
│   │   │   ├── entity/
│   │   │   │   └── promot_resource.go
│   │   │   ├── internal/
│   │   │   │   ├── dal/
│   │   │   │   │   ├── model/
│   │   │   │   │   │   └── prompt_resource.gen.go
│   │   │   │   │   ├── prompt_resource.go
│   │   │   │   │   └── query/
│   │   │   │   │       ├── gen.go
│   │   │   │   │       └── prompt_resource.gen.go
│   │   │   │   └── official/
│   │   │   │       ├── official_prompt.go
│   │   │   │       └── official_prompt_test.go
│   │   │   ├── repository/
│   │   │   │   └── repository.go
│   │   │   └── service/
│   │   │       ├── prompt.go
│   │   │       └── prompt_impl.go
│   │   ├── search/
│   │   │   ├── entity/
│   │   │   │   ├── project_doc.go
│   │   │   │   ├── project_event.go
│   │   │   │   ├── resource_doc.go
│   │   │   │   ├── resources_event.go
│   │   │   │   └── search.go
│   │   │   └── service/
│   │   │       ├── eventbus.go
│   │   │       ├── handler_project.go
│   │   │       ├── handler_resource.go
│   │   │       ├── search.go
│   │   │       └── service.go
│   │   ├── shortcutcmd/
│   │   │   ├── entity/
│   │   │   │   └── shortcut_cmd.go
│   │   │   ├── internal/
│   │   │   │   └── dal/
│   │   │   │       ├── dao.go
│   │   │   │       ├── model/
│   │   │   │       │   └── shortcut_command.gen.go
│   │   │   │       └── query/
│   │   │   │           ├── gen.go
│   │   │   │           └── shortcut_command.gen.go
│   │   │   ├── repository/
│   │   │   │   └── repository.go
│   │   │   └── service/
│   │   │       ├── shortcut_cmd.go
│   │   │       └── shortcut_cmd_impl.go
│   │   ├── template/
│   │   │   ├── entity/
│   │   │   │   └── template.go
│   │   │   ├── internal/
│   │   │   │   └── dal/
│   │   │   │       ├── model/
│   │   │   │       │   └── template.gen.go
│   │   │   │       ├── query/
│   │   │   │       │   ├── gen.go
│   │   │   │       │   └── template.gen.go
│   │   │   │       └── template.go
│   │   │   └── repository/
│   │   │       └── repository.go
│   │   ├── upload/
│   │   │   ├── entity/
│   │   │   │   ├── default_icon_uri.go
│   │   │   │   └── file.go
│   │   │   ├── internal/
│   │   │   │   └── dal/
│   │   │   │       ├── dao/
│   │   │   │       │   └── files.go
│   │   │   │       ├── model/
│   │   │   │       │   └── files.gen.go
│   │   │   │       └── query/
│   │   │   │           ├── files.gen.go
│   │   │   │           └── gen.go
│   │   │   ├── repository/
│   │   │   │   └── repository.go
│   │   │   └── service/
│   │   │       ├── interface.go
│   │   │       └── service.go
│   │   ├── user/
│   │   │   ├── entity/
│   │   │   │   ├── saas_user.go
│   │   │   │   ├── session.go
│   │   │   │   ├── space.go
│   │   │   │   └── user.go
│   │   │   ├── internal/
│   │   │   │   └── dal/
│   │   │   │       ├── model/
│   │   │   │       │   ├── space.gen.go
│   │   │   │       │   ├── space_user.gen.go
│   │   │   │       │   └── user.gen.go
│   │   │   │       ├── query/
│   │   │   │       │   ├── gen.go
│   │   │   │       │   ├── space.gen.go
│   │   │   │       │   ├── space_user.gen.go
│   │   │   │       │   └── user.gen.go
│   │   │   │       ├── space.go
│   │   │   │       ├── space_user.go
│   │   │   │       └── user.go
│   │   │   ├── repository/
│   │   │   │   └── repository.go
│   │   │   └── service/
│   │   │       ├── user.go
│   │   │       ├── user_impl.go
│   │   │       └── user_saas_impl.go
│   │   └── workflow/
│   │       ├── component_interface.go
│   │       ├── config/
│   │       │   └── workflow_config.go
│   │       ├── entity/
│   │       │   ├── chatflow_role.go
│   │       │   ├── conversation.go
│   │       │   ├── interrupt_event.go
│   │       │   ├── message.go
│   │       │   ├── node_meta.go
│   │       │   ├── vo/
│   │       │   │   ├── canvas.go
│   │       │   │   ├── chat_flow_role.go
│   │       │   │   ├── chatflow.go
│   │       │   │   ├── conversation.go
│   │       │   │   ├── curd.go
│   │       │   │   ├── draft.go
│   │       │   │   ├── meta.go
│   │       │   │   ├── modelmgr.go
│   │       │   │   ├── node.go
│   │       │   │   ├── node_test.go
│   │       │   │   ├── plugin_tool_info.go
│   │       │   │   ├── validate_info.go
│   │       │   │   ├── version_info.go
│   │       │   │   ├── workflow_copy.go
│   │       │   │   ├── workflow_info.go
│   │       │   │   ├── workflow_publish.go
│   │       │   │   └── workflow_tool.go
│   │       │   ├── workflow.go
│   │       │   ├── workflow_execution.go
│   │       │   └── workflow_reference.go
│   │       ├── interface.go
│   │       ├── internal/
│   │       │   ├── canvas/
│   │       │   │   ├── adaptor/
│   │       │   │   │   ├── canvas_test.go
│   │       │   │   │   ├── from_node.go
│   │       │   │   │   └── to_schema.go
│   │       │   │   ├── convert/
│   │       │   │   │   └── type_convert.go
│   │       │   │   ├── examples/
│   │       │   │   │   ├── app_variables_for_sub_process.json
│   │       │   │   │   ├── batch/
│   │       │   │   │   │   ├── batch_with_inner_interrupt.json
│   │       │   │   │   │   ├── node_batches.json
│   │       │   │   │   │   └── sub_workflow_as_batch.json
│   │       │   │   │   ├── chatflow/
│   │       │   │   │   │   ├── chat_run_with_interrupt.json
│   │       │   │   │   │   ├── llm_chat.json
│   │       │   │   │   │   ├── llm_chat_with_history.json
│   │       │   │   │   │   ├── new_chatflow.json
│   │       │   │   │   │   └── start_exit.json
│   │       │   │   │   ├── code_plugin.json
│   │       │   │   │   ├── conversation_manager/
│   │       │   │   │   │   ├── conversation_history.json
│   │       │   │   │   │   ├── conversation_list.json
│   │       │   │   │   │   ├── create_conversation.json
│   │       │   │   │   │   ├── delete_conversation.json
│   │       │   │   │   │   ├── update_conversation.json
│   │       │   │   │   │   └── update_dynamic_conversation.json
│   │       │   │   │   ├── copy_to_app/
│   │       │   │   │   │   ├── child2_1.json
│   │       │   │   │   │   ├── child_1.json
│   │       │   │   │   │   ├── child_2.json
│   │       │   │   │   │   ├── child_3.json
│   │       │   │   │   │   ├── child_4.json
│   │       │   │   │   │   ├── child_5.json
│   │       │   │   │   │   ├── main.json
│   │       │   │   │   │   └── main2.json
│   │       │   │   │   ├── database_curd.json
│   │       │   │   │   ├── entry_exit.json
│   │       │   │   │   ├── exception/
│   │       │   │   │   │   ├── code_exception_branch.json
│   │       │   │   │   │   ├── llm_default_output_retry_timeout.json
│   │       │   │   │   │   └── llm_timeout_throw.json
│   │       │   │   │   ├── function_call/
│   │       │   │   │   │   ├── llm_with_workflow_as_tool.json
│   │       │   │   │   │   ├── llm_with_workflow_as_tool_1.json
│   │       │   │   │   │   ├── llm_workflow_stream_tool.json
│   │       │   │   │   │   ├── llm_workflow_stream_tool_1.json
│   │       │   │   │   │   ├── tool_workflow_1.json
│   │       │   │   │   │   ├── tool_workflow_2.json
│   │       │   │   │   │   └── tool_workflow_3.json
│   │       │   │   │   ├── get_canvas/
│   │       │   │   │   │   ├── get_canvas.json
│   │       │   │   │   │   └── get_canvas_modify.json
│   │       │   │   │   ├── httprequester/
│   │       │   │   │   │   ├── bear_auth_no_body.json
│   │       │   │   │   │   ├── custom_auth_file_body.json
│   │       │   │   │   │   ├── custom_auth_form_data_body.json
│   │       │   │   │   │   ├── custom_auth_form_url_body.json
│   │       │   │   │   │   ├── custom_auth_json_body.json
│   │       │   │   │   │   ├── custom_auth_no_body.json
│   │       │   │   │   │   ├── http_error.json
│   │       │   │   │   │   ├── http_implicit_dependencies.json
│   │       │   │   │   │   ├── http_with_url_template.json
│   │       │   │   │   │   └── no_auth_no_body.json
│   │       │   │   │   ├── input_complex.json
│   │       │   │   │   ├── input_receiver.json
│   │       │   │   │   ├── intent_detector_database_custom_sql.json
│   │       │   │   │   ├── json/
│   │       │   │   │   │   ├── json_test.json
│   │       │   │   │   │   └── json_test_warning.json
│   │       │   │   │   ├── knowledge.json
│   │       │   │   │   ├── knowledge_delete.json
│   │       │   │   │   ├── llm_node_with_skills/
│   │       │   │   │   │   ├── llm_node_with_plugin_tool.json
│   │       │   │   │   │   ├── llm_node_with_workflow_tool.json
│   │       │   │   │   │   ├── llm_with_knowledge_skill.json
│   │       │   │   │   │   └── llm_workflow_as_tool.json
│   │       │   │   │   ├── loop_selector_variable_assign_text_processor.json
│   │       │   │   │   ├── loop_with_object_input.json
│   │       │   │   │   ├── message/
│   │       │   │   │   │   ├── agent_message.json
│   │       │   │   │   │   ├── create_assistant_message.json
│   │       │   │   │   │   ├── create_message.json
│   │       │   │   │   │   ├── create_message_in_agent.json
│   │       │   │   │   │   ├── delete_message.json
│   │       │   │   │   │   ├── edit_message.json
│   │       │   │   │   │   ├── edit_message_no_permission.json
│   │       │   │   │   │   └── message_list.json
│   │       │   │   │   ├── move_to_app/
│   │       │   │   │   │   ├── c1.json
│   │       │   │   │   │   ├── c2.json
│   │       │   │   │   │   ├── cc1.json
│   │       │   │   │   │   └── main.json
│   │       │   │   │   ├── parallel_interrupt.json
│   │       │   │   │   ├── publish/
│   │       │   │   │   │   ├── publish_workflow.json
│   │       │   │   │   │   ├── release_c1_workflow.json
│   │       │   │   │   │   ├── release_cc1_workflow.json
│   │       │   │   │   │   ├── release_error_workflow.json
│   │       │   │   │   │   └── release_main_workflow.json
│   │       │   │   │   ├── qa_with_structured_output.json
│   │       │   │   │   ├── query_types/
│   │       │   │   │   │   ├── llm_intent_http_nodes.json
│   │       │   │   │   │   ├── loop_condition.json
│   │       │   │   │   │   ├── subworkflows.json
│   │       │   │   │   │   ├── wf2.json
│   │       │   │   │   │   └── wf2child.json
│   │       │   │   │   ├── sse/
│   │       │   │   │   │   └── llm_emitter.json
│   │       │   │   │   ├── start_node_default_values.json
│   │       │   │   │   ├── subworkflow/
│   │       │   │   │   │   ├── bottom_workflow.json
│   │       │   │   │   │   ├── middle_workflow.json
│   │       │   │   │   │   └── top_workflow.json
│   │       │   │   │   ├── type_convert/
│   │       │   │   │   │   └── mismatched_types.json
│   │       │   │   │   ├── validate/
│   │       │   │   │   │   ├── invalid_input_parameter.json
│   │       │   │   │   │   ├── sub_workflow_terminate_plan_type.json
│   │       │   │   │   │   ├── workflow_has_loop.json
│   │       │   │   │   │   ├── workflow_has_no_connected_nodes.json
│   │       │   │   │   │   ├── workflow_nested_has_loop_or_batch.json
│   │       │   │   │   │   ├── workflow_of_prune_isolate.json
│   │       │   │   │   │   ├── workflow_ref_variable.json
│   │       │   │   │   │   └── workflow_variable_assigner.json
│   │       │   │   │   ├── variable_aggregate/
│   │       │   │   │   │   ├── aggregate_streams.json
│   │       │   │   │   │   └── variable_aggregator.json
│   │       │   │   │   └── workflow_wf_file_name.json
│   │       │   │   └── validate/
│   │       │   │       └── canvas_validate.go
│   │       │   ├── compose/
│   │       │   │   ├── designate_option.go
│   │       │   │   ├── field_fill.go
│   │       │   │   ├── field_fill_test.go
│   │       │   │   ├── node_builder.go
│   │       │   │   ├── node_runner.go
│   │       │   │   ├── state.go
│   │       │   │   ├── stream.go
│   │       │   │   ├── test/
│   │       │   │   │   ├── batch_test.go
│   │       │   │   │   ├── loop_test.go
│   │       │   │   │   ├── question_answer_test.go
│   │       │   │   │   └── workflow_test.go
│   │       │   │   ├── workflow.go
│   │       │   │   ├── workflow_field_mapping_test.go
│   │       │   │   ├── workflow_from_node.go
│   │       │   │   ├── workflow_run.go
│   │       │   │   └── workflow_tool.go
│   │       │   ├── execute/
│   │       │   │   ├── callback.go
│   │       │   │   ├── collect_token.go
│   │       │   │   ├── consts.go
│   │       │   │   ├── context.go
│   │       │   │   ├── event.go
│   │       │   │   ├── event_handle.go
│   │       │   │   ├── stream_container.go
│   │       │   │   └── tool_option.go
│   │       │   ├── nodes/
│   │       │   │   ├── batch/
│   │       │   │   │   └── batch.go
│   │       │   │   ├── callbacks.go
│   │       │   │   ├── code/
│   │       │   │   │   ├── code.go
│   │       │   │   │   └── code_test.go
│   │       │   │   ├── conversation/
│   │       │   │   │   ├── clearconversationhistory.go
│   │       │   │   │   ├── conversationhistory.go
│   │       │   │   │   ├── conversationlist.go
│   │       │   │   │   ├── createconversation.go
│   │       │   │   │   ├── createmessage.go
│   │       │   │   │   ├── deleteconversation.go
│   │       │   │   │   ├── deletemessage.go
│   │       │   │   │   ├── editmessage.go
│   │       │   │   │   ├── messagelist.go
│   │       │   │   │   └── updateconversation.go
│   │       │   │   ├── convert.go
│   │       │   │   ├── database/
│   │       │   │   │   ├── adapt.go
│   │       │   │   │   ├── common.go
│   │       │   │   │   ├── customsql.go
│   │       │   │   │   ├── customsql_test.go
│   │       │   │   │   ├── delete.go
│   │       │   │   │   ├── insert.go
│   │       │   │   │   ├── query.go
│   │       │   │   │   ├── query_test.go
│   │       │   │   │   └── update.go
│   │       │   │   ├── emitter/
│   │       │   │   │   └── emitter.go
│   │       │   │   ├── entry/
│   │       │   │   │   └── entry.go
│   │       │   │   ├── exit/
│   │       │   │   │   └── exit.go
│   │       │   │   ├── httprequester/
│   │       │   │   │   ├── adapt.go
│   │       │   │   │   ├── http_requester.go
│   │       │   │   │   └── http_requester_test.go
│   │       │   │   ├── intentdetector/
│   │       │   │   │   ├── intent_detector.go
│   │       │   │   │   ├── prompt.go
│   │       │   │   │   └── prompt_test.go
│   │       │   │   ├── interrupt.go
│   │       │   │   ├── json/
│   │       │   │   │   ├── json_deserialization.go
│   │       │   │   │   ├── json_deserialization_test.go
│   │       │   │   │   ├── json_serialization.go
│   │       │   │   │   └── json_serialization_test.go
│   │       │   │   ├── knowledge/
│   │       │   │   │   ├── adaptor.go
│   │       │   │   │   ├── knowledge_deleter.go
│   │       │   │   │   ├── knowledge_indexer.go
│   │       │   │   │   └── knowledge_retrieve.go
│   │       │   │   ├── llm/
│   │       │   │   │   ├── llm.go
│   │       │   │   │   ├── model_with_info.go
│   │       │   │   │   ├── plugin.go
│   │       │   │   │   ├── prompt.go
│   │       │   │   │   └── prompt_test.go
│   │       │   │   ├── loop/
│   │       │   │   │   ├── break/
│   │       │   │   │   │   └── break.go
│   │       │   │   │   ├── continue/
│   │       │   │   │   │   └── continue.go
│   │       │   │   │   └── loop.go
│   │       │   │   ├── node.go
│   │       │   │   ├── option.go
│   │       │   │   ├── parent_intermediate.go
│   │       │   │   ├── plugin/
│   │       │   │   │   ├── exec.go
│   │       │   │   │   └── plugin.go
│   │       │   │   ├── qa/
│   │       │   │   │   └── question_answer.go
│   │       │   │   ├── receiver/
│   │       │   │   │   ├── input_receiver.go
│   │       │   │   │   └── input_receiver_test.go
│   │       │   │   ├── selector/
│   │       │   │   │   ├── callbacks.go
│   │       │   │   │   ├── clause.go
│   │       │   │   │   ├── clause_test.go
│   │       │   │   │   ├── operator.go
│   │       │   │   │   ├── operator_test.go
│   │       │   │   │   ├── schema.go
│   │       │   │   │   └── selector.go
│   │       │   │   ├── state.go
│   │       │   │   ├── stream.go
│   │       │   │   ├── subworkflow/
│   │       │   │   │   └── sub_workflow.go
│   │       │   │   ├── template.go
│   │       │   │   ├── textprocessor/
│   │       │   │   │   └── text_processor.go
│   │       │   │   ├── utils.go
│   │       │   │   ├── utils_test.go
│   │       │   │   ├── variableaggregator/
│   │       │   │   │   └── variable_aggregator.go
│   │       │   │   └── variableassigner/
│   │       │   │       ├── variable_assign.go
│   │       │   │       ├── variable_assign_in_loop.go
│   │       │   │       └── variable_assign_test.go
│   │       │   ├── repo/
│   │       │   │   ├── cancel_signal_store.go
│   │       │   │   ├── conversation_repository.go
│   │       │   │   ├── dal/
│   │       │   │   │   ├── model/
│   │       │   │   │   │   ├── app_conversation_template_draft.gen.go
│   │       │   │   │   │   ├── app_conversation_template_online.gen.go
│   │       │   │   │   │   ├── app_dynamic_conversation_draft.gen.go
│   │       │   │   │   │   ├── app_dynamic_conversation_online.gen.go
│   │       │   │   │   │   ├── app_static_conversation_draft.gen.go
│   │       │   │   │   │   ├── app_static_conversation_online.gen.go
│   │       │   │   │   │   ├── chat_flow_role_config.gen.go
│   │       │   │   │   │   ├── connector_workflow_version.gen.go
│   │       │   │   │   │   ├── node_execution.gen.go
│   │       │   │   │   │   ├── workflow_draft.gen.go
│   │       │   │   │   │   ├── workflow_execution.gen.go
│   │       │   │   │   │   ├── workflow_meta.gen.go
│   │       │   │   │   │   ├── workflow_reference.gen.go
│   │       │   │   │   │   ├── workflow_snapshot.gen.go
│   │       │   │   │   │   └── workflow_version.gen.go
│   │       │   │   │   └── query/
│   │       │   │   │       ├── app_conversation_template_draft.gen.go
│   │       │   │   │       ├── app_conversation_template_online.gen.go
│   │       │   │   │       ├── app_dynamic_conversation_draft.gen.go
│   │       │   │   │       ├── app_dynamic_conversation_online.gen.go
│   │       │   │   │       ├── app_static_conversation_draft.gen.go
│   │       │   │   │       ├── app_static_conversation_online.gen.go
│   │       │   │   │       ├── chat_flow_role_config.gen.go
│   │       │   │   │       ├── connector_workflow_version.gen.go
│   │       │   │   │       ├── gen.go
│   │       │   │   │       ├── node_execution.gen.go
│   │       │   │   │       ├── workflow_draft.gen.go
│   │       │   │   │       ├── workflow_execution.gen.go
│   │       │   │   │       ├── workflow_meta.gen.go
│   │       │   │   │       ├── workflow_reference.gen.go
│   │       │   │   │       ├── workflow_snapshot.gen.go
│   │       │   │   │       └── workflow_version.gen.go
│   │       │   │   ├── execute_history_store.go
│   │       │   │   ├── execute_history_store_test.go
│   │       │   │   ├── interrupt_event_store.go
│   │       │   │   ├── repository.go
│   │       │   │   └── suggest.go
│   │       │   └── schema/
│   │       │       ├── branch_schema.go
│   │       │       ├── node_builder.go
│   │       │       ├── node_schema.go
│   │       │       ├── stream.go
│   │       │       └── workflow_schema.go
│   │       ├── plugin/
│   │       │   ├── model.go
│   │       │   ├── plugin.go
│   │       │   └── plugin_test.go
│   │       ├── service/
│   │       │   ├── as_tool_impl.go
│   │       │   ├── conversation_impl.go
│   │       │   ├── executable_impl.go
│   │       │   ├── executable_impl_test.go
│   │       │   ├── global_handler.go
│   │       │   ├── service_impl.go
│   │       │   └── utils.go
│   │       └── variable/
│   │           ├── variable.go
│   │           ├── variable_impl.go
│   │           └── varmock/
│   │               └── var_mock.go
│   ├── go.mod
│   ├── go.sum
│   ├── infra/
│   │   ├── cache/
│   │   │   ├── cache.go
│   │   │   └── impl/
│   │   │       └── redis/
│   │   │           └── redis.go
│   │   ├── checkpoint/
│   │   │   ├── mem.go
│   │   │   └── redis.go
│   │   ├── coderunner/
│   │   │   ├── code.go
│   │   │   └── impl/
│   │   │       ├── direct/
│   │   │       │   └── runner.go
│   │   │       ├── impl.go
│   │   │       ├── sandbox/
│   │   │       │   └── runner.go
│   │   │       └── script/
│   │   │           └── sandbox.py
│   │   ├── document/
│   │   │   ├── extra.go
│   │   │   ├── messages2query/
│   │   │   │   ├── impl/
│   │   │   │   │   ├── builtin/
│   │   │   │   │   │   ├── messages_to_query.go
│   │   │   │   │   │   └── messages_to_query_test.go
│   │   │   │   │   └── impl.go
│   │   │   │   ├── messages_to_query.go
│   │   │   │   └── options.go
│   │   │   ├── nl2sql/
│   │   │   │   ├── impl/
│   │   │   │   │   ├── builtin/
│   │   │   │   │   │   ├── nl2sql.go
│   │   │   │   │   │   └── nl2sql_test.go
│   │   │   │   │   └── impl.go
│   │   │   │   ├── nl2sql.go
│   │   │   │   └── options.go
│   │   │   ├── ocr/
│   │   │   │   ├── impl/
│   │   │   │   │   ├── impl.go
│   │   │   │   │   ├── ppocr/
│   │   │   │   │   │   └── ppocr.go
│   │   │   │   │   └── veocr/
│   │   │   │   │       └── ve_ocr.go
│   │   │   │   └── ocr.go
│   │   │   ├── parser/
│   │   │   │   ├── impl/
│   │   │   │   │   ├── builtin/
│   │   │   │   │   │   ├── align_schema.go
│   │   │   │   │   │   ├── align_schema_test.go
│   │   │   │   │   │   ├── chunk_custom.go
│   │   │   │   │   │   ├── chunk_custom_test.go
│   │   │   │   │   │   ├── convert.go
│   │   │   │   │   │   ├── image.go
│   │   │   │   │   │   ├── manager.go
│   │   │   │   │   │   ├── parse_csv.go
│   │   │   │   │   │   ├── parse_csv_test.go
│   │   │   │   │   │   ├── parse_docx.py
│   │   │   │   │   │   ├── parse_image.go
│   │   │   │   │   │   ├── parse_iter.go
│   │   │   │   │   │   ├── parse_json.go
│   │   │   │   │   │   ├── parse_json_maps.go
│   │   │   │   │   │   ├── parse_json_maps_test.go
│   │   │   │   │   │   ├── parse_json_test.go
│   │   │   │   │   │   ├── parse_markdown.go
│   │   │   │   │   │   ├── parse_markdown_test.go
│   │   │   │   │   │   ├── parse_pdf.py
│   │   │   │   │   │   ├── parse_text.go
│   │   │   │   │   │   ├── parse_xlsx.go
│   │   │   │   │   │   ├── parse_xlsx_test.go
│   │   │   │   │   │   ├── parser.go
│   │   │   │   │   │   ├── py_parser_protocol.go
│   │   │   │   │   │   ├── test_data/
│   │   │   │   │   │   │   ├── test_csv.csv
│   │   │   │   │   │   │   ├── test_csv_badcase_1.csv
│   │   │   │   │   │   │   ├── test_csv_header_only.csv
│   │   │   │   │   │   │   ├── test_docx.docx
│   │   │   │   │   │   │   ├── test_docx_1.docx
│   │   │   │   │   │   │   ├── test_markdown.md
│   │   │   │   │   │   │   └── test_xlsx.xlsx
│   │   │   │   │   │   └── util.go
│   │   │   │   │   ├── impl.go
│   │   │   │   │   └── ppstructure/
│   │   │   │   │       ├── manager.go
│   │   │   │   │       └── parser.go
│   │   │   │   ├── manager.go
│   │   │   │   └── parser.go
│   │   │   ├── progressbar/
│   │   │   │   ├── impl/
│   │   │   │   │   └── progressbar/
│   │   │   │   │       └── impl.go
│   │   │   │   └── interface.go
│   │   │   ├── rerank/
│   │   │   │   ├── impl/
│   │   │   │   │   ├── impl.go
│   │   │   │   │   ├── rrf/
│   │   │   │   │   │   └── rrf.go
│   │   │   │   │   └── vikingdb/
│   │   │   │   │       └── vikingdb.go
│   │   │   │   └── rerank.go
│   │   │   ├── searchstore/
│   │   │   │   ├── dsl.go
│   │   │   │   ├── impl/
│   │   │   │   │   ├── elasticsearch/
│   │   │   │   │   │   ├── consts.go
│   │   │   │   │   │   ├── elasticsearch_manager.go
│   │   │   │   │   │   └── elasticsearch_searchstore.go
│   │   │   │   │   ├── impl.go
│   │   │   │   │   ├── milvus/
│   │   │   │   │   │   ├── consts.go
│   │   │   │   │   │   ├── convert.go
│   │   │   │   │   │   ├── milvus_manager.go
│   │   │   │   │   │   └── milvus_searchstore.go
│   │   │   │   │   ├── oceanbase/
│   │   │   │   │   │   ├── consts.go
│   │   │   │   │   │   ├── convert.go
│   │   │   │   │   │   ├── factory.go
│   │   │   │   │   │   ├── oceanbase_manager.go
│   │   │   │   │   │   ├── oceanbase_searchstore.go
│   │   │   │   │   │   └── register.go
│   │   │   │   │   └── vikingdb/
│   │   │   │   │       ├── consts.go
│   │   │   │   │       ├── vikingdb_manager.go
│   │   │   │   │       ├── vikingdb_searchstore.go
│   │   │   │   │       └── vk_test.go
│   │   │   │   ├── manager.go
│   │   │   │   ├── options.go
│   │   │   │   └── searchstore.go
│   │   │   └── table.go
│   │   ├── dynconf/
│   │   │   ├── impl/
│   │   │   │   ├── .gitkeep
│   │   │   │   └── static/
│   │   │   │       ├── internal/
│   │   │   │       │   ├── common.go
│   │   │   │       │   ├── raw_json.go
│   │   │   │       │   └── raw_yaml.go
│   │   │   │       ├── json.go
│   │   │   │       ├── static_config.go
│   │   │   │       └── yaml.go
│   │   │   └── provider.go
│   │   ├── embedding/
│   │   │   ├── embedding.go
│   │   │   └── impl/
│   │   │       ├── ark/
│   │   │       │   └── ark.go
│   │   │       ├── http/
│   │   │       │   ├── http.go
│   │   │       │   └── http_test.go
│   │   │       ├── impl.go
│   │   │       └── wrap/
│   │   │           ├── dense_only.go
│   │   │           ├── gemini.go
│   │   │           ├── ollama.go
│   │   │           └── openai.go
│   │   ├── es/
│   │   │   ├── es.go
│   │   │   ├── impl/
│   │   │   │   └── es/
│   │   │   │       ├── es7.go
│   │   │   │       ├── es8.go
│   │   │   │       ├── es_impl.go
│   │   │   │       └── parse_address.go
│   │   │   ├── model.go
│   │   │   └── query.go
│   │   ├── eventbus/
│   │   │   ├── consume_option.go
│   │   │   ├── eventbus.go
│   │   │   ├── impl/
│   │   │   │   ├── eventbus.go
│   │   │   │   ├── kafka/
│   │   │   │   │   ├── consumer.go
│   │   │   │   │   └── producer.go
│   │   │   │   ├── nats/
│   │   │   │   │   ├── consumer.go
│   │   │   │   │   ├── nats_test.go
│   │   │   │   │   └── producer.go
│   │   │   │   ├── nsq/
│   │   │   │   │   ├── consumer.go
│   │   │   │   │   └── producer.go
│   │   │   │   ├── pulsar/
│   │   │   │   │   ├── consumer.go
│   │   │   │   │   ├── producer.go
│   │   │   │   │   └── pulsar_test.go
│   │   │   │   └── rmq/
│   │   │   │       ├── consumer.go
│   │   │   │       ├── local_test.go
│   │   │   │       └── producer.go
│   │   │   └── send_option.go
│   │   ├── idgen/
│   │   │   ├── idgen.go
│   │   │   └── impl/
│   │   │       └── idgen/
│   │   │           └── idgen.go
│   │   ├── imagex/
│   │   │   ├── get_resource_opt.go
│   │   │   ├── imagex.go
│   │   │   ├── impl/
│   │   │   │   └── veimagex/
│   │   │   │       └── veimagex.go
│   │   │   └── upload_auth_opt.go
│   │   ├── oceanbase/
│   │   │   ├── oceanbase.go
│   │   │   ├── oceanbase_official.go
│   │   │   └── types.go
│   │   ├── orm/
│   │   │   ├── database.go
│   │   │   └── impl/
│   │   │       └── mysql/
│   │   │           └── mysql.go
│   │   ├── rdb/
│   │   │   ├── entity/
│   │   │   │   ├── const.go
│   │   │   │   └── rdb.go
│   │   │   ├── impl/
│   │   │   │   └── rdb/
│   │   │   │       ├── mysql.go
│   │   │   │       └── mysql_test.go
│   │   │   └── rdb.go
│   │   ├── sqlparser/
│   │   │   ├── impl/
│   │   │   │   └── sqlparser/
│   │   │   │       ├── sql_parser.go
│   │   │   │       └── sql_parser_test.go
│   │   │   └── sql_parser.go
│   │   ├── sse/
│   │   │   ├── impl/
│   │   │   │   └── sse/
│   │   │   │       └── sse.go
│   │   │   └── sse.go
│   │   └── storage/
│   │       ├── impl/
│   │       │   ├── internal/
│   │       │   │   └── fileutil/
│   │       │   │       └── file_util.go
│   │       │   ├── minio/
│   │       │   │   ├── minio.go
│   │       │   │   └── minio_imagex.go
│   │       │   ├── s3/
│   │       │   │   ├── s3.go
│   │       │   │   └── s3_imagex.go
│   │       │   ├── storage.go
│   │       │   └── tos/
│   │       │       ├── tos.go
│   │       │       └── tos_imagex.go
│   │       ├── option.go
│   │       └── storage.go
│   ├── internal/
│   │   ├── mock/
│   │   │   ├── crossdomain/
│   │   │   │   └── crossuser/
│   │   │   │       └── crossuser.go
│   │   │   ├── domain/
│   │   │   │   ├── agent/
│   │   │   │   │   └── singleagent/
│   │   │   │   │       ├── database_service_mock.go
│   │   │   │   │       ├── knowledge_mock.go
│   │   │   │   │       └── single_agent_mock.go
│   │   │   │   ├── conversation/
│   │   │   │   │   ├── agentrun/
│   │   │   │   │   │   └── agent_run_mock.go
│   │   │   │   │   └── conversation/
│   │   │   │   │       └── conversation_mock.go
│   │   │   │   ├── memory/
│   │   │   │   │   └── database/
│   │   │   │   │       ├── crossdomain/
│   │   │   │   │       │   └── search.go
│   │   │   │   │       └── database_mock.go
│   │   │   │   ├── plugin/
│   │   │   │   │   └── interface.go
│   │   │   │   ├── shortcutcmd/
│   │   │   │   │   └── shortcut_cmd_mock.go
│   │   │   │   ├── upload/
│   │   │   │   │   └── upload_service_mock.go
│   │   │   │   └── workflow/
│   │   │   │       ├── crossdomain/
│   │   │   │       │   └── code/
│   │   │   │       │       └── code_mock.go
│   │   │   │       └── interface.go
│   │   │   └── infra/
│   │   │       ├── chatmodel/
│   │   │       │   └── base_model_mock.go
│   │   │       ├── eventbus/
│   │   │       │   └── eventbus_mock.go
│   │   │       ├── idgen/
│   │   │       │   └── idgen_mock.go
│   │   │       ├── imagex/
│   │   │       │   └── imagex_mock.go
│   │   │       ├── nl2sql_mock/
│   │   │       │   └── nl2sql_mock.go
│   │   │       ├── orm/
│   │   │       │   └── sqlitedb.go
│   │   │       ├── rdb/
│   │   │       │   └── rdb_mock.go
│   │   │       └── storage/
│   │   │           └── storage_mock.go
│   │   └── testutil/
│   │       └── chat_model.go
│   ├── main.go
│   ├── pkg/
│   │   ├── ctxcache/
│   │   │   ├── ctx_cache.go
│   │   │   └── ctx_cache_test.go
│   │   ├── envkey/
│   │   │   └── env_key.go
│   │   ├── errorx/
│   │   │   ├── code/
│   │   │   │   └── register.go
│   │   │   ├── error.go
│   │   │   ├── error_test.go
│   │   │   └── internal/
│   │   │       ├── msg.go
│   │   │       ├── register.go
│   │   │       ├── stack.go
│   │   │       ├── stack_test.go
│   │   │       └── status.go
│   │   ├── execute/
│   │   │   └── execute.go
│   │   ├── goutil/
│   │   │   ├── goutil.go
│   │   │   └── url.go
│   │   ├── hertzutil/
│   │   │   └── domain/
│   │   │       └── origin_host.go
│   │   ├── i18n/
│   │   │   └── i18n.go
│   │   ├── kvstore/
│   │   │   └── kvstore.go
│   │   ├── lang/
│   │   │   ├── conv/
│   │   │   │   └── to.go
│   │   │   ├── crypto/
│   │   │   │   └── md5.go
│   │   │   ├── maps/
│   │   │   │   └── maps.go
│   │   │   ├── ptr/
│   │   │   │   └── ptr.go
│   │   │   ├── sets/
│   │   │   │   └── sets.go
│   │   │   ├── signal/
│   │   │   │   └── signal.go
│   │   │   ├── slices/
│   │   │   │   └── iter.go
│   │   │   ├── sqlutil/
│   │   │   │   └── sqlutil.go
│   │   │   └── ternary/
│   │   │       └── ternary.go
│   │   ├── logs/
│   │   │   ├── default.go
│   │   │   └── logger.go
│   │   ├── saasapi/
│   │   │   └── client.go
│   │   ├── safego/
│   │   │   ├── panic_err.go
│   │   │   └── safego.go
│   │   ├── sonic/
│   │   │   └── sonic.go
│   │   ├── taskgroup/
│   │   │   └── taskgroup.go
│   │   └── urltobase64url/
│   │       └── parser.go
│   └── types/
│       ├── consts/
│       │   └── consts.go
│       ├── ddl/
│       │   └── gen_orm_query.go
│       └── errno/
│           ├── agent.go
│           ├── app.go
│           ├── connector.go
│           ├── conversation.go
│           ├── knowledge.go
│           ├── memory.go
│           ├── modelmgr.go
│           ├── permission.go
│           ├── plugin.go
│           ├── prompt.go
│           ├── search.go
│           ├── shortcutcmd.go
│           ├── upload.go
│           ├── user.go
│           └── workflow.go
├── common/
│   ├── _templates/
│   │   ├── _plugins/
│   │   │   ├── SelectTeamPlugin.ts
│   │   │   ├── SetDefaultAuthorPlugin.ts
│   │   │   ├── ShowTemplatePlugin.ts
│   │   │   ├── global.config.ts
│   │   │   └── utils/
│   │   │       ├── index.ts
│   │   │       └── parse-args.ts
│   │   ├── component/
│   │   │   ├── .storybook/
│   │   │   │   ├── main.js
│   │   │   │   └── preview.js
│   │   │   ├── .stylelintrc.js
│   │   │   ├── README.md
│   │   │   ├── __tests__/
│   │   │   │   └── .gitkeep
│   │   │   ├── config/
│   │   │   │   └── rush-project.json
│   │   │   ├── eslint.config.js
│   │   │   ├── init.config.ts
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── demo/
│   │   │   │   │   ├── index.module.less
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── index.tsx
│   │   │   │   └── typings.d.ts
│   │   │   ├── stories/
│   │   │   │   ├── demo.stories.tsx
│   │   │   │   └── hello.mdx
│   │   │   ├── tsconfig.build.json
│   │   │   ├── tsconfig.json
│   │   │   ├── tsconfig.misc.json
│   │   │   └── vitest.config.ts
│   │   ├── node-core/
│   │   │   ├── README.md
│   │   │   ├── __tests__/
│   │   │   │   └── .gitkeep
│   │   │   ├── config/
│   │   │   │   └── rush-project.json
│   │   │   ├── eslint.config.js
│   │   │   ├── init.config.ts
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   └── index.ts
│   │   │   ├── tsconfig.build.json
│   │   │   ├── tsconfig.json
│   │   │   ├── tsconfig.misc.json
│   │   │   └── vitest.config.ts
│   │   ├── rsbuild-web/
│   │   │   ├── .stylelintrc.js
│   │   │   ├── README.md
│   │   │   ├── __tests__/
│   │   │   │   └── .gitkeep
│   │   │   ├── config/
│   │   │   │   └── rush-project.json
│   │   │   ├── eslint.config.js
│   │   │   ├── index.html
│   │   │   ├── init.config.ts
│   │   │   ├── package.json
│   │   │   ├── rsbuild.config.ts
│   │   │   ├── src/
│   │   │   │   ├── app.tsx
│   │   │   │   ├── global.d.ts
│   │   │   │   ├── index.css
│   │   │   │   ├── index.tsx
│   │   │   │   └── pages/
│   │   │   │       ├── main/
│   │   │   │       │   ├── index.module.less
│   │   │   │       │   └── index.tsx
│   │   │   │       └── page1/
│   │   │   │           └── index.tsx
│   │   │   ├── tailwind.config.ts
│   │   │   ├── tsconfig.build.json
│   │   │   ├── tsconfig.json
│   │   │   ├── tsconfig.misc.json
│   │   │   └── vitest.config.ts
│   │   ├── rspack-web/
│   │   │   ├── .stylelintrc.js
│   │   │   ├── README.md
│   │   │   ├── __tests__/
│   │   │   │   └── .gitkeep
│   │   │   ├── config/
│   │   │   │   └── rush-project.json
│   │   │   ├── env/
│   │   │   │   ├── README.md
│   │   │   │   ├── index.ts
│   │   │   │   ├── scripts/
│   │   │   │   │   └── index.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── eslint.config.js
│   │   │   ├── index.html
│   │   │   ├── init.config.ts
│   │   │   ├── package.json
│   │   │   ├── rspack.config.ts
│   │   │   ├── src/
│   │   │   │   ├── App.css
│   │   │   │   ├── App.tsx
│   │   │   │   ├── components/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── index.tsx
│   │   │   │   ├── pages/
│   │   │   │   │   ├── page1/
│   │   │   │   │   │   ├── index.less
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   └── page2/
│   │   │   │   │       ├── index.tsx
│   │   │   │   │       └── store.ts
│   │   │   │   ├── router.tsx
│   │   │   │   ├── store/
│   │   │   │   │   ├── store.ts
│   │   │   │   │   └── userinfo-slice.ts
│   │   │   │   ├── typing/
│   │   │   │   │   ├── env/
│   │   │   │   │   │   └── index.d.ts
│   │   │   │   │   └── global.d.ts
│   │   │   │   └── utils/
│   │   │   │       └── .gitkeep
│   │   │   ├── tailwind.config.js
│   │   │   ├── tsconfig.build.json
│   │   │   ├── tsconfig.json
│   │   │   ├── tsconfig.misc.json
│   │   │   └── vitest.config.ts
│   │   ├── solid-component/
│   │   │   ├── .storybook/
│   │   │   │   ├── main.js
│   │   │   │   └── preview.js
│   │   │   ├── .stylelintrc.js
│   │   │   ├── README.md
│   │   │   ├── __tests__/
│   │   │   │   └── .gitkeep
│   │   │   ├── config/
│   │   │   │   └── rush-project.json
│   │   │   ├── eslint.config.js
│   │   │   ├── init.config.ts
│   │   │   ├── package.json
│   │   │   ├── rollup.config.mjs
│   │   │   ├── src/
│   │   │   │   ├── demo/
│   │   │   │   │   ├── index.module.less
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── index.ts
│   │   │   │   ├── main.css
│   │   │   │   └── typings.d.ts
│   │   │   ├── stories/
│   │   │   │   ├── demo.stories.tsx
│   │   │   │   └── hello.mdx
│   │   │   ├── tailwind.config.ts
│   │   │   ├── tsconfig.build.json
│   │   │   ├── tsconfig.json
│   │   │   ├── tsconfig.misc.json
│   │   │   └── vitest.config.ts
│   │   └── template.json
│   ├── autoinstallers/
│   │   ├── package.json
│   │   ├── plugins/
│   │   │   ├── package.json
│   │   │   └── rush-plugins/
│   │   │       ├── @coze-arch/
│   │   │       │   ├── rush-clear-build-cache-plugin/
│   │   │       │   │   ├── @coze-arch/
│   │   │       │   │   │   └── rush-clear-build-cache-plugin/
│   │   │       │   │   │       └── command-line.json
│   │   │       │   │   └── rush-plugin-manifest.json
│   │   │       │   ├── rush-dep-level-check-plugin/
│   │   │       │   │   └── rush-plugin-manifest.json
│   │   │       │   ├── rush-fix-ts-refers-plugin/
│   │   │       │   │   ├── @coze-arch/
│   │   │       │   │   │   └── rush-fix-ts-refers-plugin/
│   │   │       │   │   │       └── command-line.json
│   │   │       │   │   └── rush-plugin-manifest.json
│   │   │       │   ├── rush-increment-run-plugin/
│   │   │       │   │   ├── @coze-arch/
│   │   │       │   │   │   └── rush-increment-run-plugin/
│   │   │       │   │   │       └── command-line.json
│   │   │       │   │   └── rush-plugin-manifest.json
│   │   │       │   ├── rush-publish-plugin/
│   │   │       │   │   ├── @coze-arch/
│   │   │       │   │   │   └── rush-publish-plugin/
│   │   │       │   │   │       └── command-line.json
│   │   │       │   │   └── rush-plugin-manifest.json
│   │   │       │   └── rush-run-tsc-plugin/
│   │   │       │       ├── @coze-arch/
│   │   │       │       │   └── rush-run-tsc-plugin/
│   │   │       │       │       └── command-line.json
│   │   │       │       └── rush-plugin-manifest.json
│   │   │       └── rush-init-project-plugin/
│   │   │           ├── rush-init-project-plugin/
│   │   │           │   └── command-line.json
│   │   │           └── rush-plugin-manifest.json
│   │   ├── rush-commands/
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   └── convert-comments/
│   │   │   │       ├── README.md
│   │   │   │       ├── cli/
│   │   │   │       │   ├── command.ts
│   │   │   │       │   └── config.ts
│   │   │   │       ├── example/
│   │   │   │       │   └── config.json
│   │   │   │       ├── implementation-plan.md
│   │   │   │       ├── index.ts
│   │   │   │       ├── modules/
│   │   │   │       │   ├── chinese-detection.ts
│   │   │   │       │   ├── file-replacement.ts
│   │   │   │       │   ├── file-scan.ts
│   │   │   │       │   ├── report.ts
│   │   │   │       │   └── translation.ts
│   │   │   │       ├── requirements.md
│   │   │   │       ├── technical-specification.md
│   │   │   │       ├── types/
│   │   │   │       │   ├── config.ts
│   │   │   │       │   └── index.ts
│   │   │   │       ├── utils/
│   │   │   │       │   ├── chinese.ts
│   │   │   │       │   ├── fp.ts
│   │   │   │       │   ├── git.ts
│   │   │   │       │   ├── language.ts
│   │   │   │       │   └── semaphore.ts
│   │   │   │       └── volc/
│   │   │   │           └── translate.ts
│   │   │   └── tsconfig.json
│   │   ├── rush-commitlint/
│   │   │   ├── .cz-config.js
│   │   │   ├── commitlint.config.js
│   │   │   ├── package.json
│   │   │   └── utils.js
│   │   └── rush-lint-staged/
│   │       ├── .lintstagedrc.js
│   │       ├── package.json
│   │       └── utils.js
│   ├── config/
│   │   ├── rush/
│   │   │   ├── .npmrc-publish
│   │   │   ├── artifactory.json
│   │   │   ├── build-cache.json
│   │   │   ├── cobuild.json
│   │   │   ├── command-line.json
│   │   │   ├── custom-tips.json
│   │   │   ├── deploy.json
│   │   │   ├── experiments.json
│   │   │   ├── pnpm-config.json
│   │   │   ├── repo-state.json
│   │   │   ├── rush-plugins.json
│   │   │   ├── subspaces.json
│   │   │   └── version-policies.json
│   │   ├── rush-plugins/
│   │   │   └── rush-bytedance-build-cache-plugin.json
│   │   └── subspaces/
│   │       ├── default/
│   │       │   ├── .npmrc
│   │       │   ├── .pnpmfile.cjs
│   │       │   ├── common-versions.json
│   │       │   ├── pnpm-config.json
│   │       │   ├── pnpm-patches/
│   │       │   │   ├── @douyinfe__semi-rspack-plugin@2.61.0.patch
│   │       │   │   ├── ahooks@3.7.8.patch
│   │       │   │   ├── web-streams-polyfill@3.2.1.patch
│   │       │   │   └── web-streams-polyfill@3.3.2.patch
│   │       │   └── repo-state.json
│   │       ├── e2e/
│   │       │   ├── .npmrc
│   │       │   ├── pnpm-config.json
│   │       │   └── repo-state.json
│   │       └── e2e-opencoze/
│   │           └── repo-state.json
│   ├── git-hooks/
│   │   ├── commit-msg
│   │   ├── commit-msg.sample
│   │   ├── post-checkout
│   │   ├── post-commit
│   │   ├── post-merge
│   │   ├── pre-commit
│   │   └── pre-push
│   └── scripts/
│       ├── install-run-rush-pnpm.js
│       ├── install-run-rush.js
│       ├── install-run-rushx.js
│       └── install-run.js
├── cspell.json
├── docker/
│   ├── atlas/
│   │   ├── README.md
│   │   ├── atlas.hcl
│   │   ├── migrations/
│   │   │   ├── 20250703095335_initial.sql
│   │   │   ├── 20250703115304_update.sql
│   │   │   ├── 20250704040445_update.sql
│   │   │   ├── 20250708075302_update.sql
│   │   │   ├── 20250710100212_update.sql
│   │   │   ├── 20250711034533_update.sql
│   │   │   ├── 20250717125913_update.sql
│   │   │   ├── 20250718104121_update.sql
│   │   │   ├── 20250730131847_update.sql
│   │   │   ├── 20250802115105_update.sql
│   │   │   ├── 20250812093734_update.sql
│   │   │   ├── 20250813081543_update.sql
│   │   │   ├── 20250822060516_update.sql
│   │   │   ├── 20251015103940_update.sql
│   │   │   ├── 20251016034721_update.sql
│   │   │   ├── 20251024091145_update.sql
│   │   │   ├── 20251028085526_update.sql
│   │   │   └── atlas.sum
│   │   └── opencoze_latest_schema.hcl
│   ├── docker-compose-debug.yml
│   ├── docker-compose-oceanbase.yml
│   ├── docker-compose-oceanbase_debug.yml
│   ├── docker-compose.yml
│   ├── nginx/
│   │   ├── conf.d/
│   │   │   └── default.conf
│   │   ├── nginx.conf
│   │   └── ssl/
│   │       └── .gitkeep
│   └── volumes/
│       ├── elasticsearch/
│       │   ├── elasticsearch.yml
│       │   ├── es_index_schema/
│       │   │   ├── coze_resource.index-template.json
│       │   │   └── project_draft.index-template.json
│       │   └── setup_es.sh
│       ├── etcd/
│       │   └── etcd.conf.yml
│       ├── minio/
│       │   └── .mc/
│       │       └── config.json
│       ├── mysql/
│       │   ├── schema.sql
│       │   └── sql_init.sql
│       └── rocketmq/
│           └── broker.conf
├── docs/
│   ├── .gitkeep
│   ├── nats-eventbus-integration-guide-en.md
│   ├── nats-eventbus-integration-guide.md
│   ├── oceanbase-integration-guide-en.md
│   ├── oceanbase-integration-guide.md
│   ├── pulsar-eventbus-integration-guide-en.md
│   └── pulsar-eventbus-integration-guide.md
├── frontend/
│   ├── .gitignore
│   ├── .npmignore
│   ├── .prettierignore
│   ├── .stylelintignore
│   ├── Dockerfile
│   ├── README.md
│   ├── apps/
│   │   └── coze-studio/
│   │       ├── .stylelintrc.js
│   │       ├── README.md
│   │       ├── __tests__/
│   │       │   └── .gitkeep
│   │       ├── config/
│   │       │   └── rush-project.json
│   │       ├── eslint.config.js
│   │       ├── index.html
│   │       ├── package.json
│   │       ├── postcss.config.js
│   │       ├── rsbuild.config.ts
│   │       ├── server.js
│   │       ├── src/
│   │       │   ├── app.tsx
│   │       │   ├── global.d.ts
│   │       │   ├── global.less
│   │       │   ├── index.less
│   │       │   ├── index.tsx
│   │       │   ├── layout.tsx
│   │       │   ├── pages/
│   │       │   │   ├── develop.tsx
│   │       │   │   ├── docs.tsx
│   │       │   │   ├── explore.tsx
│   │       │   │   ├── library.tsx
│   │       │   │   ├── plugin/
│   │       │   │   │   ├── layout.tsx
│   │       │   │   │   ├── page.tsx
│   │       │   │   │   └── tool/
│   │       │   │   │       ├── page.tsx
│   │       │   │   │       └── plugin-mock-set/
│   │       │   │   │           ├── detail/
│   │       │   │   │           │   └── page.tsx
│   │       │   │   │           └── page.tsx
│   │       │   │   └── redirect.tsx
│   │       │   └── routes/
│   │       │       ├── async-components.tsx
│   │       │       └── index.tsx
│   │       ├── tailwind.config.ts
│   │       ├── tsconfig.build.json
│   │       ├── tsconfig.json
│   │       ├── tsconfig.misc.json
│   │       └── vitest.config.ts
│   ├── config/
│   │   ├── eslint-config/
│   │   │   ├── .prettierrc.js
│   │   │   ├── README.md
│   │   │   ├── compat.js
│   │   │   ├── config/
│   │   │   │   └── rush-project.json
│   │   │   ├── eslint.config.base.js
│   │   │   ├── eslint.config.js
│   │   │   ├── eslint.config.node.js
│   │   │   ├── eslint.config.web.js
│   │   │   ├── package.json
│   │   │   ├── rules/
│   │   │   │   ├── common-standard.js
│   │   │   │   ├── import.js
│   │   │   │   ├── js-standard.js
│   │   │   │   ├── test-standard.js
│   │   │   │   └── ts-standard.js
│   │   │   ├── scripts/
│   │   │   │   ├── reslint.sh
│   │   │   │   └── rprettier.sh
│   │   │   ├── src/
│   │   │   │   ├── define-config.ts
│   │   │   │   └── index.js
│   │   │   ├── tsconfig.build.json
│   │   │   ├── tsconfig.json
│   │   │   └── tsconfig.misc.json
│   │   ├── postcss-config/
│   │   │   ├── README.md
│   │   │   ├── config/
│   │   │   │   └── rush-project.json
│   │   │   ├── eslint.config.js
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   └── index.js
│   │   │   ├── tsconfig.build.json
│   │   │   ├── tsconfig.json
│   │   │   └── tsconfig.misc.json
│   │   ├── rsbuild-config/
│   │   │   ├── README.md
│   │   │   ├── __tests__/
│   │   │   │   └── .gitkeep
│   │   │   ├── config/
│   │   │   │   └── rush-project.json
│   │   │   ├── eslint.config.js
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   └── index.ts
│   │   │   ├── tsconfig.build.json
│   │   │   ├── tsconfig.json
│   │   │   ├── tsconfig.misc.json
│   │   │   └── vitest.config.ts
│   │   ├── stylelint-config/
│   │   │   ├── .stylelintrc.js
│   │   │   ├── README.md
│   │   │   ├── config/
│   │   │   │   └── rush-project.json
│   │   │   ├── eslint.config.js
│   │   │   ├── examples/
│   │   │   │   ├── class-pattern.less
│   │   │   │   ├── first-level-global.less
│   │   │   │   ├── max-nesting-level.less
│   │   │   │   └── no-important.less
│   │   │   ├── package.json
│   │   │   ├── plugins/
│   │   │   │   └── plugin-disallow-nesting-level-one-global.js
│   │   │   ├── src/
│   │   │   │   ├── define-config.ts
│   │   │   │   └── index.js
│   │   │   ├── tsconfig.build.json
│   │   │   ├── tsconfig.json
│   │   │   └── tsconfig.misc.json
│   │   ├── tailwind-config/
│   │   │   ├── README.md
│   │   │   ├── config/
│   │   │   │   └── rush-project.json
│   │   │   ├── eslint.config.js
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── coze.js
│   │   │   │   ├── dark.js
│   │   │   │   ├── design-token.ts
│   │   │   │   ├── index.js
│   │   │   │   ├── light.js
│   │   │   │   ├── tailwind-contents.ts
│   │   │   │   └── util.js
│   │   │   ├── tsconfig.build.json
│   │   │   ├── tsconfig.json
│   │   │   └── tsconfig.misc.json
│   │   ├── ts-config/
│   │   │   ├── README.md
│   │   │   ├── config/
│   │   │   │   ├── rush-project.json
│   │   │   │   └── rushx-config.json
│   │   │   ├── eslint.config.js
│   │   │   ├── global.d.ts
│   │   │   ├── package.json
│   │   │   ├── scripts/
│   │   │   │   └── rtsc.sh
│   │   │   ├── tsconfig.base.json
│   │   │   ├── tsconfig.build.json
│   │   │   ├── tsconfig.node.json
│   │   │   └── tsconfig.web.json
│   │   └── vitest-config/
│   │       ├── README.md
│   │       ├── config/
│   │       │   └── rush-project.json
│   │       ├── eslint.config.js
│   │       ├── package.json
│   │       ├── src/
│   │       │   ├── define-config.ts
│   │       │   ├── index.js
│   │       │   ├── preset-default.ts
│   │       │   ├── preset-node.ts
│   │       │   ├── preset-web.ts
│   │       │   └── tsc-only.ts
│   │       ├── tsconfig.build.json
│   │       └── tsconfig.json
│   ├── disallowed_3rd_libraries.json
│   ├── infra/
│   │   ├── eslint-plugin/
│   │   │   ├── README.md
│   │   │   ├── config/
│   │   │   │   └── rush-project.json
│   │   │   ├── eslint.config.js
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── index.js
│   │   │   │   ├── index.ts
│   │   │   │   ├── processors/
│   │   │   │   │   └── json.ts
│   │   │   │   ├── rules/
│   │   │   │   │   ├── max-lines-per-function/
│   │   │   │   │   │   ├── index.test.ts
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── no-batch-import-or-export/
│   │   │   │   │   │   ├── index.test.ts
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── no-deep-relative-import/
│   │   │   │   │   │   ├── index.test.ts
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── no-duplicated-deps/
│   │   │   │   │   │   ├── index.test.ts
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── no-empty-catch/
│   │   │   │   │   │   ├── index.test.ts
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── no-new-error/
│   │   │   │   │   │   ├── index.test.ts
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── no-pkg-dir-import/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── test/
│   │   │   │   │   │   │   ├── index.test.ts
│   │   │   │   │   │   │   └── utils.test.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── package-disallow-deps/
│   │   │   │   │   │   ├── index.test.ts
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── package-require-author/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── tsx-no-leaked-render/
│   │   │   │   │   │   ├── fixture/
│   │   │   │   │   │   │   ├── react.tsx
│   │   │   │   │   │   │   └── tsconfig.json
│   │   │   │   │   │   ├── index.test.ts
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   └── use-error-in-catch/
│   │   │   │   │       ├── index.test.ts
│   │   │   │   │       └── index.ts
│   │   │   │   └── zustand/
│   │   │   │       ├── index.js
│   │   │   │       ├── index.ts
│   │   │   │       └── rules/
│   │   │   │           ├── __tests__/
│   │   │   │           │   └── utils.test.ts
│   │   │   │           ├── no-get-state-in-comp/
│   │   │   │           │   ├── index.test.ts
│   │   │   │           │   └── index.ts
│   │   │   │           ├── no-state-mutation/
│   │   │   │           │   ├── index.test.ts
│   │   │   │           │   └── index.ts
│   │   │   │           ├── prefer-curry-create/
│   │   │   │           │   ├── index.test.ts
│   │   │   │           │   └── index.ts
│   │   │   │           ├── prefer-selector/
│   │   │   │           │   ├── index.test.ts
│   │   │   │           │   └── index.ts
│   │   │   │           ├── prefer-shallow/
│   │   │   │           │   ├── index.test.ts
│   │   │   │           │   └── index.ts
│   │   │   │           ├── proper-store-typing/
│   │   │   │           │   ├── index.test.ts
│   │   │   │           │   └── index.ts
│   │   │   │           ├── store-filename-convention/
│   │   │   │           │   ├── index.test.ts
│   │   │   │           │   └── index.ts
│   │   │   │           ├── store-name-convention/
│   │   │   │           │   ├── index.test.ts
│   │   │   │           │   └── index.ts
│   │   │   │           ├── tester.ts
│   │   │   │           ├── utils.ts
│   │   │   │           ├── zustand-devtools-config/
│   │   │   │           │   ├── index.test.ts
│   │   │   │           │   └── index.ts
│   │   │   │           └── zustand-prefer-middlewares/
│   │   │   │               ├── index.test.ts
│   │   │   │               └── index.ts
│   │   │   ├── tsconfig.build.json
│   │   │   ├── tsconfig.json
│   │   │   ├── tsconfig.misc.json
│   │   │   └── vitest.config.mts
│   │   ├── idl/
│   │   │   ├── idl-parser/
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   ├── common.ts
│   │   │   │   │   ├── demo.proto.ts
│   │   │   │   │   ├── demo.thrift.ts
│   │   │   │   │   ├── demo.unify.ts
│   │   │   │   │   ├── idl/
│   │   │   │   │   │   ├── dep/
│   │   │   │   │   │   │   ├── base.proto
│   │   │   │   │   │   │   ├── base.thrift
│   │   │   │   │   │   │   ├── basee.proto
│   │   │   │   │   │   │   ├── basee.thrift
│   │   │   │   │   │   │   ├── common.proto
│   │   │   │   │   │   │   └── common.thrift
│   │   │   │   │   │   ├── error.proto
│   │   │   │   │   │   ├── error.thrift
│   │   │   │   │   │   ├── index.proto
│   │   │   │   │   │   ├── index.thrift
│   │   │   │   │   │   ├── unify_base.thrift
│   │   │   │   │   │   ├── unify_dependent1.proto
│   │   │   │   │   │   ├── unify_dependent1.thrift
│   │   │   │   │   │   ├── unify_dependent2.proto
│   │   │   │   │   │   ├── unify_dependent2.thrift
│   │   │   │   │   │   ├── unify_error.thrift
│   │   │   │   │   │   ├── unify_index.proto
│   │   │   │   │   │   ├── unify_index.thrift
│   │   │   │   │   │   ├── unify_search.proto
│   │   │   │   │   │   ├── unify_search.thrift
│   │   │   │   │   │   └── weird.proto
│   │   │   │   │   ├── proto.field.test.ts
│   │   │   │   │   ├── proto.index.test.ts
│   │   │   │   │   ├── proto.method.test.ts
│   │   │   │   │   ├── proto.service.test.ts
│   │   │   │   │   ├── thrift.enum.test.ts
│   │   │   │   │   ├── thrift.field.test.ts
│   │   │   │   │   ├── thrift.function.test.ts
│   │   │   │   │   ├── thrift.index.test.ts
│   │   │   │   │   ├── thrift.service.test.ts
│   │   │   │   │   ├── tsconfig.json
│   │   │   │   │   ├── unify.enum.test.ts
│   │   │   │   │   ├── unify.field.test.ts
│   │   │   │   │   ├── unify.function.test.ts
│   │   │   │   │   ├── unify.index.test.ts
│   │   │   │   │   ├── unify.other.test.ts
│   │   │   │   │   └── unify.service.test.ts
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── common/
│   │   │   │   │   │   ├── extension_type.ts
│   │   │   │   │   │   └── extension_util.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── proto/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── type.ts
│   │   │   │   │   ├── thrift/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── type.ts
│   │   │   │   │   ├── unify/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── proto.ts
│   │   │   │   │   │   ├── thrift.ts
│   │   │   │   │   │   ├── type.ts
│   │   │   │   │   │   └── util.ts
│   │   │   │   │   └── utils/
│   │   │   │   │       └── index.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── idl2ts-cli/
│   │   │   │   ├── README.md
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── actions.ts
│   │   │   │   │   ├── cli.js
│   │   │   │   │   ├── cli.ts
│   │   │   │   │   ├── mock-dev.ts
│   │   │   │   │   ├── optional/
│   │   │   │   │   │   ├── forward.ts
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── plugins/
│   │   │   │   │   │   ├── alias.ts
│   │   │   │   │   │   ├── comment.ts
│   │   │   │   │   │   ├── filter-types-plugin.ts
│   │   │   │   │   │   ├── formatter.ts
│   │   │   │   │   │   ├── local-config.ts
│   │   │   │   │   │   └── mock-plugin.ts
│   │   │   │   │   ├── types.ts
│   │   │   │   │   └── utils.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── idl2ts-generator/
│   │   │   │   ├── README.md
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── context.ts
│   │   │   │   │   ├── core.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── plugin/
│   │   │   │   │   │   ├── adapter-plugin.ts
│   │   │   │   │   │   ├── auto-fix-duplicate-plugin.ts
│   │   │   │   │   │   ├── auto-fix-path-plugin.ts
│   │   │   │   │   │   ├── client-plugin.ts
│   │   │   │   │   │   ├── comment-format-plugin.ts
│   │   │   │   │   │   ├── ignore-struct-field.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── meta-plugin.ts
│   │   │   │   │   │   ├── mock-transformer.ts
│   │   │   │   │   │   ├── pkg-entry-plugin.ts
│   │   │   │   │   │   └── schema-plugin.ts
│   │   │   │   │   ├── template.ts
│   │   │   │   │   ├── type-mapper.ts
│   │   │   │   │   └── types.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── idl2ts-helper/
│   │   │   │   ├── README.md
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── constant.ts
│   │   │   │   │   ├── ctx.ts
│   │   │   │   │   ├── helper.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── parser.ts
│   │   │   │   │   ├── types.ts
│   │   │   │   │   └── utils.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── idl2ts-plugin/
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── plugin.test.ts
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── hooks.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── program.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   └── idl2ts-runtime/
│   │   │       ├── README.md
│   │   │       ├── config/
│   │   │       │   └── rush-project.json
│   │   │       ├── eslint.config.js
│   │   │       ├── package.json
│   │   │       ├── src/
│   │   │       │   ├── config-center.ts
│   │   │       │   ├── create-api.ts
│   │   │       │   ├── index.ts
│   │   │       │   ├── types.ts
│   │   │       │   └── utils.ts
│   │   │       ├── tsconfig.build.json
│   │   │       ├── tsconfig.json
│   │   │       ├── tsconfig.misc.json
│   │   │       └── vitest.config.ts
│   │   ├── plugins/
│   │   │   ├── import-watch-loader/
│   │   │   │   ├── README.md
│   │   │   │   ├── __test__/
│   │   │   │   │   └── index.test.js
│   │   │   │   ├── config/
│   │   │   │   │   ├── rush-project.json
│   │   │   │   │   └── rushx-config.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── index.js
│   │   │   │   ├── package.json
│   │   │   │   └── tsconfig.build.json
│   │   │   └── pkg-root-webpack-plugin/
│   │   │       ├── .gitignore
│   │   │       ├── README.md
│   │   │       ├── __tests__/
│   │   │       │   └── index.test.ts
│   │   │       ├── config/
│   │   │       │   ├── rush-project.json
│   │   │       │   └── rushx-config.json
│   │   │       ├── eslint.config.js
│   │   │       ├── lib/
│   │   │       │   ├── index.d.ts
│   │   │       │   └── index.js
│   │   │       ├── package.json
│   │   │       ├── src/
│   │   │       │   └── index.ts
│   │   │       ├── tsconfig.build.json
│   │   │       ├── tsconfig.json
│   │   │       ├── tsconfig.misc.json
│   │   │       └── vitest.config.ts
│   │   └── utils/
│   │       ├── fs-enhance/
│   │       │   ├── README.md
│   │       │   ├── __tests__/
│   │       │   │   └── file-enhance.test.ts
│   │       │   ├── config/
│   │       │   │   └── rush-project.json
│   │       │   ├── eslint.config.js
│   │       │   ├── package.json
│   │       │   ├── src/
│   │       │   │   └── index.ts
│   │       │   ├── tsconfig.build.json
│   │       │   ├── tsconfig.json
│   │       │   ├── tsconfig.misc.json
│   │       │   └── vitest.config.ts
│   │       ├── monorepo-kits/
│   │       │   ├── README.md
│   │       │   ├── __tests__/
│   │       │   │   └── .gitkeep
│   │       │   ├── config/
│   │       │   │   └── rush-project.json
│   │       │   ├── docs/
│   │       │   │   └── llms.txt
│   │       │   ├── eslint.config.js
│   │       │   ├── package.json
│   │       │   ├── src/
│   │       │   │   ├── index.ts
│   │       │   │   ├── lookup.ts
│   │       │   │   ├── rush-config.ts
│   │       │   │   └── sub-packages.ts
│   │       │   ├── tsconfig.build.json
│   │       │   ├── tsconfig.json
│   │       │   ├── tsconfig.misc.json
│   │       │   └── vitest.config.ts
│   │       └── rush-logger/
│   │           ├── README.md
│   │           ├── __tests__/
│   │           │   └── logger.test.ts
│   │           ├── config/
│   │           │   └── rush-project.json
│   │           ├── eslint.config.js
│   │           ├── package.json
│   │           ├── src/
│   │           │   └── index.ts
│   │           ├── tsconfig.build.json
│   │           ├── tsconfig.json
│   │           ├── tsconfig.misc.json
│   │           └── vitest.config.ts
│   ├── packages/
│   │   ├── agent-ide/
│   │   │   ├── agent-publish/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── bot-publish/
│   │   │   │   │   │       ├── hooks/
│   │   │   │   │   │       │   ├── use-auth-fail.ts
│   │   │   │   │   │       │   └── use-get-bot-info.ts
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── publish-result/
│   │   │   │   │   │       │   ├── component/
│   │   │   │   │   │       │   │   └── publish-result-area/
│   │   │   │   │   │       │   │       ├── index.module.less
│   │   │   │   │   │       │   │       └── index.tsx
│   │   │   │   │   │       │   ├── index.tsx
│   │   │   │   │   │       │   └── typings.ts
│   │   │   │   │   │       └── publish-table/
│   │   │   │   │   │           ├── context/
│   │   │   │   │   │           │   └── index.tsx
│   │   │   │   │   │           ├── get-connector-selectable.ts
│   │   │   │   │   │           ├── hooks/
│   │   │   │   │   │           │   └── use-connectors-publish.ts
│   │   │   │   │   │           ├── index.module.less
│   │   │   │   │   │           ├── index.tsx
│   │   │   │   │   │           └── table-collection/
│   │   │   │   │   │               ├── config-status.tsx
│   │   │   │   │   │               ├── connector-action/
│   │   │   │   │   │               │   ├── api-bind-button.tsx
│   │   │   │   │   │               │   ├── index.ts
│   │   │   │   │   │               │   └── store-bind.tsx
│   │   │   │   │   │               ├── get-config-status.ts
│   │   │   │   │   │               ├── hooks/
│   │   │   │   │   │               │   └── use-auth-success.ts
│   │   │   │   │   │               ├── index.tsx
│   │   │   │   │   │               └── plugin-limit-tooltip.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-audit-adapter/
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── index.test.ts
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   └── use-bot-audit/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-audit-base/
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── audit-error-message/
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── interfaces/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-config-area/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── model-config-view/
│   │   │   │   │   │   ├── dialogue-config-view/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── model-config-view.tsx
│   │   │   │   │   │   └── single-agent-model-view/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── monetize-config/
│   │   │   │   │   │   ├── button/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── panel/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── query-collect/
│   │   │   │   │   │   ├── generate-by-template.tsx
│   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── tips.tsx
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── stories/
│   │   │   │   │   ├── demo.stories.tsx
│   │   │   │   │   └── hello.mdx
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-config-area-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── bot-config-area.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── model-config-view/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── model-config-view.tsx
│   │   │   │   │   │   └── single-agent-model-view/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── stories/
│   │   │   │   │   ├── demo.stories.tsx
│   │   │   │   │   └── hello.mdx
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-editor-context-store/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── context/
│   │   │   │   │   │   └── bot-editor-context/
│   │   │   │   │   │       ├── context.tsx
│   │   │   │   │   │       ├── index.ts
│   │   │   │   │   │       └── type.ts
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   └── model-capability/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── store/
│   │   │   │   │   │   ├── bot-plugins.ts
│   │   │   │   │   │   ├── dataset.ts
│   │   │   │   │   │   ├── free-grab-modal-hierarchy.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   └── get-model-preset-values.ts
│   │   │   │   │   │   ├── model.ts
│   │   │   │   │   │   ├── nl-prompt-modal.ts
│   │   │   │   │   │   ├── onboarding-dirty-logic-compatibility.ts
│   │   │   │   │   │   └── type.ts
│   │   │   │   │   ├── typings.d.ts
│   │   │   │   │   └── utils/
│   │   │   │   │       ├── exhaustive-check.ts
│   │   │   │   │       ├── model/
│   │   │   │   │       │   ├── convert-model-value-type.ts
│   │   │   │   │       │   └── get-model-by-id.ts
│   │   │   │   │       └── model-capability/
│   │   │   │   │           └── index.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-input-length-limit/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── services.test.ts
│   │   │   │   ├── config/
│   │   │   │   │   ├── rush-project.json
│   │   │   │   │   └── rushx-config.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── services/
│   │   │   │   │   │   ├── constants.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── type.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-plugin/
│   │   │   │   ├── entry/
│   │   │   │   │   ├── .stylelintrc.js
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── __tests__/
│   │   │   │   │   │   ├── .gitkeep
│   │   │   │   │   │   ├── hook/
│   │   │   │   │   │   │   └── auth/
│   │   │   │   │   │   │       └── use-auth-for-api-tool.test.ts
│   │   │   │   │   │   ├── setup.ts
│   │   │   │   │   │   └── util/
│   │   │   │   │   │       └── get-env.test.ts
│   │   │   │   │   ├── config/
│   │   │   │   │   │   └── rush-project.json
│   │   │   │   │   ├── eslint.config.js
│   │   │   │   │   ├── package.json
│   │   │   │   │   ├── src/
│   │   │   │   │   │   ├── common/
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── components/
│   │   │   │   │   │   │   ├── check_failed/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── code-snippet/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   ├── oauth-action/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── plugin-apis/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   ├── plugin-modal.tsx
│   │   │   │   │   │   │   │   └── use-plugin-apis-modal.tsx
│   │   │   │   │   │   │   ├── plugin-header/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   └── plugin-tool-detail/
│   │   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │   │       ├── tool-header.tsx
│   │   │   │   │   │   │       ├── use-content-base-more.tsx
│   │   │   │   │   │   │       ├── use-content-baseinfo.tsx
│   │   │   │   │   │   │       ├── use-content-debug.tsx
│   │   │   │   │   │   │       ├── use-content-request.tsx
│   │   │   │   │   │   │       └── use-content-response.tsx
│   │   │   │   │   │   ├── hooks/
│   │   │   │   │   │   │   ├── auth/
│   │   │   │   │   │   │   │   └── use-auth-for-api-tool.ts
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── pages/
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   ├── mock-set/
│   │   │   │   │   │   │   │   ├── get-col.tsx
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── mock-set-detail/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── plugin-id/
│   │   │   │   │   │   │   │   ├── create-tool.tsx
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   └── plugin-tool-detail/
│   │   │   │   │   │   │       └── index.ts
│   │   │   │   │   │   ├── typings.d.ts
│   │   │   │   │   │   └── util/
│   │   │   │   │   │       ├── get-env.ts
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── tsconfig.build.json
│   │   │   │   │   ├── tsconfig.json
│   │   │   │   │   ├── tsconfig.misc.json
│   │   │   │   │   └── vitest.config.ts
│   │   │   │   ├── export/
│   │   │   │   │   ├── .stylelintrc.js
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── __tests__/
│   │   │   │   │   │   ├── .gitkeep
│   │   │   │   │   │   └── file-import-utils.test.ts
│   │   │   │   │   ├── config/
│   │   │   │   │   │   └── rush-project.json
│   │   │   │   │   ├── eslint.config.js
│   │   │   │   │   ├── package.json
│   │   │   │   │   ├── src/
│   │   │   │   │   │   ├── component/
│   │   │   │   │   │   │   ├── agent-skill-plugin-modal/
│   │   │   │   │   │   │   │   ├── content/
│   │   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   ├── hooks.tsx
│   │   │   │   │   │   │   │   ├── sider/
│   │   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   └── use-request-cache.tsx
│   │   │   │   │   │   │   ├── bot_edit/
│   │   │   │   │   │   │   │   ├── bot-code-edit.tsx
│   │   │   │   │   │   │   │   ├── bot-form-edit/
│   │   │   │   │   │   │   │   │   ├── code-modal.tsx
│   │   │   │   │   │   │   │   │   ├── import-modal.tsx
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   │   └── plugin-edit/
│   │   │   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │   │   │       └── index.tsx
│   │   │   │   │   │   │   ├── editor/
│   │   │   │   │   │   │   │   ├── editor.tsx
│   │   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   │   ├── file-import/
│   │   │   │   │   │   │   │   ├── const.ts
│   │   │   │   │   │   │   │   ├── import-content.module.less
│   │   │   │   │   │   │   │   ├── import-content.tsx
│   │   │   │   │   │   │   │   ├── import-modal.module.less
│   │   │   │   │   │   │   │   ├── import-modal.tsx
│   │   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   │   ├── plugin-info-confirm/
│   │   │   │   │   │   │   │   │   ├── fields.tsx
│   │   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   │   │   ├── interface.ts
│   │   │   │   │   │   │   │   │   └── utils.ts
│   │   │   │   │   │   │   │   ├── show-merge-tool.tsx
│   │   │   │   │   │   │   │   └── utils.ts
│   │   │   │   │   │   │   ├── plugin-docs/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   └── plugin-feat-modal/
│   │   │   │   │   │   │       ├── feat-button/
│   │   │   │   │   │   │       │   ├── index.module.less
│   │   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │   │       └── index.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── typings.d.ts
│   │   │   │   │   ├── tsconfig.build.json
│   │   │   │   │   ├── tsconfig.json
│   │   │   │   │   ├── tsconfig.misc.json
│   │   │   │   │   └── vitest.config.ts
│   │   │   │   ├── mock-set/
│   │   │   │   │   ├── .stylelintrc.js
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── __tests__/
│   │   │   │   │   │   ├── .gitkeep
│   │   │   │   │   │   ├── hook/
│   │   │   │   │   │   │   └── mock-set/
│   │   │   │   │   │   │       ├── use-gen-tree-branch.test.ts
│   │   │   │   │   │   │       ├── use-mock-set-in-setting-modal.test.ts
│   │   │   │   │   │   │       └── use-save-mock-data.test.ts
│   │   │   │   │   │   ├── mock-set/
│   │   │   │   │   │   │   ├── hooks.test.ts
│   │   │   │   │   │   │   └── utils.test.ts
│   │   │   │   │   │   ├── mock-utils.test.ts
│   │   │   │   │   │   ├── setup.ts
│   │   │   │   │   │   ├── use-trans-schema.test.ts
│   │   │   │   │   │   └── util/
│   │   │   │   │   │       └── mock-set/
│   │   │   │   │   │           └── get-mock-set-options.test.ts
│   │   │   │   │   ├── config/
│   │   │   │   │   │   └── rush-project.json
│   │   │   │   │   ├── eslint.config.js
│   │   │   │   │   ├── package.json
│   │   │   │   │   ├── src/
│   │   │   │   │   │   ├── component/
│   │   │   │   │   │   │   ├── const.ts
│   │   │   │   │   │   │   ├── hooks/
│   │   │   │   │   │   │   │   ├── store.ts
│   │   │   │   │   │   │   │   └── use-get-mockset.ts
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   ├── long-text-with-tooltip/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── mock-data-card/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── mock-data-create-card.tsx
│   │   │   │   │   │   │   ├── mock-data-list.tsx
│   │   │   │   │   │   │   ├── mock-data-page-breadcrumb.tsx
│   │   │   │   │   │   │   ├── mock-select/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   │   ├── option-item.module.less
│   │   │   │   │   │   │   │   └── option-item.tsx
│   │   │   │   │   │   │   ├── mock-set-intro.tsx
│   │   │   │   │   │   │   ├── mockset-delete-modal/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   └── space-holder/
│   │   │   │   │   │   │       └── index.tsx
│   │   │   │   │   │   ├── edenx-app-env.d.ts
│   │   │   │   │   │   ├── hook/
│   │   │   │   │   │   │   ├── use-gen-tree-branch.ts
│   │   │   │   │   │   │   ├── use-mock-set-in-setting-modal.ts
│   │   │   │   │   │   │   ├── use-save-mock-data.ts
│   │   │   │   │   │   │   └── use-trans-schema.ts
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── typings.d.ts
│   │   │   │   │   │   └── util/
│   │   │   │   │   │       ├── get-mock-set-options.tsx
│   │   │   │   │   │       ├── index.ts
│   │   │   │   │   │       ├── typings.ts
│   │   │   │   │   │       └── utils.ts
│   │   │   │   │   ├── tsconfig.build.json
│   │   │   │   │   ├── tsconfig.json
│   │   │   │   │   ├── tsconfig.misc.json
│   │   │   │   │   └── vitest.config.ts
│   │   │   │   ├── plugin-risk-warning/
│   │   │   │   │   ├── .storybook/
│   │   │   │   │   │   ├── main.js
│   │   │   │   │   │   └── preview.js
│   │   │   │   │   ├── .stylelintrc.js
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── __tests__/
│   │   │   │   │   │   └── .gitkeep
│   │   │   │   │   ├── config/
│   │   │   │   │   │   └── rush-project.json
│   │   │   │   │   ├── eslint.config.js
│   │   │   │   │   ├── package.json
│   │   │   │   │   ├── src/
│   │   │   │   │   │   ├── global.d.ts
│   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── store.ts
│   │   │   │   │   ├── stories/
│   │   │   │   │   │   ├── demo.stories.tsx
│   │   │   │   │   │   └── hello.mdx
│   │   │   │   │   ├── tsconfig.build.json
│   │   │   │   │   ├── tsconfig.json
│   │   │   │   │   ├── tsconfig.misc.json
│   │   │   │   │   └── vitest.config.ts
│   │   │   │   └── tools/
│   │   │   │       ├── .stylelintrc.js
│   │   │   │       ├── README.md
│   │   │   │       ├── __tests__/
│   │   │   │       │   ├── .gitkeep
│   │   │   │       │   ├── hook/
│   │   │   │       │   │   ├── example/
│   │   │   │       │   │   │   └── utils.test.ts
│   │   │   │       │   │   └── parameters/
│   │   │   │       │   │       └── use-parameters-in-setting-modal-controller.test.ts
│   │   │   │       │   └── plugin_modal/
│   │   │   │       │       └── utils.test.ts
│   │   │   │       ├── config/
│   │   │   │       │   └── rush-project.json
│   │   │   │       ├── eslint.config.js
│   │   │   │       ├── package.json
│   │   │   │       ├── src/
│   │   │   │       │   ├── components/
│   │   │   │       │   │   ├── example-checkbox/
│   │   │   │       │   │   │   ├── index.module.less
│   │   │   │       │   │   │   └── index.tsx
│   │   │   │       │   │   ├── example-modal/
│   │   │   │       │   │   │   └── index.tsx
│   │   │   │       │   │   ├── info_popover/
│   │   │   │       │   │   │   ├── index.ts
│   │   │   │       │   │   │   └── info-popover.tsx
│   │   │   │       │   │   └── plugin_modal/
│   │   │   │       │   │       ├── base-info.tsx
│   │   │   │       │   │       ├── base-more.tsx
│   │   │   │       │   │       ├── components/
│   │   │   │       │   │       │   ├── cascader-item/
│   │   │   │       │   │       │   │   └── index.tsx
│   │   │   │       │   │       │   ├── file-upload-item/
│   │   │   │       │   │       │   │   ├── index.module.less
│   │   │   │       │   │       │   │   ├── index.tsx
│   │   │   │       │   │       │   │   └── upload.tsx
│   │   │   │       │   │       │   ├── index.ts
│   │   │   │       │   │       │   └── item-error-tip/
│   │   │   │       │   │       │       ├── index.module.less
│   │   │   │       │   │       │       └── index.tsx
│   │   │   │       │   │       ├── config.ts
│   │   │   │       │   │       ├── debug-components/
│   │   │   │       │   │       │   ├── debug-check.tsx
│   │   │   │       │   │       │   ├── debug-params.tsx
│   │   │   │       │   │       │   ├── diy-mdbox.tsx
│   │   │   │       │   │       │   ├── index.module.less
│   │   │   │       │   │       │   └── params-form/
│   │   │   │       │   │       │       ├── columns/
│   │   │   │       │   │       │       │   ├── param-value-col.tsx
│   │   │   │       │   │       │       │   └── utils.ts
│   │   │   │       │   │       │       └── index.tsx
│   │   │   │       │   │       ├── debug.tsx
│   │   │   │       │   │       ├── file.ts
│   │   │   │       │   │       ├── index.module.less
│   │   │   │       │   │       ├── input-and-variable/
│   │   │   │       │   │       │   ├── index.module.less
│   │   │   │       │   │       │   └── index.tsx
│   │   │   │       │   │       ├── params-components/
│   │   │   │       │   │       │   ├── columns/
│   │   │   │       │   │       │   │   └── param-type-col.tsx
│   │   │   │       │   │       │   ├── default-value-input.tsx
│   │   │   │       │   │       │   ├── form-components.tsx
│   │   │   │       │   │       │   ├── index.module.less
│   │   │   │       │   │       │   └── index.tsx
│   │   │   │       │   │       ├── request-params.tsx
│   │   │   │       │   │       ├── response-params.tsx
│   │   │   │       │   │       ├── types/
│   │   │   │       │   │       │   ├── index.ts
│   │   │   │       │   │       │   ├── modal.ts
│   │   │   │       │   │       │   └── params.ts
│   │   │   │       │   │       └── utils.ts
│   │   │   │       │   ├── hooks/
│   │   │   │       │   │   ├── example/
│   │   │   │       │   │   │   ├── use-debug-footer.tsx
│   │   │   │       │   │   │   ├── use-edit-example.tsx
│   │   │   │       │   │   │   ├── use-view-example.tsx
│   │   │   │       │   │   │   └── utils.ts
│   │   │   │       │   │   └── parameters/
│   │   │   │       │   │       └── use-parameters-in-setting-modal-controller.ts
│   │   │   │       │   ├── index.tsx
│   │   │   │       │   └── typings.d.ts
│   │   │   │       ├── tsconfig.build.json
│   │   │   │       ├── tsconfig.json
│   │   │   │       ├── tsconfig.misc.json
│   │   │   │       └── vitest.config.ts
│   │   │   ├── chat-answer-action-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── message-box-action-bar/
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── chat-area-plugin-debug-common/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── plugin.ts
│   │   │   │   │   ├── services/
│   │   │   │   │   │   └── life-cycle/
│   │   │   │   │   │       ├── app.ts
│   │   │   │   │   │       ├── command.ts
│   │   │   │   │   │       ├── index.ts
│   │   │   │   │   │       ├── message.ts
│   │   │   │   │   │       └── render.ts
│   │   │   │   │   ├── types/
│   │   │   │   │   │   └── biz-context.ts
│   │   │   │   │   └── utils/
│   │   │   │   │       └── index.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── chat-area-provider/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   └── use-bot-editor-chat-background.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── provider/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── chat-area-provider-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── provider/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── chat-background/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── chat-background-content/
│   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── chat-background-modal/
│   │   │   │   │   │   └── use-chat-background-uploader/
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── chat-background-config-content/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── chat-background-config-content/
│   │   │   │   │   │       ├── cropper-footer/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── cropper-upload/
│   │   │   │   │   │       │   ├── cropper/
│   │   │   │   │   │       │   │   ├── index.module.less
│   │   │   │   │   │       │   │   └── index.tsx
│   │   │   │   │   │       │   ├── cropper-cover/
│   │   │   │   │   │       │   │   ├── index.module.less
│   │   │   │   │   │       │   │   └── index.tsx
│   │   │   │   │   │       │   ├── cropper-guide/
│   │   │   │   │   │       │   │   └── index.tsx
│   │   │   │   │   │       │   ├── drag-upload-content/
│   │   │   │   │   │       │   │   ├── index.module.less
│   │   │   │   │   │       │   │   └── index.tsx
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── chat-background-config-content-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── chat-background-shared/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   ├── .gitkeep
│   │   │   │   │   ├── hook/
│   │   │   │   │   │   └── use-background-content.test.ts
│   │   │   │   │   └── util.test.ts
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── constants/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   ├── use-background-content.ts
│   │   │   │   │   │   ├── use-crop-image.ts
│   │   │   │   │   │   ├── use-drag-image.ts
│   │   │   │   │   │   ├── use-submit-cropped-image.ts
│   │   │   │   │   │   └── use-upload-img.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── service/
│   │   │   │   │   │   └── upload-controller.ts
│   │   │   │   │   ├── types/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── typings.d.ts
│   │   │   │   │   └── utils/
│   │   │   │   │       └── index.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── chat-components-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── receive-message-box/
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── chat-debug-area/
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   ├── onboarding-message-pop/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── upload-tooltips-content/
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── context/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── index.module.less
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── plugins/
│   │   │   │   │   │   └── shortcut/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── retry.module.less
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── commons/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   ├── diff-node-render/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── term-service/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       └── term-service-modal/
│   │   │   │   │   │           ├── index.module.less
│   │   │   │   │   │           └── index.tsx
│   │   │   │   │   ├── constants/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   └── use-send-diff-event.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── typings.d.ts
│   │   │   │   │   └── utils/
│   │   │   │   │       └── index.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── context/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── debug-tool-list/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── debug-tool-list/
│   │   │   │   │   │       ├── components/
│   │   │   │   │   │       │   ├── debug-dropdown-button/
│   │   │   │   │   │       │   │   ├── button-padding-table.ts
│   │   │   │   │   │       │   │   └── index.tsx
│   │   │   │   │   │       │   └── tool-pane/
│   │   │   │   │   │       │       ├── index.module.less
│   │   │   │   │   │       │       └── index.tsx
│   │   │   │   │   │       ├── debug-tool-list-context.ts
│   │   │   │   │   │       ├── debug-tool-list.tsx
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── entry/
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   ├── shortcut-skills-modal/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── utils.ts
│   │   │   │   │   │   └── tool-sheet/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   └── use-init-toast.tsx
│   │   │   │   │   ├── index.module.less
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── modes/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── single-mode/
│   │   │   │   │   │   │   ├── components/
│   │   │   │   │   │   │   │   ├── coach-mark.tsx
│   │   │   │   │   │   │   │   └── model-diff-button.tsx
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── section-area/
│   │   │   │   │   │   │       ├── agent-chat-area.tsx
│   │   │   │   │   │   │       └── agent-config-area/
│   │   │   │   │   │   │           ├── index.tsx
│   │   │   │   │   │   │           └── tool-area.tsx
│   │   │   │   │   │   └── workflow-mode/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── entry-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   ├── single-mode-tool-pane-list/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── table-memory-tool/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── workflow-mode-tool-pane-list/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── editor/
│   │   │   │   │   │   └── agent-editor.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── layout/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── header/
│   │   │   │   │   │       ├── bot-info-card/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── bot-publish-status/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── bot-status/
│   │   │   │   │   │       │   ├── index.ts
│   │   │   │   │   │       │   ├── origin-status.tsx
│   │   │   │   │   │       │   └── style.module.less
│   │   │   │   │   │       ├── deploy-button/
│   │   │   │   │   │       │   ├── hooks/
│   │   │   │   │   │       │   │   └── service.tsx
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       └── more-menu-button/
│   │   │   │   │   │           ├── index.module.less
│   │   │   │   │   │           ├── index.tsx
│   │   │   │   │   │           └── link-drop-item.tsx
│   │   │   │   │   ├── index.module.less
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── layout.tsx
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── layout-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── header/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── mode-list.tsx
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   └── use-init-agent.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── layout/
│   │   │   │   │   │   ├── base.tsx
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── memory-tool-pane-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── memory-tool-pane/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── model-manager/
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   ├── .gitkeep
│   │   │   │   │   ├── convert-model-params-to-schema.test.ts
│   │   │   │   │   ├── get-fixed-single-agent-schema.test.ts
│   │   │   │   │   ├── get-model-class-sort-list.test.ts
│   │   │   │   │   └── model-params.json
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   ├── model-capability-confirm-model/
│   │   │   │   │   │   │   ├── base.tsx
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── model-form/
│   │   │   │   │   │   │   ├── form-item/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── group-item/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── model-select/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   │   └── ui-model-select.tsx
│   │   │   │   │   │   │   ├── preset-radio-group/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   └── type.ts
│   │   │   │   │   │   ├── model-select-v2/
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   ├── model-option/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── model-option-avatar/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── model-option-group/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── model-option-thumb/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── model-select/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── model-select-ui/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── popover-model-config-view/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   └── popover-model-list-view/
│   │   │   │   │   │   │       └── index.tsx
│   │   │   │   │   │   ├── multi-agent/
│   │   │   │   │   │   │   └── model-form/
│   │   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │   │       └── index.tsx
│   │   │   │   │   │   └── single-agent-model-form/
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── constant/
│   │   │   │   │   │   └── model-form-component.ts
│   │   │   │   │   ├── context/
│   │   │   │   │   │   ├── formily-context/
│   │   │   │   │   │   │   ├── context.tsx
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   └── type.ts
│   │   │   │   │   │   └── model-form-context/
│   │   │   │   │   │       ├── context.tsx
│   │   │   │   │   │       ├── index.ts
│   │   │   │   │   │       └── type.ts
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   ├── model/
│   │   │   │   │   │   │   ├── use-get-model-list.ts
│   │   │   │   │   │   │   ├── use-get-schema.ts
│   │   │   │   │   │   │   └── use-get-single-agent-current-model.ts
│   │   │   │   │   │   └── model-form/
│   │   │   │   │   │       └── use-handle-model-form.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── report-events/
│   │   │   │   │   │   └── report-event-names.ts
│   │   │   │   │   ├── typings.d.ts
│   │   │   │   │   └── utils/
│   │   │   │   │       ├── exhaustive-check.ts
│   │   │   │   │       ├── field-init-strategy.ts
│   │   │   │   │       ├── flatten-object.ts
│   │   │   │   │       ├── model/
│   │   │   │   │       │   ├── convert-form-value-to-model-info.ts
│   │   │   │   │       │   ├── convert-model-info-to-flat-object.ts
│   │   │   │   │       │   ├── convert-model-params-to-schema.ts
│   │   │   │   │       │   ├── get-diversity-preset-value-by-style.ts
│   │   │   │   │       │   ├── get-fixed-model-form-values.ts
│   │   │   │   │       │   ├── get-fixed-single-agent-schema.ts
│   │   │   │   │       │   ├── get-model-class-sort-list.ts
│   │   │   │   │       │   └── get-model-option-list.ts
│   │   │   │   │       └── model-func-config-check/
│   │   │   │   │           └── agent-check.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── navigate/
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   └── navigate-tools-page.ts
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── onboarding/
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   ├── markdown-editor/
│   │   │   │   │   │   │   ├── components/
│   │   │   │   │   │   │   │   ├── action-bar/
│   │   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   ├── insert-link-popover/
│   │   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   └── upload-progress-mask/
│   │   │   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │   │   │       └── index.tsx
│   │   │   │   │   │   │   ├── constant/
│   │   │   │   │   │   │   │   └── file.ts
│   │   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   │   ├── get-insert-text-at-position.ts
│   │   │   │   │   │   │   │   ├── get-insert-text.ts
│   │   │   │   │   │   │   │   ├── get-is-file-format-valid.ts
│   │   │   │   │   │   │   │   ├── get-markdown-image-link.ts
│   │   │   │   │   │   │   │   └── get-markdown-link.ts
│   │   │   │   │   │   │   ├── hooks/
│   │   │   │   │   │   │   │   ├── use-markdown-editor.ts
│   │   │   │   │   │   │   │   └── use-upload-file.ts
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── service/
│   │   │   │   │   │   │   │   └── upload-controller.ts
│   │   │   │   │   │   │   └── type.ts
│   │   │   │   │   │   ├── onboarding-markdown-modal/
│   │   │   │   │   │   │   ├── components/
│   │   │   │   │   │   │   │   ├── markdown-description-popover/
│   │   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   └── onboarding-suggestion-content/
│   │   │   │   │   │   │   │       └── index.tsx
│   │   │   │   │   │   │   ├── constant.ts
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── onboarding-preview/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── onboarding-suggestion/
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── constant/
│   │   │   │   │   │   └── onboarding-variable.ts
│   │   │   │   │   ├── demo/
│   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   ├── bot-plugins/
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   └── onboarding/
│   │   │   │   │   │       └── use-render-variable-element.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── typings.d.ts
│   │   │   │   │   └── utils/
│   │   │   │   │       ├── exhaustive-check.ts
│   │   │   │   │       ├── onboarding-variable.ts
│   │   │   │   │       ├── onboarding.ts
│   │   │   │   │       └── typed-keys.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── onboarding-message-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── plugin-area-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── plugin-apis-area/
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── plugin-content/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── plugin-content/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── plugin-content-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── plugin-modal-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   ├── plugin-modal/
│   │   │   │   │   │   │   ├── filter/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   └── plugin-filter/
│   │   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │   │       └── plugin-filter.module.less
│   │   │   │   │   │   └── plugin-panel/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── plugin-setting/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── agent-skill-setting-modal/
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── part-main.tsx
│   │   │   │   │   │       ├── part-mock-set.tsx
│   │   │   │   │   │       └── part-params-set/
│   │   │   │   │   │           ├── index.module.less
│   │   │   │   │   │           └── index.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── plugin-setting-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── plugin-shared/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── plugin-panel/
│   │   │   │   │   │       ├── activate-popover/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── helper.ts
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── item.tsx
│   │   │   │   │   │       └── plugin-perf-statics/
│   │   │   │   │   │           ├── index.module.less
│   │   │   │   │   │           └── index.tsx
│   │   │   │   │   ├── constants/
│   │   │   │   │   │   └── plugin-modal-constants.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── service/
│   │   │   │   │   │   └── fetch-plugin.ts
│   │   │   │   │   ├── types/
│   │   │   │   │   │   ├── auth-mode.ts
│   │   │   │   │   │   ├── mockset-interface.ts
│   │   │   │   │   │   └── plugin-modal-types.ts
│   │   │   │   │   ├── typings.d.ts
│   │   │   │   │   └── utils/
│   │   │   │   │       ├── get-api-unique-id.ts
│   │   │   │   │       └── index.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── prompt/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   ├── prompt-editor/
│   │   │   │   │   │   │   ├── agent-ide-prompt/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── type.ts
│   │   │   │   │   │   └── prompt-view/
│   │   │   │   │   │       ├── components/
│   │   │   │   │   │       │   └── actions/
│   │   │   │   │   │       │       ├── import-to-library.tsx
│   │   │   │   │   │       │       ├── index.tsx
│   │   │   │   │   │       │       └── prompt-library.tsx
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   └── use-prompt/
│   │   │   │   │   │       ├── use-add-library.ts
│   │   │   │   │   │       └── use-get-library-data.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── prompt-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── publish-to-base/
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── big-checkbox/
│   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── constants.ts
│   │   │   │   │   ├── context/
│   │   │   │   │   │   └── store-context.tsx
│   │   │   │   │   ├── expection-display/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── feishu-base-modal/
│   │   │   │   │   │   ├── base-input-fields-table.tsx
│   │   │   │   │   │   ├── base-output-fields-table.tsx
│   │   │   │   │   │   ├── field-line/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   ├── input-config-line-select-edit.tsx
│   │   │   │   │   │   │   ├── input-config-line.tsx
│   │   │   │   │   │   │   ├── output-struct-line.tsx
│   │   │   │   │   │   │   ├── require-verify-center.tsx
│   │   │   │   │   │   │   ├── required-warn.tsx
│   │   │   │   │   │   │   └── use-require-verify.ts
│   │   │   │   │   │   ├── form-title.tsx
│   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── sortable-field-table.tsx
│   │   │   │   │   │   └── step-indicator.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── md-tooltip/
│   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── store/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── types.ts
│   │   │   │   │   ├── typings.d.ts
│   │   │   │   │   └── validate/
│   │   │   │   │       ├── field-interaction/
│   │   │   │   │       │   ├── index.ts
│   │   │   │   │       │   └── output-struct.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       └── utils.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── skills-pane-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── skills-pane/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       └── skills-nav.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── space-bot/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   ├── component/
│   │   │   │   │   │   └── onboarding-message/
│   │   │   │   │   │       └── onboarding-editor/
│   │   │   │   │   │           ├── hooks/
│   │   │   │   │   │           │   └── use-init-editor.test.ts
│   │   │   │   │   │           └── methods/
│   │   │   │   │   │               ├── get-image-url.test.ts
│   │   │   │   │   │               ├── get-upload-token.test.ts
│   │   │   │   │   │               ├── init-editor.test.ts
│   │   │   │   │   │               └── slice-editor.test.ts
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   ├── publish-platform-setting/
│   │   │   │   │   │   │   ├── use-custom-platform-controller.test.ts
│   │   │   │   │   │   │   ├── use-custom-platform-setting-modal-controller.test.ts
│   │   │   │   │   │   │   ├── use-normal-platform-controller.test.ts
│   │   │   │   │   │   │   └── use-oauth-setting-modal-controller.test.ts
│   │   │   │   │   │   └── use-monetize-config-readonly.test.ts
│   │   │   │   │   └── setup.ts
│   │   │   │   ├── config/
│   │   │   │   │   ├── rush-project.json
│   │   │   │   │   └── rushx-config.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── assets/
│   │   │   │   │   │   └── styles/
│   │   │   │   │   │       ├── common.less
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       ├── mixins.less
│   │   │   │   │   │       ├── semi_ui.less
│   │   │   │   │   │       └── variables.less
│   │   │   │   │   ├── component/
│   │   │   │   │   │   ├── add-button/
│   │   │   │   │   │   │   ├── add-button.tsx
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── authorize-button/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── auto-generate-btn/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── bind-connector-modal/
│   │   │   │   │   │   │   ├── connector-error/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── connector-field/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── connector-form/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── connector-guide/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── connector-link/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── hooks/
│   │   │   │   │   │   │   │   └── use-step-action.ts
│   │   │   │   │   │   │   ├── types.ts
│   │   │   │   │   │   │   └── use-connector-form-modal.tsx
│   │   │   │   │   │   ├── bot-debug-button/
│   │   │   │   │   │   │   ├── bot-debug-button.tsx
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── bot-debug-panel/
│   │   │   │   │   │   │   ├── button.tsx
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── bot-diff-view/
│   │   │   │   │   │   │   ├── bot-submit-modal.tsx
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── new-diff-view.tsx
│   │   │   │   │   │   │   └── type.ts
│   │   │   │   │   │   ├── bot-move-modal/
│   │   │   │   │   │   │   ├── components/
│   │   │   │   │   │   │   │   ├── item-grid-view/
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   ├── move-detail-pane/
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   ├── select-space-pane/
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   └── selector-item/
│   │   │   │   │   │   │   │       └── index.tsx
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   ├── move-failed-modal.tsx
│   │   │   │   │   │   │   └── move-modal.tsx
│   │   │   │   │   │   ├── chat-background/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── collapsible-textarea/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── config-area/
│   │   │   │   │   │   │   └── use-bot-config.tsx
│   │   │   │   │   │   ├── connector-action/
│   │   │   │   │   │   │   ├── diff-view-button.tsx
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   └── kv-bind-button.tsx
│   │   │   │   │   │   ├── content-view/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── data-memory/
│   │   │   │   │   │   │   ├── components/
│   │   │   │   │   │   │   │   ├── add-variable/
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   ├── group-table/
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   ├── group-wrapper/
│   │   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   │   ├── parma-header/
│   │   │   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   │   │   ├── sys-header.tsx
│   │   │   │   │   │   │   │   │   ├── types.ts
│   │   │   │   │   │   │   │   │   └── user-header.tsx
│   │   │   │   │   │   │   │   └── variable-tree/
│   │   │   │   │   │   │   │       └── index.tsx
│   │   │   │   │   │   │   ├── data-memory.tsx
│   │   │   │   │   │   │   ├── hooks.tsx
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   ├── memory-add-modal.tsx
│   │   │   │   │   │   │   ├── memory-list.tsx
│   │   │   │   │   │   │   ├── memory-template-modal.tsx
│   │   │   │   │   │   │   └── utils/
│   │   │   │   │   │   │       └── exhaustive-check.ts
│   │   │   │   │   │   ├── data-set/
│   │   │   │   │   │   │   ├── data-set-area.tsx
│   │   │   │   │   │   │   └── index.module.less
│   │   │   │   │   │   ├── error-boundary-with-logger.tsx
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── input-slider/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   └── input-slider.tsx
│   │   │   │   │   │   ├── memory-tool-pane/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── mode-select/
│   │   │   │   │   │   │   ├── change-button.tsx
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── mode-change-view.tsx
│   │   │   │   │   │   ├── model-btn-view/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── nav-modal/
│   │   │   │   │   │   │   ├── index.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── nl-prompt-button/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── onboarding-message/
│   │   │   │   │   │   │   ├── common-component.tsx
│   │   │   │   │   │   │   ├── const.ts
│   │   │   │   │   │   │   ├── editor-expend-modal/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── onboarding-editor/
│   │   │   │   │   │   │   │   ├── hooks/
│   │   │   │   │   │   │   │   │   ├── use-init-editor.ts
│   │   │   │   │   │   │   │   │   ├── use-modal-editor-submit.ts
│   │   │   │   │   │   │   │   │   ├── use-on-editor.ts
│   │   │   │   │   │   │   │   │   └── use-submit-editor.ts
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   │   ├── method/
│   │   │   │   │   │   │   │   │   ├── editor-content-helper.ts
│   │   │   │   │   │   │   │   │   ├── get-image-url.ts
│   │   │   │   │   │   │   │   │   ├── get-schema.ts
│   │   │   │   │   │   │   │   │   ├── get-upload-token.ts
│   │   │   │   │   │   │   │   │   ├── init-editor.ts
│   │   │   │   │   │   │   │   │   └── slice-editor.ts
│   │   │   │   │   │   │   │   └── plugins/
│   │   │   │   │   │   │   │       └── insert-template/
│   │   │   │   │   │   │   │           ├── index.tsx
│   │   │   │   │   │   │   │           └── tool-item.tsx
│   │   │   │   │   │   │   └── suggestion-list/
│   │   │   │   │   │   │       ├── hooks/
│   │   │   │   │   │   │       │   └── use-add-empty-suggestion.ts
│   │   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │   │       ├── suggestion-header.tsx
│   │   │   │   │   │   │       └── suggestion-item.tsx
│   │   │   │   │   │   ├── plugin-permission-manage-list/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── publish-platform-description/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── publish-platform-setting/
│   │   │   │   │   │   │   ├── avatar-ipt.tsx
│   │   │   │   │   │   │   ├── custom-platform-setting-modal.tsx
│   │   │   │   │   │   │   ├── custom.tsx
│   │   │   │   │   │   │   ├── id-with-cp.tsx
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── name-with-icon.tsx
│   │   │   │   │   │   │   ├── normal.tsx
│   │   │   │   │   │   │   ├── oauth-setting-modal.tsx
│   │   │   │   │   │   │   └── tag-with-status.tsx
│   │   │   │   │   │   ├── rc-slider-wrapper/
│   │   │   │   │   │   │   ├── handle-render.tsx
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── sheet-view/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── multiple-sheet/
│   │   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   └── single-sheet/
│   │   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │   │       └── index.tsx
│   │   │   │   │   │   ├── suggestion/
│   │   │   │   │   │   │   ├── suggestion-block.tsx
│   │   │   │   │   │   │   └── suggestion-content/
│   │   │   │   │   │   │       ├── suggestion-content.module.less
│   │   │   │   │   │   │       └── suggestion-content.tsx
│   │   │   │   │   │   └── table-memory/
│   │   │   │   │   │       ├── datebase-list/
│   │   │   │   │   │       │   ├── index.module.less
│   │   │   │   │   │       │   ├── index.tsx
│   │   │   │   │   │       │   └── prompt-settings-button.tsx
│   │   │   │   │   │       ├── helpers/
│   │   │   │   │   │       │   └── reload-database-list.ts
│   │   │   │   │   │       ├── hooks/
│   │   │   │   │   │       │   └── use-expert-mode-config.ts
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── constant.ts
│   │   │   │   │   ├── constants/
│   │   │   │   │   │   └── prompt-editor-kit.ts
│   │   │   │   │   ├── context/
│   │   │   │   │   │   ├── bot-editor-service/
│   │   │   │   │   │   │   ├── context.tsx
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   └── type.ts
│   │   │   │   │   │   └── editor-kit/
│   │   │   │   │   │       ├── context.tsx
│   │   │   │   │   │       ├── index.ts
│   │   │   │   │   │       └── type.ts
│   │   │   │   │   ├── hook/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── publish-platform-setting/
│   │   │   │   │   │   │   ├── use-custom-platform-controller.ts
│   │   │   │   │   │   │   ├── use-custom-platform-setting-modal-controller.ts
│   │   │   │   │   │   │   ├── use-normal-platform-controller.ts
│   │   │   │   │   │   │   └── use-oauth-setting-modal-controller.ts
│   │   │   │   │   │   ├── tools-publish-back-modal.ts
│   │   │   │   │   │   ├── use-connector-diff-modal.tsx
│   │   │   │   │   │   ├── use-create-bot/
│   │   │   │   │   │   │   ├── agent-info-form.tsx
│   │   │   │   │   │   │   ├── form-switch/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── use-agent-form-management.ts
│   │   │   │   │   │   │   └── use-agent-persistence.ts
│   │   │   │   │   │   ├── use-dataset-auto-change-confirm.tsx
│   │   │   │   │   │   ├── use-edit-confirm.ts
│   │   │   │   │   │   ├── use-free-drag-modal-hierarchy.ts
│   │   │   │   │   │   ├── use-init.tsx
│   │   │   │   │   │   ├── use-monetize-config-readonly.ts
│   │   │   │   │   │   ├── use-node-id.ts
│   │   │   │   │   │   ├── use-plugin-permission-manage.ts
│   │   │   │   │   │   ├── use-popover-lock.ts
│   │   │   │   │   │   ├── use-query-collect.ts
│   │   │   │   │   │   ├── use-space-role.ts
│   │   │   │   │   │   ├── use-subscribe-background.ts
│   │   │   │   │   │   ├── use-subscribe-onboarding-and-update-chat-area.ts
│   │   │   │   │   │   └── use-unbind-platform.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── pages/
│   │   │   │   │   │   └── publish/
│   │   │   │   │   │       └── index.module.less
│   │   │   │   │   ├── service/
│   │   │   │   │   │   ├── free-grab-modal-hierarchy-service/
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   └── type.ts
│   │   │   │   │   │   ├── nl-prompt-modal-visibility-service/
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   └── type.ts
│   │   │   │   │   │   └── shared-apply-record-service/
│   │   │   │   │   │       ├── index.ts
│   │   │   │   │   │       └── type.ts
│   │   │   │   │   ├── store/
│   │   │   │   │   │   ├── bot-list-filter/
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── bot-mode/
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── bot-page/
│   │   │   │   │   │   │   └── store.ts
│   │   │   │   │   │   ├── debug-panel/
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   └── store.ts
│   │   │   │   │   │   ├── evaluation-panel/
│   │   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   │   └── store.ts
│   │   │   │   │   │   ├── explore/
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── risk-warning/
│   │   │   │   │   │       └── store.ts
│   │   │   │   │   ├── type.ts
│   │   │   │   │   ├── typings.d.ts
│   │   │   │   │   └── util/
│   │   │   │   │       ├── auth.ts
│   │   │   │   │       └── index.ts
│   │   │   │   ├── tailwind.config.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.check.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── tool/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   ├── .gitkeep
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   └── duplicate-use-ability-config.tsx
│   │   │   │   │   ├── store/
│   │   │   │   │   │   └── tool-area.test.ts
│   │   │   │   │   └── utils/
│   │   │   │   │       └── error.test.ts
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   ├── ability-area-container/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── add-button/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── agent-skill-container/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── agent-skill-content/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── agent-skill-content-block/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── agent-skill-modal/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── agent-skill-view/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── auto-generate-button/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── fallbacks/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── grouping-container/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── invisible-tool-controller/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── model-capability-tips/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── tool-container/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── tool-content-block/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── tool-item/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── tool-item-action/
│   │   │   │   │   │   │   ├── actions/
│   │   │   │   │   │   │   │   ├── tool-item-action-card.tsx
│   │   │   │   │   │   │   │   ├── tool-item-action-copy.tsx
│   │   │   │   │   │   │   │   ├── tool-item-action-delete.tsx
│   │   │   │   │   │   │   │   ├── tool-item-action-drag.tsx
│   │   │   │   │   │   │   │   ├── tool-item-action-edit.tsx
│   │   │   │   │   │   │   │   ├── tool-item-action-info.tsx
│   │   │   │   │   │   │   │   └── tool-item-action-setting.tsx
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── tool-item-icon/
│   │   │   │   │   │   │   ├── icons/
│   │   │   │   │   │   │   │   ├── tool-item-icon-card.tsx
│   │   │   │   │   │   │   │   ├── tool-item-icon-info.tsx
│   │   │   │   │   │   │   │   └── tool-item-icon-people.tsx
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── tool-item-list/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── tool-item-switch/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── tool-menu/
│   │   │   │   │   │   │   ├── guide-popover.tsx
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── tool-menu-dropdown-menu/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── tool-popover/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── tool-tooltip/
│   │   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── tool-view/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── constants/
│   │   │   │   │   │   └── tool-content-block.ts
│   │   │   │   │   ├── context/
│   │   │   │   │   │   ├── ability-area-context.tsx
│   │   │   │   │   │   ├── ability-config-context.tsx
│   │   │   │   │   │   ├── agent-skill-config-context.tsx
│   │   │   │   │   │   ├── preference-context.tsx
│   │   │   │   │   │   └── tool-item-context.tsx
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   ├── agent-skill/
│   │   │   │   │   │   │   └── use-agent-skill.ts
│   │   │   │   │   │   ├── agent-skill-modal/
│   │   │   │   │   │   │   ├── use-agent-modal-trigger-event.ts
│   │   │   │   │   │   │   └── use-agent-skill-modal.tsx
│   │   │   │   │   │   ├── builtin/
│   │   │   │   │   │   │   ├── use-ability-config.ts
│   │   │   │   │   │   │   ├── use-create-store.ts
│   │   │   │   │   │   │   ├── use-get-tool-config.ts
│   │   │   │   │   │   │   ├── use-register-agent-skill-key.ts
│   │   │   │   │   │   │   ├── use-register-tool-group.ts
│   │   │   │   │   │   │   └── use-register-tool-key.ts
│   │   │   │   │   │   ├── event/
│   │   │   │   │   │   │   └── use-event.ts
│   │   │   │   │   │   ├── public/
│   │   │   │   │   │   │   ├── agent/
│   │   │   │   │   │   │   │   └── use-has-agent-skill.ts
│   │   │   │   │   │   │   ├── collapse/
│   │   │   │   │   │   │   │   ├── use-tool-content-block-default-expand.tsx
│   │   │   │   │   │   │   │   └── use-tool-toggle-collapse.ts
│   │   │   │   │   │   │   ├── container/
│   │   │   │   │   │   │   │   ├── use-tool-all-hidden.ts
│   │   │   │   │   │   │   │   └── use-tool-valid-data.ts
│   │   │   │   │   │   │   ├── init/
│   │   │   │   │   │   │   │   └── use-init.ts
│   │   │   │   │   │   │   ├── modal/
│   │   │   │   │   │   │   │   └── use-agent-modal-callbacks.ts
│   │   │   │   │   │   │   └── store/
│   │   │   │   │   │   │       └── use-tool-store.ts
│   │   │   │   │   │   ├── store/
│   │   │   │   │   │   │   └── use-ability-store-context.tsx
│   │   │   │   │   │   └── tool/
│   │   │   │   │   │       └── use-tool-toggle-collapse.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── store/
│   │   │   │   │   │   ├── agent-area.ts
│   │   │   │   │   │   └── tool-area.ts
│   │   │   │   │   ├── typings/
│   │   │   │   │   │   ├── button.ts
│   │   │   │   │   │   ├── event-callbacks.ts
│   │   │   │   │   │   ├── event.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── scoped-events.ts
│   │   │   │   │   │   └── store.ts
│   │   │   │   │   ├── typings.d.ts
│   │   │   │   │   └── utils/
│   │   │   │   │       ├── error.ts
│   │   │   │   │       ├── has-valid-key.ts
│   │   │   │   │       ├── is-tool-key.ts
│   │   │   │   │       ├── is-valid-context.ts
│   │   │   │   │       ├── model-function-config-type-mapping.ts
│   │   │   │   │       └── tool-content-block.ts
│   │   │   │   ├── stories/
│   │   │   │   │   ├── demo.stories.tsx
│   │   │   │   │   └── hello.mdx
│   │   │   │   ├── tailwind.config.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── tool-config/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── shortcut-config/
│   │   │   │   │       └── get-strict-shortcuts.test.ts
│   │   │   │   ├── config/
│   │   │   │   │   ├── rush-project.json
│   │   │   │   │   └── rushx-config.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── constants.ts
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── shortcut-config/
│   │   │   │   │   │   ├── get-strict-shortcuts.ts
│   │   │   │   │   │   └── type.ts
│   │   │   │   │   └── types.ts
│   │   │   │   ├── stories/
│   │   │   │   │   ├── demo.stories.tsx
│   │   │   │   │   └── hello.mdx
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── workflow/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   ├── index.module.less
│   │   │   │   │   │   └── workflow-as-agent/
│   │   │   │   │   │       └── workflow-config-area/
│   │   │   │   │   │           ├── index.tsx
│   │   │   │   │   │           └── use-agent-workflow-modal.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── workflow-as-agent-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── workflow-card/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── workflow-card-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── workflow-card/
│   │   │   │   │   │       ├── add-button.tsx
│   │   │   │   │   │       ├── index.module.less
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── workflow-item/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── components/
│   │   │   │   │   │   └── workflow-item/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       └── workflow-item-actions.tsx
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   └── use-navigate-workflow.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   └── workflow-modal/
│   │   │       ├── .storybook/
│   │   │       │   ├── main.js
│   │   │       │   └── preview.js
│   │   │       ├── .stylelintrc.js
│   │   │       ├── README.md
│   │   │       ├── __tests__/
│   │   │       │   └── .gitkeep
│   │   │       ├── config/
│   │   │       │   └── rush-project.json
│   │   │       ├── eslint.config.js
│   │   │       ├── package.json
│   │   │       ├── src/
│   │   │       │   ├── components/
│   │   │       │   │   └── workflow-modal/
│   │   │       │   │       ├── base.tsx
│   │   │       │   │       └── hooks.tsx
│   │   │       │   ├── index.ts
│   │   │       │   └── typings.d.ts
│   │   │       ├── tsconfig.build.json
│   │   │       ├── tsconfig.json
│   │   │       ├── tsconfig.misc.json
│   │   │       └── vitest.config.ts
│   │   ├── arch/
│   │   │   ├── api-schema/
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── api.config.js
│   │   │   │   ├── api.dev.local.js
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── _mock_utils.js
│   │   │   │   │   ├── _schemas.d.ts
│   │   │   │   │   ├── _schemas.js
│   │   │   │   │   ├── api/
│   │   │   │   │   │   └── config.ts
│   │   │   │   │   ├── idl/
│   │   │   │   │   │   ├── base.ts
│   │   │   │   │   │   ├── marketplace/
│   │   │   │   │   │   │   ├── marketplace_common.ts
│   │   │   │   │   │   │   ├── product_common.ts
│   │   │   │   │   │   │   └── public_api.ts
│   │   │   │   │   │   └── passport/
│   │   │   │   │   │       └── passport.ts
│   │   │   │   │   └── index.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-api/
│   │   │   │   ├── .gitignore
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   ├── .gitkeep
│   │   │   │   │   ├── axios.test.ts
│   │   │   │   │   └── basic-api.test.ts
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── app-builder-api.ts
│   │   │   │   │   ├── axios.ts
│   │   │   │   │   ├── basic-api.ts
│   │   │   │   │   ├── benefit-api.ts
│   │   │   │   │   ├── card-api.ts
│   │   │   │   │   ├── connector-api.ts
│   │   │   │   │   ├── coze-space-api.ts
│   │   │   │   │   ├── debugger-api.ts
│   │   │   │   │   ├── developer-api.ts
│   │   │   │   │   ├── developer-backend.ts
│   │   │   │   │   ├── devops-evaluation-api.ts
│   │   │   │   │   ├── dp-manage-api.ts
│   │   │   │   │   ├── evaluation-lite-api.ts
│   │   │   │   │   ├── filebox-api.ts
│   │   │   │   │   ├── fornax-api.ts
│   │   │   │   │   ├── fornax-evaluation-api.ts
│   │   │   │   │   ├── fornax-ml-flow-api.ts
│   │   │   │   │   ├── fornax-ob-api.ts
│   │   │   │   │   ├── fornax-prompt.ts
│   │   │   │   │   ├── fulfill-api.ts
│   │   │   │   │   ├── hub-api.ts
│   │   │   │   │   ├── idl/
│   │   │   │   │   │   ├── app_builder.ts
│   │   │   │   │   │   ├── basic_api.ts
│   │   │   │   │   │   ├── benefit.ts
│   │   │   │   │   │   ├── card.ts
│   │   │   │   │   │   ├── connector_api.ts
│   │   │   │   │   │   ├── debugger_api.ts
│   │   │   │   │   │   ├── developer_api.ts
│   │   │   │   │   │   ├── developer_backend.ts
│   │   │   │   │   │   ├── devops_evaluation.ts
│   │   │   │   │   │   ├── dp_manage.ts
│   │   │   │   │   │   ├── evaluation_lite.ts
│   │   │   │   │   │   ├── filebox.ts
│   │   │   │   │   │   ├── fornax_api.ts
│   │   │   │   │   │   ├── fulfill.ts
│   │   │   │   │   │   ├── hub_api.ts
│   │   │   │   │   │   ├── incentive.ts
│   │   │   │   │   │   ├── intelligence_api.ts
│   │   │   │   │   │   ├── knowledge.ts
│   │   │   │   │   │   ├── market_interaction_api.ts
│   │   │   │   │   │   ├── memory.ts
│   │   │   │   │   │   ├── multimedia_api.ts
│   │   │   │   │   │   ├── notify_api.ts
│   │   │   │   │   │   ├── ob_data.ts
│   │   │   │   │   │   ├── ob_query_api.ts
│   │   │   │   │   │   ├── pat_permission_api.ts
│   │   │   │   │   │   ├── permission_authz.ts
│   │   │   │   │   │   ├── permission_oauth2.ts
│   │   │   │   │   │   ├── playground_api.ts
│   │   │   │   │   │   ├── plugin_develop.ts
│   │   │   │   │   │   ├── plugin_impl_api.ts
│   │   │   │   │   │   ├── product_api.ts
│   │   │   │   │   │   ├── resource.ts
│   │   │   │   │   │   ├── social_api.ts
│   │   │   │   │   │   ├── trade.ts
│   │   │   │   │   │   ├── ui-builder.ts
│   │   │   │   │   │   ├── workflow_api.ts
│   │   │   │   │   │   └── xmemory_api.ts
│   │   │   │   │   ├── incentive-api.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── intelligence-api.ts
│   │   │   │   │   ├── knowledge-api.ts
│   │   │   │   │   ├── market-interaction-api.ts
│   │   │   │   │   ├── memory-api.ts
│   │   │   │   │   ├── multimedia-api.ts
│   │   │   │   │   ├── notify-api.ts
│   │   │   │   │   ├── ob-data-api.ts
│   │   │   │   │   ├── ob-query-api.ts
│   │   │   │   │   ├── pat-permission-api.ts
│   │   │   │   │   ├── permission-authz-api.ts
│   │   │   │   │   ├── permission-oauth2-api.ts
│   │   │   │   │   ├── playground-api.ts
│   │   │   │   │   ├── plugin-develop.ts
│   │   │   │   │   ├── product-api.ts
│   │   │   │   │   ├── resource.ts
│   │   │   │   │   ├── social-api.ts
│   │   │   │   │   ├── stone-fornax-evaluation.ts
│   │   │   │   │   ├── trade-api.ts
│   │   │   │   │   ├── ui-builder-api.ts
│   │   │   │   │   ├── workflow-api.ts
│   │   │   │   │   └── xmemory-api.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.mts
│   │   │   ├── bot-env/
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── scripts/
│   │   │   │   │   ├── build.ts
│   │   │   │   │   └── index.ts
│   │   │   │   ├── src/
│   │   │   │   │   ├── global.d.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── runtime/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.mts
│   │   │   ├── bot-env-adapter/
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── scripts/
│   │   │   │   │   ├── build.ts
│   │   │   │   │   └── index.ts
│   │   │   │   ├── src/
│   │   │   │   │   ├── base.ts
│   │   │   │   │   ├── configs/
│   │   │   │   │   │   └── volcano.ts
│   │   │   │   │   ├── configs.ts
│   │   │   │   │   ├── features.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── runtime/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── typings.d.ts
│   │   │   │   │   └── utils/
│   │   │   │   │       ├── config-helper.ts
│   │   │   │   │       └── current-branch.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.mts
│   │   │   ├── bot-error/
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   ├── certain-error.test.ts
│   │   │   │   │   ├── custom-error.test.ts
│   │   │   │   │   ├── source-error.test.ts
│   │   │   │   │   ├── use-error-catch.test.ts
│   │   │   │   │   └── use-route-error-catch.test.ts
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── certain-error.ts
│   │   │   │   │   ├── const.ts
│   │   │   │   │   ├── custom-error.ts
│   │   │   │   │   ├── global.d.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── source-error.ts
│   │   │   │   │   ├── use-error-catch.ts
│   │   │   │   │   └── use-route-error-catch.ts
│   │   │   │   ├── stories/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-flags/
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   ├── persist-cache.test.ts
│   │   │   │   │   ├── pull-feature-flags.test.ts
│   │   │   │   │   ├── read-from-context.test.ts
│   │   │   │   │   ├── storage.test.ts
│   │   │   │   │   └── use-flags.test.ts
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── setup/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── src/
│   │   │   │   │   ├── constant.ts
│   │   │   │   │   ├── feature-flags.ts
│   │   │   │   │   ├── get-flags.ts
│   │   │   │   │   ├── global.d.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── pull-feature-flags.ts
│   │   │   │   │   ├── types.ts
│   │   │   │   │   ├── use-flags.ts
│   │   │   │   │   └── utils/
│   │   │   │   │       ├── persist-cache.ts
│   │   │   │   │       ├── read-from-context.ts
│   │   │   │   │       ├── repoter.ts
│   │   │   │   │       ├── storage.ts
│   │   │   │   │       ├── tools.ts
│   │   │   │   │       └── wait.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-hooks/
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── page-jump.test.tsx
│   │   │   │   ├── config/
│   │   │   │   │   ├── rush-project.json
│   │   │   │   │   └── rushx-config.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── setup/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── src/
│   │   │   │   │   ├── global.d.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── page-jump/
│   │   │   │   │       ├── config.ts
│   │   │   │   │       └── index.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-hooks-adapter/
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── config/
│   │   │   │   │   ├── rush-project.json
│   │   │   │   │   └── rushx-config.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── setup/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── src/
│   │   │   │   │   ├── global.d.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── use-responsive-body-style.ts
│   │   │   │   │   └── use-responsive.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-hooks-base/
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   ├── bot/
│   │   │   │   │   │   ├── use-message-report-event.test.ts
│   │   │   │   │   │   └── use-user-sender-info.test.ts
│   │   │   │   │   ├── editor-layout.test.tsx
│   │   │   │   │   ├── router/
│   │   │   │   │   │   └── use-reset-location-state.test.ts
│   │   │   │   │   ├── use-component-state.test.ts
│   │   │   │   │   ├── use-default-expand-check.test.ts
│   │   │   │   │   ├── use-drag-and-paste-upload/
│   │   │   │   │   │   ├── helper/
│   │   │   │   │   │   │   ├── get-file-list-by-drag.test.ts
│   │   │   │   │   │   │   └── is-has-file-by-drag.test.ts
│   │   │   │   │   │   └── index.test.tsx
│   │   │   │   │   ├── use-drag-upload.test.ts
│   │   │   │   │   ├── use-exposure.test.ts
│   │   │   │   │   ├── use-initial-value.test.ts
│   │   │   │   │   ├── use-line-clamp.test.tsx
│   │   │   │   │   ├── use-loggedin.test.ts
│   │   │   │   │   ├── use-responsive.test.ts
│   │   │   │   │   └── use-route-config.test.tsx
│   │   │   │   ├── config/
│   │   │   │   │   ├── rush-project.json
│   │   │   │   │   └── rushx-config.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── setup/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── src/
│   │   │   │   │   ├── bot/
│   │   │   │   │   │   ├── use-message-report-event.ts
│   │   │   │   │   │   └── use-user-sender-info.ts
│   │   │   │   │   ├── editor-layout/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── global.d.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── router/
│   │   │   │   │   │   └── use-reset-location-state.ts
│   │   │   │   │   ├── use-component-state.ts
│   │   │   │   │   ├── use-default-expand-check/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── use-drag-and-paste-upload/
│   │   │   │   │   │   ├── helper/
│   │   │   │   │   │   │   ├── get-file-list-by-drag.ts
│   │   │   │   │   │   │   └── is-has-file-by-drag.ts
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── use-exposure.ts
│   │   │   │   │   ├── use-initial-value.ts
│   │   │   │   │   ├── use-line-clamp.ts
│   │   │   │   │   ├── use-loggedin.ts
│   │   │   │   │   ├── use-page-state.ts
│   │   │   │   │   ├── use-responsive.ts
│   │   │   │   │   └── use-route-config.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-http/
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   ├── api-error.test.ts
│   │   │   │   │   ├── axios.test.ts
│   │   │   │   │   ├── eventbus.test.ts
│   │   │   │   │   └── global-interceptor.test.ts
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── api-error.ts
│   │   │   │   │   ├── axios.ts
│   │   │   │   │   ├── eventbus.ts
│   │   │   │   │   ├── global.d.ts
│   │   │   │   │   └── index.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.mts
│   │   │   ├── bot-md-box-adapter/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── full/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── lazy/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── light/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── slots/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── style.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-monaco-editor/
│   │   │   │   ├── .storybook/
│   │   │   │   │   ├── main.js
│   │   │   │   │   └── preview.js
│   │   │   │   ├── .stylelintrc.js
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── loader.ts
│   │   │   │   │   ├── monaco-editor.ts
│   │   │   │   │   ├── types.ts
│   │   │   │   │   └── typings.d.ts
│   │   │   │   ├── stories/
│   │   │   │   │   └── demo.stories.tsx
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-space-api/
│   │   │   │   ├── README.md
│   │   │   │   ├── __tests__/
│   │   │   │   │   ├── index.test.ts
│   │   │   │   │   └── space-api-v2.test.ts
│   │   │   │   ├── config/
│   │   │   │   │   └── rush-project.json
│   │   │   │   ├── eslint.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── src/
│   │   │   │   │   ├── global.d.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── space-api-v2.ts
│   │   │   │   ├── tsconfig.build.json
│   │   │   │   ├── tsconfig.json
│   │   │   │   ├── tsconfig.misc.json
│   │   │   │   └── vitest.config.ts
│   │   │   ├── bot-store/
│   │   │   │   ├── README.md
│   │   │   │   ├── _
Download .txt
Showing preview only (3,604K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (35446 symbols across 177 files)

FILE: backend/api/handler/coze/agent_run_service.go
  function AgentRun (line 41) | func AgentRun(ctx context.Context, c *app.RequestContext) {
  function checkParams (line 74) | func checkParams(_ context.Context, ar *run.AgentRunRequest) error {
  function ChatV3 (line 91) | func ChatV3(ctx context.Context, c *app.RequestContext) {
  function checkParamsV3 (line 141) | func checkParamsV3(_ context.Context, ar *run.ChatV3Request) error {
  function CancelChatApi (line 150) | func CancelChatApi(ctx context.Context, c *app.RequestContext) {
  function preprocessChatV3Parameters (line 169) | func preprocessChatV3Parameters(c *app.RequestContext) error {
  function RetrieveChatOpen (line 213) | func RetrieveChatOpen(ctx context.Context, c *app.RequestContext) {

FILE: backend/api/handler/coze/base.go
  function invalidParamRequestResponse (line 27) | func invalidParamRequestResponse(c *app.RequestContext, errMsg string) {
  function internalServerErrorResponse (line 31) | func internalServerErrorResponse(ctx context.Context, c *app.RequestCont...

FILE: backend/api/handler/coze/bot_open_api_service.go
  function OauthAuthorizationCode (line 39) | func OauthAuthorizationCode(ctx context.Context, c *app.RequestContext) {
  function UploadFileOpen (line 76) | func UploadFileOpen(ctx context.Context, c *app.RequestContext) {
  function GetBotOnlineInfo (line 97) | func GetBotOnlineInfo(ctx context.Context, c *app.RequestContext) {
  function ImpersonateCozeUser (line 117) | func ImpersonateCozeUser(ctx context.Context, c *app.RequestContext) {
  function OpenGetBotInfo (line 138) | func OpenGetBotInfo(ctx context.Context, c *app.RequestContext) {

FILE: backend/api/handler/coze/config_service.go
  function GetBasicConfiguration (line 29) | func GetBasicConfiguration(ctx context.Context, c *app.RequestContext) {
  function SaveBasicConfiguration (line 44) | func SaveBasicConfiguration(ctx context.Context, c *app.RequestContext) {
  function GetKnowledgeConfig (line 106) | func GetKnowledgeConfig(ctx context.Context, c *app.RequestContext) {
  function UpdateKnowledgeConfig (line 121) | func UpdateKnowledgeConfig(ctx context.Context, c *app.RequestContext) {
  function GetModelList (line 198) | func GetModelList(ctx context.Context, c *app.RequestContext) {
  function CreateModel (line 221) | func CreateModel(ctx context.Context, c *app.RequestContext) {
  function DeleteModel (line 274) | func DeleteModel(ctx context.Context, c *app.RequestContext) {

FILE: backend/api/handler/coze/conversation_service.go
  function ClearConversationHistory (line 35) | func ClearConversationHistory(ctx context.Context, c *app.RequestContext) {
  function checkCCHParams (line 57) | func checkCCHParams(_ context.Context, req *conversation.ClearConversati...
  function ClearConversationCtx (line 71) | func ClearConversationCtx(ctx context.Context, c *app.RequestContext) {
  function checkCCCParams (line 97) | func checkCCCParams(ctx context.Context, req *conversation.ClearConversa...
  function CreateConversation (line 110) | func CreateConversation(ctx context.Context, c *app.RequestContext) {
  function ClearConversationApi (line 130) | func ClearConversationApi(ctx context.Context, c *app.RequestContext) {
  function ListConversationsApi (line 156) | func ListConversationsApi(ctx context.Context, c *app.RequestContext) {
  function UpdateConversationApi (line 176) | func UpdateConversationApi(ctx context.Context, c *app.RequestContext) {
  function DeleteConversationApi (line 196) | func DeleteConversationApi(ctx context.Context, c *app.RequestContext) {
  function RetrieveConversationApi (line 215) | func RetrieveConversationApi(ctx context.Context, c *app.RequestContext) {

FILE: backend/api/handler/coze/database_service.go
  function ListDatabase (line 35) | func ListDatabase(ctx context.Context, c *app.RequestContext) {
  function GetDatabaseByID (line 55) | func GetDatabaseByID(ctx context.Context, c *app.RequestContext) {
  function AddDatabase (line 75) | func AddDatabase(ctx context.Context, c *app.RequestContext) {
  function UpdateDatabase (line 95) | func UpdateDatabase(ctx context.Context, c *app.RequestContext) {
  function DeleteDatabase (line 115) | func DeleteDatabase(ctx context.Context, c *app.RequestContext) {
  function BindDatabase (line 135) | func BindDatabase(ctx context.Context, c *app.RequestContext) {
  function UnBindDatabase (line 155) | func UnBindDatabase(ctx context.Context, c *app.RequestContext) {
  function ListDatabaseRecords (line 175) | func ListDatabaseRecords(ctx context.Context, c *app.RequestContext) {
  function UpdateDatabaseRecords (line 195) | func UpdateDatabaseRecords(ctx context.Context, c *app.RequestContext) {
  function GetOnlineDatabaseId (line 215) | func GetOnlineDatabaseId(ctx context.Context, c *app.RequestContext) {
  function ResetBotTable (line 235) | func ResetBotTable(ctx context.Context, c *app.RequestContext) {
  function GetDatabaseTemplate (line 255) | func GetDatabaseTemplate(ctx context.Context, c *app.RequestContext) {
  function GetConnectorName (line 275) | func GetConnectorName(ctx context.Context, c *app.RequestContext) {
  function GetBotDatabase (line 295) | func GetBotDatabase(ctx context.Context, c *app.RequestContext) {
  function UpdateDatabaseBotSwitch (line 315) | func UpdateDatabaseBotSwitch(ctx context.Context, c *app.RequestContext) {
  function GetDatabaseTableSchema (line 335) | func GetDatabaseTableSchema(ctx context.Context, c *app.RequestContext) {
  function SubmitDatabaseInsertTask (line 356) | func SubmitDatabaseInsertTask(ctx context.Context, c *app.RequestContext) {
  function DatabaseFileProgressData (line 376) | func DatabaseFileProgressData(ctx context.Context, c *app.RequestContext) {
  function ValidateDatabaseTableSchema (line 396) | func ValidateDatabaseTableSchema(ctx context.Context, c *app.RequestCont...

FILE: backend/api/handler/coze/developer_api_service.go
  function DraftBotCreate (line 47) | func DraftBotCreate(ctx context.Context, c *app.RequestContext) {
  function DeleteDraftBot (line 92) | func DeleteDraftBot(ctx context.Context, c *app.RequestContext) {
  function UpdateDraftBotDisplayInfo (line 112) | func UpdateDraftBotDisplayInfo(ctx context.Context, c *app.RequestContex...
  function DuplicateDraftBot (line 132) | func DuplicateDraftBot(ctx context.Context, c *app.RequestContext) {
  function GetDraftBotDisplayInfo (line 152) | func GetDraftBotDisplayInfo(ctx context.Context, c *app.RequestContext) {
  function PublishDraftBot (line 172) | func PublishDraftBot(ctx context.Context, c *app.RequestContext) {
  function ListDraftBotHistory (line 197) | func ListDraftBotHistory(ctx context.Context, c *app.RequestContext) {
  function GetIcon (line 230) | func GetIcon(ctx context.Context, c *app.RequestContext) {
  function GetUploadAuthToken (line 250) | func GetUploadAuthToken(ctx context.Context, c *app.RequestContext) {
  function createSecret (line 267) | func createSecret(uid int64, fileType string) string {
  function UploadFile (line 287) | func UploadFile(ctx context.Context, c *app.RequestContext) {
  constant baseWord (line 319) | baseWord = "1Aa2Bb3Cc4Dd5Ee6Ff7Gg8Hh9Ii0JjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"
  function GetOnboarding (line 323) | func GetOnboarding(ctx context.Context, c *app.RequestContext) {
  function PublishConnectorList (line 339) | func PublishConnectorList(ctx context.Context, c *app.RequestContext) {
  function CheckDraftBotCommit (line 364) | func CheckDraftBotCommit(ctx context.Context, c *app.RequestContext) {
  function UpdateUserProfileCheck (line 379) | func UpdateUserProfileCheck(ctx context.Context, c *app.RequestContext) {
  function GetTypeList (line 399) | func GetTypeList(ctx context.Context, c *app.RequestContext) {

FILE: backend/api/handler/coze/intelligence_service.go
  function GetDraftIntelligenceList (line 39) | func GetDraftIntelligenceList(ctx context.Context, c *app.RequestContext) {
  function GetDraftIntelligenceInfo (line 59) | func GetDraftIntelligenceInfo(ctx context.Context, c *app.RequestContext) {
  function GetUserRecentlyEditIntelligence (line 88) | func GetUserRecentlyEditIntelligence(ctx context.Context, c *app.Request...
  function DraftProjectCreate (line 104) | func DraftProjectCreate(ctx context.Context, c *app.RequestContext) {
  function DraftProjectUpdate (line 137) | func DraftProjectUpdate(ctx context.Context, c *app.RequestContext) {
  function DraftProjectDelete (line 170) | func DraftProjectDelete(ctx context.Context, c *app.RequestContext) {
  function GetProjectPublishedConnector (line 195) | func GetProjectPublishedConnector(ctx context.Context, c *app.RequestCon...
  function CheckProjectVersionNumber (line 211) | func CheckProjectVersionNumber(ctx context.Context, c *app.RequestContex...
  function PublishProject (line 240) | func PublishProject(ctx context.Context, c *app.RequestContext) {
  function GetPublishRecordList (line 269) | func GetPublishRecordList(ctx context.Context, c *app.RequestContext) {
  function ProjectPublishConnectorList (line 294) | func ProjectPublishConnectorList(ctx context.Context, c *app.RequestCont...
  function GetPublishRecordDetail (line 319) | func GetPublishRecordDetail(ctx context.Context, c *app.RequestContext) {
  function DraftProjectInnerTaskList (line 348) | func DraftProjectInnerTaskList(ctx context.Context, c *app.RequestContex...
  function DraftProjectCopy (line 373) | func DraftProjectCopy(ctx context.Context, c *app.RequestContext) {
  function GetOnlineAppData (line 410) | func GetOnlineAppData(ctx context.Context, c *app.RequestContext) {

FILE: backend/api/handler/coze/knowledge_service.go
  function CreateDataset (line 36) | func CreateDataset(ctx context.Context, c *app.RequestContext) {
  function DatasetDetail (line 55) | func DatasetDetail(ctx context.Context, c *app.RequestContext) {
  function ListDataset (line 74) | func ListDataset(ctx context.Context, c *app.RequestContext) {
  function DeleteDataset (line 94) | func DeleteDataset(ctx context.Context, c *app.RequestContext) {
  function UpdateDataset (line 114) | func UpdateDataset(ctx context.Context, c *app.RequestContext) {
  function CreateDocument (line 134) | func CreateDocument(ctx context.Context, c *app.RequestContext) {
  function ListDocument (line 154) | func ListDocument(ctx context.Context, c *app.RequestContext) {
  function DeleteDocument (line 174) | func DeleteDocument(ctx context.Context, c *app.RequestContext) {
  function UpdateDocument (line 194) | func UpdateDocument(ctx context.Context, c *app.RequestContext) {
  function GetDocumentProgress (line 214) | func GetDocumentProgress(ctx context.Context, c *app.RequestContext) {
  function Resegment (line 234) | func Resegment(ctx context.Context, c *app.RequestContext) {
  function UpdatePhotoCaption (line 254) | func UpdatePhotoCaption(ctx context.Context, c *app.RequestContext) {
  function ListPhoto (line 274) | func ListPhoto(ctx context.Context, c *app.RequestContext) {
  function PhotoDetail (line 294) | func PhotoDetail(ctx context.Context, c *app.RequestContext) {
  function GetTableSchema (line 314) | func GetTableSchema(ctx context.Context, c *app.RequestContext) {
  function ValidateTableSchema (line 334) | func ValidateTableSchema(ctx context.Context, c *app.RequestContext) {
  function DeleteSlice (line 354) | func DeleteSlice(ctx context.Context, c *app.RequestContext) {
  function CreateSlice (line 374) | func CreateSlice(ctx context.Context, c *app.RequestContext) {
  function UpdateSlice (line 394) | func UpdateSlice(ctx context.Context, c *app.RequestContext) {
  function ListSlice (line 414) | func ListSlice(ctx context.Context, c *app.RequestContext) {
  function CreateDocumentReview (line 434) | func CreateDocumentReview(ctx context.Context, c *app.RequestContext) {
  function MGetDocumentReview (line 454) | func MGetDocumentReview(ctx context.Context, c *app.RequestContext) {
  function SaveDocumentReview (line 474) | func SaveDocumentReview(ctx context.Context, c *app.RequestContext) {
  function GetIconForDataset (line 494) | func GetIconForDataset(ctx context.Context, c *app.RequestContext) {
  function ExtractPhotoCaption (line 514) | func ExtractPhotoCaption(ctx context.Context, c *app.RequestContext) {
  function GetDocumentTableInfo (line 534) | func GetDocumentTableInfo(ctx context.Context, c *app.RequestContext) {
  function GetModeConfig (line 554) | func GetModeConfig(ctx context.Context, c *app.RequestContext) {
  function CreateDocumentOpenAPI (line 579) | func CreateDocumentOpenAPI(ctx context.Context, c *app.RequestContext) {
  function DeleteDocumentOpenAPI (line 599) | func DeleteDocumentOpenAPI(ctx context.Context, c *app.RequestContext) {
  function UpdateDocumentOpenAPI (line 619) | func UpdateDocumentOpenAPI(ctx context.Context, c *app.RequestContext) {
  function ListDocumentOpenAPI (line 639) | func ListDocumentOpenAPI(ctx context.Context, c *app.RequestContext) {
  function CreateDatasetOpenAPI (line 659) | func CreateDatasetOpenAPI(ctx context.Context, c *app.RequestContext) {
  function ListDatasetOpenAPI (line 679) | func ListDatasetOpenAPI(ctx context.Context, c *app.RequestContext) {
  function UpdateDatasetOpenAPI (line 698) | func UpdateDatasetOpenAPI(ctx context.Context, c *app.RequestContext) {
  function DeleteDatasetOpenAPI (line 717) | func DeleteDatasetOpenAPI(ctx context.Context, c *app.RequestContext) {
  function ListPhotoDocumentOpenAPI (line 736) | func ListPhotoDocumentOpenAPI(ctx context.Context, c *app.RequestContext) {
  function GetDocumentProgressOpenAPI (line 755) | func GetDocumentProgressOpenAPI(ctx context.Context, c *app.RequestConte...

FILE: backend/api/handler/coze/memory_service.go
  function GetSysVariableConf (line 36) | func GetSysVariableConf(ctx context.Context, c *app.RequestContext) {
  function GetProjectVariableList (line 56) | func GetProjectVariableList(ctx context.Context, c *app.RequestContext) {
  function UpdateProjectVariable (line 93) | func UpdateProjectVariable(ctx context.Context, c *app.RequestContext) {
  function SetKvMemory (line 133) | func SetKvMemory(ctx context.Context, c *app.RequestContext) {
  function GetMemoryVariableMeta (line 163) | func GetMemoryVariableMeta(ctx context.Context, c *app.RequestContext) {
  function DelProfileMemory (line 183) | func DelProfileMemory(ctx context.Context, c *app.RequestContext) {
  function GetPlayGroundMemory (line 208) | func GetPlayGroundMemory(ctx context.Context, c *app.RequestContext) {

FILE: backend/api/handler/coze/message_service.go
  function GetMessageList (line 34) | func GetMessageList(ctx context.Context, c *app.RequestContext) {
  function checkMLParams (line 57) | func checkMLParams(ctx context.Context, req *message.GetMessageListReque...
  function DeleteMessage (line 67) | func DeleteMessage(ctx context.Context, c *app.RequestContext) {
  function checkDMParams (line 89) | func checkDMParams(_ context.Context, req *message.DeleteMessageRequest)...
  function BreakMessage (line 99) | func BreakMessage(ctx context.Context, c *app.RequestContext) {
  function checkBMParams (line 121) | func checkBMParams(_ context.Context, req *message.BreakMessageRequest) ...
  function GetApiMessageList (line 134) | func GetApiMessageList(ctx context.Context, c *app.RequestContext) {
  function ListChatMessageApi (line 154) | func ListChatMessageApi(ctx context.Context, c *app.RequestContext) {

FILE: backend/api/handler/coze/message_service_test.go
  function TestGetMessageList (line 36) | func TestGetMessageList(t *testing.T) {

FILE: backend/api/handler/coze/open_apiauth_service.go
  function GetPersonalAccessTokenAndPermission (line 37) | func GetPersonalAccessTokenAndPermission(ctx context.Context, c *app.Req...
  function DeletePersonalAccessTokenAndPermission (line 63) | func DeletePersonalAccessTokenAndPermission(ctx context.Context, c *app....
  function ListPersonalAccessTokens (line 89) | func ListPersonalAccessTokens(ctx context.Context, c *app.RequestContext) {
  function CreatePersonalAccessTokenAndPermission (line 117) | func CreatePersonalAccessTokenAndPermission(ctx context.Context, c *app....
  function checkCPATParams (line 142) | func checkCPATParams(ctx context.Context, req *openapiauth.CreatePersona...
  function UpdatePersonalAccessTokenAndPermission (line 152) | func UpdatePersonalAccessTokenAndPermission(ctx context.Context, c *app....

FILE: backend/api/handler/coze/passport_service.go
  function PassportWebEmailRegisterV2Post (line 41) | func PassportWebEmailRegisterV2Post(ctx context.Context, c *app.RequestC...
  function PassportWebLogoutGet (line 70) | func PassportWebLogoutGet(ctx context.Context, c *app.RequestContext) {
  function PassportWebEmailLoginPost (line 90) | func PassportWebEmailLoginPost(ctx context.Context, c *app.RequestContex...
  function PassportWebEmailPasswordResetGet (line 118) | func PassportWebEmailPasswordResetGet(ctx context.Context, c *app.Reques...
  function PassportAccountInfoV2 (line 138) | func PassportAccountInfoV2(ctx context.Context, c *app.RequestContext) {
  function UserUpdateAvatar (line 158) | func UserUpdateAvatar(ctx context.Context, c *app.RequestContext) {
  function UserUpdateProfile (line 204) | func UserUpdateProfile(ctx context.Context, c *app.RequestContext) {

FILE: backend/api/handler/coze/playground_service.go
  function UpdateDraftBotInfoAgw (line 38) | func UpdateDraftBotInfoAgw(ctx context.Context, c *app.RequestContext) {
  function GetDraftBotInfoAgw (line 67) | func GetDraftBotInfoAgw(ctx context.Context, c *app.RequestContext) {
  function GetOfficialPromptResourceList (line 92) | func GetOfficialPromptResourceList(ctx context.Context, c *app.RequestCo...
  function GetPromptResourceInfo (line 112) | func GetPromptResourceInfo(ctx context.Context, c *app.RequestContext) {
  function UpsertPromptResource (line 132) | func UpsertPromptResource(ctx context.Context, c *app.RequestContext) {
  function DeletePromptResource (line 167) | func DeletePromptResource(ctx context.Context, c *app.RequestContext) {
  function GetSpaceListV2 (line 187) | func GetSpaceListV2(ctx context.Context, c *app.RequestContext) {
  function GetImagexShortUrl (line 207) | func GetImagexShortUrl(ctx context.Context, c *app.RequestContext) {
  function MGetUserBasicInfo (line 232) | func MGetUserBasicInfo(ctx context.Context, c *app.RequestContext) {
  function GetBotPopupInfo (line 252) | func GetBotPopupInfo(ctx context.Context, c *app.RequestContext) {
  function UpdateBotPopupInfo (line 277) | func UpdateBotPopupInfo(ctx context.Context, c *app.RequestContext) {
  function CreateUpdateShortcutCommand (line 297) | func CreateUpdateShortcutCommand(ctx context.Context, c *app.RequestCont...
  function ReportUserBehavior (line 320) | func ReportUserBehavior(ctx context.Context, c *app.RequestContext) {
  function GetFileUrls (line 355) | func GetFileUrls(ctx context.Context, c *app.RequestContext) {

FILE: backend/api/handler/coze/plugin_develop_service.go
  function GetPlaygroundPluginList (line 36) | func GetPlaygroundPluginList(ctx context.Context, c *app.RequestContext) {
  function RegisterPluginMeta (line 81) | func RegisterPluginMeta(ctx context.Context, c *app.RequestContext) {
  function GetPluginAPIs (line 136) | func GetPluginAPIs(ctx context.Context, c *app.RequestContext) {
  function GetPluginInfo (line 171) | func GetPluginInfo(ctx context.Context, c *app.RequestContext) {
  function GetUpdatedAPIs (line 196) | func GetUpdatedAPIs(ctx context.Context, c *app.RequestContext) {
  function GetOAuthStatus (line 221) | func GetOAuthStatus(ctx context.Context, c *app.RequestContext) {
  function CheckAndLockPluginEdit (line 246) | func CheckAndLockPluginEdit(ctx context.Context, c *app.RequestContext) {
  function UpdatePlugin (line 271) | func UpdatePlugin(ctx context.Context, c *app.RequestContext) {
  function DeleteAPI (line 304) | func DeleteAPI(ctx context.Context, c *app.RequestContext) {
  function DelPlugin (line 333) | func DelPlugin(ctx context.Context, c *app.RequestContext) {
  function PublishPlugin (line 358) | func PublishPlugin(ctx context.Context, c *app.RequestContext) {
  function UpdatePluginMeta (line 398) | func UpdatePluginMeta(ctx context.Context, c *app.RequestContext) {
  function GetBotDefaultParams (line 435) | func GetBotDefaultParams(ctx context.Context, c *app.RequestContext) {
  function UpdateBotDefaultParams (line 472) | func UpdateBotDefaultParams(ctx context.Context, c *app.RequestContext) {
  function CreateAPI (line 509) | func CreateAPI(ctx context.Context, c *app.RequestContext) {
  function UpdateAPI (line 546) | func UpdateAPI(ctx context.Context, c *app.RequestContext) {
  function GetUserAuthority (line 587) | func GetUserAuthority(ctx context.Context, c *app.RequestContext) {
  function DebugAPI (line 612) | func DebugAPI(ctx context.Context, c *app.RequestContext) {
  function UnlockPluginEdit (line 641) | func UnlockPluginEdit(ctx context.Context, c *app.RequestContext) {
  function GetPluginNextVersion (line 661) | func GetPluginNextVersion(ctx context.Context, c *app.RequestContext) {
  function RegisterPlugin (line 681) | func RegisterPlugin(ctx context.Context, c *app.RequestContext) {
  function GetDevPluginList (line 718) | func GetDevPluginList(ctx context.Context, c *app.RequestContext) {
  function Convert2OpenAPI (line 759) | func Convert2OpenAPI(ctx context.Context, c *app.RequestContext) {
  function GetOAuthSchemaAPI (line 792) | func GetOAuthSchemaAPI(ctx context.Context, c *app.RequestContext) {
  function GetOAuthSchema (line 812) | func GetOAuthSchema(ctx context.Context, c *app.RequestContext) {
  function BatchCreateAPI (line 832) | func BatchCreateAPI(ctx context.Context, c *app.RequestContext) {
  function RevokeAuthToken (line 869) | func RevokeAuthToken(ctx context.Context, c *app.RequestContext) {
  function GetQueriedOAuthPluginList (line 894) | func GetQueriedOAuthPluginList(ctx context.Context, c *app.RequestContex...

FILE: backend/api/handler/coze/public_product_service.go
  function PublicGetProductList (line 50) | func PublicGetProductList(ctx context.Context, c *app.RequestContext) {
  function PublicGetProductDetail (line 87) | func PublicGetProductDetail(ctx context.Context, c *app.RequestContext) {
  function PublicFavoriteProduct (line 112) | func PublicFavoriteProduct(ctx context.Context, c *app.RequestContext) {
  function PublicGetUserFavoriteListV2 (line 149) | func PublicGetUserFavoriteListV2(ctx context.Context, c *app.RequestCont...
  function PublicDuplicateProduct (line 178) | func PublicDuplicateProduct(ctx context.Context, c *app.RequestContext) {
  function PublicSearchProduct (line 282) | func PublicSearchProduct(ctx context.Context, c *app.RequestContext) {
  function handlerCategoryIDs (line 316) | func handlerCategoryIDs(c *app.RequestContext, req *product_public_api.S...
  function PublicSearchSuggest (line 338) | func PublicSearchSuggest(ctx context.Context, c *app.RequestContext) {
  function PublicGetProductCategoryList (line 360) | func PublicGetProductCategoryList(ctx context.Context, c *app.RequestCon...
  function PublicGetProductCallInfo (line 384) | func PublicGetProductCallInfo(ctx context.Context, c *app.RequestContext) {
  function PublicGetMarketPluginConfig (line 404) | func PublicGetMarketPluginConfig(ctx context.Context, c *app.RequestCont...

FILE: backend/api/handler/coze/resource_service.go
  function LibraryResourceList (line 35) | func LibraryResourceList(ctx context.Context, c *app.RequestContext) {
  function ProjectResourceList (line 64) | func ProjectResourceList(ctx context.Context, c *app.RequestContext) {
  function ResourceCopyDispatch (line 93) | func ResourceCopyDispatch(ctx context.Context, c *app.RequestContext) {
  function ResourceCopyDetail (line 126) | func ResourceCopyDetail(ctx context.Context, c *app.RequestContext) {
  function ResourceCopyRetry (line 151) | func ResourceCopyRetry(ctx context.Context, c *app.RequestContext) {
  function ResourceCopyCancel (line 167) | func ResourceCopyCancel(ctx context.Context, c *app.RequestContext) {

FILE: backend/api/handler/coze/upload_service.go
  function CommonUpload (line 35) | func CommonUpload(ctx context.Context, c *app.RequestContext) {
  function ApplyUploadAction (line 55) | func ApplyUploadAction(ctx context.Context, c *app.RequestContext) {

FILE: backend/api/handler/coze/workflow_service.go
  function CreateWorkflow (line 44) | func CreateWorkflow(ctx context.Context, c *app.RequestContext) {
  function GetCanvasInfo (line 64) | func GetCanvasInfo(ctx context.Context, c *app.RequestContext) {
  function SaveWorkflow (line 84) | func SaveWorkflow(ctx context.Context, c *app.RequestContext) {
  function UpdateWorkflowMeta (line 104) | func UpdateWorkflowMeta(ctx context.Context, c *app.RequestContext) {
  function DeleteWorkflow (line 124) | func DeleteWorkflow(ctx context.Context, c *app.RequestContext) {
  function BatchDeleteWorkflow (line 144) | func BatchDeleteWorkflow(ctx context.Context, c *app.RequestContext) {
  function GetDeleteStrategy (line 164) | func GetDeleteStrategy(ctx context.Context, c *app.RequestContext) {
  function PublishWorkflow (line 180) | func PublishWorkflow(ctx context.Context, c *app.RequestContext) {
  function CopyWorkflow (line 199) | func CopyWorkflow(ctx context.Context, c *app.RequestContext) {
  function CopyWkTemplateApi (line 218) | func CopyWkTemplateApi(ctx context.Context, c *app.RequestContext) {
  function GetReleasedWorkflows (line 236) | func GetReleasedWorkflows(ctx context.Context, c *app.RequestContext) {
  function GetWorkflowReferences (line 252) | func GetWorkflowReferences(ctx context.Context, c *app.RequestContext) {
  function GetWorkFlowList (line 271) | func GetWorkFlowList(ctx context.Context, c *app.RequestContext) {
  function QueryWorkflowNodeTypes (line 290) | func QueryWorkflowNodeTypes(ctx context.Context, c *app.RequestContext) {
  function NodeTemplateList (line 309) | func NodeTemplateList(ctx context.Context, c *app.RequestContext) {
  function NodePanelSearch (line 329) | func NodePanelSearch(ctx context.Context, c *app.RequestContext) {
  function GetLLMNodeFCSettingsMerged (line 345) | func GetLLMNodeFCSettingsMerged(ctx context.Context, c *app.RequestConte...
  function GetLLMNodeFCSettingDetail (line 365) | func GetLLMNodeFCSettingDetail(ctx context.Context, c *app.RequestContex...
  function WorkFlowTestRun (line 385) | func WorkFlowTestRun(ctx context.Context, c *app.RequestContext) {
  function WorkFlowTestResume (line 405) | func WorkFlowTestResume(ctx context.Context, c *app.RequestContext) {
  function CancelWorkFlow (line 425) | func CancelWorkFlow(ctx context.Context, c *app.RequestContext) {
  function GetWorkFlowProcess (line 445) | func GetWorkFlowProcess(ctx context.Context, c *app.RequestContext) {
  function GetNodeExecuteHistory (line 465) | func GetNodeExecuteHistory(ctx context.Context, c *app.RequestContext) {
  function GetApiDetail (line 485) | func GetApiDetail(ctx context.Context, c *app.RequestContext) {
  function WorkflowNodeDebugV2 (line 511) | func WorkflowNodeDebugV2(ctx context.Context, c *app.RequestContext) {
  function SignImageURL (line 531) | func SignImageURL(ctx context.Context, c *app.RequestContext) {
  function CreateProjectConversationDef (line 551) | func CreateProjectConversationDef(ctx context.Context, c *app.RequestCon...
  function UpdateProjectConversationDef (line 571) | func UpdateProjectConversationDef(ctx context.Context, c *app.RequestCon...
  function DeleteProjectConversationDef (line 590) | func DeleteProjectConversationDef(ctx context.Context, c *app.RequestCon...
  function ListProjectConversationDef (line 610) | func ListProjectConversationDef(ctx context.Context, c *app.RequestConte...
  function ListRootSpans (line 630) | func ListRootSpans(ctx context.Context, c *app.RequestContext) {
  function GetTraceSDK (line 646) | func GetTraceSDK(ctx context.Context, c *app.RequestContext) {
  function GetWorkflowDetail (line 662) | func GetWorkflowDetail(ctx context.Context, c *app.RequestContext) {
  function GetWorkflowDetailInfo (line 688) | func GetWorkflowDetailInfo(ctx context.Context, c *app.RequestContext) {
  function ValidateTree (line 714) | func ValidateTree(ctx context.Context, c *app.RequestContext) {
  function GetChatFlowRole (line 734) | func GetChatFlowRole(ctx context.Context, c *app.RequestContext) {
  function CreateChatFlowRole (line 754) | func CreateChatFlowRole(ctx context.Context, c *app.RequestContext) {
  function DeleteChatFlowRole (line 773) | func DeleteChatFlowRole(ctx context.Context, c *app.RequestContext) {
  function ListPublishWorkflow (line 793) | func ListPublishWorkflow(ctx context.Context, c *app.RequestContext) {
  function GetWorkflowUploadAuthToken (line 809) | func GetWorkflowUploadAuthToken(ctx context.Context, c *app.RequestConte...
  function preprocessWorkflowRequestBody (line 827) | func preprocessWorkflowRequestBody(_ context.Context, c *app.RequestCont...
  function OpenAPIRunFlow (line 864) | func OpenAPIRunFlow(ctx context.Context, c *app.RequestContext) {
  type streamRunData (line 901) | type streamRunData struct
  type interruptData (line 916) | type interruptData struct
  function convertStreamRunData (line 922) | func convertStreamRunData(msg *workflow.OpenAPIStreamRunFlowResponse) *s...
  function sendStreamRunSSE (line 948) | func sendStreamRunSSE(ctx context.Context, w *sse.Writer, sr *schema.Str...
  function OpenAPIStreamRunFlow (line 1001) | func OpenAPIStreamRunFlow(ctx context.Context, c *app.RequestContext) {
  function OpenAPIStreamResumeFlow (line 1034) | func OpenAPIStreamResumeFlow(ctx context.Context, c *app.RequestContext) {
  function OpenAPIGetWorkflowRunHistory (line 1061) | func OpenAPIGetWorkflowRunHistory(ctx context.Context, c *app.RequestCon...
  function OpenAPIChatFlowRun (line 1090) | func OpenAPIChatFlowRun(ctx context.Context, c *app.RequestContext) {
  function sendChatFlowStreamRunSSE (line 1119) | func sendChatFlowStreamRunSSE(ctx context.Context, w *sse.Writer, sr *sc...
  function OpenAPIGetWorkflowInfo (line 1164) | func OpenAPIGetWorkflowInfo(ctx context.Context, c *app.RequestContext) {
  function processOpenAPIGetWorkflowInfoRequest (line 1189) | func processOpenAPIGetWorkflowInfoRequest(_ context.Context, c *app.Requ...
  function GetHistorySchema (line 1207) | func GetHistorySchema(ctx context.Context, c *app.RequestContext) {
  function GetExampleWorkFlowList (line 1227) | func GetExampleWorkFlowList(ctx context.Context, c *app.RequestContext) {
  function OpenAPICreateConversation (line 1247) | func OpenAPICreateConversation(ctx context.Context, c *app.RequestContex...

FILE: backend/api/handler/coze/workflow_service_test.go
  function TestMain (line 117) | func TestMain(m *testing.M) {
  type wfTestRunner (line 123) | type wfTestRunner struct
    method postWithError (line 450) | func (r *wfTestRunner) postWithError(req any) string {
    method load (line 509) | func (r *wfTestRunner) load(schemaFile string, opts ...func(*loadOptio...
    method getNodeExeHistory (line 614) | func (r *wfTestRunner) getNodeExeHistory(id string, exeID string, node...
    method getOpenAPIProcess (line 637) | func (r *wfTestRunner) getOpenAPIProcess(id string, exeID string) *wor...
    method testRun (line 686) | func (r *wfTestRunner) testRun(id string, input map[string]string, opt...
    method getProcess (line 770) | func (r *wfTestRunner) getProcess(id, exeID string, opts ...func(optio...
    method cancel (line 855) | func (r *wfTestRunner) cancel(id, exeID string) {
    method publish (line 863) | func (r *wfTestRunner) publish(id string, version string, force bool) {
    method openapiAsyncRun (line 873) | func (r *wfTestRunner) openapiAsyncRun(id string, input any) string {
    method openapiSyncRun (line 884) | func (r *wfTestRunner) openapiSyncRun(id string, input any, opts ...Ru...
    method validateTree (line 912) | func (r *wfTestRunner) validateTree(schema string) [][]*workflow.Valid...
    method testResume (line 936) | func (r *wfTestRunner) testResume(id string, exeID string, eventID str...
    method nodeDebug (line 977) | func (r *wfTestRunner) nodeDebug(id string, nodeID string, opts ...fun...
    method save (line 1004) | func (r *wfTestRunner) save(id string, schema string) {
    method openapiStream (line 1028) | func (r *wfTestRunner) openapiStream(id string, input any) *sse.Reader {
    method openapiResume (line 1060) | func (r *wfTestRunner) openapiResume(id string, eventID string, resume...
    method openapiChatFlowRun (line 1092) | func (r *wfTestRunner) openapiChatFlowRun(wfID string, cID, appID, bot...
    method runServer (line 1132) | func (r *wfTestRunner) runServer() func() {
  function newWfTestRunner (line 179) | func newWfTestRunner(t *testing.T) *wfTestRunner {
  type PostOption (line 386) | type PostOption struct
  type PostOptionFn (line 389) | type PostOptionFn
  function WithHeaders (line 391) | func WithHeaders(hds map[string]string) PostOptionFn {
  function post (line 402) | func post[T any](r *wfTestRunner, req any, opts ...PostOptionFn) *T {
  type loadOptions (line 465) | type loadOptions struct
  function withWorkflowData (line 475) | func withWorkflowData(data []byte) func(*loadOptions) {
  function withName (line 481) | func withName(n string) func(*loadOptions) {
  function withID (line 486) | func withID(id int64) func(*loadOptions) {
  function withProjectID (line 491) | func withProjectID(id int64) func(*loadOptions) {
  function withPublish (line 497) | func withPublish(version string) func(*loadOptions) {
  function withMode (line 503) | func withMode(mode workflow.WorkflowMode) func(*loadOptions) {
  function getProcess (line 592) | func getProcess(t *testing.T, h *server.Hertz, idStr string, exeID strin...
  function mustUnmarshalToMap (line 649) | func mustUnmarshalToMap(t *testing.T, s string) map[string]any {
  function mustMarshalToString (line 659) | func mustMarshalToString(t *testing.T, m any) string {
  type runOption (line 668) | type runOption struct
  type RunOptionFun (line 672) | type RunOptionFun
  function withRunProjectID (line 674) | func withRunProjectID(pID int64) RunOptionFun {
  function withRunBotID (line 680) | func withRunBotID(bID int64) RunOptionFun {
  type getProcessOptions (line 708) | type getProcessOptions struct
  function withPreviousEventID (line 713) | func withPreviousEventID(id string) func(options *getProcessOptions) {
  function withSpecificNodeID (line 718) | func withSpecificNodeID(id string) func(options *getProcessOptions) {
  type exeResult (line 724) | type exeResult struct
    method assertSuccess (line 734) | func (e *exeResult) assertSuccess() {
    method tokenEqual (line 738) | func (e *exeResult) tokenEqual(in, out int) {
    method nodeResultHasResponseExtra (line 750) | func (e *exeResult) nodeResultHasResponseExtra(nodeID string, k string...
  type nodeDebugOptions (line 953) | type nodeDebugOptions struct
  function withNDInput (line 959) | func withNDInput(input map[string]string) func(*nodeDebugOptions) {
  function withNDBatch (line 965) | func withNDBatch(batch map[string]string) func(*nodeDebugOptions) {
  function withNDSettings (line 971) | func withNDSettings(settings map[string]string) func(*nodeDebugOptions) {
  function getCanvas (line 1016) | func getCanvas(ctx context.Context, id string) (string, error) {
  function TestNodeTemplateList (line 1142) | func TestNodeTemplateList(t *testing.T) {
  function TestValidateTree (line 1190) | func TestValidateTree(t *testing.T) {
  function TestQueryTypes (line 1307) | func TestQueryTypes(t *testing.T) {
  function TestResumeWithQANode (line 1407) | func TestResumeWithQANode(t *testing.T) {
  function TestPublishWorkflow (line 1472) | func TestPublishWorkflow(t *testing.T) {
  function TestGetCanvasInfo (line 1511) | func TestGetCanvasInfo(t *testing.T) {
  function TestUpdateWorkflowMeta (line 1553) | func TestUpdateWorkflowMeta(t *testing.T) {
  function TestListWorkflowAsToolData (line 1578) | func TestListWorkflowAsToolData(t *testing.T) {
  function TestWorkflowDetailAndDetailInfo (line 1618) | func TestWorkflowDetailAndDetailInfo(t *testing.T) {
  function TestInputComplex (line 1653) | func TestInputComplex(t *testing.T) {
  function TestGetLLMNodeFCSettingsDetailAndMerged (line 1686) | func TestGetLLMNodeFCSettingsDetailAndMerged(t *testing.T) {
  function TestNodeDebugLoop (line 1950) | func TestNodeDebugLoop(t *testing.T) {
  function TestCopyWorkflow (line 2029) | func TestCopyWorkflow(t *testing.T) {
  function TestReleaseApplicationWorkflows (line 2067) | func TestReleaseApplicationWorkflows(t *testing.T) {
  function TestCopyWorkflowAppToLibrary (line 2223) | func TestCopyWorkflowAppToLibrary(t *testing.T) {
  function TestMoveWorkflowAppToLibrary (line 2502) | func TestMoveWorkflowAppToLibrary(t *testing.T) {
  function TestDuplicateWorkflowsByAppID (line 2664) | func TestDuplicateWorkflowsByAppID(t *testing.T) {
  function TestJsonSerializationDeserialization (line 2751) | func TestJsonSerializationDeserialization(t *testing.T) {
  function TestJsonSerializationDeserializationWithWarning (line 2804) | func TestJsonSerializationDeserializationWithWarning(t *testing.T) {
  function TestChatFlowRoleAPI (line 2832) | func TestChatFlowRoleAPI(t *testing.T) {
  function TestConversationOfChatFlow (line 2910) | func TestConversationOfChatFlow(t *testing.T) {
  function TestConversationListNodes (line 3096) | func TestConversationListNodes(t *testing.T) {
  function TestConversationHistoryNodes (line 3162) | func TestConversationHistoryNodes(t *testing.T) {

FILE: backend/api/internal/httputil/error_resp.go
  type data (line 30) | type data struct
  function BadRequest (line 35) | func BadRequest(c *app.RequestContext, errMsg string) {
  function Unauthorized (line 39) | func Unauthorized(c *app.RequestContext, errMsg string) {
  function InternalError (line 43) | func InternalError(ctx context.Context, c *app.RequestContext, err error) {

FILE: backend/api/middleware/ctx_cache.go
  function ContextCacheMW (line 27) | func ContextCacheMW() app.HandlerFunc {

FILE: backend/api/middleware/host.go
  function SetHostMW (line 28) | func SetHostMW() app.HandlerFunc {

FILE: backend/api/middleware/i18n.go
  function I18nMW (line 31) | func I18nMW() app.HandlerFunc {

FILE: backend/api/middleware/log.go
  function AccessLogMW (line 36) | func AccessLogMW() app.HandlerFunc {
  function SetLogIDMW (line 85) | func SetLogIDMW() app.HandlerFunc {
  function bytesToString (line 95) | func bytesToString(b []byte) string {

FILE: backend/api/middleware/openapi_auth.go
  constant HeaderAuthorizationKey (line 38) | HeaderAuthorizationKey = "Authorization"
  function parseBearerAuthToken (line 77) | func parseBearerAuthToken(authHeader string) string {
  function isNeedOpenapiAuth (line 94) | func isNeedOpenapiAuth(c *app.RequestContext) bool {
  function OpenapiAuthMW (line 113) | func OpenapiAuthMW() app.HandlerFunc {

FILE: backend/api/middleware/request_inspector.go
  constant RequestAuthTypeStr (line 26) | RequestAuthTypeStr = "RequestAuthTypeStr"
  constant RequestAuthTypeWebAPI (line 31) | RequestAuthTypeWebAPI     RequestAuthType = 0
  constant RequestAuthTypeOpenAPI (line 32) | RequestAuthTypeOpenAPI    RequestAuthType = 1
  constant RequestAuthTypeStaticFile (line 33) | RequestAuthTypeStaticFile RequestAuthType = 2
  function RequestInspectorMW (line 36) | func RequestInspectorMW() app.HandlerFunc {
  function isStaticFile (line 58) | func isStaticFile(ctx *app.RequestContext) bool {

FILE: backend/api/middleware/session.go
  function SessionAuthMW (line 42) | func SessionAuthMW() app.HandlerFunc {
  function AdminAuthMW (line 78) | func AdminAuthMW() app.HandlerFunc {

FILE: backend/api/model/admin/config/config.go
  type ModelType (line 15) | type ModelType
    method String (line 23) | func (p ModelType) String() string {
    method Scan (line 48) | func (p *ModelType) Scan(value interface{}) (err error) {
    method Value (line 55) | func (p *ModelType) Value() (driver.Value, error) {
  constant ModelType_LLM (line 18) | ModelType_LLM           ModelType = 0
  constant ModelType_TextEmbedding (line 19) | ModelType_TextEmbedding ModelType = 1
  constant ModelType_Rerank (line 20) | ModelType_Rerank        ModelType = 2
  function ModelTypeFromString (line 35) | func ModelTypeFromString(s string) (ModelType, error) {
  function ModelTypePtr (line 47) | func ModelTypePtr(v ModelType) *ModelType { return &v }
  type ThinkingType (line 62) | type ThinkingType
    method String (line 71) | func (p ThinkingType) String() string {
    method Scan (line 100) | func (p *ThinkingType) Scan(value interface{}) (err error) {
    method Value (line 107) | func (p *ThinkingType) Value() (driver.Value, error) {
  constant ThinkingType_Default (line 65) | ThinkingType_Default ThinkingType = 0
  constant ThinkingType_Enable (line 66) | ThinkingType_Enable  ThinkingType = 1
  constant ThinkingType_Disable (line 67) | ThinkingType_Disable ThinkingType = 2
  constant ThinkingType_Auto (line 68) | ThinkingType_Auto    ThinkingType = 3
  function ThinkingTypeFromString (line 85) | func ThinkingTypeFromString(s string) (ThinkingType, error) {
  function ThinkingTypePtr (line 99) | func ThinkingTypePtr(v ThinkingType) *ThinkingType { return &v }
  type ModelStatus (line 114) | type ModelStatus
    method String (line 125) | func (p ModelStatus) String() string {
    method Scan (line 150) | func (p *ModelStatus) Scan(value interface{}) (err error) {
    method Value (line 157) | func (p *ModelStatus) Value() (driver.Value, error) {
  constant ModelStatus_StatusDefault (line 118) | ModelStatus_StatusDefault ModelStatus = 0
  constant ModelStatus_StatusInUse (line 120) | ModelStatus_StatusInUse ModelStatus = 1
  constant ModelStatus_StatusDeleted (line 122) | ModelStatus_StatusDeleted ModelStatus = 2
  function ModelStatusFromString (line 137) | func ModelStatusFromString(s string) (ModelStatus, error) {
  function ModelStatusPtr (line 149) | func ModelStatusPtr(v ModelStatus) *ModelStatus { return &v }
  type CodeRunnerType (line 164) | type CodeRunnerType
    method String (line 171) | func (p CodeRunnerType) String() string {
    method Scan (line 192) | func (p *CodeRunnerType) Scan(value interface{}) (err error) {
    method Value (line 199) | func (p *CodeRunnerType) Value() (driver.Value, error) {
  constant CodeRunnerType_Local (line 167) | CodeRunnerType_Local   CodeRunnerType = 0
  constant CodeRunnerType_Sandbox (line 168) | CodeRunnerType_Sandbox CodeRunnerType = 1
  function CodeRunnerTypeFromString (line 181) | func CodeRunnerTypeFromString(s string) (CodeRunnerType, error) {
  function CodeRunnerTypePtr (line 191) | func CodeRunnerTypePtr(v CodeRunnerType) *CodeRunnerType { return &v }
  type EmbeddingType (line 206) | type EmbeddingType
    method String (line 216) | func (p EmbeddingType) String() string {
    method Scan (line 249) | func (p *EmbeddingType) Scan(value interface{}) (err error) {
    method Value (line 256) | func (p *EmbeddingType) Value() (driver.Value, error) {
  constant EmbeddingType_Ark (line 209) | EmbeddingType_Ark    EmbeddingType = 0
  constant EmbeddingType_OpenAI (line 210) | EmbeddingType_OpenAI EmbeddingType = 1
  constant EmbeddingType_Ollama (line 211) | EmbeddingType_Ollama EmbeddingType = 2
  constant EmbeddingType_Gemini (line 212) | EmbeddingType_Gemini EmbeddingType = 3
  constant EmbeddingType_HTTP (line 213) | EmbeddingType_HTTP   EmbeddingType = 4
  function EmbeddingTypeFromString (line 232) | func EmbeddingTypeFromString(s string) (EmbeddingType, error) {
  function EmbeddingTypePtr (line 248) | func EmbeddingTypePtr(v EmbeddingType) *EmbeddingType { return &v }
  type RerankType (line 263) | type RerankType
    method String (line 270) | func (p RerankType) String() string {
    method Scan (line 291) | func (p *RerankType) Scan(value interface{}) (err error) {
    method Value (line 298) | func (p *RerankType) Value() (driver.Value, error) {
  constant RerankType_VikingDB (line 266) | RerankType_VikingDB RerankType = 0
  constant RerankType_RRF (line 267) | RerankType_RRF      RerankType = 1
  function RerankTypeFromString (line 280) | func RerankTypeFromString(s string) (RerankType, error) {
  function RerankTypePtr (line 290) | func RerankTypePtr(v RerankType) *RerankType { return &v }
  type OCRType (line 305) | type OCRType
    method String (line 312) | func (p OCRType) String() string {
    method Scan (line 333) | func (p *OCRType) Scan(value interface{}) (err error) {
    method Value (line 340) | func (p *OCRType) Value() (driver.Value, error) {
  constant OCRType_Volcengine (line 308) | OCRType_Volcengine OCRType = 0
  constant OCRType_Paddleocr (line 309) | OCRType_Paddleocr  OCRType = 1
  function OCRTypeFromString (line 322) | func OCRTypeFromString(s string) (OCRType, error) {
  function OCRTypePtr (line 332) | func OCRTypePtr(v OCRType) *OCRType { return &v }
  type ParserType (line 347) | type ParserType
    method String (line 354) | func (p ParserType) String() string {
    method Scan (line 375) | func (p *ParserType) Scan(value interface{}) (err error) {
    method Value (line 382) | func (p *ParserType) Value() (driver.Value, error) {
  constant ParserType_builtin (line 350) | ParserType_builtin   ParserType = 0
  constant ParserType_Paddleocr (line 351) | ParserType_Paddleocr ParserType = 1
  function ParserTypeFromString (line 364) | func ParserTypeFromString(s string) (ParserType, error) {
  function ParserTypePtr (line 374) | func ParserTypePtr(v ParserType) *ParserType { return &v }
  type GetModelListReq (line 389) | type GetModelListReq struct
    method InitDefault (line 397) | func (p *GetModelListReq) InitDefault() {
    method GetBase (line 402) | func (p *GetModelListReq) GetBase() (v *base.Base) {
    method IsSetBase (line 413) | func (p *GetModelListReq) IsSetBase() bool {
    method Read (line 417) | func (p *GetModelListReq) Read(iprot thrift.TProtocol) (err error) {
    method ReadField255 (line 472) | func (p *GetModelListReq) ReadField255(iprot thrift.TProtocol) error {
    method Write (line 481) | func (p *GetModelListReq) Write(oprot thrift.TProtocol) (err error) {
    method writeField255 (line 509) | func (p *GetModelListReq) writeField255(oprot thrift.TProtocol) (err e...
    method String (line 528) | func (p *GetModelListReq) String() string {
  function NewGetModelListReq (line 393) | func NewGetModelListReq() *GetModelListReq {
  type GetModelListResp (line 536) | type GetModelListResp struct
    method InitDefault (line 547) | func (p *GetModelListResp) InitDefault() {
    method GetProviderModelList (line 550) | func (p *GetModelListResp) GetProviderModelList() (v []*ProviderModelL...
    method GetCode (line 554) | func (p *GetModelListResp) GetCode() (v int64) {
    method GetMsg (line 558) | func (p *GetModelListResp) GetMsg() (v string) {
    method GetBaseResp (line 564) | func (p *GetModelListResp) GetBaseResp() (v *base.BaseResp) {
    method IsSetBaseResp (line 578) | func (p *GetModelListResp) IsSetBaseResp() bool {
    method Read (line 582) | func (p *GetModelListResp) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 683) | func (p *GetModelListResp) ReadField1(iprot thrift.TProtocol) error {
    method ReadField253 (line 706) | func (p *GetModelListResp) ReadField253(iprot thrift.TProtocol) error {
    method ReadField254 (line 717) | func (p *GetModelListResp) ReadField254(iprot thrift.TProtocol) error {
    method ReadField255 (line 728) | func (p *GetModelListResp) ReadField255(iprot thrift.TProtocol) error {
    method Write (line 737) | func (p *GetModelListResp) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 777) | func (p *GetModelListResp) writeField1(oprot thrift.TProtocol) (err er...
    method writeField253 (line 801) | func (p *GetModelListResp) writeField253(oprot thrift.TProtocol) (err ...
    method writeField254 (line 817) | func (p *GetModelListResp) writeField254(oprot thrift.TProtocol) (err ...
    method writeField255 (line 833) | func (p *GetModelListResp) writeField255(oprot thrift.TProtocol) (err ...
    method String (line 850) | func (p *GetModelListResp) String() string {
  function NewGetModelListResp (line 543) | func NewGetModelListResp() *GetModelListResp {
  type ProviderModelList (line 858) | type ProviderModelList struct
    method InitDefault (line 867) | func (p *ProviderModelList) InitDefault() {
    method GetProvider (line 872) | func (p *ProviderModelList) GetProvider() (v *ModelProvider) {
    method GetModelList (line 879) | func (p *ProviderModelList) GetModelList() (v []*Model) {
    method IsSetProvider (line 888) | func (p *ProviderModelList) IsSetProvider() bool {
    method Read (line 892) | func (p *ProviderModelList) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 955) | func (p *ProviderModelList) ReadField1(iprot thrift.TProtocol) error {
    method ReadField2 (line 963) | func (p *ProviderModelList) ReadField2(iprot thrift.TProtocol) error {
    method Write (line 987) | func (p *ProviderModelList) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 1019) | func (p *ProviderModelList) writeField1(oprot thrift.TProtocol) (err e...
    method writeField2 (line 1035) | func (p *ProviderModelList) writeField2(oprot thrift.TProtocol) (err e...
    method String (line 1060) | func (p *ProviderModelList) String() string {
  function NewProviderModelList (line 863) | func NewProviderModelList() *ProviderModelList {
  type I18nText (line 1068) | type I18nText struct
    method InitDefault (line 1077) | func (p *I18nText) InitDefault() {
    method GetZhCn (line 1080) | func (p *I18nText) GetZhCn() (v string) {
    method GetEnUs (line 1084) | func (p *I18nText) GetEnUs() (v string) {
    method Read (line 1093) | func (p *I18nText) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 1156) | func (p *I18nText) ReadField1(iprot thrift.TProtocol) error {
    method ReadField2 (line 1167) | func (p *I18nText) ReadField2(iprot thrift.TProtocol) error {
    method Write (line 1179) | func (p *I18nText) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 1211) | func (p *I18nText) writeField1(oprot thrift.TProtocol) (err error) {
    method writeField2 (line 1227) | func (p *I18nText) writeField2(oprot thrift.TProtocol) (err error) {
    method String (line 1244) | func (p *I18nText) String() string {
  function NewI18nText (line 1073) | func NewI18nText() *I18nText {
  type ModelProvider (line 1252) | type ModelProvider struct
    method InitDefault (line 1264) | func (p *ModelProvider) InitDefault() {
    method GetName (line 1269) | func (p *ModelProvider) GetName() (v *I18nText) {
    method GetIconURI (line 1276) | func (p *ModelProvider) GetIconURI() (v string) {
    method GetIconURL (line 1280) | func (p *ModelProvider) GetIconURL() (v string) {
    method GetDescription (line 1286) | func (p *ModelProvider) GetDescription() (v *I18nText) {
    method GetModelClass (line 1293) | func (p *ModelProvider) GetModelClass() (v developer_api.ModelClass) {
    method IsSetName (line 1305) | func (p *ModelProvider) IsSetName() bool {
    method IsSetDescription (line 1309) | func (p *ModelProvider) IsSetDescription() bool {
    method Read (line 1313) | func (p *ModelProvider) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 1400) | func (p *ModelProvider) ReadField1(iprot thrift.TProtocol) error {
    method ReadField2 (line 1408) | func (p *ModelProvider) ReadField2(iprot thrift.TProtocol) error {
    method ReadField3 (line 1419) | func (p *ModelProvider) ReadField3(iprot thrift.TProtocol) error {
    method ReadField4 (line 1430) | func (p *ModelProvider) ReadField4(iprot thrift.TProtocol) error {
    method ReadField5 (line 1438) | func (p *ModelProvider) ReadField5(iprot thrift.TProtocol) error {
    method Write (line 1450) | func (p *ModelProvider) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 1494) | func (p *ModelProvider) writeField1(oprot thrift.TProtocol) (err error) {
    method writeField2 (line 1510) | func (p *ModelProvider) writeField2(oprot thrift.TProtocol) (err error) {
    method writeField3 (line 1526) | func (p *ModelProvider) writeField3(oprot thrift.TProtocol) (err error) {
    method writeField4 (line 1542) | func (p *ModelProvider) writeField4(oprot thrift.TProtocol) (err error) {
    method writeField5 (line 1558) | func (p *ModelProvider) writeField5(oprot thrift.TProtocol) (err error) {
    method String (line 1575) | func (p *ModelProvider) String() string {
  function NewModelProvider (line 1260) | func NewModelProvider() *ModelProvider {
  type DisplayInfo (line 1583) | type DisplayInfo struct
    method InitDefault (line 1594) | func (p *DisplayInfo) InitDefault() {
    method GetName (line 1597) | func (p *DisplayInfo) GetName() (v string) {
    method GetDescription (line 1603) | func (p *DisplayInfo) GetDescription() (v *I18nText) {
    method GetOutputTokens (line 1610) | func (p *DisplayInfo) GetOutputTokens() (v int64) {
    method GetMaxTokens (line 1614) | func (p *DisplayInfo) GetMaxTokens() (v int64) {
    method IsSetDescription (line 1625) | func (p *DisplayInfo) IsSetDescription() bool {
    method Read (line 1629) | func (p *DisplayInfo) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 1708) | func (p *DisplayInfo) ReadField1(iprot thrift.TProtocol) error {
    method ReadField3 (line 1719) | func (p *DisplayInfo) ReadField3(iprot thrift.TProtocol) error {
    method ReadField4 (line 1727) | func (p *DisplayInfo) ReadField4(iprot thrift.TProtocol) error {
    method ReadField5 (line 1738) | func (p *DisplayInfo) ReadField5(iprot thrift.TProtocol) error {
    method Write (line 1750) | func (p *DisplayInfo) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 1790) | func (p *DisplayInfo) writeField1(oprot thrift.TProtocol) (err error) {
    method writeField3 (line 1806) | func (p *DisplayInfo) writeField3(oprot thrift.TProtocol) (err error) {
    method writeField4 (line 1822) | func (p *DisplayInfo) writeField4(oprot thrift.TProtocol) (err error) {
    method writeField5 (line 1838) | func (p *DisplayInfo) writeField5(oprot thrift.TProtocol) (err error) {
    method String (line 1855) | func (p *DisplayInfo) String() string {
  function NewDisplayInfo (line 1590) | func NewDisplayInfo() *DisplayInfo {
  type Model (line 1863) | type Model struct
    method InitDefault (line 1880) | func (p *Model) InitDefault() {
    method GetID (line 1883) | func (p *Model) GetID() (v int64) {
    method GetProvider (line 1889) | func (p *Model) GetProvider() (v *ModelProvider) {
    method GetDisplayInfo (line 1898) | func (p *Model) GetDisplayInfo() (v *DisplayInfo) {
    method GetCapability (line 1907) | func (p *Model) GetCapability() (v *developer_api.ModelAbility) {
    method GetConnection (line 1916) | func (p *Model) GetConnection() (v *Connection) {
    method GetType (line 1923) | func (p *Model) GetType() (v ModelType) {
    method GetParameters (line 1927) | func (p *Model) GetParameters() (v []*developer_api.ModelParameter) {
    method GetStatus (line 1931) | func (p *Model) GetStatus() (v ModelStatus) {
    method GetEnableBase64URL (line 1935) | func (p *Model) GetEnableBase64URL() (v bool) {
    method GetDeleteAtMs (line 1939) | func (p *Model) GetDeleteAtMs() (v int64) {
    method IsSetProvider (line 1956) | func (p *Model) IsSetProvider() bool {
    method IsSetDisplayInfo (line 1960) | func (p *Model) IsSetDisplayInfo() bool {
    method IsSetCapability (line 1964) | func (p *Model) IsSetCapability() bool {
    method IsSetConnection (line 1968) | func (p *Model) IsSetConnection() bool {
    method Read (line 1972) | func (p *Model) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 2099) | func (p *Model) ReadField1(iprot thrift.TProtocol) error {
    method ReadField2 (line 2110) | func (p *Model) ReadField2(iprot thrift.TProtocol) error {
    method ReadField3 (line 2118) | func (p *Model) ReadField3(iprot thrift.TProtocol) error {
    method ReadField4 (line 2126) | func (p *Model) ReadField4(iprot thrift.TProtocol) error {
    method ReadField5 (line 2134) | func (p *Model) ReadField5(iprot thrift.TProtocol) error {
    method ReadField6 (line 2142) | func (p *Model) ReadField6(iprot thrift.TProtocol) error {
    method ReadField7 (line 2153) | func (p *Model) ReadField7(iprot thrift.TProtocol) error {
    method ReadField8 (line 2176) | func (p *Model) ReadField8(iprot thrift.TProtocol) error {
    method ReadField9 (line 2187) | func (p *Model) ReadField9(iprot thrift.TProtocol) error {
    method ReadField10 (line 2198) | func (p *Model) ReadField10(iprot thrift.TProtocol) error {
    method Write (line 2210) | func (p *Model) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 2274) | func (p *Model) writeField1(oprot thrift.TProtocol) (err error) {
    method writeField2 (line 2290) | func (p *Model) writeField2(oprot thrift.TProtocol) (err error) {
    method writeField3 (line 2306) | func (p *Model) writeField3(oprot thrift.TProtocol) (err error) {
    method writeField4 (line 2322) | func (p *Model) writeField4(oprot thrift.TProtocol) (err error) {
    method writeField5 (line 2338) | func (p *Model) writeField5(oprot thrift.TProtocol) (err error) {
    method writeField6 (line 2354) | func (p *Model) writeField6(oprot thrift.TProtocol) (err error) {
    method writeField7 (line 2370) | func (p *Model) writeField7(oprot thrift.TProtocol) (err error) {
    method writeField8 (line 2394) | func (p *Model) writeField8(oprot thrift.TProtocol) (err error) {
    method writeField9 (line 2410) | func (p *Model) writeField9(oprot thrift.TProtocol) (err error) {
    method writeField10 (line 2426) | func (p *Model) writeField10(oprot thrift.TProtocol) (err error) {
    method String (line 2443) | func (p *Model) String() string {
  function NewModel (line 1876) | func NewModel() *Model {
  type Connection (line 2451) | type Connection struct
    method InitDefault (line 2466) | func (p *Connection) InitDefault() {
    method GetBaseConnInfo (line 2471) | func (p *Connection) GetBaseConnInfo() (v *BaseConnectionInfo) {
    method GetArk (line 2480) | func (p *Connection) GetArk() (v *ArkConnInfo) {
    method GetOpenai (line 2489) | func (p *Connection) GetOpenai() (v *OpenAIConnInfo) {
    method GetDeepseek (line 2498) | func (p *Connection) GetDeepseek() (v *DeepseekConnInfo) {
    method GetGemini (line 2507) | func (p *Connection) GetGemini() (v *GeminiConnInfo) {
    method GetQwen (line 2516) | func (p *Connection) GetQwen() (v *QwenConnInfo) {
    method GetOllama (line 2525) | func (p *Connection) GetOllama() (v *OllamaConnInfo) {
    method GetClaude (line 2534) | func (p *Connection) GetClaude() (v *ClaudeConnInfo) {
    method IsSetBaseConnInfo (line 2552) | func (p *Connection) IsSetBaseConnInfo() bool {
    method IsSetArk (line 2556) | func (p *Connection) IsSetArk() bool {
    method IsSetOpenai (line 2560) | func (p *Connection) IsSetOpenai() bool {
    method IsSetDeepseek (line 2564) | func (p *Connection) IsSetDeepseek() bool {
    method IsSetGemini (line 2568) | func (p *Connection) IsSetGemini() bool {
    method IsSetQwen (line 2572) | func (p *Connection) IsSetQwen() bool {
    method IsSetOllama (line 2576) | func (p *Connection) IsSetOllama() bool {
    method IsSetClaude (line 2580) | func (p *Connection) IsSetClaude() bool {
    method Read (line 2584) | func (p *Connection) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 2695) | func (p *Connection) ReadField1(iprot thrift.TProtocol) error {
    method ReadField2 (line 2703) | func (p *Connection) ReadField2(iprot thrift.TProtocol) error {
    method ReadField3 (line 2711) | func (p *Connection) ReadField3(iprot thrift.TProtocol) error {
    method ReadField4 (line 2719) | func (p *Connection) ReadField4(iprot thrift.TProtocol) error {
    method ReadField5 (line 2727) | func (p *Connection) ReadField5(iprot thrift.TProtocol) error {
    method ReadField6 (line 2735) | func (p *Connection) ReadField6(iprot thrift.TProtocol) error {
    method ReadField7 (line 2743) | func (p *Connection) ReadField7(iprot thrift.TProtocol) error {
    method ReadField8 (line 2751) | func (p *Connection) ReadField8(iprot thrift.TProtocol) error {
    method Write (line 2760) | func (p *Connection) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 2816) | func (p *Connection) writeField1(oprot thrift.TProtocol) (err error) {
    method writeField2 (line 2832) | func (p *Connection) writeField2(oprot thrift.TProtocol) (err error) {
    method writeField3 (line 2850) | func (p *Connection) writeField3(oprot thrift.TProtocol) (err error) {
    method writeField4 (line 2868) | func (p *Connection) writeField4(oprot thrift.TProtocol) (err error) {
    method writeField5 (line 2886) | func (p *Connection) writeField5(oprot thrift.TProtocol) (err error) {
    method writeField6 (line 2904) | func (p *Connection) writeField6(oprot thrift.TProtocol) (err error) {
    method writeField7 (line 2922) | func (p *Connection) writeField7(oprot thrift.TProtocol) (err error) {
    method writeField8 (line 2940) | func (p *Connection) writeField8(oprot thrift.TProtocol) (err error) {
    method String (line 2959) | func (p *Connection) String() string {
  function NewConnection (line 2462) | func NewConnection() *Connection {
  type BaseConnectionInfo (line 2967) | type BaseConnectionInfo struct
    method InitDefault (line 2978) | func (p *BaseConnectionInfo) InitDefault() {
    method GetBaseURL (line 2981) | func (p *BaseConnectionInfo) GetBaseURL() (v string) {
    method GetAPIKey (line 2985) | func (p *BaseConnectionInfo) GetAPIKey() (v string) {
    method GetModel (line 2989) | func (p *BaseConnectionInfo) GetModel() (v string) {
    method GetThinkingType (line 2993) | func (p *BaseConnectionInfo) GetThinkingType() (v ThinkingType) {
    method Read (line 3004) | func (p *BaseConnectionInfo) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 3083) | func (p *BaseConnectionInfo) ReadField1(iprot thrift.TProtocol) error {
    method ReadField2 (line 3094) | func (p *BaseConnectionInfo) ReadField2(iprot thrift.TProtocol) error {
    method ReadField3 (line 3105) | func (p *BaseConnectionInfo) ReadField3(iprot thrift.TProtocol) error {
    method ReadField4 (line 3116) | func (p *BaseConnectionInfo) ReadField4(iprot thrift.TProtocol) error {
    method Write (line 3128) | func (p *BaseConnectionInfo) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 3168) | func (p *BaseConnectionInfo) writeField1(oprot thrift.TProtocol) (err ...
    method writeField2 (line 3184) | func (p *BaseConnectionInfo) writeField2(oprot thrift.TProtocol) (err ...
    method writeField3 (line 3200) | func (p *BaseConnectionInfo) writeField3(oprot thrift.TProtocol) (err ...
    method writeField4 (line 3216) | func (p *BaseConnectionInfo) writeField4(oprot thrift.TProtocol) (err ...
    method String (line 3233) | func (p *BaseConnectionInfo) String() string {
  function NewBaseConnectionInfo (line 2974) | func NewBaseConnectionInfo() *BaseConnectionInfo {
  type EmbeddingInfo (line 3241) | type EmbeddingInfo struct
    method InitDefault (line 3249) | func (p *EmbeddingInfo) InitDefault() {
    method GetDims (line 3252) | func (p *EmbeddingInfo) GetDims() (v int32) {
    method Read (line 3260) | func (p *EmbeddingInfo) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 3315) | func (p *EmbeddingInfo) ReadField1(iprot thrift.TProtocol) error {
    method Write (line 3327) | func (p *EmbeddingInfo) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 3355) | func (p *EmbeddingInfo) writeField1(oprot thrift.TProtocol) (err error) {
    method String (line 3372) | func (p *EmbeddingInfo) String() string {
  function NewEmbeddingInfo (line 3245) | func NewEmbeddingInfo() *EmbeddingInfo {
  type ArkConnInfo (line 3380) | type ArkConnInfo struct
    method InitDefault (line 3389) | func (p *ArkConnInfo) InitDefault() {
    method GetRegion (line 3392) | func (p *ArkConnInfo) GetRegion() (v string) {
    method GetAPIType (line 3396) | func (p *ArkConnInfo) GetAPIType() (v string) {
    method Read (line 3405) | func (p *ArkConnInfo) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 3468) | func (p *ArkConnInfo) ReadField1(iprot thrift.TProtocol) error {
    method ReadField3 (line 3479) | func (p *ArkConnInfo) ReadField3(iprot thrift.TProtocol) error {
    method Write (line 3491) | func (p *ArkConnInfo) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 3523) | func (p *ArkConnInfo) writeField1(oprot thrift.TProtocol) (err error) {
    method writeField3 (line 3539) | func (p *ArkConnInfo) writeField3(oprot thrift.TProtocol) (err error) {
    method String (line 3556) | func (p *ArkConnInfo) String() string {
  function NewArkConnInfo (line 3385) | func NewArkConnInfo() *ArkConnInfo {
  type OpenAIConnInfo (line 3564) | type OpenAIConnInfo struct
    method InitDefault (line 3573) | func (p *OpenAIConnInfo) InitDefault() {
    method GetByAzure (line 3576) | func (p *OpenAIConnInfo) GetByAzure() (v bool) {
    method GetAPIVersion (line 3580) | func (p *OpenAIConnInfo) GetAPIVersion() (v string) {
    method Read (line 3589) | func (p *OpenAIConnInfo) Read(iprot thrift.TProtocol) (err error) {
    method ReadField6 (line 3652) | func (p *OpenAIConnInfo) ReadField6(iprot thrift.TProtocol) error {
    method ReadField7 (line 3663) | func (p *OpenAIConnInfo) ReadField7(iprot thrift.TProtocol) error {
    method Write (line 3675) | func (p *OpenAIConnInfo) Write(oprot thrift.TProtocol) (err error) {
    method writeField6 (line 3707) | func (p *OpenAIConnInfo) writeField6(oprot thrift.TProtocol) (err erro...
    method writeField7 (line 3723) | func (p *OpenAIConnInfo) writeField7(oprot thrift.TProtocol) (err erro...
    method String (line 3740) | func (p *OpenAIConnInfo) String() string {
  function NewOpenAIConnInfo (line 3569) | func NewOpenAIConnInfo() *OpenAIConnInfo {
  type GeminiConnInfo (line 3748) | type GeminiConnInfo struct
    method InitDefault (line 3759) | func (p *GeminiConnInfo) InitDefault() {
    method GetBackend (line 3762) | func (p *GeminiConnInfo) GetBackend() (v int32) {
    method GetProject (line 3766) | func (p *GeminiConnInfo) GetProject() (v string) {
    method GetLocation (line 3770) | func (p *GeminiConnInfo) GetLocation() (v string) {
    method Read (line 3780) | func (p *GeminiConnInfo) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 3851) | func (p *GeminiConnInfo) ReadField1(iprot thrift.TProtocol) error {
    method ReadField2 (line 3862) | func (p *GeminiConnInfo) ReadField2(iprot thrift.TProtocol) error {
    method ReadField3 (line 3873) | func (p *GeminiConnInfo) ReadField3(iprot thrift.TProtocol) error {
    method Write (line 3885) | func (p *GeminiConnInfo) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 3921) | func (p *GeminiConnInfo) writeField1(oprot thrift.TProtocol) (err erro...
    method writeField2 (line 3937) | func (p *GeminiConnInfo) writeField2(oprot thrift.TProtocol) (err erro...
    method writeField3 (line 3953) | func (p *GeminiConnInfo) writeField3(oprot thrift.TProtocol) (err erro...
    method String (line 3970) | func (p *GeminiConnInfo) String() string {
  function NewGeminiConnInfo (line 3755) | func NewGeminiConnInfo() *GeminiConnInfo {
  type DeepseekConnInfo (line 3978) | type DeepseekConnInfo struct
    method InitDefault (line 3985) | func (p *DeepseekConnInfo) InitDefault() {
    method Read (line 3990) | func (p *DeepseekConnInfo) Read(iprot thrift.TProtocol) (err error) {
    method Write (line 4031) | func (p *DeepseekConnInfo) Write(oprot thrift.TProtocol) (err error) {
    method String (line 4052) | func (p *DeepseekConnInfo) String() string {
  function NewDeepseekConnInfo (line 3981) | func NewDeepseekConnInfo() *DeepseekConnInfo {
  type QwenConnInfo (line 4060) | type QwenConnInfo struct
    method InitDefault (line 4067) | func (p *QwenConnInfo) InitDefault() {
    method Read (line 4072) | func (p *QwenConnInfo) Read(iprot thrift.TProtocol) (err error) {
    method Write (line 4113) | func (p *QwenConnInfo) Write(oprot thrift.TProtocol) (err error) {
    method String (line 4134) | func (p *QwenConnInfo) String() string {
  function NewQwenConnInfo (line 4063) | func NewQwenConnInfo() *QwenConnInfo {
  type OllamaConnInfo (line 4142) | type OllamaConnInfo struct
    method InitDefault (line 4149) | func (p *OllamaConnInfo) InitDefault() {
    method Read (line 4154) | func (p *OllamaConnInfo) Read(iprot thrift.TProtocol) (err error) {
    method Write (line 4195) | func (p *OllamaConnInfo) Write(oprot thrift.TProtocol) (err error) {
    method String (line 4216) | func (p *OllamaConnInfo) String() string {
  function NewOllamaConnInfo (line 4145) | func NewOllamaConnInfo() *OllamaConnInfo {
  type ClaudeConnInfo (line 4224) | type ClaudeConnInfo struct
    method InitDefault (line 4231) | func (p *ClaudeConnInfo) InitDefault() {
    method Read (line 4236) | func (p *ClaudeConnInfo) Read(iprot thrift.TProtocol) (err error) {
    method Write (line 4277) | func (p *ClaudeConnInfo) Write(oprot thrift.TProtocol) (err error) {
    method String (line 4298) | func (p *ClaudeConnInfo) String() string {
  function NewClaudeConnInfo (line 4227) | func NewClaudeConnInfo() *ClaudeConnInfo {
  type CreateModelReq (line 4306) | type CreateModelReq struct
    method InitDefault (line 4318) | func (p *CreateModelReq) InitDefault() {
    method GetModelClass (line 4321) | func (p *CreateModelReq) GetModelClass() (v developer_api.ModelClass) {
    method GetModelName (line 4325) | func (p *CreateModelReq) GetModelName() (v string) {
    method GetConnection (line 4331) | func (p *CreateModelReq) GetConnection() (v *Connection) {
    method GetEnableBase64URL (line 4338) | func (p *CreateModelReq) GetEnableBase64URL() (v bool) {
    method GetBase (line 4344) | func (p *CreateModelReq) GetBase() (v *base.Base) {
    method IsSetConnection (line 4359) | func (p *CreateModelReq) IsSetConnection() bool {
    method IsSetBase (line 4363) | func (p *CreateModelReq) IsSetBase() bool {
    method Read (line 4367) | func (p *CreateModelReq) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 4454) | func (p *CreateModelReq) ReadField1(iprot thrift.TProtocol) error {
    method ReadField2 (line 4465) | func (p *CreateModelReq) ReadField2(iprot thrift.TProtocol) error {
    method ReadField3 (line 4476) | func (p *CreateModelReq) ReadField3(iprot thrift.TProtocol) error {
    method ReadField4 (line 4484) | func (p *CreateModelReq) ReadField4(iprot thrift.TProtocol) error {
    method ReadField255 (line 4495) | func (p *CreateModelReq) ReadField255(iprot thrift.TProtocol) error {
    method Write (line 4504) | func (p *CreateModelReq) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 4548) | func (p *CreateModelReq) writeField1(oprot thrift.TProtocol) (err erro...
    method writeField2 (line 4564) | func (p *CreateModelReq) writeField2(oprot thrift.TProtocol) (err erro...
    method writeField3 (line 4580) | func (p *CreateModelReq) writeField3(oprot thrift.TProtocol) (err erro...
    method writeField4 (line 4596) | func (p *CreateModelReq) writeField4(oprot thrift.TProtocol) (err erro...
    method writeField255 (line 4612) | func (p *CreateModelReq) writeField255(oprot thrift.TProtocol) (err er...
    method String (line 4631) | func (p *CreateModelReq) String() string {
  function NewCreateModelReq (line 4314) | func NewCreateModelReq() *CreateModelReq {
  type CreateModelResp (line 4639) | type CreateModelResp struct
    method InitDefault (line 4650) | func (p *CreateModelResp) InitDefault() {
    method GetID (line 4653) | func (p *CreateModelResp) GetID() (v int64) {
    method GetCode (line 4657) | func (p *CreateModelResp) GetCode() (v int64) {
    method GetMsg (line 4661) | func (p *CreateModelResp) GetMsg() (v string) {
    method GetBaseResp (line 4667) | func (p *CreateModelResp) GetBaseResp() (v *base.BaseResp) {
    method IsSetBaseResp (line 4681) | func (p *CreateModelResp) IsSetBaseResp() bool {
    method Read (line 4685) | func (p *CreateModelResp) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 4786) | func (p *CreateModelResp) ReadField1(iprot thrift.TProtocol) error {
    method ReadField253 (line 4797) | func (p *CreateModelResp) ReadField253(iprot thrift.TProtocol) error {
    method ReadField254 (line 4808) | func (p *CreateModelResp) ReadField254(iprot thrift.TProtocol) error {
    method ReadField255 (line 4819) | func (p *CreateModelResp) ReadField255(iprot thrift.TProtocol) error {
    method Write (line 4828) | func (p *CreateModelResp) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 4868) | func (p *CreateModelResp) writeField1(oprot thrift.TProtocol) (err err...
    method writeField253 (line 4884) | func (p *CreateModelResp) writeField253(oprot thrift.TProtocol) (err e...
    method writeField254 (line 4900) | func (p *CreateModelResp) writeField254(oprot thrift.TProtocol) (err e...
    method writeField255 (line 4916) | func (p *CreateModelResp) writeField255(oprot thrift.TProtocol) (err e...
    method String (line 4933) | func (p *CreateModelResp) String() string {
  function NewCreateModelResp (line 4646) | func NewCreateModelResp() *CreateModelResp {
  type DeleteModelReq (line 4941) | type DeleteModelReq struct
    method InitDefault (line 4950) | func (p *DeleteModelReq) InitDefault() {
    method GetID (line 4953) | func (p *DeleteModelReq) GetID() (v int64) {
    method GetBase (line 4959) | func (p *DeleteModelReq) GetBase() (v *base.Base) {
    method IsSetBase (line 4971) | func (p *DeleteModelReq) IsSetBase() bool {
    method Read (line 4975) | func (p *DeleteModelReq) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 5038) | func (p *DeleteModelReq) ReadField1(iprot thrift.TProtocol) error {
    method ReadField255 (line 5049) | func (p *DeleteModelReq) ReadField255(iprot thrift.TProtocol) error {
    method Write (line 5058) | func (p *DeleteModelReq) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 5090) | func (p *DeleteModelReq) writeField1(oprot thrift.TProtocol) (err erro...
    method writeField255 (line 5106) | func (p *DeleteModelReq) writeField255(oprot thrift.TProtocol) (err er...
    method String (line 5125) | func (p *DeleteModelReq) String() string {
  function NewDeleteModelReq (line 4946) | func NewDeleteModelReq() *DeleteModelReq {
  type DeleteModelResp (line 5133) | type DeleteModelResp struct
    method InitDefault (line 5143) | func (p *DeleteModelResp) InitDefault() {
    method GetCode (line 5146) | func (p *DeleteModelResp) GetCode() (v int64) {
    method GetMsg (line 5150) | func (p *DeleteModelResp) GetMsg() (v string) {
    method GetBaseResp (line 5156) | func (p *DeleteModelResp) GetBaseResp() (v *base.BaseResp) {
    method IsSetBaseResp (line 5169) | func (p *DeleteModelResp) IsSetBaseResp() bool {
    method Read (line 5173) | func (p *DeleteModelResp) Read(iprot thrift.TProtocol) (err error) {
    method ReadField253 (line 5266) | func (p *DeleteModelResp) ReadField253(iprot thrift.TProtocol) error {
    method ReadField254 (line 5277) | func (p *DeleteModelResp) ReadField254(iprot thrift.TProtocol) error {
    method ReadField255 (line 5288) | func (p *DeleteModelResp) ReadField255(iprot thrift.TProtocol) error {
    method Write (line 5297) | func (p *DeleteModelResp) Write(oprot thrift.TProtocol) (err error) {
    method writeField253 (line 5333) | func (p *DeleteModelResp) writeField253(oprot thrift.TProtocol) (err e...
    method writeField254 (line 5349) | func (p *DeleteModelResp) writeField254(oprot thrift.TProtocol) (err e...
    method writeField255 (line 5365) | func (p *DeleteModelResp) writeField255(oprot thrift.TProtocol) (err e...
    method String (line 5382) | func (p *DeleteModelResp) String() string {
  function NewDeleteModelResp (line 5139) | func NewDeleteModelResp() *DeleteModelResp {
  type UpdateModelReq (line 5390) | type UpdateModelReq struct
    method InitDefault (line 5399) | func (p *UpdateModelReq) InitDefault() {
    method GetModel (line 5404) | func (p *UpdateModelReq) GetModel() (v *Model) {
    method GetBase (line 5413) | func (p *UpdateModelReq) GetBase() (v *base.Base) {
    method IsSetModel (line 5425) | func (p *UpdateModelReq) IsSetModel() bool {
    method IsSetBase (line 5429) | func (p *UpdateModelReq) IsSetBase() bool {
    method Read (line 5433) | func (p *UpdateModelReq) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 5496) | func (p *UpdateModelReq) ReadField1(iprot thrift.TProtocol) error {
    method ReadField255 (line 5504) | func (p *UpdateModelReq) ReadField255(iprot thrift.TProtocol) error {
    method Write (line 5513) | func (p *UpdateModelReq) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 5545) | func (p *UpdateModelReq) writeField1(oprot thrift.TProtocol) (err erro...
    method writeField255 (line 5561) | func (p *UpdateModelReq) writeField255(oprot thrift.TProtocol) (err er...
    method String (line 5580) | func (p *UpdateModelReq) String() string {
  function NewUpdateModelReq (line 5395) | func NewUpdateModelReq() *UpdateModelReq {
  type UpdateModelResp (line 5588) | type UpdateModelResp struct
    method InitDefault (line 5598) | func (p *UpdateModelResp) InitDefault() {
    method GetCode (line 5601) | func (p *UpdateModelResp) GetCode() (v int64) {
    method GetMsg (line 5605) | func (p *UpdateModelResp) GetMsg() (v string) {
    method GetBaseResp (line 5611) | func (p *UpdateModelResp) GetBaseResp() (v *base.BaseResp) {
    method IsSetBaseResp (line 5624) | func (p *UpdateModelResp) IsSetBaseResp() bool {
    method Read (line 5628) | func (p *UpdateModelResp) Read(iprot thrift.TProtocol) (err error) {
    method ReadField253 (line 5721) | func (p *UpdateModelResp) ReadField253(iprot thrift.TProtocol) error {
    method ReadField254 (line 5732) | func (p *UpdateModelResp) ReadField254(iprot thrift.TProtocol) error {
    method ReadField255 (line 5743) | func (p *UpdateModelResp) ReadField255(iprot thrift.TProtocol) error {
    method Write (line 5752) | func (p *UpdateModelResp) Write(oprot thrift.TProtocol) (err error) {
    method writeField253 (line 5788) | func (p *UpdateModelResp) writeField253(oprot thrift.TProtocol) (err e...
    method writeField254 (line 5804) | func (p *UpdateModelResp) writeField254(oprot thrift.TProtocol) (err e...
    method writeField255 (line 5820) | func (p *UpdateModelResp) writeField255(oprot thrift.TProtocol) (err e...
    method String (line 5837) | func (p *UpdateModelResp) String() string {
  function NewUpdateModelResp (line 5594) | func NewUpdateModelResp() *UpdateModelResp {
  type SaveBasicConfigurationReq (line 5845) | type SaveBasicConfigurationReq struct
    method InitDefault (line 5854) | func (p *SaveBasicConfigurationReq) InitDefault() {
    method GetConfiguration (line 5859) | func (p *SaveBasicConfigurationReq) GetConfiguration() (v *BasicConfig...
    method GetBase (line 5868) | func (p *SaveBasicConfigurationReq) GetBase() (v *base.Base) {
    method IsSetConfiguration (line 5880) | func (p *SaveBasicConfigurationReq) IsSetConfiguration() bool {
    method IsSetBase (line 5884) | func (p *SaveBasicConfigurationReq) IsSetBase() bool {
    method Read (line 5888) | func (p *SaveBasicConfigurationReq) Read(iprot thrift.TProtocol) (err ...
    method ReadField1 (line 5951) | func (p *SaveBasicConfigurationReq) ReadField1(iprot thrift.TProtocol)...
    method ReadField255 (line 5959) | func (p *SaveBasicConfigurationReq) ReadField255(iprot thrift.TProtoco...
    method Write (line 5968) | func (p *SaveBasicConfigurationReq) Write(oprot thrift.TProtocol) (err...
    method writeField1 (line 6000) | func (p *SaveBasicConfigurationReq) writeField1(oprot thrift.TProtocol...
    method writeField255 (line 6016) | func (p *SaveBasicConfigurationReq) writeField255(oprot thrift.TProtoc...
    method String (line 6035) | func (p *SaveBasicConfigurationReq) String() string {
  function NewSaveBasicConfigurationReq (line 5850) | func NewSaveBasicConfigurationReq() *SaveBasicConfigurationReq {
  type SaveBasicConfigurationResp (line 6043) | type SaveBasicConfigurationResp struct
    method InitDefault (line 6053) | func (p *SaveBasicConfigurationResp) InitDefault() {
    method GetCode (line 6056) | func (p *SaveBasicConfigurationResp) GetCode() (v int64) {
    method GetMsg (line 6060) | func (p *SaveBasicConfigurationResp) GetMsg() (v string) {
    method GetBaseResp (line 6066) | func (p *SaveBasicConfigurationResp) GetBaseResp() (v *base.BaseResp) {
    method IsSetBaseResp (line 6079) | func (p *SaveBasicConfigurationResp) IsSetBaseResp() bool {
    method Read (line 6083) | func (p *SaveBasicConfigurationResp) Read(iprot thrift.TProtocol) (err...
    method ReadField253 (line 6176) | func (p *SaveBasicConfigurationResp) ReadField253(iprot thrift.TProtoc...
    method ReadField254 (line 6187) | func (p *SaveBasicConfigurationResp) ReadField254(iprot thrift.TProtoc...
    method ReadField255 (line 6198) | func (p *SaveBasicConfigurationResp) ReadField255(iprot thrift.TProtoc...
    method Write (line 6207) | func (p *SaveBasicConfigurationResp) Write(oprot thrift.TProtocol) (er...
    method writeField253 (line 6243) | func (p *SaveBasicConfigurationResp) writeField253(oprot thrift.TProto...
    method writeField254 (line 6259) | func (p *SaveBasicConfigurationResp) writeField254(oprot thrift.TProto...
    method writeField255 (line 6275) | func (p *SaveBasicConfigurationResp) writeField255(oprot thrift.TProto...
    method String (line 6292) | func (p *SaveBasicConfigurationResp) String() string {
  function NewSaveBasicConfigurationResp (line 6049) | func NewSaveBasicConfigurationResp() *SaveBasicConfigurationResp {
  type GetBasicConfigurationReq (line 6300) | type GetBasicConfigurationReq struct
    method InitDefault (line 6308) | func (p *GetBasicConfigurationReq) InitDefault() {
    method GetBase (line 6313) | func (p *GetBasicConfigurationReq) GetBase() (v *base.Base) {
    method IsSetBase (line 6324) | func (p *GetBasicConfigurationReq) IsSetBase() bool {
    method Read (line 6328) | func (p *GetBasicConfigurationReq) Read(iprot thrift.TProtocol) (err e...
    method ReadField255 (line 6383) | func (p *GetBasicConfigurationReq) ReadField255(iprot thrift.TProtocol...
    method Write (line 6392) | func (p *GetBasicConfigurationReq) Write(oprot thrift.TProtocol) (err ...
    method writeField255 (line 6420) | func (p *GetBasicConfigurationReq) writeField255(oprot thrift.TProtoco...
    method String (line 6439) | func (p *GetBasicConfigurationReq) String() string {
  function NewGetBasicConfigurationReq (line 6304) | func NewGetBasicConfigurationReq() *GetBasicConfigurationReq {
  type GetBasicConfigurationResp (line 6447) | type GetBasicConfigurationResp struct
    method InitDefault (line 6458) | func (p *GetBasicConfigurationResp) InitDefault() {
    method GetConfiguration (line 6463) | func (p *GetBasicConfigurationResp) GetConfiguration() (v *BasicConfig...
    method GetCode (line 6470) | func (p *GetBasicConfigurationResp) GetCode() (v int64) {
    method GetMsg (line 6474) | func (p *GetBasicConfigurationResp) GetMsg() (v string) {
    method GetBaseResp (line 6480) | func (p *GetBasicConfigurationResp) GetBaseResp() (v *base.BaseResp) {
    method IsSetConfiguration (line 6494) | func (p *GetBasicConfigurationResp) IsSetConfiguration() bool {
    method IsSetBaseResp (line 6498) | func (p *GetBasicConfigurationResp) IsSetBaseResp() bool {
    method Read (line 6502) | func (p *GetBasicConfigurationResp) Read(iprot thrift.TProtocol) (err ...
    method ReadField1 (line 6603) | func (p *GetBasicConfigurationResp) ReadField1(iprot thrift.TProtocol)...
    method ReadField253 (line 6611) | func (p *GetBasicConfigurationResp) ReadField253(iprot thrift.TProtoco...
    method ReadField254 (line 6622) | func (p *GetBasicConfigurationResp) ReadField254(iprot thrift.TProtoco...
    method ReadField255 (line 6633) | func (p *GetBasicConfigurationResp) ReadField255(iprot thrift.TProtoco...
    method Write (line 6642) | func (p *GetBasicConfigurationResp) Write(oprot thrift.TProtocol) (err...
    method writeField1 (line 6682) | func (p *GetBasicConfigurationResp) writeField1(oprot thrift.TProtocol...
    method writeField253 (line 6698) | func (p *GetBasicConfigurationResp) writeField253(oprot thrift.TProtoc...
    method writeField254 (line 6714) | func (p *GetBasicConfigurationResp) writeField254(oprot thrift.TProtoc...
    method writeField255 (line 6730) | func (p *GetBasicConfigurationResp) writeField255(oprot thrift.TProtoc...
    method String (line 6747) | func (p *GetBasicConfigurationResp) String() string {
  function NewGetBasicConfigurationResp (line 6454) | func NewGetBasicConfigurationResp() *GetBasicConfigurationResp {
  type SandboxConfig (line 6755) | type SandboxConfig struct
    method InitDefault (line 6771) | func (p *SandboxConfig) InitDefault() {
    method GetAllowEnv (line 6774) | func (p *SandboxConfig) GetAllowEnv() (v string) {
    method GetAllowRead (line 6778) | func (p *SandboxConfig) GetAllowRead() (v string) {
    method GetAllowWrite (line 6782) | func (p *SandboxConfig) GetAllowWrite() (v string) {
    method GetAllowRun (line 6786) | func (p *SandboxConfig) GetAllowRun() (v string) {
    method GetAllowNet (line 6790) | func (p *SandboxConfig) GetAllowNet() (v string) {
    method GetAllowFfi (line 6794) | func (p *SandboxConfig) GetAllowFfi() (v string) {
    method GetNodeModulesDir (line 6798) | func (p *SandboxConfig) GetNodeModulesDir() (v string) {
    method GetTimeoutSeconds (line 6802) | func (p *SandboxConfig) GetTimeoutSeconds() (v float64) {
    method GetMemoryLimitMb (line 6806) | func (p *SandboxConfig) GetMemoryLimitMb() (v int64) {
    method Read (line 6822) | func (p *SandboxConfig) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 6941) | func (p *SandboxConfig) ReadField1(iprot thrift.TProtocol) error {
    method ReadField2 (line 6952) | func (p *SandboxConfig) ReadField2(iprot thrift.TProtocol) error {
    method ReadField3 (line 6963) | func (p *SandboxConfig) ReadField3(iprot thrift.TProtocol) error {
    method ReadField4 (line 6974) | func (p *SandboxConfig) ReadField4(iprot thrift.TProtocol) error {
    method ReadField5 (line 6985) | func (p *SandboxConfig) ReadField5(iprot thrift.TProtocol) error {
    method ReadField6 (line 6996) | func (p *SandboxConfig) ReadField6(iprot thrift.TProtocol) error {
    method ReadField7 (line 7007) | func (p *SandboxConfig) ReadField7(iprot thrift.TProtocol) error {
    method ReadField8 (line 7018) | func (p *SandboxConfig) ReadField8(iprot thrift.TProtocol) error {
    method ReadField9 (line 7029) | func (p *SandboxConfig) ReadField9(iprot thrift.TProtocol) error {
    method Write (line 7041) | func (p *SandboxConfig) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 7101) | func (p *SandboxConfig) writeField1(oprot thrift.TProtocol) (err error) {
    method writeField2 (line 7117) | func (p *SandboxConfig) writeField2(oprot thrift.TProtocol) (err error) {
    method writeField3 (line 7133) | func (p *SandboxConfig) writeField3(oprot thrift.TProtocol) (err error) {
    method writeField4 (line 7149) | func (p *SandboxConfig) writeField4(oprot thrift.TProtocol) (err error) {
    method writeField5 (line 7165) | func (p *SandboxConfig) writeField5(oprot thrift.TProtocol) (err error) {
    method writeField6 (line 7181) | func (p *SandboxConfig) writeField6(oprot thrift.TProtocol) (err error) {
    method writeField7 (line 7197) | func (p *SandboxConfig) writeField7(oprot thrift.TProtocol) (err error) {
    method writeField8 (line 7213) | func (p *SandboxConfig) writeField8(oprot thrift.TProtocol) (err error) {
    method writeField9 (line 7229) | func (p *SandboxConfig) writeField9(oprot thrift.TProtocol) (err error) {
    method String (line 7246) | func (p *SandboxConfig) String() string {
  function NewSandboxConfig (line 6767) | func NewSandboxConfig() *SandboxConfig {
  type BasicConfiguration (line 7254) | type BasicConfiguration struct
    method InitDefault (line 7268) | func (p *BasicConfiguration) InitDefault() {
    method GetAdminEmails (line 7271) | func (p *BasicConfiguration) GetAdminEmails() (v string) {
    method GetDisableUserRegistration (line 7275) | func (p *BasicConfiguration) GetDisableUserRegistration() (v bool) {
    method GetAllowRegistrationEmail (line 7279) | func (p *BasicConfiguration) GetAllowRegistrationEmail() (v string) {
    method GetPluginConfiguration (line 7285) | func (p *BasicConfiguration) GetPluginConfiguration() (v *PluginConfig...
    method GetCodeRunnerType (line 7292) | func (p *BasicConfiguration) GetCodeRunnerType() (v CodeRunnerType) {
    method GetSandboxConfig (line 7298) | func (p *BasicConfiguration) GetSandboxConfig() (v *SandboxConfig) {
    method GetServerHost (line 7305) | func (p *BasicConfiguration) GetServerHost() (v string) {
    method IsSetPluginConfiguration (line 7319) | func (p *BasicConfiguration) IsSetPluginConfiguration() bool {
    method IsSetSandboxConfig (line 7323) | func (p *BasicConfiguration) IsSetSandboxConfig() bool {
    method Read (line 7327) | func (p *BasicConfiguration) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 7430) | func (p *BasicConfiguration) ReadField1(iprot thrift.TProtocol) error {
    method ReadField2 (line 7441) | func (p *BasicConfiguration) ReadField2(iprot thrift.TProtocol) error {
    method ReadField3 (line 7452) | func (p *BasicConfiguration) ReadField3(iprot thrift.TProtocol) error {
    method ReadField4 (line 7463) | func (p *BasicConfiguration) ReadField4(iprot thrift.TProtocol) error {
    method ReadField5 (line 7471) | func (p *BasicConfiguration) ReadField5(iprot thrift.TProtocol) error {
    method ReadField6 (line 7482) | func (p *BasicConfiguration) ReadField6(iprot thrift.TProtocol) error {
    method ReadField7 (line 7490) | func (p *BasicConfiguration) ReadField7(iprot thrift.TProtocol) error {
    method Write (line 7502) | func (p *BasicConfiguration) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 7554) | func (p *BasicConfiguration) writeField1(oprot thrift.TProtocol) (err ...
    method writeField2 (line 7570) | func (p *BasicConfiguration) writeField2(oprot thrift.TProtocol) (err ...
    method writeField3 (line 7586) | func (p *BasicConfiguration) writeField3(oprot thrift.TProtocol) (err ...
    method writeField4 (line 7602) | func (p *BasicConfiguration) writeField4(oprot thrift.TProtocol) (err ...
    method writeField5 (line 7618) | func (p *BasicConfiguration) writeField5(oprot thrift.TProtocol) (err ...
    method writeField6 (line 7634) | func (p *BasicConfiguration) writeField6(oprot thrift.TProtocol) (err ...
    method writeField7 (line 7652) | func (p *BasicConfiguration) writeField7(oprot thrift.TProtocol) (err ...
    method String (line 7669) | func (p *BasicConfiguration) String() string {
  function NewBasicConfiguration (line 7264) | func NewBasicConfiguration() *BasicConfiguration {
  type PluginConfiguration (line 7677) | type PluginConfiguration struct
    method InitDefault (line 7687) | func (p *PluginConfiguration) InitDefault() {
    method GetCozeSaasPluginEnabled (line 7690) | func (p *PluginConfiguration) GetCozeSaasPluginEnabled() (v bool) {
    method GetCozeAPIToken (line 7694) | func (p *PluginConfiguration) GetCozeAPIToken() (v string) {
    method GetCozeSaasAPIBaseURL (line 7698) | func (p *PluginConfiguration) GetCozeSaasAPIBaseURL() (v string) {
    method Read (line 7708) | func (p *PluginConfiguration) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 7779) | func (p *PluginConfiguration) ReadField1(iprot thrift.TProtocol) error {
    method ReadField2 (line 7790) | func (p *PluginConfiguration) ReadField2(iprot thrift.TProtocol) error {
    method ReadField3 (line 7801) | func (p *PluginConfiguration) ReadField3(iprot thrift.TProtocol) error {
    method Write (line 7813) | func (p *PluginConfiguration) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 7849) | func (p *PluginConfiguration) writeField1(oprot thrift.TProtocol) (err...
    method writeField2 (line 7865) | func (p *PluginConfiguration) writeField2(oprot thrift.TProtocol) (err...
    method writeField3 (line 7881) | func (p *PluginConfiguration) writeField3(oprot thrift.TProtocol) (err...
    method String (line 7898) | func (p *PluginConfiguration) String() string {
  function NewPluginConfiguration (line 7683) | func NewPluginConfiguration() *PluginConfiguration {
  type UpdateKnowledgeConfigReq (line 7906) | type UpdateKnowledgeConfigReq struct
    method InitDefault (line 7915) | func (p *UpdateKnowledgeConfigReq) InitDefault() {
    method GetKnowledgeConfig (line 7920) | func (p *UpdateKnowledgeConfigReq) GetKnowledgeConfig() (v *KnowledgeC...
    method GetBase (line 7929) | func (p *UpdateKnowledgeConfigReq) GetBase() (v *base.Base) {
    method IsSetKnowledgeConfig (line 7941) | func (p *UpdateKnowledgeConfigReq) IsSetKnowledgeConfig() bool {
    method IsSetBase (line 7945) | func (p *UpdateKnowledgeConfigReq) IsSetBase() bool {
    method Read (line 7949) | func (p *UpdateKnowledgeConfigReq) Read(iprot thrift.TProtocol) (err e...
    method ReadField1 (line 8012) | func (p *UpdateKnowledgeConfigReq) ReadField1(iprot thrift.TProtocol) ...
    method ReadField255 (line 8020) | func (p *UpdateKnowledgeConfigReq) ReadField255(iprot thrift.TProtocol...
    method Write (line 8029) | func (p *UpdateKnowledgeConfigReq) Write(oprot thrift.TProtocol) (err ...
    method writeField1 (line 8061) | func (p *UpdateKnowledgeConfigReq) writeField1(oprot thrift.TProtocol)...
    method writeField255 (line 8077) | func (p *UpdateKnowledgeConfigReq) writeField255(oprot thrift.TProtoco...
    method String (line 8096) | func (p *UpdateKnowledgeConfigReq) String() string {
  function NewUpdateKnowledgeConfigReq (line 7911) | func NewUpdateKnowledgeConfigReq() *UpdateKnowledgeConfigReq {
  type UpdateKnowledgeConfigResp (line 8104) | type UpdateKnowledgeConfigResp struct
    method InitDefault (line 8114) | func (p *UpdateKnowledgeConfigResp) InitDefault() {
    method GetCode (line 8117) | func (p *UpdateKnowledgeConfigResp) GetCode() (v int64) {
    method GetMsg (line 8121) | func (p *UpdateKnowledgeConfigResp) GetMsg() (v string) {
    method GetBaseResp (line 8127) | func (p *UpdateKnowledgeConfigResp) GetBaseResp() (v *base.BaseResp) {
    method IsSetBaseResp (line 8140) | func (p *UpdateKnowledgeConfigResp) IsSetBaseResp() bool {
    method Read (line 8144) | func (p *UpdateKnowledgeConfigResp) Read(iprot thrift.TProtocol) (err ...
    method ReadField253 (line 8237) | func (p *UpdateKnowledgeConfigResp) ReadField253(iprot thrift.TProtoco...
    method ReadField254 (line 8248) | func (p *UpdateKnowledgeConfigResp) ReadField254(iprot thrift.TProtoco...
    method ReadField255 (line 8259) | func (p *UpdateKnowledgeConfigResp) ReadField255(iprot thrift.TProtoco...
    method Write (line 8268) | func (p *UpdateKnowledgeConfigResp) Write(oprot thrift.TProtocol) (err...
    method writeField253 (line 8304) | func (p *UpdateKnowledgeConfigResp) writeField253(oprot thrift.TProtoc...
    method writeField254 (line 8320) | func (p *UpdateKnowledgeConfigResp) writeField254(oprot thrift.TProtoc...
    method writeField255 (line 8336) | func (p *UpdateKnowledgeConfigResp) writeField255(oprot thrift.TProtoc...
    method String (line 8353) | func (p *UpdateKnowledgeConfigResp) String() string {
  function NewUpdateKnowledgeConfigResp (line 8110) | func NewUpdateKnowledgeConfigResp() *UpdateKnowledgeConfigResp {
  type GetKnowledgeConfigReq (line 8361) | type GetKnowledgeConfigReq struct
    method InitDefault (line 8369) | func (p *GetKnowledgeConfigReq) InitDefault() {
    method GetBase (line 8374) | func (p *GetKnowledgeConfigReq) GetBase() (v *base.Base) {
    method IsSetBase (line 8385) | func (p *GetKnowledgeConfigReq) IsSetBase() bool {
    method Read (line 8389) | func (p *GetKnowledgeConfigReq) Read(iprot thrift.TProtocol) (err erro...
    method ReadField255 (line 8444) | func (p *GetKnowledgeConfigReq) ReadField255(iprot thrift.TProtocol) e...
    method Write (line 8453) | func (p *GetKnowledgeConfigReq) Write(oprot thrift.TProtocol) (err err...
    method writeField255 (line 8481) | func (p *GetKnowledgeConfigReq) writeField255(oprot thrift.TProtocol) ...
    method String (line 8500) | func (p *GetKnowledgeConfigReq) String() string {
  function NewGetKnowledgeConfigReq (line 8365) | func NewGetKnowledgeConfigReq() *GetKnowledgeConfigReq {
  type GetKnowledgeConfigResp (line 8508) | type GetKnowledgeConfigResp struct
    method InitDefault (line 8519) | func (p *GetKnowledgeConfigResp) InitDefault() {
    method GetKnowledgeConfig (line 8524) | func (p *GetKnowledgeConfigResp) GetKnowledgeConfig() (v *KnowledgeCon...
    method GetCode (line 8531) | func (p *GetKnowledgeConfigResp) GetCode() (v int64) {
    method GetMsg (line 8535) | func (p *GetKnowledgeConfigResp) GetMsg() (v string) {
    method GetBaseResp (line 8541) | func (p *GetKnowledgeConfigResp) GetBaseResp() (v *base.BaseResp) {
    method IsSetKnowledgeConfig (line 8555) | func (p *GetKnowledgeConfigResp) IsSetKnowledgeConfig() bool {
    method IsSetBaseResp (line 8559) | func (p *GetKnowledgeConfigResp) IsSetBaseResp() bool {
    method Read (line 8563) | func (p *GetKnowledgeConfigResp) Read(iprot thrift.TProtocol) (err err...
    method ReadField1 (line 8664) | func (p *GetKnowledgeConfigResp) ReadField1(iprot thrift.TProtocol) er...
    method ReadField253 (line 8672) | func (p *GetKnowledgeConfigResp) ReadField253(iprot thrift.TProtocol) ...
    method ReadField254 (line 8683) | func (p *GetKnowledgeConfigResp) ReadField254(iprot thrift.TProtocol) ...
    method ReadField255 (line 8694) | func (p *GetKnowledgeConfigResp) ReadField255(iprot thrift.TProtocol) ...
    method Write (line 8703) | func (p *GetKnowledgeConfigResp) Write(oprot thrift.TProtocol) (err er...
    method writeField1 (line 8743) | func (p *GetKnowledgeConfigResp) writeField1(oprot thrift.TProtocol) (...
    method writeField253 (line 8759) | func (p *GetKnowledgeConfigResp) writeField253(oprot thrift.TProtocol)...
    method writeField254 (line 8775) | func (p *GetKnowledgeConfigResp) writeField254(oprot thrift.TProtocol)...
    method writeField255 (line 8791) | func (p *GetKnowledgeConfigResp) writeField255(oprot thrift.TProtocol)...
    method String (line 8808) | func (p *GetKnowledgeConfigResp) String() string {
  function NewGetKnowledgeConfigResp (line 8515) | func NewGetKnowledgeConfigResp() *GetKnowledgeConfigResp {
  type KnowledgeConfig (line 8816) | type KnowledgeConfig struct
    method InitDefault (line 8828) | func (p *KnowledgeConfig) InitDefault() {
    method GetEmbeddingConfig (line 8833) | func (p *KnowledgeConfig) GetEmbeddingConfig() (v *EmbeddingConfig) {
    method GetRerankConfig (line 8842) | func (p *KnowledgeConfig) GetRerankConfig() (v *RerankConfig) {
    method GetOcrConfig (line 8851) | func (p *KnowledgeConfig) GetOcrConfig() (v *OCRConfig) {
    method GetParserConfig (line 8860) | func (p *KnowledgeConfig) GetParserConfig() (v *ParserConfig) {
    method GetBuiltinModelID (line 8867) | func (p *KnowledgeConfig) GetBuiltinModelID() (v int64) {
    method IsSetEmbeddingConfig (line 8879) | func (p *KnowledgeConfig) IsSetEmbeddingConfig() bool {
    method IsSetRerankConfig (line 8883) | func (p *KnowledgeConfig) IsSetRerankConfig() bool {
    method IsSetOcrConfig (line 8887) | func (p *KnowledgeConfig) IsSetOcrConfig() bool {
    method IsSetParserConfig (line 8891) | func (p *KnowledgeConfig) IsSetParserConfig() bool {
    method Read (line 8895) | func (p *KnowledgeConfig) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 8982) | func (p *KnowledgeConfig) ReadField1(iprot thrift.TProtocol) error {
    method ReadField2 (line 8990) | func (p *KnowledgeConfig) ReadField2(iprot thrift.TProtocol) error {
    method ReadField3 (line 8998) | func (p *KnowledgeConfig) ReadField3(iprot thrift.TProtocol) error {
    method ReadField4 (line 9006) | func (p *KnowledgeConfig) ReadField4(iprot thrift.TProtocol) error {
    method ReadField5 (line 9014) | func (p *KnowledgeConfig) ReadField5(iprot thrift.TProtocol) error {
    method Write (line 9026) | func (p *KnowledgeConfig) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 9070) | func (p *KnowledgeConfig) writeField1(oprot thrift.TProtocol) (err err...
    method writeField2 (line 9086) | func (p *KnowledgeConfig) writeField2(oprot thrift.TProtocol) (err err...
    method writeField3 (line 9102) | func (p *KnowledgeConfig) writeField3(oprot thrift.TProtocol) (err err...
    method writeField4 (line 9118) | func (p *KnowledgeConfig) writeField4(oprot thrift.TProtocol) (err err...
    method writeField5 (line 9134) | func (p *KnowledgeConfig) writeField5(oprot thrift.TProtocol) (err err...
    method String (line 9151) | func (p *KnowledgeConfig) String() string {
  function NewKnowledgeConfig (line 8824) | func NewKnowledgeConfig() *KnowledgeConfig {
  type EmbeddingConfig (line 9159) | type EmbeddingConfig struct
    method InitDefault (line 9169) | func (p *EmbeddingConfig) InitDefault() {
    method GetType (line 9172) | func (p *EmbeddingConfig) GetType() (v EmbeddingType) {
    method GetMaxBatchSize (line 9176) | func (p *EmbeddingConfig) GetMaxBatchSize() (v int32) {
    method GetConnection (line 9182) | func (p *EmbeddingConfig) GetConnection() (v *EmbeddingConnection) {
    method IsSetConnection (line 9195) | func (p *EmbeddingConfig) IsSetConnection() bool {
    method Read (line 9199) | func (p *EmbeddingConfig) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 9270) | func (p *EmbeddingConfig) ReadField1(iprot thrift.TProtocol) error {
    method ReadField2 (line 9281) | func (p *EmbeddingConfig) ReadField2(iprot thrift.TProtocol) error {
    method ReadField3 (line 9292) | func (p *EmbeddingConfig) ReadField3(iprot thrift.TProtocol) error {
    method Write (line 9301) | func (p *EmbeddingConfig) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 9337) | func (p *EmbeddingConfig) writeField1(oprot thrift.TProtocol) (err err...
    method writeField2 (line 9353) | func (p *EmbeddingConfig) writeField2(oprot thrift.TProtocol) (err err...
    method writeField3 (line 9369) | func (p *EmbeddingConfig) writeField3(oprot thrift.TProtocol) (err err...
    method String (line 9386) | func (p *EmbeddingConfig) String() string {
  function NewEmbeddingConfig (line 9165) | func NewEmbeddingConfig() *EmbeddingConfig {
  type EmbeddingConnection (line 9394) | type EmbeddingConnection struct
    method InitDefault (line 9408) | func (p *EmbeddingConnection) InitDefault() {
    method GetBaseConnInfo (line 9413) | func (p *EmbeddingConnection) GetBaseConnInfo() (v *BaseConnectionInfo) {
    method GetEmbeddingInfo (line 9422) | func (p *EmbeddingConnection) GetEmbeddingInfo() (v *EmbeddingInfo) {
    method GetArk (line 9431) | func (p *EmbeddingConnection) GetArk() (v *ArkConnInfo) {
    method GetOpenai (line 9440) | func (p *EmbeddingConnection) GetOpenai() (v *OpenAIConnInfo) {
    method GetOllama (line 9449) | func (p *EmbeddingConnection) GetOllama() (v *OllamaConnInfo) {
    method GetGemini (line 9458) | func (p *EmbeddingConnection) GetGemini() (v *GeminiConnInfo) {
    method GetHTTP (line 9467) | func (p *EmbeddingConnection) GetHTTP() (v *HttpConnection) {
    method IsSetBaseConnInfo (line 9484) | func (p *EmbeddingConnection) IsSetBaseConnInfo() bool {
    method IsSetEmbeddingInfo (line 9488) | func (p *EmbeddingConnection) IsSetEmbeddingInfo() bool {
    method IsSetArk (line 9492) | func (p *EmbeddingConnection) IsSetArk() bool {
    method IsSetOpenai (line 9496) | func (p *EmbeddingConnection) IsSetOpenai() bool {
    method IsSetOllama (line 9500) | func (p *EmbeddingConnection) IsSetOllama() bool {
    method IsSetGemini (line 9504) | func (p *EmbeddingConnection) IsSetGemini() bool {
    method IsSetHTTP (line 9508) | func (p *EmbeddingConnection) IsSetHTTP() bool {
    method Read (line 9512) | func (p *EmbeddingConnection) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 9615) | func (p *EmbeddingConnection) ReadField1(iprot thrift.TProtocol) error {
    method ReadField2 (line 9623) | func (p *EmbeddingConnection) ReadField2(iprot thrift.TProtocol) error {
    method ReadField3 (line 9631) | func (p *EmbeddingConnection) ReadField3(iprot thrift.TProtocol) error {
    method ReadField4 (line 9639) | func (p *EmbeddingConnection) ReadField4(iprot thrift.TProtocol) error {
    method ReadField5 (line 9647) | func (p *EmbeddingConnection) ReadField5(iprot thrift.TProtocol) error {
    method ReadField6 (line 9655) | func (p *EmbeddingConnection) ReadField6(iprot thrift.TProtocol) error {
    method ReadField7 (line 9663) | func (p *EmbeddingConnection) ReadField7(iprot thrift.TProtocol) error {
    method Write (line 9672) | func (p *EmbeddingConnection) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 9724) | func (p *EmbeddingConnection) writeField1(oprot thrift.TProtocol) (err...
    method writeField2 (line 9740) | func (p *EmbeddingConnection) writeField2(oprot thrift.TProtocol) (err...
    method writeField3 (line 9756) | func (p *EmbeddingConnection) writeField3(oprot thrift.TProtocol) (err...
    method writeField4 (line 9774) | func (p *EmbeddingConnection) writeField4(oprot thrift.TProtocol) (err...
    method writeField5 (line 9792) | func (p *EmbeddingConnection) writeField5(oprot thrift.TProtocol) (err...
    method writeField6 (line 9810) | func (p *EmbeddingConnection) writeField6(oprot thrift.TProtocol) (err...
    method writeField7 (line 9828) | func (p *EmbeddingConnection) writeField7(oprot thrift.TProtocol) (err...
    method String (line 9847) | func (p *EmbeddingConnection) String() string {
  function NewEmbeddingConnection (line 9404) | func NewEmbeddingConnection() *EmbeddingConnection {
  type HttpConnection (line 9855) | type HttpConnection struct
    method InitDefault (line 9863) | func (p *HttpConnection) InitDefault() {
    method GetAddress (line 9866) | func (p *HttpConnection) GetAddress() (v string) {
    method Read (line 9874) | func (p *HttpConnection) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 9929) | func (p *HttpConnection) ReadField1(iprot thrift.TProtocol) error {
    method Write (line 9941) | func (p *HttpConnection) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 9969) | func (p *HttpConnection) writeField1(oprot thrift.TProtocol) (err erro...
    method String (line 9986) | func (p *HttpConnection) String() string {
  function NewHttpConnection (line 9859) | func NewHttpConnection() *HttpConnection {
  type RerankConfig (line 9994) | type RerankConfig struct
    method InitDefault (line 10003) | func (p *RerankConfig) InitDefault() {
    method GetType (line 10006) | func (p *RerankConfig) GetType() (v RerankType) {
    method GetVikingdbConfig (line 10012) | func (p *RerankConfig) GetVikingdbConfig() (v *VikingDBConfig) {
    method IsSetVikingdbConfig (line 10024) | func (p *RerankConfig) IsSetVikingdbConfig() bool {
    method Read (line 10028) | func (p *RerankConfig) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 10091) | func (p *RerankConfig) ReadField1(iprot thrift.TProtocol) error {
    method ReadField2 (line 10102) | func (p *RerankConfig) ReadField2(iprot thrift.TProtocol) error {
    method Write (line 10111) | func (p *RerankConfig) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 10143) | func (p *RerankConfig) writeField1(oprot thrift.TProtocol) (err error) {
    method writeField2 (line 10159) | func (p *RerankConfig) writeField2(oprot thrift.TProtocol) (err error) {
    method String (line 10176) | func (p *RerankConfig) String() string {
  function NewRerankConfig (line 9999) | func NewRerankConfig() *RerankConfig {
  type VikingDBConfig (line 10184) | type VikingDBConfig struct
    method InitDefault (line 10196) | func (p *VikingDBConfig) InitDefault() {
    method GetAk (line 10199) | func (p *VikingDBConfig) GetAk() (v string) {
    method GetSk (line 10203) | func (p *VikingDBConfig) GetSk() (v string) {
    method GetHost (line 10207) | func (p *VikingDBConfig) GetHost() (v string) {
    method GetRegion (line 10211) | func (p *VikingDBConfig) GetRegion() (v string) {
    method GetModel (line 10215) | func (p *VikingDBConfig) GetModel() (v string) {
    method Read (line 10227) | func (p *VikingDBConfig) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 10314) | func (p *VikingDBConfig) ReadField1(iprot thrift.TProtocol) error {
    method ReadField2 (line 10325) | func (p *VikingDBConfig) ReadField2(iprot thrift.TProtocol) error {
    method ReadField3 (line 10336) | func (p *VikingDBConfig) ReadField3(iprot thrift.TProtocol) error {
    method ReadField4 (line 10347) | func (p *VikingDBConfig) ReadField4(iprot thrift.TProtocol) error {
    method ReadField5 (line 10358) | func (p *VikingDBConfig) ReadField5(iprot thrift.TProtocol) error {
    method Write (line 10370) | func (p *VikingDBConfig) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 10414) | func (p *VikingDBConfig) writeField1(oprot thrift.TProtocol) (err erro...
    method writeField2 (line 10430) | func (p *VikingDBConfig) writeField2(oprot thrift.TProtocol) (err erro...
    method writeField3 (line 10446) | func (p *VikingDBConfig) writeField3(oprot thrift.TProtocol) (err erro...
    method writeField4 (line 10462) | func (p *VikingDBConfig) writeField4(oprot thrift.TProtocol) (err erro...
    method writeField5 (line 10478) | func (p *VikingDBConfig) writeField5(oprot thrift.TProtocol) (err erro...
    method String (line 10495) | func (p *VikingDBConfig) String() string {
  function NewVikingDBConfig (line 10192) | func NewVikingDBConfig() *VikingDBConfig {
  type OCRConfig (line 10503) | type OCRConfig struct
    method InitDefault (line 10514) | func (p *OCRConfig) InitDefault() {
    method GetType (line 10517) | func (p *OCRConfig) GetType() (v OCRType) {
    method GetVolcengineAk (line 10521) | func (p *OCRConfig) GetVolcengineAk() (v string) {
    method GetVolcengineSk (line 10525) | func (p *OCRConfig) GetVolcengineSk() (v string) {
    method GetPaddleocrAPIURL (line 10529) | func (p *OCRConfig) GetPaddleocrAPIURL() (v string) {
    method Read (line 10540) | func (p *OCRConfig) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 10619) | func (p *OCRConfig) ReadField1(iprot thrift.TProtocol) error {
    method ReadField2 (line 10630) | func (p *OCRConfig) ReadField2(iprot thrift.TProtocol) error {
    method ReadField3 (line 10641) | func (p *OCRConfig) ReadField3(iprot thrift.TProtocol) error {
    method ReadField4 (line 10652) | func (p *OCRConfig) ReadField4(iprot thrift.TProtocol) error {
    method Write (line 10664) | func (p *OCRConfig) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 10704) | func (p *OCRConfig) writeField1(oprot thrift.TProtocol) (err error) {
    method writeField2 (line 10720) | func (p *OCRConfig) writeField2(oprot thrift.TProtocol) (err error) {
    method writeField3 (line 10736) | func (p *OCRConfig) writeField3(oprot thrift.TProtocol) (err error) {
    method writeField4 (line 10752) | func (p *OCRConfig) writeField4(oprot thrift.TProtocol) (err error) {
    method String (line 10769) | func (p *OCRConfig) String() string {
  function NewOCRConfig (line 10510) | func NewOCRConfig() *OCRConfig {
  type ParserConfig (line 10777) | type ParserConfig struct
    method InitDefault (line 10786) | func (p *ParserConfig) InitDefault() {
    method GetType (line 10789) | func (p *ParserConfig) GetType() (v ParserType) {
    method GetPaddleocrStructureAPIURL (line 10793) | func (p *ParserConfig) GetPaddleocrStructureAPIURL() (v string) {
    method Read (line 10802) | func (p *ParserConfig) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 10865) | func (p *ParserConfig) ReadField1(iprot thrift.TProtocol) error {
    method ReadField2 (line 10876) | func (p *ParserConfig) ReadField2(iprot thrift.TProtocol) error {
    method Write (line 10888) | func (p *ParserConfig) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 10920) | func (p *ParserConfig) writeField1(oprot thrift.TProtocol) (err error) {
    method writeField2 (line 10936) | func (p *ParserConfig) writeField2(oprot thrift.TProtocol) (err error) {
    method String (line 10953) | func (p *ParserConfig) String() string {
  function NewParserConfig (line 10782) | func NewParserConfig() *ParserConfig {
  type ConfigService (line 10961) | type ConfigService interface
  type ConfigServiceClient (line 10977) | type ConfigServiceClient struct
    method Client_ (line 10999) | func (p *ConfigServiceClient) Client_() thrift.TClient {
    method GetBasicConfiguration (line 11003) | func (p *ConfigServiceClient) GetBasicConfiguration(ctx context.Contex...
    method SaveBasicConfiguration (line 11012) | func (p *ConfigServiceClient) SaveBasicConfiguration(ctx context.Conte...
    method GetKnowledgeConfig (line 11021) | func (p *ConfigServiceClient) GetKnowledgeConfig(ctx context.Context, ...
    method UpdateKnowledgeConfig (line 11030) | func (p *ConfigServiceClient) UpdateKnowledgeConfig(ctx context.Contex...
    method GetModelList (line 11039) | func (p *ConfigServiceClient) GetModelList(ctx context.Context, req *G...
    method CreateModel (line 11048) | func (p *ConfigServiceClient) CreateModel(ctx context.Context, req *Cr...
    method DeleteModel (line 11057) | func (p *ConfigServiceClient) DeleteModel(ctx context.Context, req *De...
  function NewConfigServiceClientFactory (line 10981) | func NewConfigServiceClientFactory(t thrift.TTransport, f thrift.TProtoc...
  function NewConfigServiceClientProtocol (line 10987) | func NewConfigServiceClientProtocol(t thrift.TTransport, iprot thrift.TP...
  function NewConfigServiceClient (line 10993) | func NewConfigServiceClient(c thrift.TClient) *ConfigServiceClient {
  type ConfigServiceProcessor (line 11067) | type ConfigServiceProcessor struct
    method AddToProcessorMap (line 11072) | func (p *ConfigServiceProcessor) AddToProcessorMap(key string, process...
    method GetProcessorFunction (line 11076) | func (p *ConfigServiceProcessor) GetProcessorFunction(key string) (pro...
    method ProcessorMap (line 11081) | func (p *ConfigServiceProcessor) ProcessorMap() map[string]thrift.TPro...
    method Process (line 11096) | func (p *ConfigServiceProcessor) Process(ctx context.Context, iprot, o...
  function NewConfigServiceProcessor (line 11085) | func NewConfigServiceProcessor(handler ConfigService) *ConfigServiceProc...
  type configServiceProcessorGetBasicConfiguration (line 11114) | type configServiceProcessorGetBasicConfiguration struct
    method Process (line 11118) | func (p *configServiceProcessorGetBasicConfiguration) Process(ctx cont...
  type configServiceProcessorSaveBasicConfiguration (line 11162) | type configServiceProcessorSaveBasicConfiguration struct
    method Process (line 11166) | func (p *configServiceProcessorSaveBasicConfiguration) Process(ctx con...
  type configServiceProcessorGetKnowledgeConfig (line 11210) | type configServiceProcessorGetKnowledgeConfig struct
    method Process (line 11214) | func (p *configServiceProcessorGetKnowledgeConfig) Process(ctx context...
  type configServiceProcessorUpdateKnowledgeConfig (line 11258) | type configServiceProcessorUpdateKnowledgeConfig struct
    method Process (line 11262) | func (p *configServiceProcessorUpdateKnowledgeConfig) Process(ctx cont...
  type configServiceProcessorGetModelList (line 11306) | type configServiceProcessorGetModelList struct
    method Process (line 11310) | func (p *configServiceProcessorGetModelList) Process(ctx context.Conte...
  type configServiceProcessorCreateModel (line 11354) | type configServiceProcessorCreateModel struct
    method Process (line 11358) | func (p *configServiceProcessorCreateModel) Process(ctx context.Contex...
  type configServiceProcessorDeleteModel (line 11402) | type configServiceProcessorDeleteModel struct
    method Process (line 11406) | func (p *configServiceProcessorDeleteModel) Process(ctx context.Contex...
  type ConfigServiceGetBasicConfigurationArgs (line 11450) | type ConfigServiceGetBasicConfigurationArgs struct
    method InitDefault (line 11458) | func (p *ConfigServiceGetBasicConfigurationArgs) InitDefault() {
    method GetReq (line 11463) | func (p *ConfigServiceGetBasicConfigurationArgs) GetReq() (v *GetBasic...
    method IsSetReq (line 11474) | func (p *ConfigServiceGetBasicConfigurationArgs) IsSetReq() bool {
    method Read (line 11478) | func (p *ConfigServiceGetBasicConfigurationArgs) Read(iprot thrift.TPr...
    method ReadField1 (line 11533) | func (p *ConfigServiceGetBasicConfigurationArgs) ReadField1(iprot thri...
    method Write (line 11542) | func (p *ConfigServiceGetBasicConfigurationArgs) Write(oprot thrift.TP...
    method writeField1 (line 11570) | func (p *ConfigServiceGetBasicConfigurationArgs) writeField1(oprot thr...
    method String (line 11587) | func (p *ConfigServiceGetBasicConfigurationArgs) String() string {
  function NewConfigServiceGetBasicConfigurationArgs (line 11454) | func NewConfigServiceGetBasicConfigurationArgs() *ConfigServiceGetBasicC...
  type ConfigServiceGetBasicConfigurationResult (line 11595) | type ConfigServiceGetBasicConfigurationResult struct
    method InitDefault (line 11603) | func (p *ConfigServiceGetBasicConfigurationResult) InitDefault() {
    method GetSuccess (line 11608) | func (p *ConfigServiceGetBasicConfigurationResult) GetSuccess() (v *Ge...
    method IsSetSuccess (line 11619) | func (p *ConfigServiceGetBasicConfigurationResult) IsSetSuccess() bool {
    method Read (line 11623) | func (p *ConfigServiceGetBasicConfigurationResult) Read(iprot thrift.T...
    method ReadField0 (line 11678) | func (p *ConfigServiceGetBasicConfigurationResult) ReadField0(iprot th...
    method Write (line 11687) | func (p *ConfigServiceGetBasicConfigurationResult) Write(oprot thrift....
    method writeField0 (line 11715) | func (p *ConfigServiceGetBasicConfigurationResult) writeField0(oprot t...
    method String (line 11734) | func (p *ConfigServiceGetBasicConfigurationResult) String() string {
  function NewConfigServiceGetBasicConfigurationResult (line 11599) | func NewConfigServiceGetBasicConfigurationResult() *ConfigServiceGetBasi...
  type ConfigServiceSaveBasicConfigurationArgs (line 11742) | type ConfigServiceSaveBasicConfigurationArgs struct
    method InitDefault (line 11750) | func (p *ConfigServiceSaveBasicConfigurationArgs) InitDefault() {
    method GetReq (line 11755) | func (p *ConfigServiceSaveBasicConfigurationArgs) GetReq() (v *SaveBas...
    method IsSetReq (line 11766) | func (p *ConfigServiceSaveBasicConfigurationArgs) IsSetReq() bool {
    method Read (line 11770) | func (p *ConfigServiceSaveBasicConfigurationArgs) Read(iprot thrift.TP...
    method ReadField1 (line 11825) | func (p *ConfigServiceSaveBasicConfigurationArgs) ReadField1(iprot thr...
    method Write (line 11834) | func (p *ConfigServiceSaveBasicConfigurationArgs) Write(oprot thrift.T...
    method writeField1 (line 11862) | func (p *ConfigServiceSaveBasicConfigurationArgs) writeField1(oprot th...
    method String (line 11879) | func (p *ConfigServiceSaveBasicConfigurationArgs) String() string {
  function NewConfigServiceSaveBasicConfigurationArgs (line 11746) | func NewConfigServiceSaveBasicConfigurationArgs() *ConfigServiceSaveBasi...
  type ConfigServiceSaveBasicConfigurationResult (line 11887) | type ConfigServiceSaveBasicConfigurationResult struct
    method InitDefault (line 11895) | func (p *ConfigServiceSaveBasicConfigurationResult) InitDefault() {
    method GetSuccess (line 11900) | func (p *ConfigServiceSaveBasicConfigurationResult) GetSuccess() (v *S...
    method IsSetSuccess (line 11911) | func (p *ConfigServiceSaveBasicConfigurationResult) IsSetSuccess() bool {
    method Read (line 11915) | func (p *ConfigServiceSaveBasicConfigurationResult) Read(iprot thrift....
    method ReadField0 (line 11970) | func (p *ConfigServiceSaveBasicConfigurationResult) ReadField0(iprot t...
    method Write (line 11979) | func (p *ConfigServiceSaveBasicConfigurationResult) Write(oprot thrift...
    method writeField0 (line 12007) | func (p *ConfigServiceSaveBasicConfigurationResult) writeField0(oprot ...
    method String (line 12026) | func (p *ConfigServiceSaveBasicConfigurationResult) String() string {
  function NewConfigServiceSaveBasicConfigurationResult (line 11891) | func NewConfigServiceSaveBasicConfigurationResult() *ConfigServiceSaveBa...
  type ConfigServiceGetKnowledgeConfigArgs (line 12034) | type ConfigServiceGetKnowledgeConfigArgs struct
    method InitDefault (line 12042) | func (p *ConfigServiceGetKnowledgeConfigArgs) InitDefault() {
    method GetReq (line 12047) | func (p *ConfigServiceGetKnowledgeConfigArgs) GetReq() (v *GetKnowledg...
    method IsSetReq (line 12058) | func (p *ConfigServiceGetKnowledgeConfigArgs) IsSetReq() bool {
    method Read (line 12062) | func (p *ConfigServiceGetKnowledgeConfigArgs) Read(iprot thrift.TProto...
    method ReadField1 (line 12117) | func (p *ConfigServiceGetKnowledgeConfigArgs) ReadField1(iprot thrift....
    method Write (line 12126) | func (p *ConfigServiceGetKnowledgeConfigArgs) Write(oprot thrift.TProt...
    method writeField1 (line 12154) | func (p *ConfigServiceGetKnowledgeConfigArgs) writeField1(oprot thrift...
    method String (line 12171) | func (p *ConfigServiceGetKnowledgeConfigArgs) String() string {
  function NewConfigServiceGetKnowledgeConfigArgs (line 12038) | func NewConfigServiceGetKnowledgeConfigArgs() *ConfigServiceGetKnowledge...
  type ConfigServiceGetKnowledgeConfigResult (line 12179) | type ConfigServiceGetKnowledgeConfigResult struct
    method InitDefault (line 12187) | func (p *ConfigServiceGetKnowledgeConfigResult) InitDefault() {
    method GetSuccess (line 12192) | func (p *ConfigServiceGetKnowledgeConfigResult) GetSuccess() (v *GetKn...
    method IsSetSuccess (line 12203) | func (p *ConfigServiceGetKnowledgeConfigResult) IsSetSuccess() bool {
    method Read (line 12207) | func (p *ConfigServiceGetKnowledgeConfigResult) Read(iprot thrift.TPro...
    method ReadField0 (line 12262) | func (p *ConfigServiceGetKnowledgeConfigResult) ReadField0(iprot thrif...
    method Write (line 12271) | func (p *ConfigServiceGetKnowledgeConfigResult) Write(oprot thrift.TPr...
    method writeField0 (line 12299) | func (p *ConfigServiceGetKnowledgeConfigResult) writeField0(oprot thri...
    method String (line 12318) | func (p *ConfigServiceGetKnowledgeConfigResult) String() string {
  function NewConfigServiceGetKnowledgeConfigResult (line 12183) | func NewConfigServiceGetKnowledgeConfigResult() *ConfigServiceGetKnowled...
  type ConfigServiceUpdateKnowledgeConfigArgs (line 12326) | type ConfigServiceUpdateKnowledgeConfigArgs struct
    method InitDefault (line 12334) | func (p *ConfigServiceUpdateKnowledgeConfigArgs) InitDefault() {
    method GetReq (line 12339) | func (p *ConfigServiceUpdateKnowledgeConfigArgs) GetReq() (v *UpdateKn...
    method IsSetReq (line 12350) | func (p *ConfigServiceUpdateKnowledgeConfigArgs) IsSetReq() bool {
    method Read (line 12354) | func (p *ConfigServiceUpdateKnowledgeConfigArgs) Read(iprot thrift.TPr...
    method ReadField1 (line 12409) | func (p *ConfigServiceUpdateKnowledgeConfigArgs) ReadField1(iprot thri...
    method Write (line 12418) | func (p *ConfigServiceUpdateKnowledgeConfigArgs) Write(oprot thrift.TP...
    method writeField1 (line 12446) | func (p *ConfigServiceUpdateKnowledgeConfigArgs) writeField1(oprot thr...
    method String (line 12463) | func (p *ConfigServiceUpdateKnowledgeConfigArgs) String() string {
  function NewConfigServiceUpdateKnowledgeConfigArgs (line 12330) | func NewConfigServiceUpdateKnowledgeConfigArgs() *ConfigServiceUpdateKno...
  type ConfigServiceUpdateKnowledgeConfigResult (line 12471) | type ConfigServiceUpdateKnowledgeConfigResult struct
    method InitDefault (line 12479) | func (p *ConfigServiceUpdateKnowledgeConfigResult) InitDefault() {
    method GetSuccess (line 12484) | func (p *ConfigServiceUpdateKnowledgeConfigResult) GetSuccess() (v *Up...
    method IsSetSuccess (line 12495) | func (p *ConfigServiceUpdateKnowledgeConfigResult) IsSetSuccess() bool {
    method Read (line 12499) | func (p *ConfigServiceUpdateKnowledgeConfigResult) Read(iprot thrift.T...
    method ReadField0 (line 12554) | func (p *ConfigServiceUpdateKnowledgeConfigResult) ReadField0(iprot th...
    method Write (line 12563) | func (p *ConfigServiceUpdateKnowledgeConfigResult) Write(oprot thrift....
    method writeField0 (line 12591) | func (p *ConfigServiceUpdateKnowledgeConfigResult) writeField0(oprot t...
    method String (line 12610) | func (p *ConfigServiceUpdateKnowledgeConfigResult) String() string {
  function NewConfigServiceUpdateKnowledgeConfigResult (line 12475) | func NewConfigServiceUpdateKnowledgeConfigResult() *ConfigServiceUpdateK...
  type ConfigServiceGetModelListArgs (line 12618) | type ConfigServiceGetModelListArgs struct
    method InitDefault (line 12626) | func (p *ConfigServiceGetModelListArgs) InitDefault() {
    method GetReq (line 12631) | func (p *ConfigServiceGetModelListArgs) GetReq() (v *GetModelListReq) {
    method IsSetReq (line 12642) | func (p *ConfigServiceGetModelListArgs) IsSetReq() bool {
    method Read (line 12646) | func (p *ConfigServiceGetModelListArgs) Read(iprot thrift.TProtocol) (...
    method ReadField1 (line 12701) | func (p *ConfigServiceGetModelListArgs) ReadField1(iprot thrift.TProto...
    method Write (line 12710) | func (p *ConfigServiceGetModelListArgs) Write(oprot thrift.TProtocol) ...
    method writeField1 (line 12738) | func (p *ConfigServiceGetModelListArgs) writeField1(oprot thrift.TProt...
    method String (line 12755) | func (p *ConfigServiceGetModelListArgs) String() string {
  function NewConfigServiceGetModelListArgs (line 12622) | func NewConfigServiceGetModelListArgs() *ConfigServiceGetModelListArgs {
  type ConfigServiceGetModelListResult (line 12763) | type ConfigServiceGetModelListResult struct
    method InitDefault (line 12771) | func (p *ConfigServiceGetModelListResult) InitDefault() {
    method GetSuccess (line 12776) | func (p *ConfigServiceGetModelListResult) GetSuccess() (v *GetModelLis...
    method IsSetSuccess (line 12787) | func (p *ConfigServiceGetModelListResult) IsSetSuccess() bool {
    method Read (line 12791) | func (p *ConfigServiceGetModelListResult) Read(iprot thrift.TProtocol)...
    method ReadField0 (line 12846) | func (p *ConfigServiceGetModelListResult) ReadField0(iprot thrift.TPro...
    method Write (line 12855) | func (p *ConfigServiceGetModelListResult) Write(oprot thrift.TProtocol...
    method writeField0 (line 12883) | func (p *ConfigServiceGetModelListResult) writeField0(oprot thrift.TPr...
    method String (line 12902) | func (p *ConfigServiceGetModelListResult) String() string {
  function NewConfigServiceGetModelListResult (line 12767) | func NewConfigServiceGetModelListResult() *ConfigServiceGetModelListResu...
  type ConfigServiceCreateModelArgs (line 12910) | type ConfigServiceCreateModelArgs struct
    method InitDefault (line 12918) | func (p *ConfigServiceCreateModelArgs) InitDefault() {
    method GetReq (line 12923) | func (p *ConfigServiceCreateModelArgs) GetReq() (v *CreateModelReq) {
    method IsSetReq (line 12934) | func (p *ConfigServiceCreateModelArgs) IsSetReq() bool {
    method Read (line 12938) | func (p *ConfigServiceCreateModelArgs) Read(iprot thrift.TProtocol) (e...
    method ReadField1 (line 12993) | func (p *ConfigServiceCreateModelArgs) ReadField1(iprot thrift.TProtoc...
    method Write (line 13002) | func (p *ConfigServiceCreateModelArgs) Write(oprot thrift.TProtocol) (...
    method writeField1 (line 13030) | func (p *ConfigServiceCreateModelArgs) writeField1(oprot thrift.TProto...
    method String (line 13047) | func (p *ConfigServiceCreateModelArgs) String() string {
  function NewConfigServiceCreateModelArgs (line 12914) | func NewConfigServiceCreateModelArgs() *ConfigServiceCreateModelArgs {
  type ConfigServiceCreateModelResult (line 13055) | type ConfigServiceCreateModelResult struct
    method InitDefault (line 13063) | func (p *ConfigServiceCreateModelResult) InitDefault() {
    method GetSuccess (line 13068) | func (p *ConfigServiceCreateModelResult) GetSuccess() (v *CreateModelR...
    method IsSetSuccess (line 13079) | func (p *ConfigServiceCreateModelResult) IsSetSuccess() bool {
    method Read (line 13083) | func (p *ConfigServiceCreateModelResult) Read(iprot thrift.TProtocol) ...
    method ReadField0 (line 13138) | func (p *ConfigServiceCreateModelResult) ReadField0(iprot thrift.TProt...
    method Write (line 13147) | func (p *ConfigServiceCreateModelResult) Write(oprot thrift.TProtocol)...
    method writeField0 (line 13175) | func (p *ConfigServiceCreateModelResult) writeField0(oprot thrift.TPro...
    method String (line 13194) | func (p *ConfigServiceCreateModelResult) String() string {
  function NewConfigServiceCreateModelResult (line 13059) | func NewConfigServiceCreateModelResult() *ConfigServiceCreateModelResult {
  type ConfigServiceDeleteModelArgs (line 13202) | type ConfigServiceDeleteModelArgs struct
    method InitDefault (line 13210) | func (p *ConfigServiceDeleteModelArgs) InitDefault() {
    method GetReq (line 13215) | func (p *ConfigServiceDeleteModelArgs) GetReq() (v *DeleteModelReq) {
    method IsSetReq (line 13226) | func (p *ConfigServiceDeleteModelArgs) IsSetReq() bool {
    method Read (line 13230) | func (p *ConfigServiceDeleteModelArgs) Read(iprot thrift.TProtocol) (e...
    method ReadField1 (line 13285) | func (p *ConfigServiceDeleteModelArgs) ReadField1(iprot thrift.TProtoc...
    method Write (line 13294) | func (p *ConfigServiceDeleteModelArgs) Write(oprot thrift.TProtocol) (...
    method writeField1 (line 13322) | func (p *ConfigServiceDeleteModelArgs) writeField1(oprot thrift.TProto...
    method String (line 13339) | func (p *ConfigServiceDeleteModelArgs) String() string {
  function NewConfigServiceDeleteModelArgs (line 13206) | func NewConfigServiceDeleteModelArgs() *ConfigServiceDeleteModelArgs {
  type ConfigServiceDeleteModelResult (line 13347) | type ConfigServiceDeleteModelResult struct
    method InitDefault (line 13355) | func (p *ConfigServiceDeleteModelResult) InitDefault() {
    method GetSuccess (line 13360) | func (p *ConfigServiceDeleteModelResult) GetSuccess() (v *DeleteModelR...
    method IsSetSuccess (line 13371) | func (p *ConfigServiceDeleteModelResult) IsSetSuccess() bool {
    method Read (line 13375) | func (p *ConfigServiceDeleteModelResult) Read(iprot thrift.TProtocol) ...
    method ReadField0 (line 13430) | func (p *ConfigServiceDeleteModelResult) ReadField0(iprot thrift.TProt...
    method Write (line 13439) | func (p *ConfigServiceDeleteModelResult) Write(oprot thrift.TProtocol)...
    method writeField0 (line 13467) | func (p *ConfigServiceDeleteModelResult) writeField0(oprot thrift.TPro...
    method String (line 13486) | func (p *ConfigServiceDeleteModelResult) String() string {
  function NewConfigServiceDeleteModelResult (line 13351) | func NewConfigServiceDeleteModelResult() *ConfigServiceDeleteModelResult {

FILE: backend/api/model/app/bot_common/bot_common.go
  constant ShortcutSendTypeQuery (line 13) | ShortcutSendTypeQuery = "query"
  constant ShortcutSendTypePanel (line 15) | ShortcutSendTypePanel = "panel"
  type CacheType (line 18) | type CacheType
    method String (line 27) | func (p CacheType) String() string {
    method Scan (line 48) | func (p *CacheType) Scan(value interface{}) (err error) {
    method Value (line 55) | func (p *CacheType) Value() (driver.Value, error) {
  constant CacheType_CacheClosed (line 22) | CacheType_CacheClosed CacheType = 0
  constant CacheType_PrefixCache (line 24) | CacheType_PrefixCache CacheType = 1
  function CacheTypeFromString (line 37) | func CacheTypeFromString(s string) (CacheType, error) {
  function CacheTypePtr (line 47) | func CacheTypePtr(v CacheType) *CacheType { return &v }
  type ModelStyle (line 62) | type ModelStyle
    method String (line 71) | func (p ModelStyle) String() string {
    method Scan (line 100) | func (p *ModelStyle) Scan(value interface{}) (err error) {
    method Value (line 107) | func (p *ModelStyle) Value() (driver.Value, error) {
  constant ModelStyle_Custom (line 65) | ModelStyle_Custom   ModelStyle = 0
  constant ModelStyle_Creative (line 66) | ModelStyle_Creative ModelStyle = 1
  constant ModelStyle_Balance (line 67) | ModelStyle_Balance  ModelStyle = 2
  constant ModelStyle_Precise (line 68) | ModelStyle_Precise  ModelStyle = 3
  function ModelStyleFromString (line 85) | func ModelStyleFromString(s string) (ModelStyle, error) {
  function ModelStylePtr (line 99) | func ModelStylePtr(v ModelStyle) *ModelStyle { return &v }
  type ModelResponseFormat (line 114) | type ModelResponseFormat
    method String (line 122) | func (p ModelResponseFormat) String() string {
    method Scan (line 147) | func (p *ModelResponseFormat) Scan(value interface{}) (err error) {
    method Value (line 154) | func (p *ModelResponseFormat) Value() (driver.Value, error) {
  constant ModelResponseFormat_Text (line 117) | ModelResponseFormat_Text     ModelResponseFormat = 0
  constant ModelResponseFormat_Markdown (line 118) | ModelResponseFormat_Markdown ModelResponseFormat = 1
  constant ModelResponseFormat_JSON (line 119) | ModelResponseFormat_JSON     ModelResponseFormat = 2
  function ModelResponseFormatFromString (line 134) | func ModelResponseFormatFromString(s string) (ModelResponseFormat, error) {
  function ModelResponseFormatPtr (line 146) | func ModelResponseFormatPtr(v ModelResponseFormat) *ModelResponseFormat ...
  type ContextMode (line 162) | type ContextMode
    method String (line 171) | func (p ContextMode) String() string {
    method Scan (line 200) | func (p *ContextMode) Scan(value interface{}) (err error) {
    method Value (line 207) | func (p *ContextMode) Value() (driver.Value, error) {
  constant ContextMode_Chat (line 165) | ContextMode_Chat           ContextMode = 0
  constant ContextMode_FunctionCall_1 (line 166) | ContextMode_FunctionCall_1 ContextMode = 1
  constant ContextMode_FunctionCall_2 (line 167) | ContextMode_FunctionCall_2 ContextMode = 2
  constant ContextMode_FunctionCall_3 (line 168) | ContextMode_FunctionCall_3 ContextMode = 3
  function ContextModeFromString (line 185) | func ContextModeFromString(s string) (ContextMode, error) {
  function ContextModePtr (line 199) | func ContextModePtr(v ContextMode) *ContextMode { return &v }
  type ModelFuncConfigType (line 214) | type ModelFuncConfigType
    method String (line 239) | func (p ModelFuncConfigType) String() string {
    method Scan (line 332) | func (p *ModelFuncConfigType) Scan(value interface{}) (err error) {
    method Value (line 339) | func (p *ModelFuncConfigType) Value() (driver.Value, error) {
  constant ModelFuncConfigType_Plugin (line 217) | ModelFuncConfigType_Plugin                ModelFuncConfigType = 1
  constant ModelFuncConfigType_Workflow (line 218) | ModelFuncConfigType_Workflow              ModelFuncConfigType = 2
  constant ModelFuncConfigType_ImageFlow (line 219) | ModelFuncConfigType_ImageFlow             ModelFuncConfigType = 3
  constant ModelFuncConfigType_Trigger (line 220) | ModelFuncConfigType_Trigger               ModelFuncConfigType = 4
  constant ModelFuncConfigType_KnowledgeText (line 221) | ModelFuncConfigType_KnowledgeText         ModelFuncConfigType = 5
  constant ModelFuncConfigType_KnowledgeTable (line 222) | ModelFuncConfigType_KnowledgeTable        ModelFuncConfigType = 6
  constant ModelFuncConfigType_KnowledgeAutoCall (line 223) | ModelFuncConfigType_KnowledgeAutoCall     ModelFuncConfigType = 7
  constant ModelFuncConfigType_KnowledgeOnDemandCall (line 224) | ModelFuncConfigType_KnowledgeOnDemandCall ModelFuncConfigType = 8
  constant ModelFuncConfigType_Variable (line 225) | ModelFuncConfigType_Variable              ModelFuncConfigType = 9
  constant ModelFuncConfigType_Database (line 226) | ModelFuncConfigType_Database              ModelFuncConfigType = 10
  constant ModelFuncConfigType_LongTermMemory (line 227) | ModelFuncConfigType_LongTermMemory        ModelFuncConfigType = 11
  constant ModelFuncConfigType_FileBox (line 228) | ModelFuncConfigType_FileBox               ModelFuncConfigType = 12
  constant ModelFuncConfigType_Onboarding (line 229) | ModelFuncConfigType_Onboarding            ModelFuncConfigType = 13
  constant ModelFuncConfigType_Suggestion (line 230) | ModelFuncConfigType_Suggestion            ModelFuncConfigType = 14
  constant ModelFuncConfigType_ShortcutCommand (line 231) | ModelFuncConfigType_ShortcutCommand       ModelFuncConfigType = 15
  constant ModelFuncConfigType_BackGroundImage (line 232) | ModelFuncConfigType_BackGroundImage       ModelFuncConfigType = 16
  constant ModelFuncConfigType_TTS (line 233) | ModelFuncConfigType_TTS                   ModelFuncConfigType = 17
  constant ModelFuncConfigType_MultiAgentRecognize (line 234) | ModelFuncConfigType_MultiAgentRecognize   ModelFuncConfigType = 18
  constant ModelFuncConfigType_KnowledgePhoto (line 235) | ModelFuncConfigType_KnowledgePhoto        ModelFuncConfigType = 19
  constant ModelFuncConfigType_HookInfo (line 236) | ModelFuncConfigType_HookInfo              ModelFuncConfigType = 20
  function ModelFuncConfigTypeFromString (line 285) | func ModelFuncConfigTypeFromString(s string) (ModelFuncConfigType, error) {
  function ModelFuncConfigTypePtr (line 331) | func ModelFuncConfigTypePtr(v ModelFuncConfigType) *ModelFuncConfigType ...
  type ModelFuncConfigStatus (line 346) | type ModelFuncConfigStatus
    method String (line 354) | func (p ModelFuncConfigStatus) String() string {
    method Scan (line 379) | func (p *ModelFuncConfigStatus) Scan(value interface{}) (err error) {
    method Value (line 386) | func (p *ModelFuncConfigStatus) Value() (driver.Value, error) {
  constant ModelFuncConfigStatus_FullSupport (line 349) | ModelFuncConfigStatus_FullSupport ModelFuncConfigStatus = 0
  constant ModelFuncConfigStatus_PoorSupport (line 350) | ModelFuncConfigStatus_PoorSupport ModelFuncConfigStatus = 1
  constant ModelFuncConfigStatus_NotSupport (line 351) | ModelFuncConfigStatus_NotSupport  ModelFuncConfigStatus = 2
  function ModelFuncConfigStatusFromString (line 366) | func ModelFuncConfigStatusFromString(s string) (ModelFuncConfigStatus, e...
  function ModelFuncConfigStatusPtr (line 378) | func ModelFuncConfigStatusPtr(v ModelFuncConfigStatus) *ModelFuncConfigS...
  type PluginFrom (line 393) | type PluginFrom
    method String (line 400) | func (p PluginFrom) String() string {
    method Scan (line 421) | func (p *PluginFrom) Scan(value interface{}) (err error) {
    method Value (line 428) | func (p *PluginFrom) Value() (driver.Value, error) {
  constant PluginFrom_Default (line 396) | PluginFrom_Default  PluginFrom = 0
  constant PluginFrom_FromSaas (line 397) | PluginFrom_FromSaas PluginFrom = 1
  function PluginFromFromString (line 410) | func PluginFromFromString(s string) (PluginFrom, error) {
  function PluginFromPtr (line 420) | func PluginFromPtr(v PluginFrom) *PluginFrom { return &v }
  type WorkflowMode (line 435) | type WorkflowMode
    method String (line 445) | func (p WorkflowMode) String() string {
    method Scan (line 478) | func (p *WorkflowMode) Scan(value interface{}) (err error) {
    method Value (line 485) | func (p *WorkflowMode) Value() (driver.Value, error) {
  constant WorkflowMode_Workflow (line 438) | WorkflowMode_Workflow  WorkflowMode = 0
  constant WorkflowMode_Imageflow (line 439) | WorkflowMode_Imageflow WorkflowMode = 1
  constant WorkflowMode_SceneFlow (line 440) | WorkflowMode_SceneFlow WorkflowMode = 2
  constant WorkflowMode_ChatFlow (line 441) | WorkflowMode_ChatFlow  WorkflowMode = 3
  constant WorkflowMode_All (line 442) | WorkflowMode_All       WorkflowMode = 100
  function WorkflowModeFromString (line 461) | func WorkflowModeFromString(s string) (WorkflowMode, error) {
  function WorkflowModePtr (line 477) | func WorkflowModePtr(v WorkflowMode) *WorkflowMode { return &v }
  type OnboardingMode (line 493) | type OnboardingMode
    method String (line 504) | func (p OnboardingMode) String() string {
    method Scan (line 529) | func (p *OnboardingMode) Scan(value interface{}) (err error) {
    method Value (line 536) | func (p *OnboardingMode) Value() (driver.Value, error) {
  constant OnboardingMode_NO_NEED (line 497) | OnboardingMode_NO_NEED OnboardingMode = 1
  constant OnboardingMode_USE_MANUAL (line 499) | OnboardingMode_USE_MANUAL OnboardingMode = 2
  constant OnboardingMode_USE_LLM (line 501) | OnboardingMode_USE_LLM OnboardingMode = 3
  function OnboardingModeFromString (line 516) | func OnboardingModeFromString(s string) (OnboardingMode, error) {
  function OnboardingModePtr (line 528) | func OnboardingModePtr(v OnboardingMode) *OnboardingMode { return &v }
  type SuggestedQuestionsShowMode (line 543) | type SuggestedQuestionsShowMode
    method String (line 550) | func (p SuggestedQuestionsShowMode) String() string {
    method Scan (line 573) | func (p *SuggestedQuestionsShowMode) Scan(value interface{}) (err erro...
    method Value (line 580) | func (p *SuggestedQuestionsShowMode) Value() (driver.Value, error) {
  constant SuggestedQuestionsShowMode_Random (line 546) | SuggestedQuestionsShowMode_Random SuggestedQuestionsShowMode = 0
  constant SuggestedQuestionsShowMode_All (line 547) | SuggestedQuestionsShowMode_All    SuggestedQuestionsShowMode = 1
  function SuggestedQuestionsShowModeFromString (line 560) | func SuggestedQuestionsShowModeFromString(s string) (SuggestedQuestionsS...
  function SuggestedQuestionsShowModePtr (line 570) | func SuggestedQuestionsShowModePtr(v SuggestedQuestionsShowMode) *Sugges...
  type SuggestReplyMode (line 587) | type SuggestReplyMode
    method String (line 597) | func (p SuggestReplyMode) String() string {
    method Scan (line 626) | func (p *SuggestReplyMode) Scan(value interface{}) (err error) {
    method Value (line 633) | func (p *SuggestReplyMode) Value() (driver.Value, error) {
  constant SuggestReplyMode_System (line 590) | SuggestReplyMode_System  SuggestReplyMode = 0
  constant SuggestReplyMode_Custom (line 591) | SuggestReplyMode_Custom  SuggestReplyMode = 1
  constant SuggestReplyMode_Disable (line 592) | SuggestReplyMode_Disable SuggestReplyMode = 2
  constant SuggestReplyMode_OriBot (line 594) | SuggestReplyMode_OriBot SuggestReplyMode = 3
  function SuggestReplyModeFromString (line 611) | func SuggestReplyModeFromString(s string) (SuggestReplyMode, error) {
  function SuggestReplyModePtr (line 625) | func SuggestReplyModePtr(v SuggestReplyMode) *SuggestReplyMode { return ...
  type DefaultUserInputType (line 640) | type DefaultUserInputType
    method String (line 653) | func (p DefaultUserInputType) String() string {
    method Scan (line 682) | func (p *DefaultUserInputType) Scan(value interface{}) (err error) {
    method Value (line 689) | func (p *DefaultUserInputType) Value() (driver.Value, error) {
  constant DefaultUserInputType_NotSet (line 644) | DefaultUserInputType_NotSet DefaultUserInputType = 0
  constant DefaultUserInputType_Text (line 646) | DefaultUserInputType_Text DefaultUserInputType = 1
  constant DefaultUserInputType_Voice (line 648) | DefaultUserInputType_Voice DefaultUserInputType = 2
  constant DefaultUserInputType_Call (line 650) | DefaultUserInputType_Call DefaultUserInputType = 3
  function DefaultUserInputTypeFromString (line 667) | func DefaultUserInputTypeFromString(s string) (DefaultUserInputType, err...
  function DefaultUserInputTypePtr (line 681) | func DefaultUserInputTypePtr(v DefaultUserInputType) *DefaultUserInputTy...
  type AnswerActionsMode (line 697) | type AnswerActionsMode
    method String (line 704) | func (p AnswerActionsMode) String() string {
    method Scan (line 725) | func (p *AnswerActionsMode) Scan(value interface{}) (err error) {
    method Value (line 732) | func (p *AnswerActionsMode) Value() (driver.Value, error) {
  constant AnswerActionsMode_Default (line 700) | AnswerActionsMode_Default   AnswerActionsMode = 1
  constant AnswerActionsMode_Customize (line 701) | AnswerActionsMode_Customize AnswerActionsMode = 2
  function AnswerActionsModeFromString (line 714) | func AnswerActionsModeFromString(s string) (AnswerActionsMode, error) {
  function AnswerActionsModePtr (line 724) | func AnswerActionsModePtr(v AnswerActionsMode) *AnswerActionsMode { retu...
  type AnswerActionTriggerType (line 739) | type AnswerActionTriggerType
    method String (line 750) | func (p AnswerActionTriggerType) String() string {
    method Scan (line 775) | func (p *AnswerActionTriggerType) Scan(value interface{}) (err error) {
    method Value (line 782) | func (p *AnswerActionTriggerType) Value() (driver.Value, error) {
  constant AnswerActionTriggerType_Direct (line 743) | AnswerActionTriggerType_Direct AnswerActionTriggerType = 1
  constant AnswerActionTriggerType_WebView (line 745) | AnswerActionTriggerType_WebView AnswerActionTriggerType = 2
  constant AnswerActionTriggerType_SendMessage (line 747) | AnswerActionTriggerType_SendMessage AnswerActionTriggerType = 3
  function AnswerActionTriggerTypeFromString (line 762) | func AnswerActionTriggerTypeFromString(s string) (AnswerActionTriggerTyp...
  function AnswerActionTriggerTypePtr (line 774) | func AnswerActionTriggerTypePtr(v AnswerActionTriggerType) *AnswerAction...
  type SearchStrategy (line 789) | type SearchStrategy
    method String (line 800) | func (p SearchStrategy) String() string {
    method Scan (line 825) | func (p *SearchStrategy) Scan(value interface{}) (err error) {
    method Value (line 832) | func (p *SearchStrategy) Value() (driver.Value, error) {
  constant SearchStrategy_SemanticSearch (line 793) | SearchStrategy_SemanticSearch SearchStrategy = 0
  constant SearchStrategy_HybirdSearch (line 795) | SearchStrategy_HybirdSearch SearchStrategy = 1
  constant SearchStrategy_FullTextSearch (line 797) | SearchStrategy_FullTextSearch SearchStrategy = 20
  function SearchStrategyFromString (line 812) | func SearchStrategyFromString(s string) (SearchStrategy, error) {
  function SearchStrategyPtr (line 824) | func SearchStrategyPtr(v SearchStrategy) *SearchStrategy { return &v }
  type KnowledgeShowSourceMode (line 839) | type KnowledgeShowSourceMode
    method String (line 846) | func (p KnowledgeShowSourceMode) String() string {
    method Scan (line 867) | func (p *KnowledgeShowSourceMode) Scan(value interface{}) (err error) {
    method Value (line 874) | func (p *KnowledgeShowSourceMode) Value() (driver.Value, error) {
  constant KnowledgeShowSourceMode_ReplyBottom (line 842) | KnowledgeShowSourceMode_ReplyBottom KnowledgeShowSourceMode = 0
  constant KnowledgeShowSourceMode_CardList (line 843) | KnowledgeShowSourceMode_CardList    KnowledgeShowSourceMode = 1
  function KnowledgeShowSourceModeFromString (line 856) | func KnowledgeShowSourceModeFromString(s string) (KnowledgeShowSourceMod...
  function KnowledgeShowSourceModePtr (line 866) | func KnowledgeShowSourceModePtr(v KnowledgeShowSourceMode) *KnowledgeSho...
  type KnowledgeNoRecallReplyMode (line 881) | type KnowledgeNoRecallReplyMode
    method String (line 888) | func (p KnowledgeNoRecallReplyMode) String() string {
    method Scan (line 911) | func (p *KnowledgeNoRecallReplyMode) Scan(value interface{}) (err erro...
    method Value (line 918) | func (p *KnowledgeNoRecallReplyMode) Value() (driver.Value, error) {
  constant KnowledgeNoRecallReplyMode_Default (line 884) | KnowledgeNoRecallReplyMode_Default         KnowledgeNoRecallReplyMode = 0
  constant KnowledgeNoRecallReplyMode_CustomizePrompt (line 885) | KnowledgeNoRecallReplyMode_CustomizePrompt KnowledgeNoRecallReplyMode = 1
  function KnowledgeNoRecallReplyModeFromString (line 898) | func KnowledgeNoRecallReplyModeFromString(s string) (KnowledgeNoRecallRe...
  function KnowledgeNoRecallReplyModePtr (line 908) | func KnowledgeNoRecallReplyModePtr(v KnowledgeNoRecallReplyMode) *Knowle...
  type SocietyVisibility (line 925) | type SocietyVisibility
    method String (line 936) | func (p SocietyVisibility) String() string {
    method Scan (line 961) | func (p *SocietyVisibility) Scan(value interface{}) (err error) {
    method Value (line 968) | func (p *SocietyVisibility) Value() (driver.Value, error) {
  constant SocietyVisibility_Public (line 929) | SocietyVisibility_Public SocietyVisibility = 1
  constant SocietyVisibility_Anonymous (line 931) | SocietyVisibility_Anonymous SocietyVisibility = 2
  constant SocietyVisibility_Custom (line 933) | SocietyVisibility_Custom SocietyVisibility = 3
  function SocietyVisibilityFromString (line 948) | func SocietyVisibilityFromString(s string) (SocietyVisibility, error) {
  function SocietyVisibilityPtr (line 960) | func SocietyVisibilityPtr(v SocietyVisibility) *SocietyVisibility { retu...
  type FieldItemType (line 975) | type FieldItemType
    method String (line 990) | func (p FieldItemType) String() string {
    method Scan (line 1023) | func (p *FieldItemType) Scan(value interface{}) (err error) {
    method Value (line 1030) | func (p *FieldItemType) Value() (driver.Value, error) {
  constant FieldItemType_Text (line 979) | FieldItemType_Text FieldItemType = 1
  constant FieldItemType_Number (line 981) | FieldItemType_Number FieldItemType = 2
  constant FieldItemType_Date (line 983) | FieldItemType_Date FieldItemType = 3
  constant FieldItemType_Float (line 985) | FieldItemType_Float FieldItemType = 4
  constant FieldItemType_Boolean (line 987) | FieldItemType_Boolean FieldItemType = 5
  function FieldItemTypeFromString (line 1006) | func FieldItemTypeFromString(s string) (FieldItemType, error) {
  function FieldItemTypePtr (line 1022) | func FieldItemTypePtr(v FieldItemType) *FieldItemType { return &v }
  type BotTableRWMode (line 1037) | type BotTableRWMode
    method String (line 1046) | func (p BotTableRWMode) String() string {
    method Scan (line 1075) | func (p *BotTableRWMode) Scan(value interface{}) (err error) {
    method Value (line 1082) | func (p *BotTableRWMode) Value() (driver.Value, error) {
  constant BotTableRWMode_LimitedReadWrite (line 1040) | BotTableRWMode_LimitedReadWrite   BotTableRWMode = 1
  constant BotTableRWMode_ReadOnly (line 1041) | BotTableRWMode_ReadOnly           BotTableRWMode = 2
  constant BotTableRWMode_UnlimitedReadWrite (line 1042) | BotTableRWMode_UnlimitedReadWrite BotTableRWMode = 3
  constant BotTableRWMode_RWModeMax (line 1043) | BotTableRWMode_RWModeMax          BotTableRWMode = 4
  function BotTableRWModeFromString (line 1060) | func BotTableRWModeFromString(s string) (BotTableRWMode, error) {
  function BotTableRWModePtr (line 1074) | func BotTableRWModePtr(v BotTableRWMode) *BotTableRWMode { return &v }
  type AgentType (line 1089) | type AgentType
    method String (line 1099) | func (p AgentType) String() string {
    method Scan (line 1132) | func (p *AgentType) Scan(value interface{}) (err error) {
    method Value (line 1139) | func (p *AgentType) Value() (driver.Value, error) {
  constant AgentType_Start_Agent (line 1092) | AgentType_Start_Agent  AgentType = 0
  constant AgentType_LLM_Agent (line 1093) | AgentType_LLM_Agent    AgentType = 1
  constant AgentType_Task_Agent (line 1094) | AgentType_Task_Agent   AgentType = 2
  constant AgentType_Global_Agent (line 1095) | AgentType_Global_Agent AgentType = 3
  constant AgentType_Bot_Agent (line 1096) | AgentType_Bot_Agent    AgentType = 4
  function AgentTypeFromString (line 1115) | func AgentTypeFromString(s string) (AgentType, error) {
  function AgentTypePtr (line 1131) | func AgentTypePtr(v AgentType) *AgentType { return &v }
  type AgentVersionCompat (line 1147) | type AgentVersionCompat
    method String (line 1156) | func (p AgentVersionCompat) String() string {
    method Scan (line 1185) | func (p *AgentVersionCompat) Scan(value interface{}) (err error) {
    method Value (line 1192) | func (p *AgentVersionCompat) Value() (driver.Value, error) {
  constant AgentVersionCompat_OldVersion (line 1150) | AgentVersionCompat_OldVersion             AgentVersionCompat = 0
  constant AgentVersionCompat_MiddleVersion (line 1151) | AgentVersionCompat_MiddleVersion          AgentVersionCompat = 1
  constant AgentVersionCompat_NewVersion (line 1152) | AgentVersionCompat_NewVersion             AgentVersionCompat = 2
  constant AgentVersionCompat_MiddleVersionNotPrompt (line 1153) | AgentVersionCompat_MiddleVersionNotPrompt AgentVersionCompat = 3
  function AgentVersionCompatFromString (line 1170) | func AgentVersionCompatFromString(s string) (AgentVersionCompat, error) {
  function AgentVersionCompatPtr (line 1184) | func AgentVersionCompatPtr(v AgentVersionCompat) *AgentVersionCompat { r...
  type MultiAgentSessionType (line 1199) | type MultiAgentSessionType
    method String (line 1206) | func (p MultiAgentSessionType) String() string {
    method Scan (line 1227) | func (p *MultiAgentSessionType) Scan(value interface{}) (err error) {
    method Value (line 1234) | func (p *MultiAgentSessionType) Value() (driver.Value, error) {
  constant MultiAgentSessionType_Flow (line 1202) | MultiAgentSessionType_Flow MultiAgentSessionType = 1
  constant MultiAgentSessionType_Host (line 1203) | MultiAgentSessionType_Host MultiAgentSessionType = 2
  function MultiAgentSessionTypeFromString (line 1216) | func MultiAgentSessionTypeFromString(s string) (MultiAgentSessionType, e...
  function MultiAgentSessionTypePtr (line 1226) | func MultiAgentSessionTypePtr(v MultiAgentSessionType) *MultiAgentSessio...
  type MultiAgentConnectorType (line 1241) | type MultiAgentConnectorType
    method String (line 1248) | func (p MultiAgentConnectorType) String() string {
    method Scan (line 1269) | func (p *MultiAgentConnectorType) Scan(value interface{}) (err error) {
    method Value (line 1276) | func (p *MultiAgentConnectorType) Value() (driver.Value, error) {
  constant MultiAgentConnectorType_Curve (line 1244) | MultiAgentConnectorType_Curve    MultiAgentConnectorType = 0
  constant MultiAgentConnectorType_Straight (line 1245) | MultiAgentConnectorType_Straight MultiAgentConnectorType = 1
  function MultiAgentConnectorTypeFromString (line 1258) | func MultiAgentConnectorTypeFromString(s string) (MultiAgentConnectorTyp...
  function MultiAgentConnectorTypePtr (line 1268) | func MultiAgentConnectorTypePtr(v MultiAgentConnectorType) *MultiAgentCo...
  type BotMode (line 1283) | type BotMode
    method String (line 1291) | func (p BotMode) String() string {
    method Scan (line 1316) | func (p *BotMode) Scan(value interface{}) (err error) {
    method Value (line 1323) | func (p *BotMode) Value() (driver.Value, error) {
  constant BotMode_SingleMode (line 1286) | BotMode_SingleMode   BotMode = 0
  constant BotMode_MultiMode (line 1287) | BotMode_MultiMode    BotMode = 1
  constant BotMode_WorkflowMode (line 1288) | BotMode_WorkflowMode BotMode = 2
  function BotModeFromString (line 1303) | func BotModeFromString(s string) (BotMode, error) {
  function BotModePtr (line 1315) | func BotModePtr(v BotMode) *BotMode { return &v }
  type BotSpecies (line 1330) | type BotSpecies
    method String (line 1339) | func (p BotSpecies) String() string {
    method Scan (line 1360) | func (p *BotSpecies) Scan(value interface{}) (err error) {
    method Value (line 1367) | func (p *BotSpecies) Value() (driver.Value, error) {
  constant BotSpecies_Default (line 1334) | BotSpecies_Default BotSpecies = 0
  constant BotSpecies_Function (line 1336) | BotSpecies_Function BotSpecies = 1
  function BotSpeciesFromString (line 1349) | func BotSpeciesFromString(s string) (BotSpecies, error) {
  function BotSpeciesPtr (line 1359) | func BotSpeciesPtr(v BotSpecies) *BotSpecies { return &v }
  type TimeCapsuleMode (line 1374) | type TimeCapsuleMode
    method String (line 1383) | func (p TimeCapsuleMode) String() string {
    method Scan (line 1404) | func (p *TimeCapsuleMode) Scan(value interface{}) (err error) {
    method Value (line 1411) | func (p *TimeCapsuleMode) Value() (driver.Value, error) {
  constant TimeCapsuleMode_Off (line 1378) | TimeCapsuleMode_Off TimeCapsuleMode = 0
  constant TimeCapsuleMode_On (line 1380) | TimeCapsuleMode_On TimeCapsuleMode = 1
  function TimeCapsuleModeFromString (line 1393) | func TimeCapsuleModeFromString(s string) (TimeCapsuleMode, error) {
  function TimeCapsuleModePtr (line 1403) | func TimeCapsuleModePtr(v TimeCapsuleMode) *TimeCapsuleMode { return &v }
  type DisablePromptCalling (line 1418) | type DisablePromptCalling
    method String (line 1425) | func (p DisablePromptCalling) String() string {
    method Scan (line 1446) | func (p *DisablePromptCalling) Scan(value interface{}) (err error) {
    method Value (line 1453) | func (p *DisablePromptCalling) Value() (driver.Value, error) {
  constant DisablePromptCalling_Off (line 1421) | DisablePromptCalling_Off DisablePromptCalling = 0
  constant DisablePromptCalling_On (line 1422) | DisablePromptCalling_On  DisablePromptCalling = 1
  function DisablePromptCallingFromString (line 1435) | func DisablePromptCallingFromString(s string) (DisablePromptCalling, err...
  function DisablePromptCallingPtr (line 1445) | func DisablePromptCallingPtr(v DisablePromptCalling) *DisablePromptCalli...
  type FileboxInfoMode (line 1460) | type FileboxInfoMode
    method String (line 1467) | func (p FileboxInfoMode) String() string {
    method Scan (line 1488) | func (p *FileboxInfoMode) Scan(value interface{}) (err error) {
    method Value (line 1495) | func (p *FileboxInfoMode) Value() (driver.Value, error) {
  constant FileboxInfoMode_Off (line 1463) | FileboxInfoMode_Off FileboxInfoMode = 0
  constant FileboxInfoMode_On (line 1464) | FileboxInfoMode_On  FileboxInfoMode = 1
  function FileboxInfoModeFromString (line 1477) | func FileboxInfoModeFromString(s string) (FileboxInfoMode, error) {
  function FileboxInfoModePtr (line 1487) | func FileboxInfoModePtr(v FileboxInfoMode) *FileboxInfoMode { return &v }
  type BotStatus (line 1502) | type BotStatus
    method String (line 1510) | func (p BotStatus) String() string {
    method Scan (line 1535) | func (p *BotStatus) Scan(value interface{}) (err error) {
    method Value (line 1542) | func (p *BotStatus) Value() (driver.Value, error) {
  constant BotStatus_Deleted (line 1505) | BotStatus_Deleted BotStatus = 0
  constant BotStatus_Using (line 1506) | BotStatus_Using   BotStatus = 1
  constant BotStatus_Banned (line 1507) | BotStatus_Banned  BotStatus = 2
  function BotStatusFromString (line 1522) | func BotStatusFromString(s string) (BotStatus, error) {
  function BotStatusPtr (line 1534) | func BotStatusPtr(v BotStatus) *BotStatus { return &v }
  type BusinessType (line 1549) | type BusinessType
    method String (line 1556) | func (p BusinessType) String() string {
    method Scan (line 1577) | func (p *BusinessType) Scan(value interface{}) (err error) {
    method Value (line 1584) | func (p *BusinessType) Value() (driver.Value, error) {
  constant BusinessType_Default (line 1552) | BusinessType_Default      BusinessType = 0
  constant BusinessType_DouyinAvatar (line 1553) | BusinessType_DouyinAvatar BusinessType = 1
  function BusinessTypeFromString (line 1566) | func BusinessTypeFromString(s string) (BusinessType, error) {
  function BusinessTypePtr (line 1576) | func BusinessTypePtr(v BusinessType) *BusinessType { return &v }
  type BacktrackMode (line 1591) | type BacktrackMode
    method String (line 1600) | func (p BacktrackMode) String() string {
    method Scan (line 1629) | func (p *BacktrackMode) Scan(value interface{}) (err error) {
    method Value (line 1636) | func (p *BacktrackMode) Value() (driver.Value, error) {
  constant BacktrackMode_Current (line 1594) | BacktrackMode_Current      BacktrackMode = 1
  constant BacktrackMode_Previous (line 1595) | BacktrackMode_Previous     BacktrackMode = 2
  constant BacktrackMode_Start (line 1596) | BacktrackMode_Start        BacktrackMode = 3
  constant BacktrackMode_MostSuitable (line 1597) | BacktrackMode_MostSuitable BacktrackMode = 4
  function BacktrackModeFromString (line 1614) | func BacktrackModeFromString(s string) (BacktrackMode, error) {
  function BacktrackModePtr (line 1628) | func BacktrackModePtr(v BacktrackMode) *BacktrackMode { return &v }
  type RecognitionMode (line 1643) | type RecognitionMode
    method String (line 1650) | func (p RecognitionMode) String() string {
    method Scan (line 1671) | func (p *RecognitionMode) Scan(value interface{}) (err error) {
    method Value (line 1678) | func (p *RecognitionMode) Value() (driver.Value, error) {
  constant RecognitionMode_FunctionCall (line 1646) | RecognitionMode_FunctionCall RecognitionMode = 1
  constant RecognitionMode_Independent (line 1647) | RecognitionMode_Independent  RecognitionMode = 2
  function RecognitionModeFromString (line 1660) | func RecognitionModeFromString(s string) (RecognitionMode, error) {
  function RecognitionModePtr (line 1670) | func RecognitionModePtr(v RecognitionMode) *RecognitionMode { return &v }
  type IndependentTiming (line 1685) | type IndependentTiming
    method String (line 1696) | func (p IndependentTiming) String() string {
    method Scan (line 1721) | func (p *IndependentTiming) Scan(value interface{}) (err error) {
    method Value (line 1728) | func (p *IndependentTiming) Value() (driver.Value, error) {
  constant IndependentTiming_Pre (line 1689) | IndependentTiming_Pre IndependentTiming = 1
  constant IndependentTiming_Post (line 1691) | IndependentTiming_Post IndependentTiming = 2
  constant IndependentTiming_PreAndPost (line 1693) | IndependentTiming_PreAndPost IndependentTiming = 3
  function IndependentTimingFromString (line 1708) | func IndependentTimingFromString(s string) (IndependentTiming, error) {
  function IndependentTimingPtr (line 1720) | func IndependentTimingPtr(v IndependentTiming) *IndependentTiming { retu...
  type IndependentRecognitionModelType (line 1735) | type IndependentRecognitionModelType
    method String (line 1744) | func (p IndependentRecognitionModelType) String() string {
    method Scan (line 1767) | func (p *IndependentRecognitionModelType) Scan(value interface{}) (err...
    method Value (line 1774) | func (p *IndependentRecognitionModelType) Value() (driver.Value, error) {
  constant IndependentRecognitionModelType_SLM (line 1739) | IndependentRecognitionModelType_SLM IndependentRecognitionModelType = 0
  constant IndependentRecognitionModelType_LLM (line 1741) | IndependentRecognitionModelType_LLM IndependentRecognitionModelType = 1
  function IndependentRecognitionModelTypeFromString (line 1754) | func IndependentRecognitionModelTypeFromString(s string) (IndependentRec...
  function IndependentRecognitionModelTypePtr (line 1764) | func IndependentRecognitionModelTypePtr(v IndependentRecognitionModelTyp...
  type MessageFeedbackType (line 1781) | type MessageFeedbackType
    method String (line 1789) | func (p MessageFeedbackType) String() string {
    method Scan (line 1814) | func (p *MessageFeedbackType) Scan(value interface{}) (err error) {
    method Value (line 1821) | func (p *MessageFeedbackType) Value() (driver.Value, error) {
  constant MessageFeedbackType_Default (line 1784) | MessageFeedbackType_Default MessageFeedbackType = 0
  constant MessageFeedbackType_Like (line 1785) | MessageFeedbackType_Like    MessageFeedbackType = 1
  constant MessageFeedbackType_Unlike (line 1786) | MessageFeedbackType_Unlike  MessageFeedbackType = 2
  function MessageFeedbackTypeFromString (line 1801) | func MessageFeedbackTypeFromString(s string) (MessageFeedbackType, error) {
  function MessageFeedbackTypePtr (line 1813) | func MessageFeedbackTypePtr(v MessageFeedbackType) *MessageFeedbackType ...
  type MessageFeedbackDetailType (line 1828) | type MessageFeedbackDetailType
    method String (line 1842) | func (p MessageFeedbackDetailType) String() string {
    method Scan (line 1875) | func (p *MessageFeedbackDetailType) Scan(value interface{}) (err error) {
    method Value (line 1882) | func (p *MessageFeedbackDetailType) Value() (driver.Value, error) {
  constant MessageFeedbackDetailType_UnlikeDefault (line 1831) | MessageFeedbackDetailType_UnlikeDefault MessageFeedbackDetailType = 0
  constant MessageFeedbackDetailType_UnlikeHarmful (line 1833) | MessageFeedbackDetailType_UnlikeHarmful MessageFeedbackDetailType = 1
  constant MessageFeedbackDetailType_UnlikeIncorrect (line 1835) | MessageFeedbackDetailType_UnlikeIncorrect MessageFeedbackDetailType = 2
  constant MessageFeedbackDetailType_UnlikeNotFollowInstructions (line 1837) | MessageFeedbackDetailType_UnlikeNotFollowInstructions MessageFeedbackDet...
  constant MessageFeedbackDetailType_UnlikeOthers (line 1839) | MessageFeedbackDetailType_UnlikeOthers MessageFeedbackDetailType = 4
  function MessageFeedbackDetailTypeFromString (line 1858) | func MessageFeedbackDetailTypeFromString(s string) (MessageFeedbackDetai...
  function MessageFeedbackDetailTypePtr (line 1874) | func MessageFeedbackDetailTypePtr(v MessageFeedbackDetailType) *MessageF...
  type Scene (line 1889) | type Scene
    method String (line 1906) | func (p Scene) String() string {
    method Scan (line 1955) | func (p *Scene) Scan(value interface{}) (err error) {
    method Value (line 1962) | func (p *Scene) Value() (driver.Value, error) {
  constant Scene_Default (line 1892) | Scene_Default    Scene = 0
  constant Scene_Explore (line 1893) | Scene_Explore    Scene = 1
  constant Scene_BotStore (line 1894) | Scene_BotStore   Scene = 2
  constant Scene_CozeHome (line 1895) | Scene_CozeHome   Scene = 3
  constant Scene_Playground (line 1896) | Scene_Playground Scene = 4
  constant Scene_Evaluation (line 1898) | Scene_Evaluation Scene = 5
  constant Scene_AgentAPP (line 1899) | Scene_AgentAPP   Scene = 6
  constant Scene_PromptOptimize (line 1901) | Scene_PromptOptimize Scene = 7
  constant Scene_GenerateAgentInfo (line 1903) | Scene_GenerateAgentInfo Scene = 8
  function SceneFromString (line 1930) | func SceneFromString(s string) (Scene, error) {
  function ScenePtr (line 1954) | func ScenePtr(v Scene) *Scene { return &v }
  type ReferenceUpdateType (line 2002) | type ReferenceUpdateType
    method String (line 2009) | func (p ReferenceUpdateType) String() string {
    method Scan (line 2030) | func (p *ReferenceUpdateType) Scan(value interface{}) (err error) {
    method Value (line 2037) | func (p *ReferenceUpdateType) Value() (driver.Value, error) {
  constant ReferenceUpdateType_ManualUpdate (line 2005) | ReferenceUpdateType_ManualUpdate ReferenceUpdateType = 1
  constant ReferenceUpdateType_AutoUpdate (line 2006) | ReferenceUpdateType_AutoUpdate   ReferenceUpdateType = 2
  function ReferenceUpdateTypeFromString (line 2019) | func ReferenceUpdateTypeFromString(s string) (ReferenceUpdateType, error) {
  function ReferenceUpdateTypePtr (line 2029) | func ReferenceUpdateTypePtr(v ReferenceUpdateType) *ReferenceUpdateType ...
  type ReferenceInfoStatus (line 2044) | type ReferenceInfoStatus
    method String (line 2053) | func (p ReferenceInfoStatus) String() string {
    method Scan (line 2074) | func (p *ReferenceInfoStatus) Scan(value interface{}) (err error) {
    method Value (line 2081) | func (p *ReferenceInfoStatus) Value() (driver.Value, error) {
  constant ReferenceInfoStatus_HasUpdates (line 2048) | ReferenceInfoStatus_HasUpdates ReferenceInfoStatus = 1
  constant ReferenceInfoStatus_IsDelete (line 2050) | ReferenceInfoStatus_IsDelete ReferenceInfoStatus = 2
  function ReferenceInfoStatusFromString (line 2063) | func ReferenceInfoStatusFromString(s string) (ReferenceInfoStatus, error) {
  function ReferenceInfoStatusPtr (line 2073) | func ReferenceInfoStatusPtr(v ReferenceInfoStatus) *ReferenceInfoStatus ...
  type AuthToken (line 2090) | type AuthToken struct
    method InitDefault (line 2105) | func (p *AuthToken) InitDefault() {
    method GetServiceID (line 2108) | func (p *AuthToken) GetServiceID() (v string) {
    method GetAccessKeyID (line 2112) | func (p *AuthToken) GetAccessKeyID() (v string) {
    method GetSecretAccessKey (line 2116) | func (p *AuthToken) GetSecretAccessKey() (v string) {
    method GetSessionToken (line 2120) | func (p *AuthToken) GetSessionToken() (v string) {
    method GetExpiredTime (line 2124) | func (p *AuthToken) GetExpiredTime() (v string) {
    method GetCurrentTime (line 2128) | func (p *AuthToken) GetCurrentTime() (v string) {
    method GetUploadHost (line 2132) | func (p *AuthToken) GetUploadHost() (v string) {
    method GetHostScheme (line 2136) | func (p *AuthToken) GetHostScheme() (v string) {
    method Read (line 2151) | func (p *AuthToken) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 2262) | func (p *AuthToken) ReadField1(iprot thrift.TProtocol) error {
    method ReadField2 (line 2273) | func (p *AuthToken) ReadField2(iprot thrift.TProtocol) error {
    method ReadField3 (line 2284) | func (p *AuthToken) ReadField3(iprot thrift.TProtocol) error {
    method ReadField4 (line 2295) | func (p *AuthToken) ReadField4(iprot thrift.TProtocol) error {
    method ReadField5 (line 2306) | func (p *AuthToken) ReadField5(iprot thrift.TProtocol) error {
    method ReadField6 (line 2317) | func (p *AuthToken) ReadField6(iprot thrift.TProtocol) error {
    method ReadField7 (line 2328) | func (p *AuthToken) ReadField7(iprot thrift.TProtocol) error {
    method ReadField8 (line 2339) | func (p *AuthToken) ReadField8(iprot thrift.TProtocol) error {
    method Write (line 2351) | func (p *AuthToken) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 2407) | func (p *AuthToken) writeField1(oprot thrift.TProtocol) (err error) {
    method writeField2 (line 2423) | func (p *AuthToken) writeField2(oprot thrift.TProtocol) (err error) {
    method writeField3 (line 2439) | func (p *AuthToken) writeField3(oprot thrift.TProtocol) (err error) {
    method writeField4 (line 2455) | func (p *AuthToken) writeField4(oprot thrift.TProtocol) (err error) {
    method writeField5 (line 2471) | func (p *AuthToken) writeField5(oprot thrift.TProtocol) (err error) {
    method writeField6 (line 2487) | func (p *AuthToken) writeField6(oprot thrift.TProtocol) (err error) {
    method writeField7 (line 2503) | func (p *AuthToken) writeField7(oprot thrift.TProtocol) (err error) {
    method writeField8 (line 2519) | func (p *AuthToken) writeField8(oprot thrift.TProtocol) (err error) {
    method String (line 2536) | func (p *AuthToken) String() string {
  function NewAuthToken (line 2101) | func NewAuthToken() *AuthToken {
  type PromptInfo (line 2544) | type PromptInfo struct
    method InitDefault (line 2553) | func (p *PromptInfo) InitDefault() {
    method GetPrompt (line 2558) | func (p *PromptInfo) GetPrompt() (v string) {
    method IsSetPrompt (line 2569) | func (p *PromptInfo) IsSetPrompt() bool {
    method Read (line 2573) | func (p *PromptInfo) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 2628) | func (p *PromptInfo) ReadField1(iprot thrift.TProtocol) error {
    method Write (line 2640) | func (p *PromptInfo) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 2668) | func (p *PromptInfo) writeField1(oprot thrift.TProtocol) (err error) {
    method String (line 2687) | func (p *PromptInfo) String() string {
  function NewPromptInfo (line 2549) | func NewPromptInfo() *PromptInfo {
  type ModelInfo (line 2695) | type ModelInfo struct
    method InitDefault (line 2731) | func (p *ModelInfo) InitDefault() {
    method GetModelId (line 2736) | func (p *ModelInfo) GetModelId() (v int64) {
    method GetTemperature (line 2745) | func (p *ModelInfo) GetTemperature() (v float64) {
    method GetMaxTokens (line 2754) | func (p *ModelInfo) GetMaxTokens() (v int32) {
    method GetTopP (line 2763) | func (p *ModelInfo) GetTopP() (v float64) {
    method GetFrequencyPenalty (line 2772) | func (p *ModelInfo) GetFrequencyPenalty() (v float64) {
    method GetPresencePenalty (line 2781) | func (p *ModelInfo) GetPresencePenalty() (v float64) {
    method GetShortMemoryPolicy (line 2790) | func (p *ModelInfo) GetShortMemoryPolicy() (v *ShortMemoryPolicy) {
    method GetTopK (line 2799) | func (p *ModelInfo) GetTopK() (v int32) {
    method GetResponseFormat (line 2808) | func (p *ModelInfo) GetResponseFormat() (v ModelResponseFormat) {
    method GetModelStyle (line 2817) | func (p *ModelInfo) GetModelStyle() (v ModelStyle) {
    method GetCacheType (line 2826) | func (p *ModelInfo) GetCacheType() (v CacheType) {
    method GetSpCurrentTime (line 2835) | func (p *ModelInfo) GetSpCurrentTime() (v bool) {
    method GetSpAntiLeak (line 2844) | func (p *ModelInfo) GetSpAntiLeak() (v bool) {
    method GetSpVoiceInfo (line 2853) | func (p *ModelInfo) GetSpVoiceInfo() (v bool) {
    method GetParameters (line 2862) | func (p *ModelInfo) GetParameters() (v map[string]string) {
    method IsSetModelId (line 2887) | func (p *ModelInfo) IsSetModelId() bool {
    method IsSetTemperature (line 2891) | func (p *ModelInfo) IsSetTemperature() bool {
    method IsSetMaxTokens (line 2895) | func (p *ModelInfo) IsSetMaxTokens() bool {
    method IsSetTopP (line 2899) | func (p *ModelInfo) IsSetTopP() bool {
    method IsSetFrequencyPenalty (line 2903) | func (p *ModelInfo) IsSetFrequencyPenalty() bool {
    method IsSetPresencePenalty (line 2907) | func (p *ModelInfo) IsSetPresencePenalty() bool {
    method IsSetShortMemoryPolicy (line 2911) | func (p *ModelInfo) IsSetShortMemoryPolicy() bool {
    method IsSetTopK (line 2915) | func (p *ModelInfo) IsSetTopK() bool {
    method IsSetResponseFormat (line 2919) | func (p *ModelInfo) IsSetResponseFormat() bool {
    method IsSetModelStyle (line 2923) | func (p *ModelInfo) IsSetModelStyle() bool {
    method IsSetCacheType (line 2927) | func (p *ModelInfo) IsSetCacheType() bool {
    method IsSetSpCurrentTime (line 2931) | func (p *ModelInfo) IsSetSpCurrentTime() bool {
    method IsSetSpAntiLeak (line 2935) | func (p *ModelInfo) IsSetSpAntiLeak() bool {
    method IsSetSpVoiceInfo (line 2939) | func (p *ModelInfo) IsSetSpVoiceInfo() bool {
    method IsSetParameters (line 2943) | func (p *ModelInfo) IsSetParameters() bool {
    method Read (line 2947) | func (p *ModelInfo) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 3114) | func (p *ModelInfo) ReadField1(iprot thrift.TProtocol) error {
    method ReadField2 (line 3125) | func (p *ModelInfo) ReadField2(iprot thrift.TProtocol) error {
    method ReadField3 (line 3136) | func (p *ModelInfo) ReadField3(iprot thrift.TProtocol) error {
    method ReadField4 (line 3147) | func (p *ModelInfo) ReadField4(iprot thrift.TProtocol) error {
    method ReadField5 (line 3158) | func (p *ModelInfo) ReadField5(iprot thrift.TProtocol) error {
    method ReadField6 (line 3169) | func (p *ModelInfo) ReadField6(iprot thrift.TProtocol) error {
    method ReadField7 (line 3180) | func (p *ModelInfo) ReadField7(iprot thrift.TProtocol) error {
    method ReadField8 (line 3188) | func (p *ModelInfo) ReadField8(iprot thrift.TProtocol) error {
    method ReadField9 (line 3199) | func (p *ModelInfo) ReadField9(iprot thrift.TProtocol) error {
    method ReadField10 (line 3211) | func (p *ModelInfo) ReadField10(iprot thrift.TProtocol) error {
    method ReadField11 (line 3223) | func (p *ModelInfo) ReadField11(iprot thrift.TProtocol) error {
    method ReadField12 (line 3235) | func (p *ModelInfo) ReadField12(iprot thrift.TProtocol) error {
    method ReadField13 (line 3246) | func (p *ModelInfo) ReadField13(iprot thrift.TProtocol) error {
    method ReadField14 (line 3257) | func (p *ModelInfo) ReadField14(iprot thrift.TProtocol) error {
    method ReadField15 (line 3268) | func (p *ModelInfo) ReadField15(iprot thrift.TProtocol) error {
    method Write (line 3298) | func (p *ModelInfo) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 3382) | func (p *ModelInfo) writeField1(oprot thrift.TProtocol) (err error) {
    method writeField2 (line 3400) | func (p *ModelInfo) writeField2(oprot thrift.TProtocol) (err error) {
    method writeField3 (line 3418) | func (p *ModelInfo) writeField3(oprot thrift.TProtocol) (err error) {
    method writeField4 (line 3436) | func (p *ModelInfo) writeField4(oprot thrift.TProtocol) (err error) {
    method writeField5 (line 3454) | func (p *ModelInfo) writeField5(oprot thrift.TProtocol) (err error) {
    method writeField6 (line 3472) | func (p *ModelInfo) writeField6(oprot thrift.TProtocol) (err error) {
    method writeField7 (line 3490) | func (p *ModelInfo) writeField7(oprot thrift.TProtocol) (err error) {
    method writeField8 (line 3508) | func (p *ModelInfo) writeField8(oprot thrift.TProtocol) (err error) {
    method writeField9 (line 3526) | func (p *ModelInfo) writeField9(oprot thrift.TProtocol) (err error) {
    method writeField10 (line 3544) | func (p *ModelInfo) writeField10(oprot thrift.TProtocol) (err error) {
    method writeField11 (line 3562) | func (p *ModelInfo) writeField11(oprot thrift.TProtocol) (err error) {
    method writeField12 (line 3580) | func (p *ModelInfo) writeField12(oprot thrift.TProtocol) (err error) {
    method writeField13 (line 3598) | func (p *ModelInfo) writeField13(oprot thrift.TProtocol) (err error) {
    method writeField14 (line 3616) | func (p *ModelInfo) writeField14(oprot thrift.TProtocol) (err error) {
    method writeField15 (line 3634) | func (p *ModelInfo) writeField15(oprot thrift.TProtocol) (err error) {
    method String (line 3664) | func (p *ModelInfo) String() string {
  function NewModelInfo (line 2727) | func NewModelInfo() *ModelInfo {
  type ShortMemoryPolicy (line 3672) | type ShortMemoryPolicy struct
    method InitDefault (line 3683) | func (p *ShortMemoryPolicy) InitDefault() {
    method GetContextMode (line 3688) | func (p *ShortMemoryPolicy) GetContextMode() (v ContextMode) {
    method GetHistoryRound (line 3697) | func (p *ShortMemoryPolicy) GetHistoryRound() (v int32) {
    method IsSetContextMode (line 3709) | func (p *ShortMemoryPolicy) IsSetContextMode() bool {
    method IsSetHistoryRound (line 3713) | func (p *ShortMemoryPolicy) IsSetHistoryRound() bool {
    method Read (line 3717) | func (p *ShortMemoryPolicy) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 3780) | func (p *ShortMemoryPolicy) ReadField1(iprot thrift.TProtocol) error {
    method ReadField2 (line 3792) | func (p *ShortMemoryPolicy) ReadField2(iprot thrift.TProtocol) error {
    method Write (line 3804) | func (p *ShortMemoryPolicy) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 3836) | func (p *ShortMemoryPolicy) writeField1(oprot thrift.TProtocol) (err e...
    method writeField2 (line 3854) | func (p *ShortMemoryPolicy) writeField2(oprot thrift.TProtocol) (err e...
    method String (line 3873) | func (p *ShortMemoryPolicy) String() string {
  function NewShortMemoryPolicy (line 3679) | func NewShortMemoryPolicy() *ShortMemoryPolicy {
  type PluginInfo (line 3881) | type PluginInfo struct
    method InitDefault (line 3897) | func (p *PluginInfo) InitDefault() {
    method GetPluginId (line 3902) | func (p *PluginInfo) GetPluginId() (v int64) {
    method GetApiId (line 3911) | func (p *PluginInfo) GetApiId() (v int64) {
    method GetApiName (line 3920) | func (p *PluginInfo) GetApiName() (v string) {
    method GetPluginFrom (line 3929) | func (p *PluginInfo) GetPluginFrom() (v PluginFrom) {
    method GetApiVersionMs (line 3938) | func (p *PluginInfo) GetApiVersionMs() (v int64) {
    method IsSetPluginId (line 3953) | func (p *PluginInfo) IsSetPluginId() bool {
    method IsSetApiId (line 3957) | func (p *PluginInfo) IsSetApiId() bool {
    method IsSetApiName (line 3961) | func (p *PluginInfo) IsSetApiName() bool {
    method IsSetPluginFrom (line 3965) | func (p *PluginInfo) IsSetPluginFrom() bool {
    method IsSetApiVersionMs (line 3969) | func (p *PluginInfo) IsSetApiVersionMs() bool {
    method Read (line 3973) | func (p *PluginInfo) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 4060) | func (p *PluginInfo) ReadField1(iprot thrift.TProtocol) error {
    method ReadField2 (line 4071) | func (p *PluginInfo) ReadField2(iprot thrift.TProtocol) error {
    method ReadField3 (line 4082) | func (p *PluginInfo) ReadField3(iprot thrift.TProtocol) error {
    method ReadField99 (line 4093) | func (p *PluginInfo) ReadField99(iprot thrift.TProtocol) error {
    method ReadField100 (line 4105) | func (p *PluginInfo) ReadField100(iprot thrift.TProtocol) error {
    method Write (line 4117) | func (p *PluginInfo) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 4161) | func (p *PluginInfo) writeField1(oprot thrift.TProtocol) (err error) {
    method writeField2 (line 4179) | func (p *PluginInfo) writeField2(oprot thrift.TProtocol) (err error) {
    method writeField3 (line 4197) | func (p *PluginInfo) writeField3(oprot thrift.TProtocol) (err error) {
    method writeField99 (line 4215) | func (p *PluginInfo) writeField99(oprot thrift.TProtocol) (err error) {
    method writeField100 (line 4233) | func (p *PluginInfo) writeField100(oprot thrift.TProtocol) (err error) {
    method String (line 4252) | func (p *PluginInfo) String() string {
  function NewPluginInfo (line 3893) | func NewPluginInfo() *PluginInfo {
  type WorkflowInfo (line 4260) | type WorkflowInfo struct
    method InitDefault (line 4280) | func (p *WorkflowInfo) InitDefault() {
    method GetWorkflowId (line 4285) | func (p *WorkflowInfo) GetWorkflowId() (v int64) {
    method GetPluginId (line 4294) | func (p *WorkflowInfo) GetPluginId() (v int64) {
    method GetApiId (line 4303) | func (p *WorkflowInfo) GetApiId() (v int64) {
    method GetFlowMode (line 4312) | func (p *WorkflowInfo) GetFlowMode() (v WorkflowMode) {
    method GetWorkflowName (line 4321) | func (p *WorkflowInfo) GetWorkflowName() (v string) {
    method GetDesc (line 4330) | func (p *WorkflowInfo) GetDesc() (v string) {
    method GetParameters (line 4339) | func (p *WorkflowInfo) GetParameters() (v []*PluginParameter) {
    method GetPluginIcon (line 4348) | func (p *WorkflowInfo) GetPluginIcon() (v string) {
    method IsSetWorkflowId (line 4366) | func (p *WorkflowInfo) IsSetWorkflowId() bool {
    method IsSetPluginId (line 4370) | func (p *WorkflowInfo) IsSetPluginId() bool {
    method IsSetApiId (line 4374) | func (p *WorkflowInfo) IsSetApiId() bool {
    method IsSetFlowMode (line 4378) | func (p *WorkflowInfo) IsSetFlowMode() bool {
    method IsSetWorkflowName (line 4382) | func (p *WorkflowInfo) IsSetWorkflowName() bool {
    method IsSetDesc (line 4386) | func (p *WorkflowInfo) IsSetDesc() bool {
    method IsSetParameters (line 4390) | func (p *WorkflowInfo) IsSetParameters() bool {
    method IsSetPluginIcon (line 4394) | func (p *WorkflowInfo) IsSetPluginIcon() bool {
    method Read (line 4398) | func (p *WorkflowInfo) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 4509) | func (p *WorkflowInfo) ReadField1(iprot thrift.TProtocol) error {
    method ReadField2 (line 4520) | func (p *WorkflowInfo) ReadField2(iprot thrift.TProtocol) error {
    method ReadField3 (line 4531) | func (p *WorkflowInfo) ReadField3(iprot thrift.TProtocol) error {
    method ReadField4 (line 4542) | func (p *WorkflowInfo) ReadField4(iprot thrift.TProtocol) error {
    method ReadField5 (line 4554) | func (p *WorkflowInfo) ReadField5(iprot thrift.TProtocol) error {
    method ReadField6 (line 4565) | func (p *WorkflowInfo) ReadField6(iprot thrift.TProtocol) error {
    method ReadField7 (line 4576) | func (p *WorkflowInfo) ReadField7(iprot thrift.TProtocol) error {
    method ReadField8 (line 4599) | func (p *WorkflowInfo) ReadField8(iprot thrift.TProtocol) error {
    method Write (line 4611) | func (p *WorkflowInfo) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 4667) | func (p *WorkflowInfo) writeField1(oprot thrift.TProtocol) (err error) {
    method writeField2 (line 4685) | func (p *WorkflowInfo) writeField2(oprot thrift.TProtocol) (err error) {
    method writeField3 (line 4703) | func (p *WorkflowInfo) writeField3(oprot thrift.TProtocol) (err error) {
    method writeField4 (line 4721) | func (p *WorkflowInfo) writeField4(oprot thrift.TProtocol) (err error) {
    method writeField5 (line 4739) | func (p *WorkflowInfo) writeField5(oprot thrift.TProtocol) (err error) {
    method writeField6 (line 4757) | func (p *WorkflowInfo) writeField6(oprot thrift.TProtocol) (err error) {
    method writeField7 (line 4775) | func (p *WorkflowInfo) writeField7(oprot thrift.TProtocol) (err error) {
    method writeField8 (line 4801) | func (p *WorkflowInfo) writeField8(oprot thrift.TProtocol) (err error) {
    method String (line 4820) | func (p *WorkflowInfo) String() string {
  function NewWorkflowInfo (line 4276) | func NewWorkflowInfo() *WorkflowInfo {
  type PluginParameter (line 4828) | type PluginParameter struct
    method InitDefault (line 4842) | func (p *PluginParameter) InitDefault() {
    method GetName (line 4847) | func (p *PluginParameter) GetName() (v string) {
    method GetDesc (line 4856) | func (p *PluginParameter) GetDesc() (v string) {
    method GetRequired (line 4865) | func (p *PluginParameter) GetRequired() (v bool) {
    method GetType (line 4874) | func (p *PluginParameter) GetType() (v string) {
    method GetSubParameters (line 4883) | func (p *PluginParameter) GetSubParameters() (v []*PluginParameter) {
    method GetSubType (line 4892) | func (p *PluginParameter) GetSubType() (v string) {
    method IsSetName (line 4908) | func (p *PluginParameter) IsSetName() bool {
    method IsSetDesc (line 4912) | func (p *PluginParameter) IsSetDesc() bool {
    method IsSetRequired (line 4916) | func (p *PluginParameter) IsSetRequired() bool {
    method IsSetType (line 4920) | func (p *PluginParameter) IsSetType() bool {
    method IsSetSubParameters (line 4924) | func (p *PluginParameter) IsSetSubParameters() bool {
    method IsSetSubType (line 4928) | func (p *PluginParameter) IsSetSubType() bool {
    method Read (line 4932) | func (p *PluginParameter) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 5027) | func (p *PluginParameter) ReadField1(iprot thrift.TProtocol) error {
    method ReadField2 (line 5038) | func (p *PluginParameter) ReadField2(iprot thrift.TProtocol) error {
    method ReadField3 (line 5049) | func (p *PluginParameter) ReadField3(iprot thrift.TProtocol) error {
    method ReadField4 (line 5060) | func (p *PluginParameter) ReadField4(iprot thrift.TProtocol) error {
    method ReadField5 (line 5071) | func (p *PluginParameter) ReadField5(iprot thrift.TProtocol) error {
    method ReadField6 (line 5094) | func (p *PluginParameter) ReadField6(iprot thrift.TProtocol) error {
    method Write (line 5106) | func (p *PluginParameter) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 5154) | func (p *PluginParameter) writeField1(oprot thrift.TProtocol) (err err...
    method writeField2 (line 5172) | func (p *PluginParameter) writeField2(oprot thrift.TProtocol) (err err...
    method writeField3 (line 5190) | func (p *PluginParameter) writeField3(oprot thrift.TProtocol) (err err...
    method writeField4 (line 5208) | func (p *PluginParameter) writeField4(oprot thrift.TProtocol) (err err...
    method writeField5 (line 5226) | func (p *PluginParameter) writeField5(oprot thrift.TProtocol) (err err...
    method writeField6 (line 5252) | func (p *PluginParameter) writeField6(oprot thrift.TProtocol) (err err...
    method String (line 5271) | func (p *PluginParameter) String() string {
  function NewPluginParameter (line 4838) | func NewPluginParameter() *PluginParameter {
  type OnboardingInfo (line 5279) | type OnboardingInfo struct
    method InitDefault (line 5296) | func (p *OnboardingInfo) InitDefault() {
    method GetPrologue (line 5301) | func (p *OnboardingInfo) GetPrologue() (v string) {
    method GetSuggestedQuestions (line 5310) | func (p *OnboardingInfo) GetSuggestedQuestions() (v []string) {
    method GetOnboardingMode (line 5319) | func (p *OnboardingInfo) GetOnboardingMode() (v OnboardingMode) {
    method GetCustomizedOnboardingPrompt (line 5328) | func (p *OnboardingInfo) GetCustomizedOnboardingPrompt() (v string) {
    method GetSuggestedQuestionsShowMode (line 5337) | func (p *OnboardingInfo) GetSuggestedQuestionsShowMode() (v SuggestedQ...
    method IsSetPrologue (line 5352) | func (p *OnboardingInfo) IsSetPrologue() bool {
    method IsSetSuggestedQuestions (line 5356) | func (p *OnboardingInfo) IsSetSuggestedQuestions() bool {
    method IsSetOnboardingMode (line 5360) | func (p *OnboardingInfo) IsSetOnboardingMode() bool {
    method IsSetCustomizedOnboardingPrompt (line 5364) | func (p *OnboardingInfo) IsSetCustomizedOnboardingPrompt() bool {
    method IsSetSuggestedQuestionsShowMode (line 5368) | func (p *OnboardingInfo) IsSetSuggestedQuestionsShowMode() bool {
    method Read (line 5372) | func (p *OnboardingInfo) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 5459) | func (p *OnboardingInfo) ReadField1(iprot thrift.TProtocol) error {
    method ReadField2 (line 5470) | func (p *OnboardingInfo) ReadField2(iprot thrift.TProtocol) error {
    method ReadField3 (line 5493) | func (p *OnboardingInfo) ReadField3(iprot thrift.TProtocol) error {
    method ReadField4 (line 5505) | func (p *OnboardingInfo) ReadField4(iprot thrift.TProtocol) error {
    method ReadField5 (line 5516) | func (p *OnboardingInfo) ReadField5(iprot thrift.TProtocol) error {
    method Write (line 5529) | func (p *OnboardingInfo) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 5573) | func (p *OnboardingInfo) writeField1(oprot thrift.TProtocol) (err erro...
    method writeField2 (line 5591) | func (p *OnboardingInfo) writeField2(oprot thrift.TProtocol) (err erro...
    method writeField3 (line 5617) | func (p *OnboardingInfo) writeField3(oprot thrift.TProtocol) (err erro...
    method writeField4 (line 5635) | func (p *OnboardingInfo) writeField4(oprot thrift.TProtocol) (err erro...
    method writeField5 (line 5653) | func (p *OnboardingInfo) writeField5(oprot thrift.TProtocol) (err erro...
    method String (line 5672) | func (p *OnboardingInfo) String() string {
  function NewOnboardingInfo (line 5292) | func NewOnboardingInfo() *OnboardingInfo {
  type SuggestReplyInfo (line 5681) | type SuggestReplyInfo struct
    method InitDefault (line 5694) | func (p *SuggestReplyInfo) InitDefault() {
    method GetSuggestReplyMode (line 5699) | func (p *SuggestReplyInfo) GetSuggestReplyMode() (v SuggestReplyMode) {
    method GetCustomizedSuggestPrompt (line 5708) | func (p *SuggestReplyInfo) GetCustomizedSuggestPrompt() (v string) {
    method GetChainTaskName (line 5717) | func (p *SuggestReplyInfo) GetChainTaskName() (v string) {
    method IsSetSuggestReplyMode (line 5730) | func (p *SuggestReplyInfo) IsSetSuggestReplyMode() bool {
    method IsSetCustomizedSuggestPrompt (line 5734) | func (p *SuggestReplyInfo) IsSetCustomizedSuggestPrompt() bool {
    method IsSetChainTaskName (line 5738) | func (p *SuggestReplyInfo) IsSetChainTaskName() bool {
    method Read (line 5742) | func (p *SuggestReplyInfo) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 5813) | func (p *SuggestReplyInfo) ReadField1(iprot thrift.TProtocol) error {
    method ReadField2 (line 5825) | func (p *SuggestReplyInfo) ReadField2(iprot thrift.TProtocol) error {
    method ReadField3 (line 5836) | func (p *SuggestReplyInfo) ReadField3(iprot thrift.TProtocol) error {
    method Write (line 5848) | func (p *SuggestReplyInfo) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 5884) | func (p *SuggestReplyInfo) writeField1(oprot thrift.TProtocol) (err er...
    method writeField2 (line 5902) | func (p *SuggestReplyInfo) writeField2(oprot thrift.TProtocol) (err er...
    method writeField3 (line 5920) | func (p *SuggestReplyInfo) writeField3(oprot thrift.TProtocol) (err er...
    method String (line 5939) | func (p *SuggestReplyInfo) String() string {
  function NewSuggestReplyInfo (line 5690) | func NewSuggestReplyInfo() *SuggestReplyInfo {
  type VoicesInfo (line 5948) | type VoicesInfo struct
    method InitDefault (line 5969) | func (p *VoicesInfo) InitDefault() {
    method GetMuted (line 5974) | func (p *VoicesInfo) GetMuted() (v bool) {
    method GetI18nLangVoice (line 5983) | func (p *VoicesInfo) GetI18nLangVoice() (v map[string]int64) {
    method GetI18nLangVoiceStr (line 5992) | func (p *VoicesInfo) GetI18nLangVoiceStr() (v map[string]string) {
    method GetAutoplay (line 6001) | func (p *VoicesInfo) GetAutoplay() (v bool) {
    method GetAutoplayVoice (line 6010) | func (p *VoicesInfo) GetAutoplayVoice() (v map[string]int64) {
    method GetCloseVoiceCall (line 6019) | func (p *VoicesInfo) GetCloseVoiceCall() (v bool) {
    method GetDefaultUserInputType (line 6028) | func (p *VoicesInfo) GetDefaultUserInputType() (v DefaultUserInputType) {
    method IsSetMuted (line 6045) | func (p *VoicesInfo) IsSetMuted() bool {
    method IsSetI18nLangVoice (line 6049) | func (p *VoicesInfo) IsSetI18nLangVoice() bool {
    method IsSetI18nLangVoiceStr (line 6053) | func (p *VoicesInfo) IsSetI18nLangVoiceStr() bool {
    method IsSetAutoplay (line 6057) | func (p *VoicesInfo) IsSetAutoplay() bool {
    method IsSetAutoplayVoice (line 6061) | func (p *VoicesInfo) IsSetAutoplayVoice() bool {
    method IsSetCloseVoiceCall (line 6065) | func (p *VoicesInfo) IsSetCloseVoiceCall() bool {
    method IsSetDefaultUserInputType (line 6069) | func (p *VoicesInfo) IsSetDefaultUserInputType() bool {
    method Read (line 6073) | func (p *VoicesInfo) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 6176) | func (p *VoicesInfo) ReadField1(iprot thrift.TProtocol) error {
    method ReadField2 (line 6187) | func (p *VoicesInfo) ReadField2(iprot thrift.TProtocol) error {
    method ReadField7 (line 6216) | func (p *VoicesInfo) ReadField7(iprot thrift.TProtocol) error {
    method ReadField3 (line 6245) | func (p *VoicesInfo) ReadField3(iprot thrift.TProtocol) error {
    method ReadField4 (line 6256) | func (p *VoicesInfo) ReadField4(iprot thrift.TProtocol) error {
    method ReadField5 (line 6285) | func (p *VoicesInfo) ReadField5(iprot thrift.TProtocol) error {
    method ReadField6 (line 6296) | func (p *VoicesInfo) ReadField6(iprot thrift.TProtocol) error {
    method Write (line 6309) | func (p *VoicesInfo) Write(oprot thrift.TProtocol) (err error) {
    method writeField1 (line 6361) | func (p *VoicesInfo) writeField1(oprot thrift.TProtocol) (err error) {
    method writeField2 (line 6379) | func (p *VoicesInfo) writeField2(oprot thrift.TProtocol) (err error) {
    method writeField7 (line 6408) | func (p *VoicesInfo) writeField7(oprot thrift.TProtocol) (err error) {
    method writeField3 (line 6437) | func (p *VoicesInfo) writeField3(oprot thrift.TProtocol) (err error) {
    method writeField4 (line 6455) | func (p *VoicesInfo) writeField4(oprot thrift.TProtocol) (err error) {
    method writeField5 (line 6484) | func (p *VoicesInfo) writeField5(oprot thrift.TProtocol) (err error) {
    method writeField6 (line 6502) | func (p *VoicesInfo) writeField6(oprot thrift.TProtocol) (err error) {
    method String (line 6521) | func (p *VoicesInfo) String() string {
  function NewVoicesInfo (line 5965) | func NewVoicesInfo() *VoicesInfo {
  type AnswerActionTriggerRule (line 6529) | type AnswerActionTriggerRule struct
    method InitDefault (line 6540) | func (p *AnswerActionTriggerRule) InitDefault() {
    method GetType (line 6543) | func (p *AnswerActionTriggerRule) GetType() (v AnswerActionTriggerType) {
    method GetNeedPreloading (line 6547) | func (p *AnswerActionTriggerRule) GetNeedPreloading() (v bool) {
    method GetTriggerData (line 6551) | func (p *AnswerActionTriggerRule) GetTriggerData() (v map[string]strin...
    method Read (line 6561) | func (p *AnswerActionTriggerRule) Read(iprot thrift.TProtocol) (err er...
    method ReadField1 (line 6632) | func (p *AnswerActionTriggerRule) ReadField1(iprot thrift.TProtocol) e...
    method ReadField2 (line 6643) | func (p *AnswerActionTriggerRule) ReadField2(iprot thrift.TProtocol) e...
    method ReadField3 (line 6654) | func (p *AnswerActionTriggerRule) ReadField3(iprot thrift.TProtocol) e...
    method Write (line 6684) | func (p *AnswerActionTriggerRule) Write(oprot thrift.TProtocol) (err e...
    method writeField1 (line 6720) | func (p *AnswerActionTriggerRule) writeField1(oprot thrift.TProtocol) ...
    method writeField2 (line 6736) | func (p *AnswerActionTriggerRule) writeField2(oprot thrift.TProtocol) ...
    method writeField3 (line 6752) | func (p *AnswerActionTriggerRule) writeField3(oprot thrift.TProtocol) ...
    method String (line 6780) | func (p *AnswerActionTriggerRule) String() string {
  function NewAnswerActionTriggerRule (line 6536) | func NewAnswerActionTriggerRule() *AnswerActionTriggerRule {
  type ActionIcon (line 6788) | type ActionIcon struct
    method InitDefault (line 6805) | func (p *ActionIcon) InitDefault() {
    method GetType (line 6808) | func (p *ActionIcon) GetType() (v string) {
    method GetDefaultUrl (line 6812) | func (p *ActionIcon) GetDefaultUrl() (v string) {
    method GetActiveUrl (line 6816) | func (p *ActionIcon) GetActiveUrl() (v string) {
    method GetDefaultUri (line 6820) | func (p *ActionIcon) GetDefaultUri() (v string) {
    method GetActiveUri (line 6824) | func (p *ActionIcon) GetActiveUri() (v string) {
    method Read (line 6836) | func (p *ActionIcon) Read(iprot thrift.TProtocol) (err error) {
    method ReadField1 (line 6923) | func (p *ActionIcon) ReadField1(iprot thrift.TProtocol) error {
    method ReadField2 (line 6934) | func (p *ActionIcon) ReadField2(iprot thrift.TProtocol) error {
    method ReadField3 (line 6945) | func (p *ActionIcon) ReadField3(iprot thrift.TProtocol) error {
    method ReadField4 (line 6956) | func (p *ActionI
Copy disabled (too large) Download .json
Condensed preview — 14278 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (17,171K chars).
[
  {
    "path": ".claude/agents/frontend-infrastructure-expert.md",
    "chars": 2522,
    "preview": "---\nname: frontend-infrastructure-expert\ndescription: Use this agent when you need help with frontend build tools, confi"
  },
  {
    "path": ".dockerignore",
    "chars": 451,
    "preview": "# Exclude node_modules directories\n**/node_modules\n**/node_modules/**\n\n# Exclude build artifacts\n**/dist\n**/build\n**/.ru"
  },
  {
    "path": ".gitattributes",
    "chars": 743,
    "preview": "# Don't allow people to merge changes to these generated files, because the result\n# may be invalid.  You need to run \"r"
  },
  {
    "path": ".github/.licenserc.yaml",
    "chars": 601,
    "preview": "header:\n  license:\n    spdx-id: Apache-2.0\n    copyright-owner: coze-dev\n\n  paths:\n    - '**/*.go'\n    - frontend/apps/*"
  },
  {
    "path": ".github/CODEOWNERS",
    "chars": 21277,
    "preview": "* @Tecvan-fe @hi-pender @fanlv @junwen-lee\n\n/frontend/ @Tecvan-fe @fanlv @junwen-lee\n/common/ @Tecvan-fe @fanlv  @junwen"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "chars": 658,
    "preview": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**Describe the b"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "chars": 599,
    "preview": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**Is your fea"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "chars": 1717,
    "preview": "#### What type of PR is this?\n<!--\nAdd one of the following kinds:\n\nbuild: Changes that affect the build system or exter"
  },
  {
    "path": ".github/scripts/check-file-size.sh",
    "chars": 2867,
    "preview": "#!/bin/bash\n#\n# Copyright 2025 coze-dev Authors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# yo"
  },
  {
    "path": ".github/workflows/ci.yml",
    "chars": 9849,
    "preview": "name: CI\non:\n  pull_request:\n    branches: ['main']\n    paths:\n      - 'github/**'\n      - 'idl/**'\n      - 'frontend/**"
  },
  {
    "path": ".github/workflows/ci@backend.yml",
    "chars": 3737,
    "preview": "name: Backend Tests\n\non:\n  pull_request:\n    paths:\n      - 'backend/**'\n      - 'docker/atlas/**'\n      - '.github/work"
  },
  {
    "path": ".github/workflows/ci@main.yml",
    "chars": 2026,
    "preview": "# should be optimize as increment build & test\nname: CI@main\non:\n  push:\n    # test only\n    branches: ['main',\"chore/se"
  },
  {
    "path": ".github/workflows/claude.yml",
    "chars": 1594,
    "preview": "name: Claude PR Assistant\n\non:\n  issue_comment:\n    types: [created]\n  pull_request_review_comment:\n    types: [created]"
  },
  {
    "path": ".github/workflows/common-pr-checks.yml",
    "chars": 1381,
    "preview": "name: PR Common Checks\non:\n  pull_request:\n    paths:\n      - 'github/**'\n      - 'idl/**'\n      - 'frontend/**'\n      -"
  },
  {
    "path": ".github/workflows/idl.yaml",
    "chars": 1986,
    "preview": "name: Thrift Syntax Validation\n\non:\n  push:\n    branches: ['main']\n    paths:\n      - 'idl/**'\n      - '.github/workflow"
  },
  {
    "path": ".github/workflows/license-check.yaml",
    "chars": 768,
    "preview": "name: License Check\n\non:\n  push:\n    branches: ['main']\n  pull_request:\n\n  workflow_dispatch:\n\npermissions:\n  contents: "
  },
  {
    "path": ".github/workflows/semantic-pull-request.yaml",
    "chars": 1907,
    "preview": "name: Semantic Pull Request\n\non:\n  pull_request:\n    types:\n      - opened\n      - reopened\n      - edited\n\nconcurrency:"
  },
  {
    "path": ".gitignore",
    "chars": 741,
    "preview": "# Binaries for programs and plugins\n*.exe\n*.exe~\n*.dll\n*.so\n*.dylib\n\n.env\n.env.debug\n.env.oceanbase\n\n# Test binary, buil"
  },
  {
    "path": ".mcp.json",
    "chars": 196,
    "preview": "{\n  \"mcpServers\": {\n    \"github\": {\n      \"type\": \"http\",\n      \"url\": \"https://api.githubcopilot.com/mcp/\",\n      \"head"
  },
  {
    "path": ".nvmrc",
    "chars": 9,
    "preview": "lts/iron\n"
  },
  {
    "path": ".prettierrc.js",
    "chars": 113,
    "preview": "// Do not modify this file\nmodule.exports = {\n  ...require('./frontend/config/eslint-config/.prettierrc.js'),\n};\n"
  },
  {
    "path": ".vscode/extensions.json",
    "chars": 367,
    "preview": "{\n  \"recommendations\": [\n    \"editorconfig.editorconfig\",\n    \"esbenp.prettier-vscode\",\n    \"streetsidesoftware.code-spe"
  },
  {
    "path": ".vscode/settings.template.json",
    "chars": 5995,
    "preview": "{\n  \"eslint.nodePath\": \"frontend/config/eslint-config/node_modules/eslint\",\n  \"prettier.prettierPath\": \"frontend/config/"
  },
  {
    "path": "AUTHORS",
    "chars": 1846,
    "preview": "# Below is a list of people and organizations that have contributed\n# to the Coze Studio project. Names should be added "
  },
  {
    "path": "CLAUDE.md",
    "chars": 6009,
    "preview": "# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n## "
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 5222,
    "preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make participa"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 3059,
    "preview": "# How to Contribute\n\n## Your First Pull Request\nWe use GitHub for our codebase. You can start by reading [How To Pull Re"
  },
  {
    "path": "LICENSE-APACHE",
    "chars": 10174,
    "preview": "                                 Apache License\n                           Version 2.0, January 2004\n                   "
  },
  {
    "path": "Makefile",
    "chars": 5932,
    "preview": ".PHONY: debug fe server sync_db dump_db middleware web down clean python help\n\n# 定义脚本路径\nSCRIPTS_DIR := ./scripts\nBUILD_F"
  },
  {
    "path": "README.md",
    "chars": 11702,
    "preview": "![Image](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/943f576df3424fa98580c2ad18946719~tplv-goo7wpa0wc-image.imag"
  },
  {
    "path": "README.zh_CN.md",
    "chars": 6312,
    "preview": "![Image](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/943f576df3424fa98580c2ad18946719~tplv-goo7wpa0wc-image.imag"
  },
  {
    "path": "backend/.gitignore",
    "chars": 473,
    "preview": "*.o\n*.a\n*.so\n_obj\n_test\n*.[568vq]\n[568vq].out\n*.cgo1.go\n*.cgo2.c\n_cgo_defun.c\n_cgo_gotypes.go\n_cgo_export.*\n_testmain.go"
  },
  {
    "path": "backend/.hz",
    "chars": 124,
    "preview": "// Code generated by hz. DO NOT EDIT.\n\nhz version: v0.9.7\nhandlerDir: api/handler\nmodelDir: api/model\nrouterDir: api/rou"
  },
  {
    "path": "backend/Dockerfile",
    "chars": 2562,
    "preview": "# Stage 1: Builder for Go application\nFROM golang:1.24-alpine AS builder\n\nWORKDIR /app\n\n# Install build dependencies for"
  },
  {
    "path": "backend/README.md",
    "chars": 19,
    "preview": "# Coze Backend API\n"
  },
  {
    "path": "backend/api/handler/coze/agent_run_service.go",
    "chars": 6151,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/handler/coze/base.go",
    "chars": 980,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/handler/coze/bot_open_api_service.go",
    "chars": 4049,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/handler/coze/config_service.go",
    "chars": 8515,
    "preview": "// Code generated by hertz generator.\n\npackage coze\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"net\"\n\t\"net/url\"\n\t\"strconv\"\n\t\"strings\"\n"
  },
  {
    "path": "backend/api/handler/coze/conversation_service.go",
    "chars": 6311,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/handler/coze/database_service.go",
    "chars": 10317,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/handler/coze/developer_api_service.go",
    "chars": 10722,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/handler/coze/intelligence_service.go",
    "chars": 11309,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/handler/coze/knowledge_service.go",
    "chars": 20024,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/handler/coze/memory_service.go",
    "chars": 5905,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/handler/coze/message_service.go",
    "chars": 4525,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/handler/coze/message_service_test.go",
    "chars": 1896,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/handler/coze/open_apiauth_service.go",
    "chars": 5358,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/handler/coze/passport_service.go",
    "chars": 5766,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/handler/coze/playground_service.go",
    "chars": 9611,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/handler/coze/plugin_develop_service.go",
    "chars": 22206,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/handler/coze/public_product_service.go",
    "chars": 12245,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/handler/coze/resource_service.go",
    "chars": 4497,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/handler/coze/upload_service.go",
    "chars": 2290,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/handler/coze/workflow_service.go",
    "chars": 31180,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/handler/coze/workflow_service_test.go",
    "chars": 111444,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/internal/httputil/error_resp.go",
    "chars": 1706,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/middleware/ctx_cache.go",
    "chars": 881,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/middleware/host.go",
    "chars": 1055,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/middleware/i18n.go",
    "chars": 1455,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/middleware/log.go",
    "chars": 2835,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/middleware/openapi_auth.go",
    "chars": 5057,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/middleware/request_inspector.go",
    "chars": 1838,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/middleware/session.go",
    "chars": 3346,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/model/admin/config/config.go",
    "chars": 373782,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage config\n\nimport (\n\t\"context\"\n\t\"database/sql\"\n\t\"database/sql/"
  },
  {
    "path": "backend/api/model/app/bot_common/bot_common.go",
    "chars": 862256,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage bot_common\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\""
  },
  {
    "path": "backend/api/model/app/bot_open_api/bot_open_api.go",
    "chars": 156508,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage bot_open_api\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"github.com/apach"
  },
  {
    "path": "backend/api/model/app/developer_api/developer_api.go",
    "chars": 986394,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage developer_api\n\nimport (\n\t\"context\"\n\t\"database/sql\"\n\t\"databa"
  },
  {
    "path": "backend/api/model/app/intelligence/common/common_struct.go",
    "chars": 71073,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage common\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"f"
  },
  {
    "path": "backend/api/model/app/intelligence/common/intelligence_common_struct.go",
    "chars": 22641,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage common\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"f"
  },
  {
    "path": "backend/api/model/app/intelligence/common/task_struct.go",
    "chars": 3885,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage common\n\nimport (\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/t"
  },
  {
    "path": "backend/api/model/app/intelligence/intelligence.go",
    "chars": 171124,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage intelligence\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"github.com/apach"
  },
  {
    "path": "backend/api/model/app/intelligence/project/project.go",
    "chars": 118511,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage project\n\nimport (\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/"
  },
  {
    "path": "backend/api/model/app/intelligence/publish/publish.go",
    "chars": 259747,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage publish\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\""
  },
  {
    "path": "backend/api/model/app/intelligence/search.go",
    "chars": 147660,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage intelligence\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/drive"
  },
  {
    "path": "backend/api/model/app/intelligence/task/task.go",
    "chars": 19432,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage task\n\nimport (\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thr"
  },
  {
    "path": "backend/api/model/base/base.go",
    "chars": 40442,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage base\n\nimport (\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go/thr"
  },
  {
    "path": "backend/api/model/conversation/agentrun/agentrun_service.go",
    "chars": 43679,
    "preview": "// Code generated by thriftgo (0.4.1). DO NOT EDIT.\n\npackage agentrun\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"github.com/apache/th"
  },
  {
    "path": "backend/api/model/conversation/common/common.go",
    "chars": 2160,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage common\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"f"
  },
  {
    "path": "backend/api/model/conversation/conversation/conversation.go",
    "chars": 150993,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/model/conversation/conversation/conversation_service.go",
    "chars": 91754,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/model/conversation/message/message.go",
    "chars": 258416,
    "preview": "// Code generated by thriftgo (0.4.1). DO NOT EDIT.\n\npackage message\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\""
  },
  {
    "path": "backend/api/model/conversation/message/message_service.go",
    "chars": 54731,
    "preview": "// Code generated by thriftgo (0.4.1). DO NOT EDIT.\n\npackage message\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"github.com/apache/thr"
  },
  {
    "path": "backend/api/model/conversation/run/run.go",
    "chars": 286540,
    "preview": "// Code generated by thriftgo (0.4.1). DO NOT EDIT.\n\npackage run\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"fmt\""
  },
  {
    "path": "backend/api/model/coze/api.go",
    "chars": 21014,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage coze\n\nimport (\n\t\"github.com/apache/thrift/lib/go/thrift\"\n\t\""
  },
  {
    "path": "backend/api/model/data/database/database_svc.go",
    "chars": 206307,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage database\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"github.com/apache/th"
  },
  {
    "path": "backend/api/model/data/database/table/table.go",
    "chars": 919793,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage table\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"fm"
  },
  {
    "path": "backend/api/model/data/knowledge/common.go",
    "chars": 132210,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/model/data/knowledge/document.go",
    "chars": 355978,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/model/data/knowledge/knowledge.go",
    "chars": 278721,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/model/data/knowledge/knowledge_svc.go",
    "chars": 380756,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/model/data/knowledge/review.go",
    "chars": 73322,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage knowledge\n\nimport (\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/g"
  },
  {
    "path": "backend/api/model/data/knowledge/slice.go",
    "chars": 80214,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage knowledge\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n"
  },
  {
    "path": "backend/api/model/data/variable/kvmemory/kvmemory.go",
    "chars": 124329,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage kvmemory\n\nimport (\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib/go"
  },
  {
    "path": "backend/api/model/data/variable/project_memory/project_memory.go",
    "chars": 84499,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage project_memory\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/dri"
  },
  {
    "path": "backend/api/model/data/variable/variable_svc.go",
    "chars": 77533,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage variable\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"github.com/apache/th"
  },
  {
    "path": "backend/api/model/file/upload/upload.go",
    "chars": 147612,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage upload\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"github.com/apache/thri"
  },
  {
    "path": "backend/api/model/marketplace/marketplace_common/marketplace_common.go",
    "chars": 7321,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage marketplace_common\n\nimport (\n\t\"database/sql\"\n\t\"database/sql"
  },
  {
    "path": "backend/api/model/marketplace/product_common/product_common.go",
    "chars": 98461,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage product_common\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/dri"
  },
  {
    "path": "backend/api/model/marketplace/product_public_api/public_api.go",
    "chars": 936244,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage product_public_api\n\nimport (\n\t\"context\"\n\t\"database/sql\"\n\t\"d"
  },
  {
    "path": "backend/api/model/passport/passport.go",
    "chars": 187339,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage passport\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"github.com/apache/th"
  },
  {
    "path": "backend/api/model/permission/openapiauth/openapiauth.go",
    "chars": 116369,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage openapiauth\n\nimport (\n\t\"fmt\"\n\t\"github.com/apache/thrift/lib"
  },
  {
    "path": "backend/api/model/permission/openapiauth/openapiauth_service.go",
    "chars": 61797,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage openapiauth\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"github.com/apache"
  },
  {
    "path": "backend/api/model/playground/playground.go",
    "chars": 588759,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage playground\n\nimport (\n\t\"context\"\n\t\"database/sql\"\n\t\"database/"
  },
  {
    "path": "backend/api/model/playground/prompt_resource.go",
    "chars": 128522,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage playground\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\""
  },
  {
    "path": "backend/api/model/playground/shortcut_command.go",
    "chars": 107567,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage playground\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\""
  },
  {
    "path": "backend/api/model/plugin_develop/common/plugin_develop_common.go",
    "chars": 298327,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage common\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"f"
  },
  {
    "path": "backend/api/model/plugin_develop/plugin_develop.go",
    "chars": 990657,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage plugin_develop\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"github.com/apa"
  },
  {
    "path": "backend/api/model/resource/common/resource_common.go",
    "chars": 102506,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage common\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t\"f"
  },
  {
    "path": "backend/api/model/resource/resource.go",
    "chars": 180862,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage resource\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"github.com/apache/th"
  },
  {
    "path": "backend/api/model/workflow/trace.go",
    "chars": 220403,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage workflow\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t"
  },
  {
    "path": "backend/api/model/workflow/workflow.go",
    "chars": 2208905,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage workflow\n\nimport (\n\t\"database/sql\"\n\t\"database/sql/driver\"\n\t"
  },
  {
    "path": "backend/api/model/workflow/workflow_svc.go",
    "chars": 530948,
    "preview": "// Code generated by thriftgo (0.4.2). DO NOT EDIT.\n\npackage workflow\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"github.com/apache/th"
  },
  {
    "path": "backend/api/router/coze/api.go",
    "chars": 31621,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/router/coze/middleware.go",
    "chars": 27700,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/api/router/register.go",
    "chars": 2406,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/app/app.go",
    "chars": 46756,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/app/convert.go",
    "chars": 2036,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/app/init.go",
    "chars": 2330,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/app/model.go",
    "chars": 848,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/application.go",
    "chars": 17118,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/base/appinfra/app_infra.go",
    "chars": 5803,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/base/ctxutil/api_auth.go",
    "chars": 1218,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/base/ctxutil/request.go",
    "chars": 876,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/base/ctxutil/session.go",
    "chars": 1368,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/connector/connector.go",
    "chars": 1273,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/connector/init.go",
    "chars": 976,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/conversation/agent_run.go",
    "chars": 16337,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/conversation/build_chunk_event.go",
    "chars": 1204,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/conversation/conversation.go",
    "chars": 10741,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/conversation/init.go",
    "chars": 3168,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/conversation/message.go",
    "chars": 11329,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/conversation/openapi_agent_run.go",
    "chars": 23488,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/conversation/openapi_agent_run_test.go",
    "chars": 36840,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/conversation/openapi_message.go",
    "chars": 5664,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/knowledge/convertor.go",
    "chars": 23998,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/knowledge/init.go",
    "chars": 1602,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/knowledge/knowledge.go",
    "chars": 60093,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/memory/convertor.go",
    "chars": 8534,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/memory/database.go",
    "chars": 30968,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/memory/init.go",
    "chars": 2322,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/memory/variables.go",
    "chars": 14926,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/modelmgr/init.go",
    "chars": 860,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/modelmgr/modelmgr.go",
    "chars": 4309,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/openauth/init.go",
    "chars": 1130,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/openauth/openapiauth.go",
    "chars": 7952,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/permission/init.go",
    "chars": 995,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/plugin/api_management.go",
    "chars": 14552,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/plugin/auth.go",
    "chars": 5639,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/plugin/info.go",
    "chars": 10798,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/plugin/init.go",
    "chars": 3866,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/plugin/lifecycle.go",
    "chars": 8666,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/plugin/playground.go",
    "chars": 8002,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/plugin/plugin.go",
    "chars": 21096,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/plugin/plugin_test.go",
    "chars": 9261,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/plugin/registration.go",
    "chars": 7249,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/prompt/init.go",
    "chars": 1158,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/prompt/prompt.go",
    "chars": 7653,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/search/init.go",
    "chars": 3590,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/search/project_pack.go",
    "chars": 5965,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/search/project_search.go",
    "chars": 15039,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/search/resource_pack.go",
    "chars": 9411,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/search/resource_search.go",
    "chars": 12517,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/shortcutcmd/init.go",
    "chars": 1288,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/shortcutcmd/shortcut_cmd.go",
    "chars": 5000,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/singleagent/create.go",
    "chars": 4941,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/singleagent/duplicate.go",
    "chars": 5405,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/singleagent/get.go",
    "chars": 20246,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/singleagent/image.go",
    "chars": 3137,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/singleagent/init.go",
    "chars": 3188,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/singleagent/publish.go",
    "chars": 8497,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/singleagent/single_agent.go",
    "chars": 26127,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/template/init.go",
    "chars": 1217,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/template/template.go",
    "chars": 2710,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/upload/consts.go",
    "chars": 944,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/upload/icon.go",
    "chars": 21194,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/user/init.go",
    "chars": 1285,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/user/user.go",
    "chars": 10430,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/workflow/chatflow.go",
    "chars": 50613,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/workflow/chatflow_test.go",
    "chars": 17769,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/workflow/eventbus.go",
    "chars": 1676,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/workflow/init.go",
    "chars": 3757,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/workflow/workflow.go",
    "chars": 126987,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/application/workflow/workflow_test.go",
    "chars": 4122,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/bizpkg/config/base/base.go",
    "chars": 3885,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/bizpkg/config/config.go",
    "chars": 2281,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/bizpkg/config/knowledge/knowledge.go",
    "chars": 5552,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/bizpkg/config/modelmgr/builtin_conf.go",
    "chars": 2869,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/bizpkg/config/modelmgr/deprecate_model_get.go",
    "chars": 13594,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/bizpkg/config/modelmgr/extra.go",
    "chars": 695,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/bizpkg/config/modelmgr/internal/model/model_instance.gen.go",
    "chars": 2546,
    "preview": "// Code generated by gorm.io/gen. DO NOT EDIT.\n// Code generated by gorm.io/gen. DO NOT EDIT.\n// Code generated by gorm."
  },
  {
    "path": "backend/bizpkg/config/modelmgr/internal/query/gen.go",
    "chars": 2023,
    "preview": "// Code generated by gorm.io/gen. DO NOT EDIT.\n// Code generated by gorm.io/gen. DO NOT EDIT.\n// Code generated by gorm."
  },
  {
    "path": "backend/bizpkg/config/modelmgr/internal/query/model_instance.gen.go",
    "chars": 13538,
    "preview": "// Code generated by gorm.io/gen. DO NOT EDIT.\n// Code generated by gorm.io/gen. DO NOT EDIT.\n// Code generated by gorm."
  },
  {
    "path": "backend/bizpkg/config/modelmgr/mode_provider.go",
    "chars": 3187,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/bizpkg/config/modelmgr/model_get.go",
    "chars": 6946,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/bizpkg/config/modelmgr/model_meta.go",
    "chars": 3191,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/bizpkg/config/modelmgr/model_param.go",
    "chars": 3204,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/bizpkg/config/modelmgr/model_save.go",
    "chars": 3607,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/bizpkg/config/modelmgr/modelmgr.go",
    "chars": 2644,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  },
  {
    "path": "backend/bizpkg/debugutil/workflow_debug.go",
    "chars": 1891,
    "preview": "/*\n * Copyright 2025 coze-dev Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may n"
  }
]

// ... and 14078 more files (download for full content)

About this extraction

This page contains the full source code of the coze-dev/coze-studio GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 14278 files (56.4 MB), approximately 5.1M tokens, and a symbol index with 35446 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!