diff --git a/api/core/app/entities/task_entities.py b/api/core/app/entities/task_entities.py index ad05566521..ac9874023d 100644 --- a/api/core/app/entities/task_entities.py +++ b/api/core/app/entities/task_entities.py @@ -1,6 +1,6 @@ from collections.abc import Mapping, Sequence from enum import StrEnum -from typing import Any, Literal +from typing import Annotated, Any, Literal from pydantic import BaseModel, ConfigDict, Field, JsonValue @@ -10,7 +10,18 @@ from graphon.entities import WorkflowStartReason from graphon.entities.pause_reason import PauseReasonType from graphon.enums import WorkflowExecutionStatus, WorkflowNodeExecutionMetadataKey, WorkflowNodeExecutionStatus from graphon.model_runtime.entities.llm_entities import LLMResult, LLMUsage -from graphon.nodes.human_input.entities import FormInput, UserAction +from graphon.nodes.human_input.entities import ( + FileInputConfig, + FileListInputConfig, + ParagraphInputConfig, + SelectInputConfig, + UserActionConfig, +) + +HumanInputFormInputConfig = Annotated[ + ParagraphInputConfig | SelectInputConfig | FileInputConfig | FileListInputConfig, + Field(discriminator="type"), +] class AnnotationReplyAccount(BaseModel): @@ -284,8 +295,8 @@ class HumanInputRequiredResponse(StreamResponse): node_id: str node_title: str form_content: str - inputs: Sequence[FormInput] = Field(default_factory=list) - actions: Sequence[UserAction] = Field(default_factory=list) + inputs: Sequence[HumanInputFormInputConfig] = Field(default_factory=list) + actions: Sequence[UserActionConfig] = Field(default_factory=list) display_in_ui: bool = False form_token: str | None = None resolved_default_values: Mapping[str, Any] = Field(default_factory=dict) @@ -307,8 +318,8 @@ class HumanInputRequiredPauseReasonPayload(BaseModel): node_id: str node_title: str form_content: str - inputs: Sequence[FormInput] = Field(default_factory=list) - actions: Sequence[UserAction] = Field(default_factory=list) + inputs: Sequence[HumanInputFormInputConfig] = Field(default_factory=list) + actions: Sequence[UserActionConfig] = Field(default_factory=list) display_in_ui: bool = False form_token: str | None = None resolved_default_values: Mapping[str, Any] = Field(default_factory=dict) diff --git a/api/core/entities/execution_extra_content.py b/api/core/entities/execution_extra_content.py index 04ae193396..d4461ee367 100644 --- a/api/core/entities/execution_extra_content.py +++ b/api/core/entities/execution_extra_content.py @@ -1,13 +1,24 @@ from __future__ import annotations from collections.abc import Mapping, Sequence -from typing import Any, TypeAlias +from typing import Annotated, Any, TypeAlias from pydantic import BaseModel, ConfigDict, Field -from graphon.nodes.human_input.entities import FormInput, UserAction +from graphon.nodes.human_input.entities import ( + FileInputConfig, + FileListInputConfig, + ParagraphInputConfig, + SelectInputConfig, + UserActionConfig, +) from models.execution_extra_content import ExecutionContentType +HumanInputFormInputConfig = Annotated[ + ParagraphInputConfig | SelectInputConfig | FileInputConfig | FileListInputConfig, + Field(discriminator="type"), +] + class HumanInputFormDefinition(BaseModel): model_config = ConfigDict(frozen=True) @@ -16,8 +27,8 @@ class HumanInputFormDefinition(BaseModel): node_id: str node_title: str form_content: str - inputs: Sequence[FormInput] = Field(default_factory=list) - actions: Sequence[UserAction] = Field(default_factory=list) + inputs: Sequence[HumanInputFormInputConfig] = Field(default_factory=list) + actions: Sequence[UserActionConfig] = Field(default_factory=list) display_in_ui: bool = False form_token: str | None = None resolved_default_values: Mapping[str, Any] = Field(default_factory=dict) diff --git a/api/core/workflow/human_input_adapter.py b/api/core/workflow/human_input_adapter.py index 731ae2b858..f3cec1f003 100644 --- a/api/core/workflow/human_input_adapter.py +++ b/api/core/workflow/human_input_adapter.py @@ -190,6 +190,8 @@ def adapt_human_input_node_data_for_graph(node_data: Mapping[str, Any] | BaseMod if normalized is None: raise TypeError(f"human-input node data must be a mapping, got {type(node_data).__name__}") + normalized["inputs"] = _normalize_human_input_inputs(normalized.get("inputs")) + delivery_methods = normalized.get("delivery_methods") if not isinstance(delivery_methods, list): return normalized @@ -214,6 +216,24 @@ def adapt_human_input_node_data_for_graph(node_data: Mapping[str, Any] | BaseMod return normalized +def _normalize_human_input_inputs(inputs: object) -> object: + if not isinstance(inputs, list): + return inputs + + normalized_inputs: list[Any] = [] + for form_input in inputs: + input_mapping = _copy_mapping(form_input) + if input_mapping is None: + normalized_inputs.append(form_input) + continue + + if input_mapping.get("type") in {"text-input", "text_input"}: + input_mapping["type"] = "paragraph" + normalized_inputs.append(input_mapping) + + return normalized_inputs + + def parse_human_input_delivery_methods(node_data: Mapping[str, Any] | BaseModel) -> list[DeliveryChannelConfig]: normalized = adapt_human_input_node_data_for_graph(node_data) raw_delivery_methods = normalized.get("delivery_methods") diff --git a/api/core/workflow/node_factory.py b/api/core/workflow/node_factory.py index a306b1c9ac..3480c0fdd6 100644 --- a/api/core/workflow/node_factory.py +++ b/api/core/workflow/node_factory.py @@ -48,7 +48,7 @@ from graphon.graph.graph import NodeFactory from graphon.model_runtime.memory import PromptMessageMemory from graphon.model_runtime.model_providers.base.large_language_model import LargeLanguageModel from graphon.nodes.base.node import Node -from graphon.nodes.code.code_node import WorkflowCodeExecutor +from graphon.nodes.code.code_node import CodeExecutorProtocol from graphon.nodes.code.entities import CodeLanguage from graphon.nodes.code.limits import CodeNodeLimits from graphon.nodes.document_extractor import UnstructuredApiConfig @@ -285,7 +285,7 @@ class DifyNodeFactory(NodeFactory): self.graph_init_params = graph_init_params self.graph_runtime_state = graph_runtime_state self._dify_context = self._resolve_dify_context(graph_init_params.run_context) - self._code_executor: WorkflowCodeExecutor = DefaultWorkflowCodeExecutor() + self._code_executor: CodeExecutorProtocol = DefaultWorkflowCodeExecutor() self._code_limits = CodeNodeLimits( max_string_length=dify_config.CODE_MAX_STRING_LENGTH, max_number=dify_config.CODE_MAX_NUMBER, @@ -393,6 +393,7 @@ class DifyNodeFactory(NodeFactory): }, BuiltinNodeTypes.HUMAN_INPUT: lambda: { "runtime": self._human_input_runtime, + "file_reference_factory": self._file_reference_factory, "form_repository": self._human_input_runtime.build_form_repository(), }, BuiltinNodeTypes.LLM: lambda: self._build_llm_compatible_node_init_kwargs( diff --git a/api/core/workflow/node_runtime.py b/api/core/workflow/node_runtime.py index db7d78bf45..85927199b0 100644 --- a/api/core/workflow/node_runtime.py +++ b/api/core/workflow/node_runtime.py @@ -45,7 +45,7 @@ from graphon.model_runtime.entities.model_entities import AIModelEntity from graphon.model_runtime.model_providers.base.large_language_model import LargeLanguageModel from graphon.nodes.human_input.entities import HumanInputNodeData from graphon.nodes.llm.runtime_protocols import ( - PreparedLLMProtocol, + LLMProtocol, PromptMessageSerializerProtocol, RetrieverAttachmentLoaderProtocol, ) @@ -136,7 +136,7 @@ class DifyFileReferenceFactory(FileReferenceFactoryProtocol): ) -class DifyPreparedLLM(PreparedLLMProtocol): +class DifyPreparedLLM(LLMProtocol): """Workflow-layer adapter that hides the full `ModelInstance` API from `graphon` nodes.""" def __init__(self, model_instance: ModelInstance) -> None: diff --git a/api/openapi/markdown/console-swagger.md b/api/openapi/markdown/console-swagger.md index ffde4a0971..0f093067b3 100644 --- a/api/openapi/markdown/console-swagger.md +++ b/api/openapi/markdown/console-swagger.md @@ -11802,6 +11802,27 @@ Request payload for bulk downloading documents as a zip archive. | ---- | ---- | ----------- | -------- | | file_ids | [ string ] | | Yes | +#### FileInputConfig + +| Name | Type | Description | Required | +| ---- | ---- | ----------- | -------- | +| allowed_file_extensions | [ string ] | | No | +| allowed_file_types | [ [FileType](#filetype) ] | | No | +| allowed_file_upload_methods | [ [FileTransferMethod](#filetransfermethod) ] | | No | +| output_variable_name | string | | Yes | +| type | string | | No | + +#### FileListInputConfig + +| Name | Type | Description | Required | +| ---- | ---- | ----------- | -------- | +| allowed_file_extensions | [ string ] | | No | +| allowed_file_types | [ [FileType](#filetype) ] | | No | +| allowed_file_upload_methods | [ [FileTransferMethod](#filetransfermethod) ] | | No | +| number_limits | integer | | No | +| output_variable_name | string | | Yes | +| type | string | | No | + #### FileResponse | Name | Type | Description | Required | @@ -11821,6 +11842,18 @@ Request payload for bulk downloading documents as a zip archive. | tenant_id | | | No | | user_id | | | No | +#### FileTransferMethod + +| Name | Type | Description | Required | +| ---- | ---- | ----------- | -------- | +| FileTransferMethod | string | | | + +#### FileType + +| Name | Type | Description | Required | +| ---- | ---- | ----------- | -------- | +| FileType | string | | | + #### ForgotPasswordCheckPayload | Name | Type | Description | Required | @@ -11866,34 +11899,6 @@ Request payload for bulk downloading documents as a zip archive. | email | string | | Yes | | language | | | No | -#### FormInput - -Form input definition. - -| Name | Type | Description | Required | -| ---- | ---- | ----------- | -------- | -| default | | | No | -| output_variable_name | string | | Yes | -| type | [FormInputType](#forminputtype) | | Yes | - -#### FormInputDefault - -Default configuration for form inputs. - -| Name | Type | Description | Required | -| ---- | ---- | ----------- | -------- | -| selector | [ string ] | | No | -| type | [PlaceholderType](#placeholdertype) | | Yes | -| value | string | | No | - -#### FormInputType - -Form input types. - -| Name | Type | Description | Required | -| ---- | ---- | ----------- | -------- | -| FormInputType | string | Form input types. | | - #### GenerateSummaryPayload | Name | Type | Description | Required | @@ -12015,13 +12020,13 @@ Form input types. | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | -| actions | [ [UserAction](#useraction) ] | | No | +| actions | [ [UserActionConfig](#useractionconfig) ] | | No | | display_in_ui | boolean | | No | | expiration_time | integer | | Yes | | form_content | string | | Yes | | form_id | string | | Yes | | form_token | | | No | -| inputs | [ [FormInput](#forminput) ] | | No | +| inputs | [ ] | | No | | node_id | string | | Yes | | node_title | string | | Yes | | resolved_default_values | object | | No | @@ -12659,6 +12664,16 @@ Enum class for model type. | page | integer | | Yes | | total | integer | | Yes | +#### ParagraphInputConfig + +Form input definition. + +| Name | Type | Description | Required | +| ---- | ---- | ----------- | -------- | +| default | | | No | +| output_variable_name | string | | Yes | +| type | string | | No | + #### Parser | Name | Type | Description | Required | @@ -12988,14 +13003,6 @@ Enum class for model type. | unit | string | | No | | variable | string | | No | -#### PlaceholderType - -Default value types for form inputs. - -| Name | Type | Description | Required | -| ---- | ---- | ----------- | -------- | -| PlaceholderType | string | Default value types for form inputs. | | - #### PluginAutoUpgradeSettingsPayload | Name | Type | Description | Required | @@ -13276,6 +13283,14 @@ Default value types for form inputs. | max_tokens | integer | | Yes | | separator | string | | No | +#### SelectInputConfig + +| Name | Type | Description | Required | +| ---- | ---- | ----------- | -------- | +| option_source | [StringListSource](#stringlistsource) | | Yes | +| output_variable_name | string | | Yes | +| type | string | | No | + #### SimpleAccount | Name | Type | Description | Required | @@ -13358,6 +13373,24 @@ Default value types for form inputs. | ---- | ---- | ----------- | -------- | | StrategySetting | string | | | +#### StringListSource + +| Name | Type | Description | Required | +| ---- | ---- | ----------- | -------- | +| selector | [ string ] | | No | +| type | [ValueSourceType](#valuesourcetype) | | Yes | +| value | [ string ] | | No | + +#### StringSource + +Default configuration for form inputs. + +| Name | Type | Description | Required | +| ---- | ---- | ----------- | -------- | +| selector | [ string ] | | No | +| type | [ValueSourceType](#valuesourcetype) | | Yes | +| value | string | | No | + #### SubscriptionQuery | Name | Type | Description | Required | @@ -13783,7 +13816,7 @@ Tag type | video_file_size_limit | integer | | Yes | | workflow_file_upload_limit | integer | | Yes | -#### UserAction +#### UserActionConfig User action configuration. @@ -13793,6 +13826,15 @@ User action configuration. | id | string | | Yes | | title | string | | Yes | +#### ValueSourceType + +ValueSourceType records whether the value comes from a static setting +in form definiton, or a variable while the workflow is running. + +| Name | Type | Description | Required | +| ---- | ---- | ----------- | -------- | +| ValueSourceType | string | ValueSourceType records whether the value comes from a static setting in form definiton, or a variable while the workflow is running. | | + #### WebhookTriggerResponse | Name | Type | Description | Required | diff --git a/api/pyproject.toml b/api/pyproject.toml index 0744ddd6f8..48fd5686a6 100644 --- a/api/pyproject.toml +++ b/api/pyproject.toml @@ -45,7 +45,7 @@ dependencies = [ # Emerging: newer and fast-moving, use compatible pins "fastopenapi[flask]~=0.7.0", - "graphon~=0.3.1", + "graphon~=0.4.0", "httpx-sse~=0.4.0", "json-repair~=0.59.4", ] diff --git a/api/tests/test_containers_integration_tests/core/repositories/test_human_input_form_repository_impl.py b/api/tests/test_containers_integration_tests/core/repositories/test_human_input_form_repository_impl.py index 6524d6ce61..676833ce98 100644 --- a/api/tests/test_containers_integration_tests/core/repositories/test_human_input_form_repository_impl.py +++ b/api/tests/test_containers_integration_tests/core/repositories/test_human_input_form_repository_impl.py @@ -17,7 +17,7 @@ from core.workflow.human_input_adapter import ( MemberRecipient, WebAppDeliveryMethod, ) -from graphon.nodes.human_input.entities import FormDefinition, HumanInputNodeData, UserAction +from graphon.nodes.human_input.entities import FormDefinition, HumanInputNodeData, UserActionConfig from models.account import ( Account, AccountStatus, @@ -69,7 +69,7 @@ def _build_form_params(delivery_methods: list[DeliveryChannelConfig]) -> FormCre title="Human Approval", delivery_methods=delivery_methods, form_content="

Approve?

", - user_actions=[UserAction(id="approve", title="Approve")], + user_actions=[UserActionConfig(id="approve", title="Approve")], ) return FormCreateParams( workflow_execution_id=str(uuid4()), @@ -185,7 +185,7 @@ class TestHumanInputFormRepositoryImplWithContainers: title="Human Approval", form_content="

Approve?

", inputs=[], - user_actions=[UserAction(id="approve", title="Approve")], + user_actions=[UserActionConfig(id="approve", title="Approve")], ), rendered_content="

Approve?

", delivery_methods=[], @@ -220,7 +220,7 @@ class TestHumanInputFormRepositoryImplWithContainers: title="Human Approval", form_content="

Approve?

", inputs=[], - user_actions=[UserAction(id="approve", title="Approve")], + user_actions=[UserActionConfig(id="approve", title="Approve")], delivery_methods=[WebAppDeliveryMethod()], ), rendered_content="

Approve?

", diff --git a/api/tests/test_containers_integration_tests/core/workflow/test_human_input_resume_node_execution.py b/api/tests/test_containers_integration_tests/core/workflow/test_human_input_resume_node_execution.py index ad82b8fe2a..a69dd99adc 100644 --- a/api/tests/test_containers_integration_tests/core/workflow/test_human_input_resume_node_execution.py +++ b/api/tests/test_containers_integration_tests/core/workflow/test_human_input_resume_node_execution.py @@ -21,7 +21,7 @@ from graphon.graph_engine import GraphEngine from graphon.graph_engine.command_channels import InMemoryChannel from graphon.nodes.end.end_node import EndNode from graphon.nodes.end.entities import EndNodeData -from graphon.nodes.human_input.entities import HumanInputNodeData, UserAction +from graphon.nodes.human_input.entities import HumanInputNodeData, UserActionConfig from graphon.nodes.human_input.enums import HumanInputFormStatus from graphon.nodes.human_input.human_input_node import HumanInputNode from graphon.nodes.start.entities import StartNodeData @@ -112,7 +112,7 @@ def _build_graph( form_content="Awaiting human input", inputs=[], user_actions=[ - UserAction(id="continue", title="Continue"), + UserActionConfig(id="continue", title="Continue"), ], ) human_node = HumanInputNode( diff --git a/api/tests/test_containers_integration_tests/helpers/execution_extra_content.py b/api/tests/test_containers_integration_tests/helpers/execution_extra_content.py index 2fd289dfbc..2a1638d126 100644 --- a/api/tests/test_containers_integration_tests/helpers/execution_extra_content.py +++ b/api/tests/test_containers_integration_tests/helpers/execution_extra_content.py @@ -5,7 +5,7 @@ from datetime import timedelta from decimal import Decimal from uuid import uuid4 -from graphon.nodes.human_input.entities import FormDefinition, UserAction +from graphon.nodes.human_input.entities import FormDefinition, UserActionConfig from libs.datetime_utils import naive_utc_now from models.account import Account, Tenant, TenantAccountJoin from models.enums import ConversationFromSource, InvokeFrom @@ -116,7 +116,7 @@ def create_human_input_message_fixture(db_session) -> HumanInputMessageFixture: form_definition = FormDefinition( form_content="content", inputs=[], - user_actions=[UserAction(id=action_id, title=action_text)], + user_actions=[UserActionConfig(id=action_id, title=action_text)], rendered_content="Rendered block", expiration_time=naive_utc_now() + timedelta(days=1), node_title=node_title, diff --git a/api/tests/test_containers_integration_tests/repositories/test_sqlalchemy_api_workflow_run_repository.py b/api/tests/test_containers_integration_tests/repositories/test_sqlalchemy_api_workflow_run_repository.py index d9828e19c5..1ffc84c167 100644 --- a/api/tests/test_containers_integration_tests/repositories/test_sqlalchemy_api_workflow_run_repository.py +++ b/api/tests/test_containers_integration_tests/repositories/test_sqlalchemy_api_workflow_run_repository.py @@ -17,7 +17,7 @@ from extensions.ext_storage import storage from graphon.entities import WorkflowExecution from graphon.entities.pause_reason import HumanInputRequired, PauseReasonType from graphon.enums import WorkflowExecutionStatus -from graphon.nodes.human_input.entities import FormDefinition, FormInput, UserAction +from graphon.nodes.human_input.entities import FormDefinition, ParagraphInputConfig, UserActionConfig from graphon.nodes.human_input.enums import FormInputType, HumanInputFormStatus from libs.datetime_utils import naive_utc_now from models.enums import CreatorUserRole, WorkflowRunTriggeredFrom @@ -642,8 +642,8 @@ class TestBuildHumanInputRequiredReason: expiration_time = naive_utc_now() form_definition = FormDefinition( form_content="content", - inputs=[FormInput(type=FormInputType.TEXT_INPUT, output_variable_name="name")], - user_actions=[UserAction(id="approve", title="Approve")], + inputs=[ParagraphInputConfig(type=FormInputType.PARAGRAPH, output_variable_name="name")], + user_actions=[UserActionConfig(id="approve", title="Approve")], rendered_content="rendered", expiration_time=expiration_time, default_values={"name": "Alice"}, @@ -754,8 +754,8 @@ class TestBuildHumanInputRequiredReason: expiration_time = naive_utc_now() form_definition = FormDefinition( form_content="content", - inputs=[FormInput(type=FormInputType.TEXT_INPUT, output_variable_name="name")], - user_actions=[UserAction(id="approve", title="Approve")], + inputs=[ParagraphInputConfig(type=FormInputType.PARAGRAPH, output_variable_name="name")], + user_actions=[UserActionConfig(id="approve", title="Approve")], rendered_content="rendered", expiration_time=expiration_time, default_values={"name": "Alice"}, diff --git a/api/tests/test_containers_integration_tests/repositories/test_sqlalchemy_execution_extra_content_repository.py b/api/tests/test_containers_integration_tests/repositories/test_sqlalchemy_execution_extra_content_repository.py index 54b7afc018..7da6f4a32d 100644 --- a/api/tests/test_containers_integration_tests/repositories/test_sqlalchemy_execution_extra_content_repository.py +++ b/api/tests/test_containers_integration_tests/repositories/test_sqlalchemy_execution_extra_content_repository.py @@ -15,7 +15,7 @@ import pytest from sqlalchemy import Engine, delete, select from sqlalchemy.orm import Session, sessionmaker -from graphon.nodes.human_input.entities import FormDefinition, UserAction +from graphon.nodes.human_input.entities import FormDefinition, UserActionConfig from graphon.nodes.human_input.enums import HumanInputFormStatus from libs.datetime_utils import naive_utc_now from models.account import Account, Tenant, TenantAccountJoin, TenantAccountRole @@ -179,7 +179,7 @@ def _create_submitted_form( form_definition = FormDefinition( form_content="content", inputs=[], - user_actions=[UserAction(id=action_id, title=action_title)], + user_actions=[UserActionConfig(id=action_id, title=action_title)], rendered_content="rendered", expiration_time=expiration_time, node_title=node_title, @@ -212,7 +212,7 @@ def _create_waiting_form( form_definition = FormDefinition( form_content="content", inputs=[], - user_actions=[UserAction(id="approve", title="Approve")], + user_actions=[UserActionConfig(id="approve", title="Approve")], rendered_content="rendered", expiration_time=expiration_time, default_values=default_values or {"name": "John"}, diff --git a/api/tests/unit_tests/controllers/console/app/test_workflow_pause_details_api.py b/api/tests/unit_tests/controllers/console/app/test_workflow_pause_details_api.py index 05c17b4e34..f265a4f68d 100644 --- a/api/tests/unit_tests/controllers/console/app/test_workflow_pause_details_api.py +++ b/api/tests/unit_tests/controllers/console/app/test_workflow_pause_details_api.py @@ -12,7 +12,7 @@ from controllers.console.app import workflow_run as workflow_run_module from controllers.web.error import NotFoundError from graphon.entities.pause_reason import HumanInputRequired from graphon.enums import WorkflowExecutionStatus -from graphon.nodes.human_input.entities import FormInput, UserAction +from graphon.nodes.human_input.entities import ParagraphInputConfig, UserActionConfig from graphon.nodes.human_input.enums import FormInputType from libs import login as login_lib from models.account import Account, AccountStatus, TenantAccountRole @@ -63,8 +63,8 @@ def test_pause_details_returns_backstage_input_url(app: Flask, monkeypatch: pyte reason = HumanInputRequired( form_id="form-1", form_content="content", - inputs=[FormInput(type=FormInputType.TEXT_INPUT, output_variable_name="name")], - actions=[UserAction(id="approve", title="Approve")], + inputs=[ParagraphInputConfig(type=FormInputType.PARAGRAPH, output_variable_name="name")], + actions=[UserActionConfig(id="approve", title="Approve")], node_id="node-1", node_title="Ask Name", ) diff --git a/api/tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py b/api/tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py index 510d4a9470..38c403a9c4 100644 --- a/api/tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py +++ b/api/tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py @@ -32,7 +32,7 @@ from core.workflow.system_variables import build_system_variables from graphon.entities import WorkflowStartReason from graphon.entities.pause_reason import HumanInputRequired, PauseReasonType from graphon.enums import WorkflowExecutionStatus, WorkflowNodeExecutionStatus -from graphon.nodes.human_input.entities import FormInput, UserAction +from graphon.nodes.human_input.entities import ParagraphInputConfig, UserActionConfig from graphon.nodes.human_input.enums import FormInputType from graphon.runtime import GraphRuntimeState, VariablePool from models.account import Account @@ -450,7 +450,7 @@ class TestHitlServiceApi: node_title="Approval", form_content="Need approval", inputs=[], - actions=[UserAction(id="approve", title="Approve")], + actions=[UserActionConfig(id="approve", title="Approve")], display_in_ui=True, form_token="token-1", resolved_default_values={}, @@ -591,9 +591,9 @@ class TestHitlServiceApi: form_id="form-1", form_content="Rendered", inputs=[ - FormInput(type=FormInputType.TEXT_INPUT, output_variable_name="field", default=None), + ParagraphInputConfig(type=FormInputType.PARAGRAPH, output_variable_name="field", default=None), ], - actions=[UserAction(id="approve", title="Approve")], + actions=[UserActionConfig(id="approve", title="Approve")], display_in_ui=True, node_id="node-id", node_title="Human Step", diff --git a/api/tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py b/api/tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py index d8f794b483..c26011b758 100644 --- a/api/tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py +++ b/api/tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py @@ -51,7 +51,7 @@ from core.base.tts.app_generator_tts_publisher import AudioTrunk from core.workflow.system_variables import build_system_variables from graphon.entities.pause_reason import PauseReasonType from graphon.enums import BuiltinNodeTypes -from graphon.nodes.human_input.entities import UserAction +from graphon.nodes.human_input.entities import UserActionConfig from graphon.runtime import GraphRuntimeState, VariablePool from libs.datetime_utils import naive_utc_now from models.enums import MessageStatus @@ -150,7 +150,7 @@ class TestAdvancedChatGenerateTaskPipeline: node_title="Approval", form_content="Need approval", inputs=[], - actions=[UserAction(id="approve", title="Approve")], + actions=[UserActionConfig(id="approve", title="Approve")], display_in_ui=True, form_token="token-1", resolved_default_values={}, diff --git a/api/tests/unit_tests/core/app/apps/test_workflow_pause_events.py b/api/tests/unit_tests/core/app/apps/test_workflow_pause_events.py index a3ab379b66..72a46a74c9 100644 --- a/api/tests/unit_tests/core/app/apps/test_workflow_pause_events.py +++ b/api/tests/unit_tests/core/app/apps/test_workflow_pause_events.py @@ -14,7 +14,7 @@ from core.workflow.system_variables import build_system_variables from graphon.entities import WorkflowStartReason from graphon.entities.pause_reason import HumanInputRequired from graphon.graph_events import GraphRunPausedEvent -from graphon.nodes.human_input.entities import FormInput, UserAction +from graphon.nodes.human_input.entities import ParagraphInputConfig, UserActionConfig from graphon.nodes.human_input.enums import FormInputType from models.account import Account from models.human_input import RecipientType @@ -157,9 +157,9 @@ def test_queue_workflow_paused_event_to_stream_responses(monkeypatch: pytest.Mon form_id="form-1", form_content="Rendered", inputs=[ - FormInput(type=FormInputType.TEXT_INPUT, output_variable_name="field", default=None), + ParagraphInputConfig(type=FormInputType.PARAGRAPH, output_variable_name="field", default=None), ], - actions=[UserAction(id="approve", title="Approve")], + actions=[UserActionConfig(id="approve", title="Approve")], node_id="node-id", node_title="Human Step", ) diff --git a/api/tests/unit_tests/core/entities/test_entities_execution_extra_content.py b/api/tests/unit_tests/core/entities/test_entities_execution_extra_content.py index ef8f360dbf..2642179992 100644 --- a/api/tests/unit_tests/core/entities/test_entities_execution_extra_content.py +++ b/api/tests/unit_tests/core/entities/test_entities_execution_extra_content.py @@ -4,7 +4,7 @@ from core.entities.execution_extra_content import ( HumanInputFormDefinition, HumanInputFormSubmissionData, ) -from graphon.nodes.human_input.entities import FormInput, UserAction +from graphon.nodes.human_input.entities import ParagraphInputConfig, UserActionConfig from graphon.nodes.human_input.enums import FormInputType from models.execution_extra_content import ExecutionContentType @@ -16,8 +16,8 @@ def test_human_input_content_defaults_and_domain_alias() -> None: node_id="node-1", node_title="Human Input", form_content="Please confirm", - inputs=[FormInput(type=FormInputType.TEXT_INPUT, output_variable_name="answer")], - actions=[UserAction(id="confirm", title="Confirm")], + inputs=[ParagraphInputConfig(type=FormInputType.PARAGRAPH, output_variable_name="answer")], + actions=[UserActionConfig(id="confirm", title="Confirm")], resolved_default_values={"answer": "yes"}, expiration_time=1_700_000_000, ) diff --git a/api/tests/unit_tests/core/repositories/test_human_input_form_repository_impl.py b/api/tests/unit_tests/core/repositories/test_human_input_form_repository_impl.py index 18ae9fafc8..a2e10d924c 100644 --- a/api/tests/unit_tests/core/repositories/test_human_input_form_repository_impl.py +++ b/api/tests/unit_tests/core/repositories/test_human_input_form_repository_impl.py @@ -23,7 +23,7 @@ from core.workflow.human_input_adapter import ( ) from graphon.nodes.human_input.entities import ( FormDefinition, - UserAction, + UserActionConfig, ) from graphon.nodes.human_input.enums import HumanInputFormKind, HumanInputFormStatus from libs.datetime_utils import naive_utc_now @@ -272,7 +272,7 @@ def _make_form_definition() -> str: return FormDefinition( form_content="hello", inputs=[], - user_actions=[UserAction(id="submit", title="Submit")], + user_actions=[UserActionConfig(id="submit", title="Submit")], rendered_content="

hello

", expiration_time=naive_utc_now(), ).model_dump_json() diff --git a/api/tests/unit_tests/core/repositories/test_human_input_repository.py b/api/tests/unit_tests/core/repositories/test_human_input_repository.py index 4248782d93..418537675d 100644 --- a/api/tests/unit_tests/core/repositories/test_human_input_repository.py +++ b/api/tests/unit_tests/core/repositories/test_human_input_repository.py @@ -29,7 +29,7 @@ from core.workflow.human_input_adapter import ( MemberRecipient, WebAppDeliveryMethod, ) -from graphon.nodes.human_input.entities import HumanInputNodeData, UserAction +from graphon.nodes.human_input.entities import HumanInputNodeData, UserActionConfig from graphon.nodes.human_input.enums import HumanInputFormKind, HumanInputFormStatus from libs.datetime_utils import naive_utc_now from models.human_input import HumanInputFormRecipient, RecipientType @@ -467,7 +467,7 @@ def test_create_form_adds_console_and_backstage_recipients(monkeypatch: pytest.M delivery_methods=[], form_content="hello", inputs=[], - user_actions=[UserAction(id="submit", title="Submit")], + user_actions=[UserActionConfig(id="submit", title="Submit")], ) params = FormCreateParams( workflow_execution_id=None, diff --git a/api/tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py b/api/tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py index 6156f7b576..fd6263be19 100644 --- a/api/tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py +++ b/api/tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py @@ -9,7 +9,7 @@ from core.repositories.human_input_repository import ( HumanInputFormEntity, HumanInputFormRepository, ) -from core.workflow.node_runtime import DifyHumanInputNodeRuntime +from core.workflow.node_runtime import DifyFileReferenceFactory, DifyHumanInputNodeRuntime from core.workflow.system_variables import build_system_variables from graphon.entities import WorkflowStartReason from graphon.graph import Graph @@ -24,7 +24,7 @@ from graphon.graph_events import ( from graphon.nodes.base.entities import OutputVariableEntity from graphon.nodes.end.end_node import EndNode from graphon.nodes.end.entities import EndNodeData -from graphon.nodes.human_input.entities import HumanInputNodeData, UserAction +from graphon.nodes.human_input.entities import HumanInputNodeData, UserActionConfig from graphon.nodes.human_input.enums import HumanInputFormStatus from graphon.nodes.human_input.human_input_node import HumanInputNode from graphon.nodes.start.entities import StartNodeData @@ -149,7 +149,7 @@ def _build_graph(runtime_state: GraphRuntimeState, repo: HumanInputFormRepositor title="Human Input", form_content="Human input required", inputs=[], - user_actions=[UserAction(id="approve", title="Approve")], + user_actions=[UserActionConfig(id="approve", title="Approve")], ) human_a_config = {"id": "human_a", "data": human_data.model_dump()} @@ -159,6 +159,7 @@ def _build_graph(runtime_state: GraphRuntimeState, repo: HumanInputFormRepositor graph_init_params=graph_init_params, graph_runtime_state=runtime_state, form_repository=repo, + file_reference_factory=DifyFileReferenceFactory(graph_init_params.run_context), runtime=DifyHumanInputNodeRuntime(graph_init_params.run_context), ) @@ -169,6 +170,7 @@ def _build_graph(runtime_state: GraphRuntimeState, repo: HumanInputFormRepositor graph_init_params=graph_init_params, graph_runtime_state=runtime_state, form_repository=repo, + file_reference_factory=DifyFileReferenceFactory(graph_init_params.run_context), runtime=DifyHumanInputNodeRuntime(graph_init_params.run_context), ) diff --git a/api/tests/unit_tests/core/workflow/nodes/human_input/test_entities.py b/api/tests/unit_tests/core/workflow/nodes/human_input/test_entities.py index 715292b85c..d96ecfd1c0 100644 --- a/api/tests/unit_tests/core/workflow/nodes/human_input/test_entities.py +++ b/api/tests/unit_tests/core/workflow/nodes/human_input/test_entities.py @@ -30,23 +30,23 @@ from core.workflow.human_input_adapter import ( WebAppDeliveryMethod, _WebAppDeliveryConfig, ) -from core.workflow.node_runtime import DifyHumanInputNodeRuntime +from core.workflow.node_runtime import DifyFileReferenceFactory, DifyHumanInputNodeRuntime from core.workflow.system_variables import build_system_variables from graphon.entities import GraphInitParams from graphon.node_events import PauseRequestedEvent from graphon.node_events.node import StreamCompletedEvent from graphon.nodes.human_input.entities import ( - FormInput, - FormInputDefault, HumanInputNodeData, - UserAction, + ParagraphInputConfig, + StringSource, + UserActionConfig, ) from graphon.nodes.human_input.enums import ( ButtonStyle, FormInputType, HumanInputFormStatus, - PlaceholderType, TimeoutUnit, + ValueSourceType, ) from graphon.nodes.human_input.human_input_node import HumanInputNode from graphon.runtime import GraphRuntimeState, VariablePool @@ -152,6 +152,7 @@ def _build_human_input_node( data=typed_node_data, graph_init_params=graph_init_params, graph_runtime_state=graph_runtime_state, + file_reference_factory=DifyFileReferenceFactory(graph_init_params.run_context), runtime=runtime, ) @@ -191,31 +192,35 @@ class TestDeliveryMethod: class TestFormInput: - """Test FormInput entity.""" + """Test ParagraphInputConfig entity.""" def test_text_input_with_constant_default(self): """Test text input with constant default value.""" - default = FormInputDefault(type=PlaceholderType.CONSTANT, value="Enter your response here...") + default = StringSource(type=ValueSourceType.CONSTANT, value="Enter your response here...") - form_input = FormInput(type=FormInputType.TEXT_INPUT, output_variable_name="user_input", default=default) + form_input = ParagraphInputConfig( + type=FormInputType.PARAGRAPH, output_variable_name="user_input", default=default + ) - assert form_input.type == FormInputType.TEXT_INPUT + assert form_input.type == FormInputType.PARAGRAPH assert form_input.output_variable_name == "user_input" - assert form_input.default.type == PlaceholderType.CONSTANT + assert form_input.default.type == ValueSourceType.CONSTANT assert form_input.default.value == "Enter your response here..." def test_text_input_with_variable_default(self): """Test text input with variable default value.""" - default = FormInputDefault(type=PlaceholderType.VARIABLE, selector=["node_123", "output_var"]) + default = StringSource(type=ValueSourceType.VARIABLE, selector=["node_123", "output_var"]) - form_input = FormInput(type=FormInputType.TEXT_INPUT, output_variable_name="user_input", default=default) + form_input = ParagraphInputConfig( + type=FormInputType.PARAGRAPH, output_variable_name="user_input", default=default + ) - assert form_input.default.type == PlaceholderType.VARIABLE + assert form_input.default.type == ValueSourceType.VARIABLE assert form_input.default.selector == ["node_123", "output_var"] def test_form_input_without_default(self): """Test form input without default value.""" - form_input = FormInput(type=FormInputType.PARAGRAPH, output_variable_name="description") + form_input = ParagraphInputConfig(type=FormInputType.PARAGRAPH, output_variable_name="description") assert form_input.type == FormInputType.PARAGRAPH assert form_input.output_variable_name == "description" @@ -223,11 +228,11 @@ class TestFormInput: class TestUserAction: - """Test UserAction entity.""" + """Test UserActionConfig entity.""" def test_user_action_creation(self): """Test user action creation.""" - action = UserAction(id="approve", title="Approve", button_style=ButtonStyle.PRIMARY) + action = UserActionConfig(id="approve", title="Approve", button_style=ButtonStyle.PRIMARY) assert action.id == "approve" assert action.title == "Approve" @@ -235,13 +240,13 @@ class TestUserAction: def test_user_action_default_button_style(self): """Test user action with default button style.""" - action = UserAction(id="cancel", title="Cancel") + action = UserActionConfig(id="cancel", title="Cancel") assert action.button_style == ButtonStyle.DEFAULT def test_user_action_length_boundaries(self): """Test user action id and title length boundaries.""" - action = UserAction(id="a" * 20, title="b" * 100) + action = UserActionConfig(id="a" * 20, title="b" * 100) assert action.id == "a" * 20 assert action.title == "b" * 100 @@ -259,7 +264,7 @@ class TestUserAction: data[field_name] = value with pytest.raises(ValidationError) as exc_info: - UserAction.model_validate(data) + UserActionConfig.model_validate(data) errors = exc_info.value.errors() assert any(error["loc"] == (field_name,) and error["type"] == "string_too_long" for error in errors) @@ -273,14 +278,14 @@ class TestHumanInputNodeData: delivery_methods = [WebAppDeliveryMethod(enabled=True, config=_WebAppDeliveryConfig())] inputs = [ - FormInput( - type=FormInputType.TEXT_INPUT, + ParagraphInputConfig( + type=FormInputType.PARAGRAPH, output_variable_name="content", - default=FormInputDefault(type=PlaceholderType.CONSTANT, value="Enter content..."), + default=StringSource(type=ValueSourceType.CONSTANT, value="Enter content..."), ) ] - user_actions = [UserAction(id="submit", title="Submit", button_style=ButtonStyle.PRIMARY)] + user_actions = [UserActionConfig(id="submit", title="Submit", button_style=ButtonStyle.PRIMARY)] node_data = HumanInputNodeData( title="Human Input Test", @@ -338,8 +343,8 @@ class TestHumanInputNodeData: def test_duplicate_input_output_variable_name_raises_validation_error(self): """Duplicate form input output_variable_name should raise validation error.""" duplicate_inputs = [ - FormInput(type=FormInputType.TEXT_INPUT, output_variable_name="content"), - FormInput(type=FormInputType.TEXT_INPUT, output_variable_name="content"), + ParagraphInputConfig(type=FormInputType.PARAGRAPH, output_variable_name="content"), + ParagraphInputConfig(type=FormInputType.PARAGRAPH, output_variable_name="content"), ] with pytest.raises(ValidationError, match="duplicated output_variable_name 'content'"): @@ -348,8 +353,8 @@ class TestHumanInputNodeData: def test_duplicate_user_action_ids_raise_validation_error(self): """Duplicate user action ids should raise validation error.""" duplicate_actions = [ - UserAction(id="submit", title="Submit"), - UserAction(id="submit", title="Submit Again"), + UserActionConfig(id="submit", title="Submit"), + UserActionConfig(id="submit", title="Submit Again"), ] with pytest.raises(ValidationError, match="duplicated user action id 'submit'"): @@ -458,18 +463,18 @@ class TestHumanInputNodeVariableResolution: title="Human Input", form_content="Provide your name", inputs=[ - FormInput( - type=FormInputType.TEXT_INPUT, + ParagraphInputConfig( + type=FormInputType.PARAGRAPH, output_variable_name="user_name", - default=FormInputDefault(type=PlaceholderType.VARIABLE, selector=["start", "name"]), + default=StringSource(type=ValueSourceType.VARIABLE, selector=["start", "name"]), ), - FormInput( - type=FormInputType.TEXT_INPUT, + ParagraphInputConfig( + type=FormInputType.PARAGRAPH, output_variable_name="user_email", - default=FormInputDefault(type=PlaceholderType.CONSTANT, value="foo@example.com"), + default=StringSource(type=ValueSourceType.CONSTANT, value="foo@example.com"), ), ], - user_actions=[UserAction(id="submit", title="Submit")], + user_actions=[UserActionConfig(id="submit", title="Submit")], ) config = {"id": "human", "data": node_data.model_dump()} @@ -534,7 +539,7 @@ class TestHumanInputNodeVariableResolution: title="Human Input", form_content="Provide your name", inputs=[], - user_actions=[UserAction(id="submit", title="Submit")], + user_actions=[UserActionConfig(id="submit", title="Submit")], ) config = {"id": "human", "data": node_data.model_dump()} @@ -661,7 +666,7 @@ class TestHumanInputNodeVariableResolution: title="Human Input", form_content="Provide your name", inputs=[], - user_actions=[UserAction(id="submit", title="Submit")], + user_actions=[UserActionConfig(id="submit", title="Submit")], delivery_methods=[ EmailDeliveryMethod( enabled=True, @@ -721,7 +726,7 @@ class TestValidation: def test_invalid_form_input_type(self): """Test validation with invalid form input type.""" with pytest.raises(ValidationError): - FormInput( + ParagraphInputConfig( type="invalid-type", # Invalid type output_variable_name="test", ) @@ -729,7 +734,7 @@ class TestValidation: def test_invalid_button_style(self): """Test validation with invalid button style.""" with pytest.raises(ValidationError): - UserAction( + UserActionConfig( id="test", title="Test", button_style="invalid-style", # Invalid style @@ -778,12 +783,12 @@ class TestHumanInputNodeRenderedContent: title="Human Input", form_content="Name: {{#$output.name#}}", inputs=[ - FormInput( - type=FormInputType.TEXT_INPUT, + ParagraphInputConfig( + type=FormInputType.PARAGRAPH, output_variable_name="name", ) ], - user_actions=[UserAction(id="approve", title="Approve")], + user_actions=[UserActionConfig(id="approve", title="Approve")], ) config = {"id": "human", "data": node_data.model_dump()} @@ -810,4 +815,4 @@ class TestHumanInputNodeRenderedContent: last_event = events[-1] assert isinstance(last_event, StreamCompletedEvent) node_run_result = last_event.node_run_result - assert node_run_result.outputs["__rendered_content"] == "Name: Alice" + assert node_run_result.outputs["__rendered_content"].to_object() == "Name: Alice" diff --git a/api/tests/unit_tests/core/workflow/nodes/human_input/test_human_input_form_filled_event.py b/api/tests/unit_tests/core/workflow/nodes/human_input/test_human_input_form_filled_event.py index 741b104393..40522a0d4f 100644 --- a/api/tests/unit_tests/core/workflow/nodes/human_input/test_human_input_form_filled_event.py +++ b/api/tests/unit_tests/core/workflow/nodes/human_input/test_human_input_form_filled_event.py @@ -2,7 +2,7 @@ import datetime from types import SimpleNamespace from core.app.entities.app_invoke_entities import DIFY_RUN_CONTEXT_KEY, InvokeFrom, UserFrom -from core.workflow.node_runtime import DifyHumanInputNodeRuntime +from core.workflow.node_runtime import DifyFileReferenceFactory, DifyHumanInputNodeRuntime from core.workflow.system_variables import default_system_variables from graphon.entities import GraphInitParams from graphon.enums import BuiltinNodeTypes @@ -44,6 +44,7 @@ def _create_human_input_node( graph_init_params=graph_init_params, graph_runtime_state=graph_runtime_state, form_repository=repo, + file_reference_factory=DifyFileReferenceFactory(graph_init_params.run_context), runtime=DifyHumanInputNodeRuntime(graph_init_params.run_context), ) @@ -81,7 +82,7 @@ def _build_node(form_content: str = "Please enter your name:\n\n{{#$output.name# "form_content": form_content, "inputs": [ { - "type": "text_input", + "type": "paragraph", "output_variable_name": "name", "default": {"type": "constant", "value": ""}, } @@ -148,7 +149,7 @@ def _build_timeout_node() -> HumanInputNode: "form_content": "Please enter your name:\n\n{{#$output.name#}}", "inputs": [ { - "type": "text_input", + "type": "paragraph", "output_variable_name": "name", "default": {"type": "constant", "value": ""}, } diff --git a/api/tests/unit_tests/core/workflow/test_human_input_adapter.py b/api/tests/unit_tests/core/workflow/test_human_input_adapter.py index 51049f8792..e4234863f4 100644 --- a/api/tests/unit_tests/core/workflow/test_human_input_adapter.py +++ b/api/tests/unit_tests/core/workflow/test_human_input_adapter.py @@ -141,6 +141,20 @@ def test_adapt_node_data_for_graph_only_rewrites_human_input_nodes() -> None: assert other_node == {"type": "answer", "delivery_methods": "unchanged"} +def test_adapt_human_input_node_data_for_graph_normalizes_legacy_text_inputs() -> None: + normalized = adapt_human_input_node_data_for_graph( + { + "inputs": [ + {"type": "text-input", "output_variable_name": "from_frontend"}, + {"type": "text_input", "output_variable_name": "from_graphon_0_3"}, + {"type": "paragraph", "output_variable_name": "current"}, + ] + } + ) + + assert [item["type"] for item in normalized["inputs"]] == ["paragraph", "paragraph", "paragraph"] + + def test_adapt_node_data_for_graph_migrates_legacy_tool_configurations() -> None: normalized = adapt_node_data_for_graph( { diff --git a/api/tests/unit_tests/core/workflow/test_node_factory.py b/api/tests/unit_tests/core/workflow/test_node_factory.py index d6159e84d4..0821419067 100644 --- a/api/tests/unit_tests/core/workflow/test_node_factory.py +++ b/api/tests/unit_tests/core/workflow/test_node_factory.py @@ -550,6 +550,7 @@ class TestDifyNodeFactoryCreateNode: assert kwargs["file_reference_factory"] is sentinel.file_reference_factory elif constructor_name == "HumanInputNode": assert kwargs["form_repository"] is form_repository + assert kwargs["file_reference_factory"] is sentinel.file_reference_factory assert kwargs["runtime"] is factory._human_input_runtime factory._human_input_runtime.build_form_repository.assert_called_once_with() elif constructor_name == "DocumentExtractorNode": diff --git a/api/tests/unit_tests/libs/_human_input/support.py b/api/tests/unit_tests/libs/_human_input/support.py index e6cc23161e..6616cec9b8 100644 --- a/api/tests/unit_tests/libs/_human_input/support.py +++ b/api/tests/unit_tests/libs/_human_input/support.py @@ -4,7 +4,7 @@ from dataclasses import dataclass, field from datetime import datetime, timedelta from typing import Any -from graphon.nodes.human_input.entities import FormInput +from graphon.nodes.human_input.entities import ParagraphInputConfig from graphon.nodes.human_input.enums import TimeoutUnit from libs.datetime_utils import naive_utc_now @@ -45,7 +45,7 @@ class HumanInputForm: tenant_id: str app_id: str | None form_content: str - inputs: list[FormInput] + inputs: list[ParagraphInputConfig] user_actions: list[dict[str, Any]] timeout: int timeout_unit: TimeoutUnit diff --git a/api/tests/unit_tests/libs/_human_input/test_form_service.py b/api/tests/unit_tests/libs/_human_input/test_form_service.py index fa2c02020b..d552896b2d 100644 --- a/api/tests/unit_tests/libs/_human_input/test_form_service.py +++ b/api/tests/unit_tests/libs/_human_input/test_form_service.py @@ -7,8 +7,8 @@ from datetime import timedelta import pytest from graphon.nodes.human_input.entities import ( - FormInput, - UserAction, + ParagraphInputConfig, + UserActionConfig, ) from graphon.nodes.human_input.enums import ( FormInputType, @@ -50,8 +50,8 @@ class TestFormService: "tenant_id": "tenant-abc", "app_id": "app-def", "form_content": "# Test Form\n\nInput: {{#$output.input#}}", - "inputs": [FormInput(type=FormInputType.TEXT_INPUT, output_variable_name="input", default=None)], - "user_actions": [UserAction(id="submit", title="Submit")], + "inputs": [ParagraphInputConfig(type=FormInputType.PARAGRAPH, output_variable_name="input", default=None)], + "user_actions": [UserActionConfig(id="submit", title="Submit")], "timeout": 1, "timeout_unit": TimeoutUnit.HOUR, "form_token": "token-xyz", @@ -304,8 +304,12 @@ class TestFormValidation: "tenant_id": "tenant-abc", "app_id": "app-def", "form_content": "Test form", - "inputs": [FormInput(type=FormInputType.TEXT_INPUT, output_variable_name="required_input", default=None)], - "user_actions": [UserAction(id="submit", title="Submit")], + "inputs": [ + ParagraphInputConfig( + type=FormInputType.PARAGRAPH, output_variable_name="required_input", default=None + ) + ], + "user_actions": [UserActionConfig(id="submit", title="Submit")], "timeout": 1, "timeout_unit": TimeoutUnit.HOUR, } diff --git a/api/tests/unit_tests/libs/_human_input/test_models.py b/api/tests/unit_tests/libs/_human_input/test_models.py index 866ee61b3e..1413eed51f 100644 --- a/api/tests/unit_tests/libs/_human_input/test_models.py +++ b/api/tests/unit_tests/libs/_human_input/test_models.py @@ -7,8 +7,8 @@ from datetime import datetime, timedelta import pytest from graphon.nodes.human_input.entities import ( - FormInput, - UserAction, + ParagraphInputConfig, + UserActionConfig, ) from graphon.nodes.human_input.enums import ( FormInputType, @@ -32,8 +32,8 @@ class TestHumanInputForm: "tenant_id": "tenant-abc", "app_id": "app-def", "form_content": "# Test Form\n\nInput: {{#$output.input#}}", - "inputs": [FormInput(type=FormInputType.TEXT_INPUT, output_variable_name="input", default=None)], - "user_actions": [UserAction(id="submit", title="Submit")], + "inputs": [ParagraphInputConfig(type=FormInputType.PARAGRAPH, output_variable_name="input", default=None)], + "user_actions": [UserActionConfig(id="submit", title="Submit")], "timeout": 2, "timeout_unit": TimeoutUnit.HOUR, "form_token": "token-xyz", @@ -132,7 +132,7 @@ class TestHumanInputForm: assert "site" not in response assert response["form_content"] == "# Test Form\n\nInput: {{#$output.input#}}" assert len(response["inputs"]) == 1 - assert response["inputs"][0]["type"] == "text-input" + assert response["inputs"][0]["type"] == "paragraph" assert response["inputs"][0]["output_variable_name"] == "input" def test_form_to_response_dict_with_site_info(self, sample_form_data): diff --git a/api/tests/unit_tests/repositories/test_sqlalchemy_api_workflow_run_repository.py b/api/tests/unit_tests/repositories/test_sqlalchemy_api_workflow_run_repository.py index ac4b087b91..8f27d0938d 100644 --- a/api/tests/unit_tests/repositories/test_sqlalchemy_api_workflow_run_repository.py +++ b/api/tests/unit_tests/repositories/test_sqlalchemy_api_workflow_run_repository.py @@ -3,7 +3,7 @@ from __future__ import annotations from datetime import UTC, datetime from types import SimpleNamespace -from graphon.nodes.human_input.entities import FormDefinition, FormInput, UserAction +from graphon.nodes.human_input.entities import FormDefinition, ParagraphInputConfig, UserActionConfig from graphon.nodes.human_input.enums import FormInputType from models.human_input import RecipientType from repositories.sqlalchemy_api_workflow_run_repository import _build_human_input_required_reason @@ -13,8 +13,8 @@ def _build_form_model() -> SimpleNamespace: expiration_time = datetime(2024, 1, 1, tzinfo=UTC) definition = FormDefinition( form_content="content", - inputs=[FormInput(type=FormInputType.TEXT_INPUT, output_variable_name="name")], - user_actions=[UserAction(id="approve", title="Approve")], + inputs=[ParagraphInputConfig(type=FormInputType.PARAGRAPH, output_variable_name="name")], + user_actions=[UserActionConfig(id="approve", title="Approve")], rendered_content="rendered", expiration_time=expiration_time, default_values={"name": "Alice"}, diff --git a/api/tests/unit_tests/services/test_human_input_service.py b/api/tests/unit_tests/services/test_human_input_service.py index 9fc818f789..b6370c0365 100644 --- a/api/tests/unit_tests/services/test_human_input_service.py +++ b/api/tests/unit_tests/services/test_human_input_service.py @@ -12,8 +12,8 @@ from core.repositories.human_input_repository import ( ) from graphon.nodes.human_input.entities import ( FormDefinition, - FormInput, - UserAction, + ParagraphInputConfig, + UserActionConfig, ) from graphon.nodes.human_input.enums import FormInputType, HumanInputFormKind, HumanInputFormStatus from libs.datetime_utils import naive_utc_now @@ -51,7 +51,7 @@ def sample_form_record(): definition=FormDefinition( form_content="hello", inputs=[], - user_actions=[UserAction(id="submit", title="Submit")], + user_actions=[UserActionConfig(id="submit", title="Submit")], rendered_content="

hello

", expiration_time=naive_utc_now() + timedelta(hours=1), ), @@ -280,7 +280,7 @@ def test_submit_form_by_token_missing_inputs(sample_form_record, mock_session_fa definition_with_input = FormDefinition( form_content="hello", - inputs=[FormInput(type=FormInputType.TEXT_INPUT, output_variable_name="content")], + inputs=[ParagraphInputConfig(type=FormInputType.PARAGRAPH, output_variable_name="content")], user_actions=sample_form_record.definition.user_actions, rendered_content="

hello

", expiration_time=sample_form_record.expiration_time, diff --git a/api/uv.lock b/api/uv.lock index c1e4cf9db0..9521bd1eb8 100644 --- a/api/uv.lock +++ b/api/uv.lock @@ -1597,7 +1597,7 @@ requires-dist = [ { name = "gmpy2", specifier = ">=2.3.0" }, { name = "google-api-python-client", specifier = ">=2.196.0" }, { name = "google-cloud-aiplatform", specifier = ">=1.151.0,<2.0.0" }, - { name = "graphon", specifier = "~=0.3.1" }, + { name = "graphon", specifier = "~=0.4.0" }, { name = "gunicorn", specifier = ">=26.0.0" }, { name = "httpx", extras = ["socks"], specifier = ">=0.28.1,<1.0.0" }, { name = "httpx-sse", specifier = "~=0.4.0" }, @@ -2940,7 +2940,7 @@ httpx = [ [[package]] name = "graphon" -version = "0.3.1" +version = "0.4.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "charset-normalizer" }, @@ -2961,9 +2961,9 @@ dependencies = [ { name = "unstructured", extra = ["docx", "epub", "md", "ppt", "pptx"] }, { name = "webvtt-py" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/5a/ef/43217842e84160acca64a95858f1689389a50e04a53fc94f2aa836b4eaf7/graphon-0.3.1.tar.gz", hash = "sha256:49971baed1eb16c8e1983f755e659902e4f117a68dc62fad19e91472950b937d", size = 242210, upload-time = "2026-05-07T06:58:21.879Z" } +sdist = { url = "https://files.pythonhosted.org/packages/76/24/eb1e7983404dcac84816b76ea450e1bb97023e55e00c699d609340bc361e/graphon-0.4.0.tar.gz", hash = "sha256:afb0c7a58f89e09cfa585296429b4d08cd0df80b9ac54d550f88e7d76ec48ee0", size = 261812, upload-time = "2026-05-13T11:48:39.198Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/62/37/bef16ed3d6da7446b36769fa388f4dc79f95337ffa16d6dfc3177152507e/graphon-0.3.1-py3-none-any.whl", hash = "sha256:e6422c7e3f1ce7d2185979c17e08201816ca25d46d400ebdd035c95d501c04fe", size = 349368, upload-time = "2026-05-07T06:58:20.217Z" }, + { url = "https://files.pythonhosted.org/packages/b7/de/bad6b3fd1e4b4defc16e6ea106e55c44725a159f1d191a99877bce1c9931/graphon-0.4.0-py3-none-any.whl", hash = "sha256:b33f95886da823d5b1b53d663a4f5f8fa383c37740f3bd19297b8d140fcb804c", size = 372711, upload-time = "2026-05-13T11:48:37.712Z" }, ] [[package]] diff --git a/packages/contracts/generated/api/console/account/types.gen.ts b/packages/contracts/generated/api/console/account/types.gen.ts index 9021d4c8fb..6ccac5f94a 100644 --- a/packages/contracts/generated/api/console/account/types.gen.ts +++ b/packages/contracts/generated/api/console/account/types.gen.ts @@ -92,7 +92,7 @@ export type AccountInterfaceLanguagePayload = { } export type AccountInterfaceThemePayload = { - interface_theme: 'light' | 'dark' + interface_theme: 'dark' | 'light' } export type AccountNamePayload = { diff --git a/packages/contracts/generated/api/console/account/zod.gen.ts b/packages/contracts/generated/api/console/account/zod.gen.ts index befa7c27c6..18afef9541 100644 --- a/packages/contracts/generated/api/console/account/zod.gen.ts +++ b/packages/contracts/generated/api/console/account/zod.gen.ts @@ -131,7 +131,7 @@ export const zAccountInterfaceLanguagePayload = z.object({ * AccountInterfaceThemePayload */ export const zAccountInterfaceThemePayload = z.object({ - interface_theme: z.enum(['light', 'dark']), + interface_theme: z.enum(['dark', 'light']), }) /** diff --git a/packages/contracts/generated/api/console/apps/orpc.gen.ts b/packages/contracts/generated/api/console/apps/orpc.gen.ts index 069976904d..e3ebc473a9 100644 --- a/packages/contracts/generated/api/console/apps/orpc.gen.ts +++ b/packages/contracts/generated/api/console/apps/orpc.gen.ts @@ -194,8 +194,6 @@ import { zGetAppsImportsByAppIdCheckDependenciesResponse, zGetAppsQuery, zGetAppsResponse, - zGetAppsWorkflowsOnlineUsersQuery, - zGetAppsWorkflowsOnlineUsersResponse, zPatchAppsByAppIdTraceConfigBody, zPatchAppsByAppIdTraceConfigPath, zPatchAppsByAppIdTraceConfigResponse, @@ -353,6 +351,8 @@ import { zPostAppsImportsByImportIdConfirmResponse, zPostAppsImportsResponse, zPostAppsResponse, + zPostAppsWorkflowsOnlineUsersBody, + zPostAppsWorkflowsOnlineUsersResponse, zPutAppsByAppIdBody, zPutAppsByAppIdPath, zPutAppsByAppIdResponse, @@ -427,20 +427,20 @@ export const imports = { /** * Get workflow online users */ -export const get2 = oc +export const post3 = oc .route({ description: 'Get workflow online users', inputStructure: 'detailed', - method: 'GET', - operationId: 'getAppsWorkflowsOnlineUsers', + method: 'POST', + operationId: 'postAppsWorkflowsOnlineUsers', path: '/apps/workflows/online-users', tags: ['console'], }) - .input(z.object({ query: zGetAppsWorkflowsOnlineUsersQuery })) - .output(zGetAppsWorkflowsOnlineUsersResponse) + .input(z.object({ body: zPostAppsWorkflowsOnlineUsersBody })) + .output(zPostAppsWorkflowsOnlineUsersResponse) export const onlineUsers = { - get: get2, + post: post3, } export const workflows = { @@ -452,7 +452,7 @@ export const workflows = { * * Get advanced chat workflow runs count statistics */ -export const get3 = oc +export const get2 = oc .route({ description: 'Get advanced chat workflow runs count statistics', inputStructure: 'detailed', @@ -471,7 +471,7 @@ export const get3 = oc .output(zGetAppsByAppIdAdvancedChatWorkflowRunsCountResponse) export const count = { - get: get3, + get: get2, } /** @@ -479,7 +479,7 @@ export const count = { * * Get advanced chat workflow run list */ -export const get4 = oc +export const get3 = oc .route({ description: 'Get advanced chat workflow run list', inputStructure: 'detailed', @@ -498,7 +498,7 @@ export const get4 = oc .output(zGetAppsByAppIdAdvancedChatWorkflowRunsResponse) export const workflowRuns = { - get: get4, + get: get3, count, } @@ -507,7 +507,7 @@ export const workflowRuns = { * * Get human input form preview for advanced chat workflow */ -export const post3 = oc +export const post4 = oc .route({ description: 'Get human input form preview for advanced chat workflow', inputStructure: 'detailed', @@ -526,7 +526,7 @@ export const post3 = oc .output(zPostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormPreviewResponse) export const preview = { - post: post3, + post: post4, } /** @@ -534,7 +534,7 @@ export const preview = { * * Submit human input form preview for advanced chat workflow */ -export const post4 = oc +export const post5 = oc .route({ description: 'Submit human input form preview for advanced chat workflow', inputStructure: 'detailed', @@ -553,7 +553,7 @@ export const post4 = oc .output(zPostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormRunResponse) export const run = { - post: post4, + post: post5, } export const form = { @@ -578,7 +578,7 @@ export const humanInput = { * * Run draft workflow iteration node for advanced chat */ -export const post5 = oc +export const post6 = oc .route({ description: 'Run draft workflow iteration node for advanced chat', inputStructure: 'detailed', @@ -597,7 +597,7 @@ export const post5 = oc .output(zPostAppsByAppIdAdvancedChatWorkflowsDraftIterationNodesByNodeIdRunResponse) export const run2 = { - post: post5, + post: post6, } export const byNodeId2 = { @@ -617,7 +617,7 @@ export const iteration = { * * Run draft workflow loop node for advanced chat */ -export const post6 = oc +export const post7 = oc .route({ description: 'Run draft workflow loop node for advanced chat', inputStructure: 'detailed', @@ -636,7 +636,7 @@ export const post6 = oc .output(zPostAppsByAppIdAdvancedChatWorkflowsDraftLoopNodesByNodeIdRunResponse) export const run3 = { - post: post6, + post: post7, } export const byNodeId3 = { @@ -656,7 +656,7 @@ export const loop = { * * Run draft workflow for advanced chat application */ -export const post7 = oc +export const post8 = oc .route({ description: 'Run draft workflow for advanced chat application', inputStructure: 'detailed', @@ -675,7 +675,7 @@ export const post7 = oc .output(zPostAppsByAppIdAdvancedChatWorkflowsDraftRunResponse) export const run4 = { - post: post7, + post: post8, } export const draft = { @@ -699,7 +699,7 @@ export const advancedChat = { * * Get agent execution logs for an application */ -export const get5 = oc +export const get4 = oc .route({ description: 'Get agent execution logs for an application', inputStructure: 'detailed', @@ -713,7 +713,7 @@ export const get5 = oc .output(zGetAppsByAppIdAgentLogsResponse) export const logs = { - get: get5, + get: get4, } export const agent = { @@ -723,7 +723,7 @@ export const agent = { /** * Get status of annotation reply action job */ -export const get6 = oc +export const get5 = oc .route({ description: 'Get status of annotation reply action job', inputStructure: 'detailed', @@ -736,7 +736,7 @@ export const get6 = oc .output(zGetAppsByAppIdAnnotationReplyByActionStatusByJobIdResponse) export const byJobId = { - get: get6, + get: get5, } export const status = { @@ -746,7 +746,7 @@ export const status = { /** * Enable or disable annotation reply for an app */ -export const post8 = oc +export const post9 = oc .route({ description: 'Enable or disable annotation reply for an app', inputStructure: 'detailed', @@ -764,7 +764,7 @@ export const post8 = oc .output(zPostAppsByAppIdAnnotationReplyByActionResponse) export const byAction = { - post: post8, + post: post9, status, } @@ -775,7 +775,7 @@ export const annotationReply = { /** * Get annotation settings for an app */ -export const get7 = oc +export const get6 = oc .route({ description: 'Get annotation settings for an app', inputStructure: 'detailed', @@ -788,13 +788,13 @@ export const get7 = oc .output(zGetAppsByAppIdAnnotationSettingResponse) export const annotationSetting = { - get: get7, + get: get6, } /** * Update annotation settings for an app */ -export const post9 = oc +export const post10 = oc .route({ description: 'Update annotation settings for an app', inputStructure: 'detailed', @@ -812,7 +812,7 @@ export const post9 = oc .output(zPostAppsByAppIdAnnotationSettingsByAnnotationSettingIdResponse) export const byAnnotationSettingId = { - post: post9, + post: post10, } export const annotationSettings = { @@ -822,7 +822,7 @@ export const annotationSettings = { /** * Batch import annotations from CSV file with rate limiting and security checks */ -export const post10 = oc +export const post11 = oc .route({ description: 'Batch import annotations from CSV file with rate limiting and security checks', inputStructure: 'detailed', @@ -835,13 +835,13 @@ export const post10 = oc .output(zPostAppsByAppIdAnnotationsBatchImportResponse) export const batchImport = { - post: post10, + post: post11, } /** * Get status of batch import job */ -export const get8 = oc +export const get7 = oc .route({ description: 'Get status of batch import job', inputStructure: 'detailed', @@ -854,7 +854,7 @@ export const get8 = oc .output(zGetAppsByAppIdAnnotationsBatchImportStatusByJobIdResponse) export const byJobId2 = { - get: get8, + get: get7, } export const batchImportStatus = { @@ -864,7 +864,7 @@ export const batchImportStatus = { /** * Get count of message annotations for the app */ -export const get9 = oc +export const get8 = oc .route({ description: 'Get count of message annotations for the app', inputStructure: 'detailed', @@ -877,13 +877,13 @@ export const get9 = oc .output(zGetAppsByAppIdAnnotationsCountResponse) export const count2 = { - get: get9, + get: get8, } /** * Export all annotations for an app with CSV injection protection */ -export const get10 = oc +export const get9 = oc .route({ description: 'Export all annotations for an app with CSV injection protection', inputStructure: 'detailed', @@ -896,13 +896,13 @@ export const get10 = oc .output(zGetAppsByAppIdAnnotationsExportResponse) export const export_ = { - get: get10, + get: get9, } /** * Get hit histories for an annotation */ -export const get11 = oc +export const get10 = oc .route({ description: 'Get hit histories for an annotation', inputStructure: 'detailed', @@ -920,7 +920,7 @@ export const get11 = oc .output(zGetAppsByAppIdAnnotationsByAnnotationIdHitHistoriesResponse) export const hitHistories = { - get: get11, + get: get10, } export const delete_ = oc @@ -937,7 +937,7 @@ export const delete_ = oc /** * Update or delete an annotation */ -export const post11 = oc +export const post12 = oc .route({ description: 'Update or delete an annotation', inputStructure: 'detailed', @@ -956,7 +956,7 @@ export const post11 = oc export const byAnnotationId = { delete: delete_, - post: post11, + post: post12, hitHistories, } @@ -974,7 +974,7 @@ export const delete2 = oc /** * Get annotations for an app with pagination */ -export const get12 = oc +export const get11 = oc .route({ description: 'Get annotations for an app with pagination', inputStructure: 'detailed', @@ -994,7 +994,7 @@ export const get12 = oc /** * Create a new annotation for an app */ -export const post12 = oc +export const post13 = oc .route({ description: 'Create a new annotation for an app', inputStructure: 'detailed', @@ -1011,8 +1011,8 @@ export const post12 = oc export const annotations = { delete: delete2, - get: get12, - post: post12, + get: get11, + post: post13, batchImport, batchImportStatus, count: count2, @@ -1023,7 +1023,7 @@ export const annotations = { /** * Enable or disable app API */ -export const post13 = oc +export const post14 = oc .route({ description: 'Enable or disable app API', inputStructure: 'detailed', @@ -1036,13 +1036,13 @@ export const post13 = oc .output(zPostAppsByAppIdApiEnableResponse) export const apiEnable = { - post: post13, + post: post14, } /** * Transcript audio to text for chat messages */ -export const post14 = oc +export const post15 = oc .route({ description: 'Transcript audio to text for chat messages', inputStructure: 'detailed', @@ -1055,7 +1055,7 @@ export const post14 = oc .output(zPostAppsByAppIdAudioToTextResponse) export const audioToText = { - post: post14, + post: post15, } /** @@ -1077,7 +1077,7 @@ export const delete3 = oc /** * Get chat conversation details */ -export const get13 = oc +export const get12 = oc .route({ description: 'Get chat conversation details', inputStructure: 'detailed', @@ -1091,13 +1091,13 @@ export const get13 = oc export const byConversationId = { delete: delete3, - get: get13, + get: get12, } /** * Get chat conversations with pagination, filtering and summary */ -export const get14 = oc +export const get13 = oc .route({ description: 'Get chat conversations with pagination, filtering and summary', inputStructure: 'detailed', @@ -1115,14 +1115,14 @@ export const get14 = oc .output(zGetAppsByAppIdChatConversationsResponse) export const chatConversations = { - get: get14, + get: get13, byConversationId, } /** * Get suggested questions for a message */ -export const get15 = oc +export const get14 = oc .route({ description: 'Get suggested questions for a message', inputStructure: 'detailed', @@ -1135,7 +1135,7 @@ export const get15 = oc .output(zGetAppsByAppIdChatMessagesByMessageIdSuggestedQuestionsResponse) export const suggestedQuestions = { - get: get15, + get: get14, } export const byMessageId = { @@ -1145,7 +1145,7 @@ export const byMessageId = { /** * Stop a running chat message generation */ -export const post15 = oc +export const post16 = oc .route({ description: 'Stop a running chat message generation', inputStructure: 'detailed', @@ -1158,7 +1158,7 @@ export const post15 = oc .output(zPostAppsByAppIdChatMessagesByTaskIdStopResponse) export const stop = { - post: post15, + post: post16, } export const byTaskId = { @@ -1168,7 +1168,7 @@ export const byTaskId = { /** * Get chat messages for a conversation with pagination */ -export const get16 = oc +export const get15 = oc .route({ description: 'Get chat messages for a conversation with pagination', inputStructure: 'detailed', @@ -1183,7 +1183,7 @@ export const get16 = oc .output(zGetAppsByAppIdChatMessagesResponse) export const chatMessages = { - get: get16, + get: get15, byMessageId, byTaskId, } @@ -1207,7 +1207,7 @@ export const delete4 = oc /** * Get completion conversation details with messages */ -export const get17 = oc +export const get16 = oc .route({ description: 'Get completion conversation details with messages', inputStructure: 'detailed', @@ -1221,13 +1221,13 @@ export const get17 = oc export const byConversationId2 = { delete: delete4, - get: get17, + get: get16, } /** * Get completion conversations with pagination and filtering */ -export const get18 = oc +export const get17 = oc .route({ description: 'Get completion conversations with pagination and filtering', inputStructure: 'detailed', @@ -1245,14 +1245,14 @@ export const get18 = oc .output(zGetAppsByAppIdCompletionConversationsResponse) export const completionConversations = { - get: get18, + get: get17, byConversationId: byConversationId2, } /** * Stop a running completion message generation */ -export const post16 = oc +export const post17 = oc .route({ description: 'Stop a running completion message generation', inputStructure: 'detailed', @@ -1265,7 +1265,7 @@ export const post16 = oc .output(zPostAppsByAppIdCompletionMessagesByTaskIdStopResponse) export const stop2 = { - post: post16, + post: post17, } export const byTaskId2 = { @@ -1275,7 +1275,7 @@ export const byTaskId2 = { /** * Generate completion message for debugging */ -export const post17 = oc +export const post18 = oc .route({ description: 'Generate completion message for debugging', inputStructure: 'detailed', @@ -1293,14 +1293,14 @@ export const post17 = oc .output(zPostAppsByAppIdCompletionMessagesResponse) export const completionMessages = { - post: post17, + post: post18, byTaskId: byTaskId2, } /** * Get conversation variables for an application */ -export const get19 = oc +export const get18 = oc .route({ description: 'Get conversation variables for an application', inputStructure: 'detailed', @@ -1318,7 +1318,7 @@ export const get19 = oc .output(zGetAppsByAppIdConversationVariablesResponse) export const conversationVariables = { - get: get19, + get: get18, } /** @@ -1328,7 +1328,7 @@ export const conversationVariables = { * Convert expert mode of chatbot app to workflow mode * Convert Completion App to Workflow App */ -export const post18 = oc +export const post19 = oc .route({ description: 'Convert application to workflow mode\nConvert expert mode of chatbot app to workflow mode\nConvert Completion App to Workflow App', @@ -1348,7 +1348,7 @@ export const post18 = oc .output(zPostAppsByAppIdConvertToWorkflowResponse) export const convertToWorkflow = { - post: post18, + post: post19, } /** @@ -1356,7 +1356,7 @@ export const convertToWorkflow = { * * Create a copy of an existing application */ -export const post19 = oc +export const post20 = oc .route({ description: 'Create a copy of an existing application', inputStructure: 'detailed', @@ -1371,7 +1371,7 @@ export const post19 = oc .output(zPostAppsByAppIdCopyResponse) export const copy = { - post: post19, + post: post20, } /** @@ -1379,7 +1379,7 @@ export const copy = { * * Export application configuration as DSL */ -export const get20 = oc +export const get19 = oc .route({ description: 'Export application configuration as DSL', inputStructure: 'detailed', @@ -1395,13 +1395,13 @@ export const get20 = oc .output(zGetAppsByAppIdExportResponse) export const export2 = { - get: get20, + get: get19, } /** * Export user feedback data for Google Sheets */ -export const get21 = oc +export const get20 = oc .route({ description: 'Export user feedback data for Google Sheets', inputStructure: 'detailed', @@ -1419,13 +1419,13 @@ export const get21 = oc .output(zGetAppsByAppIdFeedbacksExportResponse) export const export3 = { - get: get21, + get: get20, } /** * Create or update message feedback (like/dislike) */ -export const post20 = oc +export const post21 = oc .route({ description: 'Create or update message feedback (like/dislike)', inputStructure: 'detailed', @@ -1438,14 +1438,14 @@ export const post20 = oc .output(zPostAppsByAppIdFeedbacksResponse) export const feedbacks = { - post: post20, + post: post21, export: export3, } /** * Update application icon */ -export const post21 = oc +export const post22 = oc .route({ description: 'Update application icon', inputStructure: 'detailed', @@ -1458,13 +1458,13 @@ export const post21 = oc .output(zPostAppsByAppIdIconResponse) export const icon = { - post: post21, + post: post22, } /** * Get message details by ID */ -export const get22 = oc +export const get21 = oc .route({ description: 'Get message details by ID', inputStructure: 'detailed', @@ -1477,7 +1477,7 @@ export const get22 = oc .output(zGetAppsByAppIdMessagesByMessageIdResponse) export const byMessageId2 = { - get: get22, + get: get21, } export const messages = { @@ -1489,7 +1489,7 @@ export const messages = { * * Update application model configuration */ -export const post22 = oc +export const post23 = oc .route({ description: 'Update application model configuration', inputStructure: 'detailed', @@ -1505,13 +1505,13 @@ export const post22 = oc .output(zPostAppsByAppIdModelConfigResponse) export const modelConfig = { - post: post22, + post: post23, } /** * Check if app name is available */ -export const post23 = oc +export const post24 = oc .route({ description: 'Check if app name is available', inputStructure: 'detailed', @@ -1524,13 +1524,13 @@ export const post23 = oc .output(zPostAppsByAppIdNameResponse) export const name = { - post: post23, + post: post24, } /** * Publish app to Creators Platform */ -export const post24 = oc +export const post25 = oc .route({ inputStructure: 'detailed', method: 'POST', @@ -1543,13 +1543,13 @@ export const post24 = oc .output(zPostAppsByAppIdPublishToCreatorsPlatformResponse) export const publishToCreatorsPlatform = { - post: post24, + post: post25, } /** * Get MCP server configuration for an application */ -export const get23 = oc +export const get22 = oc .route({ description: 'Get MCP server configuration for an application', inputStructure: 'detailed', @@ -1564,7 +1564,7 @@ export const get23 = oc /** * Create MCP server configuration for an application */ -export const post25 = oc +export const post26 = oc .route({ description: 'Create MCP server configuration for an application', inputStructure: 'detailed', @@ -1593,15 +1593,15 @@ export const put = oc .output(zPutAppsByAppIdServerResponse) export const server = { - get: get23, - post: post25, + get: get22, + post: post26, put, } /** * Reset access token for application site */ -export const post26 = oc +export const post27 = oc .route({ description: 'Reset access token for application site', inputStructure: 'detailed', @@ -1614,13 +1614,13 @@ export const post26 = oc .output(zPostAppsByAppIdSiteAccessTokenResetResponse) export const accessTokenReset = { - post: post26, + post: post27, } /** * Update application site configuration */ -export const post27 = oc +export const post28 = oc .route({ description: 'Update application site configuration', inputStructure: 'detailed', @@ -1633,14 +1633,14 @@ export const post27 = oc .output(zPostAppsByAppIdSiteResponse) export const site = { - post: post27, + post: post28, accessTokenReset, } /** * Enable or disable app site */ -export const post28 = oc +export const post29 = oc .route({ description: 'Enable or disable app site', inputStructure: 'detailed', @@ -1653,13 +1653,13 @@ export const post28 = oc .output(zPostAppsByAppIdSiteEnableResponse) export const siteEnable = { - post: post28, + post: post29, } /** * Get average response time statistics for an application */ -export const get24 = oc +export const get23 = oc .route({ description: 'Get average response time statistics for an application', inputStructure: 'detailed', @@ -1677,13 +1677,13 @@ export const get24 = oc .output(zGetAppsByAppIdStatisticsAverageResponseTimeResponse) export const averageResponseTime = { - get: get24, + get: get23, } /** * Get average session interaction statistics for an application */ -export const get25 = oc +export const get24 = oc .route({ description: 'Get average session interaction statistics for an application', inputStructure: 'detailed', @@ -1701,13 +1701,13 @@ export const get25 = oc .output(zGetAppsByAppIdStatisticsAverageSessionInteractionsResponse) export const averageSessionInteractions = { - get: get25, + get: get24, } /** * Get daily conversation statistics for an application */ -export const get26 = oc +export const get25 = oc .route({ description: 'Get daily conversation statistics for an application', inputStructure: 'detailed', @@ -1725,13 +1725,13 @@ export const get26 = oc .output(zGetAppsByAppIdStatisticsDailyConversationsResponse) export const dailyConversations = { - get: get26, + get: get25, } /** * Get daily terminal/end-user statistics for an application */ -export const get27 = oc +export const get26 = oc .route({ description: 'Get daily terminal/end-user statistics for an application', inputStructure: 'detailed', @@ -1749,13 +1749,13 @@ export const get27 = oc .output(zGetAppsByAppIdStatisticsDailyEndUsersResponse) export const dailyEndUsers = { - get: get27, + get: get26, } /** * Get daily message statistics for an application */ -export const get28 = oc +export const get27 = oc .route({ description: 'Get daily message statistics for an application', inputStructure: 'detailed', @@ -1773,13 +1773,13 @@ export const get28 = oc .output(zGetAppsByAppIdStatisticsDailyMessagesResponse) export const dailyMessages = { - get: get28, + get: get27, } /** * Get daily token cost statistics for an application */ -export const get29 = oc +export const get28 = oc .route({ description: 'Get daily token cost statistics for an application', inputStructure: 'detailed', @@ -1797,13 +1797,13 @@ export const get29 = oc .output(zGetAppsByAppIdStatisticsTokenCostsResponse) export const tokenCosts = { - get: get29, + get: get28, } /** * Get tokens per second statistics for an application */ -export const get30 = oc +export const get29 = oc .route({ description: 'Get tokens per second statistics for an application', inputStructure: 'detailed', @@ -1821,13 +1821,13 @@ export const get30 = oc .output(zGetAppsByAppIdStatisticsTokensPerSecondResponse) export const tokensPerSecond = { - get: get30, + get: get29, } /** * Get user satisfaction rate statistics for an application */ -export const get31 = oc +export const get30 = oc .route({ description: 'Get user satisfaction rate statistics for an application', inputStructure: 'detailed', @@ -1845,7 +1845,7 @@ export const get31 = oc .output(zGetAppsByAppIdStatisticsUserSatisfactionRateResponse) export const userSatisfactionRate = { - get: get31, + get: get30, } export const statistics = { @@ -1862,7 +1862,7 @@ export const statistics = { /** * Get available TTS voices for a specific language */ -export const get32 = oc +export const get31 = oc .route({ description: 'Get available TTS voices for a specific language', inputStructure: 'detailed', @@ -1880,13 +1880,13 @@ export const get32 = oc .output(zGetAppsByAppIdTextToAudioVoicesResponse) export const voices = { - get: get32, + get: get31, } /** * Convert text to speech for chat messages */ -export const post29 = oc +export const post30 = oc .route({ description: 'Convert text to speech for chat messages', inputStructure: 'detailed', @@ -1901,7 +1901,7 @@ export const post29 = oc .output(zPostAppsByAppIdTextToAudioResponse) export const textToAudio = { - post: post29, + post: post30, voices, } @@ -1910,7 +1910,7 @@ export const textToAudio = { * * Get app tracing configuration */ -export const get33 = oc +export const get32 = oc .route({ description: 'Get app tracing configuration', inputStructure: 'detailed', @@ -1926,7 +1926,7 @@ export const get33 = oc /** * Update app tracing configuration */ -export const post30 = oc +export const post31 = oc .route({ description: 'Update app tracing configuration', inputStructure: 'detailed', @@ -1939,8 +1939,8 @@ export const post30 = oc .output(zPostAppsByAppIdTraceResponse) export const trace = { - get: get33, - post: post30, + get: get32, + post: post31, } /** @@ -1970,7 +1970,7 @@ export const delete5 = oc /** * Get tracing configuration for an application */ -export const get34 = oc +export const get33 = oc .route({ description: 'Get tracing configuration for an application', inputStructure: 'detailed', @@ -2009,7 +2009,7 @@ export const patch = oc * * Create a new tracing configuration for an application */ -export const post31 = oc +export const post32 = oc .route({ description: 'Create a new tracing configuration for an application', inputStructure: 'detailed', @@ -2027,15 +2027,15 @@ export const post31 = oc export const traceConfig = { delete: delete5, - get: get34, + get: get33, patch, - post: post31, + post: post32, } /** * Update app trigger (enable/disable) */ -export const post32 = oc +export const post33 = oc .route({ inputStructure: 'detailed', method: 'POST', @@ -2053,13 +2053,13 @@ export const post32 = oc .output(zPostAppsByAppIdTriggerEnableResponse) export const triggerEnable = { - post: post32, + post: post33, } /** * Get app triggers list */ -export const get35 = oc +export const get34 = oc .route({ inputStructure: 'detailed', method: 'GET', @@ -2072,7 +2072,7 @@ export const get35 = oc .output(zGetAppsByAppIdTriggersResponse) export const triggers = { - get: get35, + get: get34, } /** @@ -2080,7 +2080,7 @@ export const triggers = { * * Get workflow application execution logs */ -export const get36 = oc +export const get35 = oc .route({ description: 'Get workflow application execution logs', inputStructure: 'detailed', @@ -2099,7 +2099,7 @@ export const get36 = oc .output(zGetAppsByAppIdWorkflowAppLogsResponse) export const workflowAppLogs = { - get: get36, + get: get35, } /** @@ -2107,7 +2107,7 @@ export const workflowAppLogs = { * * Get workflow archived execution logs */ -export const get37 = oc +export const get36 = oc .route({ description: 'Get workflow archived execution logs', inputStructure: 'detailed', @@ -2126,7 +2126,7 @@ export const get37 = oc .output(zGetAppsByAppIdWorkflowArchivedLogsResponse) export const workflowArchivedLogs = { - get: get37, + get: get36, } /** @@ -2134,7 +2134,7 @@ export const workflowArchivedLogs = { * * Get workflow runs count statistics */ -export const get38 = oc +export const get37 = oc .route({ description: 'Get workflow runs count statistics', inputStructure: 'detailed', @@ -2153,7 +2153,7 @@ export const get38 = oc .output(zGetAppsByAppIdWorkflowRunsCountResponse) export const count3 = { - get: get38, + get: get37, } /** @@ -2161,7 +2161,7 @@ export const count3 = { * * Stop running workflow task */ -export const post33 = oc +export const post34 = oc .route({ description: 'Stop running workflow task', inputStructure: 'detailed', @@ -2175,7 +2175,7 @@ export const post33 = oc .output(zPostAppsByAppIdWorkflowRunsTasksByTaskIdStopResponse) export const stop3 = { - post: post33, + post: post34, } export const byTaskId3 = { @@ -2189,7 +2189,7 @@ export const tasks = { /** * Generate a download URL for an archived workflow run. */ -export const get39 = oc +export const get38 = oc .route({ description: 'Generate a download URL for an archived workflow run.', inputStructure: 'detailed', @@ -2202,7 +2202,7 @@ export const get39 = oc .output(zGetAppsByAppIdWorkflowRunsByRunIdExportResponse) export const export4 = { - get: get39, + get: get38, } /** @@ -2210,7 +2210,7 @@ export const export4 = { * * Get workflow run node execution list */ -export const get40 = oc +export const get39 = oc .route({ description: 'Get workflow run node execution list', inputStructure: 'detailed', @@ -2224,7 +2224,7 @@ export const get40 = oc .output(zGetAppsByAppIdWorkflowRunsByRunIdNodeExecutionsResponse) export const nodeExecutions = { - get: get40, + get: get39, } /** @@ -2232,7 +2232,7 @@ export const nodeExecutions = { * * Get workflow run detail */ -export const get41 = oc +export const get40 = oc .route({ description: 'Get workflow run detail', inputStructure: 'detailed', @@ -2246,7 +2246,7 @@ export const get41 = oc .output(zGetAppsByAppIdWorkflowRunsByRunIdResponse) export const byRunId = { - get: get41, + get: get40, export: export4, nodeExecutions, } @@ -2256,7 +2256,7 @@ export const byRunId = { * * Get workflow run list */ -export const get42 = oc +export const get41 = oc .route({ description: 'Get workflow run list', inputStructure: 'detailed', @@ -2275,7 +2275,7 @@ export const get42 = oc .output(zGetAppsByAppIdWorkflowRunsResponse) export const workflowRuns2 = { - get: get42, + get: get41, count: count3, tasks, byRunId, @@ -2286,7 +2286,7 @@ export const workflowRuns2 = { * * Get all users in current tenant for mentions */ -export const get43 = oc +export const get42 = oc .route({ description: 'Get all users in current tenant for mentions', inputStructure: 'detailed', @@ -2300,7 +2300,7 @@ export const get43 = oc .output(zGetAppsByAppIdWorkflowCommentsMentionUsersResponse) export const mentionUsers = { - get: get43, + get: get42, } /** @@ -2355,7 +2355,7 @@ export const byReplyId = { * * Add a reply to a workflow comment */ -export const post34 = oc +export const post35 = oc .route({ description: 'Add a reply to a workflow comment', inputStructure: 'detailed', @@ -2375,7 +2375,7 @@ export const post34 = oc .output(zPostAppsByAppIdWorkflowCommentsByCommentIdRepliesResponse) export const replies = { - post: post34, + post: post35, byReplyId, } @@ -2384,7 +2384,7 @@ export const replies = { * * Resolve a workflow comment */ -export const post35 = oc +export const post36 = oc .route({ description: 'Resolve a workflow comment', inputStructure: 'detailed', @@ -2398,7 +2398,7 @@ export const post35 = oc .output(zPostAppsByAppIdWorkflowCommentsByCommentIdResolveResponse) export const resolve = { - post: post35, + post: post36, } /** @@ -2425,7 +2425,7 @@ export const delete7 = oc * * Get a specific workflow comment */ -export const get44 = oc +export const get43 = oc .route({ description: 'Get a specific workflow comment', inputStructure: 'detailed', @@ -2463,7 +2463,7 @@ export const put3 = oc export const byCommentId = { delete: delete7, - get: get44, + get: get43, put: put3, replies, resolve, @@ -2474,7 +2474,7 @@ export const byCommentId = { * * Get all comments for a workflow */ -export const get45 = oc +export const get44 = oc .route({ description: 'Get all comments for a workflow', inputStructure: 'detailed', @@ -2492,7 +2492,7 @@ export const get45 = oc * * Create a new workflow comment */ -export const post36 = oc +export const post37 = oc .route({ description: 'Create a new workflow comment', inputStructure: 'detailed', @@ -2512,8 +2512,8 @@ export const post36 = oc .output(zPostAppsByAppIdWorkflowCommentsResponse) export const comments = { - get: get45, - post: post36, + get: get44, + post: post37, mentionUsers, byCommentId, } @@ -2521,7 +2521,7 @@ export const comments = { /** * Get workflow average app interaction statistics */ -export const get46 = oc +export const get45 = oc .route({ description: 'Get workflow average app interaction statistics', inputStructure: 'detailed', @@ -2539,13 +2539,13 @@ export const get46 = oc .output(zGetAppsByAppIdWorkflowStatisticsAverageAppInteractionsResponse) export const averageAppInteractions = { - get: get46, + get: get45, } /** * Get workflow daily runs statistics */ -export const get47 = oc +export const get46 = oc .route({ description: 'Get workflow daily runs statistics', inputStructure: 'detailed', @@ -2563,13 +2563,13 @@ export const get47 = oc .output(zGetAppsByAppIdWorkflowStatisticsDailyConversationsResponse) export const dailyConversations2 = { - get: get47, + get: get46, } /** * Get workflow daily terminals statistics */ -export const get48 = oc +export const get47 = oc .route({ description: 'Get workflow daily terminals statistics', inputStructure: 'detailed', @@ -2587,13 +2587,13 @@ export const get48 = oc .output(zGetAppsByAppIdWorkflowStatisticsDailyTerminalsResponse) export const dailyTerminals = { - get: get48, + get: get47, } /** * Get workflow daily token cost statistics */ -export const get49 = oc +export const get48 = oc .route({ description: 'Get workflow daily token cost statistics', inputStructure: 'detailed', @@ -2611,7 +2611,7 @@ export const get49 = oc .output(zGetAppsByAppIdWorkflowStatisticsTokenCostsResponse) export const tokenCosts2 = { - get: get49, + get: get48, } export const statistics2 = { @@ -2631,7 +2631,7 @@ export const workflow = { * * Get default block configuration by type */ -export const get50 = oc +export const get49 = oc .route({ description: 'Get default block configuration by type', inputStructure: 'detailed', @@ -2650,7 +2650,7 @@ export const get50 = oc .output(zGetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypeResponse) export const byBlockType = { - get: get50, + get: get49, } /** @@ -2658,7 +2658,7 @@ export const byBlockType = { * * Get default block configurations for workflow */ -export const get51 = oc +export const get50 = oc .route({ description: 'Get default block configurations for workflow', inputStructure: 'detailed', @@ -2672,14 +2672,14 @@ export const get51 = oc .output(zGetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsResponse) export const defaultWorkflowBlockConfigs = { - get: get51, + get: get50, byBlockType, } /** * Get conversation variables for workflow */ -export const get52 = oc +export const get51 = oc .route({ description: 'Get conversation variables for workflow', inputStructure: 'detailed', @@ -2694,7 +2694,7 @@ export const get52 = oc /** * Update conversation variables for workflow draft */ -export const post37 = oc +export const post38 = oc .route({ description: 'Update conversation variables for workflow draft', inputStructure: 'detailed', @@ -2712,8 +2712,8 @@ export const post37 = oc .output(zPostAppsByAppIdWorkflowsDraftConversationVariablesResponse) export const conversationVariables2 = { - get: get52, - post: post37, + get: get51, + post: post38, } /** @@ -2721,7 +2721,7 @@ export const conversationVariables2 = { * * Get environment variables for workflow */ -export const get53 = oc +export const get52 = oc .route({ description: 'Get environment variables for workflow', inputStructure: 'detailed', @@ -2737,7 +2737,7 @@ export const get53 = oc /** * Update environment variables for workflow draft */ -export const post38 = oc +export const post39 = oc .route({ description: 'Update environment variables for workflow draft', inputStructure: 'detailed', @@ -2755,14 +2755,14 @@ export const post38 = oc .output(zPostAppsByAppIdWorkflowsDraftEnvironmentVariablesResponse) export const environmentVariables = { - get: get53, - post: post38, + get: get52, + post: post39, } /** * Update draft workflow features */ -export const post39 = oc +export const post40 = oc .route({ description: 'Update draft workflow features', inputStructure: 'detailed', @@ -2780,7 +2780,7 @@ export const post39 = oc .output(zPostAppsByAppIdWorkflowsDraftFeaturesResponse) export const features = { - post: post39, + post: post40, } /** @@ -2788,7 +2788,7 @@ export const features = { * * Test human input delivery for workflow */ -export const post40 = oc +export const post41 = oc .route({ description: 'Test human input delivery for workflow', inputStructure: 'detailed', @@ -2807,7 +2807,7 @@ export const post40 = oc .output(zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdDeliveryTestResponse) export const deliveryTest = { - post: post40, + post: post41, } /** @@ -2815,7 +2815,7 @@ export const deliveryTest = { * * Get human input form preview for workflow */ -export const post41 = oc +export const post42 = oc .route({ description: 'Get human input form preview for workflow', inputStructure: 'detailed', @@ -2834,7 +2834,7 @@ export const post41 = oc .output(zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormPreviewResponse) export const preview2 = { - post: post41, + post: post42, } /** @@ -2842,7 +2842,7 @@ export const preview2 = { * * Submit human input form preview for workflow */ -export const post42 = oc +export const post43 = oc .route({ description: 'Submit human input form preview for workflow', inputStructure: 'detailed', @@ -2861,7 +2861,7 @@ export const post42 = oc .output(zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormRunResponse) export const run5 = { - post: post42, + post: post43, } export const form2 = { @@ -2887,7 +2887,7 @@ export const humanInput2 = { * * Run draft workflow iteration node */ -export const post43 = oc +export const post44 = oc .route({ description: 'Run draft workflow iteration node', inputStructure: 'detailed', @@ -2906,7 +2906,7 @@ export const post43 = oc .output(zPostAppsByAppIdWorkflowsDraftIterationNodesByNodeIdRunResponse) export const run6 = { - post: post43, + post: post44, } export const byNodeId5 = { @@ -2926,7 +2926,7 @@ export const iteration2 = { * * Run draft workflow loop node */ -export const post44 = oc +export const post45 = oc .route({ description: 'Run draft workflow loop node', inputStructure: 'detailed', @@ -2945,7 +2945,7 @@ export const post44 = oc .output(zPostAppsByAppIdWorkflowsDraftLoopNodesByNodeIdRunResponse) export const run7 = { - post: post44, + post: post45, } export const byNodeId6 = { @@ -2963,7 +2963,7 @@ export const loop2 = { /** * Get last run result for draft workflow node */ -export const get54 = oc +export const get53 = oc .route({ description: 'Get last run result for draft workflow node', inputStructure: 'detailed', @@ -2976,7 +2976,7 @@ export const get54 = oc .output(zGetAppsByAppIdWorkflowsDraftNodesByNodeIdLastRunResponse) export const lastRun = { - get: get54, + get: get53, } /** @@ -2984,7 +2984,7 @@ export const lastRun = { * * Run draft workflow node */ -export const post45 = oc +export const post46 = oc .route({ description: 'Run draft workflow node', inputStructure: 'detailed', @@ -3003,7 +3003,7 @@ export const post45 = oc .output(zPostAppsByAppIdWorkflowsDraftNodesByNodeIdRunResponse) export const run8 = { - post: post45, + post: post46, } /** @@ -3011,7 +3011,7 @@ export const run8 = { * * Poll for trigger events and execute single node when event arrives */ -export const post46 = oc +export const post47 = oc .route({ description: 'Poll for trigger events and execute single node when event arrives', inputStructure: 'detailed', @@ -3025,7 +3025,7 @@ export const post46 = oc .output(zPostAppsByAppIdWorkflowsDraftNodesByNodeIdTriggerRunResponse) export const run9 = { - post: post46, + post: post47, } export const trigger = { @@ -3051,7 +3051,7 @@ export const delete8 = oc /** * Get variables for a specific node */ -export const get55 = oc +export const get54 = oc .route({ description: 'Get variables for a specific node', inputStructure: 'detailed', @@ -3065,7 +3065,7 @@ export const get55 = oc export const variables = { delete: delete8, - get: get55, + get: get54, } export const byNodeId7 = { @@ -3084,7 +3084,7 @@ export const nodes7 = { * * Run draft workflow */ -export const post47 = oc +export const post48 = oc .route({ description: 'Run draft workflow', inputStructure: 'detailed', @@ -3103,13 +3103,13 @@ export const post47 = oc .output(zPostAppsByAppIdWorkflowsDraftRunResponse) export const run10 = { - post: post47, + post: post48, } /** * Get system variables for workflow */ -export const get56 = oc +export const get55 = oc .route({ description: 'Get system variables for workflow', inputStructure: 'detailed', @@ -3122,7 +3122,7 @@ export const get56 = oc .output(zGetAppsByAppIdWorkflowsDraftSystemVariablesResponse) export const systemVariables = { - get: get56, + get: get55, } /** @@ -3130,7 +3130,7 @@ export const systemVariables = { * * Poll for trigger events and execute full workflow when event arrives */ -export const post48 = oc +export const post49 = oc .route({ description: 'Poll for trigger events and execute full workflow when event arrives', inputStructure: 'detailed', @@ -3149,7 +3149,7 @@ export const post48 = oc .output(zPostAppsByAppIdWorkflowsDraftTriggerRunResponse) export const run11 = { - post: post48, + post: post49, } /** @@ -3157,7 +3157,7 @@ export const run11 = { * * Full workflow debug when the start node is a trigger */ -export const post49 = oc +export const post50 = oc .route({ description: 'Full workflow debug when the start node is a trigger', inputStructure: 'detailed', @@ -3176,7 +3176,7 @@ export const post49 = oc .output(zPostAppsByAppIdWorkflowsDraftTriggerRunAllResponse) export const runAll = { - post: post49, + post: post50, } export const trigger2 = { @@ -3222,7 +3222,7 @@ export const delete9 = oc /** * Get a specific workflow variable */ -export const get57 = oc +export const get56 = oc .route({ description: 'Get a specific workflow variable', inputStructure: 'detailed', @@ -3256,7 +3256,7 @@ export const patch2 = oc export const byVariableId = { delete: delete9, - get: get57, + get: get56, patch: patch2, reset, } @@ -3282,7 +3282,7 @@ export const delete10 = oc * * Get draft workflow variables */ -export const get58 = oc +export const get57 = oc .route({ description: 'Get draft workflow variables', inputStructure: 'detailed', @@ -3302,7 +3302,7 @@ export const get58 = oc export const variables2 = { delete: delete10, - get: get58, + get: get57, byVariableId, } @@ -3311,7 +3311,7 @@ export const variables2 = { * * Get draft workflow for an application */ -export const get59 = oc +export const get58 = oc .route({ description: 'Get draft workflow for an application', inputStructure: 'detailed', @@ -3329,7 +3329,7 @@ export const get59 = oc * * Sync draft workflow configuration */ -export const post50 = oc +export const post51 = oc .route({ description: 'Sync draft workflow configuration', inputStructure: 'detailed', @@ -3348,8 +3348,8 @@ export const post50 = oc .output(zPostAppsByAppIdWorkflowsDraftResponse) export const draft2 = { - get: get59, - post: post50, + get: get58, + post: post51, conversationVariables: conversationVariables2, environmentVariables, features, @@ -3368,7 +3368,7 @@ export const draft2 = { * * Get published workflow for an application */ -export const get60 = oc +export const get59 = oc .route({ description: 'Get published workflow for an application', inputStructure: 'detailed', @@ -3384,7 +3384,7 @@ export const get60 = oc /** * Publish workflow */ -export const post51 = oc +export const post52 = oc .route({ inputStructure: 'detailed', method: 'POST', @@ -3402,14 +3402,14 @@ export const post51 = oc .output(zPostAppsByAppIdWorkflowsPublishResponse) export const publish = { - get: get60, - post: post51, + get: get59, + post: post52, } /** * Get webhook trigger for a node */ -export const get61 = oc +export const get60 = oc .route({ inputStructure: 'detailed', method: 'GET', @@ -3427,7 +3427,7 @@ export const get61 = oc .output(zGetAppsByAppIdWorkflowsTriggersWebhookResponse) export const webhook = { - get: get61, + get: get60, } export const triggers2 = { @@ -3437,7 +3437,7 @@ export const triggers2 = { /** * Restore a published workflow version into the draft workflow */ -export const post52 = oc +export const post53 = oc .route({ description: 'Restore a published workflow version into the draft workflow', inputStructure: 'detailed', @@ -3450,7 +3450,7 @@ export const post52 = oc .output(zPostAppsByAppIdWorkflowsByWorkflowIdRestoreResponse) export const restore = { - post: post52, + post: post53, } /** @@ -3502,7 +3502,7 @@ export const byWorkflowId = { * * Get all published workflows for an application */ -export const get62 = oc +export const get61 = oc .route({ description: 'Get all published workflows for an application', inputStructure: 'detailed', @@ -3521,7 +3521,7 @@ export const get62 = oc .output(zGetAppsByAppIdWorkflowsResponse) export const workflows3 = { - get: get62, + get: get61, defaultWorkflowBlockConfigs, draft: draft2, publish, @@ -3553,7 +3553,7 @@ export const delete12 = oc * * Get application details */ -export const get63 = oc +export const get62 = oc .route({ description: 'Get application details', inputStructure: 'detailed', @@ -3586,7 +3586,7 @@ export const put5 = oc export const byAppId2 = { delete: delete12, - get: get63, + get: get62, put: put5, advancedChat, agent, @@ -3654,7 +3654,7 @@ export const byApiKeyId = { * * Get all API keys for an app */ -export const get64 = oc +export const get63 = oc .route({ description: 'Get all API keys for an app', inputStructure: 'detailed', @@ -3672,7 +3672,7 @@ export const get64 = oc * * Create a new API key for an app */ -export const post53 = oc +export const post54 = oc .route({ description: 'Create a new API key for an app', inputStructure: 'detailed', @@ -3687,8 +3687,8 @@ export const post53 = oc .output(zPostAppsByResourceIdApiKeysResponse) export const apiKeys = { - get: get64, - post: post53, + get: get63, + post: post54, byApiKeyId, } @@ -3699,7 +3699,7 @@ export const byResourceId = { /** * Refresh MCP server configuration and regenerate server code */ -export const get65 = oc +export const get64 = oc .route({ description: 'Refresh MCP server configuration and regenerate server code', inputStructure: 'detailed', @@ -3712,7 +3712,7 @@ export const get65 = oc .output(zGetAppsByServerIdServerRefreshResponse) export const refresh = { - get: get65, + get: get64, } export const server2 = { @@ -3728,7 +3728,7 @@ export const byServerId = { * * Get list of applications with pagination and filtering */ -export const get66 = oc +export const get65 = oc .route({ description: 'Get list of applications with pagination and filtering', inputStructure: 'detailed', @@ -3746,7 +3746,7 @@ export const get66 = oc * * Create a new application */ -export const post54 = oc +export const post55 = oc .route({ description: 'Create a new application', inputStructure: 'detailed', @@ -3761,8 +3761,8 @@ export const post54 = oc .output(zPostAppsResponse) export const apps = { - get: get66, - post: post54, + get: get65, + post: post55, imports, workflows, byAppId: byAppId2, diff --git a/packages/contracts/generated/api/console/apps/types.gen.ts b/packages/contracts/generated/api/console/apps/types.gen.ts index 4a4742adcf..b14bcbb32a 100644 --- a/packages/contracts/generated/api/console/apps/types.gen.ts +++ b/packages/contracts/generated/api/console/apps/types.gen.ts @@ -17,7 +17,7 @@ export type CreateAppPayload = { icon?: string | null icon_background?: string | null icon_type?: IconType - mode: 'chat' | 'agent-chat' | 'advanced-chat' | 'workflow' | 'completion' + mode: 'advanced-chat' | 'agent-chat' | 'chat' | 'completion' | 'workflow' name: string } @@ -68,6 +68,10 @@ export type CheckDependenciesResult = { leaked_dependencies?: Array } +export type WorkflowOnlineUsersPayload = { + app_ids?: Array +} + export type AppDetailWithSite = { access_mode?: string | null api_base_url?: string | null @@ -104,12 +108,19 @@ export type UpdateAppPayload = { use_icon_as_answer_icon?: boolean | null } -export type AdvancedChatWorkflowRunPagination = { - [key: string]: unknown +export type AdvancedChatWorkflowRunPaginationResponse = { + data: Array + has_more: boolean + limit: number } -export type WorkflowRunCount = { - [key: string]: unknown +export type WorkflowRunCountResponse = { + failed: number + partial_succeeded: number + running: number + stopped: number + succeeded: number + total: number } export type HumanInputFormPreviewPayload = { @@ -309,7 +320,7 @@ export type AppExportResponse = { export type MessageFeedbackPayload = { content?: string | null message_id: string - rating?: 'like' | 'dislike' | null + rating?: 'dislike' | 'like' | null } export type AppIconPayload = { @@ -415,7 +426,7 @@ export type AppSiteUpdatePayload = { copyright?: string | null custom_disclaimer?: string | null customize_domain?: string | null - customize_token_strategy?: 'must' | 'allow' | 'not_allow' | null + customize_token_strategy?: 'allow' | 'must' | 'not_allow' | null default_language?: string | null description?: string | null icon?: string | null @@ -510,24 +521,63 @@ export type WorkflowArchivedLogPaginationResponse = { total: number } -export type WorkflowRunPagination = { - [key: string]: unknown +export type WorkflowRunPaginationResponse = { + data: Array + has_more: boolean + limit: number } -export type WorkflowRunDetail = { - [key: string]: unknown +export type WorkflowRunDetailResponse = { + created_at?: number | null + created_by_account?: SimpleAccount + created_by_end_user?: SimpleEndUser + created_by_role?: string | null + elapsed_time?: number | null + error?: string | null + exceptions_count?: number | null + finished_at?: number | null + graph: unknown + id: string + inputs: unknown + outputs: unknown + status?: string | null + total_steps?: number | null + total_tokens?: number | null + version?: string | null } -export type WorkflowRunExport = { - [key: string]: unknown +export type WorkflowRunExportResponse = { + presigned_url?: string | null + presigned_url_expires_at?: string | null + status: string } -export type WorkflowRunNodeExecutionList = { - [key: string]: unknown +export type WorkflowRunNodeExecutionListResponse = { + data: Array } export type WorkflowCommentBasic = { - [key: string]: unknown + content?: string + created_at?: { + [key: string]: unknown + } + created_by?: string + created_by_account?: AnonymousInlineModel6Fec07Cd0D85 + id?: string + mention_count?: number + participants?: Array + position_x?: number + position_y?: number + reply_count?: number + resolved?: boolean + resolved_at?: { + [key: string]: unknown + } + resolved_by?: string + resolved_by_account?: AnonymousInlineModel6Fec07Cd0D85 + updated_at?: { + [key: string]: unknown + } } export type WorkflowCommentCreatePayload = { @@ -538,7 +588,10 @@ export type WorkflowCommentCreatePayload = { } export type WorkflowCommentCreate = { - [key: string]: unknown + created_at?: { + [key: string]: unknown + } + id?: string } export type WorkflowCommentMentionUsersPayload = { @@ -546,7 +599,26 @@ export type WorkflowCommentMentionUsersPayload = { } export type WorkflowCommentDetail = { - [key: string]: unknown + content?: string + created_at?: { + [key: string]: unknown + } + created_by?: string + created_by_account?: AnonymousInlineModel6Fec07Cd0D85 + id?: string + mentions?: Array + position_x?: number + position_y?: number + replies?: Array + resolved?: boolean + resolved_at?: { + [key: string]: unknown + } + resolved_by?: string + resolved_by_account?: AnonymousInlineModel6Fec07Cd0D85 + updated_at?: { + [key: string]: unknown + } } export type WorkflowCommentUpdatePayload = { @@ -557,7 +629,10 @@ export type WorkflowCommentUpdatePayload = { } export type WorkflowCommentUpdate = { - [key: string]: unknown + id?: string + updated_at?: { + [key: string]: unknown + } } export type WorkflowCommentReplyPayload = { @@ -566,23 +641,61 @@ export type WorkflowCommentReplyPayload = { } export type WorkflowCommentReplyCreate = { - [key: string]: unknown + created_at?: { + [key: string]: unknown + } + id?: string } export type WorkflowCommentReplyUpdate = { - [key: string]: unknown + id?: string + updated_at?: { + [key: string]: unknown + } } export type WorkflowCommentResolve = { - [key: string]: unknown + id?: string + resolved?: boolean + resolved_at?: { + [key: string]: unknown + } + resolved_by?: string } export type WorkflowPagination = { - [key: string]: unknown + has_more?: boolean + items?: Array + limit?: number + page?: number } export type Workflow = { - [key: string]: unknown + conversation_variables?: Array + created_at?: { + [key: string]: unknown + } + created_by?: SimpleAccount + environment_variables?: Array<{ + [key: string]: unknown + }> + features?: { + [key: string]: unknown + } + graph?: { + [key: string]: unknown + } + hash?: string + id?: string + marked_comment?: string + marked_name?: string + rag_pipeline_variables?: Array + tool_published?: boolean + updated_at?: { + [key: string]: unknown + } + updated_by?: SimpleAccount + version?: string } export type SyncDraftWorkflowPayload = { @@ -602,11 +715,13 @@ export type SyncDraftWorkflowPayload = { } export type SyncDraftWorkflowResponse = { - [key: string]: unknown + hash?: string + result?: string + updated_at?: string } export type WorkflowDraftVariableList = { - [key: string]: unknown + items?: Array } export type ConversationVariableUpdatePayload = { @@ -634,8 +749,29 @@ export type HumanInputDeliveryTestPayload = { } } -export type WorkflowRunNodeExecution = { - [key: string]: unknown +export type WorkflowRunNodeExecutionResponse = { + created_at?: number | null + created_by_account?: SimpleAccount + created_by_end_user?: SimpleEndUser + created_by_role?: string | null + elapsed_time?: number | null + error?: string | null + execution_metadata?: unknown + extras?: unknown + finished_at?: number | null + id: string + index?: number | null + inputs?: unknown + inputs_truncated?: boolean | null + node_id?: string | null + node_type?: string | null + outputs?: unknown + outputs_truncated?: boolean | null + predecessor_node_id?: string | null + process_data?: unknown + process_data_truncated?: boolean | null + status?: string | null + title?: string | null } export type DraftWorkflowNodeRunPayload = { @@ -660,7 +796,7 @@ export type DraftWorkflowRunPayload = { } export type DraftWorkflowTriggerRunRequest = { - [key: string]: unknown + node_id: string } export type DraftWorkflowTriggerRunAllPayload = { @@ -668,11 +804,28 @@ export type DraftWorkflowTriggerRunAllPayload = { } export type WorkflowDraftVariableListWithoutValue = { - [key: string]: unknown + items?: Array + total?: { + [key: string]: unknown + } } export type WorkflowDraftVariable = { - [key: string]: unknown + description?: string + edited?: boolean + full_content?: { + [key: string]: unknown + } + id?: string + is_truncated?: boolean + name?: string + selector?: Array + type?: string + value?: { + [key: string]: unknown + } + value_type?: string + visible?: boolean } export type WorkflowDraftVariableUpdatePayload = { @@ -734,33 +887,15 @@ export type AppPartial = { workflow?: WorkflowPartial } -export type IconType = 'image' | 'emoji' | 'link' +export type IconType = 'emoji' | 'image' | 'link' export type ModelConfig = { - agent_mode_dict?: JsonValue - annotation_reply_dict?: JsonValue - chat_prompt_config_dict?: JsonValue - completion_prompt_config_dict?: JsonValue - created_at?: number | null - created_by?: string | null - dataset_configs_dict?: JsonValue - dataset_query_variable?: string | null - external_data_tools_list?: JsonValue - file_upload_dict?: JsonValue - model_dict?: JsonValue - more_like_this_dict?: JsonValue - opening_statement?: string | null - pre_prompt?: string | null - prompt_type?: string | null - retriever_resource_dict?: JsonValue - sensitive_word_avoidance_dict?: JsonValue - speech_to_text_dict?: JsonValue - suggested_questions_after_answer_dict?: JsonValue - suggested_questions_list?: JsonValue - text_to_speech_dict?: JsonValue - updated_at?: number | null - updated_by?: string | null - user_input_form_list?: JsonValue + completion_params?: { + [key: string]: unknown + } + mode: LlmMode + name: string + provider: string } export type Tag = { @@ -779,7 +914,7 @@ export type WorkflowPartial = { updated_by?: string | null } -export type ImportStatus = 'completed' | 'completed-with-warnings' | 'pending' | 'failed' +export type ImportStatus = 'completed' | 'completed-with-warnings' | 'failed' | 'pending' export type PluginDependency = { current_identifier?: string | null @@ -818,6 +953,22 @@ export type Site = { use_icon_as_answer_icon?: boolean | null } +export type AdvancedChatWorkflowRunForListResponse = { + conversation_id?: string | null + created_at?: number | null + created_by_account?: SimpleAccount + elapsed_time?: number | null + exceptions_count?: number | null + finished_at?: number | null + id: string + message_id?: string | null + retry_index?: number | null + status?: string | null + total_steps?: number | null + total_tokens?: number | null + version?: string | null +} + export type AnnotationHitHistory = { annotation_content?: string | null annotation_question?: string | null @@ -967,7 +1118,7 @@ export type MessageFile = { url?: string | null } -export type AppMcpServerStatus = 'normal' | 'active' | 'inactive' +export type AppMcpServerStatus = 'active' | 'inactive' | 'normal' export type WorkflowAppLogPartialResponse = { created_at?: number | null @@ -989,6 +1140,42 @@ export type WorkflowArchivedLogPartialResponse = { workflow_run?: WorkflowRunForArchivedLogResponse } +export type WorkflowRunForListResponse = { + created_at?: number | null + created_by_account?: SimpleAccount + elapsed_time?: number | null + exceptions_count?: number | null + finished_at?: number | null + id: string + retry_index?: number | null + status?: string | null + total_steps?: number | null + total_tokens?: number | null + version?: string | null +} + +export type SimpleAccount = { + email: string + id: string + name: string +} + +export type SimpleEndUser = { + id: string + is_anonymous: boolean + session_id?: string | null + type: string +} + +export type AnonymousInlineModel6Fec07Cd0D85 = { + avatar_url?: { + [key: string]: unknown + } + email?: string + id?: string + name?: string +} + export type AccountWithRole = { avatar?: string | null created_at?: number | null @@ -1001,6 +1188,63 @@ export type AccountWithRole = { status: string } +export type AnonymousInlineModelF7Ff64Cce858 = { + mentioned_user_account?: AnonymousInlineModel6Fec07Cd0D85 + mentioned_user_id?: string + reply_id?: string +} + +export type AnonymousInlineModel55C39C6A4B9e = { + content?: string + created_at?: { + [key: string]: unknown + } + created_by?: string + created_by_account?: AnonymousInlineModel6Fec07Cd0D85 + id?: string +} + +export type ConversationVariable = { + description?: string + id?: string + name?: string + value?: { + [key: string]: unknown + } + value_type?: string +} + +export type PipelineVariable = { + allow_file_extension?: Array + allow_file_upload_methods?: Array + allowed_file_types?: Array + belong_to_node_id?: string + default_value?: { + [key: string]: unknown + } + label?: string + max_length?: number + options?: Array + placeholder?: string + required?: boolean + tooltips?: string + type?: string + unit?: string + variable?: string +} + +export type WorkflowDraftVariableWithoutValue = { + description?: string + edited?: boolean + id?: string + is_truncated?: boolean + name?: string + selector?: Array + type?: string + value_type?: string + visible?: boolean +} + export type ModelConfigPartial = { created_at?: number | null created_by?: string | null @@ -1010,6 +1254,8 @@ export type ModelConfigPartial = { updated_by?: string | null } +export type LlmMode = 'chat' | 'completion' + export type Type = 'github' | 'marketplace' | 'package' export type Github = { @@ -1050,20 +1296,14 @@ export type SimpleMessageDetail = { query: string } -export type SimpleAccount = { - email: string - id: string - name: string -} - export type HumanInputFormDefinition = { - actions?: Array + actions?: Array display_in_ui?: boolean expiration_time: number form_content: string form_id: string form_token?: string | null - inputs?: Array + inputs?: Array node_id: string node_title: string resolved_default_values?: { @@ -1081,13 +1321,6 @@ export type HumanInputFormSubmissionData = { export type ExecutionContentType = 'human_input' -export type SimpleEndUser = { - id: string - is_anonymous: boolean - session_id?: string | null - type: string -} - export type WorkflowRunForLogResponse = { created_at?: number | null elapsed_time?: number | null @@ -1110,29 +1343,60 @@ export type WorkflowRunForArchivedLogResponse = { triggered_from?: string | null } -export type UserAction = { +export type UserActionConfig = { button_style?: ButtonStyle id: string title: string } -export type FormInput = { - default?: FormInputDefault +export type ParagraphInputConfig = { + default?: StringSource output_variable_name: string - type: FormInputType + type?: string } -export type ButtonStyle = 'primary' | 'default' | 'accent' | 'ghost' +export type SelectInputConfig = { + option_source: StringListSource + output_variable_name: string + type?: string +} -export type FormInputDefault = { +export type FileInputConfig = { + allowed_file_extensions?: Array + allowed_file_types?: Array + allowed_file_upload_methods?: Array + output_variable_name: string + type?: string +} + +export type FileListInputConfig = { + allowed_file_extensions?: Array + allowed_file_types?: Array + allowed_file_upload_methods?: Array + number_limits?: number + output_variable_name: string + type?: string +} + +export type ButtonStyle = 'accent' | 'default' | 'ghost' | 'primary' + +export type StringSource = { selector?: Array - type: PlaceholderType + type: ValueSourceType value?: string } -export type FormInputType = 'text_input' | 'paragraph' +export type StringListSource = { + selector?: Array + type: ValueSourceType + value?: Array +} -export type PlaceholderType = 'variable' | 'constant' +export type FileType = 'audio' | 'custom' | 'document' | 'image' | 'video' + +export type FileTransferMethod = 'datasource_file' | 'local_file' | 'remote_url' | 'tool_file' + +export type ValueSourceType = 'constant' | 'variable' export type GetAppsData = { body?: never @@ -1140,7 +1404,7 @@ export type GetAppsData = { query?: { is_created_by_me?: boolean | null limit?: number - mode?: 'completion' | 'chat' | 'advanced-chat' | 'workflow' | 'agent-chat' | 'channel' | 'all' + mode?: 'advanced-chat' | 'agent-chat' | 'all' | 'channel' | 'chat' | 'completion' | 'workflow' name?: string | null page?: number tag_ids?: Array | null @@ -1237,23 +1501,21 @@ export type PostAppsImportsByImportIdConfirmResponses = { export type PostAppsImportsByImportIdConfirmResponse = PostAppsImportsByImportIdConfirmResponses[keyof PostAppsImportsByImportIdConfirmResponses] -export type GetAppsWorkflowsOnlineUsersData = { - body?: never +export type PostAppsWorkflowsOnlineUsersData = { + body: WorkflowOnlineUsersPayload path?: never - query: { - app_ids: string - } + query?: never url: '/apps/workflows/online-users' } -export type GetAppsWorkflowsOnlineUsersResponses = { +export type PostAppsWorkflowsOnlineUsersResponses = { 200: { [key: string]: unknown } } -export type GetAppsWorkflowsOnlineUsersResponse - = GetAppsWorkflowsOnlineUsersResponses[keyof GetAppsWorkflowsOnlineUsersResponses] +export type PostAppsWorkflowsOnlineUsersResponse + = PostAppsWorkflowsOnlineUsersResponses[keyof PostAppsWorkflowsOnlineUsersResponses] export type DeleteAppsByAppIdData = { body?: never @@ -1327,16 +1589,16 @@ export type GetAppsByAppIdAdvancedChatWorkflowRunsData = { app_id: string } query?: { - triggered_from?: 'debugging' | 'app-run' | null - status?: 'running' | 'succeeded' | 'failed' | 'stopped' | 'partial-succeeded' | null - last_id?: string | null + last_id?: string limit?: number + status?: 'failed' | 'partial-succeeded' | 'running' | 'stopped' | 'succeeded' + triggered_from?: 'app-run' | 'debugging' } url: '/apps/{app_id}/advanced-chat/workflow-runs' } export type GetAppsByAppIdAdvancedChatWorkflowRunsResponses = { - 200: AdvancedChatWorkflowRunPagination + 200: AdvancedChatWorkflowRunPaginationResponse } export type GetAppsByAppIdAdvancedChatWorkflowRunsResponse @@ -1348,15 +1610,15 @@ export type GetAppsByAppIdAdvancedChatWorkflowRunsCountData = { app_id: string } query?: { - triggered_from?: 'debugging' | 'app-run' | null - time_range?: string | null - status?: 'running' | 'succeeded' | 'failed' | 'stopped' | 'partial-succeeded' | null + status?: 'failed' | 'partial-succeeded' | 'running' | 'stopped' | 'succeeded' + time_range?: string + triggered_from?: 'app-run' | 'debugging' } url: '/apps/{app_id}/advanced-chat/workflow-runs/count' } export type GetAppsByAppIdAdvancedChatWorkflowRunsCountResponses = { - 200: WorkflowRunCount + 200: WorkflowRunCountResponse } export type GetAppsByAppIdAdvancedChatWorkflowRunsCountResponse @@ -1525,8 +1787,8 @@ export type GetAppsByAppIdAgentLogsResponse export type PostAppsByAppIdAnnotationReplyByActionData = { body: AnnotationReplyPayload path: { - app_id: string action: string + app_id: string } query?: never url: '/apps/{app_id}/annotation-reply/{action}' @@ -1553,8 +1815,8 @@ export type PostAppsByAppIdAnnotationReplyByActionResponse export type GetAppsByAppIdAnnotationReplyByActionStatusByJobIdData = { body?: never path: { - app_id: string action: string + app_id: string job_id: string } query?: never @@ -1609,8 +1871,8 @@ export type GetAppsByAppIdAnnotationSettingResponse export type PostAppsByAppIdAnnotationSettingsByAnnotationSettingIdData = { body: AnnotationSettingUpdatePayload path: { - app_id: string annotation_setting_id: string + app_id: string } query?: never url: '/apps/{app_id}/annotation-settings/{annotation_setting_id}' @@ -1835,8 +2097,8 @@ export type DeleteAppsByAppIdAnnotationsByAnnotationIdResponse export type PostAppsByAppIdAnnotationsByAnnotationIdData = { body: UpdateAnnotationPayload path: { - app_id: string annotation_id: string + app_id: string } query?: never url: '/apps/{app_id}/annotations/{annotation_id}' @@ -1864,12 +2126,12 @@ export type PostAppsByAppIdAnnotationsByAnnotationIdResponse export type GetAppsByAppIdAnnotationsByAnnotationIdHitHistoriesData = { body?: never path: { - app_id: string annotation_id: string + app_id: string } query?: { - page?: number limit?: number + page?: number } url: '/apps/{app_id}/annotations/{annotation_id}/hit-histories' } @@ -1949,12 +2211,12 @@ export type GetAppsByAppIdChatConversationsData = { app_id: string } query?: { - annotation_status?: 'annotated' | 'not_annotated' | 'all' + annotation_status?: 'all' | 'annotated' | 'not_annotated' end?: string | null keyword?: string | null limit?: number page?: number - sort_by?: 'created_at' | '-created_at' | 'updated_at' | '-updated_at' + sort_by?: '-created_at' | '-updated_at' | 'created_at' | 'updated_at' start?: string | null } url: '/apps/{app_id}/chat-conversations' @@ -2116,7 +2378,7 @@ export type GetAppsByAppIdCompletionConversationsData = { app_id: string } query?: { - annotation_status?: 'annotated' | 'not_annotated' | 'all' + annotation_status?: 'all' | 'annotated' | 'not_annotated' end?: string | null keyword?: string | null limit?: number @@ -2388,9 +2650,9 @@ export type GetAppsByAppIdFeedbacksExportData = { query?: { end_date?: string | null format?: 'csv' | 'json' - from_source?: 'user' | 'admin' | null + from_source?: 'admin' | 'user' | null has_comment?: boolean | null - rating?: 'like' | 'dislike' | null + rating?: 'dislike' | 'like' | null start_date?: string | null } url: '/apps/{app_id}/feedbacks/export' @@ -3149,16 +3411,16 @@ export type GetAppsByAppIdWorkflowRunsData = { app_id: string } query?: { - triggered_from?: 'debugging' | 'app-run' | null - status?: 'running' | 'succeeded' | 'failed' | 'stopped' | 'partial-succeeded' | null - last_id?: string | null + last_id?: string limit?: number + status?: 'failed' | 'partial-succeeded' | 'running' | 'stopped' | 'succeeded' + triggered_from?: 'app-run' | 'debugging' } url: '/apps/{app_id}/workflow-runs' } export type GetAppsByAppIdWorkflowRunsResponses = { - 200: WorkflowRunPagination + 200: WorkflowRunPaginationResponse } export type GetAppsByAppIdWorkflowRunsResponse @@ -3170,15 +3432,15 @@ export type GetAppsByAppIdWorkflowRunsCountData = { app_id: string } query?: { - triggered_from?: 'debugging' | 'app-run' | null - time_range?: string | null - status?: 'running' | 'succeeded' | 'failed' | 'stopped' | 'partial-succeeded' | null + status?: 'failed' | 'partial-succeeded' | 'running' | 'stopped' | 'succeeded' + time_range?: string + triggered_from?: 'app-run' | 'debugging' } url: '/apps/{app_id}/workflow-runs/count' } export type GetAppsByAppIdWorkflowRunsCountResponses = { - 200: WorkflowRunCount + 200: WorkflowRunCountResponse } export type GetAppsByAppIdWorkflowRunsCountResponse @@ -3235,7 +3497,7 @@ export type GetAppsByAppIdWorkflowRunsByRunIdError = GetAppsByAppIdWorkflowRunsByRunIdErrors[keyof GetAppsByAppIdWorkflowRunsByRunIdErrors] export type GetAppsByAppIdWorkflowRunsByRunIdResponses = { - 200: WorkflowRunDetail + 200: WorkflowRunDetailResponse } export type GetAppsByAppIdWorkflowRunsByRunIdResponse @@ -3252,7 +3514,7 @@ export type GetAppsByAppIdWorkflowRunsByRunIdExportData = { } export type GetAppsByAppIdWorkflowRunsByRunIdExportResponses = { - 200: WorkflowRunExport + 200: WorkflowRunExportResponse } export type GetAppsByAppIdWorkflowRunsByRunIdExportResponse @@ -3278,7 +3540,7 @@ export type GetAppsByAppIdWorkflowRunsByRunIdNodeExecutionsError = GetAppsByAppIdWorkflowRunsByRunIdNodeExecutionsErrors[keyof GetAppsByAppIdWorkflowRunsByRunIdNodeExecutionsErrors] export type GetAppsByAppIdWorkflowRunsByRunIdNodeExecutionsResponses = { - 200: WorkflowRunNodeExecutionList + 200: WorkflowRunNodeExecutionListResponse } export type GetAppsByAppIdWorkflowRunsByRunIdNodeExecutionsResponse @@ -3911,7 +4173,7 @@ export type GetAppsByAppIdWorkflowsDraftNodesByNodeIdLastRunError = GetAppsByAppIdWorkflowsDraftNodesByNodeIdLastRunErrors[keyof GetAppsByAppIdWorkflowsDraftNodesByNodeIdLastRunErrors] export type GetAppsByAppIdWorkflowsDraftNodesByNodeIdLastRunResponses = { - 200: WorkflowRunNodeExecution + 200: WorkflowRunNodeExecutionResponse } export type GetAppsByAppIdWorkflowsDraftNodesByNodeIdLastRunResponse @@ -3940,7 +4202,7 @@ export type PostAppsByAppIdWorkflowsDraftNodesByNodeIdRunError = PostAppsByAppIdWorkflowsDraftNodesByNodeIdRunErrors[keyof PostAppsByAppIdWorkflowsDraftNodesByNodeIdRunErrors] export type PostAppsByAppIdWorkflowsDraftNodesByNodeIdRunResponses = { - 200: WorkflowRunNodeExecution + 200: WorkflowRunNodeExecutionResponse } export type PostAppsByAppIdWorkflowsDraftNodesByNodeIdRunResponse @@ -3980,8 +4242,8 @@ export type PostAppsByAppIdWorkflowsDraftNodesByNodeIdTriggerRunResponse export type DeleteAppsByAppIdWorkflowsDraftNodesByNodeIdVariablesData = { body?: never path: { - node_id: string app_id: string + node_id: string } query?: never url: '/apps/{app_id}/workflows/draft/nodes/{node_id}/variables' @@ -4140,8 +4402,8 @@ export type GetAppsByAppIdWorkflowsDraftVariablesData = { app_id: string } query?: { - page?: number limit?: number + page?: number } url: '/apps/{app_id}/workflows/draft/variables' } @@ -4156,8 +4418,8 @@ export type GetAppsByAppIdWorkflowsDraftVariablesResponse export type DeleteAppsByAppIdWorkflowsDraftVariablesByVariableIdData = { body?: never path: { - variable_id: string app_id: string + variable_id: string } query?: never url: '/apps/{app_id}/workflows/draft/variables/{variable_id}' @@ -4210,8 +4472,8 @@ export type GetAppsByAppIdWorkflowsDraftVariablesByVariableIdResponse export type PatchAppsByAppIdWorkflowsDraftVariablesByVariableIdData = { body: WorkflowDraftVariableUpdatePayload path: { - variable_id: string app_id: string + variable_id: string } query?: never url: '/apps/{app_id}/workflows/draft/variables/{variable_id}' @@ -4328,8 +4590,8 @@ export type GetAppsByAppIdWorkflowsTriggersWebhookResponse export type DeleteAppsByAppIdWorkflowsByWorkflowIdData = { body?: never path: { - workflow_id: string app_id: string + workflow_id: string } query?: never url: '/apps/{app_id}/workflows/{workflow_id}' @@ -4448,8 +4710,8 @@ export type PostAppsByResourceIdApiKeysResponse export type DeleteAppsByResourceIdApiKeysByApiKeyIdData = { body?: never path: { - resource_id: string api_key_id: string + resource_id: string } query?: never url: '/apps/{resource_id}/api-keys/{api_key_id}' diff --git a/packages/contracts/generated/api/console/apps/zod.gen.ts b/packages/contracts/generated/api/console/apps/zod.gen.ts index 9798d22cc0..6efd8ad155 100644 --- a/packages/contracts/generated/api/console/apps/zod.gen.ts +++ b/packages/contracts/generated/api/console/apps/zod.gen.ts @@ -17,9 +17,24 @@ export const zAppImportPayload = z.object({ yaml_url: z.string().nullish(), }) -export const zAdvancedChatWorkflowRunPagination = z.record(z.string(), z.unknown()) +/** + * WorkflowOnlineUsersPayload + */ +export const zWorkflowOnlineUsersPayload = z.object({ + app_ids: z.array(z.string()).optional(), +}) -export const zWorkflowRunCount = z.record(z.string(), z.unknown()) +/** + * WorkflowRunCountResponse + */ +export const zWorkflowRunCountResponse = z.object({ + failed: z.int(), + partial_succeeded: z.int(), + running: z.int(), + stopped: z.int(), + succeeded: z.int(), + total: z.int(), +}) /** * HumanInputFormPreviewPayload @@ -180,7 +195,7 @@ export const zAppExportResponse = z.object({ export const zMessageFeedbackPayload = z.object({ content: z.string().nullish(), message_id: z.string(), - rating: z.enum(['like', 'dislike']).nullish(), + rating: z.enum(['dislike', 'like']).nullish(), }) /** @@ -235,7 +250,7 @@ export const zAppSiteUpdatePayload = z.object({ copyright: z.string().nullish(), custom_disclaimer: z.string().nullish(), customize_domain: z.string().nullish(), - customize_token_strategy: z.enum(['must', 'allow', 'not_allow']).nullish(), + customize_token_strategy: z.enum(['allow', 'must', 'not_allow']).nullish(), default_language: z.string().nullish(), description: z.string().nullish(), icon: z.string().nullish(), @@ -339,15 +354,14 @@ export const zWorkflowTriggerListResponse = z.object({ data: z.array(zWorkflowTriggerResponse), }) -export const zWorkflowRunPagination = z.record(z.string(), z.unknown()) - -export const zWorkflowRunDetail = z.record(z.string(), z.unknown()) - -export const zWorkflowRunExport = z.record(z.string(), z.unknown()) - -export const zWorkflowRunNodeExecutionList = z.record(z.string(), z.unknown()) - -export const zWorkflowCommentBasic = z.record(z.string(), z.unknown()) +/** + * WorkflowRunExportResponse + */ +export const zWorkflowRunExportResponse = z.object({ + presigned_url: z.string().nullish(), + presigned_url_expires_at: z.string().nullish(), + status: z.string(), +}) /** * WorkflowCommentCreatePayload @@ -359,9 +373,10 @@ export const zWorkflowCommentCreatePayload = z.object({ position_y: z.number(), }) -export const zWorkflowCommentCreate = z.record(z.string(), z.unknown()) - -export const zWorkflowCommentDetail = z.record(z.string(), z.unknown()) +export const zWorkflowCommentCreate = z.object({ + created_at: z.record(z.string(), z.unknown()).optional(), + id: z.string().optional(), +}) /** * WorkflowCommentUpdatePayload @@ -373,7 +388,10 @@ export const zWorkflowCommentUpdatePayload = z.object({ position_y: z.number().nullish(), }) -export const zWorkflowCommentUpdate = z.record(z.string(), z.unknown()) +export const zWorkflowCommentUpdate = z.object({ + id: z.string().optional(), + updated_at: z.record(z.string(), z.unknown()).optional(), +}) /** * WorkflowCommentReplyPayload @@ -383,15 +401,22 @@ export const zWorkflowCommentReplyPayload = z.object({ mentioned_user_ids: z.array(z.string()).optional(), }) -export const zWorkflowCommentReplyCreate = z.record(z.string(), z.unknown()) +export const zWorkflowCommentReplyCreate = z.object({ + created_at: z.record(z.string(), z.unknown()).optional(), + id: z.string().optional(), +}) -export const zWorkflowCommentReplyUpdate = z.record(z.string(), z.unknown()) +export const zWorkflowCommentReplyUpdate = z.object({ + id: z.string().optional(), + updated_at: z.record(z.string(), z.unknown()).optional(), +}) -export const zWorkflowCommentResolve = z.record(z.string(), z.unknown()) - -export const zWorkflowPagination = z.record(z.string(), z.unknown()) - -export const zWorkflow = z.record(z.string(), z.unknown()) +export const zWorkflowCommentResolve = z.object({ + id: z.string().optional(), + resolved: z.boolean().optional(), + resolved_at: z.record(z.string(), z.unknown()).optional(), + resolved_by: z.string().optional(), +}) /** * SyncDraftWorkflowPayload @@ -404,9 +429,11 @@ export const zSyncDraftWorkflowPayload = z.object({ hash: z.string().nullish(), }) -export const zSyncDraftWorkflowResponse = z.record(z.string(), z.unknown()) - -export const zWorkflowDraftVariableList = z.record(z.string(), z.unknown()) +export const zSyncDraftWorkflowResponse = z.object({ + hash: z.string().optional(), + result: z.string().optional(), + updated_at: z.string().optional(), +}) /** * ConversationVariableUpdatePayload @@ -437,8 +464,6 @@ export const zHumanInputDeliveryTestPayload = z.object({ inputs: z.record(z.string(), z.unknown()).optional(), }) -export const zWorkflowRunNodeExecution = z.record(z.string(), z.unknown()) - /** * DraftWorkflowNodeRunPayload */ @@ -458,7 +483,9 @@ export const zDraftWorkflowRunPayload = z.object({ start_node_id: z.string(), }) -export const zDraftWorkflowTriggerRunRequest = z.record(z.string(), z.unknown()) +export const zDraftWorkflowTriggerRunRequest = z.object({ + node_id: z.string(), +}) /** * DraftWorkflowTriggerRunAllPayload @@ -467,9 +494,23 @@ export const zDraftWorkflowTriggerRunAllPayload = z.object({ node_ids: z.array(z.string()), }) -export const zWorkflowDraftVariableListWithoutValue = z.record(z.string(), z.unknown()) +export const zWorkflowDraftVariable = z.object({ + description: z.string().optional(), + edited: z.boolean().optional(), + full_content: z.record(z.string(), z.unknown()).optional(), + id: z.string().optional(), + is_truncated: z.boolean().optional(), + name: z.string().optional(), + selector: z.array(z.string()).optional(), + type: z.string().optional(), + value: z.record(z.string(), z.unknown()).optional(), + value_type: z.string().optional(), + visible: z.boolean().optional(), +}) -export const zWorkflowDraftVariable = z.record(z.string(), z.unknown()) +export const zWorkflowDraftVariableList = z.object({ + items: z.array(zWorkflowDraftVariable).optional(), +}) /** * WorkflowDraftVariableUpdatePayload @@ -528,7 +569,7 @@ export const zApiKeyList = z.object({ /** * IconType */ -export const zIconType = z.enum(['image', 'emoji', 'link']) +export const zIconType = z.enum(['emoji', 'image', 'link']) /** * CreateAppPayload @@ -538,7 +579,7 @@ export const zCreateAppPayload = z.object({ icon: z.string().nullish(), icon_background: z.string().nullish(), icon_type: zIconType.optional(), - mode: z.enum(['chat', 'agent-chat', 'advanced-chat', 'workflow', 'completion']), + mode: z.enum(['advanced-chat', 'agent-chat', 'chat', 'completion', 'workflow']), name: z.string().min(1), }) @@ -586,36 +627,6 @@ export const zTag = z.object({ export const zJsonValue = z.unknown() -/** - * ModelConfig - */ -export const zModelConfig = z.object({ - agent_mode_dict: zJsonValue.optional(), - annotation_reply_dict: zJsonValue.optional(), - chat_prompt_config_dict: zJsonValue.optional(), - completion_prompt_config_dict: zJsonValue.optional(), - created_at: z.int().nullish(), - created_by: z.string().nullish(), - dataset_configs_dict: zJsonValue.optional(), - dataset_query_variable: z.string().nullish(), - external_data_tools_list: zJsonValue.optional(), - file_upload_dict: zJsonValue.optional(), - model_dict: zJsonValue.optional(), - more_like_this_dict: zJsonValue.optional(), - opening_statement: z.string().nullish(), - pre_prompt: z.string().nullish(), - prompt_type: z.string().nullish(), - retriever_resource_dict: zJsonValue.optional(), - sensitive_word_avoidance_dict: zJsonValue.optional(), - speech_to_text_dict: zJsonValue.optional(), - suggested_questions_after_answer_dict: zJsonValue.optional(), - suggested_questions_list: zJsonValue.optional(), - text_to_speech_dict: zJsonValue.optional(), - updated_at: z.int().nullish(), - updated_by: z.string().nullish(), - user_input_form_list: zJsonValue.optional(), -}) - /** * WorkflowPartial */ @@ -627,34 +638,10 @@ export const zWorkflowPartial = z.object({ updated_by: z.string().nullish(), }) -/** - * AppDetail - */ -export const zAppDetail = z.object({ - access_mode: z.string().nullish(), - app_model_config: zModelConfig.optional(), - created_at: z.int().nullish(), - created_by: z.string().nullish(), - description: z.string().nullish(), - enable_api: z.boolean(), - enable_site: z.boolean(), - icon: z.string().nullish(), - icon_background: z.string().nullish(), - id: z.string(), - mode_compatible_with_agent: z.string(), - name: z.string(), - tags: z.array(zTag).optional(), - tracing: zJsonValue.optional(), - updated_at: z.int().nullish(), - updated_by: z.string().nullish(), - use_icon_as_answer_icon: z.boolean().nullish(), - workflow: zWorkflowPartial.optional(), -}) - /** * ImportStatus */ -export const zImportStatus = z.enum(['completed', 'completed-with-warnings', 'pending', 'failed']) +export const zImportStatus = z.enum(['completed', 'completed-with-warnings', 'failed', 'pending']) /** * Import @@ -706,35 +693,6 @@ export const zSite = z.object({ use_icon_as_answer_icon: z.boolean().nullish(), }) -/** - * AppDetailWithSite - */ -export const zAppDetailWithSite = z.object({ - access_mode: z.string().nullish(), - api_base_url: z.string().nullish(), - app_model_config: zModelConfig.optional(), - created_at: z.int().nullish(), - created_by: z.string().nullish(), - deleted_tools: z.array(zDeletedTool).optional(), - description: z.string().nullish(), - enable_api: z.boolean(), - enable_site: z.boolean(), - icon: z.string().nullish(), - icon_background: z.string().nullish(), - icon_type: z.string().nullish(), - id: z.string(), - max_active_requests: z.int().nullish(), - mode_compatible_with_agent: z.string(), - name: z.string(), - site: zSite.optional(), - tags: z.array(zTag).optional(), - tracing: zJsonValue.optional(), - updated_at: z.int().nullish(), - updated_by: z.string().nullish(), - use_icon_as_answer_icon: z.boolean().nullish(), - workflow: zWorkflowPartial.optional(), -}) - /** * AnnotationHitHistory */ @@ -767,25 +725,6 @@ export const zFeedbackStat = z.object({ like: z.int(), }) -/** - * ConversationDetail - */ -export const zConversationDetail = z.object({ - admin_feedback_stats: zFeedbackStat.optional(), - annotated: z.boolean(), - created_at: z.int().nullish(), - from_account_id: z.string().nullish(), - from_end_user_id: z.string().nullish(), - from_source: z.string(), - id: z.string(), - introduction: z.string().nullish(), - message_count: z.int(), - model_config: zModelConfig.optional(), - status: z.string(), - updated_at: z.int().nullish(), - user_feedback_stats: zFeedbackStat.optional(), -}) - /** * ConversationVariableResponse */ @@ -848,7 +787,7 @@ export const zMessageFile = z.object({ * * AppMCPServer Status Enum */ -export const zAppMcpServerStatus = z.enum(['normal', 'active', 'inactive']) +export const zAppMcpServerStatus = z.enum(['active', 'inactive', 'normal']) /** * AppMCPServerResponse @@ -864,6 +803,221 @@ export const zAppMcpServerResponse = z.object({ updated_at: z.int().nullish(), }) +/** + * SimpleAccount + */ +export const zSimpleAccount = z.object({ + email: z.string(), + id: z.string(), + name: z.string(), +}) + +/** + * AdvancedChatWorkflowRunForListResponse + */ +export const zAdvancedChatWorkflowRunForListResponse = z.object({ + conversation_id: z.string().nullish(), + created_at: z.int().nullish(), + created_by_account: zSimpleAccount.optional(), + elapsed_time: z.number().nullish(), + exceptions_count: z.int().nullish(), + finished_at: z.int().nullish(), + id: z.string(), + message_id: z.string().nullish(), + retry_index: z.int().nullish(), + status: z.string().nullish(), + total_steps: z.int().nullish(), + total_tokens: z.int().nullish(), + version: z.string().nullish(), +}) + +/** + * AdvancedChatWorkflowRunPaginationResponse + */ +export const zAdvancedChatWorkflowRunPaginationResponse = z.object({ + data: z.array(zAdvancedChatWorkflowRunForListResponse), + has_more: z.boolean(), + limit: z.int(), +}) + +/** + * ConversationAnnotation + */ +export const zConversationAnnotation = z.object({ + account: zSimpleAccount.optional(), + content: z.string(), + created_at: z.int().nullish(), + id: z.string(), + question: z.string().nullish(), +}) + +/** + * ConversationAnnotationHitHistory + */ +export const zConversationAnnotationHitHistory = z.object({ + annotation_create_account: zSimpleAccount.optional(), + created_at: z.int().nullish(), + id: z.string(), +}) + +/** + * Feedback + */ +export const zFeedback = z.object({ + content: z.string().nullish(), + from_account: zSimpleAccount.optional(), + from_end_user_id: z.string().nullish(), + from_source: z.string(), + rating: z.string(), +}) + +/** + * MessageDetail + */ +export const zMessageDetail = z.object({ + agent_thoughts: z.array(zAgentThought), + annotation: zConversationAnnotation.optional(), + annotation_hit_history: zConversationAnnotationHitHistory.optional(), + answer_tokens: z.int(), + conversation_id: z.string(), + created_at: z.int().nullish(), + error: z.string().nullish(), + feedbacks: z.array(zFeedback), + from_account_id: z.string().nullish(), + from_end_user_id: z.string().nullish(), + from_source: z.string(), + id: z.string(), + inputs: z.record(z.string(), zJsonValue), + message: zJsonValue, + message_files: z.array(zMessageFile), + message_metadata_dict: zJsonValue, + message_tokens: z.int(), + parent_message_id: z.string().nullish(), + provider_response_latency: z.number(), + query: z.string(), + re_sign_file_url_answer: z.string(), + status: z.string(), + workflow_run_id: z.string().nullish(), +}) + +/** + * WorkflowRunForListResponse + */ +export const zWorkflowRunForListResponse = z.object({ + created_at: z.int().nullish(), + created_by_account: zSimpleAccount.optional(), + elapsed_time: z.number().nullish(), + exceptions_count: z.int().nullish(), + finished_at: z.int().nullish(), + id: z.string(), + retry_index: z.int().nullish(), + status: z.string().nullish(), + total_steps: z.int().nullish(), + total_tokens: z.int().nullish(), + version: z.string().nullish(), +}) + +/** + * WorkflowRunPaginationResponse + */ +export const zWorkflowRunPaginationResponse = z.object({ + data: z.array(zWorkflowRunForListResponse), + has_more: z.boolean(), + limit: z.int(), +}) + +/** + * SimpleEndUser + */ +export const zSimpleEndUser = z.object({ + id: z.string(), + is_anonymous: z.boolean(), + session_id: z.string().nullish(), + type: z.string(), +}) + +/** + * WorkflowRunDetailResponse + */ +export const zWorkflowRunDetailResponse = z.object({ + created_at: z.int().nullish(), + created_by_account: zSimpleAccount.optional(), + created_by_end_user: zSimpleEndUser.optional(), + created_by_role: z.string().nullish(), + elapsed_time: z.number().nullish(), + error: z.string().nullish(), + exceptions_count: z.int().nullish(), + finished_at: z.int().nullish(), + graph: z.unknown(), + id: z.string(), + inputs: z.unknown(), + outputs: z.unknown(), + status: z.string().nullish(), + total_steps: z.int().nullish(), + total_tokens: z.int().nullish(), + version: z.string().nullish(), +}) + +/** + * WorkflowRunNodeExecutionResponse + */ +export const zWorkflowRunNodeExecutionResponse = z.object({ + created_at: z.int().nullish(), + created_by_account: zSimpleAccount.optional(), + created_by_end_user: zSimpleEndUser.optional(), + created_by_role: z.string().nullish(), + elapsed_time: z.number().nullish(), + error: z.string().nullish(), + execution_metadata: z.unknown().optional(), + extras: z.unknown().optional(), + finished_at: z.int().nullish(), + id: z.string(), + index: z.int().nullish(), + inputs: z.unknown().optional(), + inputs_truncated: z.boolean().nullish(), + node_id: z.string().nullish(), + node_type: z.string().nullish(), + outputs: z.unknown().optional(), + outputs_truncated: z.boolean().nullish(), + predecessor_node_id: z.string().nullish(), + process_data: z.unknown().optional(), + process_data_truncated: z.boolean().nullish(), + status: z.string().nullish(), + title: z.string().nullish(), +}) + +/** + * WorkflowRunNodeExecutionListResponse + */ +export const zWorkflowRunNodeExecutionListResponse = z.object({ + data: z.array(zWorkflowRunNodeExecutionResponse), +}) + +export const zAnonymousInlineModel6Fec07Cd0D85 = z.object({ + avatar_url: z.record(z.string(), z.unknown()).optional(), + email: z.string().optional(), + id: z.string().optional(), + name: z.string().optional(), +}) + +export const zWorkflowCommentBasic = z.object({ + content: z.string().optional(), + created_at: z.record(z.string(), z.unknown()).optional(), + created_by: z.string().optional(), + created_by_account: zAnonymousInlineModel6Fec07Cd0D85.optional(), + id: z.string().optional(), + mention_count: z.int().optional(), + participants: z.array(zAnonymousInlineModel6Fec07Cd0D85).optional(), + position_x: z.number().optional(), + position_y: z.number().optional(), + reply_count: z.int().optional(), + resolved: z.boolean().optional(), + resolved_at: z.record(z.string(), z.unknown()).optional(), + resolved_by: z.string().optional(), + resolved_by_account: zAnonymousInlineModel6Fec07Cd0D85.optional(), + updated_at: z.record(z.string(), z.unknown()).optional(), +}) + /** * AccountWithRole */ @@ -886,6 +1040,104 @@ export const zWorkflowCommentMentionUsersPayload = z.object({ users: z.array(zAccountWithRole), }) +export const zAnonymousInlineModelF7Ff64Cce858 = z.object({ + mentioned_user_account: zAnonymousInlineModel6Fec07Cd0D85.optional(), + mentioned_user_id: z.string().optional(), + reply_id: z.string().optional(), +}) + +export const zAnonymousInlineModel55C39C6A4B9e = z.object({ + content: z.string().optional(), + created_at: z.record(z.string(), z.unknown()).optional(), + created_by: z.string().optional(), + created_by_account: zAnonymousInlineModel6Fec07Cd0D85.optional(), + id: z.string().optional(), +}) + +export const zWorkflowCommentDetail = z.object({ + content: z.string().optional(), + created_at: z.record(z.string(), z.unknown()).optional(), + created_by: z.string().optional(), + created_by_account: zAnonymousInlineModel6Fec07Cd0D85.optional(), + id: z.string().optional(), + mentions: z.array(zAnonymousInlineModelF7Ff64Cce858).optional(), + position_x: z.number().optional(), + position_y: z.number().optional(), + replies: z.array(zAnonymousInlineModel55C39C6A4B9e).optional(), + resolved: z.boolean().optional(), + resolved_at: z.record(z.string(), z.unknown()).optional(), + resolved_by: z.string().optional(), + resolved_by_account: zAnonymousInlineModel6Fec07Cd0D85.optional(), + updated_at: z.record(z.string(), z.unknown()).optional(), +}) + +export const zConversationVariable = z.object({ + description: z.string().optional(), + id: z.string().optional(), + name: z.string().optional(), + value: z.record(z.string(), z.unknown()).optional(), + value_type: z.string().optional(), +}) + +export const zPipelineVariable = z.object({ + allow_file_extension: z.array(z.string()).optional(), + allow_file_upload_methods: z.array(z.string()).optional(), + allowed_file_types: z.array(z.string()).optional(), + belong_to_node_id: z.string().optional(), + default_value: z.record(z.string(), z.unknown()).optional(), + label: z.string().optional(), + max_length: z.int().optional(), + options: z.array(z.string()).optional(), + placeholder: z.string().optional(), + required: z.boolean().optional(), + tooltips: z.string().optional(), + type: z.string().optional(), + unit: z.string().optional(), + variable: z.string().optional(), +}) + +export const zWorkflow = z.object({ + conversation_variables: z.array(zConversationVariable).optional(), + created_at: z.record(z.string(), z.unknown()).optional(), + created_by: zSimpleAccount.optional(), + environment_variables: z.array(z.record(z.string(), z.unknown())).optional(), + features: z.record(z.string(), z.unknown()).optional(), + graph: z.record(z.string(), z.unknown()).optional(), + hash: z.string().optional(), + id: z.string().optional(), + marked_comment: z.string().optional(), + marked_name: z.string().optional(), + rag_pipeline_variables: z.array(zPipelineVariable).optional(), + tool_published: z.boolean().optional(), + updated_at: z.record(z.string(), z.unknown()).optional(), + updated_by: zSimpleAccount.optional(), + version: z.string().optional(), +}) + +export const zWorkflowPagination = z.object({ + has_more: z.boolean().optional(), + items: z.array(zWorkflow).optional(), + limit: z.int().optional(), + page: z.int().optional(), +}) + +export const zWorkflowDraftVariableWithoutValue = z.object({ + description: z.string().optional(), + edited: z.boolean().optional(), + id: z.string().optional(), + is_truncated: z.boolean().optional(), + name: z.string().optional(), + selector: z.array(z.string()).optional(), + type: z.string().optional(), + value_type: z.string().optional(), + visible: z.boolean().optional(), +}) + +export const zWorkflowDraftVariableListWithoutValue = z.object({ + items: z.array(zWorkflowDraftVariableWithoutValue).optional(), + total: z.record(z.string(), z.unknown()).optional(), +}) + /** * ModelConfigPartial */ @@ -935,6 +1187,109 @@ export const zAppPagination = z.object({ total: z.int(), }) +/** + * LLMMode + * + * Enum class for large language model mode. + */ +export const zLlmMode = z.enum(['chat', 'completion']) + +/** + * ModelConfig + */ +export const zModelConfig = z.object({ + completion_params: z.record(z.string(), z.unknown()).optional(), + mode: zLlmMode, + name: z.string(), + provider: z.string(), +}) + +/** + * AppDetail + */ +export const zAppDetail = z.object({ + access_mode: z.string().nullish(), + app_model_config: zModelConfig.optional(), + created_at: z.int().nullish(), + created_by: z.string().nullish(), + description: z.string().nullish(), + enable_api: z.boolean(), + enable_site: z.boolean(), + icon: z.string().nullish(), + icon_background: z.string().nullish(), + id: z.string(), + mode_compatible_with_agent: z.string(), + name: z.string(), + tags: z.array(zTag).optional(), + tracing: zJsonValue.optional(), + updated_at: z.int().nullish(), + updated_by: z.string().nullish(), + use_icon_as_answer_icon: z.boolean().nullish(), + workflow: zWorkflowPartial.optional(), +}) + +/** + * AppDetailWithSite + */ +export const zAppDetailWithSite = z.object({ + access_mode: z.string().nullish(), + api_base_url: z.string().nullish(), + app_model_config: zModelConfig.optional(), + created_at: z.int().nullish(), + created_by: z.string().nullish(), + deleted_tools: z.array(zDeletedTool).optional(), + description: z.string().nullish(), + enable_api: z.boolean(), + enable_site: z.boolean(), + icon: z.string().nullish(), + icon_background: z.string().nullish(), + icon_type: z.string().nullish(), + id: z.string(), + max_active_requests: z.int().nullish(), + mode_compatible_with_agent: z.string(), + name: z.string(), + site: zSite.optional(), + tags: z.array(zTag).optional(), + tracing: zJsonValue.optional(), + updated_at: z.int().nullish(), + updated_by: z.string().nullish(), + use_icon_as_answer_icon: z.boolean().nullish(), + workflow: zWorkflowPartial.optional(), +}) + +/** + * ConversationDetail + */ +export const zConversationDetail = z.object({ + admin_feedback_stats: zFeedbackStat.optional(), + annotated: z.boolean(), + created_at: z.int().nullish(), + from_account_id: z.string().nullish(), + from_end_user_id: z.string().nullish(), + from_source: z.string(), + id: z.string(), + introduction: z.string().nullish(), + message_count: z.int(), + model_config: zModelConfig.optional(), + status: z.string(), + updated_at: z.int().nullish(), + user_feedback_stats: zFeedbackStat.optional(), +}) + +/** + * ConversationMessageDetail + */ +export const zConversationMessageDetail = z.object({ + created_at: z.int().nullish(), + first_message: zMessageDetail.optional(), + from_account_id: z.string().nullish(), + from_end_user_id: z.string().nullish(), + from_source: z.string(), + id: z.string(), + model_config: zModelConfig.optional(), + status: z.string(), +}) + /** * Type */ @@ -1045,26 +1400,6 @@ export const zSimpleMessageDetail = z.object({ query: z.string(), }) -/** - * SimpleAccount - */ -export const zSimpleAccount = z.object({ - email: z.string(), - id: z.string(), - name: z.string(), -}) - -/** - * ConversationAnnotation - */ -export const zConversationAnnotation = z.object({ - account: zSimpleAccount.optional(), - content: z.string(), - created_at: z.int().nullish(), - id: z.string(), - question: z.string().nullish(), -}) - /** * Conversation */ @@ -1097,69 +1432,6 @@ export const zConversationPagination = z.object({ total: z.int(), }) -/** - * ConversationAnnotationHitHistory - */ -export const zConversationAnnotationHitHistory = z.object({ - annotation_create_account: zSimpleAccount.optional(), - created_at: z.int().nullish(), - id: z.string(), -}) - -/** - * Feedback - */ -export const zFeedback = z.object({ - content: z.string().nullish(), - from_account: zSimpleAccount.optional(), - from_end_user_id: z.string().nullish(), - from_source: z.string(), - rating: z.string(), -}) - -/** - * MessageDetail - */ -export const zMessageDetail = z.object({ - agent_thoughts: z.array(zAgentThought), - annotation: zConversationAnnotation.optional(), - annotation_hit_history: zConversationAnnotationHitHistory.optional(), - answer_tokens: z.int(), - conversation_id: z.string(), - created_at: z.int().nullish(), - error: z.string().nullish(), - feedbacks: z.array(zFeedback), - from_account_id: z.string().nullish(), - from_end_user_id: z.string().nullish(), - from_source: z.string(), - id: z.string(), - inputs: z.record(z.string(), zJsonValue), - message: zJsonValue, - message_files: z.array(zMessageFile), - message_metadata_dict: zJsonValue, - message_tokens: z.int(), - parent_message_id: z.string().nullish(), - provider_response_latency: z.number(), - query: z.string(), - re_sign_file_url_answer: z.string(), - status: z.string(), - workflow_run_id: z.string().nullish(), -}) - -/** - * ConversationMessageDetail - */ -export const zConversationMessageDetail = z.object({ - created_at: z.int().nullish(), - first_message: zMessageDetail.optional(), - from_account_id: z.string().nullish(), - from_end_user_id: z.string().nullish(), - from_source: z.string(), - id: z.string(), - model_config: zModelConfig.optional(), - status: z.string(), -}) - /** * HumanInputFormSubmissionData */ @@ -1176,16 +1448,6 @@ export const zHumanInputFormSubmissionData = z.object({ */ export const zExecutionContentType = z.enum(['human_input']) -/** - * SimpleEndUser - */ -export const zSimpleEndUser = z.object({ - id: z.string(), - is_anonymous: z.boolean(), - session_id: z.string().nullish(), - type: z.string(), -}) - /** * WorkflowRunForLogResponse */ @@ -1267,66 +1529,30 @@ export const zWorkflowArchivedLogPaginationResponse = z.object({ * * Button styles for user actions. */ -export const zButtonStyle = z.enum(['primary', 'default', 'accent', 'ghost']) +export const zButtonStyle = z.enum(['accent', 'default', 'ghost', 'primary']) /** - * UserAction + * UserActionConfig * * User action configuration. */ -export const zUserAction = z.object({ +export const zUserActionConfig = z.object({ button_style: zButtonStyle.optional(), id: z.string().max(20), - title: z.string().max(20), -}) - -/** - * FormInputType - * - * Form input types. - */ -export const zFormInputType = z.enum(['text_input', 'paragraph']) - -/** - * PlaceholderType - * - * Default value types for form inputs. - */ -export const zPlaceholderType = z.enum(['variable', 'constant']) - -/** - * FormInputDefault - * - * Default configuration for form inputs. - */ -export const zFormInputDefault = z.object({ - selector: z.array(z.string()).optional(), - type: zPlaceholderType, - value: z.string().optional().default(''), -}) - -/** - * FormInput - * - * Form input definition. - */ -export const zFormInput = z.object({ - default: zFormInputDefault.optional(), - output_variable_name: z.string(), - type: zFormInputType, + title: z.string().max(100), }) /** * HumanInputFormDefinition */ export const zHumanInputFormDefinition = z.object({ - actions: z.array(zUserAction).optional(), + actions: z.array(zUserActionConfig).optional(), display_in_ui: z.boolean().optional().default(false), expiration_time: z.int(), form_content: z.string(), form_id: z.string(), form_token: z.string().nullish(), - inputs: z.array(zFormInput).optional(), + inputs: z.array(z.unknown()).optional(), node_id: z.string(), node_title: z.string(), resolved_default_values: z.record(z.string(), z.unknown()).optional(), @@ -1382,11 +1608,97 @@ export const zMessageInfiniteScrollPaginationResponse = z.object({ limit: z.int(), }) +/** + * FileType + */ +export const zFileType = z.enum(['audio', 'custom', 'document', 'image', 'video']) + +/** + * FileTransferMethod + */ +export const zFileTransferMethod = z.enum([ + 'datasource_file', + 'local_file', + 'remote_url', + 'tool_file', +]) + +/** + * FileInputConfig + */ +export const zFileInputConfig = z.object({ + allowed_file_extensions: z.array(z.string()).optional(), + allowed_file_types: z.array(zFileType).optional(), + allowed_file_upload_methods: z.array(zFileTransferMethod).optional(), + output_variable_name: z.string(), + type: z.string().optional().default('file'), +}) + +/** + * FileListInputConfig + */ +export const zFileListInputConfig = z.object({ + allowed_file_extensions: z.array(z.string()).optional(), + allowed_file_types: z.array(zFileType).optional(), + allowed_file_upload_methods: z.array(zFileTransferMethod).optional(), + number_limits: z.int().gte(0).optional().default(0), + output_variable_name: z.string(), + type: z.string().optional().default('file-list'), +}) + +/** + * ValueSourceType + * + * ValueSourceType records whether the value comes from a static setting + * in form definiton, or a variable while the workflow is running. + */ +export const zValueSourceType = z.enum(['constant', 'variable']) + +/** + * StringSource + * + * Default configuration for form inputs. + */ +export const zStringSource = z.object({ + selector: z.array(z.string()).optional(), + type: zValueSourceType, + value: z.string().optional().default(''), +}) + +/** + * ParagraphInputConfig + * + * Form input definition. + */ +export const zParagraphInputConfig = z.object({ + default: zStringSource.optional(), + output_variable_name: z.string(), + type: z.string().optional().default('paragraph'), +}) + +/** + * StringListSource + */ +export const zStringListSource = z.object({ + selector: z.array(z.string()).optional(), + type: zValueSourceType, + value: z.array(z.string()).optional(), +}) + +/** + * SelectInputConfig + */ +export const zSelectInputConfig = z.object({ + option_source: zStringListSource, + output_variable_name: z.string(), + type: z.string().optional().default('select'), +}) + export const zGetAppsQuery = z.object({ is_created_by_me: z.boolean().nullish(), limit: z.int().gte(1).lte(100).optional().default(20), mode: z - .enum(['completion', 'chat', 'advanced-chat', 'workflow', 'agent-chat', 'channel', 'all']) + .enum(['advanced-chat', 'agent-chat', 'all', 'channel', 'chat', 'completion', 'workflow']) .optional() .default('all'), name: z.string().nullish(), @@ -1431,14 +1743,12 @@ export const zPostAppsImportsByImportIdConfirmPath = z.object({ */ export const zPostAppsImportsByImportIdConfirmResponse = zImport -export const zGetAppsWorkflowsOnlineUsersQuery = z.object({ - app_ids: z.string(), -}) +export const zPostAppsWorkflowsOnlineUsersBody = zWorkflowOnlineUsersPayload /** * Success */ -export const zGetAppsWorkflowsOnlineUsersResponse = z.record(z.string(), z.unknown()) +export const zPostAppsWorkflowsOnlineUsersResponse = z.record(z.string(), z.unknown()) export const zDeleteAppsByAppIdPath = z.object({ app_id: z.string(), @@ -1474,31 +1784,32 @@ export const zGetAppsByAppIdAdvancedChatWorkflowRunsPath = z.object({ }) export const zGetAppsByAppIdAdvancedChatWorkflowRunsQuery = z.object({ - triggered_from: z.enum(['debugging', 'app-run']).nullish(), - status: z.enum(['running', 'succeeded', 'failed', 'stopped', 'partial-succeeded']).nullish(), - last_id: z.string().nullish(), + last_id: z.string().optional(), limit: z.int().gte(1).lte(100).optional().default(20), + status: z.enum(['failed', 'partial-succeeded', 'running', 'stopped', 'succeeded']).optional(), + triggered_from: z.enum(['app-run', 'debugging']).optional(), }) /** * Workflow runs retrieved successfully */ -export const zGetAppsByAppIdAdvancedChatWorkflowRunsResponse = zAdvancedChatWorkflowRunPagination +export const zGetAppsByAppIdAdvancedChatWorkflowRunsResponse + = zAdvancedChatWorkflowRunPaginationResponse export const zGetAppsByAppIdAdvancedChatWorkflowRunsCountPath = z.object({ app_id: z.string(), }) export const zGetAppsByAppIdAdvancedChatWorkflowRunsCountQuery = z.object({ - triggered_from: z.enum(['debugging', 'app-run']).nullish(), - time_range: z.string().nullish(), - status: z.enum(['running', 'succeeded', 'failed', 'stopped', 'partial-succeeded']).nullish(), + status: z.enum(['failed', 'partial-succeeded', 'running', 'stopped', 'succeeded']).optional(), + time_range: z.string().optional(), + triggered_from: z.enum(['app-run', 'debugging']).optional(), }) /** * Workflow runs count retrieved successfully */ -export const zGetAppsByAppIdAdvancedChatWorkflowRunsCountResponse = zWorkflowRunCount +export const zGetAppsByAppIdAdvancedChatWorkflowRunsCountResponse = zWorkflowRunCountResponse export const zPostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormPreviewBody = zHumanInputFormPreviewPayload @@ -1593,8 +1904,8 @@ export const zGetAppsByAppIdAgentLogsResponse = z.array(z.record(z.string(), z.u export const zPostAppsByAppIdAnnotationReplyByActionBody = zAnnotationReplyPayload export const zPostAppsByAppIdAnnotationReplyByActionPath = z.object({ - app_id: z.string(), action: z.string(), + app_id: z.string(), }) /** @@ -1603,8 +1914,8 @@ export const zPostAppsByAppIdAnnotationReplyByActionPath = z.object({ export const zPostAppsByAppIdAnnotationReplyByActionResponse = z.record(z.string(), z.unknown()) export const zGetAppsByAppIdAnnotationReplyByActionStatusByJobIdPath = z.object({ - app_id: z.string(), action: z.string(), + app_id: z.string(), job_id: z.string(), }) @@ -1629,8 +1940,8 @@ export const zPostAppsByAppIdAnnotationSettingsByAnnotationSettingIdBody = zAnnotationSettingUpdatePayload export const zPostAppsByAppIdAnnotationSettingsByAnnotationSettingIdPath = z.object({ - app_id: z.string(), annotation_setting_id: z.string(), + app_id: z.string(), }) /** @@ -1729,8 +2040,8 @@ export const zDeleteAppsByAppIdAnnotationsByAnnotationIdResponse = z.record(z.st export const zPostAppsByAppIdAnnotationsByAnnotationIdBody = zUpdateAnnotationPayload export const zPostAppsByAppIdAnnotationsByAnnotationIdPath = z.object({ - app_id: z.string(), annotation_id: z.string(), + app_id: z.string(), }) export const zPostAppsByAppIdAnnotationsByAnnotationIdResponse = z.union([ @@ -1739,13 +2050,13 @@ export const zPostAppsByAppIdAnnotationsByAnnotationIdResponse = z.union([ ]) export const zGetAppsByAppIdAnnotationsByAnnotationIdHitHistoriesPath = z.object({ - app_id: z.string(), annotation_id: z.string(), + app_id: z.string(), }) export const zGetAppsByAppIdAnnotationsByAnnotationIdHitHistoriesQuery = z.object({ - page: z.int().optional().default(1), limit: z.int().optional().default(20), + page: z.int().optional().default(1), }) /** @@ -1779,13 +2090,13 @@ export const zGetAppsByAppIdChatConversationsPath = z.object({ }) export const zGetAppsByAppIdChatConversationsQuery = z.object({ - annotation_status: z.enum(['annotated', 'not_annotated', 'all']).optional().default('all'), + annotation_status: z.enum(['all', 'annotated', 'not_annotated']).optional().default('all'), end: z.string().nullish(), keyword: z.string().nullish(), limit: z.int().gte(1).lte(100).optional().default(20), page: z.int().gte(1).lte(99999).optional().default(1), sort_by: z - .enum(['created_at', '-created_at', 'updated_at', '-updated_at']) + .enum(['-created_at', '-updated_at', 'created_at', 'updated_at']) .optional() .default('-updated_at'), start: z.string().nullish(), @@ -1860,7 +2171,7 @@ export const zGetAppsByAppIdCompletionConversationsPath = z.object({ }) export const zGetAppsByAppIdCompletionConversationsQuery = z.object({ - annotation_status: z.enum(['annotated', 'not_annotated', 'all']).optional().default('all'), + annotation_status: z.enum(['all', 'annotated', 'not_annotated']).optional().default('all'), end: z.string().nullish(), keyword: z.string().nullish(), limit: z.int().gte(1).lte(100).optional().default(20), @@ -1988,9 +2299,9 @@ export const zGetAppsByAppIdFeedbacksExportPath = z.object({ export const zGetAppsByAppIdFeedbacksExportQuery = z.object({ end_date: z.string().nullish(), format: z.enum(['csv', 'json']).optional().default('csv'), - from_source: z.enum(['user', 'admin']).nullish(), + from_source: z.enum(['admin', 'user']).nullish(), has_comment: z.boolean().nullish(), - rating: z.enum(['like', 'dislike']).nullish(), + rating: z.enum(['dislike', 'like']).nullish(), start_date: z.string().nullish(), }) @@ -2398,31 +2709,31 @@ export const zGetAppsByAppIdWorkflowRunsPath = z.object({ }) export const zGetAppsByAppIdWorkflowRunsQuery = z.object({ - triggered_from: z.enum(['debugging', 'app-run']).nullish(), - status: z.enum(['running', 'succeeded', 'failed', 'stopped', 'partial-succeeded']).nullish(), - last_id: z.string().nullish(), + last_id: z.string().optional(), limit: z.int().gte(1).lte(100).optional().default(20), + status: z.enum(['failed', 'partial-succeeded', 'running', 'stopped', 'succeeded']).optional(), + triggered_from: z.enum(['app-run', 'debugging']).optional(), }) /** * Workflow runs retrieved successfully */ -export const zGetAppsByAppIdWorkflowRunsResponse = zWorkflowRunPagination +export const zGetAppsByAppIdWorkflowRunsResponse = zWorkflowRunPaginationResponse export const zGetAppsByAppIdWorkflowRunsCountPath = z.object({ app_id: z.string(), }) export const zGetAppsByAppIdWorkflowRunsCountQuery = z.object({ - triggered_from: z.enum(['debugging', 'app-run']).nullish(), - time_range: z.string().nullish(), - status: z.enum(['running', 'succeeded', 'failed', 'stopped', 'partial-succeeded']).nullish(), + status: z.enum(['failed', 'partial-succeeded', 'running', 'stopped', 'succeeded']).optional(), + time_range: z.string().optional(), + triggered_from: z.enum(['app-run', 'debugging']).optional(), }) /** * Workflow runs count retrieved successfully */ -export const zGetAppsByAppIdWorkflowRunsCountResponse = zWorkflowRunCount +export const zGetAppsByAppIdWorkflowRunsCountResponse = zWorkflowRunCountResponse export const zPostAppsByAppIdWorkflowRunsTasksByTaskIdStopPath = z.object({ app_id: z.string(), @@ -2445,7 +2756,7 @@ export const zGetAppsByAppIdWorkflowRunsByRunIdPath = z.object({ /** * Workflow run detail retrieved successfully */ -export const zGetAppsByAppIdWorkflowRunsByRunIdResponse = zWorkflowRunDetail +export const zGetAppsByAppIdWorkflowRunsByRunIdResponse = zWorkflowRunDetailResponse export const zGetAppsByAppIdWorkflowRunsByRunIdExportPath = z.object({ app_id: z.string(), @@ -2455,7 +2766,7 @@ export const zGetAppsByAppIdWorkflowRunsByRunIdExportPath = z.object({ /** * Export URL generated */ -export const zGetAppsByAppIdWorkflowRunsByRunIdExportResponse = zWorkflowRunExport +export const zGetAppsByAppIdWorkflowRunsByRunIdExportResponse = zWorkflowRunExportResponse export const zGetAppsByAppIdWorkflowRunsByRunIdNodeExecutionsPath = z.object({ app_id: z.string(), @@ -2466,7 +2777,7 @@ export const zGetAppsByAppIdWorkflowRunsByRunIdNodeExecutionsPath = z.object({ * Node executions retrieved successfully */ export const zGetAppsByAppIdWorkflowRunsByRunIdNodeExecutionsResponse - = zWorkflowRunNodeExecutionList + = zWorkflowRunNodeExecutionListResponse export const zGetAppsByAppIdWorkflowCommentsPath = z.object({ app_id: z.string(), @@ -2863,7 +3174,8 @@ export const zGetAppsByAppIdWorkflowsDraftNodesByNodeIdLastRunPath = z.object({ /** * Node last run retrieved successfully */ -export const zGetAppsByAppIdWorkflowsDraftNodesByNodeIdLastRunResponse = zWorkflowRunNodeExecution +export const zGetAppsByAppIdWorkflowsDraftNodesByNodeIdLastRunResponse + = zWorkflowRunNodeExecutionResponse export const zPostAppsByAppIdWorkflowsDraftNodesByNodeIdRunBody = zDraftWorkflowNodeRunPayload @@ -2875,7 +3187,8 @@ export const zPostAppsByAppIdWorkflowsDraftNodesByNodeIdRunPath = z.object({ /** * Node run started successfully */ -export const zPostAppsByAppIdWorkflowsDraftNodesByNodeIdRunResponse = zWorkflowRunNodeExecution +export const zPostAppsByAppIdWorkflowsDraftNodesByNodeIdRunResponse + = zWorkflowRunNodeExecutionResponse export const zPostAppsByAppIdWorkflowsDraftNodesByNodeIdTriggerRunPath = z.object({ app_id: z.string(), @@ -2891,8 +3204,8 @@ export const zPostAppsByAppIdWorkflowsDraftNodesByNodeIdTriggerRunResponse = z.r ) export const zDeleteAppsByAppIdWorkflowsDraftNodesByNodeIdVariablesPath = z.object({ - node_id: z.string(), app_id: z.string(), + node_id: z.string(), }) /** @@ -2970,8 +3283,8 @@ export const zGetAppsByAppIdWorkflowsDraftVariablesPath = z.object({ }) export const zGetAppsByAppIdWorkflowsDraftVariablesQuery = z.object({ - page: z.int().gte(1).lte(100000).optional().default(1), limit: z.int().gte(1).lte(100).optional().default(20), + page: z.int().gte(1).lte(100000).optional().default(1), }) /** @@ -2980,8 +3293,8 @@ export const zGetAppsByAppIdWorkflowsDraftVariablesQuery = z.object({ export const zGetAppsByAppIdWorkflowsDraftVariablesResponse = zWorkflowDraftVariableListWithoutValue export const zDeleteAppsByAppIdWorkflowsDraftVariablesByVariableIdPath = z.object({ - variable_id: z.string(), app_id: z.string(), + variable_id: z.string(), }) /** @@ -3006,8 +3319,8 @@ export const zPatchAppsByAppIdWorkflowsDraftVariablesByVariableIdBody = zWorkflowDraftVariableUpdatePayload export const zPatchAppsByAppIdWorkflowsDraftVariablesByVariableIdPath = z.object({ - variable_id: z.string(), app_id: z.string(), + variable_id: z.string(), }) /** @@ -3061,8 +3374,8 @@ export const zGetAppsByAppIdWorkflowsTriggersWebhookQuery = z.object({ export const zGetAppsByAppIdWorkflowsTriggersWebhookResponse = zWebhookTriggerResponse export const zDeleteAppsByAppIdWorkflowsByWorkflowIdPath = z.object({ - workflow_id: z.string(), app_id: z.string(), + workflow_id: z.string(), }) /** @@ -3114,8 +3427,8 @@ export const zPostAppsByResourceIdApiKeysPath = z.object({ export const zPostAppsByResourceIdApiKeysResponse = zApiKeyItem export const zDeleteAppsByResourceIdApiKeysByApiKeyIdPath = z.object({ - resource_id: z.string(), api_key_id: z.string(), + resource_id: z.string(), }) /** diff --git a/packages/contracts/generated/api/console/data-source/types.gen.ts b/packages/contracts/generated/api/console/data-source/types.gen.ts index db83d81ec1..b8e57e212a 100644 --- a/packages/contracts/generated/api/console/data-source/types.gen.ts +++ b/packages/contracts/generated/api/console/data-source/types.gen.ts @@ -39,8 +39,8 @@ export type PatchDataSourceIntegratesResponse export type GetDataSourceIntegratesByBindingIdByActionData = { body?: never path: { - binding_id: string action: string + binding_id: string } query?: never url: '/data-source/integrates/{binding_id}/{action}' @@ -58,8 +58,8 @@ export type GetDataSourceIntegratesByBindingIdByActionResponse export type PatchDataSourceIntegratesByBindingIdByActionData = { body?: never path: { - binding_id: string action: string + binding_id: string } query?: never url: '/data-source/integrates/{binding_id}/{action}' diff --git a/packages/contracts/generated/api/console/data-source/zod.gen.ts b/packages/contracts/generated/api/console/data-source/zod.gen.ts index 1684b7e637..b98caa256c 100644 --- a/packages/contracts/generated/api/console/data-source/zod.gen.ts +++ b/packages/contracts/generated/api/console/data-source/zod.gen.ts @@ -13,8 +13,8 @@ export const zGetDataSourceIntegratesResponse = z.record(z.string(), z.unknown() export const zPatchDataSourceIntegratesResponse = z.record(z.string(), z.unknown()) export const zGetDataSourceIntegratesByBindingIdByActionPath = z.object({ - binding_id: z.string(), action: z.string(), + binding_id: z.string(), }) /** @@ -23,8 +23,8 @@ export const zGetDataSourceIntegratesByBindingIdByActionPath = z.object({ export const zGetDataSourceIntegratesByBindingIdByActionResponse = z.record(z.string(), z.unknown()) export const zPatchDataSourceIntegratesByBindingIdByActionPath = z.object({ - binding_id: z.string(), action: z.string(), + binding_id: z.string(), }) /** diff --git a/packages/contracts/generated/api/console/datasets/types.gen.ts b/packages/contracts/generated/api/console/datasets/types.gen.ts index 61d380d686..ed22457ba6 100644 --- a/packages/contracts/generated/api/console/datasets/types.gen.ts +++ b/packages/contracts/generated/api/console/datasets/types.gen.ts @@ -41,7 +41,45 @@ export type ExternalDatasetCreatePayload = { } export type DatasetDetail = { - [key: string]: unknown + app_count?: number + author_name?: string + built_in_field_enabled?: boolean + chunk_structure?: string + created_at?: { + [key: string]: unknown + } + created_by?: string + data_source_type?: string + description?: string + doc_form?: string + doc_metadata?: Array + document_count?: number + embedding_available?: boolean + embedding_model?: string + embedding_model_provider?: string + enable_api?: boolean + external_knowledge_info?: ExternalKnowledgeInfo + external_retrieval_model?: ExternalRetrievalModel + icon_info?: DatasetIconInfo + id?: string + indexing_technique?: string + is_multimodal?: boolean + is_published?: boolean + name?: string + permission?: string + pipeline_id?: string + provider?: string + retrieval_model_dict?: DatasetRetrievalModel + runtime_mode?: string + summary_index_setting?: AnonymousInlineModelB1954337D565 + tags?: Array + total_available_documents?: number + total_documents?: number + updated_at?: { + [key: string]: unknown + } + updated_by?: string + word_count?: number } export type ExternalKnowledgeApiPayload = { @@ -71,7 +109,7 @@ export type KnowledgeConfig = { duplicate?: boolean embedding_model?: string | null embedding_model_provider?: string | null - indexing_technique: 'high_quality' | 'economy' + indexing_technique: 'economy' | 'high_quality' is_multimodal?: boolean name?: string | null original_document_id?: string | null @@ -224,7 +262,7 @@ export type HitTestingResponse = { export type MetadataArgs = { name: string - type: 'string' | 'number' | 'time' + type: 'number' | 'string' | 'time' } export type MetadataUpdatePayload = { @@ -232,18 +270,77 @@ export type MetadataUpdatePayload = { } export type DatasetQueryDetail = { - [key: string]: unknown + created_at?: { + [key: string]: unknown + } + created_by?: string + created_by_role?: string + id?: string + queries?: DatasetContent + source?: string + source_app_id?: string } export type RelatedAppList = { - [key: string]: unknown + data?: Array + total?: number } export type DocumentRetryPayload = { document_ids: Array } -export type DatasetPermissionEnum = 'only_me' | 'all_team_members' | 'partial_members' +export type DatasetPermissionEnum = 'all_team_members' | 'only_me' | 'partial_members' + +export type DatasetDocMetadata = { + id?: string + name?: string + type?: string +} + +export type ExternalKnowledgeInfo = { + external_knowledge_api_endpoint?: string + external_knowledge_api_id?: string + external_knowledge_api_name?: string + external_knowledge_id?: string +} + +export type ExternalRetrievalModel = { + score_threshold?: number + score_threshold_enabled?: boolean + top_k?: number +} + +export type DatasetIconInfo = { + icon?: string + icon_background?: string + icon_type?: string + icon_url?: string +} + +export type DatasetRetrievalModel = { + reranking_enable?: boolean + reranking_mode?: string + reranking_model?: DatasetRerankingModel + score_threshold?: number + score_threshold_enabled?: boolean + search_method?: string + top_k?: number + weights?: DatasetWeightedScore +} + +export type AnonymousInlineModelB1954337D565 = { + enable?: boolean + model_name?: string + model_provider_name?: string + summary_prompt?: string +} + +export type Tag = { + id: string + name: string + type: string +} export type DataSource = { info_list: InfoList @@ -299,8 +396,38 @@ export type HitTestingRecord = { tsne_position?: unknown } +export type DatasetContent = { + content?: string + content_type?: string + file_info?: DatasetFileInfo +} + +export type AppDetailKernel = { + description?: string + icon?: string + icon_background?: string + icon_type?: string + icon_url?: { + [key: string]: unknown + } + id?: string + mode?: string + name?: string +} + +export type DatasetRerankingModel = { + reranking_model_name?: string + reranking_provider_name?: string +} + +export type DatasetWeightedScore = { + keyword_setting?: DatasetKeywordSetting + vector_setting?: DatasetVectorSetting + weight_type?: string +} + export type InfoList = { - data_source_type: 'upload_file' | 'notion_import' | 'website_crawl' + data_source_type: 'notion_import' | 'upload_file' | 'website_crawl' file_info_list?: FileInfo notion_info_list?: Array | null website_info_list?: WebsiteInfo @@ -324,15 +451,15 @@ export type RerankingModel = { } export type RetrievalMethod - = | 'semantic_search' - | 'full_text_search' + = | 'full_text_search' | 'hybrid_search' | 'keyword_search' + | 'semantic_search' export type WeightModel = { keyword_setting?: WeightKeywordSetting vector_setting?: WeightVectorSetting - weight_type?: 'semantic_first' | 'keyword_first' | 'customized' | null + weight_type?: 'customized' | 'keyword_first' | 'semantic_first' | null } export type MetadataDetail = { @@ -383,6 +510,25 @@ export type HitTestingSegment = { word_count?: number | null } +export type DatasetFileInfo = { + extension?: string + id?: string + mime_type?: string + name?: string + size?: number + source_url?: string +} + +export type DatasetKeywordSetting = { + keyword_weight?: number +} + +export type DatasetVectorSetting = { + embedding_model_name?: string + embedding_provider_name?: string + vector_weight?: number +} + export type FileInfo = { file_ids: Array } @@ -413,24 +559,24 @@ export type Segmentation = { export type Condition = { comparison_operator: + | '<' + | '=' + | '>' + | 'after' + | 'before' | 'contains' - | 'not contains' - | 'start with' + | 'empty' | 'end with' + | 'in' | 'is' | 'is not' - | 'empty' + | 'not contains' | 'not empty' - | 'in' | 'not in' - | '=' + | 'start with' | '≠' - | '>' - | '<' - | '≥' | '≤' - | 'before' - | 'after' + | '≥' name: string value?: unknown } @@ -470,12 +616,12 @@ export type GetDatasetsData = { body?: never path?: never query?: { - page?: string - limit?: string ids?: string - keyword?: string - tag_ids?: string include_all?: string + keyword?: string + limit?: string + page?: string + tag_ids?: string } url: '/datasets' } @@ -646,9 +792,9 @@ export type GetDatasetsExternalKnowledgeApiData = { body?: never path?: never query?: { - page?: string - limit?: string keyword?: string + limit?: string + page?: string } url: '/datasets/external-knowledge-api' } @@ -1019,8 +1165,8 @@ export type GetDatasetsByDatasetIdAutoDisableLogsResponse export type GetDatasetsByDatasetIdBatchByBatchIndexingEstimateData = { body?: never path: { - dataset_id: string batch: string + dataset_id: string } query?: never url: '/datasets/{dataset_id}/batch/{batch}/indexing-estimate' @@ -1038,8 +1184,8 @@ export type GetDatasetsByDatasetIdBatchByBatchIndexingEstimateResponse export type GetDatasetsByDatasetIdBatchByBatchIndexingStatusData = { body?: never path: { - dataset_id: string batch: string + dataset_id: string } query?: never url: '/datasets/{dataset_id}/batch/{batch}/indexing-status' @@ -1078,11 +1224,11 @@ export type GetDatasetsByDatasetIdDocumentsData = { dataset_id: string } query?: { - page?: string - limit?: string - keyword?: string - sort?: string fetch?: string + keyword?: string + limit?: string + page?: string + sort?: string status?: string } url: '/datasets/{dataset_id}/documents' @@ -1185,8 +1331,8 @@ export type PostDatasetsByDatasetIdDocumentsMetadataResponse export type PatchDatasetsByDatasetIdDocumentsStatusByActionBatchData = { body?: never path: { - dataset_id: string action: string + dataset_id: string } query?: never url: '/datasets/{dataset_id}/documents/status/{action}/batch' @@ -1204,8 +1350,8 @@ export type PatchDatasetsByDatasetIdDocumentsStatusByActionBatchResponse export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdData = { body?: never path: { - document_id: string dataset_id: string + document_id: string } query?: never url: '/datasets/{dataset_id}/documents/{document_id}' @@ -1438,9 +1584,9 @@ export type PatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingResumeRespons export type PatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingByActionData = { body?: never path: { + action: string dataset_id: string document_id: string - action: string } query?: never url: '/datasets/{dataset_id}/documents/{document_id}/processing/{action}' @@ -1506,9 +1652,9 @@ export type PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentResponse export type PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentByActionData = { body?: never path: { + action: string dataset_id: string document_id: string - action: string } query?: never url: '/datasets/{dataset_id}/documents/{document_id}/segment/{action}' @@ -1703,10 +1849,10 @@ export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChi = { body?: never path: { + child_chunk_id: string dataset_id: string document_id: string segment_id: string - child_chunk_id: string } query?: never url: '/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}/child_chunks/{child_chunk_id}' @@ -1726,10 +1872,10 @@ export type PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChil = { body: ChildChunkUpdatePayload path: { + child_chunk_id: string dataset_id: string document_id: string segment_id: string - child_chunk_id: string } query?: never url: '/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}/child_chunks/{child_chunk_id}' @@ -1934,8 +2080,8 @@ export type PostDatasetsByDatasetIdMetadataResponse export type PostDatasetsByDatasetIdMetadataBuiltInByActionData = { body?: never path: { - dataset_id: string action: string + dataset_id: string } query?: never url: '/datasets/{dataset_id}/metadata/built-in/{action}' @@ -2148,8 +2294,8 @@ export type PostDatasetsByResourceIdApiKeysResponse export type DeleteDatasetsByResourceIdApiKeysByApiKeyIdData = { body?: never path: { - resource_id: string api_key_id: string + resource_id: string } query?: never url: '/datasets/{resource_id}/api-keys/{api_key_id}' diff --git a/packages/contracts/generated/api/console/datasets/zod.gen.ts b/packages/contracts/generated/api/console/datasets/zod.gen.ts index 76491c52a0..2768eb534b 100644 --- a/packages/contracts/generated/api/console/datasets/zod.gen.ts +++ b/packages/contracts/generated/api/console/datasets/zod.gen.ts @@ -38,8 +38,6 @@ export const zExternalDatasetCreatePayload = z.object({ name: z.string().min(1).max(100), }) -export const zDatasetDetail = z.record(z.string(), z.unknown()) - /** * ExternalKnowledgeApiPayload */ @@ -151,7 +149,7 @@ export const zExternalHitTestingPayload = z.object({ */ export const zMetadataArgs = z.object({ name: z.string(), - type: z.enum(['string', 'number', 'time']), + type: z.enum(['number', 'string', 'time']), }) /** @@ -161,10 +159,6 @@ export const zMetadataUpdatePayload = z.object({ name: z.string(), }) -export const zDatasetQueryDetail = z.record(z.string(), z.unknown()) - -export const zRelatedAppList = z.record(z.string(), z.unknown()) - /** * DocumentRetryPayload */ @@ -175,7 +169,7 @@ export const zDocumentRetryPayload = z.object({ /** * DatasetPermissionEnum */ -export const zDatasetPermissionEnum = z.enum(['only_me', 'all_team_members', 'partial_members']) +export const zDatasetPermissionEnum = z.enum(['all_team_members', 'only_me', 'partial_members']) /** * DatasetCreatePayload @@ -210,6 +204,48 @@ export const zDatasetUpdatePayload = z.object({ summary_index_setting: z.record(z.string(), z.unknown()).nullish(), }) +export const zDatasetDocMetadata = z.object({ + id: z.string().optional(), + name: z.string().optional(), + type: z.string().optional(), +}) + +export const zExternalKnowledgeInfo = z.object({ + external_knowledge_api_endpoint: z.string().optional(), + external_knowledge_api_id: z.string().optional(), + external_knowledge_api_name: z.string().optional(), + external_knowledge_id: z.string().optional(), +}) + +export const zExternalRetrievalModel = z.object({ + score_threshold: z.number().optional(), + score_threshold_enabled: z.boolean().optional(), + top_k: z.int().optional(), +}) + +export const zDatasetIconInfo = z.object({ + icon: z.string().optional(), + icon_background: z.string().optional(), + icon_type: z.string().optional(), + icon_url: z.string().optional(), +}) + +export const zAnonymousInlineModelB1954337D565 = z.object({ + enable: z.boolean().optional(), + model_name: z.string().optional(), + model_provider_name: z.string().optional(), + summary_prompt: z.string().optional(), +}) + +/** + * Tag + */ +export const zTag = z.object({ + id: z.string(), + name: z.string(), + type: z.string(), +}) + /** * DatasetResponse */ @@ -273,6 +309,27 @@ export const zDatasetAndDocumentResponse = z.object({ documents: z.array(zDocumentResponse), }) +export const zAppDetailKernel = z.object({ + description: z.string().optional(), + icon: z.string().optional(), + icon_background: z.string().optional(), + icon_type: z.string().optional(), + icon_url: z.record(z.string(), z.unknown()).optional(), + id: z.string().optional(), + mode: z.string().optional(), + name: z.string().optional(), +}) + +export const zRelatedAppList = z.object({ + data: z.array(zAppDetailKernel).optional(), + total: z.int().optional(), +}) + +export const zDatasetRerankingModel = z.object({ + reranking_model_name: z.string().optional(), + reranking_provider_name: z.string().optional(), +}) + /** * RerankingModel */ @@ -285,10 +342,10 @@ export const zRerankingModel = z.object({ * RetrievalMethod */ export const zRetrievalMethod = z.enum([ - 'semantic_search', 'full_text_search', 'hybrid_search', 'keyword_search', + 'semantic_search', ]) /** @@ -340,6 +397,96 @@ export const zHitTestingFile = z.object({ source_url: z.string().nullish(), }) +export const zDatasetFileInfo = z.object({ + extension: z.string().optional(), + id: z.string().optional(), + mime_type: z.string().optional(), + name: z.string().optional(), + size: z.int().optional(), + source_url: z.string().optional(), +}) + +export const zDatasetContent = z.object({ + content: z.string().optional(), + content_type: z.string().optional(), + file_info: zDatasetFileInfo.optional(), +}) + +export const zDatasetQueryDetail = z.object({ + created_at: z.record(z.string(), z.unknown()).optional(), + created_by: z.string().optional(), + created_by_role: z.string().optional(), + id: z.string().optional(), + queries: zDatasetContent.optional(), + source: z.string().optional(), + source_app_id: z.string().optional(), +}) + +export const zDatasetKeywordSetting = z.object({ + keyword_weight: z.number().optional(), +}) + +export const zDatasetVectorSetting = z.object({ + embedding_model_name: z.string().optional(), + embedding_provider_name: z.string().optional(), + vector_weight: z.number().optional(), +}) + +export const zDatasetWeightedScore = z.object({ + keyword_setting: zDatasetKeywordSetting.optional(), + vector_setting: zDatasetVectorSetting.optional(), + weight_type: z.string().optional(), +}) + +export const zDatasetRetrievalModel = z.object({ + reranking_enable: z.boolean().optional(), + reranking_mode: z.string().optional(), + reranking_model: zDatasetRerankingModel.optional(), + score_threshold: z.number().optional(), + score_threshold_enabled: z.boolean().optional(), + search_method: z.string().optional(), + top_k: z.int().optional(), + weights: zDatasetWeightedScore.optional(), +}) + +export const zDatasetDetail = z.object({ + app_count: z.int().optional(), + author_name: z.string().optional(), + built_in_field_enabled: z.boolean().optional(), + chunk_structure: z.string().optional(), + created_at: z.record(z.string(), z.unknown()).optional(), + created_by: z.string().optional(), + data_source_type: z.string().optional(), + description: z.string().optional(), + doc_form: z.string().optional(), + doc_metadata: z.array(zDatasetDocMetadata).optional(), + document_count: z.int().optional(), + embedding_available: z.boolean().optional(), + embedding_model: z.string().optional(), + embedding_model_provider: z.string().optional(), + enable_api: z.boolean().optional(), + external_knowledge_info: zExternalKnowledgeInfo.optional(), + external_retrieval_model: zExternalRetrievalModel.optional(), + icon_info: zDatasetIconInfo.optional(), + id: z.string().optional(), + indexing_technique: z.string().optional(), + is_multimodal: z.boolean().optional(), + is_published: z.boolean().optional(), + name: z.string().optional(), + permission: z.string().optional(), + pipeline_id: z.string().optional(), + provider: z.string().optional(), + retrieval_model_dict: zDatasetRetrievalModel.optional(), + runtime_mode: z.string().optional(), + summary_index_setting: zAnonymousInlineModelB1954337D565.optional(), + tags: z.array(zTag).optional(), + total_available_documents: z.int().optional(), + total_documents: z.int().optional(), + updated_at: z.record(z.string(), z.unknown()).optional(), + updated_by: z.string().optional(), + word_count: z.int().optional(), +}) + /** * FileInfo */ @@ -399,24 +546,24 @@ export const zProcessRule = z.object({ */ export const zCondition = z.object({ comparison_operator: z.enum([ + '<', + '=', + '>', + 'after', + 'before', 'contains', - 'not contains', - 'start with', + 'empty', 'end with', + 'in', 'is', 'is not', - 'empty', + 'not contains', 'not empty', - 'in', 'not in', - '=', + 'start with', '≠', - '>', - '<', - '≥', '≤', - 'before', - 'after', + '≥', ]), name: z.string(), value: z.unknown().optional(), @@ -454,7 +601,7 @@ export const zWeightVectorSetting = z.object({ export const zWeightModel = z.object({ keyword_setting: zWeightKeywordSetting.optional(), vector_setting: zWeightVectorSetting.optional(), - weight_type: z.enum(['semantic_first', 'keyword_first', 'customized']).nullish(), + weight_type: z.enum(['customized', 'keyword_first', 'semantic_first']).nullish(), }) /** @@ -574,7 +721,7 @@ export const zNotionInfo = z.object({ * InfoList */ export const zInfoList = z.object({ - data_source_type: z.enum(['upload_file', 'notion_import', 'website_crawl']), + data_source_type: z.enum(['notion_import', 'upload_file', 'website_crawl']), file_info_list: zFileInfo.optional(), notion_info_list: z.array(zNotionInfo).nullish(), website_info_list: zWebsiteInfo.optional(), @@ -597,7 +744,7 @@ export const zKnowledgeConfig = z.object({ duplicate: z.boolean().optional().default(true), embedding_model: z.string().nullish(), embedding_model_provider: z.string().nullish(), - indexing_technique: z.enum(['high_quality', 'economy']), + indexing_technique: z.enum(['economy', 'high_quality']), is_multimodal: z.boolean().optional().default(false), name: z.string().nullish(), original_document_id: z.string().nullish(), @@ -607,12 +754,12 @@ export const zKnowledgeConfig = z.object({ }) export const zGetDatasetsQuery = z.object({ - page: z.string().optional(), - limit: z.string().optional(), ids: z.string().optional(), - keyword: z.string().optional(), - tag_ids: z.string().optional(), include_all: z.string().optional(), + keyword: z.string().optional(), + limit: z.string().optional(), + page: z.string().optional(), + tag_ids: z.string().optional(), }) /** @@ -679,9 +826,9 @@ export const zPostDatasetsExternalBody = zExternalDatasetCreatePayload export const zPostDatasetsExternalResponse = zDatasetDetail export const zGetDatasetsExternalKnowledgeApiQuery = z.object({ - page: z.string().optional(), - limit: z.string().optional(), keyword: z.string().optional(), + limit: z.string().optional(), + page: z.string().optional(), }) /** @@ -850,8 +997,8 @@ export const zGetDatasetsByDatasetIdAutoDisableLogsPath = z.object({ export const zGetDatasetsByDatasetIdAutoDisableLogsResponse = z.record(z.string(), z.unknown()) export const zGetDatasetsByDatasetIdBatchByBatchIndexingEstimatePath = z.object({ - dataset_id: z.string(), batch: z.string(), + dataset_id: z.string(), }) /** @@ -863,8 +1010,8 @@ export const zGetDatasetsByDatasetIdBatchByBatchIndexingEstimateResponse = z.rec ) export const zGetDatasetsByDatasetIdBatchByBatchIndexingStatusPath = z.object({ - dataset_id: z.string(), batch: z.string(), + dataset_id: z.string(), }) /** @@ -889,11 +1036,11 @@ export const zGetDatasetsByDatasetIdDocumentsPath = z.object({ }) export const zGetDatasetsByDatasetIdDocumentsQuery = z.object({ - page: z.string().optional(), - limit: z.string().optional(), - keyword: z.string().optional(), - sort: z.string().optional(), fetch: z.string().optional(), + keyword: z.string().optional(), + limit: z.string().optional(), + page: z.string().optional(), + sort: z.string().optional(), status: z.string().optional(), }) @@ -953,8 +1100,8 @@ export const zPostDatasetsByDatasetIdDocumentsMetadataPath = z.object({ export const zPostDatasetsByDatasetIdDocumentsMetadataResponse = z.record(z.string(), z.unknown()) export const zPatchDatasetsByDatasetIdDocumentsStatusByActionBatchPath = z.object({ - dataset_id: z.string(), action: z.string(), + dataset_id: z.string(), }) /** @@ -966,8 +1113,8 @@ export const zPatchDatasetsByDatasetIdDocumentsStatusByActionBatchResponse = z.r ) export const zDeleteDatasetsByDatasetIdDocumentsByDocumentIdPath = z.object({ - document_id: z.string(), dataset_id: z.string(), + document_id: z.string(), }) /** @@ -1103,9 +1250,9 @@ export const zPatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingResumeRespo ) export const zPatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingByActionPath = z.object({ + action: z.string(), dataset_id: z.string(), document_id: z.string(), - action: z.string(), }) /** @@ -1144,9 +1291,9 @@ export const zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentResponse = z.re ) export const zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentByActionPath = z.object({ + action: z.string(), dataset_id: z.string(), document_id: z.string(), - action: z.string(), }) /** @@ -1287,10 +1434,10 @@ export const zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChi export const zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdPath = z.object({ + child_chunk_id: z.string(), dataset_id: z.string(), document_id: z.string(), segment_id: z.string(), - child_chunk_id: z.string(), }) /** @@ -1304,10 +1451,10 @@ export const zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdCh export const zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdPath = z.object({ + child_chunk_id: z.string(), dataset_id: z.string(), document_id: z.string(), segment_id: z.string(), - child_chunk_id: z.string(), }) /** @@ -1403,8 +1550,8 @@ export const zPostDatasetsByDatasetIdMetadataPath = z.object({ export const zPostDatasetsByDatasetIdMetadataResponse = z.record(z.string(), z.unknown()) export const zPostDatasetsByDatasetIdMetadataBuiltInByActionPath = z.object({ - dataset_id: z.string(), action: z.string(), + dataset_id: z.string(), }) /** @@ -1518,8 +1665,8 @@ export const zPostDatasetsByResourceIdApiKeysPath = z.object({ export const zPostDatasetsByResourceIdApiKeysResponse = zApiKeyItem export const zDeleteDatasetsByResourceIdApiKeysByApiKeyIdPath = z.object({ - resource_id: z.string(), api_key_id: z.string(), + resource_id: z.string(), }) /** diff --git a/packages/contracts/generated/api/console/explore/types.gen.ts b/packages/contracts/generated/api/console/explore/types.gen.ts index db56dbdac0..329c1f7722 100644 --- a/packages/contracts/generated/api/console/explore/types.gen.ts +++ b/packages/contracts/generated/api/console/explore/types.gen.ts @@ -13,7 +13,7 @@ export type RecommendedAppResponse = { app?: RecommendedAppInfoResponse app_id: string can_trial?: boolean | null - category?: string | null + categories?: Array copyright?: string | null custom_disclaimer?: string | null description?: string | null @@ -35,7 +35,7 @@ export type GetExploreAppsData = { body?: never path?: never query?: { - language?: string | null + language?: string } url: '/explore/apps' } diff --git a/packages/contracts/generated/api/console/explore/zod.gen.ts b/packages/contracts/generated/api/console/explore/zod.gen.ts index 2ceb54e7bd..c65c47be91 100644 --- a/packages/contracts/generated/api/console/explore/zod.gen.ts +++ b/packages/contracts/generated/api/console/explore/zod.gen.ts @@ -21,7 +21,7 @@ export const zRecommendedAppResponse = z.object({ app: zRecommendedAppInfoResponse.optional(), app_id: z.string(), can_trial: z.boolean().nullish(), - category: z.string().nullish(), + categories: z.array(z.string()).optional(), copyright: z.string().nullish(), custom_disclaimer: z.string().nullish(), description: z.string().nullish(), @@ -39,7 +39,7 @@ export const zRecommendedAppListResponse = z.object({ }) export const zGetExploreAppsQuery = z.object({ - language: z.string().nullish(), + language: z.string().optional(), }) /** diff --git a/packages/contracts/generated/api/console/features/types.gen.ts b/packages/contracts/generated/api/console/features/types.gen.ts index eed18d5344..4c3ba1c00f 100644 --- a/packages/contracts/generated/api/console/features/types.gen.ts +++ b/packages/contracts/generated/api/console/features/types.gen.ts @@ -5,7 +5,9 @@ export type ClientOptions = { } export type FeatureResponse = { - [key: string]: unknown + features?: { + [key: string]: unknown + } } export type GetFeaturesData = { diff --git a/packages/contracts/generated/api/console/features/zod.gen.ts b/packages/contracts/generated/api/console/features/zod.gen.ts index 1e967fb879..7bfc4debdd 100644 --- a/packages/contracts/generated/api/console/features/zod.gen.ts +++ b/packages/contracts/generated/api/console/features/zod.gen.ts @@ -2,7 +2,9 @@ import * as z from 'zod' -export const zFeatureResponse = z.record(z.string(), z.unknown()) +export const zFeatureResponse = z.object({ + features: z.record(z.string(), z.unknown()).optional(), +}) /** * Success diff --git a/packages/contracts/generated/api/console/installed-apps/types.gen.ts b/packages/contracts/generated/api/console/installed-apps/types.gen.ts index 897fc29b8b..22f9903bc8 100644 --- a/packages/contracts/generated/api/console/installed-apps/types.gen.ts +++ b/packages/contracts/generated/api/console/installed-apps/types.gen.ts @@ -43,7 +43,7 @@ export type ConversationRenamePayload = { export type MessageFeedbackPayload = { content?: string | null message_id: string - rating?: 'like' | 'dislike' | null + rating?: 'dislike' | 'like' | null } export type SavedMessageCreatePayload = { @@ -267,8 +267,8 @@ export type GetInstalledAppsByInstalledAppIdConversationsResponse export type DeleteInstalledAppsByInstalledAppIdConversationsByCIdData = { body?: never path: { - installed_app_id: string c_id: string + installed_app_id: string } query?: never url: '/installed-apps/{installed_app_id}/conversations/{c_id}' @@ -286,8 +286,8 @@ export type DeleteInstalledAppsByInstalledAppIdConversationsByCIdResponse export type PostInstalledAppsByInstalledAppIdConversationsByCIdNameData = { body: ConversationRenamePayload path: { - installed_app_id: string c_id: string + installed_app_id: string } query?: never url: '/installed-apps/{installed_app_id}/conversations/{c_id}/name' @@ -305,8 +305,8 @@ export type PostInstalledAppsByInstalledAppIdConversationsByCIdNameResponse export type PatchInstalledAppsByInstalledAppIdConversationsByCIdPinData = { body?: never path: { - installed_app_id: string c_id: string + installed_app_id: string } query?: never url: '/installed-apps/{installed_app_id}/conversations/{c_id}/pin' @@ -324,8 +324,8 @@ export type PatchInstalledAppsByInstalledAppIdConversationsByCIdPinResponse export type PatchInstalledAppsByInstalledAppIdConversationsByCIdUnpinData = { body?: never path: { - installed_app_id: string c_id: string + installed_app_id: string } query?: never url: '/installed-apps/{installed_app_id}/conversations/{c_id}/unpin' diff --git a/packages/contracts/generated/api/console/installed-apps/zod.gen.ts b/packages/contracts/generated/api/console/installed-apps/zod.gen.ts index c8683e092c..d688bba246 100644 --- a/packages/contracts/generated/api/console/installed-apps/zod.gen.ts +++ b/packages/contracts/generated/api/console/installed-apps/zod.gen.ts @@ -41,7 +41,7 @@ export const zConversationRenamePayload = z.object({ export const zMessageFeedbackPayload = z.object({ content: z.string().nullish(), message_id: z.string(), - rating: z.enum(['like', 'dislike']).nullish(), + rating: z.enum(['dislike', 'like']).nullish(), }) /** @@ -216,8 +216,8 @@ export const zGetInstalledAppsByInstalledAppIdConversationsResponse = z.record( ) export const zDeleteInstalledAppsByInstalledAppIdConversationsByCIdPath = z.object({ - installed_app_id: z.string(), c_id: z.string(), + installed_app_id: z.string(), }) /** @@ -232,8 +232,8 @@ export const zPostInstalledAppsByInstalledAppIdConversationsByCIdNameBody = zConversationRenamePayload export const zPostInstalledAppsByInstalledAppIdConversationsByCIdNamePath = z.object({ - installed_app_id: z.string(), c_id: z.string(), + installed_app_id: z.string(), }) /** @@ -245,8 +245,8 @@ export const zPostInstalledAppsByInstalledAppIdConversationsByCIdNameResponse = ) export const zPatchInstalledAppsByInstalledAppIdConversationsByCIdPinPath = z.object({ - installed_app_id: z.string(), c_id: z.string(), + installed_app_id: z.string(), }) /** @@ -258,8 +258,8 @@ export const zPatchInstalledAppsByInstalledAppIdConversationsByCIdPinResponse = ) export const zPatchInstalledAppsByInstalledAppIdConversationsByCIdUnpinPath = z.object({ - installed_app_id: z.string(), c_id: z.string(), + installed_app_id: z.string(), }) /** diff --git a/packages/contracts/generated/api/console/instruction-generate/types.gen.ts b/packages/contracts/generated/api/console/instruction-generate/types.gen.ts index 1dd3530d44..c17d0c451b 100644 --- a/packages/contracts/generated/api/console/instruction-generate/types.gen.ts +++ b/packages/contracts/generated/api/console/instruction-generate/types.gen.ts @@ -19,33 +19,15 @@ export type InstructionTemplatePayload = { } export type ModelConfig = { - agent_mode_dict?: JsonValue - annotation_reply_dict?: JsonValue - chat_prompt_config_dict?: JsonValue - completion_prompt_config_dict?: JsonValue - created_at?: number | null - created_by?: string | null - dataset_configs_dict?: JsonValue - dataset_query_variable?: string | null - external_data_tools_list?: JsonValue - file_upload_dict?: JsonValue - model_dict?: JsonValue - more_like_this_dict?: JsonValue - opening_statement?: string | null - pre_prompt?: string | null - prompt_type?: string | null - retriever_resource_dict?: JsonValue - sensitive_word_avoidance_dict?: JsonValue - speech_to_text_dict?: JsonValue - suggested_questions_after_answer_dict?: JsonValue - suggested_questions_list?: JsonValue - text_to_speech_dict?: JsonValue - updated_at?: number | null - updated_by?: string | null - user_input_form_list?: JsonValue + completion_params?: { + [key: string]: unknown + } + mode: LlmMode + name: string + provider: string } -export type JsonValue = unknown +export type LlmMode = 'chat' | 'completion' export type PostInstructionGenerateData = { body: InstructionGeneratePayload diff --git a/packages/contracts/generated/api/console/instruction-generate/zod.gen.ts b/packages/contracts/generated/api/console/instruction-generate/zod.gen.ts index 35135fdcf7..b24c9b178f 100644 --- a/packages/contracts/generated/api/console/instruction-generate/zod.gen.ts +++ b/packages/contracts/generated/api/console/instruction-generate/zod.gen.ts @@ -9,36 +9,21 @@ export const zInstructionTemplatePayload = z.object({ type: z.string(), }) -export const zJsonValue = z.unknown() +/** + * LLMMode + * + * Enum class for large language model mode. + */ +export const zLlmMode = z.enum(['chat', 'completion']) /** * ModelConfig */ export const zModelConfig = z.object({ - agent_mode_dict: zJsonValue.optional(), - annotation_reply_dict: zJsonValue.optional(), - chat_prompt_config_dict: zJsonValue.optional(), - completion_prompt_config_dict: zJsonValue.optional(), - created_at: z.int().nullish(), - created_by: z.string().nullish(), - dataset_configs_dict: zJsonValue.optional(), - dataset_query_variable: z.string().nullish(), - external_data_tools_list: zJsonValue.optional(), - file_upload_dict: zJsonValue.optional(), - model_dict: zJsonValue.optional(), - more_like_this_dict: zJsonValue.optional(), - opening_statement: z.string().nullish(), - pre_prompt: z.string().nullish(), - prompt_type: z.string().nullish(), - retriever_resource_dict: zJsonValue.optional(), - sensitive_word_avoidance_dict: zJsonValue.optional(), - speech_to_text_dict: zJsonValue.optional(), - suggested_questions_after_answer_dict: zJsonValue.optional(), - suggested_questions_list: zJsonValue.optional(), - text_to_speech_dict: zJsonValue.optional(), - updated_at: z.int().nullish(), - updated_by: z.string().nullish(), - user_input_form_list: zJsonValue.optional(), + completion_params: z.record(z.string(), z.unknown()).optional(), + mode: zLlmMode, + name: z.string(), + provider: z.string(), }) /** diff --git a/packages/contracts/generated/api/console/oauth/types.gen.ts b/packages/contracts/generated/api/console/oauth/types.gen.ts index 7091cdab7c..15bad82f5e 100644 --- a/packages/contracts/generated/api/console/oauth/types.gen.ts +++ b/packages/contracts/generated/api/console/oauth/types.gen.ts @@ -134,8 +134,8 @@ export type GetOauthDataSourceByProviderResponse export type GetOauthDataSourceByProviderByBindingIdSyncData = { body?: never path: { - provider: string binding_id: string + provider: string } query?: never url: '/oauth/data-source/{provider}/{binding_id}/sync' diff --git a/packages/contracts/generated/api/console/oauth/zod.gen.ts b/packages/contracts/generated/api/console/oauth/zod.gen.ts index 22f2c4bd76..a96b7e3382 100644 --- a/packages/contracts/generated/api/console/oauth/zod.gen.ts +++ b/packages/contracts/generated/api/console/oauth/zod.gen.ts @@ -74,8 +74,8 @@ export const zGetOauthDataSourceByProviderPath = z.object({ export const zGetOauthDataSourceByProviderResponse = zOAuthDataSourceResponse export const zGetOauthDataSourceByProviderByBindingIdSyncPath = z.object({ - provider: z.string(), binding_id: z.string(), + provider: z.string(), }) /** diff --git a/packages/contracts/generated/api/console/rag/types.gen.ts b/packages/contracts/generated/api/console/rag/types.gen.ts index e300ff443c..9de86c6cd2 100644 --- a/packages/contracts/generated/api/console/rag/types.gen.ts +++ b/packages/contracts/generated/api/console/rag/types.gen.ts @@ -28,6 +28,35 @@ export type Payload = { name: string } +export type WorkflowRunPaginationResponse = { + data: Array + has_more: boolean + limit: number +} + +export type WorkflowRunDetailResponse = { + created_at?: number | null + created_by_account?: SimpleAccount + created_by_end_user?: SimpleEndUser + created_by_role?: string | null + elapsed_time?: number | null + error?: string | null + exceptions_count?: number | null + finished_at?: number | null + graph: unknown + id: string + inputs: unknown + outputs: unknown + status?: string | null + total_steps?: number | null + total_tokens?: number | null + version?: string | null +} + +export type WorkflowRunNodeExecutionListResponse = { + data: Array +} + export type DatasourceNodeRunPayload = { credential_id?: string | null datasource_type: string @@ -45,6 +74,31 @@ export type DatasourceVariablesPayload = { start_node_title: string } +export type WorkflowRunNodeExecutionResponse = { + created_at?: number | null + created_by_account?: SimpleAccount + created_by_end_user?: SimpleEndUser + created_by_role?: string | null + elapsed_time?: number | null + error?: string | null + execution_metadata?: unknown + extras?: unknown + finished_at?: number | null + id: string + index?: number | null + inputs?: unknown + inputs_truncated?: boolean | null + node_id?: string | null + node_type?: string | null + outputs?: unknown + outputs_truncated?: boolean | null + predecessor_node_id?: string | null + process_data?: unknown + process_data_truncated?: boolean | null + status?: string | null + title?: string | null +} + export type NodeRunPayload = { inputs?: { [key: string]: unknown @@ -86,10 +140,37 @@ export type PublishedWorkflowRunPayload = { } is_preview?: boolean original_document_id?: string | null - response_mode?: 'streaming' | 'blocking' + response_mode?: 'blocking' | 'streaming' start_node_id: string } +export type WorkflowRunForListResponse = { + created_at?: number | null + created_by_account?: SimpleAccount + elapsed_time?: number | null + exceptions_count?: number | null + finished_at?: number | null + id: string + retry_index?: number | null + status?: string | null + total_steps?: number | null + total_tokens?: number | null + version?: string | null +} + +export type SimpleAccount = { + email: string + id: string + name: string +} + +export type SimpleEndUser = { + id: string + is_anonymous: boolean + session_id?: string | null + type: string +} + export type DeleteRagPipelineCustomizedTemplatesByTemplateIdData = { body?: never path: { @@ -358,9 +439,7 @@ export type GetRagPipelinesByPipelineIdWorkflowRunsData = { } export type GetRagPipelinesByPipelineIdWorkflowRunsResponses = { - 200: { - [key: string]: unknown - } + 200: WorkflowRunPaginationResponse } export type GetRagPipelinesByPipelineIdWorkflowRunsResponse @@ -396,9 +475,7 @@ export type GetRagPipelinesByPipelineIdWorkflowRunsByRunIdData = { } export type GetRagPipelinesByPipelineIdWorkflowRunsByRunIdResponses = { - 200: { - [key: string]: unknown - } + 200: WorkflowRunDetailResponse } export type GetRagPipelinesByPipelineIdWorkflowRunsByRunIdResponse @@ -415,9 +492,7 @@ export type GetRagPipelinesByPipelineIdWorkflowRunsByRunIdNodeExecutionsData = { } export type GetRagPipelinesByPipelineIdWorkflowRunsByRunIdNodeExecutionsResponses = { - 200: { - [key: string]: unknown - } + 200: WorkflowRunNodeExecutionListResponse } export type GetRagPipelinesByPipelineIdWorkflowRunsByRunIdNodeExecutionsResponse @@ -462,8 +537,8 @@ export type GetRagPipelinesByPipelineIdWorkflowsDefaultWorkflowBlockConfigsRespo export type GetRagPipelinesByPipelineIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypeData = { body?: never path: { - pipeline_id: string block_type: string + pipeline_id: string } query?: never url: '/rag/pipelines/{pipeline_id}/workflows/default-workflow-block-configs/{block_type}' @@ -517,8 +592,8 @@ export type PostRagPipelinesByPipelineIdWorkflowsDraftResponse export type PostRagPipelinesByPipelineIdWorkflowsDraftDatasourceNodesByNodeIdRunData = { body: DatasourceNodeRunPayload path: { - pipeline_id: string node_id: string + pipeline_id: string } query?: never url: '/rag/pipelines/{pipeline_id}/workflows/draft/datasource/nodes/{node_id}/run' @@ -543,9 +618,7 @@ export type PostRagPipelinesByPipelineIdWorkflowsDraftDatasourceVariablesInspect } export type PostRagPipelinesByPipelineIdWorkflowsDraftDatasourceVariablesInspectResponses = { - 200: { - [key: string]: unknown - } + 200: WorkflowRunNodeExecutionResponse } export type PostRagPipelinesByPipelineIdWorkflowsDraftDatasourceVariablesInspectResponse @@ -572,8 +645,8 @@ export type GetRagPipelinesByPipelineIdWorkflowsDraftEnvironmentVariablesRespons export type PostRagPipelinesByPipelineIdWorkflowsDraftIterationNodesByNodeIdRunData = { body: NodeRunPayload path: { - pipeline_id: string node_id: string + pipeline_id: string } query?: never url: '/rag/pipelines/{pipeline_id}/workflows/draft/iteration/nodes/{node_id}/run' @@ -591,8 +664,8 @@ export type PostRagPipelinesByPipelineIdWorkflowsDraftIterationNodesByNodeIdRunR export type PostRagPipelinesByPipelineIdWorkflowsDraftLoopNodesByNodeIdRunData = { body: NodeRunPayload path: { - pipeline_id: string node_id: string + pipeline_id: string } query?: never url: '/rag/pipelines/{pipeline_id}/workflows/draft/loop/nodes/{node_id}/run' @@ -610,17 +683,15 @@ export type PostRagPipelinesByPipelineIdWorkflowsDraftLoopNodesByNodeIdRunRespon export type GetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdLastRunData = { body?: never path: { - pipeline_id: string node_id: string + pipeline_id: string } query?: never url: '/rag/pipelines/{pipeline_id}/workflows/draft/nodes/{node_id}/last-run' } export type GetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdLastRunResponses = { - 200: { - [key: string]: unknown - } + 200: WorkflowRunNodeExecutionResponse } export type GetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdLastRunResponse @@ -629,17 +700,15 @@ export type GetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdLastRunRespons export type PostRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdRunData = { body: NodeRunRequiredPayload path: { - pipeline_id: string node_id: string + pipeline_id: string } query?: never url: '/rag/pipelines/{pipeline_id}/workflows/draft/nodes/{node_id}/run' } export type PostRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdRunResponses = { - 200: { - [key: string]: unknown - } + 200: WorkflowRunNodeExecutionResponse } export type PostRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdRunResponse @@ -648,8 +717,8 @@ export type PostRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdRunResponse export type DeleteRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariablesData = { body?: never path: { - pipeline_id: string node_id: string + pipeline_id: string } query?: never url: '/rag/pipelines/{pipeline_id}/workflows/draft/nodes/{node_id}/variables' @@ -667,8 +736,8 @@ export type DeleteRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariablesRe export type GetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariablesData = { body?: never path: { - pipeline_id: string node_id: string + pipeline_id: string } query?: never url: '/rag/pipelines/{pipeline_id}/workflows/draft/nodes/{node_id}/variables' @@ -906,8 +975,8 @@ export type PostRagPipelinesByPipelineIdWorkflowsPublishResponse export type PostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdPreviewData = { body: Parser path: { - pipeline_id: string node_id: string + pipeline_id: string } query?: never url: '/rag/pipelines/{pipeline_id}/workflows/published/datasource/nodes/{node_id}/preview' @@ -926,8 +995,8 @@ export type PostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeI export type PostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdRunData = { body: DatasourceNodeRunPayload path: { - pipeline_id: string node_id: string + pipeline_id: string } query?: never url: '/rag/pipelines/{pipeline_id}/workflows/published/datasource/nodes/{node_id}/run' diff --git a/packages/contracts/generated/api/console/rag/zod.gen.ts b/packages/contracts/generated/api/console/rag/zod.gen.ts index b28d7fafc7..24d9b30139 100644 --- a/packages/contracts/generated/api/console/rag/zod.gen.ts +++ b/packages/contracts/generated/api/console/rag/zod.gen.ts @@ -94,10 +94,112 @@ export const zPublishedWorkflowRunPayload = z.object({ inputs: z.record(z.string(), z.unknown()), is_preview: z.boolean().optional().default(false), original_document_id: z.string().nullish(), - response_mode: z.enum(['streaming', 'blocking']).optional().default('streaming'), + response_mode: z.enum(['blocking', 'streaming']).optional().default('streaming'), start_node_id: z.string(), }) +/** + * SimpleAccount + */ +export const zSimpleAccount = z.object({ + email: z.string(), + id: z.string(), + name: z.string(), +}) + +/** + * WorkflowRunForListResponse + */ +export const zWorkflowRunForListResponse = z.object({ + created_at: z.int().nullish(), + created_by_account: zSimpleAccount.optional(), + elapsed_time: z.number().nullish(), + exceptions_count: z.int().nullish(), + finished_at: z.int().nullish(), + id: z.string(), + retry_index: z.int().nullish(), + status: z.string().nullish(), + total_steps: z.int().nullish(), + total_tokens: z.int().nullish(), + version: z.string().nullish(), +}) + +/** + * WorkflowRunPaginationResponse + */ +export const zWorkflowRunPaginationResponse = z.object({ + data: z.array(zWorkflowRunForListResponse), + has_more: z.boolean(), + limit: z.int(), +}) + +/** + * SimpleEndUser + */ +export const zSimpleEndUser = z.object({ + id: z.string(), + is_anonymous: z.boolean(), + session_id: z.string().nullish(), + type: z.string(), +}) + +/** + * WorkflowRunDetailResponse + */ +export const zWorkflowRunDetailResponse = z.object({ + created_at: z.int().nullish(), + created_by_account: zSimpleAccount.optional(), + created_by_end_user: zSimpleEndUser.optional(), + created_by_role: z.string().nullish(), + elapsed_time: z.number().nullish(), + error: z.string().nullish(), + exceptions_count: z.int().nullish(), + finished_at: z.int().nullish(), + graph: z.unknown(), + id: z.string(), + inputs: z.unknown(), + outputs: z.unknown(), + status: z.string().nullish(), + total_steps: z.int().nullish(), + total_tokens: z.int().nullish(), + version: z.string().nullish(), +}) + +/** + * WorkflowRunNodeExecutionResponse + */ +export const zWorkflowRunNodeExecutionResponse = z.object({ + created_at: z.int().nullish(), + created_by_account: zSimpleAccount.optional(), + created_by_end_user: zSimpleEndUser.optional(), + created_by_role: z.string().nullish(), + elapsed_time: z.number().nullish(), + error: z.string().nullish(), + execution_metadata: z.unknown().optional(), + extras: z.unknown().optional(), + finished_at: z.int().nullish(), + id: z.string(), + index: z.int().nullish(), + inputs: z.unknown().optional(), + inputs_truncated: z.boolean().nullish(), + node_id: z.string().nullish(), + node_type: z.string().nullish(), + outputs: z.unknown().optional(), + outputs_truncated: z.boolean().nullish(), + predecessor_node_id: z.string().nullish(), + process_data: z.unknown().optional(), + process_data_truncated: z.boolean().nullish(), + status: z.string().nullish(), + title: z.string().nullish(), +}) + +/** + * WorkflowRunNodeExecutionListResponse + */ +export const zWorkflowRunNodeExecutionListResponse = z.object({ + data: z.array(zWorkflowRunNodeExecutionResponse), +}) + export const zDeleteRagPipelineCustomizedTemplatesByTemplateIdPath = z.object({ template_id: z.string(), }) @@ -238,9 +340,9 @@ export const zGetRagPipelinesByPipelineIdWorkflowRunsPath = z.object({ }) /** - * Success + * Workflow runs retrieved successfully */ -export const zGetRagPipelinesByPipelineIdWorkflowRunsResponse = z.record(z.string(), z.unknown()) +export const zGetRagPipelinesByPipelineIdWorkflowRunsResponse = zWorkflowRunPaginationResponse export const zPostRagPipelinesByPipelineIdWorkflowRunsTasksByTaskIdStopPath = z.object({ pipeline_id: z.string(), @@ -261,12 +363,9 @@ export const zGetRagPipelinesByPipelineIdWorkflowRunsByRunIdPath = z.object({ }) /** - * Success + * Workflow run detail retrieved successfully */ -export const zGetRagPipelinesByPipelineIdWorkflowRunsByRunIdResponse = z.record( - z.string(), - z.unknown(), -) +export const zGetRagPipelinesByPipelineIdWorkflowRunsByRunIdResponse = zWorkflowRunDetailResponse export const zGetRagPipelinesByPipelineIdWorkflowRunsByRunIdNodeExecutionsPath = z.object({ pipeline_id: z.string(), @@ -274,12 +373,10 @@ export const zGetRagPipelinesByPipelineIdWorkflowRunsByRunIdNodeExecutionsPath = }) /** - * Success + * Node executions retrieved successfully */ -export const zGetRagPipelinesByPipelineIdWorkflowRunsByRunIdNodeExecutionsResponse = z.record( - z.string(), - z.unknown(), -) +export const zGetRagPipelinesByPipelineIdWorkflowRunsByRunIdNodeExecutionsResponse + = zWorkflowRunNodeExecutionListResponse export const zGetRagPipelinesByPipelineIdWorkflowsPath = z.object({ pipeline_id: z.string(), @@ -304,8 +401,8 @@ export const zGetRagPipelinesByPipelineIdWorkflowsDefaultWorkflowBlockConfigsRes export const zGetRagPipelinesByPipelineIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypePath = z.object({ - pipeline_id: z.string(), block_type: z.string(), + pipeline_id: z.string(), }) /** @@ -336,8 +433,8 @@ export const zPostRagPipelinesByPipelineIdWorkflowsDraftDatasourceNodesByNodeIdR = zDatasourceNodeRunPayload export const zPostRagPipelinesByPipelineIdWorkflowsDraftDatasourceNodesByNodeIdRunPath = z.object({ - pipeline_id: z.string(), node_id: z.string(), + pipeline_id: z.string(), }) /** @@ -354,10 +451,10 @@ export const zPostRagPipelinesByPipelineIdWorkflowsDraftDatasourceVariablesInspe }) /** - * Success + * Datasource variables set successfully */ export const zPostRagPipelinesByPipelineIdWorkflowsDraftDatasourceVariablesInspectResponse - = z.record(z.string(), z.unknown()) + = zWorkflowRunNodeExecutionResponse export const zGetRagPipelinesByPipelineIdWorkflowsDraftEnvironmentVariablesPath = z.object({ pipeline_id: z.string(), @@ -375,8 +472,8 @@ export const zPostRagPipelinesByPipelineIdWorkflowsDraftIterationNodesByNodeIdRu = zNodeRunPayload export const zPostRagPipelinesByPipelineIdWorkflowsDraftIterationNodesByNodeIdRunPath = z.object({ - pipeline_id: z.string(), node_id: z.string(), + pipeline_id: z.string(), }) /** @@ -388,8 +485,8 @@ export const zPostRagPipelinesByPipelineIdWorkflowsDraftIterationNodesByNodeIdRu export const zPostRagPipelinesByPipelineIdWorkflowsDraftLoopNodesByNodeIdRunBody = zNodeRunPayload export const zPostRagPipelinesByPipelineIdWorkflowsDraftLoopNodesByNodeIdRunPath = z.object({ - pipeline_id: z.string(), node_id: z.string(), + pipeline_id: z.string(), }) /** @@ -401,37 +498,33 @@ export const zPostRagPipelinesByPipelineIdWorkflowsDraftLoopNodesByNodeIdRunResp ) export const zGetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdLastRunPath = z.object({ - pipeline_id: z.string(), node_id: z.string(), + pipeline_id: z.string(), }) /** - * Success + * Node last run retrieved successfully */ -export const zGetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdLastRunResponse = z.record( - z.string(), - z.unknown(), -) +export const zGetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdLastRunResponse + = zWorkflowRunNodeExecutionResponse export const zPostRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdRunBody = zNodeRunRequiredPayload export const zPostRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdRunPath = z.object({ - pipeline_id: z.string(), node_id: z.string(), + pipeline_id: z.string(), }) /** - * Success + * Node run started successfully */ -export const zPostRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdRunResponse = z.record( - z.string(), - z.unknown(), -) +export const zPostRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdRunResponse + = zWorkflowRunNodeExecutionResponse export const zDeleteRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariablesPath = z.object({ - pipeline_id: z.string(), node_id: z.string(), + pipeline_id: z.string(), }) /** @@ -443,8 +536,8 @@ export const zDeleteRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariables ) export const zGetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariablesPath = z.object({ - pipeline_id: z.string(), node_id: z.string(), + pipeline_id: z.string(), }) /** @@ -608,8 +701,8 @@ export const zPostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNod export const zPostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdPreviewPath = z.object({ - pipeline_id: z.string(), node_id: z.string(), + pipeline_id: z.string(), }) /** @@ -623,8 +716,8 @@ export const zPostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNod export const zPostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdRunPath = z.object({ - pipeline_id: z.string(), node_id: z.string(), + pipeline_id: z.string(), }) /** diff --git a/packages/contracts/generated/api/console/rule-code-generate/types.gen.ts b/packages/contracts/generated/api/console/rule-code-generate/types.gen.ts index dc1b045285..c5fafa90a9 100644 --- a/packages/contracts/generated/api/console/rule-code-generate/types.gen.ts +++ b/packages/contracts/generated/api/console/rule-code-generate/types.gen.ts @@ -12,33 +12,15 @@ export type RuleCodeGeneratePayload = { } export type ModelConfig = { - agent_mode_dict?: JsonValue - annotation_reply_dict?: JsonValue - chat_prompt_config_dict?: JsonValue - completion_prompt_config_dict?: JsonValue - created_at?: number | null - created_by?: string | null - dataset_configs_dict?: JsonValue - dataset_query_variable?: string | null - external_data_tools_list?: JsonValue - file_upload_dict?: JsonValue - model_dict?: JsonValue - more_like_this_dict?: JsonValue - opening_statement?: string | null - pre_prompt?: string | null - prompt_type?: string | null - retriever_resource_dict?: JsonValue - sensitive_word_avoidance_dict?: JsonValue - speech_to_text_dict?: JsonValue - suggested_questions_after_answer_dict?: JsonValue - suggested_questions_list?: JsonValue - text_to_speech_dict?: JsonValue - updated_at?: number | null - updated_by?: string | null - user_input_form_list?: JsonValue + completion_params?: { + [key: string]: unknown + } + mode: LlmMode + name: string + provider: string } -export type JsonValue = unknown +export type LlmMode = 'chat' | 'completion' export type PostRuleCodeGenerateData = { body: RuleCodeGeneratePayload diff --git a/packages/contracts/generated/api/console/rule-code-generate/zod.gen.ts b/packages/contracts/generated/api/console/rule-code-generate/zod.gen.ts index 40b840dc8a..f98d2f5dc0 100644 --- a/packages/contracts/generated/api/console/rule-code-generate/zod.gen.ts +++ b/packages/contracts/generated/api/console/rule-code-generate/zod.gen.ts @@ -2,36 +2,21 @@ import * as z from 'zod' -export const zJsonValue = z.unknown() +/** + * LLMMode + * + * Enum class for large language model mode. + */ +export const zLlmMode = z.enum(['chat', 'completion']) /** * ModelConfig */ export const zModelConfig = z.object({ - agent_mode_dict: zJsonValue.optional(), - annotation_reply_dict: zJsonValue.optional(), - chat_prompt_config_dict: zJsonValue.optional(), - completion_prompt_config_dict: zJsonValue.optional(), - created_at: z.int().nullish(), - created_by: z.string().nullish(), - dataset_configs_dict: zJsonValue.optional(), - dataset_query_variable: z.string().nullish(), - external_data_tools_list: zJsonValue.optional(), - file_upload_dict: zJsonValue.optional(), - model_dict: zJsonValue.optional(), - more_like_this_dict: zJsonValue.optional(), - opening_statement: z.string().nullish(), - pre_prompt: z.string().nullish(), - prompt_type: z.string().nullish(), - retriever_resource_dict: zJsonValue.optional(), - sensitive_word_avoidance_dict: zJsonValue.optional(), - speech_to_text_dict: zJsonValue.optional(), - suggested_questions_after_answer_dict: zJsonValue.optional(), - suggested_questions_list: zJsonValue.optional(), - text_to_speech_dict: zJsonValue.optional(), - updated_at: z.int().nullish(), - updated_by: z.string().nullish(), - user_input_form_list: zJsonValue.optional(), + completion_params: z.record(z.string(), z.unknown()).optional(), + mode: zLlmMode, + name: z.string(), + provider: z.string(), }) /** diff --git a/packages/contracts/generated/api/console/rule-generate/types.gen.ts b/packages/contracts/generated/api/console/rule-generate/types.gen.ts index 265ca5013d..01f44c096c 100644 --- a/packages/contracts/generated/api/console/rule-generate/types.gen.ts +++ b/packages/contracts/generated/api/console/rule-generate/types.gen.ts @@ -11,33 +11,15 @@ export type RuleGeneratePayload = { } export type ModelConfig = { - agent_mode_dict?: JsonValue - annotation_reply_dict?: JsonValue - chat_prompt_config_dict?: JsonValue - completion_prompt_config_dict?: JsonValue - created_at?: number | null - created_by?: string | null - dataset_configs_dict?: JsonValue - dataset_query_variable?: string | null - external_data_tools_list?: JsonValue - file_upload_dict?: JsonValue - model_dict?: JsonValue - more_like_this_dict?: JsonValue - opening_statement?: string | null - pre_prompt?: string | null - prompt_type?: string | null - retriever_resource_dict?: JsonValue - sensitive_word_avoidance_dict?: JsonValue - speech_to_text_dict?: JsonValue - suggested_questions_after_answer_dict?: JsonValue - suggested_questions_list?: JsonValue - text_to_speech_dict?: JsonValue - updated_at?: number | null - updated_by?: string | null - user_input_form_list?: JsonValue + completion_params?: { + [key: string]: unknown + } + mode: LlmMode + name: string + provider: string } -export type JsonValue = unknown +export type LlmMode = 'chat' | 'completion' export type PostRuleGenerateData = { body: RuleGeneratePayload diff --git a/packages/contracts/generated/api/console/rule-generate/zod.gen.ts b/packages/contracts/generated/api/console/rule-generate/zod.gen.ts index 7a346a58fc..aae7b67f0f 100644 --- a/packages/contracts/generated/api/console/rule-generate/zod.gen.ts +++ b/packages/contracts/generated/api/console/rule-generate/zod.gen.ts @@ -2,36 +2,21 @@ import * as z from 'zod' -export const zJsonValue = z.unknown() +/** + * LLMMode + * + * Enum class for large language model mode. + */ +export const zLlmMode = z.enum(['chat', 'completion']) /** * ModelConfig */ export const zModelConfig = z.object({ - agent_mode_dict: zJsonValue.optional(), - annotation_reply_dict: zJsonValue.optional(), - chat_prompt_config_dict: zJsonValue.optional(), - completion_prompt_config_dict: zJsonValue.optional(), - created_at: z.int().nullish(), - created_by: z.string().nullish(), - dataset_configs_dict: zJsonValue.optional(), - dataset_query_variable: z.string().nullish(), - external_data_tools_list: zJsonValue.optional(), - file_upload_dict: zJsonValue.optional(), - model_dict: zJsonValue.optional(), - more_like_this_dict: zJsonValue.optional(), - opening_statement: z.string().nullish(), - pre_prompt: z.string().nullish(), - prompt_type: z.string().nullish(), - retriever_resource_dict: zJsonValue.optional(), - sensitive_word_avoidance_dict: zJsonValue.optional(), - speech_to_text_dict: zJsonValue.optional(), - suggested_questions_after_answer_dict: zJsonValue.optional(), - suggested_questions_list: zJsonValue.optional(), - text_to_speech_dict: zJsonValue.optional(), - updated_at: z.int().nullish(), - updated_by: z.string().nullish(), - user_input_form_list: zJsonValue.optional(), + completion_params: z.record(z.string(), z.unknown()).optional(), + mode: zLlmMode, + name: z.string(), + provider: z.string(), }) /** diff --git a/packages/contracts/generated/api/console/rule-structured-output-generate/types.gen.ts b/packages/contracts/generated/api/console/rule-structured-output-generate/types.gen.ts index f6124c6956..0ab9d90904 100644 --- a/packages/contracts/generated/api/console/rule-structured-output-generate/types.gen.ts +++ b/packages/contracts/generated/api/console/rule-structured-output-generate/types.gen.ts @@ -10,33 +10,15 @@ export type RuleStructuredOutputPayload = { } export type ModelConfig = { - agent_mode_dict?: JsonValue - annotation_reply_dict?: JsonValue - chat_prompt_config_dict?: JsonValue - completion_prompt_config_dict?: JsonValue - created_at?: number | null - created_by?: string | null - dataset_configs_dict?: JsonValue - dataset_query_variable?: string | null - external_data_tools_list?: JsonValue - file_upload_dict?: JsonValue - model_dict?: JsonValue - more_like_this_dict?: JsonValue - opening_statement?: string | null - pre_prompt?: string | null - prompt_type?: string | null - retriever_resource_dict?: JsonValue - sensitive_word_avoidance_dict?: JsonValue - speech_to_text_dict?: JsonValue - suggested_questions_after_answer_dict?: JsonValue - suggested_questions_list?: JsonValue - text_to_speech_dict?: JsonValue - updated_at?: number | null - updated_by?: string | null - user_input_form_list?: JsonValue + completion_params?: { + [key: string]: unknown + } + mode: LlmMode + name: string + provider: string } -export type JsonValue = unknown +export type LlmMode = 'chat' | 'completion' export type PostRuleStructuredOutputGenerateData = { body: RuleStructuredOutputPayload diff --git a/packages/contracts/generated/api/console/rule-structured-output-generate/zod.gen.ts b/packages/contracts/generated/api/console/rule-structured-output-generate/zod.gen.ts index 231b5a072c..ddcabbba49 100644 --- a/packages/contracts/generated/api/console/rule-structured-output-generate/zod.gen.ts +++ b/packages/contracts/generated/api/console/rule-structured-output-generate/zod.gen.ts @@ -2,36 +2,21 @@ import * as z from 'zod' -export const zJsonValue = z.unknown() +/** + * LLMMode + * + * Enum class for large language model mode. + */ +export const zLlmMode = z.enum(['chat', 'completion']) /** * ModelConfig */ export const zModelConfig = z.object({ - agent_mode_dict: zJsonValue.optional(), - annotation_reply_dict: zJsonValue.optional(), - chat_prompt_config_dict: zJsonValue.optional(), - completion_prompt_config_dict: zJsonValue.optional(), - created_at: z.int().nullish(), - created_by: z.string().nullish(), - dataset_configs_dict: zJsonValue.optional(), - dataset_query_variable: z.string().nullish(), - external_data_tools_list: zJsonValue.optional(), - file_upload_dict: zJsonValue.optional(), - model_dict: zJsonValue.optional(), - more_like_this_dict: zJsonValue.optional(), - opening_statement: z.string().nullish(), - pre_prompt: z.string().nullish(), - prompt_type: z.string().nullish(), - retriever_resource_dict: zJsonValue.optional(), - sensitive_word_avoidance_dict: zJsonValue.optional(), - speech_to_text_dict: zJsonValue.optional(), - suggested_questions_after_answer_dict: zJsonValue.optional(), - suggested_questions_list: zJsonValue.optional(), - text_to_speech_dict: zJsonValue.optional(), - updated_at: z.int().nullish(), - updated_by: z.string().nullish(), - user_input_form_list: zJsonValue.optional(), + completion_params: z.record(z.string(), z.unknown()).optional(), + mode: zLlmMode, + name: z.string(), + provider: z.string(), }) /** diff --git a/packages/contracts/generated/api/console/system-features/types.gen.ts b/packages/contracts/generated/api/console/system-features/types.gen.ts index 0fbea39beb..1f14d19c51 100644 --- a/packages/contracts/generated/api/console/system-features/types.gen.ts +++ b/packages/contracts/generated/api/console/system-features/types.gen.ts @@ -5,7 +5,9 @@ export type ClientOptions = { } export type SystemFeatureResponse = { - [key: string]: unknown + features?: { + [key: string]: unknown + } } export type GetSystemFeaturesData = { diff --git a/packages/contracts/generated/api/console/system-features/zod.gen.ts b/packages/contracts/generated/api/console/system-features/zod.gen.ts index affb2a10a3..58f353b512 100644 --- a/packages/contracts/generated/api/console/system-features/zod.gen.ts +++ b/packages/contracts/generated/api/console/system-features/zod.gen.ts @@ -2,7 +2,9 @@ import * as z from 'zod' -export const zSystemFeatureResponse = z.record(z.string(), z.unknown()) +export const zSystemFeatureResponse = z.object({ + features: z.record(z.string(), z.unknown()).optional(), +}) /** * Success diff --git a/packages/contracts/generated/api/console/tag-bindings/orpc.gen.ts b/packages/contracts/generated/api/console/tag-bindings/orpc.gen.ts index 8b58d2c47d..a3c7f5ed88 100644 --- a/packages/contracts/generated/api/console/tag-bindings/orpc.gen.ts +++ b/packages/contracts/generated/api/console/tag-bindings/orpc.gen.ts @@ -4,48 +4,18 @@ import { oc } from '@orpc/contract' import * as z from 'zod' import { - zDeleteTagBindingsByIdBody, - zDeleteTagBindingsByIdPath, - zDeleteTagBindingsByIdResponse, zPostTagBindingsBody, - zPostTagBindingsCreateBody, - zPostTagBindingsCreateResponse, zPostTagBindingsRemoveBody, zPostTagBindingsRemoveResponse, zPostTagBindingsResponse, } from './zod.gen' /** - * Deprecated legacy alias. Use POST /tag-bindings instead. - * - * @deprecated + * Remove one or more tag bindings from a target. */ export const post = oc .route({ - deprecated: true, - description: 'Deprecated legacy alias. Use POST /tag-bindings instead.', - inputStructure: 'detailed', - method: 'POST', - operationId: 'postTagBindingsCreate', - path: '/tag-bindings/create', - tags: ['console'], - }) - .input(z.object({ body: zPostTagBindingsCreateBody })) - .output(zPostTagBindingsCreateResponse) - -export const create = { - post, -} - -/** - * Deprecated legacy alias. Use DELETE /tag-bindings/{id} instead. - * - * @deprecated - */ -export const post2 = oc - .route({ - deprecated: true, - description: 'Deprecated legacy alias. Use DELETE /tag-bindings/{id} instead.', + description: 'Remove one or more tag bindings from a target.', inputStructure: 'detailed', method: 'POST', operationId: 'postTagBindingsRemove', @@ -56,25 +26,10 @@ export const post2 = oc .output(zPostTagBindingsRemoveResponse) export const remove = { - post: post2, + post, } -export const delete_ = oc - .route({ - inputStructure: 'detailed', - method: 'DELETE', - operationId: 'deleteTagBindingsById', - path: '/tag-bindings/{id}', - tags: ['console'], - }) - .input(z.object({ body: zDeleteTagBindingsByIdBody, params: zDeleteTagBindingsByIdPath })) - .output(zDeleteTagBindingsByIdResponse) - -export const byId = { - delete: delete_, -} - -export const post3 = oc +export const post2 = oc .route({ inputStructure: 'detailed', method: 'POST', @@ -86,10 +41,8 @@ export const post3 = oc .output(zPostTagBindingsResponse) export const tagBindings = { - post: post3, - create, + post: post2, remove, - byId, } export const contract = { diff --git a/packages/contracts/generated/api/console/tag-bindings/types.gen.ts b/packages/contracts/generated/api/console/tag-bindings/types.gen.ts index e9426766ed..1896ccd366 100644 --- a/packages/contracts/generated/api/console/tag-bindings/types.gen.ts +++ b/packages/contracts/generated/api/console/tag-bindings/types.gen.ts @@ -11,17 +11,12 @@ export type TagBindingPayload = { } export type TagBindingRemovePayload = { - tag_id: string + tag_ids: Array target_id: string type: TagType } -export type TagBindingItemDeletePayload = { - target_id: string - type: TagType -} - -export type TagType = 'knowledge' | 'app' +export type TagType = 'app' | 'knowledge' export type PostTagBindingsData = { body: TagBindingPayload @@ -38,22 +33,6 @@ export type PostTagBindingsResponses = { export type PostTagBindingsResponse = PostTagBindingsResponses[keyof PostTagBindingsResponses] -export type PostTagBindingsCreateData = { - body: TagBindingPayload - path?: never - query?: never - url: '/tag-bindings/create' -} - -export type PostTagBindingsCreateResponses = { - 200: { - [key: string]: unknown - } -} - -export type PostTagBindingsCreateResponse - = PostTagBindingsCreateResponses[keyof PostTagBindingsCreateResponses] - export type PostTagBindingsRemoveData = { body: TagBindingRemovePayload path?: never @@ -69,21 +48,3 @@ export type PostTagBindingsRemoveResponses = { export type PostTagBindingsRemoveResponse = PostTagBindingsRemoveResponses[keyof PostTagBindingsRemoveResponses] - -export type DeleteTagBindingsByIdData = { - body: TagBindingItemDeletePayload - path: { - id: string - } - query?: never - url: '/tag-bindings/{id}' -} - -export type DeleteTagBindingsByIdResponses = { - 200: { - [key: string]: unknown - } -} - -export type DeleteTagBindingsByIdResponse - = DeleteTagBindingsByIdResponses[keyof DeleteTagBindingsByIdResponses] diff --git a/packages/contracts/generated/api/console/tag-bindings/zod.gen.ts b/packages/contracts/generated/api/console/tag-bindings/zod.gen.ts index 3dead1ec1b..72e2608b95 100644 --- a/packages/contracts/generated/api/console/tag-bindings/zod.gen.ts +++ b/packages/contracts/generated/api/console/tag-bindings/zod.gen.ts @@ -7,7 +7,7 @@ import * as z from 'zod' * * Tag type */ -export const zTagType = z.enum(['knowledge', 'app']) +export const zTagType = z.enum(['app', 'knowledge']) /** * TagBindingPayload @@ -22,15 +22,7 @@ export const zTagBindingPayload = z.object({ * TagBindingRemovePayload */ export const zTagBindingRemovePayload = z.object({ - tag_id: z.string(), - target_id: z.string(), - type: zTagType, -}) - -/** - * TagBindingItemDeletePayload - */ -export const zTagBindingItemDeletePayload = z.object({ + tag_ids: z.array(z.string()).min(1), target_id: z.string(), type: zTagType, }) @@ -42,27 +34,9 @@ export const zPostTagBindingsBody = zTagBindingPayload */ export const zPostTagBindingsResponse = z.record(z.string(), z.unknown()) -export const zPostTagBindingsCreateBody = zTagBindingPayload - -/** - * Success - */ -export const zPostTagBindingsCreateResponse = z.record(z.string(), z.unknown()) - export const zPostTagBindingsRemoveBody = zTagBindingRemovePayload /** * Success */ export const zPostTagBindingsRemoveResponse = z.record(z.string(), z.unknown()) - -export const zDeleteTagBindingsByIdBody = zTagBindingItemDeletePayload - -export const zDeleteTagBindingsByIdPath = z.object({ - id: z.string(), -}) - -/** - * Success - */ -export const zDeleteTagBindingsByIdResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/api/console/tags/types.gen.ts b/packages/contracts/generated/api/console/tags/types.gen.ts index f3c3b1eb3f..9146cfb604 100644 --- a/packages/contracts/generated/api/console/tags/types.gen.ts +++ b/packages/contracts/generated/api/console/tags/types.gen.ts @@ -16,14 +16,14 @@ export type TagBasePayload = { type: TagType } -export type TagType = 'knowledge' | 'app' +export type TagType = 'app' | 'knowledge' export type GetTagsData = { body?: never path?: never query?: { - type?: string keyword?: string + type?: string } url: '/tags' } diff --git a/packages/contracts/generated/api/console/tags/zod.gen.ts b/packages/contracts/generated/api/console/tags/zod.gen.ts index 4bb8e1783c..7a5ba9d319 100644 --- a/packages/contracts/generated/api/console/tags/zod.gen.ts +++ b/packages/contracts/generated/api/console/tags/zod.gen.ts @@ -17,7 +17,7 @@ export const zTagResponse = z.object({ * * Tag type */ -export const zTagType = z.enum(['knowledge', 'app']) +export const zTagType = z.enum(['app', 'knowledge']) /** * TagBasePayload @@ -28,8 +28,8 @@ export const zTagBasePayload = z.object({ }) export const zGetTagsQuery = z.object({ - type: z.string().optional(), keyword: z.string().optional(), + type: z.string().optional(), }) /** diff --git a/packages/contracts/generated/api/console/website/types.gen.ts b/packages/contracts/generated/api/console/website/types.gen.ts index e47b11a819..c8ea0de7b6 100644 --- a/packages/contracts/generated/api/console/website/types.gen.ts +++ b/packages/contracts/generated/api/console/website/types.gen.ts @@ -8,7 +8,7 @@ export type WebsiteCrawlPayload = { options: { [key: string]: unknown } - provider: 'firecrawl' | 'watercrawl' | 'jinareader' + provider: 'firecrawl' | 'jinareader' | 'watercrawl' url: string } @@ -41,7 +41,7 @@ export type GetWebsiteCrawlStatusByJobIdData = { job_id: string } query: { - provider: 'firecrawl' | 'watercrawl' | 'jinareader' + provider: 'firecrawl' | 'jinareader' | 'watercrawl' } url: '/website/crawl/status/{job_id}' } diff --git a/packages/contracts/generated/api/console/website/zod.gen.ts b/packages/contracts/generated/api/console/website/zod.gen.ts index a7590ec9ee..88f1d4a7c8 100644 --- a/packages/contracts/generated/api/console/website/zod.gen.ts +++ b/packages/contracts/generated/api/console/website/zod.gen.ts @@ -7,7 +7,7 @@ import * as z from 'zod' */ export const zWebsiteCrawlPayload = z.object({ options: z.record(z.string(), z.unknown()), - provider: z.enum(['firecrawl', 'watercrawl', 'jinareader']), + provider: z.enum(['firecrawl', 'jinareader', 'watercrawl']), url: z.string(), }) @@ -23,7 +23,7 @@ export const zGetWebsiteCrawlStatusByJobIdPath = z.object({ }) export const zGetWebsiteCrawlStatusByJobIdQuery = z.object({ - provider: z.enum(['firecrawl', 'watercrawl', 'jinareader']), + provider: z.enum(['firecrawl', 'jinareader', 'watercrawl']), }) /** diff --git a/packages/contracts/generated/api/console/workflow/orpc.gen.ts b/packages/contracts/generated/api/console/workflow/orpc.gen.ts index bf139e6ac1..66f3e74a48 100644 --- a/packages/contracts/generated/api/console/workflow/orpc.gen.ts +++ b/packages/contracts/generated/api/console/workflow/orpc.gen.ts @@ -38,6 +38,7 @@ export const events = { /** * Get workflow pause details * + * Get workflow pause details * GET /console/api/workflow//pause-details * * Returns information about why and where the workflow is paused. @@ -45,7 +46,7 @@ export const events = { export const get2 = oc .route({ description: - 'GET /console/api/workflow//pause-details\n\nReturns information about why and where the workflow is paused.', + 'Get workflow pause details\nGET /console/api/workflow//pause-details\n\nReturns information about why and where the workflow is paused.', inputStructure: 'detailed', method: 'GET', operationId: 'getWorkflowByWorkflowRunIdPauseDetails', diff --git a/packages/contracts/generated/api/console/workflow/types.gen.ts b/packages/contracts/generated/api/console/workflow/types.gen.ts index a3fae60eae..cf794515d4 100644 --- a/packages/contracts/generated/api/console/workflow/types.gen.ts +++ b/packages/contracts/generated/api/console/workflow/types.gen.ts @@ -4,6 +4,23 @@ export type ClientOptions = { baseUrl: `${string}://${string}/console/api` | (string & {}) } +export type WorkflowPauseDetailsResponse = { + paused_at?: string | null + paused_nodes: Array +} + +export type PausedNodeResponse = { + node_id: string + node_title: string + pause_type: HumanInputPauseTypeResponse +} + +export type HumanInputPauseTypeResponse = { + backstage_input_url?: string | null + form_id: string + type: string +} + export type GetWorkflowByWorkflowRunIdEventsData = { body?: never path: { @@ -31,11 +48,18 @@ export type GetWorkflowByWorkflowRunIdPauseDetailsData = { url: '/workflow/{workflow_run_id}/pause-details' } -export type GetWorkflowByWorkflowRunIdPauseDetailsResponses = { - 200: { +export type GetWorkflowByWorkflowRunIdPauseDetailsErrors = { + 404: { [key: string]: unknown } } +export type GetWorkflowByWorkflowRunIdPauseDetailsError + = GetWorkflowByWorkflowRunIdPauseDetailsErrors[keyof GetWorkflowByWorkflowRunIdPauseDetailsErrors] + +export type GetWorkflowByWorkflowRunIdPauseDetailsResponses = { + 200: WorkflowPauseDetailsResponse +} + export type GetWorkflowByWorkflowRunIdPauseDetailsResponse = GetWorkflowByWorkflowRunIdPauseDetailsResponses[keyof GetWorkflowByWorkflowRunIdPauseDetailsResponses] diff --git a/packages/contracts/generated/api/console/workflow/zod.gen.ts b/packages/contracts/generated/api/console/workflow/zod.gen.ts index 315085f60f..6a737a683f 100644 --- a/packages/contracts/generated/api/console/workflow/zod.gen.ts +++ b/packages/contracts/generated/api/console/workflow/zod.gen.ts @@ -2,6 +2,32 @@ import * as z from 'zod' +/** + * HumanInputPauseTypeResponse + */ +export const zHumanInputPauseTypeResponse = z.object({ + backstage_input_url: z.string().nullish(), + form_id: z.string(), + type: z.string(), +}) + +/** + * PausedNodeResponse + */ +export const zPausedNodeResponse = z.object({ + node_id: z.string(), + node_title: z.string(), + pause_type: zHumanInputPauseTypeResponse, +}) + +/** + * WorkflowPauseDetailsResponse + */ +export const zWorkflowPauseDetailsResponse = z.object({ + paused_at: z.string().nullish(), + paused_nodes: z.array(zPausedNodeResponse), +}) + export const zGetWorkflowByWorkflowRunIdEventsPath = z.object({ workflow_run_id: z.string(), }) @@ -16,6 +42,6 @@ export const zGetWorkflowByWorkflowRunIdPauseDetailsPath = z.object({ }) /** - * Success + * Workflow pause details retrieved successfully */ -export const zGetWorkflowByWorkflowRunIdPauseDetailsResponse = z.record(z.string(), z.unknown()) +export const zGetWorkflowByWorkflowRunIdPauseDetailsResponse = zWorkflowPauseDetailsResponse diff --git a/packages/contracts/generated/api/console/workspaces/types.gen.ts b/packages/contracts/generated/api/console/workspaces/types.gen.ts index a90db98f22..3d2dde4482 100644 --- a/packages/contracts/generated/api/console/workspaces/types.gen.ts +++ b/packages/contracts/generated/api/console/workspaces/types.gen.ts @@ -201,7 +201,7 @@ export type LoadBalancingCredentialPayload = { } export type ParserPreferredProviderType = { - preferred_provider_type: 'system' | 'custom' + preferred_provider_type: 'custom' | 'system' } export type ParserGithubInstall = { @@ -487,9 +487,9 @@ export type Inner = { provider?: string | null } -export type TenantAccountRole = 'owner' | 'admin' | 'editor' | 'normal' | 'dataset_operator' +export type TenantAccountRole = 'admin' | 'dataset_operator' | 'editor' | 'normal' | 'owner' -export type ModelType = 'llm' | 'text-embedding' | 'rerank' | 'speech2text' | 'moderation' | 'tts' +export type ModelType = 'llm' | 'moderation' | 'rerank' | 'speech2text' | 'text-embedding' | 'tts' export type LoadBalancingPayload = { configs?: Array<{ @@ -498,9 +498,9 @@ export type LoadBalancingPayload = { enabled?: boolean | null } -export type DebugPermission = 'everyone' | 'admins' | 'noone' +export type DebugPermission = 'admins' | 'everyone' | 'noone' -export type InstallPermission = 'everyone' | 'admins' | 'noone' +export type InstallPermission = 'admins' | 'everyone' | 'noone' export type PluginAutoUpgradeSettingsPayload = { exclude_plugins?: Array @@ -515,7 +515,7 @@ export type PluginPermissionSettingsPayload = { install_permission?: InstallPermission } -export type ApiProviderSchemaType = 'openapi' | 'swagger' | 'openai_plugin' | 'openai_actions' +export type ApiProviderSchemaType = 'openai_actions' | 'openai_plugin' | 'openapi' | 'swagger' export type CredentialType = 'api-key' | 'oauth2' | 'unauthorized' @@ -527,9 +527,9 @@ export type WorkflowToolParameterConfiguration = { export type StrategySetting = 'disabled' | 'fix_only' | 'latest' -export type UpgradeMode = 'all' | 'partial' | 'exclude' +export type UpgradeMode = 'all' | 'exclude' | 'partial' -export type ToolParameterForm = 'schema' | 'form' | 'llm' +export type ToolParameterForm = 'form' | 'llm' | 'schema' export type GetWorkspacesData = { body?: never @@ -1354,8 +1354,8 @@ export type PostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConf = { body: LoadBalancingCredentialPayload path: { - provider: string config_id: string + provider: string } query?: never url: '/workspaces/current/model-providers/{provider}/models/load-balancing-configs/{config_id}/credentials-validate' @@ -1844,8 +1844,8 @@ export type PostWorkspacesCurrentPluginTasksByTaskIdDeleteResponse export type PostWorkspacesCurrentPluginTasksByTaskIdDeleteByIdentifierData = { body?: never path: { - task_id: string identifier: string + task_id: string } query?: never url: '/workspaces/current/plugin/tasks/{task_id}/delete/{identifier}' @@ -2140,8 +2140,8 @@ export type GetWorkspacesCurrentToolProviderBuiltinByProviderCredentialSchemaByC = { body?: never path: { - provider: string credential_type: string + provider: string } query?: never url: '/workspaces/current/tool-provider/builtin/{provider}/credential/schema/{credential_type}' @@ -3004,10 +3004,10 @@ export type PostWorkspacesSwitchResponse export type GetWorkspacesByTenantIdModelProvidersByProviderByIconTypeByLangData = { body?: never path: { - tenant_id: string - provider: string icon_type: string lang: string + provider: string + tenant_id: string } query?: never url: '/workspaces/{tenant_id}/model-providers/{provider}/{icon_type}/{lang}' diff --git a/packages/contracts/generated/api/console/workspaces/zod.gen.ts b/packages/contracts/generated/api/console/workspaces/zod.gen.ts index a381824da7..cf7a3d97c5 100644 --- a/packages/contracts/generated/api/console/workspaces/zod.gen.ts +++ b/packages/contracts/generated/api/console/workspaces/zod.gen.ts @@ -173,7 +173,7 @@ export const zParserCredentialValidate = z.object({ * ParserPreferredProviderType */ export const zParserPreferredProviderType = z.object({ - preferred_provider_type: z.enum(['system', 'custom']), + preferred_provider_type: z.enum(['custom', 'system']), }) /** @@ -431,7 +431,7 @@ export const zAccountWithRoleList = z.object({ /** * TenantAccountRole */ -export const zTenantAccountRole = z.enum(['owner', 'admin', 'editor', 'normal', 'dataset_operator']) +export const zTenantAccountRole = z.enum(['admin', 'dataset_operator', 'editor', 'normal', 'owner']) /** * MemberInvitePayload @@ -449,10 +449,10 @@ export const zMemberInvitePayload = z.object({ */ export const zModelType = z.enum([ 'llm', - 'text-embedding', + 'moderation', 'rerank', 'speech2text', - 'moderation', + 'text-embedding', 'tts', ]) @@ -559,12 +559,12 @@ export const zParserPostModels = z.object({ /** * DebugPermission */ -export const zDebugPermission = z.enum(['everyone', 'admins', 'noone']) +export const zDebugPermission = z.enum(['admins', 'everyone', 'noone']) /** * InstallPermission */ -export const zInstallPermission = z.enum(['everyone', 'admins', 'noone']) +export const zInstallPermission = z.enum(['admins', 'everyone', 'noone']) /** * ParserPermissionChange @@ -588,10 +588,10 @@ export const zPluginPermissionSettingsPayload = z.object({ * Enum class for api provider schema type. */ export const zApiProviderSchemaType = z.enum([ + 'openai_actions', + 'openai_plugin', 'openapi', 'swagger', - 'openai_plugin', - 'openai_actions', ]) /** @@ -657,7 +657,7 @@ export const zStrategySetting = z.enum(['disabled', 'fix_only', 'latest']) /** * UpgradeMode */ -export const zUpgradeMode = z.enum(['all', 'partial', 'exclude']) +export const zUpgradeMode = z.enum(['all', 'exclude', 'partial']) /** * PluginAutoUpgradeSettingsPayload @@ -681,7 +681,7 @@ export const zParserPreferencesChange = z.object({ /** * ToolParameterForm */ -export const zToolParameterForm = z.enum(['schema', 'form', 'llm']) +export const zToolParameterForm = z.enum(['form', 'llm', 'schema']) /** * WorkflowToolParameterConfiguration @@ -1214,8 +1214,8 @@ export const zPostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingCo export const zPostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsByConfigIdCredentialsValidatePath = z.object({ - provider: z.string(), config_id: z.string(), + provider: z.string(), }) /** @@ -1484,8 +1484,8 @@ export const zPostWorkspacesCurrentPluginTasksByTaskIdDeleteResponse = z.record( ) export const zPostWorkspacesCurrentPluginTasksByTaskIdDeleteByIdentifierPath = z.object({ - task_id: z.string(), identifier: z.string(), + task_id: z.string(), }) /** @@ -1623,8 +1623,8 @@ export const zGetWorkspacesCurrentToolProviderBuiltinByProviderCredentialInfoRes export const zGetWorkspacesCurrentToolProviderBuiltinByProviderCredentialSchemaByCredentialTypePath = z.object({ - provider: z.string(), credential_type: z.string(), + provider: z.string(), }) /** @@ -2135,10 +2135,10 @@ export const zPostWorkspacesSwitchBody = zSwitchWorkspacePayload export const zPostWorkspacesSwitchResponse = z.record(z.string(), z.unknown()) export const zGetWorkspacesByTenantIdModelProvidersByProviderByIconTypeByLangPath = z.object({ - tenant_id: z.string(), - provider: z.string(), icon_type: z.string(), lang: z.string(), + provider: z.string(), + tenant_id: z.string(), }) /** diff --git a/packages/contracts/generated/api/service/orpc.gen.ts b/packages/contracts/generated/api/service/orpc.gen.ts index a5a45a6452..7f52f075ba 100644 --- a/packages/contracts/generated/api/service/orpc.gen.ts +++ b/packages/contracts/generated/api/service/orpc.gen.ts @@ -703,11 +703,11 @@ export const binding = { } /** - * Unbind a tag from a dataset + * Unbind tags from a dataset */ export const post11 = oc .route({ - description: 'Unbind a tag from a dataset', + description: 'Unbind tags from a dataset', inputStructure: 'detailed', method: 'POST', operationId: 'postDatasetsTagsUnbinding', diff --git a/packages/contracts/generated/api/service/types.gen.ts b/packages/contracts/generated/api/service/types.gen.ts index e3791e295c..10c1c9001a 100644 --- a/packages/contracts/generated/api/service/types.gen.ts +++ b/packages/contracts/generated/api/service/types.gen.ts @@ -72,10 +72,34 @@ export type CompletionRequestPayload = { retriever_from?: string } +export type Condition = { + comparison_operator: + | '<' + | '=' + | '>' + | 'after' + | 'before' + | 'contains' + | 'empty' + | 'end with' + | 'in' + | 'is' + | 'is not' + | 'not contains' + | 'not empty' + | 'not in' + | 'start with' + | '≠' + | '≤' + | '≥' + name: string + value?: unknown +} + export type ConversationListQuery = { last_id?: string | null limit?: number - sort_by?: 'created_at' | '-created_at' | 'updated_at' | '-updated_at' + sort_by?: '-created_at' | '-updated_at' | 'created_at' | 'updated_at' } export type ConversationRenamePayload = { @@ -109,13 +133,20 @@ export type ConversationVariablesQuery = { variable_name?: string | null } +export type DataSetTag = { + binding_count?: string | null + id: string + name: string + type: string +} + export type DatasetCreatePayload = { description?: string embedding_model?: string | null embedding_model_provider?: string | null external_knowledge_api_id?: string | null external_knowledge_id?: string | null - indexing_technique?: 'high_quality' | 'economy' | null + indexing_technique?: 'economy' | 'high_quality' | null name: string permission?: DatasetPermissionEnum provider?: string @@ -125,6 +156,16 @@ export type DatasetCreatePayload = { } | null } +export type DatasetListQuery = { + include_all?: boolean + keyword?: string | null + limit?: number + page?: number + tag_ids?: Array +} + +export type DatasetPermissionEnum = 'all_team_members' | 'only_me' | 'partial_members' + export type DatasetUpdatePayload = { description?: string | null embedding_model?: string | null @@ -134,7 +175,7 @@ export type DatasetUpdatePayload = { external_retrieval_model?: { [key: string]: unknown } | null - indexing_technique?: 'high_quality' | 'economy' | null + indexing_technique?: 'economy' | 'high_quality' | null name?: string | null partial_member_list?: Array<{ [key: string]: string @@ -143,10 +184,32 @@ export type DatasetUpdatePayload = { retrieval_model?: RetrievalModel } +export type DatasourceNodeRunPayload = { + credential_id?: string | null + datasource_type: string + inputs: { + [key: string]: unknown + } + is_published: boolean +} + export type DocumentBatchDownloadZipPayload = { document_ids: Array } +export type DocumentListQuery = { + keyword?: string | null + limit?: number + page?: number + status?: string | null +} + +export type DocumentMetadataOperation = { + document_id: string + metadata_list: Array + partial_update?: boolean +} + export type DocumentTextCreatePayload = { doc_form?: string doc_language?: string @@ -211,9 +274,11 @@ export type HumanInputFormSubmitPayload = { } } +export type JsonValue = unknown + export type MessageFeedbackPayload = { content?: string | null - rating?: 'like' | 'dislike' | null + rating?: 'dislike' | 'like' | null } export type MessageListQuery = { @@ -224,7 +289,18 @@ export type MessageListQuery = { export type MetadataArgs = { name: string - type: 'string' | 'number' | 'time' + type: 'number' | 'string' | 'time' +} + +export type MetadataDetail = { + id: string + name: string + value?: unknown +} + +export type MetadataFilteringCondition = { + conditions?: Array | null + logical_operator?: 'and' | 'or' | null } export type MetadataOperationData = { @@ -235,6 +311,59 @@ export type MetadataUpdatePayload = { name: string } +export type PipelineRunApiEntity = { + datasource_info_list: Array<{ + [key: string]: unknown + }> + datasource_type: string + inputs: { + [key: string]: unknown + } + is_published: boolean + response_mode: string + start_node_id: string +} + +export type PreProcessingRule = { + enabled: boolean + id: string +} + +export type ProcessRule = { + mode: 'automatic' | 'custom' | 'hierarchical' + rules?: Rule +} + +export type RerankingModel = { + reranking_model_name?: string | null + reranking_provider_name?: string | null +} + +export type RetrievalMethod + = | 'full_text_search' + | 'hybrid_search' + | 'keyword_search' + | 'semantic_search' + +export type RetrievalModel = { + metadata_filtering_conditions?: MetadataFilteringCondition + reranking_enable: boolean + reranking_mode?: string | null + reranking_model?: RerankingModel + score_threshold?: number | null + score_threshold_enabled: boolean + search_method: RetrievalMethod + top_k: number + weights?: WeightModel +} + +export type Rule = { + parent_mode?: 'full-doc' | 'paragraph' | null + pre_processing_rules?: Array | null + segmentation?: Segmentation + subchunk_segmentation?: Segmentation +} + export type SegmentCreatePayload = { segments?: Array<{ [key: string]: unknown @@ -246,10 +375,39 @@ export type SegmentListQuery = { status?: Array } +export type SegmentUpdateArgs = { + answer?: string | null + attachment_ids?: Array | null + content?: string | null + enabled?: boolean | null + keywords?: Array | null + regenerate_child_chunks?: boolean + summary?: string | null +} + export type SegmentUpdatePayload = { segment: SegmentUpdateArgs } +export type Segmentation = { + chunk_overlap?: number + max_tokens: number + separator?: string +} + +export type SimpleAccount = { + email: string + id: string + name: string +} + +export type SimpleEndUser = { + id: string + is_anonymous: boolean + session_id?: string | null + type: string +} + export type TagBindingPayload = { tag_ids: Array target_id: string @@ -264,7 +422,8 @@ export type TagDeletePayload = { } export type TagUnbindingPayload = { - tag_id: string + tag_id?: string | null + tag_ids?: Array target_id: string } @@ -280,6 +439,22 @@ export type TextToAudioPayload = { voice?: string | null } +export type WeightKeywordSetting = { + keyword_weight: number +} + +export type WeightModel = { + keyword_setting?: WeightKeywordSetting + vector_setting?: WeightVectorSetting + weight_type?: 'customized' | 'keyword_first' | 'semantic_first' | null +} + +export type WeightVectorSetting = { + embedding_model_name: string + embedding_provider_name: string + vector_weight: number +} + export type WorkflowAppLogPaginationResponse = { data: Array has_more: boolean @@ -288,6 +463,17 @@ export type WorkflowAppLogPaginationResponse = { total: number } +export type WorkflowAppLogPartialResponse = { + created_at?: number | null + created_by_account?: SimpleAccount + created_by_end_user?: SimpleEndUser + created_by_role?: string | null + created_from?: string | null + details?: unknown + id: string + workflow_run?: WorkflowRunForLogResponse +} + export type WorkflowLogQuery = { created_at__after?: string | null created_at__before?: string | null @@ -296,7 +482,21 @@ export type WorkflowLogQuery = { keyword?: string | null limit?: number page?: number - status?: 'succeeded' | 'failed' | 'stopped' | null + status?: 'failed' | 'stopped' | 'succeeded' | null +} + +export type WorkflowRunForLogResponse = { + created_at?: number | null + elapsed_time?: unknown + error?: string | null + exceptions_count?: number | null + finished_at?: number | null + id: string + status?: string | null + total_steps?: number | null + total_tokens?: number | null + triggered_from?: string | null + version?: string | null } export type WorkflowRunPayload = { @@ -325,161 +525,6 @@ export type WorkflowRunResponse = { workflow_id: string } -export type Condition = { - comparison_operator: - | 'contains' - | 'not contains' - | 'start with' - | 'end with' - | 'is' - | 'is not' - | 'empty' - | 'not empty' - | 'in' - | 'not in' - | '=' - | '≠' - | '>' - | '<' - | '≥' - | '≤' - | 'before' - | 'after' - name: string - value?: unknown -} - -export type DatasetPermissionEnum = 'only_me' | 'all_team_members' | 'partial_members' - -export type MetadataFilteringCondition = { - conditions?: Array | null - logical_operator?: 'and' | 'or' | null -} - -export type RerankingModel = { - reranking_model_name?: string | null - reranking_provider_name?: string | null -} - -export type RetrievalMethod - = | 'semantic_search' - | 'full_text_search' - | 'hybrid_search' - | 'keyword_search' - -export type RetrievalModel = { - metadata_filtering_conditions?: MetadataFilteringCondition - reranking_enable: boolean - reranking_mode?: string | null - reranking_model?: RerankingModel - score_threshold?: number | null - score_threshold_enabled: boolean - search_method: RetrievalMethod - top_k: number - weights?: WeightModel -} - -export type WeightKeywordSetting = { - keyword_weight: number -} - -export type WeightModel = { - keyword_setting?: WeightKeywordSetting - vector_setting?: WeightVectorSetting - weight_type?: 'semantic_first' | 'keyword_first' | 'customized' | null -} - -export type WeightVectorSetting = { - embedding_model_name: string - embedding_provider_name: string - vector_weight: number -} - -export type PreProcessingRule = { - enabled: boolean - id: string -} - -export type ProcessRule = { - mode: 'automatic' | 'custom' | 'hierarchical' - rules?: Rule -} - -export type Rule = { - parent_mode?: 'full-doc' | 'paragraph' | null - pre_processing_rules?: Array | null - segmentation?: Segmentation - subchunk_segmentation?: Segmentation -} - -export type Segmentation = { - chunk_overlap?: number - max_tokens: number - separator?: string -} - -export type JsonValue = unknown - -export type DocumentMetadataOperation = { - document_id: string - metadata_list: Array - partial_update?: boolean -} - -export type MetadataDetail = { - id: string - name: string - value?: unknown -} - -export type SegmentUpdateArgs = { - answer?: string | null - attachment_ids?: Array | null - content?: string | null - enabled?: boolean | null - keywords?: Array | null - regenerate_child_chunks?: boolean - summary?: string | null -} - -export type SimpleAccount = { - email: string - id: string - name: string -} - -export type SimpleEndUser = { - id: string - is_anonymous: boolean - session_id?: string | null - type: string -} - -export type WorkflowAppLogPartialResponse = { - created_at?: number | null - created_by_account?: SimpleAccount - created_by_end_user?: SimpleEndUser - created_by_role?: string | null - created_from?: string | null - details?: unknown - id: string - workflow_run?: WorkflowRunForLogResponse -} - -export type WorkflowRunForLogResponse = { - created_at?: number | null - elapsed_time?: unknown - error?: string | null - exceptions_count?: number | null - finished_at?: number | null - id: string - status?: string | null - total_steps?: number | null - total_tokens?: number | null - triggered_from?: string | null - version?: string | null -} - export type GetRootData = { body?: never path?: never @@ -857,7 +902,7 @@ export type GetConversationsData = { query?: { last_id?: string | null limit?: number - sort_by?: 'created_at' | '-created_at' | 'updated_at' | '-updated_at' + sort_by?: '-created_at' | '-updated_at' | 'created_at' | 'updated_at' } url: '/conversations' } @@ -1561,8 +1606,8 @@ export type PostDatasetsByDatasetIdDocumentsMetadataResponse export type PatchDatasetsByDatasetIdDocumentsStatusByActionData = { body?: never path: { - dataset_id: string action: string + dataset_id: string } query?: never url: '/datasets/{dataset_id}/documents/status/{action}' @@ -1598,8 +1643,8 @@ export type PatchDatasetsByDatasetIdDocumentsStatusByActionResponse export type GetDatasetsByDatasetIdDocumentsByBatchIndexingStatusData = { body?: never path: { - dataset_id: string batch: string + dataset_id: string } query?: never url: '/datasets/{dataset_id}/documents/{batch}/indexing-status' @@ -1862,9 +1907,9 @@ export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdRes export type GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdData = { body?: never path: { - segment_id: string - document_id: string dataset_id: string + document_id: string + segment_id: string } query?: never url: '/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}' @@ -1995,10 +2040,10 @@ export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChi = { body?: never path: { + child_chunk_id: string dataset_id: string document_id: string segment_id: string - child_chunk_id: string } query?: never url: '/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}/child_chunks/{child_chunk_id}' @@ -2031,10 +2076,10 @@ export type PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChil = { body: ChildChunkUpdatePayload path: { + child_chunk_id: string dataset_id: string document_id: string segment_id: string - child_chunk_id: string } query?: never url: '/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}/child_chunks/{child_chunk_id}' @@ -2307,8 +2352,8 @@ export type GetDatasetsByDatasetIdMetadataBuiltInResponse export type PostDatasetsByDatasetIdMetadataBuiltInByActionData = { body?: never path: { - dataset_id: string action: string + dataset_id: string } query?: never url: '/datasets/{dataset_id}/metadata/built-in/{action}' @@ -2937,9 +2982,9 @@ export type GetWorkflowByTaskIdEventsData = { task_id: string } query?: { - user?: string - include_state_snapshot?: string continue_on_pause?: string + include_state_snapshot?: string + user?: string } url: '/workflow/{task_id}/events' } @@ -2976,7 +3021,7 @@ export type GetWorkflowsLogsData = { keyword?: string | null limit?: number page?: number - status?: 'succeeded' | 'failed' | 'stopped' | null + status?: 'failed' | 'stopped' | 'succeeded' | null } url: '/workflows/logs' } diff --git a/packages/contracts/generated/api/service/zod.gen.ts b/packages/contracts/generated/api/service/zod.gen.ts index 6feacbdead..ecd3d610fa 100644 --- a/packages/contracts/generated/api/service/zod.gen.ts +++ b/packages/contracts/generated/api/service/zod.gen.ts @@ -89,6 +89,36 @@ export const zCompletionRequestPayload = z.object({ retriever_from: z.string().optional().default('dev'), }) +/** + * Condition + * + * Condition detail + */ +export const zCondition = z.object({ + comparison_operator: z.enum([ + '<', + '=', + '>', + 'after', + 'before', + 'contains', + 'empty', + 'end with', + 'in', + 'is', + 'is not', + 'not contains', + 'not empty', + 'not in', + 'start with', + '≠', + '≤', + '≥', + ]), + name: z.string(), + value: z.unknown().optional(), +}) + /** * ConversationListQuery */ @@ -96,7 +126,7 @@ export const zConversationListQuery = z.object({ last_id: z.string().nullish(), limit: z.int().gte(1).lte(100).optional().default(20), sort_by: z - .enum(['created_at', '-created_at', 'updated_at', '-updated_at']) + .enum(['-created_at', '-updated_at', 'created_at', 'updated_at']) .optional() .default('-updated_at'), }) @@ -147,6 +177,42 @@ export const zConversationVariablesQuery = z.object({ variable_name: z.string().min(1).max(255).nullish(), }) +/** + * DataSetTag + */ +export const zDataSetTag = z.object({ + binding_count: z.string().nullish(), + id: z.string(), + name: z.string(), + type: z.string(), +}) + +/** + * DatasetListQuery + */ +export const zDatasetListQuery = z.object({ + include_all: z.boolean().optional().default(false), + keyword: z.string().nullish(), + limit: z.int().optional().default(20), + page: z.int().optional().default(1), + tag_ids: z.array(z.string()).optional(), +}) + +/** + * DatasetPermissionEnum + */ +export const zDatasetPermissionEnum = z.enum(['all_team_members', 'only_me', 'partial_members']) + +/** + * DatasourceNodeRunPayload + */ +export const zDatasourceNodeRunPayload = z.object({ + credential_id: z.string().nullish(), + datasource_type: z.string(), + inputs: z.record(z.string(), z.unknown()), + is_published: z.boolean(), +}) + /** * DocumentBatchDownloadZipPayload * @@ -156,6 +222,16 @@ export const zDocumentBatchDownloadZipPayload = z.object({ document_ids: z.array(z.uuid()).min(1).max(100), }) +/** + * DocumentListQuery + */ +export const zDocumentListQuery = z.object({ + keyword: z.string().nullish(), + limit: z.int().optional().default(20), + page: z.int().optional().default(1), + status: z.string().nullish(), +}) + /** * FeedbackListQuery */ @@ -191,12 +267,22 @@ export const zFileResponse = z.object({ user_id: z.string().nullish(), }) +export const zJsonValue = z.unknown() + +/** + * HumanInputFormSubmitPayload + */ +export const zHumanInputFormSubmitPayload = z.object({ + action: z.string(), + inputs: z.record(z.string(), zJsonValue), +}) + /** * MessageFeedbackPayload */ export const zMessageFeedbackPayload = z.object({ content: z.string().nullish(), - rating: z.enum(['like', 'dislike']).nullish(), + rating: z.enum(['dislike', 'like']).nullish(), }) /** @@ -213,7 +299,44 @@ export const zMessageListQuery = z.object({ */ export const zMetadataArgs = z.object({ name: z.string(), - type: z.enum(['string', 'number', 'time']), + type: z.enum(['number', 'string', 'time']), +}) + +/** + * MetadataDetail + */ +export const zMetadataDetail = z.object({ + id: z.string(), + name: z.string(), + value: z.unknown().optional(), +}) + +/** + * DocumentMetadataOperation + */ +export const zDocumentMetadataOperation = z.object({ + document_id: z.string(), + metadata_list: z.array(zMetadataDetail), + partial_update: z.boolean().optional().default(false), +}) + +/** + * MetadataFilteringCondition + * + * Metadata Filtering Condition. + */ +export const zMetadataFilteringCondition = z.object({ + conditions: z.array(zCondition).nullish(), + logical_operator: z.enum(['and', 'or']).nullish().default('and'), +}) + +/** + * MetadataOperationData + * + * Metadata operation data + */ +export const zMetadataOperationData = z.object({ + operation_data: z.array(zDocumentMetadataOperation), }) /** @@ -223,6 +346,44 @@ export const zMetadataUpdatePayload = z.object({ name: z.string(), }) +/** + * PipelineRunApiEntity + */ +export const zPipelineRunApiEntity = z.object({ + datasource_info_list: z.array(z.record(z.string(), z.unknown())), + datasource_type: z.string(), + inputs: z.record(z.string(), z.unknown()), + is_published: z.boolean(), + response_mode: z.string(), + start_node_id: z.string(), +}) + +/** + * PreProcessingRule + */ +export const zPreProcessingRule = z.object({ + enabled: z.boolean(), + id: z.string(), +}) + +/** + * RerankingModel + */ +export const zRerankingModel = z.object({ + reranking_model_name: z.string().nullish(), + reranking_provider_name: z.string().nullish(), +}) + +/** + * RetrievalMethod + */ +export const zRetrievalMethod = z.enum([ + 'full_text_search', + 'hybrid_search', + 'keyword_search', + 'semantic_search', +]) + /** * SegmentCreatePayload */ @@ -239,246 +400,23 @@ export const zSegmentListQuery = z.object({ }) /** - * TagBindingPayload + * SegmentUpdateArgs */ -export const zTagBindingPayload = z.object({ - tag_ids: z.array(z.string()), - target_id: z.string(), -}) - -/** - * TagCreatePayload - */ -export const zTagCreatePayload = z.object({ - name: z.string().min(1).max(50), -}) - -/** - * TagDeletePayload - */ -export const zTagDeletePayload = z.object({ - tag_id: z.string(), -}) - -/** - * TagUnbindingPayload - */ -export const zTagUnbindingPayload = z.object({ - tag_id: z.string(), - target_id: z.string(), -}) - -/** - * TagUpdatePayload - */ -export const zTagUpdatePayload = z.object({ - name: z.string().min(1).max(50), - tag_id: z.string(), -}) - -/** - * TextToAudioPayload - */ -export const zTextToAudioPayload = z.object({ - message_id: z.string().nullish(), - streaming: z.boolean().nullish(), - text: z.string().nullish(), - voice: z.string().nullish(), -}) - -/** - * WorkflowLogQuery - */ -export const zWorkflowLogQuery = z.object({ - created_at__after: z.string().nullish(), - created_at__before: z.string().nullish(), - created_by_account: z.string().nullish(), - created_by_end_user_session_id: z.string().nullish(), - keyword: z.string().nullish(), - limit: z.int().gte(1).lte(100).optional().default(20), - page: z.int().gte(1).lte(99999).optional().default(1), - status: z.enum(['succeeded', 'failed', 'stopped']).nullish(), -}) - -/** - * WorkflowRunPayload - */ -export const zWorkflowRunPayload = z.object({ - files: z.array(z.record(z.string(), z.unknown())).nullish(), - inputs: z.record(z.string(), z.unknown()), - response_mode: z.enum(['blocking', 'streaming']).nullish(), -}) - -/** - * WorkflowRunResponse - */ -export const zWorkflowRunResponse = z.object({ - created_at: z.int().nullish(), - elapsed_time: z.unknown().optional(), - error: z.string().nullish(), - finished_at: z.int().nullish(), - id: z.string(), - inputs: z.unknown().optional(), - outputs: z.record(z.string(), z.unknown()).optional(), - status: z.string(), - total_steps: z.int().nullish(), - total_tokens: z.int().nullish(), - workflow_id: z.string(), -}) - -/** - * Condition - * - * Condition detail - */ -export const zCondition = z.object({ - comparison_operator: z.enum([ - 'contains', - 'not contains', - 'start with', - 'end with', - 'is', - 'is not', - 'empty', - 'not empty', - 'in', - 'not in', - '=', - '≠', - '>', - '<', - '≥', - '≤', - 'before', - 'after', - ]), - name: z.string(), - value: z.unknown().optional(), -}) - -/** - * DatasetPermissionEnum - */ -export const zDatasetPermissionEnum = z.enum(['only_me', 'all_team_members', 'partial_members']) - -/** - * MetadataFilteringCondition - * - * Metadata Filtering Condition. - */ -export const zMetadataFilteringCondition = z.object({ - conditions: z.array(zCondition).nullish(), - logical_operator: z.enum(['and', 'or']).nullish().default('and'), -}) - -/** - * RerankingModel - */ -export const zRerankingModel = z.object({ - reranking_model_name: z.string().nullish(), - reranking_provider_name: z.string().nullish(), -}) - -/** - * RetrievalMethod - */ -export const zRetrievalMethod = z.enum([ - 'semantic_search', - 'full_text_search', - 'hybrid_search', - 'keyword_search', -]) - -/** - * WeightKeywordSetting - */ -export const zWeightKeywordSetting = z.object({ - keyword_weight: z.number(), -}) - -/** - * WeightVectorSetting - */ -export const zWeightVectorSetting = z.object({ - embedding_model_name: z.string(), - embedding_provider_name: z.string(), - vector_weight: z.number(), -}) - -/** - * WeightModel - */ -export const zWeightModel = z.object({ - keyword_setting: zWeightKeywordSetting.optional(), - vector_setting: zWeightVectorSetting.optional(), - weight_type: z.enum(['semantic_first', 'keyword_first', 'customized']).nullish(), -}) - -/** - * RetrievalModel - */ -export const zRetrievalModel = z.object({ - metadata_filtering_conditions: zMetadataFilteringCondition.optional(), - reranking_enable: z.boolean(), - reranking_mode: z.string().nullish(), - reranking_model: zRerankingModel.optional(), - score_threshold: z.number().nullish(), - score_threshold_enabled: z.boolean(), - search_method: zRetrievalMethod, - top_k: z.int(), - weights: zWeightModel.optional(), -}) - -/** - * DatasetCreatePayload - */ -export const zDatasetCreatePayload = z.object({ - description: z.string().max(400).optional().default(''), - embedding_model: z.string().nullish(), - embedding_model_provider: z.string().nullish(), - external_knowledge_api_id: z.string().nullish(), - external_knowledge_id: z.string().nullish(), - indexing_technique: z.enum(['high_quality', 'economy']).nullish(), - name: z.string().min(1).max(40), - permission: zDatasetPermissionEnum.optional(), - provider: z.string().optional().default('vendor'), - retrieval_model: zRetrievalModel.optional(), - summary_index_setting: z.record(z.string(), z.unknown()).nullish(), -}) - -/** - * DatasetUpdatePayload - */ -export const zDatasetUpdatePayload = z.object({ - description: z.string().max(400).nullish(), - embedding_model: z.string().nullish(), - embedding_model_provider: z.string().nullish(), - external_knowledge_api_id: z.string().nullish(), - external_knowledge_id: z.string().nullish(), - external_retrieval_model: z.record(z.string(), z.unknown()).nullish(), - indexing_technique: z.enum(['high_quality', 'economy']).nullish(), - name: z.string().min(1).max(40).nullish(), - partial_member_list: z.array(z.record(z.string(), z.string())).nullish(), - permission: zDatasetPermissionEnum.optional(), - retrieval_model: zRetrievalModel.optional(), -}) - -/** - * HitTestingPayload - */ -export const zHitTestingPayload = z.object({ +export const zSegmentUpdateArgs = z.object({ + answer: z.string().nullish(), attachment_ids: z.array(z.string()).nullish(), - external_retrieval_model: z.record(z.string(), z.unknown()).nullish(), - query: z.string().max(250), - retrieval_model: zRetrievalModel.optional(), + content: z.string().nullish(), + enabled: z.boolean().nullish(), + keywords: z.array(z.string()).nullish(), + regenerate_child_chunks: z.boolean().optional().default(false), + summary: z.string().nullish(), }) /** - * PreProcessingRule + * SegmentUpdatePayload */ -export const zPreProcessingRule = z.object({ - enabled: z.boolean(), - id: z.string(), +export const zSegmentUpdatePayload = z.object({ + segment: zSegmentUpdateArgs, }) /** @@ -508,6 +446,150 @@ export const zProcessRule = z.object({ rules: zRule.optional(), }) +/** + * SimpleAccount + */ +export const zSimpleAccount = z.object({ + email: z.string(), + id: z.string(), + name: z.string(), +}) + +/** + * SimpleEndUser + */ +export const zSimpleEndUser = z.object({ + id: z.string(), + is_anonymous: z.boolean(), + session_id: z.string().nullish(), + type: z.string(), +}) + +/** + * TagBindingPayload + */ +export const zTagBindingPayload = z.object({ + tag_ids: z.array(z.string()), + target_id: z.string(), +}) + +/** + * TagCreatePayload + */ +export const zTagCreatePayload = z.object({ + name: z.string().min(1).max(50), +}) + +/** + * TagDeletePayload + */ +export const zTagDeletePayload = z.object({ + tag_id: z.string(), +}) + +/** + * TagUnbindingPayload + * + * Accept the legacy single-tag Service API payload while exposing a normalized tag_ids list internally. + */ +export const zTagUnbindingPayload = z.object({ + tag_id: z.string().nullish(), + tag_ids: z.array(z.string()).optional(), + target_id: z.string(), +}) + +/** + * TagUpdatePayload + */ +export const zTagUpdatePayload = z.object({ + name: z.string().min(1).max(50), + tag_id: z.string(), +}) + +/** + * TextToAudioPayload + */ +export const zTextToAudioPayload = z.object({ + message_id: z.string().nullish(), + streaming: z.boolean().nullish(), + text: z.string().nullish(), + voice: z.string().nullish(), +}) + +/** + * WeightKeywordSetting + */ +export const zWeightKeywordSetting = z.object({ + keyword_weight: z.number(), +}) + +/** + * WeightVectorSetting + */ +export const zWeightVectorSetting = z.object({ + embedding_model_name: z.string(), + embedding_provider_name: z.string(), + vector_weight: z.number(), +}) + +/** + * WeightModel + */ +export const zWeightModel = z.object({ + keyword_setting: zWeightKeywordSetting.optional(), + vector_setting: zWeightVectorSetting.optional(), + weight_type: z.enum(['customized', 'keyword_first', 'semantic_first']).nullish(), +}) + +/** + * RetrievalModel + */ +export const zRetrievalModel = z.object({ + metadata_filtering_conditions: zMetadataFilteringCondition.optional(), + reranking_enable: z.boolean(), + reranking_mode: z.string().nullish(), + reranking_model: zRerankingModel.optional(), + score_threshold: z.number().nullish(), + score_threshold_enabled: z.boolean(), + search_method: zRetrievalMethod, + top_k: z.int(), + weights: zWeightModel.optional(), +}) + +/** + * DatasetCreatePayload + */ +export const zDatasetCreatePayload = z.object({ + description: z.string().max(400).optional().default(''), + embedding_model: z.string().nullish(), + embedding_model_provider: z.string().nullish(), + external_knowledge_api_id: z.string().nullish(), + external_knowledge_id: z.string().nullish(), + indexing_technique: z.enum(['economy', 'high_quality']).nullish(), + name: z.string().min(1).max(40), + permission: zDatasetPermissionEnum.optional(), + provider: z.string().optional().default('vendor'), + retrieval_model: zRetrievalModel.optional(), + summary_index_setting: z.record(z.string(), z.unknown()).nullish(), +}) + +/** + * DatasetUpdatePayload + */ +export const zDatasetUpdatePayload = z.object({ + description: z.string().max(400).nullish(), + embedding_model: z.string().nullish(), + embedding_model_provider: z.string().nullish(), + external_knowledge_api_id: z.string().nullish(), + external_knowledge_id: z.string().nullish(), + external_retrieval_model: z.record(z.string(), z.unknown()).nullish(), + indexing_technique: z.enum(['economy', 'high_quality']).nullish(), + name: z.string().min(1).max(40).nullish(), + partial_member_list: z.array(z.record(z.string(), z.string())).nullish(), + permission: zDatasetPermissionEnum.optional(), + retrieval_model: zRetrievalModel.optional(), +}) + /** * DocumentTextCreatePayload */ @@ -536,80 +618,28 @@ export const zDocumentTextUpdate = z.object({ text: z.string().nullish(), }) -export const zJsonValue = z.unknown() - /** - * HumanInputFormSubmitPayload + * HitTestingPayload */ -export const zHumanInputFormSubmitPayload = z.object({ - action: z.string(), - inputs: z.record(z.string(), zJsonValue), -}) - -/** - * MetadataDetail - */ -export const zMetadataDetail = z.object({ - id: z.string(), - name: z.string(), - value: z.unknown().optional(), -}) - -/** - * DocumentMetadataOperation - */ -export const zDocumentMetadataOperation = z.object({ - document_id: z.string(), - metadata_list: z.array(zMetadataDetail), - partial_update: z.boolean().optional().default(false), -}) - -/** - * MetadataOperationData - * - * Metadata operation data - */ -export const zMetadataOperationData = z.object({ - operation_data: z.array(zDocumentMetadataOperation), -}) - -/** - * SegmentUpdateArgs - */ -export const zSegmentUpdateArgs = z.object({ - answer: z.string().nullish(), +export const zHitTestingPayload = z.object({ attachment_ids: z.array(z.string()).nullish(), - content: z.string().nullish(), - enabled: z.boolean().nullish(), - keywords: z.array(z.string()).nullish(), - regenerate_child_chunks: z.boolean().optional().default(false), - summary: z.string().nullish(), + external_retrieval_model: z.record(z.string(), z.unknown()).nullish(), + query: z.string().max(250), + retrieval_model: zRetrievalModel.optional(), }) /** - * SegmentUpdatePayload + * WorkflowLogQuery */ -export const zSegmentUpdatePayload = z.object({ - segment: zSegmentUpdateArgs, -}) - -/** - * SimpleAccount - */ -export const zSimpleAccount = z.object({ - email: z.string(), - id: z.string(), - name: z.string(), -}) - -/** - * SimpleEndUser - */ -export const zSimpleEndUser = z.object({ - id: z.string(), - is_anonymous: z.boolean(), - session_id: z.string().nullish(), - type: z.string(), +export const zWorkflowLogQuery = z.object({ + created_at__after: z.string().nullish(), + created_at__before: z.string().nullish(), + created_by_account: z.string().nullish(), + created_by_end_user_session_id: z.string().nullish(), + keyword: z.string().nullish(), + limit: z.int().gte(1).lte(100).optional().default(20), + page: z.int().gte(1).lte(99999).optional().default(1), + status: z.enum(['failed', 'stopped', 'succeeded']).nullish(), }) /** @@ -654,6 +684,32 @@ export const zWorkflowAppLogPaginationResponse = z.object({ total: z.int(), }) +/** + * WorkflowRunPayload + */ +export const zWorkflowRunPayload = z.object({ + files: z.array(z.record(z.string(), z.unknown())).nullish(), + inputs: z.record(z.string(), z.unknown()), + response_mode: z.enum(['blocking', 'streaming']).nullish(), +}) + +/** + * WorkflowRunResponse + */ +export const zWorkflowRunResponse = z.object({ + created_at: z.int().nullish(), + elapsed_time: z.unknown().optional(), + error: z.string().nullish(), + finished_at: z.int().nullish(), + id: z.string(), + inputs: z.unknown().optional(), + outputs: z.record(z.string(), z.unknown()).optional(), + status: z.string(), + total_steps: z.int().nullish(), + total_tokens: z.int().nullish(), + workflow_id: z.string(), +}) + /** * Success */ @@ -766,7 +822,7 @@ export const zGetConversationsQuery = z.object({ last_id: z.string().nullish(), limit: z.int().gte(1).lte(100).optional().default(20), sort_by: z - .enum(['created_at', '-created_at', 'updated_at', '-updated_at']) + .enum(['-created_at', '-updated_at', 'created_at', 'updated_at']) .optional() .default('-updated_at'), }) @@ -877,7 +933,7 @@ export const zPostDatasetsTagsBindingResponse = z.record(z.string(), z.unknown() export const zPostDatasetsTagsUnbindingBody = zTagUnbindingPayload /** - * Tag unbound successfully + * Tags unbound successfully */ export const zPostDatasetsTagsUnbindingResponse = z.record(z.string(), z.unknown()) @@ -997,8 +1053,8 @@ export const zPostDatasetsByDatasetIdDocumentsMetadataPath = z.object({ export const zPostDatasetsByDatasetIdDocumentsMetadataResponse = z.record(z.string(), z.unknown()) export const zPatchDatasetsByDatasetIdDocumentsStatusByActionPath = z.object({ - dataset_id: z.string(), action: z.string(), + dataset_id: z.string(), }) /** @@ -1010,8 +1066,8 @@ export const zPatchDatasetsByDatasetIdDocumentsStatusByActionResponse = z.record ) export const zGetDatasetsByDatasetIdDocumentsByBatchIndexingStatusPath = z.object({ - dataset_id: z.string(), batch: z.string(), + dataset_id: z.string(), }) /** @@ -1122,9 +1178,9 @@ export const zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdR ) export const zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdPath = z.object({ - segment_id: z.string(), - document_id: z.string(), dataset_id: z.string(), + document_id: z.string(), + segment_id: z.string(), }) /** @@ -1190,10 +1246,10 @@ export const zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChi export const zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdPath = z.object({ + child_chunk_id: z.string(), dataset_id: z.string(), document_id: z.string(), segment_id: z.string(), - child_chunk_id: z.string(), }) /** @@ -1207,10 +1263,10 @@ export const zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdCh export const zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdPath = z.object({ + child_chunk_id: z.string(), dataset_id: z.string(), document_id: z.string(), segment_id: z.string(), - child_chunk_id: z.string(), }) /** @@ -1316,8 +1372,8 @@ export const zGetDatasetsByDatasetIdMetadataBuiltInPath = z.object({ export const zGetDatasetsByDatasetIdMetadataBuiltInResponse = z.record(z.string(), z.unknown()) export const zPostDatasetsByDatasetIdMetadataBuiltInByActionPath = z.object({ - dataset_id: z.string(), action: z.string(), + dataset_id: z.string(), }) /** @@ -1524,9 +1580,9 @@ export const zGetWorkflowByTaskIdEventsPath = z.object({ }) export const zGetWorkflowByTaskIdEventsQuery = z.object({ - user: z.string().optional(), - include_state_snapshot: z.string().optional(), continue_on_pause: z.string().optional(), + include_state_snapshot: z.string().optional(), + user: z.string().optional(), }) /** @@ -1542,7 +1598,7 @@ export const zGetWorkflowsLogsQuery = z.object({ keyword: z.string().nullish(), limit: z.int().gte(1).lte(100).optional().default(20), page: z.int().gte(1).lte(99999).optional().default(1), - status: z.enum(['succeeded', 'failed', 'stopped']).nullish(), + status: z.enum(['failed', 'stopped', 'succeeded']).nullish(), }) /** diff --git a/packages/contracts/generated/api/web/types.gen.ts b/packages/contracts/generated/api/web/types.gen.ts index f2009b966b..d2cc6371ee 100644 --- a/packages/contracts/generated/api/web/types.gen.ts +++ b/packages/contracts/generated/api/web/types.gen.ts @@ -4,6 +4,11 @@ export type ClientOptions = { baseUrl: `${string}://${string}/api` | (string & {}) } +export type AppAccessModeQuery = { + appCode?: string | null + appId?: string | null +} + export type ChatMessagePayload = { conversation_id?: string | null files?: Array<{ @@ -30,6 +35,18 @@ export type CompletionMessagePayload = { retriever_from?: string } +export type ConversationListQuery = { + last_id?: string | null + limit?: number + pinned?: boolean | null + sort_by?: '-created_at' | '-updated_at' | 'created_at' | 'updated_at' +} + +export type ConversationRenamePayload = { + auto_generate?: boolean + name?: string | null +} + export type EmailCodeLoginSendPayload = { email: string language?: string | null @@ -91,6 +108,17 @@ export type LoginPayload = { password: string } +export type MessageFeedbackPayload = { + content?: string | null + rating?: 'dislike' | 'like' | null +} + +export type MessageListQuery = { + conversation_id: string + first_id?: string | null + limit?: number +} + export type MessageMoreLikeThisQuery = { response_mode: 'blocking' | 'streaming' } @@ -100,6 +128,19 @@ export type RemoteFileInfo = { file_type: string } +export type RemoteFileUploadPayload = { + url: string +} + +export type SavedMessageCreatePayload = { + message_id: string +} + +export type SavedMessageListQuery = { + last_id?: string | null + limit?: number +} + export type TextToAudioPayload = { message_id?: string | null streaming?: boolean | null @@ -310,8 +351,8 @@ export type GetConversationsData = { query?: { last_id?: string limit?: number - pinned?: 'true' | 'false' - sort_by?: 'created_at' | '-created_at' | 'updated_at' | '-updated_at' + pinned?: 'false' | 'true' + sort_by?: '-created_at' | '-updated_at' | 'created_at' | 'updated_at' } url: '/conversations' } @@ -389,8 +430,8 @@ export type PostConversationsByCIdNameData = { c_id: string } query?: { - name?: string auto_generate?: boolean + name?: string } url: '/conversations/{c_id}/name' } @@ -828,8 +869,8 @@ export type PostMessagesByMessageIdFeedbacksData = { message_id: string } query?: { - rating?: 'like' | 'dislike' content?: string + rating?: 'dislike' | 'like' } url: '/messages/{message_id}/feedbacks' } @@ -1310,8 +1351,8 @@ export type GetWebappAccessModeData = { body?: never path?: never query?: { - appId?: string appCode?: string + appId?: string } url: '/webapp/access-mode' } diff --git a/packages/contracts/generated/api/web/zod.gen.ts b/packages/contracts/generated/api/web/zod.gen.ts index ec4bd19aff..75f22ed271 100644 --- a/packages/contracts/generated/api/web/zod.gen.ts +++ b/packages/contracts/generated/api/web/zod.gen.ts @@ -2,6 +2,14 @@ import * as z from 'zod' +/** + * AppAccessModeQuery + */ +export const zAppAccessModeQuery = z.object({ + appCode: z.string().nullish(), + appId: z.string().nullish(), +}) + /** * ChatMessagePayload */ @@ -26,6 +34,27 @@ export const zCompletionMessagePayload = z.object({ retriever_from: z.string().optional().default('web_app'), }) +/** + * ConversationListQuery + */ +export const zConversationListQuery = z.object({ + last_id: z.string().nullish(), + limit: z.int().gte(1).lte(100).optional().default(20), + pinned: z.boolean().nullish(), + sort_by: z + .enum(['-created_at', '-updated_at', 'created_at', 'updated_at']) + .optional() + .default('-updated_at'), +}) + +/** + * ConversationRenamePayload + */ +export const zConversationRenamePayload = z.object({ + auto_generate: z.boolean().optional().default(false), + name: z.string().nullish(), +}) + /** * EmailCodeLoginSendPayload */ @@ -111,6 +140,23 @@ export const zLoginPayload = z.object({ password: z.string(), }) +/** + * MessageFeedbackPayload + */ +export const zMessageFeedbackPayload = z.object({ + content: z.string().nullish(), + rating: z.enum(['dislike', 'like']).nullish(), +}) + +/** + * MessageListQuery + */ +export const zMessageListQuery = z.object({ + conversation_id: z.string(), + first_id: z.string().nullish(), + limit: z.int().gte(1).lte(100).optional().default(20), +}) + /** * MessageMoreLikeThisQuery */ @@ -126,6 +172,28 @@ export const zRemoteFileInfo = z.object({ file_type: z.string(), }) +/** + * RemoteFileUploadPayload + */ +export const zRemoteFileUploadPayload = z.object({ + url: z.url().min(1).max(2083), +}) + +/** + * SavedMessageCreatePayload + */ +export const zSavedMessageCreatePayload = z.object({ + message_id: z.string(), +}) + +/** + * SavedMessageListQuery + */ +export const zSavedMessageListQuery = z.object({ + last_id: z.string().nullish(), + limit: z.int().gte(1).lte(100).optional().default(20), +}) + /** * TextToAudioPayload */ @@ -184,9 +252,9 @@ export const zPostCompletionMessagesByTaskIdStopResponse = z.record(z.string(), export const zGetConversationsQuery = z.object({ last_id: z.string().optional(), limit: z.int().optional().default(20), - pinned: z.enum(['true', 'false']).optional(), + pinned: z.enum(['false', 'true']).optional(), sort_by: z - .enum(['created_at', '-created_at', 'updated_at', '-updated_at']) + .enum(['-created_at', '-updated_at', 'created_at', 'updated_at']) .optional() .default('-updated_at'), }) @@ -210,8 +278,8 @@ export const zPostConversationsByCIdNamePath = z.object({ }) export const zPostConversationsByCIdNameQuery = z.object({ - name: z.string().optional(), auto_generate: z.boolean().optional().default(false), + name: z.string().optional(), }) /** @@ -328,8 +396,8 @@ export const zPostMessagesByMessageIdFeedbacksPath = z.object({ }) export const zPostMessagesByMessageIdFeedbacksQuery = z.object({ - rating: z.enum(['like', 'dislike']).optional(), content: z.string().optional(), + rating: z.enum(['dislike', 'like']).optional(), }) /** @@ -434,8 +502,8 @@ export const zPostTextToAudioBody = zTextToAudioPayload export const zPostTextToAudioResponse = z.record(z.string(), z.unknown()) export const zGetWebappAccessModeQuery = z.object({ - appId: z.string().optional(), appCode: z.string().optional(), + appId: z.string().optional(), }) /**