diff --git a/.github/workflows/autofix.yml b/.github/workflows/autofix.yml index 96425b47ac..76fbd18f47 100644 --- a/.github/workflows/autofix.yml +++ b/.github/workflows/autofix.yml @@ -113,7 +113,7 @@ jobs: find . -name "*.py.bak" -type f -delete - name: Setup web environment - if: github.event_name != 'merge_group' && steps.web-changes.outputs.any_changed == 'true' + if: github.event_name != 'merge_group' uses: ./.github/actions/setup-web - name: ESLint autofix diff --git a/.github/workflows/translate-i18n-claude.yml b/.github/workflows/translate-i18n-claude.yml index 5f244f1144..7bb6fc1bbd 100644 --- a/.github/workflows/translate-i18n-claude.yml +++ b/.github/workflows/translate-i18n-claude.yml @@ -158,7 +158,7 @@ jobs: - name: Run Claude Code for Translation Sync if: steps.context.outputs.CHANGED_FILES != '' - uses: anthropics/claude-code-action@ef50f123a3a9be95b60040d042717517407c7256 # v1.0.110 + uses: anthropics/claude-code-action@fefa07e9c665b7320f08c3b525980457f22f58aa # v1.0.111 with: anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index 852fb4258e..42f9fe280b 100644 --- a/.gitignore +++ b/.gitignore @@ -218,6 +218,9 @@ node_modules # plugin migrate plugins.jsonl +# generated API OpenAPI specs +packages/contracts/openapi/ + # mise mise.toml diff --git a/api/controllers/common/helpers.py b/api/controllers/common/helpers.py index ef89e66980..84903733b5 100644 --- a/api/controllers/common/helpers.py +++ b/api/controllers/common/helpers.py @@ -41,7 +41,8 @@ def guess_file_info_from_response(response: httpx.Response): # Try to extract filename from URL parsed_url = urllib.parse.urlparse(url) url_path = parsed_url.path - filename = os.path.basename(url_path) + # Decode percent-encoded characters in the path segment + filename = urllib.parse.unquote(os.path.basename(url_path)) # If filename couldn't be extracted, use Content-Disposition header if not filename: diff --git a/api/controllers/console/__init__.py b/api/controllers/console/__init__.py index 23351beed9..7302a4edf5 100644 --- a/api/controllers/console/__init__.py +++ b/api/controllers/console/__init__.py @@ -126,8 +126,6 @@ from .snippets import snippet_workflow, snippet_workflow_draft_variable from .socketio import workflow as socketio_workflow # pyright: ignore[reportUnusedImport] # Import snippet controllers -from .snippets import snippet_workflow, snippet_workflow_draft_variable - # Import tag controllers from .tag import tags @@ -215,12 +213,12 @@ __all__ = [ "setup", "site", "snippet_workflow", - "snippet_workflow_draft_variable", - "snippets", - "socketio_workflow", "snippet_workflow", "snippet_workflow_draft_variable", + "snippet_workflow_draft_variable", "snippets", + "snippets", + "socketio_workflow", "spec", "statistic", "tags", diff --git a/api/controllers/console/app/app.py b/api/controllers/console/app/app.py index 551ffe255a..ae9bea7b70 100644 --- a/api/controllers/console/app/app.py +++ b/api/controllers/console/app/app.py @@ -5,7 +5,6 @@ from typing import Any, Literal from flask import request from flask_restx import Resource -from graphon.enums import WorkflowExecutionStatus from pydantic import AliasChoices, BaseModel, Field, computed_field, field_validator from sqlalchemy import select from sqlalchemy.orm import Session @@ -30,6 +29,7 @@ from core.rag.retrieval.retrieval_methods import RetrievalMethod from core.trigger.constants import TRIGGER_NODE_TYPES from extensions.ext_database import db from fields.base import ResponseModel +from graphon.enums import WorkflowExecutionStatus from libs.helper import build_icon_url from libs.login import current_account_with_tenant, login_required from models import App, DatasetPermissionEnum, Workflow diff --git a/api/controllers/console/app/audio.py b/api/controllers/console/app/audio.py index 78ddb904e1..91fbe4a85a 100644 --- a/api/controllers/console/app/audio.py +++ b/api/controllers/console/app/audio.py @@ -2,7 +2,6 @@ import logging from flask import request from flask_restx import Resource, fields -from graphon.model_runtime.errors.invoke import InvokeError from pydantic import BaseModel, Field from werkzeug.exceptions import InternalServerError @@ -23,6 +22,7 @@ from controllers.console.app.error import ( from controllers.console.app.wraps import get_app_model from controllers.console.wraps import account_initialization_required, setup_required from core.errors.error import ModelCurrentlyNotSupportError, ProviderTokenNotInitError, QuotaExceededError +from graphon.model_runtime.errors.invoke import InvokeError from libs.login import login_required from models import App, AppMode from services.audio_service import AudioService diff --git a/api/controllers/console/app/completion.py b/api/controllers/console/app/completion.py index d83925d173..fe274e4c9a 100644 --- a/api/controllers/console/app/completion.py +++ b/api/controllers/console/app/completion.py @@ -3,7 +3,6 @@ from typing import Any, Literal from flask import request from flask_restx import Resource -from graphon.model_runtime.errors.invoke import InvokeError from pydantic import BaseModel, Field, field_validator from werkzeug.exceptions import InternalServerError, NotFound @@ -27,6 +26,7 @@ from core.errors.error import ( QuotaExceededError, ) from core.helper.trace_id_helper import get_external_trace_id +from graphon.model_runtime.errors.invoke import InvokeError from libs import helper from libs.helper import uuid_value from libs.login import current_user, login_required diff --git a/api/controllers/console/app/generator.py b/api/controllers/console/app/generator.py index 7101d5df7b..c720a5e074 100644 --- a/api/controllers/console/app/generator.py +++ b/api/controllers/console/app/generator.py @@ -1,7 +1,6 @@ from collections.abc import Sequence from flask_restx import Resource -from graphon.model_runtime.errors.invoke import InvokeError from pydantic import BaseModel, Field from controllers.console import console_ns @@ -20,6 +19,7 @@ from core.helper.code_executor.python3.python3_code_provider import Python3CodeP from core.llm_generator.entities import RuleCodeGeneratePayload, RuleGeneratePayload, RuleStructuredOutputPayload from core.llm_generator.llm_generator import LLMGenerator from extensions.ext_database import db +from graphon.model_runtime.errors.invoke import InvokeError from libs.login import current_account_with_tenant, login_required from models import App from services.workflow_service import WorkflowService diff --git a/api/controllers/console/app/workflow.py b/api/controllers/console/app/workflow.py index 0965c0d898..97fb3e585c 100644 --- a/api/controllers/console/app/workflow.py +++ b/api/controllers/console/app/workflow.py @@ -5,11 +5,6 @@ from typing import Any, Literal from flask import abort, request from flask_restx import Resource, fields, marshal, marshal_with -from graphon.enums import NodeType -from graphon.file import File -from graphon.file import helpers as file_helpers -from graphon.graph_engine.manager import GraphEngineManager -from graphon.model_runtime.utils.encoders import jsonable_encoder from pydantic import BaseModel, Field, ValidationError, field_validator from sqlalchemy.orm import Session, sessionmaker from werkzeug.exceptions import BadRequest, Forbidden, InternalServerError, NotFound @@ -42,6 +37,11 @@ from factories import file_factory, variable_factory from fields.member_fields import simple_account_fields from fields.online_user_fields import online_user_list_fields from fields.workflow_fields import workflow_fields, workflow_pagination_fields +from graphon.enums import NodeType +from graphon.file import File +from graphon.file import helpers as file_helpers +from graphon.graph_engine.manager import GraphEngineManager +from graphon.model_runtime.utils.encoders import jsonable_encoder from libs import helper from libs.datetime_utils import naive_utc_now from libs.helper import TimestampField, uuid_value diff --git a/api/controllers/console/app/workflow_app_log.py b/api/controllers/console/app/workflow_app_log.py index 1a2599604d..1502ba07a3 100644 --- a/api/controllers/console/app/workflow_app_log.py +++ b/api/controllers/console/app/workflow_app_log.py @@ -4,7 +4,6 @@ from typing import Any from dateutil.parser import isoparse from flask import request from flask_restx import Resource -from graphon.enums import WorkflowExecutionStatus from pydantic import BaseModel, Field, field_validator from sqlalchemy.orm import sessionmaker @@ -16,6 +15,7 @@ from extensions.ext_database import db from fields.base import ResponseModel from fields.end_user_fields import SimpleEndUser from fields.member_fields import SimpleAccount +from graphon.enums import WorkflowExecutionStatus from libs.login import login_required from models import App from models.model import AppMode diff --git a/api/controllers/console/app/workflow_run.py b/api/controllers/console/app/workflow_run.py index a1a075be71..6748d95d6b 100644 --- a/api/controllers/console/app/workflow_run.py +++ b/api/controllers/console/app/workflow_run.py @@ -3,8 +3,6 @@ from typing import Literal, TypedDict, cast from flask import request from flask_restx import Resource, fields, marshal_with -from graphon.entities.pause_reason import HumanInputRequired -from graphon.enums import WorkflowExecutionStatus from pydantic import BaseModel, Field, field_validator from sqlalchemy import select from sqlalchemy.orm import sessionmaker @@ -28,6 +26,8 @@ from fields.workflow_run_fields import ( workflow_run_node_execution_list_fields, workflow_run_pagination_fields, ) +from graphon.entities.pause_reason import HumanInputRequired +from graphon.enums import WorkflowExecutionStatus from libs.archive_storage import ArchiveStorageNotConfiguredError, get_archive_storage from libs.custom_inputs import time_duration from libs.helper import uuid_value diff --git a/api/controllers/console/auth/oauth_server.py b/api/controllers/console/auth/oauth_server.py index b55cda4244..727428c8e7 100644 --- a/api/controllers/console/auth/oauth_server.py +++ b/api/controllers/console/auth/oauth_server.py @@ -5,11 +5,11 @@ from typing import Concatenate from flask import jsonify, request from flask.typing import ResponseReturnValue from flask_restx import Resource -from graphon.model_runtime.utils.encoders import jsonable_encoder from pydantic import BaseModel from werkzeug.exceptions import BadRequest, NotFound from controllers.console.wraps import account_initialization_required, setup_required +from graphon.model_runtime.utils.encoders import jsonable_encoder from libs.login import current_account_with_tenant, login_required from models import Account from models.model import OAuthProviderApp diff --git a/api/controllers/console/datasets/datasets.py b/api/controllers/console/datasets/datasets.py index 25a7286b43..afa274e0f4 100644 --- a/api/controllers/console/datasets/datasets.py +++ b/api/controllers/console/datasets/datasets.py @@ -4,7 +4,6 @@ from urllib.parse import quote from flask import Response, request from flask_restx import Resource, fields, marshal, marshal_with -from graphon.model_runtime.entities.model_entities import ModelType from pydantic import BaseModel, Field, field_validator from sqlalchemy import func, select from sqlalchemy.orm import Session @@ -54,6 +53,7 @@ from fields.dataset_fields import ( weighted_score_fields, ) from fields.document_fields import document_status_fields +from graphon.model_runtime.entities.model_entities import ModelType from libs.login import current_account_with_tenant, login_required from libs.url_utils import normalize_api_base_url from models import ApiToken, Dataset, Document, DocumentSegment, EvaluationRun, EvaluationTargetType, UploadFile diff --git a/api/controllers/console/datasets/datasets_document.py b/api/controllers/console/datasets/datasets_document.py index 98d4ad9412..b61e39716f 100644 --- a/api/controllers/console/datasets/datasets_document.py +++ b/api/controllers/console/datasets/datasets_document.py @@ -8,8 +8,6 @@ from typing import Any, Literal, cast import sqlalchemy as sa from flask import request, send_file from flask_restx import Resource, fields, marshal, marshal_with -from graphon.model_runtime.entities.model_entities import ModelType -from graphon.model_runtime.errors.invoke import InvokeAuthorizationError from pydantic import BaseModel, Field from sqlalchemy import asc, desc, func, select from werkzeug.exceptions import Forbidden, NotFound @@ -39,6 +37,8 @@ from fields.document_fields import ( document_status_fields, document_with_segments_fields, ) +from graphon.model_runtime.entities.model_entities import ModelType +from graphon.model_runtime.errors.invoke import InvokeAuthorizationError from libs.datetime_utils import naive_utc_now from libs.login import current_account_with_tenant, login_required from models import DatasetProcessRule, Document, DocumentSegment, UploadFile diff --git a/api/controllers/console/datasets/datasets_segments.py b/api/controllers/console/datasets/datasets_segments.py index 354c299bef..2647bb1f5a 100644 --- a/api/controllers/console/datasets/datasets_segments.py +++ b/api/controllers/console/datasets/datasets_segments.py @@ -2,7 +2,6 @@ import uuid from flask import request from flask_restx import Resource, marshal -from graphon.model_runtime.entities.model_entities import ModelType from pydantic import BaseModel, Field from sqlalchemy import String, cast, func, or_, select from sqlalchemy.dialects.postgresql import JSONB @@ -32,6 +31,7 @@ from core.rag.index_processor.constant.index_type import IndexTechniqueType from extensions.ext_database import db from extensions.ext_redis import redis_client from fields.segment_fields import child_chunk_fields, segment_fields +from graphon.model_runtime.entities.model_entities import ModelType from libs.helper import escape_like_pattern from libs.login import current_account_with_tenant, login_required from models.dataset import ChildChunk, DocumentSegment diff --git a/api/controllers/console/datasets/hit_testing_base.py b/api/controllers/console/datasets/hit_testing_base.py index 6335e00bf7..71ab1513ed 100644 --- a/api/controllers/console/datasets/hit_testing_base.py +++ b/api/controllers/console/datasets/hit_testing_base.py @@ -2,7 +2,6 @@ import logging from typing import Any from flask_restx import marshal -from graphon.model_runtime.errors.invoke import InvokeError from pydantic import BaseModel, Field from werkzeug.exceptions import Forbidden, InternalServerError, NotFound @@ -21,6 +20,7 @@ from core.errors.error import ( QuotaExceededError, ) from fields.hit_testing_fields import hit_testing_record_fields +from graphon.model_runtime.errors.invoke import InvokeError from libs.login import current_user from models.account import Account from services.dataset_service import DatasetService diff --git a/api/controllers/console/datasets/rag_pipeline/datasource_auth.py b/api/controllers/console/datasets/rag_pipeline/datasource_auth.py index bdf83b991e..fd0a8b33bc 100644 --- a/api/controllers/console/datasets/rag_pipeline/datasource_auth.py +++ b/api/controllers/console/datasets/rag_pipeline/datasource_auth.py @@ -2,8 +2,6 @@ from typing import Any from flask import make_response, redirect, request from flask_restx import Resource -from graphon.model_runtime.errors.validate import CredentialsValidateFailedError -from graphon.model_runtime.utils.encoders import jsonable_encoder from pydantic import BaseModel, Field from werkzeug.exceptions import Forbidden, NotFound @@ -12,6 +10,8 @@ from controllers.common.schema import register_schema_models from controllers.console import console_ns from controllers.console.wraps import account_initialization_required, edit_permission_required, setup_required from core.plugin.impl.oauth import OAuthHandler +from graphon.model_runtime.errors.validate import CredentialsValidateFailedError +from graphon.model_runtime.utils.encoders import jsonable_encoder from libs.login import current_account_with_tenant, login_required from models.provider_ids import DatasourceProviderID from services.datasource_provider_service import DatasourceProviderService diff --git a/api/controllers/console/datasets/rag_pipeline/rag_pipeline_draft_variable.py b/api/controllers/console/datasets/rag_pipeline/rag_pipeline_draft_variable.py index 3549f9542d..b31d73f27d 100644 --- a/api/controllers/console/datasets/rag_pipeline/rag_pipeline_draft_variable.py +++ b/api/controllers/console/datasets/rag_pipeline/rag_pipeline_draft_variable.py @@ -4,7 +4,6 @@ from typing import Any, NoReturn from flask import Response, request from flask_restx import Resource, marshal, marshal_with -from graphon.variables.types import SegmentType from pydantic import BaseModel, Field from sqlalchemy.orm import sessionmaker from werkzeug.exceptions import Forbidden @@ -28,6 +27,7 @@ from core.workflow.variable_prefixes import CONVERSATION_VARIABLE_NODE_ID, SYSTE from extensions.ext_database import db from factories.file_factory import build_from_mapping, build_from_mappings from factories.variable_factory import build_segment_with_type +from graphon.variables.types import SegmentType from libs.login import current_user, login_required from models import Account from models.dataset import Pipeline diff --git a/api/controllers/console/datasets/rag_pipeline/rag_pipeline_workflow.py b/api/controllers/console/datasets/rag_pipeline/rag_pipeline_workflow.py index a8077d9eb0..ee146e8287 100644 --- a/api/controllers/console/datasets/rag_pipeline/rag_pipeline_workflow.py +++ b/api/controllers/console/datasets/rag_pipeline/rag_pipeline_workflow.py @@ -4,7 +4,6 @@ from typing import Any, Literal, cast from flask import abort, request from flask_restx import Resource, marshal_with # type: ignore -from graphon.model_runtime.utils.encoders import jsonable_encoder from pydantic import BaseModel, Field, ValidationError from sqlalchemy.orm import sessionmaker from werkzeug.exceptions import BadRequest, Forbidden, InternalServerError, NotFound @@ -41,6 +40,7 @@ from core.app.apps.pipeline.pipeline_generator import PipelineGenerator from core.app.entities.app_invoke_entities import InvokeFrom from extensions.ext_database import db from factories import variable_factory +from graphon.model_runtime.utils.encoders import jsonable_encoder from libs import helper from libs.helper import TimestampField, UUIDStrOrEmpty from libs.login import current_account_with_tenant, current_user, login_required diff --git a/api/controllers/console/evaluation/evaluation.py b/api/controllers/console/evaluation/evaluation.py index e8262c6266..e994bbf5c2 100644 --- a/api/controllers/console/evaluation/evaluation.py +++ b/api/controllers/console/evaluation/evaluation.py @@ -3,7 +3,7 @@ from __future__ import annotations import logging from collections.abc import Callable from functools import wraps -from typing import TYPE_CHECKING, ParamSpec, TypeVar, Union +from typing import TYPE_CHECKING, Union from urllib.parse import quote from flask import Response, request @@ -46,9 +46,6 @@ if TYPE_CHECKING: logger = logging.getLogger(__name__) -P = ParamSpec("P") -R = TypeVar("R") - EVALUATE_TARGET_TYPES = { EvaluationTargetType.APPS.value, EvaluationTargetType.SNIPPETS.value, @@ -188,7 +185,7 @@ evaluation_default_metrics_response_model = console_ns.model( ) -def get_evaluation_target(view_func: Callable[P, R]): +def get_evaluation_target[**P, R](view_func: Callable[P, R]) -> Callable[P, R]: """ Decorator to resolve polymorphic evaluation target (apps or snippets). @@ -197,7 +194,7 @@ def get_evaluation_target(view_func: Callable[P, R]): """ @wraps(view_func) - def decorated_view(*args: P.args, **kwargs: P.kwargs): + def decorated_view(*args: P.args, **kwargs: P.kwargs) -> R: target_type = kwargs.get("evaluate_target_type") target_id = kwargs.get("evaluate_target_id") diff --git a/api/controllers/console/explore/audio.py b/api/controllers/console/explore/audio.py index a37077af42..ab660d9dc3 100644 --- a/api/controllers/console/explore/audio.py +++ b/api/controllers/console/explore/audio.py @@ -1,7 +1,6 @@ import logging from flask import request -from graphon.model_runtime.errors.invoke import InvokeError from werkzeug.exceptions import InternalServerError import services @@ -20,6 +19,7 @@ from controllers.console.app.error import ( ) from controllers.console.explore.wraps import InstalledAppResource from core.errors.error import ModelCurrentlyNotSupportError, ProviderTokenNotInitError, QuotaExceededError +from graphon.model_runtime.errors.invoke import InvokeError from services.audio_service import AudioService from services.errors.audio import ( AudioTooLargeServiceError, diff --git a/api/controllers/console/explore/completion.py b/api/controllers/console/explore/completion.py index eacd7332fe..ccdccceaa6 100644 --- a/api/controllers/console/explore/completion.py +++ b/api/controllers/console/explore/completion.py @@ -2,7 +2,6 @@ import logging from typing import Any, Literal from uuid import UUID -from graphon.model_runtime.errors.invoke import InvokeError from pydantic import BaseModel, Field, field_validator from werkzeug.exceptions import InternalServerError, NotFound @@ -26,6 +25,7 @@ from core.errors.error import ( QuotaExceededError, ) from extensions.ext_database import db +from graphon.model_runtime.errors.invoke import InvokeError from libs import helper from libs.datetime_utils import naive_utc_now from libs.login import current_user diff --git a/api/controllers/console/explore/message.py b/api/controllers/console/explore/message.py index 64d55d7ca3..209667d1d0 100644 --- a/api/controllers/console/explore/message.py +++ b/api/controllers/console/explore/message.py @@ -2,7 +2,6 @@ import logging from typing import Literal from flask import request -from graphon.model_runtime.errors.invoke import InvokeError from pydantic import BaseModel, TypeAdapter from werkzeug.exceptions import InternalServerError, NotFound @@ -25,6 +24,7 @@ from core.app.entities.app_invoke_entities import InvokeFrom from core.errors.error import ModelCurrentlyNotSupportError, ProviderTokenNotInitError, QuotaExceededError from fields.conversation_fields import ResultResponse from fields.message_fields import MessageInfiniteScrollPagination, MessageListItem, SuggestedQuestionsResponse +from graphon.model_runtime.errors.invoke import InvokeError from libs import helper from libs.login import current_account_with_tenant from models.enums import FeedbackRating diff --git a/api/controllers/console/explore/trial.py b/api/controllers/console/explore/trial.py index 0a3595454a..1456301a24 100644 --- a/api/controllers/console/explore/trial.py +++ b/api/controllers/console/explore/trial.py @@ -3,8 +3,6 @@ from typing import Any, Literal, cast from flask import request from flask_restx import Resource, fields, marshal, marshal_with -from graphon.graph_engine.manager import GraphEngineManager -from graphon.model_runtime.errors.invoke import InvokeError from pydantic import BaseModel from sqlalchemy import select from werkzeug.exceptions import Forbidden, InternalServerError, NotFound @@ -61,6 +59,8 @@ from fields.workflow_fields import ( workflow_fields, workflow_partial_fields, ) +from graphon.graph_engine.manager import GraphEngineManager +from graphon.model_runtime.errors.invoke import InvokeError from libs import helper from libs.helper import uuid_value from libs.login import current_user diff --git a/api/controllers/console/explore/workflow.py b/api/controllers/console/explore/workflow.py index da88de6776..438cce4fd8 100644 --- a/api/controllers/console/explore/workflow.py +++ b/api/controllers/console/explore/workflow.py @@ -1,7 +1,5 @@ import logging -from graphon.graph_engine.manager import GraphEngineManager -from graphon.model_runtime.errors.invoke import InvokeError from werkzeug.exceptions import InternalServerError from controllers.common.controller_schemas import WorkflowRunPayload @@ -23,6 +21,8 @@ from core.errors.error import ( QuotaExceededError, ) from extensions.ext_redis import redis_client +from graphon.graph_engine.manager import GraphEngineManager +from graphon.model_runtime.errors.invoke import InvokeError from libs import helper from libs.login import current_account_with_tenant from models.model import AppMode, InstalledApp diff --git a/api/controllers/console/remote_files.py b/api/controllers/console/remote_files.py index 551c86fd82..2a46d2250a 100644 --- a/api/controllers/console/remote_files.py +++ b/api/controllers/console/remote_files.py @@ -2,7 +2,6 @@ import urllib.parse import httpx from flask_restx import Resource -from graphon.file import helpers as file_helpers from pydantic import BaseModel, Field import services @@ -16,6 +15,7 @@ from controllers.console import console_ns from core.helper import ssrf_proxy from extensions.ext_database import db from fields.file_fields import FileWithSignedUrl, RemoteFileInfo +from graphon.file import helpers as file_helpers from libs.login import current_account_with_tenant, login_required from services.file_service import FileService diff --git a/api/controllers/console/snippets/snippet_workflow.py b/api/controllers/console/snippets/snippet_workflow.py index 7b8083cd80..d2a29661ef 100644 --- a/api/controllers/console/snippets/snippet_workflow.py +++ b/api/controllers/console/snippets/snippet_workflow.py @@ -1,7 +1,6 @@ import logging from collections.abc import Callable from functools import wraps -from typing import ParamSpec, TypeVar from flask import request from flask_restx import Resource, fields, marshal, marshal_with @@ -52,9 +51,6 @@ from services.snippet_service import SnippetService logger = logging.getLogger(__name__) -P = ParamSpec("P") -R = TypeVar("R") - # Register Pydantic models with Swagger register_schema_models( console_ns, @@ -80,11 +76,11 @@ class SnippetNotFoundError(Exception): pass -def get_snippet(view_func: Callable[P, R]): +def get_snippet[**P, R](view_func: Callable[P, R]) -> Callable[P, R]: """Decorator to fetch and validate snippet access.""" @wraps(view_func) - def decorated_view(*args: P.args, **kwargs: P.kwargs): + def decorated_view(*args: P.args, **kwargs: P.kwargs) -> R: if not kwargs.get("snippet_id"): raise ValueError("missing snippet_id in path parameters") diff --git a/api/controllers/console/snippets/snippet_workflow_draft_variable.py b/api/controllers/console/snippets/snippet_workflow_draft_variable.py index ce3f5cef52..000696784f 100644 --- a/api/controllers/console/snippets/snippet_workflow_draft_variable.py +++ b/api/controllers/console/snippets/snippet_workflow_draft_variable.py @@ -12,7 +12,7 @@ Other routes mirror `workflow_draft_variable` app APIs under `/snippets/...`. from collections.abc import Callable from functools import wraps -from typing import Any, ParamSpec, TypeVar +from typing import Any from flask import Response, request from flask_restx import Resource, marshal, marshal_with @@ -44,9 +44,6 @@ from models.workflow import WorkflowDraftVariable from services.snippet_service import SnippetService from services.workflow_draft_variable_service import WorkflowDraftVariableList, WorkflowDraftVariableService -P = ParamSpec("P") -R = TypeVar("R") - _SNIPPET_EXCLUDED_DRAFT_VARIABLE_NODE_IDS: frozenset[str] = frozenset( {SYSTEM_VARIABLE_NODE_ID, CONVERSATION_VARIABLE_NODE_ID} ) @@ -62,7 +59,7 @@ def _ensure_snippet_draft_variable_row_allowed( raise NotFoundError(description=f"variable not found, id={variable_id}") -def _snippet_draft_var_prerequisite(f: Callable[P, R]) -> Callable[P, R]: +def _snippet_draft_var_prerequisite[**P, R](f: Callable[P, R]) -> Callable[P, R]: """Setup, auth, snippet resolution, and tenant edit permission (same stack as snippet workflow APIs).""" @setup_required diff --git a/api/controllers/console/workspace/account.py b/api/controllers/console/workspace/account.py index c01286cc59..d69a59ecb7 100644 --- a/api/controllers/console/workspace/account.py +++ b/api/controllers/console/workspace/account.py @@ -8,6 +8,7 @@ from flask import request from flask_restx import Resource from pydantic import BaseModel, Field, field_validator, model_validator from sqlalchemy import select +from werkzeug.exceptions import NotFound from configs import dify_config from constants.languages import supported_language @@ -45,6 +46,8 @@ from libs.helper import EmailStr, extract_remote_ip, timezone from libs.login import current_account_with_tenant, login_required from models import AccountIntegrate, InvitationCode from models.account import AccountStatus, InvitationCodeStatus +from models.enums import CreatorUserRole +from models.model import UploadFile from services.account_service import AccountService from services.billing_service import BillingService from services.errors.account import CurrentPasswordIncorrectError as ServiceCurrentPasswordIncorrectError @@ -322,9 +325,24 @@ class AccountAvatarApi(Resource): @login_required @account_initialization_required def get(self): + current_user, current_tenant_id = current_account_with_tenant() args = AccountAvatarQuery.model_validate(request.args.to_dict(flat=True)) # type: ignore + avatar = args.avatar - avatar_url = file_helpers.get_signed_file_url(args.avatar) + if avatar.startswith(("http://", "https://")): + return {"avatar_url": avatar} + + upload_file = db.session.scalar(select(UploadFile).where(UploadFile.id == avatar).limit(1)) + if upload_file is None: + raise NotFound("Avatar file not found") + + if upload_file.tenant_id != current_tenant_id: + raise NotFound("Avatar file not found") + + if upload_file.created_by_role != CreatorUserRole.ACCOUNT or upload_file.created_by != current_user.id: + raise NotFound("Avatar file not found") + + avatar_url = file_helpers.get_signed_file_url(upload_file_id=upload_file.id) return {"avatar_url": avatar_url} @console_ns.expect(console_ns.models[AccountAvatarPayload.__name__]) diff --git a/api/controllers/console/workspace/agent_providers.py b/api/controllers/console/workspace/agent_providers.py index 3fdcbc4710..764f488755 100644 --- a/api/controllers/console/workspace/agent_providers.py +++ b/api/controllers/console/workspace/agent_providers.py @@ -1,8 +1,8 @@ from flask_restx import Resource, fields -from graphon.model_runtime.utils.encoders import jsonable_encoder from controllers.console import console_ns from controllers.console.wraps import account_initialization_required, setup_required +from graphon.model_runtime.utils.encoders import jsonable_encoder from libs.login import current_account_with_tenant, login_required from services.agent_service import AgentService diff --git a/api/controllers/console/workspace/endpoint.py b/api/controllers/console/workspace/endpoint.py index 142f583172..d4be07382a 100644 --- a/api/controllers/console/workspace/endpoint.py +++ b/api/controllers/console/workspace/endpoint.py @@ -10,13 +10,13 @@ from typing import Any from flask import request from flask_restx import Resource -from graphon.model_runtime.utils.encoders import jsonable_encoder from pydantic import BaseModel, Field from controllers.common.schema import register_schema_models from controllers.console import console_ns from controllers.console.wraps import account_initialization_required, is_admin_or_owner_required, setup_required from core.plugin.impl.exc import PluginPermissionDeniedError +from graphon.model_runtime.utils.encoders import jsonable_encoder from libs.login import current_account_with_tenant, login_required from services.plugin.endpoint_service import EndpointService diff --git a/api/controllers/console/workspace/load_balancing_config.py b/api/controllers/console/workspace/load_balancing_config.py index e4cfca9fa4..2a6f37aec8 100644 --- a/api/controllers/console/workspace/load_balancing_config.py +++ b/api/controllers/console/workspace/load_balancing_config.py @@ -1,12 +1,12 @@ from flask_restx import Resource -from graphon.model_runtime.entities.model_entities import ModelType -from graphon.model_runtime.errors.validate import CredentialsValidateFailedError from pydantic import BaseModel from werkzeug.exceptions import Forbidden from controllers.common.schema import register_schema_models from controllers.console import console_ns from controllers.console.wraps import account_initialization_required, setup_required +from graphon.model_runtime.entities.model_entities import ModelType +from graphon.model_runtime.errors.validate import CredentialsValidateFailedError from libs.login import current_account_with_tenant, login_required from models import TenantAccountRole from services.model_load_balancing_service import ModelLoadBalancingService diff --git a/api/controllers/console/workspace/model_providers.py b/api/controllers/console/workspace/model_providers.py index cbb9677309..4b10561fdb 100644 --- a/api/controllers/console/workspace/model_providers.py +++ b/api/controllers/console/workspace/model_providers.py @@ -3,13 +3,13 @@ from typing import Any, Literal from flask import request, send_file from flask_restx import Resource -from graphon.model_runtime.entities.model_entities import ModelType -from graphon.model_runtime.errors.validate import CredentialsValidateFailedError -from graphon.model_runtime.utils.encoders import jsonable_encoder from pydantic import BaseModel, Field, field_validator from controllers.console import console_ns from controllers.console.wraps import account_initialization_required, is_admin_or_owner_required, setup_required +from graphon.model_runtime.entities.model_entities import ModelType +from graphon.model_runtime.errors.validate import CredentialsValidateFailedError +from graphon.model_runtime.utils.encoders import jsonable_encoder from libs.helper import uuid_value from libs.login import current_account_with_tenant, login_required from services.billing_service import BillingService diff --git a/api/controllers/console/workspace/models.py b/api/controllers/console/workspace/models.py index f8f95304f0..b2d07ff8f9 100644 --- a/api/controllers/console/workspace/models.py +++ b/api/controllers/console/workspace/models.py @@ -3,14 +3,14 @@ from typing import Any, cast from flask import request from flask_restx import Resource -from graphon.model_runtime.entities.model_entities import ModelType -from graphon.model_runtime.errors.validate import CredentialsValidateFailedError -from graphon.model_runtime.utils.encoders import jsonable_encoder from pydantic import BaseModel, Field, field_validator from controllers.common.schema import register_enum_models, register_schema_models from controllers.console import console_ns from controllers.console.wraps import account_initialization_required, is_admin_or_owner_required, setup_required +from graphon.model_runtime.entities.model_entities import ModelType +from graphon.model_runtime.errors.validate import CredentialsValidateFailedError +from graphon.model_runtime.utils.encoders import jsonable_encoder from libs.helper import uuid_value from libs.login import current_account_with_tenant, login_required from services.model_load_balancing_service import ModelLoadBalancingService diff --git a/api/controllers/console/workspace/plugin.py b/api/controllers/console/workspace/plugin.py index aa674a63b3..b3e344ccea 100644 --- a/api/controllers/console/workspace/plugin.py +++ b/api/controllers/console/workspace/plugin.py @@ -4,7 +4,6 @@ from typing import Any, Literal from flask import request, send_file from flask_restx import Resource -from graphon.model_runtime.utils.encoders import jsonable_encoder from pydantic import BaseModel, Field from werkzeug.datastructures import FileStorage from werkzeug.exceptions import Forbidden @@ -15,6 +14,7 @@ from controllers.console import console_ns from controllers.console.workspace import plugin_permission_required from controllers.console.wraps import account_initialization_required, is_admin_or_owner_required, setup_required from core.plugin.impl.exc import PluginDaemonClientSideError +from graphon.model_runtime.utils.encoders import jsonable_encoder from libs.login import current_account_with_tenant, login_required from models.account import TenantPluginAutoUpgradeStrategy, TenantPluginPermission from services.plugin.plugin_auto_upgrade_service import PluginAutoUpgradeService diff --git a/api/controllers/console/workspace/tool_providers.py b/api/controllers/console/workspace/tool_providers.py index 9dbc34abac..34c9534de8 100644 --- a/api/controllers/console/workspace/tool_providers.py +++ b/api/controllers/console/workspace/tool_providers.py @@ -5,7 +5,6 @@ from urllib.parse import urlparse from flask import make_response, redirect, request, send_file from flask_restx import Resource -from graphon.model_runtime.utils.encoders import jsonable_encoder from pydantic import BaseModel, Field, HttpUrl, field_validator, model_validator from sqlalchemy.orm import sessionmaker from werkzeug.exceptions import Forbidden @@ -28,6 +27,7 @@ from core.plugin.entities.plugin_daemon import CredentialType from core.plugin.impl.oauth import OAuthHandler from core.tools.entities.tool_entities import ApiProviderSchemaType, WorkflowToolParameterConfiguration from extensions.ext_database import db +from graphon.model_runtime.utils.encoders import jsonable_encoder from libs.helper import alphanumeric, uuid_value from libs.login import current_account_with_tenant, login_required from models.provider_ids import ToolProviderID diff --git a/api/controllers/console/workspace/trigger_providers.py b/api/controllers/console/workspace/trigger_providers.py index 7a28a09861..d11b66244f 100644 --- a/api/controllers/console/workspace/trigger_providers.py +++ b/api/controllers/console/workspace/trigger_providers.py @@ -3,7 +3,6 @@ from typing import Any from flask import make_response, redirect, request from flask_restx import Resource -from graphon.model_runtime.utils.encoders import jsonable_encoder from pydantic import BaseModel, model_validator from sqlalchemy.orm import sessionmaker from werkzeug.exceptions import BadRequest, Forbidden @@ -16,6 +15,7 @@ from core.plugin.impl.oauth import OAuthHandler from core.trigger.entities.entities import SubscriptionBuilderUpdater from core.trigger.trigger_manager import TriggerManager from extensions.ext_database import db +from graphon.model_runtime.utils.encoders import jsonable_encoder from libs.login import current_user, login_required from models.account import Account from models.provider_ids import TriggerProviderID diff --git a/api/controllers/inner_api/plugin/plugin.py b/api/controllers/inner_api/plugin/plugin.py index 83c8fa02fe..72cab3de73 100644 --- a/api/controllers/inner_api/plugin/plugin.py +++ b/api/controllers/inner_api/plugin/plugin.py @@ -1,5 +1,4 @@ from flask_restx import Resource -from graphon.model_runtime.utils.encoders import jsonable_encoder from controllers.console.wraps import setup_required from controllers.inner_api import inner_api_ns @@ -30,6 +29,7 @@ from core.plugin.entities.request import ( ) from core.tools.entities.tool_entities import ToolProviderType from core.tools.signature import get_signed_file_url_for_plugin +from graphon.model_runtime.utils.encoders import jsonable_encoder from libs.helper import length_prefixed_response from models import Account, Tenant from models.model import EndUser diff --git a/api/controllers/mcp/mcp.py b/api/controllers/mcp/mcp.py index 8066f198bb..f652bbc581 100644 --- a/api/controllers/mcp/mcp.py +++ b/api/controllers/mcp/mcp.py @@ -2,7 +2,6 @@ from typing import Any, Union from flask import Response from flask_restx import Resource -from graphon.variables.input_entities import VariableEntity, VariableEntityType from pydantic import BaseModel, Field, ValidationError from sqlalchemy import select from sqlalchemy.orm import Session, sessionmaker @@ -12,6 +11,7 @@ from controllers.mcp import mcp_ns from core.mcp import types as mcp_types from core.mcp.server.streamable_http import handle_mcp_request from extensions.ext_database import db +from graphon.variables.input_entities import VariableEntity, VariableEntityType from libs import helper from models.enums import AppMCPServerStatus from models.model import App, AppMCPServer, AppMode, EndUser diff --git a/api/controllers/service_api/app/audio.py b/api/controllers/service_api/app/audio.py index 907dd1b06d..e818573b8f 100644 --- a/api/controllers/service_api/app/audio.py +++ b/api/controllers/service_api/app/audio.py @@ -2,7 +2,6 @@ import logging from flask import request from flask_restx import Resource -from graphon.model_runtime.errors.invoke import InvokeError from werkzeug.exceptions import InternalServerError import services @@ -22,6 +21,7 @@ from controllers.service_api.app.error import ( ) from controllers.service_api.wraps import FetchUserArg, WhereisUserArg, validate_app_token from core.errors.error import ModelCurrentlyNotSupportError, ProviderTokenNotInitError, QuotaExceededError +from graphon.model_runtime.errors.invoke import InvokeError from models.model import App, EndUser from services.audio_service import AudioService from services.errors.audio import ( diff --git a/api/controllers/service_api/app/completion.py b/api/controllers/service_api/app/completion.py index 3142e5118e..31f2797d66 100644 --- a/api/controllers/service_api/app/completion.py +++ b/api/controllers/service_api/app/completion.py @@ -4,7 +4,6 @@ from uuid import UUID from flask import request from flask_restx import Resource -from graphon.model_runtime.errors.invoke import InvokeError from pydantic import BaseModel, Field, field_validator from werkzeug.exceptions import BadRequest, InternalServerError, NotFound @@ -29,6 +28,7 @@ from core.errors.error import ( QuotaExceededError, ) from core.helper.trace_id_helper import get_external_trace_id +from graphon.model_runtime.errors.invoke import InvokeError from libs import helper from libs.helper import UUIDStrOrEmpty from models.model import App, AppMode, EndUser diff --git a/api/controllers/service_api/app/conversation.py b/api/controllers/service_api/app/conversation.py index 47e1889c95..ca4b18cb5e 100644 --- a/api/controllers/service_api/app/conversation.py +++ b/api/controllers/service_api/app/conversation.py @@ -3,7 +3,6 @@ from typing import Any, Literal from flask import request from flask_restx import Resource -from graphon.variables.types import SegmentType from pydantic import BaseModel, Field, TypeAdapter, field_validator from sqlalchemy.orm import sessionmaker from werkzeug.exceptions import BadRequest, NotFound @@ -22,6 +21,7 @@ from fields.conversation_fields import ( ConversationInfiniteScrollPagination, SimpleConversation, ) +from graphon.variables.types import SegmentType from libs.helper import UUIDStrOrEmpty from models.model import App, AppMode, EndUser from services.conversation_service import ConversationService diff --git a/api/controllers/service_api/dataset/dataset.py b/api/controllers/service_api/dataset/dataset.py index fd954be6b1..76519cad0a 100644 --- a/api/controllers/service_api/dataset/dataset.py +++ b/api/controllers/service_api/dataset/dataset.py @@ -2,7 +2,6 @@ from typing import Any, Literal, cast from flask import request from flask_restx import marshal -from graphon.model_runtime.entities.model_entities import ModelType from pydantic import BaseModel, Field, TypeAdapter, field_validator from werkzeug.exceptions import Forbidden, NotFound @@ -19,6 +18,7 @@ from core.plugin.impl.model_runtime_factory import create_plugin_provider_manage from core.rag.index_processor.constant.index_type import IndexTechniqueType from fields.dataset_fields import dataset_detail_fields from fields.tag_fields import DataSetTag +from graphon.model_runtime.entities.model_entities import ModelType from libs.login import current_user from models.account import Account from models.dataset import DatasetPermissionEnum diff --git a/api/controllers/service_api/dataset/segment.py b/api/controllers/service_api/dataset/segment.py index 971b63577c..5992fa7410 100644 --- a/api/controllers/service_api/dataset/segment.py +++ b/api/controllers/service_api/dataset/segment.py @@ -2,7 +2,6 @@ from typing import Any from flask import request from flask_restx import marshal -from graphon.model_runtime.entities.model_entities import ModelType from pydantic import BaseModel, Field from sqlalchemy import select from werkzeug.exceptions import NotFound @@ -23,6 +22,7 @@ from core.model_manager import ModelManager from core.rag.index_processor.constant.index_type import IndexTechniqueType from extensions.ext_database import db from fields.segment_fields import child_chunk_fields, segment_fields +from graphon.model_runtime.entities.model_entities import ModelType from libs.login import current_account_with_tenant from models.dataset import Dataset from services.dataset_service import DatasetService, DocumentService, SegmentService diff --git a/api/controllers/service_api/workspace/models.py b/api/controllers/service_api/workspace/models.py index c0a6cb0a76..5ac65fc4e6 100644 --- a/api/controllers/service_api/workspace/models.py +++ b/api/controllers/service_api/workspace/models.py @@ -1,9 +1,9 @@ from flask_login import current_user from flask_restx import Resource -from graphon.model_runtime.utils.encoders import jsonable_encoder from controllers.service_api import service_api_ns from controllers.service_api.wraps import validate_dataset_token +from graphon.model_runtime.utils.encoders import jsonable_encoder from services.model_provider_service import ModelProviderService diff --git a/api/controllers/web/audio.py b/api/controllers/web/audio.py index 0ef4471018..3ad595f1f4 100644 --- a/api/controllers/web/audio.py +++ b/api/controllers/web/audio.py @@ -2,7 +2,6 @@ import logging from flask import request from flask_restx import fields, marshal_with -from graphon.model_runtime.errors.invoke import InvokeError from pydantic import field_validator from werkzeug.exceptions import InternalServerError @@ -22,6 +21,7 @@ from controllers.web.error import ( ) from controllers.web.wraps import WebApiResource from core.errors.error import ModelCurrentlyNotSupportError, ProviderTokenNotInitError, QuotaExceededError +from graphon.model_runtime.errors.invoke import InvokeError from libs.helper import uuid_value from models.model import App from services.audio_service import AudioService diff --git a/api/controllers/web/completion.py b/api/controllers/web/completion.py index e37f9af5f0..0528184d79 100644 --- a/api/controllers/web/completion.py +++ b/api/controllers/web/completion.py @@ -1,7 +1,6 @@ import logging from typing import Any, Literal -from graphon.model_runtime.errors.invoke import InvokeError from pydantic import BaseModel, Field, field_validator from werkzeug.exceptions import InternalServerError, NotFound @@ -26,6 +25,7 @@ from core.errors.error import ( ProviderTokenNotInitError, QuotaExceededError, ) +from graphon.model_runtime.errors.invoke import InvokeError from libs import helper from libs.helper import uuid_value from models.model import AppMode diff --git a/api/controllers/web/message.py b/api/controllers/web/message.py index 39afdd843f..07ecf8035b 100644 --- a/api/controllers/web/message.py +++ b/api/controllers/web/message.py @@ -2,7 +2,6 @@ import logging from typing import Literal from flask import request -from graphon.model_runtime.errors.invoke import InvokeError from pydantic import BaseModel, Field, TypeAdapter from werkzeug.exceptions import InternalServerError, NotFound @@ -24,6 +23,7 @@ from core.app.entities.app_invoke_entities import InvokeFrom from core.errors.error import ModelCurrentlyNotSupportError, ProviderTokenNotInitError, QuotaExceededError from fields.conversation_fields import ResultResponse from fields.message_fields import SuggestedQuestionsResponse, WebMessageInfiniteScrollPagination, WebMessageListItem +from graphon.model_runtime.errors.invoke import InvokeError from libs import helper from models.enums import FeedbackRating from models.model import AppMode diff --git a/api/controllers/web/remote_files.py b/api/controllers/web/remote_files.py index 38aeccc642..fe31e9d4ac 100644 --- a/api/controllers/web/remote_files.py +++ b/api/controllers/web/remote_files.py @@ -1,7 +1,6 @@ import urllib.parse import httpx -from graphon.file import helpers as file_helpers from pydantic import BaseModel, Field, HttpUrl import services @@ -14,6 +13,7 @@ from controllers.common.errors import ( from core.helper import ssrf_proxy from extensions.ext_database import db from fields.file_fields import FileWithSignedUrl, RemoteFileInfo +from graphon.file import helpers as file_helpers from services.file_service import FileService from ..common.schema import register_schema_models diff --git a/api/controllers/web/workflow.py b/api/controllers/web/workflow.py index 796e090976..98211193a0 100644 --- a/api/controllers/web/workflow.py +++ b/api/controllers/web/workflow.py @@ -1,7 +1,5 @@ import logging -from graphon.graph_engine.manager import GraphEngineManager -from graphon.model_runtime.errors.invoke import InvokeError from werkzeug.exceptions import InternalServerError from controllers.common.controller_schemas import WorkflowRunPayload @@ -24,6 +22,8 @@ from core.errors.error import ( QuotaExceededError, ) from extensions.ext_redis import redis_client +from graphon.graph_engine.manager import GraphEngineManager +from graphon.model_runtime.errors.invoke import InvokeError from libs import helper from models.model import App, AppMode, EndUser from services.app_generate_service import AppGenerateService diff --git a/api/core/agent/cot_agent_runner.py b/api/core/agent/cot_agent_runner.py index f07ac64498..0bc93ad34d 100644 --- a/api/core/agent/cot_agent_runner.py +++ b/api/core/agent/cot_agent_runner.py @@ -4,15 +4,6 @@ from abc import ABC, abstractmethod from collections.abc import Generator, Mapping, Sequence from typing import Any, TypedDict -from graphon.model_runtime.entities.llm_entities import LLMResult, LLMResultChunk, LLMResultChunkDelta, LLMUsage -from graphon.model_runtime.entities.message_entities import ( - AssistantPromptMessage, - PromptMessage, - PromptMessageTool, - ToolPromptMessage, - UserPromptMessage, -) - from core.agent.base_agent_runner import BaseAgentRunner from core.agent.entities import AgentScratchpadUnit from core.agent.errors import AgentMaxIterationError @@ -24,6 +15,14 @@ from core.prompt.agent_history_prompt_transform import AgentHistoryPromptTransfo from core.tools.__base.tool import Tool from core.tools.entities.tool_entities import ToolInvokeMeta from core.tools.tool_engine import ToolEngine +from graphon.model_runtime.entities.llm_entities import LLMResult, LLMResultChunk, LLMResultChunkDelta, LLMUsage +from graphon.model_runtime.entities.message_entities import ( + AssistantPromptMessage, + PromptMessage, + PromptMessageTool, + ToolPromptMessage, + UserPromptMessage, +) from models.model import Message logger = logging.getLogger(__name__) diff --git a/api/core/agent/cot_chat_agent_runner.py b/api/core/agent/cot_chat_agent_runner.py index 2b2e26987e..a2186be100 100644 --- a/api/core/agent/cot_chat_agent_runner.py +++ b/api/core/agent/cot_chat_agent_runner.py @@ -1,5 +1,6 @@ import json +from core.agent.cot_agent_runner import CotAgentRunner from graphon.file import file_manager from graphon.model_runtime.entities import ( AssistantPromptMessage, @@ -11,8 +12,6 @@ from graphon.model_runtime.entities import ( from graphon.model_runtime.entities.message_entities import ImagePromptMessageContent, PromptMessageContentUnionTypes from graphon.model_runtime.utils.encoders import jsonable_encoder -from core.agent.cot_agent_runner import CotAgentRunner - class CotChatAgentRunner(CotAgentRunner): def _organize_system_prompt(self) -> SystemPromptMessage: diff --git a/api/core/agent/cot_completion_agent_runner.py b/api/core/agent/cot_completion_agent_runner.py index d4c52a8eb1..51a30998ae 100644 --- a/api/core/agent/cot_completion_agent_runner.py +++ b/api/core/agent/cot_completion_agent_runner.py @@ -1,5 +1,6 @@ import json +from core.agent.cot_agent_runner import CotAgentRunner from graphon.model_runtime.entities.message_entities import ( AssistantPromptMessage, PromptMessage, @@ -8,8 +9,6 @@ from graphon.model_runtime.entities.message_entities import ( ) from graphon.model_runtime.utils.encoders import jsonable_encoder -from core.agent.cot_agent_runner import CotAgentRunner - class CotCompletionAgentRunner(CotAgentRunner): def _organize_instruction_prompt(self) -> str: diff --git a/api/core/agent/fc_agent_runner.py b/api/core/agent/fc_agent_runner.py index b31fde5fb2..29de0b8b1c 100644 --- a/api/core/agent/fc_agent_runner.py +++ b/api/core/agent/fc_agent_runner.py @@ -4,6 +4,13 @@ from collections.abc import Generator from copy import deepcopy from typing import Any, Union +from core.agent.base_agent_runner import BaseAgentRunner +from core.agent.errors import AgentMaxIterationError +from core.app.apps.base_app_queue_manager import PublishFrom +from core.app.entities.queue_entities import QueueAgentThoughtEvent, QueueMessageEndEvent, QueueMessageFileEvent +from core.prompt.agent_history_prompt_transform import AgentHistoryPromptTransform +from core.tools.entities.tool_entities import ToolInvokeMeta +from core.tools.tool_engine import ToolEngine from graphon.file import file_manager from graphon.model_runtime.entities import ( AssistantPromptMessage, @@ -19,14 +26,6 @@ from graphon.model_runtime.entities import ( UserPromptMessage, ) from graphon.model_runtime.entities.message_entities import ImagePromptMessageContent, PromptMessageContentUnionTypes - -from core.agent.base_agent_runner import BaseAgentRunner -from core.agent.errors import AgentMaxIterationError -from core.app.apps.base_app_queue_manager import PublishFrom -from core.app.entities.queue_entities import QueueAgentThoughtEvent, QueueMessageEndEvent, QueueMessageFileEvent -from core.prompt.agent_history_prompt_transform import AgentHistoryPromptTransform -from core.tools.entities.tool_entities import ToolInvokeMeta -from core.tools.tool_engine import ToolEngine from models.model import Message logger = logging.getLogger(__name__) diff --git a/api/core/agent/output_parser/cot_output_parser.py b/api/core/agent/output_parser/cot_output_parser.py index 8cccd2be6d..f341ca5a0b 100644 --- a/api/core/agent/output_parser/cot_output_parser.py +++ b/api/core/agent/output_parser/cot_output_parser.py @@ -3,9 +3,8 @@ import re from collections.abc import Generator from typing import Any, Union -from graphon.model_runtime.entities.llm_entities import LLMResultChunk - from core.agent.entities import AgentScratchpadUnit +from graphon.model_runtime.entities.llm_entities import LLMResultChunk class CotAgentOutputParser: diff --git a/api/core/app/app_config/easy_ui_based_app/model_config/manager.py b/api/core/app/app_config/easy_ui_based_app/model_config/manager.py index 9d980e5ca3..02498c23e1 100644 --- a/api/core/app/app_config/easy_ui_based_app/model_config/manager.py +++ b/api/core/app/app_config/easy_ui_based_app/model_config/manager.py @@ -1,10 +1,9 @@ from collections.abc import Mapping from typing import Any -from graphon.model_runtime.entities.model_entities import ModelPropertyKey, ModelType - from core.app.app_config.entities import ModelConfigEntity from core.plugin.impl.model_runtime_factory import create_plugin_model_assembly +from graphon.model_runtime.entities.model_entities import ModelPropertyKey, ModelType from models.model import AppModelConfigDict from models.provider_ids import ModelProviderID diff --git a/api/core/app/app_config/easy_ui_based_app/prompt_template/manager.py b/api/core/app/app_config/easy_ui_based_app/prompt_template/manager.py index 57c6d1c496..4c07445df3 100644 --- a/api/core/app/app_config/easy_ui_based_app/prompt_template/manager.py +++ b/api/core/app/app_config/easy_ui_based_app/prompt_template/manager.py @@ -1,7 +1,5 @@ from typing import Any -from graphon.model_runtime.entities.message_entities import PromptMessageRole - from core.app.app_config.entities import ( AdvancedChatMessageEntity, AdvancedChatPromptTemplateEntity, @@ -9,6 +7,7 @@ from core.app.app_config.entities import ( PromptTemplateEntity, ) from core.prompt.simple_prompt_transform import ModelMode +from graphon.model_runtime.entities.message_entities import PromptMessageRole from models.model import AppMode, AppModelConfigDict diff --git a/api/core/app/app_config/entities.py b/api/core/app/app_config/entities.py index 819aca864c..53563dc5da 100644 --- a/api/core/app/app_config/entities.py +++ b/api/core/app/app_config/entities.py @@ -1,14 +1,14 @@ from enum import StrEnum, auto from typing import Any, Literal -from graphon.file import FileUploadConfig -from graphon.model_runtime.entities.llm_entities import LLMMode -from graphon.model_runtime.entities.message_entities import PromptMessageRole -from graphon.variables.input_entities import VariableEntity as WorkflowVariableEntity from pydantic import BaseModel, Field from core.rag.data_post_processor.data_post_processor import RerankingModelDict, WeightsDict from core.rag.entities import MetadataFilteringCondition +from graphon.file import FileUploadConfig +from graphon.model_runtime.entities.llm_entities import LLMMode +from graphon.model_runtime.entities.message_entities import PromptMessageRole +from graphon.variables.input_entities import VariableEntity as WorkflowVariableEntity from models.model import AppMode diff --git a/api/core/app/app_config/features/file_upload/manager.py b/api/core/app/app_config/features/file_upload/manager.py index 959c3868b4..8f20ef2ff9 100644 --- a/api/core/app/app_config/features/file_upload/manager.py +++ b/api/core/app/app_config/features/file_upload/manager.py @@ -1,9 +1,8 @@ from collections.abc import Mapping from typing import Any -from graphon.file import FileUploadConfig - from constants import DEFAULT_FILE_NUMBER_LIMITS +from graphon.file import FileUploadConfig class FileUploadConfigManager: diff --git a/api/core/app/app_config/workflow_ui_based_app/variables/manager.py b/api/core/app/app_config/workflow_ui_based_app/variables/manager.py index 62e0c31d1a..13ace32fd6 100644 --- a/api/core/app/app_config/workflow_ui_based_app/variables/manager.py +++ b/api/core/app/app_config/workflow_ui_based_app/variables/manager.py @@ -1,8 +1,7 @@ import re -from graphon.variables.input_entities import VariableEntity - from core.app.app_config.entities import RagPipelineVariableEntity +from graphon.variables.input_entities import VariableEntity from models.workflow import Workflow diff --git a/api/core/app/apps/advanced_chat/app_generator.py b/api/core/app/apps/advanced_chat/app_generator.py index 2ca108cd3a..b79d5514b4 100644 --- a/api/core/app/apps/advanced_chat/app_generator.py +++ b/api/core/app/apps/advanced_chat/app_generator.py @@ -18,11 +18,6 @@ from constants import UUID_NIL if TYPE_CHECKING: from controllers.console.app.workflow import LoopNodeRunPayload -from graphon.graph_engine.layers import GraphEngineLayer -from graphon.model_runtime.errors.invoke import InvokeAuthorizationError -from graphon.runtime import GraphRuntimeState -from graphon.variable_loader import DUMMY_VARIABLE_LOADER, VariableLoader - from core.app.app_config.features.file_upload.manager import FileUploadConfigManager from core.app.apps.advanced_chat.app_config_manager import AdvancedChatAppConfigManager from core.app.apps.advanced_chat.app_runner import AdvancedChatAppRunner @@ -52,6 +47,10 @@ from core.repositories import DifyCoreRepositoryFactory from core.repositories.factory import WorkflowExecutionRepository, WorkflowNodeExecutionRepository from extensions.ext_database import db from factories import file_factory +from graphon.graph_engine.layers import GraphEngineLayer +from graphon.model_runtime.errors.invoke import InvokeAuthorizationError +from graphon.runtime import GraphRuntimeState +from graphon.variable_loader import DUMMY_VARIABLE_LOADER, VariableLoader from libs.flask_utils import preserve_flask_contexts from models import Account, App, Conversation, EndUser, Message, Workflow, WorkflowNodeExecutionTriggeredFrom from models.enums import WorkflowRunTriggeredFrom diff --git a/api/core/app/apps/advanced_chat/app_runner.py b/api/core/app/apps/advanced_chat/app_runner.py index 7b4cb98bd4..4e57b4dedc 100644 --- a/api/core/app/apps/advanced_chat/app_runner.py +++ b/api/core/app/apps/advanced_chat/app_runner.py @@ -3,12 +3,6 @@ import time from collections.abc import Mapping, Sequence from typing import Any, cast -from graphon.enums import WorkflowType -from graphon.graph_engine.command_channels import RedisChannel -from graphon.graph_engine.layers import GraphEngineLayer -from graphon.runtime import GraphRuntimeState, VariablePool -from graphon.variable_loader import VariableLoader -from graphon.variables.variables import Variable from sqlalchemy import select from sqlalchemy.orm import Session, sessionmaker @@ -43,6 +37,12 @@ from core.workflow.workflow_entry import WorkflowEntry from extensions.ext_database import db from extensions.ext_redis import redis_client from extensions.otel import WorkflowAppRunnerHandler, trace_span +from graphon.enums import WorkflowType +from graphon.graph_engine.command_channels import RedisChannel +from graphon.graph_engine.layers import GraphEngineLayer +from graphon.runtime import GraphRuntimeState, VariablePool +from graphon.variable_loader import VariableLoader +from graphon.variables.variables import Variable from models import Workflow from models.model import App, Conversation, Message, MessageAnnotation from models.workflow import ConversationVariable diff --git a/api/core/app/apps/agent_chat/app_generator.py b/api/core/app/apps/agent_chat/app_generator.py index 5872f6b264..5cdc477028 100644 --- a/api/core/app/apps/agent_chat/app_generator.py +++ b/api/core/app/apps/agent_chat/app_generator.py @@ -6,7 +6,6 @@ from collections.abc import Generator, Mapping from typing import Any, Literal, overload from flask import Flask, current_app -from graphon.model_runtime.errors.invoke import InvokeAuthorizationError from pydantic import ValidationError from configs import dify_config @@ -24,6 +23,7 @@ from core.app.entities.app_invoke_entities import AgentChatAppGenerateEntity, In from core.ops.ops_trace_manager import TraceQueueManager from extensions.ext_database import db from factories import file_factory +from graphon.model_runtime.errors.invoke import InvokeAuthorizationError from libs.flask_utils import preserve_flask_contexts from models import Account, App, EndUser from services.conversation_service import ConversationService diff --git a/api/core/app/apps/base_app_generate_response_converter.py b/api/core/app/apps/base_app_generate_response_converter.py index c5723927fc..abcbb2f943 100644 --- a/api/core/app/apps/base_app_generate_response_converter.py +++ b/api/core/app/apps/base_app_generate_response_converter.py @@ -5,11 +5,10 @@ from typing import Any, Union, cast from pydantic import JsonValue -from graphon.model_runtime.errors.invoke import InvokeError - from core.app.entities.app_invoke_entities import InvokeFrom from core.app.entities.task_entities import AppBlockingResponse, AppStreamResponse from core.errors.error import ModelCurrentlyNotSupportError, ProviderTokenNotInitError, QuotaExceededError +from graphon.model_runtime.errors.invoke import InvokeError logger = logging.getLogger(__name__) diff --git a/api/core/app/apps/base_app_queue_manager.py b/api/core/app/apps/base_app_queue_manager.py index 20bf81aeec..d1771452c5 100644 --- a/api/core/app/apps/base_app_queue_manager.py +++ b/api/core/app/apps/base_app_queue_manager.py @@ -7,7 +7,6 @@ from enum import IntEnum, auto from typing import Any from cachetools import TTLCache, cachedmethod -from graphon.runtime import GraphRuntimeState from redis.exceptions import RedisError from sqlalchemy.orm import DeclarativeMeta @@ -22,6 +21,7 @@ from core.app.entities.queue_entities import ( WorkflowQueueMessage, ) from extensions.ext_redis import redis_client +from graphon.runtime import GraphRuntimeState logger = logging.getLogger(__name__) diff --git a/api/core/app/apps/base_app_runner.py b/api/core/app/apps/base_app_runner.py index 4aebc0cb30..1251b397e2 100644 --- a/api/core/app/apps/base_app_runner.py +++ b/api/core/app/apps/base_app_runner.py @@ -5,17 +5,6 @@ from collections.abc import Generator, Mapping, Sequence from mimetypes import guess_extension from typing import TYPE_CHECKING, Any, Union -from graphon.file import FileTransferMethod, FileType -from graphon.model_runtime.entities.llm_entities import LLMResult, LLMResultChunk, LLMResultChunkDelta, LLMUsage -from graphon.model_runtime.entities.message_entities import ( - AssistantPromptMessage, - ImagePromptMessageContent, - PromptMessage, - TextPromptMessageContent, -) -from graphon.model_runtime.entities.model_entities import ModelPropertyKey -from graphon.model_runtime.errors.invoke import InvokeBadRequestError - from core.app.app_config.entities import ExternalDataVariableEntity, PromptTemplateEntity from core.app.apps.base_app_queue_manager import AppQueueManager, PublishFrom from core.app.entities.app_invoke_entities import ( @@ -41,6 +30,16 @@ from core.prompt.entities.advanced_prompt_entities import ChatModelMessage, Comp from core.prompt.simple_prompt_transform import ModelMode, SimplePromptTransform from core.tools.tool_file_manager import ToolFileManager from extensions.ext_database import db +from graphon.file import FileTransferMethod, FileType +from graphon.model_runtime.entities.llm_entities import LLMResult, LLMResultChunk, LLMResultChunkDelta, LLMUsage +from graphon.model_runtime.entities.message_entities import ( + AssistantPromptMessage, + ImagePromptMessageContent, + PromptMessage, + TextPromptMessageContent, +) +from graphon.model_runtime.entities.model_entities import ModelPropertyKey +from graphon.model_runtime.errors.invoke import InvokeBadRequestError from models.enums import CreatorUserRole, MessageFileBelongsTo from models.model import App, AppMode, Message, MessageAnnotation, MessageFile diff --git a/api/core/app/apps/chat/app_generator.py b/api/core/app/apps/chat/app_generator.py index 891dcece73..58afefe296 100644 --- a/api/core/app/apps/chat/app_generator.py +++ b/api/core/app/apps/chat/app_generator.py @@ -6,7 +6,6 @@ from collections.abc import Generator, Mapping from typing import Any, Literal, overload from flask import Flask, copy_current_request_context, current_app -from graphon.model_runtime.errors.invoke import InvokeAuthorizationError from pydantic import ValidationError from configs import dify_config @@ -24,6 +23,7 @@ from core.app.entities.app_invoke_entities import ChatAppGenerateEntity, InvokeF from core.ops.ops_trace_manager import TraceQueueManager from extensions.ext_database import db from factories import file_factory +from graphon.model_runtime.errors.invoke import InvokeAuthorizationError from models import Account from models.model import App, EndUser from services.conversation_service import ConversationService diff --git a/api/core/app/apps/chat/app_runner.py b/api/core/app/apps/chat/app_runner.py index 050f763e95..077c5239f3 100644 --- a/api/core/app/apps/chat/app_runner.py +++ b/api/core/app/apps/chat/app_runner.py @@ -1,8 +1,6 @@ import logging from typing import cast -from graphon.file import File -from graphon.model_runtime.entities.message_entities import ImagePromptMessageContent from sqlalchemy import select from core.app.apps.base_app_queue_manager import AppQueueManager, PublishFrom @@ -18,6 +16,8 @@ from core.model_manager import ModelInstance from core.moderation.base import ModerationError from core.rag.retrieval.dataset_retrieval import DatasetRetrieval from extensions.ext_database import db +from graphon.file import File +from graphon.model_runtime.entities.message_entities import ImagePromptMessageContent from models.model import App, Conversation, Message logger = logging.getLogger(__name__) diff --git a/api/core/app/apps/common/graph_runtime_state_support.py b/api/core/app/apps/common/graph_runtime_state_support.py index ab277857fe..2a90fbdad0 100644 --- a/api/core/app/apps/common/graph_runtime_state_support.py +++ b/api/core/app/apps/common/graph_runtime_state_support.py @@ -4,9 +4,8 @@ from __future__ import annotations from typing import TYPE_CHECKING -from graphon.runtime import GraphRuntimeState - from core.workflow.system_variables import SystemVariableKey, get_system_text +from graphon.runtime import GraphRuntimeState if TYPE_CHECKING: from core.app.task_pipeline.based_generate_task_pipeline import BasedGenerateTaskPipeline diff --git a/api/core/app/apps/common/workflow_response_converter.py b/api/core/app/apps/common/workflow_response_converter.py index dd6a97ba6c..7bab3f7bff 100644 --- a/api/core/app/apps/common/workflow_response_converter.py +++ b/api/core/app/apps/common/workflow_response_converter.py @@ -6,19 +6,6 @@ from dataclasses import dataclass from datetime import datetime from typing import Any, NewType, TypedDict, Union -from graphon.entities import WorkflowStartReason -from graphon.entities.pause_reason import HumanInputRequired -from graphon.enums import ( - BuiltinNodeTypes, - WorkflowExecutionStatus, - WorkflowNodeExecutionMetadataKey, - WorkflowNodeExecutionStatus, -) -from graphon.file import FILE_MODEL_IDENTITY, File -from graphon.runtime import GraphRuntimeState -from graphon.variables.segments import ArrayFileSegment, FileSegment, Segment -from graphon.variables.variables import Variable -from graphon.workflow_type_encoder import WorkflowRuntimeTypeConverter from sqlalchemy import select from sqlalchemy.orm import Session @@ -69,6 +56,19 @@ from core.workflow.human_input_policy import HumanInputSurface, enrich_human_inp from core.workflow.system_variables import SystemVariableKey, system_variables_to_mapping from core.workflow.workflow_entry import WorkflowEntry from extensions.ext_database import db +from graphon.entities import WorkflowStartReason +from graphon.entities.pause_reason import HumanInputRequired +from graphon.enums import ( + BuiltinNodeTypes, + WorkflowExecutionStatus, + WorkflowNodeExecutionMetadataKey, + WorkflowNodeExecutionStatus, +) +from graphon.file import FILE_MODEL_IDENTITY, File +from graphon.runtime import GraphRuntimeState +from graphon.variables.segments import ArrayFileSegment, FileSegment, Segment +from graphon.variables.variables import Variable +from graphon.workflow_type_encoder import WorkflowRuntimeTypeConverter from libs.datetime_utils import naive_utc_now from models import Account, EndUser from models.human_input import HumanInputForm diff --git a/api/core/app/apps/completion/app_generator.py b/api/core/app/apps/completion/app_generator.py index 61339b316a..423bfdac51 100644 --- a/api/core/app/apps/completion/app_generator.py +++ b/api/core/app/apps/completion/app_generator.py @@ -6,7 +6,6 @@ from collections.abc import Generator, Mapping from typing import Any, Literal, overload from flask import Flask, copy_current_request_context, current_app -from graphon.model_runtime.errors.invoke import InvokeAuthorizationError from pydantic import ValidationError from sqlalchemy import select @@ -24,6 +23,7 @@ from core.app.entities.app_invoke_entities import CompletionAppGenerateEntity, I from core.ops.ops_trace_manager import TraceQueueManager from extensions.ext_database import db from factories import file_factory +from graphon.model_runtime.errors.invoke import InvokeAuthorizationError from models import Account, App, EndUser, Message from services.errors.app import MoreLikeThisDisabledError from services.errors.message import MessageNotExistsError diff --git a/api/core/app/apps/completion/app_runner.py b/api/core/app/apps/completion/app_runner.py index b216f7cf7b..6bb1ecdcb1 100644 --- a/api/core/app/apps/completion/app_runner.py +++ b/api/core/app/apps/completion/app_runner.py @@ -1,8 +1,6 @@ import logging from typing import cast -from graphon.file import File -from graphon.model_runtime.entities.message_entities import ImagePromptMessageContent from sqlalchemy import select from core.app.apps.base_app_queue_manager import AppQueueManager @@ -16,6 +14,8 @@ from core.model_manager import ModelInstance from core.moderation.base import ModerationError from core.rag.retrieval.dataset_retrieval import DatasetRetrieval from extensions.ext_database import db +from graphon.file import File +from graphon.model_runtime.entities.message_entities import ImagePromptMessageContent from models.model import App, Message logger = logging.getLogger(__name__) diff --git a/api/core/app/apps/pipeline/pipeline_generator.py b/api/core/app/apps/pipeline/pipeline_generator.py index aa653ca5da..4a76d0809e 100644 --- a/api/core/app/apps/pipeline/pipeline_generator.py +++ b/api/core/app/apps/pipeline/pipeline_generator.py @@ -10,8 +10,6 @@ from collections.abc import Generator, Mapping from typing import Any, Literal, cast, overload from flask import Flask, current_app -from graphon.model_runtime.errors.invoke import InvokeAuthorizationError -from graphon.variable_loader import DUMMY_VARIABLE_LOADER, VariableLoader from pydantic import ValidationError from sqlalchemy import select from sqlalchemy.orm import Session, sessionmaker @@ -47,6 +45,8 @@ from core.repositories.factory import ( WorkflowNodeExecutionRepository, ) from extensions.ext_database import db +from graphon.model_runtime.errors.invoke import InvokeAuthorizationError +from graphon.variable_loader import DUMMY_VARIABLE_LOADER, VariableLoader from libs.flask_utils import preserve_flask_contexts from models import Account, EndUser, Workflow, WorkflowNodeExecutionTriggeredFrom from models.dataset import Document, DocumentPipelineExecutionLog, Pipeline diff --git a/api/core/app/apps/pipeline/pipeline_runner.py b/api/core/app/apps/pipeline/pipeline_runner.py index 36daaf09e9..2ee0ae27eb 100644 --- a/api/core/app/apps/pipeline/pipeline_runner.py +++ b/api/core/app/apps/pipeline/pipeline_runner.py @@ -2,12 +2,6 @@ import logging import time from typing import cast -from graphon.enums import WorkflowType -from graphon.graph import Graph -from graphon.graph_events import GraphEngineEvent, GraphRunFailedEvent -from graphon.runtime import GraphRuntimeState, VariablePool -from graphon.variable_loader import VariableLoader -from graphon.variables.variables import RAGPipelineVariable, RAGPipelineVariableInput from sqlalchemy import select from core.app.apps.base_app_queue_manager import AppQueueManager @@ -26,6 +20,12 @@ from core.workflow.system_variables import build_bootstrap_variables, build_syst from core.workflow.variable_pool_initializer import add_node_inputs_to_pool, add_variables_to_pool from core.workflow.workflow_entry import WorkflowEntry from extensions.ext_database import db +from graphon.enums import WorkflowType +from graphon.graph import Graph +from graphon.graph_events import GraphEngineEvent, GraphRunFailedEvent +from graphon.runtime import GraphRuntimeState, VariablePool +from graphon.variable_loader import VariableLoader +from graphon.variables.variables import RAGPipelineVariable, RAGPipelineVariableInput from models.dataset import Document, Pipeline from models.model import EndUser from models.workflow import Workflow diff --git a/api/core/app/apps/workflow/app_generator.py b/api/core/app/apps/workflow/app_generator.py index 1b1cea93e6..3282c9a334 100644 --- a/api/core/app/apps/workflow/app_generator.py +++ b/api/core/app/apps/workflow/app_generator.py @@ -8,10 +8,6 @@ from collections.abc import Generator, Mapping, Sequence from typing import TYPE_CHECKING, Any, Literal, overload from flask import Flask, current_app -from graphon.graph_engine.layers import GraphEngineLayer -from graphon.model_runtime.errors.invoke import InvokeAuthorizationError -from graphon.runtime import GraphRuntimeState -from graphon.variable_loader import DUMMY_VARIABLE_LOADER, VariableLoader from pydantic import ValidationError from sqlalchemy import select from sqlalchemy.orm import Session, sessionmaker @@ -42,6 +38,10 @@ from core.repositories import DifyCoreRepositoryFactory from core.repositories.factory import WorkflowExecutionRepository, WorkflowNodeExecutionRepository from extensions.ext_database import db from factories import file_factory +from graphon.graph_engine.layers import GraphEngineLayer +from graphon.model_runtime.errors.invoke import InvokeAuthorizationError +from graphon.runtime import GraphRuntimeState +from graphon.variable_loader import DUMMY_VARIABLE_LOADER, VariableLoader from libs.flask_utils import preserve_flask_contexts from models.account import Account from models.enums import WorkflowRunTriggeredFrom diff --git a/api/core/app/apps/workflow/app_runner.py b/api/core/app/apps/workflow/app_runner.py index ee5d30f251..9d3b193d3e 100644 --- a/api/core/app/apps/workflow/app_runner.py +++ b/api/core/app/apps/workflow/app_runner.py @@ -3,12 +3,6 @@ import time from collections.abc import Sequence from typing import cast -from graphon.enums import WorkflowType -from graphon.graph_engine.command_channels import RedisChannel -from graphon.graph_engine.layers import GraphEngineLayer -from graphon.runtime import GraphRuntimeState, VariablePool -from graphon.variable_loader import VariableLoader - from core.app.apps.base_app_queue_manager import AppQueueManager from core.app.apps.workflow.app_config_manager import WorkflowAppConfig from core.app.apps.workflow_app_runner import WorkflowBasedAppRunner @@ -22,6 +16,11 @@ from core.workflow.variable_pool_initializer import add_node_inputs_to_pool, add from core.workflow.workflow_entry import WorkflowEntry from extensions.ext_redis import redis_client from extensions.otel import WorkflowAppRunnerHandler, trace_span +from graphon.enums import WorkflowType +from graphon.graph_engine.command_channels import RedisChannel +from graphon.graph_engine.layers import GraphEngineLayer +from graphon.runtime import GraphRuntimeState, VariablePool +from graphon.variable_loader import VariableLoader from libs.datetime_utils import naive_utc_now from models.workflow import Workflow diff --git a/api/core/app/apps/workflow/generate_task_pipeline.py b/api/core/app/apps/workflow/generate_task_pipeline.py index d198a34fc3..87d9b73078 100644 --- a/api/core/app/apps/workflow/generate_task_pipeline.py +++ b/api/core/app/apps/workflow/generate_task_pipeline.py @@ -4,9 +4,6 @@ from collections.abc import Callable, Generator from contextlib import contextmanager from typing import Union -from graphon.entities import WorkflowStartReason -from graphon.enums import WorkflowExecutionStatus -from graphon.runtime import GraphRuntimeState from sqlalchemy.orm import Session, sessionmaker from constants.tts_auto_play_timeout import TTS_AUTO_PLAY_TIMEOUT, TTS_AUTO_PLAY_YIELD_CPU_TIME @@ -64,6 +61,9 @@ from core.base.tts import AppGeneratorTTSPublisher, AudioTrunk from core.ops.ops_trace_manager import TraceQueueManager from core.workflow.system_variables import build_system_variables from extensions.ext_database import db +from graphon.entities import WorkflowStartReason +from graphon.enums import WorkflowExecutionStatus +from graphon.runtime import GraphRuntimeState from models import Account from models.enums import CreatorUserRole from models.model import EndUser diff --git a/api/core/app/apps/workflow_app_runner.py b/api/core/app/apps/workflow_app_runner.py index 437432611d..047b54c86c 100644 --- a/api/core/app/apps/workflow_app_runner.py +++ b/api/core/app/apps/workflow_app_runner.py @@ -3,39 +3,6 @@ import time from collections.abc import Mapping, Sequence from typing import Any, cast -from graphon.entities.graph_config import NodeConfigDictAdapter -from graphon.entities.pause_reason import HumanInputRequired -from graphon.graph import Graph -from graphon.graph_engine.layers import GraphEngineLayer -from graphon.graph_events import ( - GraphEngineEvent, - GraphRunAbortedEvent, - GraphRunFailedEvent, - GraphRunPartialSucceededEvent, - GraphRunPausedEvent, - GraphRunStartedEvent, - GraphRunSucceededEvent, - NodeRunAgentLogEvent, - NodeRunExceptionEvent, - NodeRunFailedEvent, - NodeRunHumanInputFormFilledEvent, - NodeRunHumanInputFormTimeoutEvent, - NodeRunIterationFailedEvent, - NodeRunIterationNextEvent, - NodeRunIterationStartedEvent, - NodeRunIterationSucceededEvent, - NodeRunLoopFailedEvent, - NodeRunLoopNextEvent, - NodeRunLoopStartedEvent, - NodeRunLoopSucceededEvent, - NodeRunRetrieverResourceEvent, - NodeRunRetryEvent, - NodeRunStartedEvent, - NodeRunStreamChunkEvent, - NodeRunSucceededEvent, -) -from graphon.runtime import GraphRuntimeState, VariablePool -from graphon.variable_loader import DUMMY_VARIABLE_LOADER, VariableLoader, load_into_variable_pool from pydantic import ValidationError from core.app.apps.base_app_queue_manager import AppQueueManager, PublishFrom @@ -82,6 +49,39 @@ from core.workflow.system_variables import ( from core.workflow.variable_pool_initializer import add_variables_to_pool from core.workflow.workflow_entry import WorkflowEntry from core.workflow.workflow_run_outputs import project_node_outputs_for_workflow_run +from graphon.entities.graph_config import NodeConfigDictAdapter +from graphon.entities.pause_reason import HumanInputRequired +from graphon.graph import Graph +from graphon.graph_engine.layers import GraphEngineLayer +from graphon.graph_events import ( + GraphEngineEvent, + GraphRunAbortedEvent, + GraphRunFailedEvent, + GraphRunPartialSucceededEvent, + GraphRunPausedEvent, + GraphRunStartedEvent, + GraphRunSucceededEvent, + NodeRunAgentLogEvent, + NodeRunExceptionEvent, + NodeRunFailedEvent, + NodeRunHumanInputFormFilledEvent, + NodeRunHumanInputFormTimeoutEvent, + NodeRunIterationFailedEvent, + NodeRunIterationNextEvent, + NodeRunIterationStartedEvent, + NodeRunIterationSucceededEvent, + NodeRunLoopFailedEvent, + NodeRunLoopNextEvent, + NodeRunLoopStartedEvent, + NodeRunLoopSucceededEvent, + NodeRunRetrieverResourceEvent, + NodeRunRetryEvent, + NodeRunStartedEvent, + NodeRunStreamChunkEvent, + NodeRunSucceededEvent, +) +from graphon.runtime import GraphRuntimeState, VariablePool +from graphon.variable_loader import DUMMY_VARIABLE_LOADER, VariableLoader, load_into_variable_pool from models.workflow import Workflow from tasks.mail_human_input_delivery_task import dispatch_human_input_email_task diff --git a/api/core/app/entities/app_invoke_entities.py b/api/core/app/entities/app_invoke_entities.py index a3fb7b4c5d..09992f4bbf 100644 --- a/api/core/app/entities/app_invoke_entities.py +++ b/api/core/app/entities/app_invoke_entities.py @@ -2,13 +2,13 @@ from collections.abc import Mapping, Sequence from enum import StrEnum from typing import TYPE_CHECKING, Any -from graphon.file import File, FileUploadConfig -from graphon.model_runtime.entities.model_entities import AIModelEntity from pydantic import BaseModel, ConfigDict, Field, ValidationInfo, field_validator from constants import UUID_NIL from core.app.app_config.entities import EasyUIBasedAppConfig, WorkflowUIBasedAppConfig from core.entities.provider_configuration import ProviderModelBundle +from graphon.file import File, FileUploadConfig +from graphon.model_runtime.entities.model_entities import AIModelEntity if TYPE_CHECKING: from core.ops.ops_trace_manager import TraceQueueManager diff --git a/api/core/app/entities/queue_entities.py b/api/core/app/entities/queue_entities.py index 482f995d8e..221b7fb058 100644 --- a/api/core/app/entities/queue_entities.py +++ b/api/core/app/entities/queue_entities.py @@ -3,14 +3,14 @@ from datetime import datetime from enum import StrEnum, auto from typing import Any -from graphon.entities import WorkflowStartReason -from graphon.entities.pause_reason import PauseReason -from graphon.enums import NodeType, WorkflowNodeExecutionMetadataKey -from graphon.model_runtime.entities.llm_entities import LLMResult, LLMResultChunk from pydantic import BaseModel, ConfigDict, Field from core.app.entities.agent_strategy import AgentStrategyInfo from core.rag.entities import RetrievalSourceMetadata +from graphon.entities import WorkflowStartReason +from graphon.entities.pause_reason import PauseReason +from graphon.enums import NodeType, WorkflowNodeExecutionMetadataKey +from graphon.model_runtime.entities.llm_entities import LLMResult, LLMResultChunk class QueueEvent(StrEnum): diff --git a/api/core/app/features/hosting_moderation/hosting_moderation.py b/api/core/app/features/hosting_moderation/hosting_moderation.py index d2d2fea4fb..d59f5125e3 100644 --- a/api/core/app/features/hosting_moderation/hosting_moderation.py +++ b/api/core/app/features/hosting_moderation/hosting_moderation.py @@ -1,9 +1,8 @@ import logging -from graphon.model_runtime.entities.message_entities import PromptMessage - from core.app.entities.app_invoke_entities import EasyUIBasedAppGenerateEntity from core.helper import moderation +from graphon.model_runtime.entities.message_entities import PromptMessage logger = logging.getLogger(__name__) diff --git a/api/core/app/layers/pause_state_persist_layer.py b/api/core/app/layers/pause_state_persist_layer.py index c027f42788..9811f9f830 100644 --- a/api/core/app/layers/pause_state_persist_layer.py +++ b/api/core/app/layers/pause_state_persist_layer.py @@ -1,14 +1,14 @@ from dataclasses import dataclass from typing import Annotated, Literal, Self -from graphon.graph_engine.layers import GraphEngineLayer -from graphon.graph_events import GraphEngineEvent, GraphRunPausedEvent from pydantic import BaseModel, Field from sqlalchemy import Engine from sqlalchemy.orm import Session, sessionmaker from core.app.entities.app_invoke_entities import AdvancedChatAppGenerateEntity, WorkflowAppGenerateEntity from core.workflow.system_variables import SystemVariableKey, get_system_text +from graphon.graph_engine.layers import GraphEngineLayer +from graphon.graph_events import GraphEngineEvent, GraphRunPausedEvent from models.model import AppMode from repositories.api_workflow_run_repository import APIWorkflowRunRepository from repositories.factory import DifyAPIRepositoryFactory diff --git a/api/core/app/layers/timeslice_layer.py b/api/core/app/layers/timeslice_layer.py index 8c8daf8712..bb9fc1b6fa 100644 --- a/api/core/app/layers/timeslice_layer.py +++ b/api/core/app/layers/timeslice_layer.py @@ -3,10 +3,10 @@ import uuid from typing import ClassVar from apscheduler.schedulers.background import BackgroundScheduler # type: ignore + from graphon.graph_engine.entities.commands import CommandType, GraphEngineCommand from graphon.graph_engine.layers import GraphEngineLayer from graphon.graph_events import GraphEngineEvent - from services.workflow.entities import WorkflowScheduleCFSPlanEntity from services.workflow.scheduler import CFSPlanScheduler, SchedulerCommand diff --git a/api/core/app/layers/trigger_post_layer.py b/api/core/app/layers/trigger_post_layer.py index 77c7bec67e..b60fe82ffe 100644 --- a/api/core/app/layers/trigger_post_layer.py +++ b/api/core/app/layers/trigger_post_layer.py @@ -2,12 +2,12 @@ import logging from datetime import UTC, datetime from typing import Any, ClassVar -from graphon.graph_engine.layers import GraphEngineLayer -from graphon.graph_events import GraphEngineEvent, GraphRunFailedEvent, GraphRunPausedEvent, GraphRunSucceededEvent from pydantic import TypeAdapter from core.db.session_factory import session_factory from core.workflow.system_variables import SystemVariableKey, get_system_text +from graphon.graph_engine.layers import GraphEngineLayer +from graphon.graph_events import GraphEngineEvent, GraphRunFailedEvent, GraphRunPausedEvent, GraphRunSucceededEvent from models.enums import WorkflowTriggerStatus from repositories.sqlalchemy_workflow_trigger_log_repository import SQLAlchemyWorkflowTriggerLogRepository from tasks.workflow_cfs_scheduler.cfs_scheduler import AsyncWorkflowCFSPlanEntity diff --git a/api/core/app/llm/model_access.py b/api/core/app/llm/model_access.py index 3286d39c4d..5631caa1a5 100644 --- a/api/core/app/llm/model_access.py +++ b/api/core/app/llm/model_access.py @@ -3,16 +3,15 @@ from __future__ import annotations from copy import deepcopy from typing import Any -from graphon.model_runtime.entities.model_entities import ModelType -from graphon.nodes.llm.entities import ModelConfig -from graphon.nodes.llm.exc import LLMModeRequiredError, ModelNotExistError -from graphon.nodes.llm.protocols import CredentialsProvider - from core.app.entities.app_invoke_entities import DifyRunContext, ModelConfigWithCredentialsEntity from core.errors.error import ProviderTokenNotInitError from core.model_manager import ModelInstance, ModelManager from core.plugin.impl.model_runtime_factory import create_plugin_provider_manager from core.provider_manager import ProviderManager +from graphon.model_runtime.entities.model_entities import ModelType +from graphon.nodes.llm.entities import ModelConfig +from graphon.nodes.llm.exc import LLMModeRequiredError, ModelNotExistError +from graphon.nodes.llm.protocols import CredentialsProvider class DifyCredentialsProvider: diff --git a/api/core/app/llm/quota.py b/api/core/app/llm/quota.py index 0bb10190c4..b6039e1e4e 100644 --- a/api/core/app/llm/quota.py +++ b/api/core/app/llm/quota.py @@ -1,4 +1,3 @@ -from graphon.model_runtime.entities.llm_entities import LLMUsage from sqlalchemy import update from sqlalchemy.orm import sessionmaker @@ -8,6 +7,7 @@ from core.entities.provider_entities import ProviderQuotaType, QuotaUnit from core.errors.error import QuotaExceededError from core.model_manager import ModelInstance from extensions.ext_database import db +from graphon.model_runtime.entities.llm_entities import LLMUsage from libs.datetime_utils import naive_utc_now from models.provider import Provider, ProviderType from models.provider_ids import ModelProviderID diff --git a/api/core/app/task_pipeline/based_generate_task_pipeline.py b/api/core/app/task_pipeline/based_generate_task_pipeline.py index 10b9c36d3e..9e688589db 100644 --- a/api/core/app/task_pipeline/based_generate_task_pipeline.py +++ b/api/core/app/task_pipeline/based_generate_task_pipeline.py @@ -1,7 +1,6 @@ import logging import time -from graphon.model_runtime.errors.invoke import InvokeAuthorizationError, InvokeError from sqlalchemy import select from sqlalchemy.orm import Session @@ -18,6 +17,7 @@ from core.app.entities.task_entities import ( ) from core.errors.error import QuotaExceededError from core.moderation.output_moderation import ModerationRule, OutputModeration +from graphon.model_runtime.errors.invoke import InvokeAuthorizationError, InvokeError from models.enums import MessageStatus from models.model import Message diff --git a/api/core/app/workflow/layers/llm_quota.py b/api/core/app/workflow/layers/llm_quota.py index c577ce0754..4a7918032e 100644 --- a/api/core/app/workflow/layers/llm_quota.py +++ b/api/core/app/workflow/layers/llm_quota.py @@ -7,17 +7,16 @@ This layer centralizes model-quota deduction outside node implementations. import logging from typing import TYPE_CHECKING, cast, final, override +from core.app.entities.app_invoke_entities import DIFY_RUN_CONTEXT_KEY, DifyRunContext +from core.app.llm import deduct_llm_quota, ensure_llm_quota_available +from core.errors.error import QuotaExceededError +from core.model_manager import ModelInstance from graphon.enums import BuiltinNodeTypes from graphon.graph_engine.entities.commands import AbortCommand, CommandType from graphon.graph_engine.layers import GraphEngineLayer from graphon.graph_events import GraphEngineEvent, GraphNodeEventBase, NodeRunSucceededEvent from graphon.nodes.base.node import Node -from core.app.entities.app_invoke_entities import DIFY_RUN_CONTEXT_KEY, DifyRunContext -from core.app.llm import deduct_llm_quota, ensure_llm_quota_available -from core.errors.error import QuotaExceededError -from core.model_manager import ModelInstance - if TYPE_CHECKING: from graphon.nodes.llm.node import LLMNode from graphon.nodes.parameter_extractor.parameter_extractor_node import ParameterExtractorNode diff --git a/api/core/app/workflow/layers/persistence.py b/api/core/app/workflow/layers/persistence.py index 602940af6e..d521304615 100644 --- a/api/core/app/workflow/layers/persistence.py +++ b/api/core/app/workflow/layers/persistence.py @@ -14,6 +14,13 @@ from dataclasses import dataclass from datetime import datetime from typing import Any, Union +from core.app.entities.app_invoke_entities import AdvancedChatAppGenerateEntity, WorkflowAppGenerateEntity +from core.ops.entities.trace_entity import TraceTaskName +from core.ops.ops_trace_manager import TraceQueueManager, TraceTask +from core.repositories.factory import WorkflowExecutionRepository, WorkflowNodeExecutionRepository +from core.workflow.system_variables import SystemVariableKey +from core.workflow.variable_prefixes import SYSTEM_VARIABLE_NODE_ID +from core.workflow.workflow_run_outputs import project_node_outputs_for_workflow_run from graphon.entities import WorkflowExecution, WorkflowNodeExecution from graphon.enums import ( WorkflowExecutionStatus, @@ -38,14 +45,6 @@ from graphon.graph_events import ( NodeRunSucceededEvent, ) from graphon.node_events import NodeRunResult - -from core.app.entities.app_invoke_entities import AdvancedChatAppGenerateEntity, WorkflowAppGenerateEntity -from core.ops.entities.trace_entity import TraceTaskName -from core.ops.ops_trace_manager import TraceQueueManager, TraceTask -from core.repositories.factory import WorkflowExecutionRepository, WorkflowNodeExecutionRepository -from core.workflow.system_variables import SystemVariableKey -from core.workflow.variable_prefixes import SYSTEM_VARIABLE_NODE_ID -from core.workflow.workflow_run_outputs import project_node_outputs_for_workflow_run from libs.datetime_utils import naive_utc_now diff --git a/api/core/base/tts/app_generator_tts_publisher.py b/api/core/base/tts/app_generator_tts_publisher.py index 3d8a7a54f3..9e3c187210 100644 --- a/api/core/base/tts/app_generator_tts_publisher.py +++ b/api/core/base/tts/app_generator_tts_publisher.py @@ -6,9 +6,6 @@ import re import threading from collections.abc import Iterable -from graphon.model_runtime.entities.message_entities import TextPromptMessageContent -from graphon.model_runtime.entities.model_entities import ModelType - from core.app.entities.queue_entities import ( MessageQueueMessage, QueueAgentMessageEvent, @@ -18,6 +15,8 @@ from core.app.entities.queue_entities import ( WorkflowQueueMessage, ) from core.model_manager import ModelInstance, ModelManager +from graphon.model_runtime.entities.message_entities import TextPromptMessageContent +from graphon.model_runtime.entities.model_entities import ModelType class AudioTrunk: diff --git a/api/core/datasource/datasource_manager.py b/api/core/datasource/datasource_manager.py index 4cb1905688..f0dcb13b62 100644 --- a/api/core/datasource/datasource_manager.py +++ b/api/core/datasource/datasource_manager.py @@ -3,9 +3,6 @@ from collections.abc import Generator from threading import Lock from typing import Any, cast -from graphon.enums import WorkflowNodeExecutionMetadataKey, WorkflowNodeExecutionStatus -from graphon.file import File, FileTransferMethod, FileType, get_file_type_by_mime_type -from graphon.node_events import NodeRunResult, StreamChunkEvent, StreamCompletedEvent from sqlalchemy import select import contexts @@ -31,6 +28,9 @@ from core.plugin.impl.datasource import PluginDatasourceManager from core.workflow.file_reference import build_file_reference from core.workflow.nodes.datasource.entities import DatasourceParameter, OnlineDriveDownloadFileParam from factories import file_factory +from graphon.enums import WorkflowNodeExecutionMetadataKey, WorkflowNodeExecutionStatus +from graphon.file import File, FileTransferMethod, FileType, get_file_type_by_mime_type +from graphon.node_events import NodeRunResult, StreamChunkEvent, StreamCompletedEvent from models.model import UploadFile from models.tools import ToolFile from services.datasource_provider_service import DatasourceProviderService diff --git a/api/core/datasource/entities/api_entities.py b/api/core/datasource/entities/api_entities.py index 9c22d5e67c..352e6bfd49 100644 --- a/api/core/datasource/entities/api_entities.py +++ b/api/core/datasource/entities/api_entities.py @@ -1,10 +1,10 @@ from typing import Any, Literal, TypedDict -from graphon.model_runtime.utils.encoders import jsonable_encoder from pydantic import BaseModel, Field, field_validator from core.datasource.entities.datasource_entities import DatasourceParameter from core.tools.entities.common_entities import I18nObject, I18nObjectDict +from graphon.model_runtime.utils.encoders import jsonable_encoder class DatasourceApiEntity(BaseModel): diff --git a/api/core/datasource/utils/message_transformer.py b/api/core/datasource/utils/message_transformer.py index c012e128f4..6a3f9e684a 100644 --- a/api/core/datasource/utils/message_transformer.py +++ b/api/core/datasource/utils/message_transformer.py @@ -2,11 +2,10 @@ import logging from collections.abc import Generator from mimetypes import guess_extension, guess_type -from graphon.file import File, FileTransferMethod, FileType - from core.datasource.entities.datasource_entities import DatasourceMessage from core.tools.tool_file_manager import ToolFileManager from core.workflow.file_reference import parse_file_reference +from graphon.file import File, FileTransferMethod, FileType from models.tools import ToolFile logger = logging.getLogger(__name__) diff --git a/api/core/entities/execution_extra_content.py b/api/core/entities/execution_extra_content.py index d304c982cd..04ae193396 100644 --- a/api/core/entities/execution_extra_content.py +++ b/api/core/entities/execution_extra_content.py @@ -3,9 +3,9 @@ from __future__ import annotations from collections.abc import Mapping, Sequence from typing import Any, TypeAlias -from graphon.nodes.human_input.entities import FormInput, UserAction from pydantic import BaseModel, ConfigDict, Field +from graphon.nodes.human_input.entities import FormInput, UserAction from models.execution_extra_content import ExecutionContentType diff --git a/api/core/entities/mcp_provider.py b/api/core/entities/mcp_provider.py index a440829b46..bfa4f56915 100644 --- a/api/core/entities/mcp_provider.py +++ b/api/core/entities/mcp_provider.py @@ -6,7 +6,6 @@ from enum import StrEnum from typing import TYPE_CHECKING, Any from urllib.parse import urlparse -from graphon.file import helpers as file_helpers from pydantic import BaseModel from configs import dify_config @@ -16,6 +15,7 @@ from core.helper.provider_cache import NoOpProviderCredentialCache from core.mcp.types import OAuthClientInformation, OAuthClientMetadata, OAuthTokens from core.tools.entities.common_entities import I18nObject from core.tools.entities.tool_entities import ToolProviderType +from graphon.file import helpers as file_helpers if TYPE_CHECKING: from models.tools import MCPToolProvider diff --git a/api/core/entities/model_entities.py b/api/core/entities/model_entities.py index 84d95c38c6..e99a131500 100644 --- a/api/core/entities/model_entities.py +++ b/api/core/entities/model_entities.py @@ -1,10 +1,11 @@ from collections.abc import Sequence from enum import StrEnum, auto +from pydantic import BaseModel, ConfigDict + from graphon.model_runtime.entities.common_entities import I18nObject from graphon.model_runtime.entities.model_entities import ModelType, ProviderModel from graphon.model_runtime.entities.provider_entities import ProviderEntity -from pydantic import BaseModel, ConfigDict class ModelStatus(StrEnum): diff --git a/api/core/entities/provider_entities.py b/api/core/entities/provider_entities.py index 95431c0e01..72b29c2277 100644 --- a/api/core/entities/provider_entities.py +++ b/api/core/entities/provider_entities.py @@ -3,7 +3,6 @@ from __future__ import annotations from enum import StrEnum, auto from typing import Any, Union -from graphon.model_runtime.entities.model_entities import ModelType from pydantic import BaseModel, ConfigDict, Field from core.entities.parameter_entities import ( @@ -13,6 +12,7 @@ from core.entities.parameter_entities import ( ToolSelectorScope, ) from core.tools.entities.common_entities import I18nObject +from graphon.model_runtime.entities.model_entities import ModelType class ProviderQuotaType(StrEnum): diff --git a/api/core/helper/code_executor/code_executor.py b/api/core/helper/code_executor/code_executor.py index 35bfcfb6a5..951e065b2c 100644 --- a/api/core/helper/code_executor/code_executor.py +++ b/api/core/helper/code_executor/code_executor.py @@ -4,7 +4,6 @@ from threading import Lock from typing import Any import httpx -from graphon.nodes.code.entities import CodeLanguage from pydantic import BaseModel from yarl import URL @@ -14,6 +13,7 @@ from core.helper.code_executor.jinja2.jinja2_transformer import Jinja2TemplateTr from core.helper.code_executor.python3.python3_transformer import Python3TemplateTransformer from core.helper.code_executor.template_transformer import TemplateTransformer from core.helper.http_client_pooling import get_pooled_http_client +from graphon.nodes.code.entities import CodeLanguage logger = logging.getLogger(__name__) code_execution_endpoint_url = URL(str(dify_config.CODE_EXECUTION_ENDPOINT)) diff --git a/api/core/hosting_configuration.py b/api/core/hosting_configuration.py index f8f56e12d2..8bcb899b23 100644 --- a/api/core/hosting_configuration.py +++ b/api/core/hosting_configuration.py @@ -1,12 +1,12 @@ from typing import Any from flask import Flask -from graphon.model_runtime.entities.model_entities import ModelType from pydantic import BaseModel from configs import dify_config from core.entities import DEFAULT_PLUGIN_ID from core.entities.provider_entities import ProviderQuotaType, QuotaUnit, RestrictModel +from graphon.model_runtime.entities.model_entities import ModelType class HostingQuota(BaseModel): diff --git a/api/core/llm_generator/output_parser/structured_output.py b/api/core/llm_generator/output_parser/structured_output.py index a8ad7c9179..d2e375626f 100644 --- a/api/core/llm_generator/output_parser/structured_output.py +++ b/api/core/llm_generator/output_parser/structured_output.py @@ -5,6 +5,11 @@ from enum import StrEnum from typing import Any, Literal, cast, overload import json_repair +from pydantic import TypeAdapter, ValidationError + +from core.llm_generator.output_parser.errors import OutputParserError +from core.llm_generator.prompts import STRUCTURED_OUTPUT_PROMPT +from core.model_manager import ModelInstance from graphon.model_runtime.callbacks.base_callback import Callback from graphon.model_runtime.entities.llm_entities import ( LLMResult, @@ -21,11 +26,6 @@ from graphon.model_runtime.entities.message_entities import ( TextPromptMessageContent, ) from graphon.model_runtime.entities.model_entities import AIModelEntity, ParameterRule -from pydantic import TypeAdapter, ValidationError - -from core.llm_generator.output_parser.errors import OutputParserError -from core.llm_generator.prompts import STRUCTURED_OUTPUT_PROMPT -from core.model_manager import ModelInstance class ResponseFormat(StrEnum): diff --git a/api/core/mcp/server/streamable_http.py b/api/core/mcp/server/streamable_http.py index 72171d1536..884610ca82 100644 --- a/api/core/mcp/server/streamable_http.py +++ b/api/core/mcp/server/streamable_http.py @@ -3,12 +3,11 @@ import logging from collections.abc import Mapping from typing import Any, NotRequired, TypedDict, cast -from graphon.variables.input_entities import VariableEntity, VariableEntityType - from configs import dify_config from core.app.entities.app_invoke_entities import InvokeFrom from core.app.features.rate_limiting.rate_limit import RateLimitGenerator from core.mcp import types as mcp_types +from graphon.variables.input_entities import VariableEntity, VariableEntityType from models.model import App, AppMCPServer, AppMode, EndUser from services.app_generate_service import AppGenerateService diff --git a/api/core/mcp/utils.py b/api/core/mcp/utils.py index 7e35044176..7b5a7635f1 100644 --- a/api/core/mcp/utils.py +++ b/api/core/mcp/utils.py @@ -4,11 +4,11 @@ from contextlib import AbstractContextManager import httpx import httpx_sse -from graphon.model_runtime.utils.encoders import jsonable_encoder from httpx_sse import connect_sse from configs import dify_config from core.mcp.types import ErrorData, JSONRPCError +from graphon.model_runtime.utils.encoders import jsonable_encoder HTTP_REQUEST_NODE_SSL_VERIFY = dify_config.HTTP_REQUEST_NODE_SSL_VERIFY diff --git a/api/core/memory/token_buffer_memory.py b/api/core/memory/token_buffer_memory.py index 5809d6f74a..d840ee213c 100644 --- a/api/core/memory/token_buffer_memory.py +++ b/api/core/memory/token_buffer_memory.py @@ -1,5 +1,14 @@ from collections.abc import Sequence +from sqlalchemy import select +from sqlalchemy.orm import sessionmaker + +from core.app.app_config.features.file_upload.manager import FileUploadConfigManager +from core.app.file_access import DatabaseFileAccessController +from core.model_manager import ModelInstance +from core.prompt.utils.extract_thread_messages import extract_thread_messages +from extensions.ext_database import db +from factories import file_factory from graphon.file import file_manager from graphon.model_runtime.entities import ( AssistantPromptMessage, @@ -10,15 +19,6 @@ from graphon.model_runtime.entities import ( UserPromptMessage, ) from graphon.model_runtime.entities.message_entities import PromptMessageContentUnionTypes -from sqlalchemy import select -from sqlalchemy.orm import sessionmaker - -from core.app.app_config.features.file_upload.manager import FileUploadConfigManager -from core.app.file_access import DatabaseFileAccessController -from core.model_manager import ModelInstance -from core.prompt.utils.extract_thread_messages import extract_thread_messages -from extensions.ext_database import db -from factories import file_factory from models.model import AppMode, Conversation, Message, MessageFile from models.workflow import Workflow from repositories.api_workflow_run_repository import APIWorkflowRunRepository diff --git a/api/core/plugin/backwards_invocation/model.py b/api/core/plugin/backwards_invocation/model.py index a4b24ff849..c92438960a 100644 --- a/api/core/plugin/backwards_invocation/model.py +++ b/api/core/plugin/backwards_invocation/model.py @@ -3,20 +3,6 @@ from binascii import hexlify, unhexlify from collections.abc import Generator from typing import Any -from graphon.model_runtime.entities.llm_entities import ( - LLMResult, - LLMResultChunk, - LLMResultChunkDelta, - LLMResultChunkWithStructuredOutput, - LLMResultWithStructuredOutput, -) -from graphon.model_runtime.entities.message_entities import ( - PromptMessage, - SystemPromptMessage, - UserPromptMessage, -) -from graphon.model_runtime.entities.model_entities import ModelType - from core.app.llm import deduct_llm_quota from core.llm_generator.output_parser.structured_output import invoke_llm_with_structured_output from core.model_manager import ModelManager @@ -33,6 +19,19 @@ from core.plugin.entities.request import ( ) from core.tools.entities.tool_entities import ToolProviderType from core.tools.utils.model_invocation_utils import ModelInvocationUtils +from graphon.model_runtime.entities.llm_entities import ( + LLMResult, + LLMResultChunk, + LLMResultChunkDelta, + LLMResultChunkWithStructuredOutput, + LLMResultWithStructuredOutput, +) +from graphon.model_runtime.entities.message_entities import ( + PromptMessage, + SystemPromptMessage, + UserPromptMessage, +) +from graphon.model_runtime.entities.model_entities import ModelType from models.account import Tenant diff --git a/api/core/plugin/backwards_invocation/node.py b/api/core/plugin/backwards_invocation/node.py index 9478997494..9550e49992 100644 --- a/api/core/plugin/backwards_invocation/node.py +++ b/api/core/plugin/backwards_invocation/node.py @@ -1,3 +1,4 @@ +from core.plugin.backwards_invocation.base import BaseBackwardsInvocation from graphon.enums import BuiltinNodeTypes from graphon.nodes.llm.entities import ModelConfig as LLMModelConfig from graphon.nodes.parameter_extractor.entities import ( @@ -8,8 +9,6 @@ from graphon.nodes.question_classifier.entities import ( ClassConfig, QuestionClassifierNodeData, ) - -from core.plugin.backwards_invocation.base import BaseBackwardsInvocation from services.workflow_service import WorkflowService diff --git a/api/core/plugin/entities/plugin.py b/api/core/plugin/entities/plugin.py index 4d28032a57..89e0e8881c 100644 --- a/api/core/plugin/entities/plugin.py +++ b/api/core/plugin/entities/plugin.py @@ -3,7 +3,6 @@ from collections.abc import Mapping from enum import StrEnum, auto from typing import Any -from graphon.model_runtime.entities.provider_entities import ProviderEntity from packaging.version import InvalidVersion, Version from pydantic import BaseModel, Field, field_validator, model_validator @@ -14,6 +13,7 @@ from core.plugin.entities.endpoint import EndpointProviderDeclaration from core.tools.entities.common_entities import I18nObject from core.tools.entities.tool_entities import ToolProviderEntity from core.trigger.entities.entities import TriggerProviderEntity +from graphon.model_runtime.entities.provider_entities import ProviderEntity class PluginInstallationSource(StrEnum): diff --git a/api/core/plugin/entities/plugin_daemon.py b/api/core/plugin/entities/plugin_daemon.py index e0ddb746c7..257638ad77 100644 --- a/api/core/plugin/entities/plugin_daemon.py +++ b/api/core/plugin/entities/plugin_daemon.py @@ -6,8 +6,6 @@ from datetime import datetime from enum import StrEnum from typing import Any -from graphon.model_runtime.entities.model_entities import AIModelEntity -from graphon.model_runtime.entities.provider_entities import ProviderEntity from pydantic import BaseModel, ConfigDict, Field from core.agent.plugin_entities import AgentProviderEntityWithPlugin @@ -18,6 +16,8 @@ from core.plugin.entities.plugin import PluginDeclaration, PluginEntity from core.tools.entities.common_entities import I18nObject from core.tools.entities.tool_entities import ToolProviderEntityWithPlugin from core.trigger.entities.entities import TriggerProviderEntity +from graphon.model_runtime.entities.model_entities import AIModelEntity +from graphon.model_runtime.entities.provider_entities import ProviderEntity class PluginDaemonBasicResponse[T: BaseModel | dict | list | bool | str](BaseModel): diff --git a/api/core/plugin/entities/request.py b/api/core/plugin/entities/request.py index 4a85952dcd..1474883204 100644 --- a/api/core/plugin/entities/request.py +++ b/api/core/plugin/entities/request.py @@ -4,6 +4,10 @@ from collections.abc import Mapping from typing import Any, Literal from flask import Response +from pydantic import BaseModel, ConfigDict, Field, field_validator + +from core.entities.provider_entities import BasicProviderConfig +from core.plugin.utils.http_parser import deserialize_response from graphon.model_runtime.entities.message_entities import ( AssistantPromptMessage, PromptMessage, @@ -21,10 +25,6 @@ from graphon.nodes.parameter_extractor.entities import ( from graphon.nodes.question_classifier.entities import ( ClassConfig, ) -from pydantic import BaseModel, ConfigDict, Field, field_validator - -from core.entities.provider_entities import BasicProviderConfig -from core.plugin.utils.http_parser import deserialize_response class InvokeCredentials(BaseModel): diff --git a/api/core/plugin/impl/base.py b/api/core/plugin/impl/base.py index 7f36560b49..9ee8469892 100644 --- a/api/core/plugin/impl/base.py +++ b/api/core/plugin/impl/base.py @@ -5,14 +5,6 @@ from collections.abc import Callable, Generator from typing import Any, cast import httpx -from graphon.model_runtime.errors.invoke import ( - InvokeAuthorizationError, - InvokeBadRequestError, - InvokeConnectionError, - InvokeRateLimitError, - InvokeServerUnavailableError, -) -from graphon.model_runtime.errors.validate import CredentialsValidateFailedError from pydantic import BaseModel from yarl import URL @@ -37,6 +29,14 @@ from core.trigger.errors import ( TriggerPluginInvokeError, TriggerProviderCredentialValidationError, ) +from graphon.model_runtime.errors.invoke import ( + InvokeAuthorizationError, + InvokeBadRequestError, + InvokeConnectionError, + InvokeRateLimitError, + InvokeServerUnavailableError, +) +from graphon.model_runtime.errors.validate import CredentialsValidateFailedError plugin_daemon_inner_api_baseurl = URL(str(dify_config.PLUGIN_DAEMON_URL)) _plugin_daemon_timeout_config = cast( diff --git a/api/core/plugin/impl/model.py b/api/core/plugin/impl/model.py index 703af63f7c..47608bdfa6 100644 --- a/api/core/plugin/impl/model.py +++ b/api/core/plugin/impl/model.py @@ -2,13 +2,6 @@ import binascii from collections.abc import Generator, Sequence from typing import IO, Any -from graphon.model_runtime.entities.llm_entities import LLMResultChunk -from graphon.model_runtime.entities.message_entities import PromptMessage, PromptMessageTool -from graphon.model_runtime.entities.model_entities import AIModelEntity -from graphon.model_runtime.entities.rerank_entities import MultimodalRerankInput, RerankResult -from graphon.model_runtime.entities.text_embedding_entities import EmbeddingResult -from graphon.model_runtime.utils.encoders import jsonable_encoder - from core.plugin.entities.plugin_daemon import ( PluginBasicBooleanResponse, PluginDaemonInnerError, @@ -20,6 +13,12 @@ from core.plugin.entities.plugin_daemon import ( PluginVoicesResponse, ) from core.plugin.impl.base import BasePluginClient +from graphon.model_runtime.entities.llm_entities import LLMResultChunk +from graphon.model_runtime.entities.message_entities import PromptMessage, PromptMessageTool +from graphon.model_runtime.entities.model_entities import AIModelEntity +from graphon.model_runtime.entities.rerank_entities import MultimodalRerankInput, RerankResult +from graphon.model_runtime.entities.text_embedding_entities import EmbeddingResult +from graphon.model_runtime.utils.encoders import jsonable_encoder class PluginModelClient(BasePluginClient): diff --git a/api/core/plugin/utils/converter.py b/api/core/plugin/utils/converter.py index 90350f8400..12d8e282b2 100644 --- a/api/core/plugin/utils/converter.py +++ b/api/core/plugin/utils/converter.py @@ -1,8 +1,7 @@ from typing import Any -from graphon.file import File - from core.tools.entities.tool_entities import ToolSelector +from graphon.file import File def convert_parameters_to_plugin_format(parameters: dict[str, Any]) -> dict[str, Any]: diff --git a/api/core/prompt/advanced_prompt_transform.py b/api/core/prompt/advanced_prompt_transform.py index 19b5e9223a..24e05ef865 100644 --- a/api/core/prompt/advanced_prompt_transform.py +++ b/api/core/prompt/advanced_prompt_transform.py @@ -1,6 +1,13 @@ from collections.abc import Mapping, Sequence from typing import cast +from core.app.entities.app_invoke_entities import ModelConfigWithCredentialsEntity +from core.helper.code_executor.jinja2.jinja2_formatter import Jinja2Formatter +from core.memory.token_buffer_memory import TokenBufferMemory +from core.model_manager import ModelInstance +from core.prompt.entities.advanced_prompt_entities import ChatModelMessage, CompletionModelPromptTemplate, MemoryConfig +from core.prompt.prompt_transform import PromptTransform +from core.prompt.utils.prompt_template_parser import PromptTemplateParser from graphon.file import File, file_manager from graphon.model_runtime.entities import ( AssistantPromptMessage, @@ -13,14 +20,6 @@ from graphon.model_runtime.entities import ( from graphon.model_runtime.entities.message_entities import ImagePromptMessageContent, PromptMessageContentUnionTypes from graphon.runtime import VariablePool -from core.app.entities.app_invoke_entities import ModelConfigWithCredentialsEntity -from core.helper.code_executor.jinja2.jinja2_formatter import Jinja2Formatter -from core.memory.token_buffer_memory import TokenBufferMemory -from core.model_manager import ModelInstance -from core.prompt.entities.advanced_prompt_entities import ChatModelMessage, CompletionModelPromptTemplate, MemoryConfig -from core.prompt.prompt_transform import PromptTransform -from core.prompt.utils.prompt_template_parser import PromptTemplateParser - class AdvancedPromptTransform(PromptTransform): """ diff --git a/api/core/prompt/agent_history_prompt_transform.py b/api/core/prompt/agent_history_prompt_transform.py index 126888f739..7c6280fe93 100644 --- a/api/core/prompt/agent_history_prompt_transform.py +++ b/api/core/prompt/agent_history_prompt_transform.py @@ -1,17 +1,16 @@ from typing import cast -from graphon.model_runtime.entities.message_entities import ( - PromptMessage, - SystemPromptMessage, - UserPromptMessage, -) -from graphon.model_runtime.model_providers.base.large_language_model import LargeLanguageModel - from core.app.entities.app_invoke_entities import ( ModelConfigWithCredentialsEntity, ) from core.memory.token_buffer_memory import TokenBufferMemory from core.prompt.prompt_transform import PromptTransform +from graphon.model_runtime.entities.message_entities import ( + PromptMessage, + SystemPromptMessage, + UserPromptMessage, +) +from graphon.model_runtime.model_providers.base.large_language_model import LargeLanguageModel class AgentHistoryPromptTransform(PromptTransform): diff --git a/api/core/prompt/prompt_transform.py b/api/core/prompt/prompt_transform.py index 4539ae9f11..6ff2f44cdc 100644 --- a/api/core/prompt/prompt_transform.py +++ b/api/core/prompt/prompt_transform.py @@ -1,12 +1,11 @@ from typing import Any -from graphon.model_runtime.entities.message_entities import PromptMessage -from graphon.model_runtime.entities.model_entities import AIModelEntity, ModelPropertyKey - from core.app.entities.app_invoke_entities import ModelConfigWithCredentialsEntity from core.memory.token_buffer_memory import TokenBufferMemory from core.model_manager import ModelInstance from core.prompt.entities.advanced_prompt_entities import MemoryConfig +from graphon.model_runtime.entities.message_entities import PromptMessage +from graphon.model_runtime.entities.model_entities import AIModelEntity, ModelPropertyKey class PromptTransform: diff --git a/api/core/prompt/simple_prompt_transform.py b/api/core/prompt/simple_prompt_transform.py index dc8391a6a5..1665bdeb52 100644 --- a/api/core/prompt/simple_prompt_transform.py +++ b/api/core/prompt/simple_prompt_transform.py @@ -4,6 +4,12 @@ from collections.abc import Mapping, Sequence from enum import StrEnum, auto from typing import TYPE_CHECKING, Any, TypedDict, cast +from core.app.app_config.entities import PromptTemplateEntity +from core.app.entities.app_invoke_entities import ModelConfigWithCredentialsEntity +from core.memory.token_buffer_memory import TokenBufferMemory +from core.prompt.entities.advanced_prompt_entities import MemoryConfig +from core.prompt.prompt_transform import PromptTransform +from core.prompt.utils.prompt_template_parser import PromptTemplateParser from graphon.file import file_manager from graphon.model_runtime.entities.message_entities import ( ImagePromptMessageContent, @@ -13,13 +19,6 @@ from graphon.model_runtime.entities.message_entities import ( TextPromptMessageContent, UserPromptMessage, ) - -from core.app.app_config.entities import PromptTemplateEntity -from core.app.entities.app_invoke_entities import ModelConfigWithCredentialsEntity -from core.memory.token_buffer_memory import TokenBufferMemory -from core.prompt.entities.advanced_prompt_entities import MemoryConfig -from core.prompt.prompt_transform import PromptTransform -from core.prompt.utils.prompt_template_parser import PromptTemplateParser from models.model import AppMode if TYPE_CHECKING: diff --git a/api/core/prompt/utils/prompt_message_util.py b/api/core/prompt/utils/prompt_message_util.py index dbda749925..ba76eb0c4e 100644 --- a/api/core/prompt/utils/prompt_message_util.py +++ b/api/core/prompt/utils/prompt_message_util.py @@ -1,6 +1,7 @@ from collections.abc import Sequence from typing import Any, cast +from core.prompt.simple_prompt_transform import ModelMode from graphon.model_runtime.entities import ( AssistantPromptMessage, AudioPromptMessageContent, @@ -11,8 +12,6 @@ from graphon.model_runtime.entities import ( TextPromptMessageContent, ) -from core.prompt.simple_prompt_transform import ModelMode - class PromptMessageUtil: @staticmethod diff --git a/api/core/provider_manager.py b/api/core/provider_manager.py index 0f9b851e87..8969825be4 100644 --- a/api/core/provider_manager.py +++ b/api/core/provider_manager.py @@ -6,14 +6,6 @@ from collections.abc import Sequence from json import JSONDecodeError from typing import TYPE_CHECKING, Any -from graphon.model_runtime.entities.model_entities import ModelType -from graphon.model_runtime.entities.provider_entities import ( - ConfigurateMethod, - CredentialFormSchema, - FormType, - ProviderEntity, -) -from graphon.model_runtime.model_providers.model_provider_factory import ModelProviderFactory from pydantic import TypeAdapter from sqlalchemy import select from sqlalchemy.exc import IntegrityError @@ -41,6 +33,14 @@ from core.helper.position_helper import is_filtered from extensions import ext_hosting_provider from extensions.ext_database import db from extensions.ext_redis import redis_client +from graphon.model_runtime.entities.model_entities import ModelType +from graphon.model_runtime.entities.provider_entities import ( + ConfigurateMethod, + CredentialFormSchema, + FormType, + ProviderEntity, +) +from graphon.model_runtime.model_providers.model_provider_factory import ModelProviderFactory from models.provider import ( LoadBalancingModelConfig, Provider, diff --git a/api/core/rag/datasource/retrieval_service.py b/api/core/rag/datasource/retrieval_service.py index 4ab42743f6..780a42dbad 100644 --- a/api/core/rag/datasource/retrieval_service.py +++ b/api/core/rag/datasource/retrieval_service.py @@ -4,7 +4,6 @@ from concurrent.futures import ThreadPoolExecutor from typing import Any, NotRequired, TypedDict from flask import Flask, current_app -from graphon.model_runtime.entities.model_entities import ModelType from sqlalchemy import select from sqlalchemy.orm import Session, load_only @@ -24,6 +23,7 @@ from core.rag.rerank.rerank_type import RerankMode from core.rag.retrieval.retrieval_methods import RetrievalMethod from core.tools.signature import sign_upload_file from extensions.ext_database import db +from graphon.model_runtime.entities.model_entities import ModelType from models.dataset import ( ChildChunk, Dataset, diff --git a/api/core/rag/datasource/vdb/vector_factory.py b/api/core/rag/datasource/vdb/vector_factory.py index fa36c6ee19..1f82f7a081 100644 --- a/api/core/rag/datasource/vdb/vector_factory.py +++ b/api/core/rag/datasource/vdb/vector_factory.py @@ -4,7 +4,6 @@ import time from abc import ABC, abstractmethod from typing import Any -from graphon.model_runtime.entities.model_entities import ModelType from sqlalchemy import select from configs import dify_config @@ -19,6 +18,7 @@ from core.rag.models.document import Document from extensions.ext_database import db from extensions.ext_redis import redis_client from extensions.ext_storage import storage +from graphon.model_runtime.entities.model_entities import ModelType from models.dataset import Dataset, Whitelist from models.model import UploadFile @@ -144,8 +144,20 @@ class Vector: def get_vector_factory(vector_type: str) -> type[AbstractVectorFactory]: return get_vector_factory_class(vector_type) + @staticmethod + def _filter_empty_text_documents(documents: list[Document]) -> list[Document]: + filtered_documents = [document for document in documents if document.page_content.strip()] + skipped_count = len(documents) - len(filtered_documents) + if skipped_count: + logger.warning("skip %d empty documents before vector embedding", skipped_count) + return filtered_documents + def create(self, texts: list | None = None, **kwargs): if texts: + texts = self._filter_empty_text_documents(texts) + if not texts: + return + start = time.time() logger.info("start embedding %s texts %s", len(texts), start) batch_size = 1000 @@ -203,8 +215,14 @@ class Vector: logger.info("Embedding %s files took %s s", len(file_documents), time.time() - start) def add_texts(self, documents: list[Document], **kwargs): + documents = self._filter_empty_text_documents(documents) + if not documents: + return + if kwargs.get("duplicate_check", False): documents = self._filter_duplicate_texts(documents) + if not documents: + return embeddings = self._embeddings.embed_documents([document.page_content for document in documents]) self._vector_processor.create(texts=documents, embeddings=embeddings, **kwargs) diff --git a/api/core/rag/docstore/dataset_docstore.py b/api/core/rag/docstore/dataset_docstore.py index 69aaefa764..78305a6ac0 100644 --- a/api/core/rag/docstore/dataset_docstore.py +++ b/api/core/rag/docstore/dataset_docstore.py @@ -3,13 +3,13 @@ from __future__ import annotations from collections.abc import Sequence from typing import Any -from graphon.model_runtime.entities.model_entities import ModelType from sqlalchemy import delete, func, select from core.model_manager import ModelManager from core.rag.index_processor.constant.index_type import IndexTechniqueType from core.rag.models.document import AttachmentDocument, Document from extensions.ext_database import db +from graphon.model_runtime.entities.model_entities import ModelType from models.dataset import ChildChunk, Dataset, DocumentSegment, SegmentAttachmentBinding from models.enums import SegmentType diff --git a/api/core/rag/index_processor/processor/paragraph_index_processor.py b/api/core/rag/index_processor/processor/paragraph_index_processor.py index ace0b791e8..7ffa9afafd 100644 --- a/api/core/rag/index_processor/processor/paragraph_index_processor.py +++ b/api/core/rag/index_processor/processor/paragraph_index_processor.py @@ -7,16 +7,6 @@ from typing import Any, TypedDict, cast logger = logging.getLogger(__name__) -from graphon.file import File, FileTransferMethod, FileType, file_manager -from graphon.model_runtime.entities.llm_entities import LLMResult, LLMUsage -from graphon.model_runtime.entities.message_entities import ( - ImagePromptMessageContent, - PromptMessage, - PromptMessageContentUnionTypes, - TextPromptMessageContent, - UserPromptMessage, -) -from graphon.model_runtime.entities.model_entities import ModelFeature, ModelType from sqlalchemy import select from core.app.file_access import DatabaseFileAccessController @@ -43,6 +33,16 @@ from core.tools.utils.text_processing_utils import remove_leading_symbols from core.workflow.file_reference import build_file_reference from extensions.ext_database import db from factories.file_factory import build_from_mapping +from graphon.file import File, FileTransferMethod, FileType, file_manager +from graphon.model_runtime.entities.llm_entities import LLMResult, LLMUsage +from graphon.model_runtime.entities.message_entities import ( + ImagePromptMessageContent, + PromptMessage, + PromptMessageContentUnionTypes, + TextPromptMessageContent, + UserPromptMessage, +) +from graphon.model_runtime.entities.model_entities import ModelFeature, ModelType from libs import helper from models import UploadFile from models.account import Account diff --git a/api/core/rag/models/document.py b/api/core/rag/models/document.py index 087736d0b0..4ebf095904 100644 --- a/api/core/rag/models/document.py +++ b/api/core/rag/models/document.py @@ -2,9 +2,10 @@ from abc import ABC, abstractmethod from collections.abc import Sequence from typing import Any -from graphon.file import File from pydantic import BaseModel, Field +from graphon.file import File + class ChildDocument(BaseModel): """Class for storing a piece of text and associated metadata.""" diff --git a/api/core/rag/rerank/rerank_model.py b/api/core/rag/rerank/rerank_model.py index a8d37845a5..bce08f998f 100644 --- a/api/core/rag/rerank/rerank_model.py +++ b/api/core/rag/rerank/rerank_model.py @@ -1,8 +1,5 @@ import base64 -from graphon.model_runtime.entities.model_entities import ModelType -from graphon.model_runtime.entities.rerank_entities import MultimodalRerankInput, RerankResult - from core.model_manager import ModelInstance, ModelManager from core.rag.index_processor.constant.doc_type import DocType from core.rag.index_processor.constant.query_type import QueryType @@ -10,6 +7,8 @@ from core.rag.models.document import Document from core.rag.rerank.rerank_base import BaseRerankRunner from extensions.ext_database import db from extensions.ext_storage import storage +from graphon.model_runtime.entities.model_entities import ModelType +from graphon.model_runtime.entities.rerank_entities import MultimodalRerankInput, RerankResult from models.model import UploadFile diff --git a/api/core/rag/rerank/weight_rerank.py b/api/core/rag/rerank/weight_rerank.py index 49123e13d0..d0732b269a 100644 --- a/api/core/rag/rerank/weight_rerank.py +++ b/api/core/rag/rerank/weight_rerank.py @@ -2,7 +2,6 @@ import math from collections import Counter import numpy as np -from graphon.model_runtime.entities.model_entities import ModelType from core.model_manager import ModelManager from core.rag.datasource.keyword.jieba.jieba_keyword_table_handler import JiebaKeywordTableHandler @@ -12,6 +11,7 @@ from core.rag.index_processor.constant.query_type import QueryType from core.rag.models.document import Document from core.rag.rerank.entity.weight import VectorSetting, Weights from core.rag.rerank.rerank_base import BaseRerankRunner +from graphon.model_runtime.entities.model_entities import ModelType class WeightRerankRunner(BaseRerankRunner): diff --git a/api/core/rag/retrieval/router/multi_dataset_function_call_router.py b/api/core/rag/retrieval/router/multi_dataset_function_call_router.py index 66096a0a95..dd17545c86 100644 --- a/api/core/rag/retrieval/router/multi_dataset_function_call_router.py +++ b/api/core/rag/retrieval/router/multi_dataset_function_call_router.py @@ -1,10 +1,9 @@ from typing import Union -from graphon.model_runtime.entities.llm_entities import LLMResult, LLMUsage -from graphon.model_runtime.entities.message_entities import PromptMessageTool, SystemPromptMessage, UserPromptMessage - from core.app.entities.app_invoke_entities import ModelConfigWithCredentialsEntity from core.model_manager import ModelInstance +from graphon.model_runtime.entities.llm_entities import LLMResult, LLMUsage +from graphon.model_runtime.entities.message_entities import PromptMessageTool, SystemPromptMessage, UserPromptMessage class FunctionCallMultiDatasetRouter: diff --git a/api/core/repositories/celery_workflow_execution_repository.py b/api/core/repositories/celery_workflow_execution_repository.py index b07c63fdf0..e87d1cd6b2 100644 --- a/api/core/repositories/celery_workflow_execution_repository.py +++ b/api/core/repositories/celery_workflow_execution_repository.py @@ -7,11 +7,11 @@ providing improved performance by offloading database operations to background w import logging -from graphon.entities import WorkflowExecution from sqlalchemy.engine import Engine from sqlalchemy.orm import sessionmaker from core.repositories.factory import WorkflowExecutionRepository +from graphon.entities import WorkflowExecution from libs.helper import extract_tenant_id from models import Account, CreatorUserRole, EndUser from models.enums import WorkflowRunTriggeredFrom diff --git a/api/core/repositories/celery_workflow_node_execution_repository.py b/api/core/repositories/celery_workflow_node_execution_repository.py index cdb3af01a8..2451563317 100644 --- a/api/core/repositories/celery_workflow_node_execution_repository.py +++ b/api/core/repositories/celery_workflow_node_execution_repository.py @@ -8,7 +8,6 @@ providing improved performance by offloading database operations to background w import logging from collections.abc import Sequence -from graphon.entities import WorkflowNodeExecution from sqlalchemy.engine import Engine from sqlalchemy.orm import sessionmaker @@ -16,6 +15,7 @@ from core.repositories.factory import ( OrderConfig, WorkflowNodeExecutionRepository, ) +from graphon.entities import WorkflowNodeExecution from libs.helper import extract_tenant_id from models import Account, CreatorUserRole, EndUser from models.workflow import WorkflowNodeExecutionTriggeredFrom diff --git a/api/core/repositories/factory.py b/api/core/repositories/factory.py index ce3ad15759..4e83e70799 100644 --- a/api/core/repositories/factory.py +++ b/api/core/repositories/factory.py @@ -9,11 +9,11 @@ from collections.abc import Sequence from dataclasses import dataclass from typing import Literal, Protocol -from graphon.entities import WorkflowExecution, WorkflowNodeExecution from sqlalchemy.engine import Engine from sqlalchemy.orm import sessionmaker from configs import dify_config +from graphon.entities import WorkflowExecution, WorkflowNodeExecution from libs.module_loading import import_string from models import Account, EndUser from models.enums import WorkflowRunTriggeredFrom diff --git a/api/core/repositories/sqlalchemy_workflow_execution_repository.py b/api/core/repositories/sqlalchemy_workflow_execution_repository.py index d74cc8f231..6be3902317 100644 --- a/api/core/repositories/sqlalchemy_workflow_execution_repository.py +++ b/api/core/repositories/sqlalchemy_workflow_execution_repository.py @@ -5,13 +5,13 @@ SQLAlchemy implementation of the WorkflowExecutionRepository. import json import logging -from graphon.entities import WorkflowExecution -from graphon.enums import WorkflowExecutionStatus, WorkflowType -from graphon.workflow_type_encoder import WorkflowRuntimeTypeConverter from sqlalchemy.engine import Engine from sqlalchemy.orm import sessionmaker from core.repositories.factory import WorkflowExecutionRepository +from graphon.entities import WorkflowExecution +from graphon.enums import WorkflowExecutionStatus, WorkflowType +from graphon.workflow_type_encoder import WorkflowRuntimeTypeConverter from libs.helper import extract_tenant_id from models import ( Account, diff --git a/api/core/repositories/sqlalchemy_workflow_node_execution_repository.py b/api/core/repositories/sqlalchemy_workflow_node_execution_repository.py index 13e885672a..b036687bc9 100644 --- a/api/core/repositories/sqlalchemy_workflow_node_execution_repository.py +++ b/api/core/repositories/sqlalchemy_workflow_node_execution_repository.py @@ -10,10 +10,6 @@ from concurrent.futures import ThreadPoolExecutor from typing import Any import psycopg2.errors -from graphon.entities import WorkflowNodeExecution -from graphon.enums import WorkflowNodeExecutionMetadataKey, WorkflowNodeExecutionStatus -from graphon.model_runtime.utils.encoders import jsonable_encoder -from graphon.workflow_type_encoder import WorkflowRuntimeTypeConverter from sqlalchemy import UnaryExpression, asc, desc, select from sqlalchemy.engine import Engine from sqlalchemy.exc import IntegrityError @@ -23,6 +19,10 @@ from tenacity import before_sleep_log, retry, retry_if_exception, stop_after_att from configs import dify_config from core.repositories.factory import OrderConfig, WorkflowNodeExecutionRepository from extensions.ext_storage import storage +from graphon.entities import WorkflowNodeExecution +from graphon.enums import WorkflowNodeExecutionMetadataKey, WorkflowNodeExecutionStatus +from graphon.model_runtime.utils.encoders import jsonable_encoder +from graphon.workflow_type_encoder import WorkflowRuntimeTypeConverter from libs.helper import extract_tenant_id from libs.uuid_utils import uuidv7 from models import ( diff --git a/api/core/tools/builtin_tool/providers/audio/tools/asr.py b/api/core/tools/builtin_tool/providers/audio/tools/asr.py index e539074303..95660ab93b 100644 --- a/api/core/tools/builtin_tool/providers/audio/tools/asr.py +++ b/api/core/tools/builtin_tool/providers/audio/tools/asr.py @@ -2,15 +2,14 @@ import io from collections.abc import Generator from typing import Any -from graphon.file import FileType -from graphon.file.file_manager import download -from graphon.model_runtime.entities.model_entities import ModelType - from core.model_manager import ModelManager from core.plugin.entities.parameters import PluginParameterOption from core.tools.builtin_tool.tool import BuiltinTool from core.tools.entities.common_entities import I18nObject from core.tools.entities.tool_entities import ToolInvokeMessage, ToolParameter +from graphon.file import FileType +from graphon.file.file_manager import download +from graphon.model_runtime.entities.model_entities import ModelType from services.model_provider_service import ModelProviderService diff --git a/api/core/tools/builtin_tool/providers/audio/tools/tts.py b/api/core/tools/builtin_tool/providers/audio/tools/tts.py index f49c669fe0..ac3820f1ab 100644 --- a/api/core/tools/builtin_tool/providers/audio/tools/tts.py +++ b/api/core/tools/builtin_tool/providers/audio/tools/tts.py @@ -2,13 +2,12 @@ import io from collections.abc import Generator from typing import Any -from graphon.model_runtime.entities.model_entities import ModelPropertyKey, ModelType - from core.model_manager import ModelManager from core.plugin.entities.parameters import PluginParameterOption from core.tools.builtin_tool.tool import BuiltinTool from core.tools.entities.common_entities import I18nObject from core.tools.entities.tool_entities import ToolInvokeMessage, ToolParameter +from graphon.model_runtime.entities.model_entities import ModelPropertyKey, ModelType from services.model_provider_service import ModelProviderService diff --git a/api/core/tools/builtin_tool/tool.py b/api/core/tools/builtin_tool/tool.py index 14af63a962..d41503e1e6 100644 --- a/api/core/tools/builtin_tool/tool.py +++ b/api/core/tools/builtin_tool/tool.py @@ -1,12 +1,11 @@ from __future__ import annotations -from graphon.model_runtime.entities.llm_entities import LLMResult -from graphon.model_runtime.entities.message_entities import PromptMessage, SystemPromptMessage, UserPromptMessage - from core.tools.__base.tool import Tool from core.tools.__base.tool_runtime import ToolRuntime from core.tools.entities.tool_entities import ToolProviderType from core.tools.utils.model_invocation_utils import ModelInvocationUtils +from graphon.model_runtime.entities.llm_entities import LLMResult +from graphon.model_runtime.entities.message_entities import PromptMessage, SystemPromptMessage, UserPromptMessage _SUMMARY_PROMPT = """You are a professional language researcher, you are interested in the language and you can quickly aimed at the main point of an webpage and reproduce it in your own words but diff --git a/api/core/tools/custom_tool/tool.py b/api/core/tools/custom_tool/tool.py index 0a2c37c563..168e5f4493 100644 --- a/api/core/tools/custom_tool/tool.py +++ b/api/core/tools/custom_tool/tool.py @@ -6,7 +6,6 @@ from typing import Any, Union from urllib.parse import urlencode import httpx -from graphon.file.file_manager import download from core.helper import ssrf_proxy from core.tools.__base.tool import Tool @@ -14,6 +13,7 @@ from core.tools.__base.tool_runtime import ToolRuntime from core.tools.entities.tool_bundle import ApiToolBundle from core.tools.entities.tool_entities import ToolEntity, ToolInvokeMessage, ToolProviderType from core.tools.errors import ToolInvokeError, ToolParameterValidationError, ToolProviderCredentialValidationError +from graphon.file.file_manager import download API_TOOL_DEFAULT_TIMEOUT = ( int(getenv("API_TOOL_DEFAULT_CONNECT_TIMEOUT", "10")), diff --git a/api/core/tools/entities/api_entities.py b/api/core/tools/entities/api_entities.py index 410ec72baf..42a88c0003 100644 --- a/api/core/tools/entities/api_entities.py +++ b/api/core/tools/entities/api_entities.py @@ -2,7 +2,6 @@ from collections.abc import Mapping from datetime import datetime from typing import Any, Literal -from graphon.model_runtime.utils.encoders import jsonable_encoder from pydantic import BaseModel, Field, field_validator from core.entities.mcp_provider import MCPAuthentication, MCPConfiguration @@ -10,6 +9,7 @@ from core.plugin.entities.plugin_daemon import CredentialType from core.tools.__base.tool import ToolParameter from core.tools.entities.common_entities import I18nObject from core.tools.entities.tool_entities import ToolProviderType +from graphon.model_runtime.utils.encoders import jsonable_encoder class ToolApiEntity(BaseModel): diff --git a/api/core/tools/mcp_tool/tool.py b/api/core/tools/mcp_tool/tool.py index f6d09472b3..00fc8a8282 100644 --- a/api/core/tools/mcp_tool/tool.py +++ b/api/core/tools/mcp_tool/tool.py @@ -6,8 +6,6 @@ import logging from collections.abc import Generator, Mapping from typing import Any, cast -from graphon.model_runtime.entities.llm_entities import LLMUsage, LLMUsageMetadata - from core.mcp.auth_client import MCPClientWithAuthRetry from core.mcp.error import MCPConnectionError from core.mcp.types import ( @@ -23,6 +21,7 @@ from core.tools.__base.tool import Tool from core.tools.__base.tool_runtime import ToolRuntime from core.tools.entities.tool_entities import ToolEntity, ToolInvokeMessage, ToolProviderType from core.tools.errors import ToolInvokeError +from graphon.model_runtime.entities.llm_entities import LLMUsage, LLMUsageMetadata logger = logging.getLogger(__name__) diff --git a/api/core/tools/tool_engine.py b/api/core/tools/tool_engine.py index d060fa8b49..3caacb8706 100644 --- a/api/core/tools/tool_engine.py +++ b/api/core/tools/tool_engine.py @@ -7,7 +7,6 @@ from datetime import UTC, datetime from mimetypes import guess_type from typing import Any, Union, cast -from graphon.file import FileTransferMethod, FileType from yarl import URL from core.app.entities.app_invoke_entities import InvokeFrom @@ -33,6 +32,7 @@ from core.tools.errors import ( from core.tools.utils.message_transformer import ToolFileMessageTransformer, safe_json_value from core.tools.workflow_as_tool.tool import WorkflowTool from extensions.ext_database import db +from graphon.file import FileTransferMethod, FileType from models.enums import CreatorUserRole, MessageFileBelongsTo from models.model import Message, MessageFile diff --git a/api/core/tools/tool_file_manager.py b/api/core/tools/tool_file_manager.py index ada3ed7f43..c87e8a3ae0 100644 --- a/api/core/tools/tool_file_manager.py +++ b/api/core/tools/tool_file_manager.py @@ -9,7 +9,6 @@ from mimetypes import guess_extension, guess_type from uuid import uuid4 import httpx -from graphon.file import File, FileTransferMethod, get_file_type_by_mime_type from sqlalchemy import select from configs import dify_config @@ -17,6 +16,7 @@ from core.db.session_factory import session_factory from core.helper import ssrf_proxy from core.workflow.file_reference import build_file_reference from extensions.ext_storage import storage +from graphon.file import File, FileTransferMethod, get_file_type_by_mime_type from models.model import MessageFile from models.tools import ToolFile diff --git a/api/core/tools/tool_manager.py b/api/core/tools/tool_manager.py index 31964b6702..87cf6d7085 100644 --- a/api/core/tools/tool_manager.py +++ b/api/core/tools/tool_manager.py @@ -8,7 +8,6 @@ from threading import Lock from typing import TYPE_CHECKING, Any, Literal, Protocol, cast import sqlalchemy as sa -from graphon.runtime import VariablePool from pydantic import TypeAdapter from sqlalchemy import select from sqlalchemy.orm import Session @@ -29,14 +28,13 @@ from core.tools.plugin_tool.tool import PluginTool from core.tools.utils.uuid_utils import is_valid_uuid from core.tools.workflow_as_tool.provider import WorkflowToolProviderController from extensions.ext_database import db +from graphon.runtime import VariablePool from models.provider_ids import ToolProviderID from services.tools.mcp_tools_manage_service import MCPToolManageService if TYPE_CHECKING: pass -from graphon.model_runtime.utils.encoders import jsonable_encoder - from core.agent.entities import AgentToolEntity from core.app.entities.app_invoke_entities import InvokeFrom from core.helper.module_import_helper import load_single_subclass_from_source @@ -62,6 +60,7 @@ from core.tools.tool_label_manager import ToolLabelManager from core.tools.utils.configuration import ToolParameterConfigurationManager from core.tools.utils.encryption import create_provider_encrypter, create_tool_provider_encrypter from core.tools.workflow_as_tool.tool import WorkflowTool +from graphon.model_runtime.utils.encoders import jsonable_encoder from models.tools import ApiToolProvider, BuiltinToolProvider, WorkflowToolProvider from services.tools.tools_transform_service import ToolTransformService diff --git a/api/core/tools/utils/dataset_retriever/dataset_multi_retriever_tool.py b/api/core/tools/utils/dataset_retriever/dataset_multi_retriever_tool.py index 03e3c5918d..b6890b2611 100644 --- a/api/core/tools/utils/dataset_retriever/dataset_multi_retriever_tool.py +++ b/api/core/tools/utils/dataset_retriever/dataset_multi_retriever_tool.py @@ -1,7 +1,6 @@ import threading from flask import Flask, current_app -from graphon.model_runtime.entities.model_entities import ModelType from pydantic import BaseModel, Field from sqlalchemy import select @@ -15,6 +14,7 @@ from core.rag.rerank.rerank_model import RerankModelRunner from core.rag.retrieval.retrieval_methods import RetrievalMethod from core.tools.utils.dataset_retriever.dataset_retriever_base_tool import DatasetRetrieverBaseTool from extensions.ext_database import db +from graphon.model_runtime.entities.model_entities import ModelType from models.dataset import Dataset, Document, DocumentSegment default_retrieval_model: DefaultRetrievalModelDict = { diff --git a/api/core/tools/utils/message_transformer.py b/api/core/tools/utils/message_transformer.py index 50a67dd70f..5679466cbc 100644 --- a/api/core/tools/utils/message_transformer.py +++ b/api/core/tools/utils/message_transformer.py @@ -9,11 +9,11 @@ from uuid import UUID import numpy as np import pytz -from graphon.file import File, FileTransferMethod, FileType from core.tools.entities.tool_entities import ToolInvokeMessage from core.tools.tool_file_manager import ToolFileManager from core.workflow.file_reference import parse_file_reference +from graphon.file import File, FileTransferMethod, FileType from libs.login import current_user from models import Account diff --git a/api/core/tools/utils/model_invocation_utils.py b/api/core/tools/utils/model_invocation_utils.py index e534a9415a..a3623d4ecd 100644 --- a/api/core/tools/utils/model_invocation_utils.py +++ b/api/core/tools/utils/model_invocation_utils.py @@ -8,6 +8,9 @@ import json from decimal import Decimal from typing import cast +from core.model_manager import ModelManager +from core.tools.entities.tool_entities import ToolProviderType +from extensions.ext_database import db from graphon.model_runtime.entities.llm_entities import LLMResult from graphon.model_runtime.entities.message_entities import PromptMessage from graphon.model_runtime.entities.model_entities import ModelPropertyKey, ModelType @@ -20,10 +23,6 @@ from graphon.model_runtime.errors.invoke import ( ) from graphon.model_runtime.model_providers.base.large_language_model import LargeLanguageModel from graphon.model_runtime.utils.encoders import jsonable_encoder - -from core.model_manager import ModelManager -from core.tools.entities.tool_entities import ToolProviderType -from extensions.ext_database import db from models.tools import ToolModelInvoke diff --git a/api/core/tools/utils/workflow_configuration_sync.py b/api/core/tools/utils/workflow_configuration_sync.py index 2159eb8638..45718cadb6 100644 --- a/api/core/tools/utils/workflow_configuration_sync.py +++ b/api/core/tools/utils/workflow_configuration_sync.py @@ -1,13 +1,12 @@ from collections.abc import Mapping, Sequence from typing import Any +from core.tools.entities.tool_entities import WorkflowToolParameterConfiguration +from core.tools.errors import WorkflowToolHumanInputNotSupportedError from graphon.enums import BuiltinNodeTypes from graphon.nodes.base.entities import OutputVariableEntity from graphon.variables.input_entities import VariableEntity -from core.tools.entities.tool_entities import WorkflowToolParameterConfiguration -from core.tools.errors import WorkflowToolHumanInputNotSupportedError - class WorkflowToolConfigurationUtils: @classmethod diff --git a/api/core/tools/workflow_as_tool/provider.py b/api/core/tools/workflow_as_tool/provider.py index a01004448a..5905fd919e 100644 --- a/api/core/tools/workflow_as_tool/provider.py +++ b/api/core/tools/workflow_as_tool/provider.py @@ -2,7 +2,6 @@ from __future__ import annotations from collections.abc import Mapping -from graphon.variables.input_entities import VariableEntity, VariableEntityType from pydantic import Field from sqlalchemy import select from sqlalchemy.orm import Session @@ -25,6 +24,7 @@ from core.tools.entities.tool_entities import ( from core.tools.utils.workflow_configuration_sync import WorkflowToolConfigurationUtils from core.tools.workflow_as_tool.tool import WorkflowTool from extensions.ext_database import db +from graphon.variables.input_entities import VariableEntity, VariableEntityType from models.account import Account from models.model import App, AppMode from models.tools import WorkflowToolProvider diff --git a/api/core/tools/workflow_as_tool/tool.py b/api/core/tools/workflow_as_tool/tool.py index e510cfcead..cd8c6352b5 100644 --- a/api/core/tools/workflow_as_tool/tool.py +++ b/api/core/tools/workflow_as_tool/tool.py @@ -5,8 +5,6 @@ import logging from collections.abc import Generator, Mapping, Sequence from typing import Any, cast -from graphon.file import FILE_MODEL_IDENTITY, File, FileTransferMethod -from graphon.model_runtime.entities.llm_entities import LLMUsage, LLMUsageMetadata from sqlalchemy import select from core.app.file_access import DatabaseFileAccessController @@ -22,6 +20,8 @@ from core.tools.entities.tool_entities import ( from core.tools.errors import ToolInvokeError from core.workflow.file_reference import resolve_file_record_id from factories.file_factory import build_from_mapping +from graphon.file import FILE_MODEL_IDENTITY, File, FileTransferMethod +from graphon.model_runtime.entities.llm_entities import LLMUsage, LLMUsageMetadata from models import Account, Tenant from models.model import App, EndUser from models.utils.file_input_compat import build_file_from_stored_mapping diff --git a/api/core/trigger/debug/event_selectors.py b/api/core/trigger/debug/event_selectors.py index 61d1cd8540..24c1271488 100644 --- a/api/core/trigger/debug/event_selectors.py +++ b/api/core/trigger/debug/event_selectors.py @@ -8,7 +8,6 @@ from collections.abc import Mapping from datetime import datetime from typing import Any -from graphon.entities.graph_config import NodeConfigDict from pydantic import BaseModel from core.plugin.entities.request import TriggerInvokeEventResponse @@ -28,6 +27,7 @@ from core.trigger.debug.events import ( from core.workflow.nodes.trigger_plugin.entities import TriggerEventNodeData from core.workflow.nodes.trigger_schedule.entities import ScheduleConfig from extensions.ext_redis import redis_client +from graphon.entities.graph_config import NodeConfigDict from libs.datetime_utils import ensure_naive_utc, naive_utc_now from libs.schedule_utils import calculate_next_run_at from models.model import App diff --git a/api/core/workflow/node_factory.py b/api/core/workflow/node_factory.py index de4eae1b22..895953a3c1 100644 --- a/api/core/workflow/node_factory.py +++ b/api/core/workflow/node_factory.py @@ -365,7 +365,8 @@ class DifyNodeFactory(NodeFactory): (including pydantic ValidationError, which subclasses ValueError), if node type is unknown, or if no implementation exists for the resolved version """ - typed_node_config = NodeConfigDictAdapter.validate_python(adapt_node_config_for_graph(node_config)) + adapted_node_config = adapt_node_config_for_graph(node_config) + typed_node_config = NodeConfigDictAdapter.validate_python(adapted_node_config) node_id = typed_node_config["id"] node_data = typed_node_config["data"] node_class = self._resolve_node_class(node_type=node_data.type, node_version=str(node_data.version)) @@ -373,6 +374,11 @@ class DifyNodeFactory(NodeFactory): # Re-validate using the resolved node class so workflow-local node schemas # stay explicit and constructors receive the concrete typed payload. resolved_node_data = self._validate_resolved_node_data(node_class, node_data) + config_for_node_init: BaseNodeData | dict[str, Any] + if isinstance(resolved_node_data, BaseNodeData): + config_for_node_init = resolved_node_data.model_dump(mode="python", by_alias=True) + else: + config_for_node_init = resolved_node_data node_type = node_data.type node_init_kwargs_factories: Mapping[NodeType, Callable[[], dict[str, object]]] = { BuiltinNodeTypes.CODE: lambda: { @@ -442,7 +448,7 @@ class DifyNodeFactory(NodeFactory): node_init_kwargs = node_init_kwargs_factories.get(node_type, lambda: {})() return node_class( node_id=node_id, - config=resolved_node_data, + config=config_for_node_init, graph_init_params=self.graph_init_params, graph_runtime_state=self.graph_runtime_state, **node_init_kwargs, @@ -474,10 +480,7 @@ class DifyNodeFactory(NodeFactory): include_retriever_attachment_loader: bool, include_jinja2_template_renderer: bool, ) -> dict[str, object]: - validated_node_data = cast( - LLMCompatibleNodeData, - self._validate_resolved_node_data(node_class=node_class, node_data=node_data), - ) + validated_node_data = cast(LLMCompatibleNodeData, node_data) model_instance = self._build_model_instance_for_llm_node(validated_node_data) node_init_kwargs: dict[str, object] = { "credentials_provider": self._llm_credentials_provider, diff --git a/api/core/workflow/nodes/agent/entities.py b/api/core/workflow/nodes/agent/entities.py index c52aad150b..51452c29a3 100644 --- a/api/core/workflow/nodes/agent/entities.py +++ b/api/core/workflow/nodes/agent/entities.py @@ -1,12 +1,12 @@ from enum import IntEnum, StrEnum, auto from typing import Any, Literal, Union -from graphon.entities.base_node_data import BaseNodeData -from graphon.enums import BuiltinNodeTypes, NodeType from pydantic import BaseModel from core.prompt.entities.advanced_prompt_entities import MemoryConfig from core.tools.entities.tool_entities import ToolSelector +from graphon.entities.base_node_data import BaseNodeData +from graphon.enums import BuiltinNodeTypes, NodeType class AgentNodeData(BaseNodeData): diff --git a/api/core/workflow/nodes/datasource/entities.py b/api/core/workflow/nodes/datasource/entities.py index cad32f8d5b..28966f2392 100644 --- a/api/core/workflow/nodes/datasource/entities.py +++ b/api/core/workflow/nodes/datasource/entities.py @@ -1,9 +1,10 @@ from typing import Any, Literal, Union +from pydantic import BaseModel, field_validator +from pydantic_core.core_schema import ValidationInfo + from graphon.entities.base_node_data import BaseNodeData from graphon.enums import BuiltinNodeTypes, NodeType -from pydantic import BaseModel, field_validator -from pydantic_core.core_schema import ValidationInfo class DatasourceEntity(BaseModel): diff --git a/api/core/workflow/nodes/knowledge_index/entities.py b/api/core/workflow/nodes/knowledge_index/entities.py index 04a10f9257..260881e49c 100644 --- a/api/core/workflow/nodes/knowledge_index/entities.py +++ b/api/core/workflow/nodes/knowledge_index/entities.py @@ -1,13 +1,13 @@ from typing import Union -from graphon.entities.base_node_data import BaseNodeData -from graphon.enums import NodeType from pydantic import BaseModel from core.rag.entities import RerankingModelConfig, WeightedScoreConfig from core.rag.index_processor.index_processor_base import SummaryIndexSettingDict from core.rag.retrieval.retrieval_methods import RetrievalMethod from core.workflow.nodes.knowledge_index import KNOWLEDGE_INDEX_NODE_TYPE +from graphon.entities.base_node_data import BaseNodeData +from graphon.enums import NodeType class RetrievalSetting(BaseModel): diff --git a/api/core/workflow/nodes/knowledge_retrieval/entities.py b/api/core/workflow/nodes/knowledge_retrieval/entities.py index 460ec693ce..3825f526a2 100644 --- a/api/core/workflow/nodes/knowledge_retrieval/entities.py +++ b/api/core/workflow/nodes/knowledge_retrieval/entities.py @@ -1,11 +1,11 @@ from typing import Literal -from graphon.entities.base_node_data import BaseNodeData -from graphon.enums import BuiltinNodeTypes, NodeType -from graphon.nodes.llm.entities import ModelConfig, VisionConfig from pydantic import BaseModel, Field from core.rag.entities import Condition, MetadataFilteringCondition, RerankingModelConfig, WeightedScoreConfig +from graphon.entities.base_node_data import BaseNodeData +from graphon.enums import BuiltinNodeTypes, NodeType +from graphon.nodes.llm.entities import ModelConfig, VisionConfig __all__ = ["Condition"] diff --git a/api/core/workflow/nodes/knowledge_retrieval/knowledge_retrieval_node.py b/api/core/workflow/nodes/knowledge_retrieval/knowledge_retrieval_node.py index 6109ced8e2..25f73e446d 100644 --- a/api/core/workflow/nodes/knowledge_retrieval/knowledge_retrieval_node.py +++ b/api/core/workflow/nodes/knowledge_retrieval/knowledge_retrieval_node.py @@ -8,6 +8,11 @@ import logging from collections.abc import Mapping, Sequence from typing import TYPE_CHECKING, Any, Literal +from core.app.app_config.entities import DatasetRetrieveConfigEntity +from core.app.entities.app_invoke_entities import DIFY_RUN_CONTEXT_KEY, DifyRunContext +from core.rag.data_post_processor.data_post_processor import RerankingModelDict, WeightsDict +from core.rag.retrieval.dataset_retrieval import DatasetRetrieval +from core.workflow.file_reference import parse_file_reference from graphon.entities import GraphInitParams from graphon.enums import ( BuiltinNodeTypes, @@ -26,12 +31,6 @@ from graphon.variables import ( ) from graphon.variables.segments import ArrayObjectSegment -from core.app.app_config.entities import DatasetRetrieveConfigEntity -from core.app.entities.app_invoke_entities import DIFY_RUN_CONTEXT_KEY, DifyRunContext -from core.rag.data_post_processor.data_post_processor import RerankingModelDict, WeightsDict -from core.rag.retrieval.dataset_retrieval import DatasetRetrieval -from core.workflow.file_reference import parse_file_reference - from .entities import ( Condition, KnowledgeRetrievalNodeData, diff --git a/api/core/workflow/nodes/trigger_plugin/entities.py b/api/core/workflow/nodes/trigger_plugin/entities.py index bf5be2379a..23ed2cd408 100644 --- a/api/core/workflow/nodes/trigger_plugin/entities.py +++ b/api/core/workflow/nodes/trigger_plugin/entities.py @@ -1,12 +1,12 @@ from collections.abc import Mapping from typing import Any, Literal, Union -from graphon.entities.base_node_data import BaseNodeData -from graphon.enums import NodeType from pydantic import BaseModel, Field, ValidationInfo, field_validator from core.trigger.constants import TRIGGER_PLUGIN_NODE_TYPE from core.trigger.entities.entities import EventParameter +from graphon.entities.base_node_data import BaseNodeData +from graphon.enums import NodeType from .exc import TriggerEventParameterError diff --git a/api/core/workflow/nodes/trigger_plugin/trigger_event_node.py b/api/core/workflow/nodes/trigger_plugin/trigger_event_node.py index e50de11bb9..c848a86255 100644 --- a/api/core/workflow/nodes/trigger_plugin/trigger_event_node.py +++ b/api/core/workflow/nodes/trigger_plugin/trigger_event_node.py @@ -1,13 +1,12 @@ from collections.abc import Mapping from typing import Any +from core.trigger.constants import TRIGGER_PLUGIN_NODE_TYPE +from core.workflow.variable_prefixes import SYSTEM_VARIABLE_NODE_ID from graphon.enums import NodeExecutionType, WorkflowNodeExecutionMetadataKey, WorkflowNodeExecutionStatus from graphon.node_events import NodeRunResult from graphon.nodes.base.node import Node -from core.trigger.constants import TRIGGER_PLUGIN_NODE_TYPE -from core.workflow.variable_prefixes import SYSTEM_VARIABLE_NODE_ID - from .entities import TriggerEventNodeData diff --git a/api/core/workflow/nodes/trigger_schedule/entities.py b/api/core/workflow/nodes/trigger_schedule/entities.py index 04f1f7e6bb..683c8d420f 100644 --- a/api/core/workflow/nodes/trigger_schedule/entities.py +++ b/api/core/workflow/nodes/trigger_schedule/entities.py @@ -1,10 +1,10 @@ from typing import Any, Literal, Union -from graphon.entities.base_node_data import BaseNodeData -from graphon.enums import NodeType from pydantic import BaseModel, Field from core.trigger.constants import TRIGGER_SCHEDULE_NODE_TYPE +from graphon.entities.base_node_data import BaseNodeData +from graphon.enums import NodeType class TriggerScheduleNodeData(BaseNodeData): diff --git a/api/core/workflow/nodes/trigger_schedule/trigger_schedule_node.py b/api/core/workflow/nodes/trigger_schedule/trigger_schedule_node.py index a9753ab387..b46cc76a6e 100644 --- a/api/core/workflow/nodes/trigger_schedule/trigger_schedule_node.py +++ b/api/core/workflow/nodes/trigger_schedule/trigger_schedule_node.py @@ -1,11 +1,10 @@ from collections.abc import Mapping -from graphon.enums import NodeExecutionType, WorkflowNodeExecutionStatus -from graphon.node_events import NodeRunResult -from graphon.nodes.base.node import Node - from core.trigger.constants import TRIGGER_SCHEDULE_NODE_TYPE from core.workflow.variable_prefixes import SYSTEM_VARIABLE_NODE_ID +from graphon.enums import NodeExecutionType, WorkflowNodeExecutionStatus +from graphon.node_events import NodeRunResult +from graphon.nodes.base.node import Node from .entities import TriggerScheduleNodeData diff --git a/api/core/workflow/nodes/trigger_webhook/entities.py b/api/core/workflow/nodes/trigger_webhook/entities.py index a30f877e4b..b261039448 100644 --- a/api/core/workflow/nodes/trigger_webhook/entities.py +++ b/api/core/workflow/nodes/trigger_webhook/entities.py @@ -1,12 +1,12 @@ from collections.abc import Sequence from enum import StrEnum -from graphon.entities.base_node_data import BaseNodeData -from graphon.enums import NodeType -from graphon.variables.types import SegmentType from pydantic import BaseModel, Field, field_validator from core.trigger.constants import TRIGGER_WEBHOOK_NODE_TYPE +from graphon.entities.base_node_data import BaseNodeData +from graphon.enums import NodeType +from graphon.variables.types import SegmentType _WEBHOOK_HEADER_ALLOWED_TYPES: frozenset[SegmentType] = frozenset((SegmentType.STRING,)) diff --git a/api/core/workflow/nodes/trigger_webhook/node.py b/api/core/workflow/nodes/trigger_webhook/node.py index d942a718cc..13c4f05bfd 100644 --- a/api/core/workflow/nodes/trigger_webhook/node.py +++ b/api/core/workflow/nodes/trigger_webhook/node.py @@ -2,6 +2,10 @@ import logging from collections.abc import Mapping from typing import Any +from core.trigger.constants import TRIGGER_WEBHOOK_NODE_TYPE +from core.workflow.file_reference import resolve_file_record_id +from core.workflow.variable_prefixes import SYSTEM_VARIABLE_NODE_ID +from factories.variable_factory import build_segment_with_type from graphon.enums import NodeExecutionType, WorkflowNodeExecutionStatus from graphon.file import FileTransferMethod from graphon.node_events import NodeRunResult @@ -10,11 +14,6 @@ from graphon.nodes.protocols import FileReferenceFactoryProtocol from graphon.variables.types import SegmentType from graphon.variables.variables import FileVariable -from core.trigger.constants import TRIGGER_WEBHOOK_NODE_TYPE -from core.workflow.file_reference import resolve_file_record_id -from core.workflow.variable_prefixes import SYSTEM_VARIABLE_NODE_ID -from factories.variable_factory import build_segment_with_type - from .entities import ContentType, WebhookData logger = logging.getLogger(__name__) diff --git a/api/core/workflow/snippet_start.py b/api/core/workflow/snippet_start.py index 37b80450b8..bba065aa0f 100644 --- a/api/core/workflow/snippet_start.py +++ b/api/core/workflow/snippet_start.py @@ -8,7 +8,6 @@ runtime-only snippet Start node as compatible with the legacy ``start`` id. from __future__ import annotations - LEGACY_START_NODE_ID = "start" SNIPPET_VIRTUAL_START_NODE_ID = "__snippet_virtual_start__" diff --git a/api/events/event_handlers/delete_tool_parameters_cache_when_sync_draft_workflow.py b/api/events/event_handlers/delete_tool_parameters_cache_when_sync_draft_workflow.py index 1f3866ab73..f1196445ed 100644 --- a/api/events/event_handlers/delete_tool_parameters_cache_when_sync_draft_workflow.py +++ b/api/events/event_handlers/delete_tool_parameters_cache_when_sync_draft_workflow.py @@ -1,13 +1,12 @@ import logging -from graphon.nodes import BuiltinNodeTypes -from graphon.nodes.tool.entities import ToolEntity - from core.tools.entities.tool_entities import ToolProviderType from core.tools.tool_manager import ToolManager from core.tools.utils.configuration import ToolParameterConfigurationManager from core.workflow.human_input_adapter import adapt_node_config_for_graph from events.app_event import app_draft_workflow_was_synced +from graphon.nodes import BuiltinNodeTypes +from graphon.nodes.tool.entities import ToolEntity logger = logging.getLogger(__name__) diff --git a/api/events/event_handlers/update_app_dataset_join_when_app_published_workflow_updated.py b/api/events/event_handlers/update_app_dataset_join_when_app_published_workflow_updated.py index 86b5b2bbf0..6769b94cde 100644 --- a/api/events/event_handlers/update_app_dataset_join_when_app_published_workflow_updated.py +++ b/api/events/event_handlers/update_app_dataset_join_when_app_published_workflow_updated.py @@ -1,11 +1,11 @@ from typing import cast -from graphon.nodes import BuiltinNodeTypes from sqlalchemy import delete, select from core.workflow.nodes.knowledge_retrieval.entities import KnowledgeRetrievalNodeData from events.app_event import app_published_workflow_was_updated from extensions.ext_database import db +from graphon.nodes import BuiltinNodeTypes from models.dataset import AppDatasetJoin from models.workflow import Workflow diff --git a/api/extensions/ext_sentry.py b/api/extensions/ext_sentry.py index 5cc58f27c4..69d1f1ab07 100644 --- a/api/extensions/ext_sentry.py +++ b/api/extensions/ext_sentry.py @@ -5,11 +5,12 @@ from dify_app import DifyApp def init_app(app: DifyApp): if dify_config.SENTRY_DSN: import sentry_sdk - from graphon.model_runtime.errors.invoke import InvokeRateLimitError from sentry_sdk.integrations.celery import CeleryIntegration from sentry_sdk.integrations.flask import FlaskIntegration from werkzeug.exceptions import HTTPException + from graphon.model_runtime.errors.invoke import InvokeRateLimitError + try: from langfuse._utils import parse_error diff --git a/api/extensions/logstore/repositories/logstore_api_workflow_node_execution_repository.py b/api/extensions/logstore/repositories/logstore_api_workflow_node_execution_repository.py index db599c5d49..64ff0f0674 100644 --- a/api/extensions/logstore/repositories/logstore_api_workflow_node_execution_repository.py +++ b/api/extensions/logstore/repositories/logstore_api_workflow_node_execution_repository.py @@ -11,12 +11,12 @@ from collections.abc import Sequence from datetime import datetime from typing import Any -from graphon.enums import WorkflowNodeExecutionStatus from sqlalchemy.orm import sessionmaker from extensions.logstore.aliyun_logstore import AliyunLogStore from extensions.logstore.repositories import safe_float, safe_int from extensions.logstore.sql_escape import escape_identifier, escape_logstore_query_value +from graphon.enums import WorkflowNodeExecutionStatus from models.enums import CreatorUserRole from models.workflow import WorkflowNodeExecutionModel, WorkflowNodeExecutionTriggeredFrom from repositories.api_workflow_node_execution_repository import DifyAPIWorkflowNodeExecutionRepository diff --git a/api/extensions/logstore/repositories/logstore_api_workflow_run_repository.py b/api/extensions/logstore/repositories/logstore_api_workflow_run_repository.py index 2745141431..7f77a0437a 100644 --- a/api/extensions/logstore/repositories/logstore_api_workflow_run_repository.py +++ b/api/extensions/logstore/repositories/logstore_api_workflow_run_repository.py @@ -20,12 +20,12 @@ from collections.abc import Sequence from datetime import datetime from typing import Any, cast -from graphon.enums import WorkflowExecutionStatus from sqlalchemy.orm import sessionmaker from extensions.logstore.aliyun_logstore import AliyunLogStore from extensions.logstore.repositories import safe_float, safe_int from extensions.logstore.sql_escape import escape_identifier, escape_logstore_query_value, escape_sql_string +from graphon.enums import WorkflowExecutionStatus from libs.infinite_scroll_pagination import InfiniteScrollPagination from models.enums import CreatorUserRole, WorkflowRunTriggeredFrom from models.workflow import WorkflowRun, WorkflowType diff --git a/api/extensions/logstore/repositories/logstore_workflow_execution_repository.py b/api/extensions/logstore/repositories/logstore_workflow_execution_repository.py index d0f3e2e244..544109276d 100644 --- a/api/extensions/logstore/repositories/logstore_workflow_execution_repository.py +++ b/api/extensions/logstore/repositories/logstore_workflow_execution_repository.py @@ -3,14 +3,14 @@ import logging import os import time -from graphon.entities import WorkflowExecution -from graphon.workflow_type_encoder import WorkflowRuntimeTypeConverter from sqlalchemy.engine import Engine from sqlalchemy.orm import sessionmaker from core.repositories.factory import WorkflowExecutionRepository from core.repositories.sqlalchemy_workflow_execution_repository import SQLAlchemyWorkflowExecutionRepository from extensions.logstore.aliyun_logstore import AliyunLogStore +from graphon.entities import WorkflowExecution +from graphon.workflow_type_encoder import WorkflowRuntimeTypeConverter from libs.helper import extract_tenant_id from models import ( Account, diff --git a/api/extensions/otel/parser/base.py b/api/extensions/otel/parser/base.py index 23d324f9ea..fbf379b3e5 100644 --- a/api/extensions/otel/parser/base.py +++ b/api/extensions/otel/parser/base.py @@ -10,17 +10,17 @@ Gate is only active in EE (``ENTERPRISE_ENABLED=True``) when import json from typing import Any, Protocol -from graphon.enums import BuiltinNodeTypes -from graphon.file import File -from graphon.graph_events import GraphNodeEventBase -from graphon.nodes.base.node import Node -from graphon.variables import Segment from opentelemetry.trace import Span from opentelemetry.trace.status import Status, StatusCode from pydantic import BaseModel from configs import dify_config from extensions.otel.semconv.gen_ai import ChainAttributes, GenAIAttributes +from graphon.enums import BuiltinNodeTypes +from graphon.file import File +from graphon.graph_events import GraphNodeEventBase +from graphon.nodes.base.node import Node +from graphon.variables import Segment def should_include_content() -> bool: diff --git a/api/extensions/otel/parser/llm.py b/api/extensions/otel/parser/llm.py index 335c5cc29e..ec3c78a12d 100644 --- a/api/extensions/otel/parser/llm.py +++ b/api/extensions/otel/parser/llm.py @@ -6,12 +6,12 @@ import logging from collections.abc import Mapping from typing import Any -from graphon.graph_events import GraphNodeEventBase -from graphon.nodes.base.node import Node from opentelemetry.trace import Span from extensions.otel.parser.base import DefaultNodeOTelParser, safe_json_dumps from extensions.otel.semconv.gen_ai import LLMAttributes +from graphon.graph_events import GraphNodeEventBase +from graphon.nodes.base.node import Node logger = logging.getLogger(__name__) diff --git a/api/extensions/otel/parser/retrieval.py b/api/extensions/otel/parser/retrieval.py index 6df5f62c15..56672d1fd4 100644 --- a/api/extensions/otel/parser/retrieval.py +++ b/api/extensions/otel/parser/retrieval.py @@ -6,13 +6,13 @@ import logging from collections.abc import Sequence from typing import Any -from graphon.graph_events import GraphNodeEventBase -from graphon.nodes.base.node import Node -from graphon.variables import Segment from opentelemetry.trace import Span from extensions.otel.parser.base import DefaultNodeOTelParser, safe_json_dumps from extensions.otel.semconv.gen_ai import RetrieverAttributes +from graphon.graph_events import GraphNodeEventBase +from graphon.nodes.base.node import Node +from graphon.variables import Segment logger = logging.getLogger(__name__) diff --git a/api/extensions/otel/parser/tool.py b/api/extensions/otel/parser/tool.py index b9fdd9e1ca..75ddbba448 100644 --- a/api/extensions/otel/parser/tool.py +++ b/api/extensions/otel/parser/tool.py @@ -2,14 +2,14 @@ Parser for tool nodes that captures tool-specific metadata. """ -from graphon.enums import WorkflowNodeExecutionMetadataKey -from graphon.graph_events import GraphNodeEventBase -from graphon.nodes.base.node import Node -from graphon.nodes.tool.entities import ToolNodeData from opentelemetry.trace import Span from extensions.otel.parser.base import DefaultNodeOTelParser, safe_json_dumps from extensions.otel.semconv.gen_ai import ToolAttributes +from graphon.enums import WorkflowNodeExecutionMetadataKey +from graphon.graph_events import GraphNodeEventBase +from graphon.nodes.base.node import Node +from graphon.nodes.tool.entities import ToolNodeData class ToolNodeOTelParser: diff --git a/api/factories/file_factory/remote.py b/api/factories/file_factory/remote.py index e5a7186007..9b8f94b1f3 100644 --- a/api/factories/file_factory/remote.py +++ b/api/factories/file_factory/remote.py @@ -19,8 +19,13 @@ from werkzeug.http import parse_options_header from core.helper import ssrf_proxy -def extract_filename(url_path: str, content_disposition: str | None) -> str | None: - """Extract a safe filename from Content-Disposition or the request URL path.""" +def extract_filename(url_or_path: str, content_disposition: str | None) -> str | None: + """Extract a safe filename from Content-Disposition or the request URL path. + + Handles full URLs, paths with query strings, hash fragments, and percent-encoded segments. + Query strings and hash fragments are stripped from the URL before extracting the basename. + Percent-encoded characters in the path are decoded safely. + """ filename: str | None = None if content_disposition: filename_star_match = re.search(r"filename\*=([^;]+)", content_disposition) @@ -47,8 +52,13 @@ def extract_filename(url_path: str, content_disposition: str | None) -> str | No filename = urllib.parse.unquote(raw) if not filename: - candidate = os.path.basename(url_path) - filename = urllib.parse.unquote(candidate) if candidate else None + # Parse the URL to extract just the path, stripping query strings and fragments + # This handles both full URLs and bare paths + parsed = urllib.parse.urlparse(url_or_path) + path = parsed.path + candidate = os.path.basename(path) + # Decode percent-encoded characters, with safe fallback for malformed input + filename = urllib.parse.unquote(candidate, errors="replace") if candidate else None if filename: filename = os.path.basename(filename) diff --git a/api/factories/variable_factory.py b/api/factories/variable_factory.py index 57205b5739..fd7acb14d3 100644 --- a/api/factories/variable_factory.py +++ b/api/factories/variable_factory.py @@ -8,6 +8,11 @@ shared conversion functions for legacy callers and tests. from collections.abc import Mapping, Sequence from typing import Any, cast +from configs import dify_config +from core.workflow.variable_prefixes import ( + CONVERSATION_VARIABLE_NODE_ID, + ENVIRONMENT_VARIABLE_NODE_ID, +) from graphon.variables.exc import VariableError from graphon.variables.factory import ( TypeMismatchError, @@ -31,12 +36,6 @@ from graphon.variables.variables import ( VariableBase, ) -from configs import dify_config -from core.workflow.variable_prefixes import ( - CONVERSATION_VARIABLE_NODE_ID, - ENVIRONMENT_VARIABLE_NODE_ID, -) - __all__ = [ "TypeMismatchError", "UnsupportedSegmentTypeError", diff --git a/api/fields/member_fields.py b/api/fields/member_fields.py index cfe0015918..67b320beaa 100644 --- a/api/fields/member_fields.py +++ b/api/fields/member_fields.py @@ -3,10 +3,10 @@ from __future__ import annotations from datetime import datetime from flask_restx import fields -from graphon.file import helpers as file_helpers from pydantic import computed_field, field_validator from fields.base import ResponseModel +from graphon.file import helpers as file_helpers simple_account_fields = { "id": fields.String, diff --git a/api/fields/message_fields.py b/api/fields/message_fields.py index 1a871204a0..ca18f1c203 100644 --- a/api/fields/message_fields.py +++ b/api/fields/message_fields.py @@ -3,12 +3,12 @@ from __future__ import annotations from datetime import datetime from uuid import uuid4 -from graphon.file import File from pydantic import Field, field_validator from core.entities.execution_extra_content import ExecutionExtraContentDomainModel from fields.base import ResponseModel from fields.conversation_fields import AgentThought, JSONValue, MessageFile +from graphon.file import File type JSONValueType = JSONValue diff --git a/api/fields/raws.py b/api/fields/raws.py index 4c65cdab7a..ee6f53b360 100644 --- a/api/fields/raws.py +++ b/api/fields/raws.py @@ -1,4 +1,5 @@ from flask_restx import fields + from graphon.file import File diff --git a/api/fields/workflow_fields.py b/api/fields/workflow_fields.py index 3af42eabd8..07f2cf94a5 100644 --- a/api/fields/workflow_fields.py +++ b/api/fields/workflow_fields.py @@ -1,8 +1,8 @@ from flask_restx import fields -from graphon.variables import SecretVariable, SegmentType, VariableBase from core.helper import encrypter from fields.member_fields import simple_account_fields +from graphon.variables import SecretVariable, SegmentType, VariableBase from libs.helper import TimestampField from ._value_type_serializer import serialize_value_type diff --git a/api/libs/helper.py b/api/libs/helper.py index 69bd483515..ac69a11084 100644 --- a/api/libs/helper.py +++ b/api/libs/helper.py @@ -16,8 +16,6 @@ from zoneinfo import available_timezones from flask import Response, stream_with_context from flask_restx import fields -from graphon.file import helpers as file_helpers -from graphon.model_runtime.utils.encoders import jsonable_encoder from pydantic import BaseModel, TypeAdapter from pydantic.functional_validators import AfterValidator from typing_extensions import TypedDict @@ -25,6 +23,8 @@ from typing_extensions import TypedDict from configs import dify_config from core.app.features.rate_limiting.rate_limit import RateLimitGenerator from extensions.ext_redis import redis_client +from graphon.file import helpers as file_helpers +from graphon.model_runtime.utils.encoders import jsonable_encoder if TYPE_CHECKING: from models import Account diff --git a/api/models/__init__.py b/api/models/__init__.py index 2055a6b005..7fbcc78d68 100644 --- a/api/models/__init__.py +++ b/api/models/__init__.py @@ -232,6 +232,7 @@ __all__ = [ "WorkflowComment", "WorkflowCommentMention", "WorkflowCommentReply", + "WorkflowKind", "WorkflowNodeExecutionModel", "WorkflowNodeExecutionOffload", "WorkflowNodeExecutionTriggeredFrom", @@ -241,6 +242,5 @@ __all__ = [ "WorkflowSchedulePlan", "WorkflowToolProvider", "WorkflowTriggerStatus", - "WorkflowKind", "WorkflowType", ] diff --git a/api/models/evaluation.py b/api/models/evaluation.py index 8b752633c6..1410cbd700 100644 --- a/api/models/evaluation.py +++ b/api/models/evaluation.py @@ -85,7 +85,7 @@ class EvaluationConfiguration(Base): """Return judgment config (stored in the judgement_conditions column).""" if self.judgement_conditions: parsed = json.loads(self.judgement_conditions) - return parsed if parsed else None + return parsed or None return None @property diff --git a/api/models/model.py b/api/models/model.py index 29ecaf3073..25c330b062 100644 --- a/api/models/model.py +++ b/api/models/model.py @@ -14,9 +14,6 @@ from uuid import uuid4 import sqlalchemy as sa from flask import request from flask_login import UserMixin # type: ignore[import-untyped] -from graphon.enums import WorkflowExecutionStatus -from graphon.file import FILE_MODEL_IDENTITY, File, FileTransferMethod, FileType -from graphon.file import helpers as file_helpers from sqlalchemy import BigInteger, Float, Index, PrimaryKeyConstraint, String, exists, func, select, text from sqlalchemy.orm import Mapped, Session, mapped_column, sessionmaker @@ -24,6 +21,9 @@ from configs import dify_config from constants import DEFAULT_FILE_NUMBER_LIMITS from core.tools.signature import sign_tool_file from extensions.storage.storage_type import StorageType +from graphon.enums import WorkflowExecutionStatus +from graphon.file import FILE_MODEL_IDENTITY, File, FileTransferMethod, FileType +from graphon.file import helpers as file_helpers from libs.helper import generate_string # type: ignore[import-not-found] from libs.url_utils import normalize_api_base_url from libs.uuid_utils import uuidv7 diff --git a/api/models/provider.py b/api/models/provider.py index 8270961b31..2bb67d605b 100644 --- a/api/models/provider.py +++ b/api/models/provider.py @@ -6,10 +6,10 @@ from functools import cached_property from uuid import uuid4 import sqlalchemy as sa -from graphon.model_runtime.entities.model_entities import ModelType from sqlalchemy import DateTime, String, func, select, text from sqlalchemy.orm import Mapped, mapped_column +from graphon.model_runtime.entities.model_entities import ModelType from libs.uuid_utils import uuidv7 from .base import TypeBase diff --git a/api/models/workflow.py b/api/models/workflow.py index 74c240ead1..5f448131f8 100644 --- a/api/models/workflow.py +++ b/api/models/workflow.py @@ -8,19 +8,6 @@ from typing import TYPE_CHECKING, Any, Optional, TypedDict, cast from uuid import uuid4 import sqlalchemy as sa -from graphon.entities.graph_config import NodeConfigDict, NodeConfigDictAdapter -from graphon.entities.pause_reason import HumanInputRequired, PauseReason, PauseReasonType, SchedulingPause -from graphon.enums import ( - BuiltinNodeTypes, - NodeType, - WorkflowExecutionStatus, - WorkflowNodeExecutionMetadataKey, - WorkflowNodeExecutionStatus, -) -from graphon.file import File -from graphon.file.constants import maybe_file_object -from graphon.variables import utils as variable_utils -from graphon.variables.variables import FloatVariable, IntegerVariable, RAGPipelineVariable, StringVariable from sqlalchemy import ( DateTime, Index, @@ -44,6 +31,19 @@ from core.workflow.variable_prefixes import ( ) from extensions.ext_storage import Storage from factories.variable_factory import TypeMismatchError, build_segment_with_type +from graphon.entities.graph_config import NodeConfigDict, NodeConfigDictAdapter +from graphon.entities.pause_reason import HumanInputRequired, PauseReason, PauseReasonType, SchedulingPause +from graphon.enums import ( + BuiltinNodeTypes, + NodeType, + WorkflowExecutionStatus, + WorkflowNodeExecutionMetadataKey, + WorkflowNodeExecutionStatus, +) +from graphon.file import File +from graphon.file.constants import maybe_file_object +from graphon.variables import utils as variable_utils +from graphon.variables.variables import FloatVariable, IntegerVariable, RAGPipelineVariable, StringVariable from libs.datetime_utils import naive_utc_now from libs.uuid_utils import uuidv7 @@ -53,11 +53,10 @@ if TYPE_CHECKING: from .model import AppMode -from graphon.variables import SecretVariable, Segment, SegmentType, VariableBase - from constants import DEFAULT_FILE_NUMBER_LIMITS, HIDDEN_VALUE from core.helper import encrypter from factories import variable_factory +from graphon.variables import SecretVariable, Segment, SegmentType, VariableBase from libs import helper from .account import Account diff --git a/api/providers/trace/trace-aliyun/src/dify_trace_aliyun/aliyun_trace.py b/api/providers/trace/trace-aliyun/src/dify_trace_aliyun/aliyun_trace.py index eb44d437f9..54d2f8167f 100644 --- a/api/providers/trace/trace-aliyun/src/dify_trace_aliyun/aliyun_trace.py +++ b/api/providers/trace/trace-aliyun/src/dify_trace_aliyun/aliyun_trace.py @@ -1,8 +1,6 @@ import logging from collections.abc import Sequence -from graphon.entities import WorkflowNodeExecution -from graphon.enums import BuiltinNodeTypes, WorkflowNodeExecutionMetadataKey from opentelemetry.trace import SpanKind from sqlalchemy.orm import sessionmaker @@ -60,6 +58,8 @@ from dify_trace_aliyun.utils import ( serialize_json_data, ) from extensions.ext_database import db +from graphon.entities import WorkflowNodeExecution +from graphon.enums import BuiltinNodeTypes, WorkflowNodeExecutionMetadataKey from models import WorkflowNodeExecutionTriggeredFrom logger = logging.getLogger(__name__) diff --git a/api/providers/trace/trace-aliyun/src/dify_trace_aliyun/utils.py b/api/providers/trace/trace-aliyun/src/dify_trace_aliyun/utils.py index d446f1b5c3..5678c66adb 100644 --- a/api/providers/trace/trace-aliyun/src/dify_trace_aliyun/utils.py +++ b/api/providers/trace/trace-aliyun/src/dify_trace_aliyun/utils.py @@ -2,8 +2,6 @@ import json from collections.abc import Mapping from typing import Any, TypedDict -from graphon.entities import WorkflowNodeExecution -from graphon.enums import WorkflowNodeExecutionStatus from opentelemetry.trace import Link, Status, StatusCode from core.rag.models.document import Document @@ -17,6 +15,8 @@ from dify_trace_aliyun.entities.semconv import ( GenAISpanKind, ) from extensions.ext_database import db +from graphon.entities import WorkflowNodeExecution +from graphon.enums import WorkflowNodeExecutionStatus from models import EndUser # Constants diff --git a/api/providers/trace/trace-arize-phoenix/src/dify_trace_arize_phoenix/arize_phoenix_trace.py b/api/providers/trace/trace-arize-phoenix/src/dify_trace_arize_phoenix/arize_phoenix_trace.py index 037023e771..96df49ed0e 100644 --- a/api/providers/trace/trace-arize-phoenix/src/dify_trace_arize_phoenix/arize_phoenix_trace.py +++ b/api/providers/trace/trace-arize-phoenix/src/dify_trace_arize_phoenix/arize_phoenix_trace.py @@ -6,7 +6,6 @@ from datetime import datetime, timedelta from typing import Any, Union, cast from urllib.parse import urlparse -from graphon.enums import WorkflowNodeExecutionStatus from openinference.semconv.trace import ( MessageAttributes, OpenInferenceMimeTypeValues, @@ -41,6 +40,7 @@ from core.ops.utils import JSON_DICT_ADAPTER from core.repositories import DifyCoreRepositoryFactory from dify_trace_arize_phoenix.config import ArizeConfig, PhoenixConfig from extensions.ext_database import db +from graphon.enums import WorkflowNodeExecutionStatus from models.model import EndUser, MessageFile from models.workflow import WorkflowNodeExecutionTriggeredFrom diff --git a/api/providers/trace/trace-langsmith/src/dify_trace_langsmith/langsmith_trace.py b/api/providers/trace/trace-langsmith/src/dify_trace_langsmith/langsmith_trace.py index 504673d6ef..145bd70dbc 100644 --- a/api/providers/trace/trace-langsmith/src/dify_trace_langsmith/langsmith_trace.py +++ b/api/providers/trace/trace-langsmith/src/dify_trace_langsmith/langsmith_trace.py @@ -4,7 +4,6 @@ import uuid from datetime import datetime, timedelta from typing import cast -from graphon.enums import BuiltinNodeTypes, WorkflowNodeExecutionMetadataKey from langsmith import Client from langsmith.schemas import RunBase from sqlalchemy.orm import sessionmaker @@ -30,6 +29,7 @@ from dify_trace_langsmith.entities.langsmith_trace_entity import ( LangSmithRunUpdateModel, ) from extensions.ext_database import db +from graphon.enums import BuiltinNodeTypes, WorkflowNodeExecutionMetadataKey from models import EndUser, MessageFile, WorkflowNodeExecutionTriggeredFrom logger = logging.getLogger(__name__) diff --git a/api/providers/trace/trace-mlflow/src/dify_trace_mlflow/mlflow_trace.py b/api/providers/trace/trace-mlflow/src/dify_trace_mlflow/mlflow_trace.py index 37c9ecda25..4e4c45a532 100644 --- a/api/providers/trace/trace-mlflow/src/dify_trace_mlflow/mlflow_trace.py +++ b/api/providers/trace/trace-mlflow/src/dify_trace_mlflow/mlflow_trace.py @@ -4,7 +4,6 @@ from datetime import datetime, timedelta from typing import Any, cast import mlflow -from graphon.enums import BuiltinNodeTypes from mlflow.entities import Document, Span, SpanEvent, SpanStatusCode, SpanType from mlflow.tracing.constant import SpanAttributeKey, TokenUsageKey, TraceMetadataKey from mlflow.tracing.fluent import start_span_no_context, update_current_trace @@ -26,6 +25,7 @@ from core.ops.entities.trace_entity import ( from core.ops.utils import JSON_DICT_ADAPTER from dify_trace_mlflow.config import DatabricksConfig, MLflowConfig from extensions.ext_database import db +from graphon.enums import BuiltinNodeTypes from models import EndUser from models.workflow import WorkflowNodeExecutionModel diff --git a/api/providers/trace/trace-opik/src/dify_trace_opik/opik_trace.py b/api/providers/trace/trace-opik/src/dify_trace_opik/opik_trace.py index fd2d0ca097..2d124ac989 100644 --- a/api/providers/trace/trace-opik/src/dify_trace_opik/opik_trace.py +++ b/api/providers/trace/trace-opik/src/dify_trace_opik/opik_trace.py @@ -5,7 +5,6 @@ import uuid from datetime import datetime, timedelta from typing import Any, cast -from graphon.enums import BuiltinNodeTypes, WorkflowNodeExecutionMetadataKey from opik import Opik, Trace from opik.id_helpers import uuid4_to_uuid7 from sqlalchemy.orm import sessionmaker @@ -25,6 +24,7 @@ from core.ops.entities.trace_entity import ( from core.repositories import DifyCoreRepositoryFactory from dify_trace_opik.config import OpikConfig from extensions.ext_database import db +from graphon.enums import BuiltinNodeTypes, WorkflowNodeExecutionMetadataKey from models import EndUser, MessageFile, WorkflowNodeExecutionTriggeredFrom logger = logging.getLogger(__name__) diff --git a/api/providers/trace/trace-tencent/src/dify_trace_tencent/tencent_trace.py b/api/providers/trace/trace-tencent/src/dify_trace_tencent/tencent_trace.py index 3b9e24573a..a8c480e4a5 100644 --- a/api/providers/trace/trace-tencent/src/dify_trace_tencent/tencent_trace.py +++ b/api/providers/trace/trace-tencent/src/dify_trace_tencent/tencent_trace.py @@ -3,10 +3,6 @@ import inspect import logging -from graphon.entities.workflow_node_execution import ( - WorkflowNodeExecution, -) -from graphon.nodes import BuiltinNodeTypes from sqlalchemy import select from sqlalchemy.orm import Session, sessionmaker @@ -28,6 +24,10 @@ from dify_trace_tencent.entities.tencent_trace_entity import SpanData from dify_trace_tencent.span_builder import TencentSpanBuilder from dify_trace_tencent.utils import TencentTraceUtils from extensions.ext_database import db +from graphon.entities.workflow_node_execution import ( + WorkflowNodeExecution, +) +from graphon.nodes import BuiltinNodeTypes from models import Account, App, TenantAccountJoin, WorkflowNodeExecutionTriggeredFrom logger = logging.getLogger(__name__) diff --git a/api/providers/trace/trace-weave/src/dify_trace_weave/weave_trace.py b/api/providers/trace/trace-weave/src/dify_trace_weave/weave_trace.py index fd9b965ba0..4292cbf0f1 100644 --- a/api/providers/trace/trace-weave/src/dify_trace_weave/weave_trace.py +++ b/api/providers/trace/trace-weave/src/dify_trace_weave/weave_trace.py @@ -6,7 +6,6 @@ from typing import Any, cast import wandb import weave -from graphon.enums import BuiltinNodeTypes, WorkflowNodeExecutionMetadataKey from sqlalchemy.orm import sessionmaker from weave.trace_server.trace_server_interface import ( CallEndReq, @@ -33,6 +32,7 @@ from core.repositories import DifyCoreRepositoryFactory from dify_trace_weave.config import WeaveConfig from dify_trace_weave.entities.weave_trace_entity import WeaveTraceModel from extensions.ext_database import db +from graphon.enums import BuiltinNodeTypes, WorkflowNodeExecutionMetadataKey from models import EndUser, MessageFile, WorkflowNodeExecutionTriggeredFrom logger = logging.getLogger(__name__) diff --git a/api/pyproject.toml b/api/pyproject.toml index 0c5f9f95b1..4aff4f3258 100644 --- a/api/pyproject.toml +++ b/api/pyproject.toml @@ -14,7 +14,7 @@ dependencies = [ "gevent>=26.4.0", "gevent-websocket>=0.10.1", "gmpy2>=2.3.0", - "google-api-python-client>=2.194.0", + "google-api-python-client>=2.195.0", "gunicorn>=25.3.0", "psycogreen>=1.0.2", "psycopg2-binary>=2.9.12", @@ -31,7 +31,7 @@ dependencies = [ "flask-migrate>=4.1.0,<5.0.0", "flask-orjson>=2.0.0,<3.0.0", "flask-restx>=1.3.2,<2.0.0", - "google-cloud-aiplatform>=1.148.1,<2.0.0", + "google-cloud-aiplatform>=1.149.0,<2.0.0", "httpx[socks]>=0.28.1,<1.0.0", "opentelemetry-distro>=0.62b1,<1.0.0", "opentelemetry-instrumentation-celery>=0.62b0,<1.0.0", diff --git a/api/repositories/api_workflow_run_repository.py b/api/repositories/api_workflow_run_repository.py index 100589804c..72b38e7906 100644 --- a/api/repositories/api_workflow_run_repository.py +++ b/api/repositories/api_workflow_run_repository.py @@ -38,11 +38,11 @@ from collections.abc import Callable, Sequence from datetime import datetime from typing import Protocol, TypedDict -from graphon.entities.pause_reason import PauseReason -from graphon.enums import WorkflowType from sqlalchemy.orm import Session from core.repositories.factory import WorkflowExecutionRepository +from graphon.entities.pause_reason import PauseReason +from graphon.enums import WorkflowType from libs.infinite_scroll_pagination import InfiniteScrollPagination from models.enums import WorkflowRunTriggeredFrom from models.workflow import WorkflowAppLog, WorkflowArchiveLog, WorkflowPause, WorkflowPauseReason, WorkflowRun diff --git a/api/repositories/sqlalchemy_api_workflow_node_execution_repository.py b/api/repositories/sqlalchemy_api_workflow_node_execution_repository.py index d5c6a203b1..44735eb769 100644 --- a/api/repositories/sqlalchemy_api_workflow_node_execution_repository.py +++ b/api/repositories/sqlalchemy_api_workflow_node_execution_repository.py @@ -10,11 +10,11 @@ from collections.abc import Sequence from datetime import datetime from typing import Protocol, cast -from graphon.enums import WorkflowNodeExecutionMetadataKey, WorkflowNodeExecutionStatus from sqlalchemy import asc, delete, desc, func, select from sqlalchemy.engine import CursorResult from sqlalchemy.orm import Session, sessionmaker +from graphon.enums import WorkflowNodeExecutionMetadataKey, WorkflowNodeExecutionStatus from models.workflow import WorkflowNodeExecutionModel, WorkflowNodeExecutionOffload from repositories.api_workflow_node_execution_repository import ( DifyAPIWorkflowNodeExecutionRepository, diff --git a/api/repositories/sqlalchemy_api_workflow_run_repository.py b/api/repositories/sqlalchemy_api_workflow_run_repository.py index 58fda7ead8..71a2554a60 100644 --- a/api/repositories/sqlalchemy_api_workflow_run_repository.py +++ b/api/repositories/sqlalchemy_api_workflow_run_repository.py @@ -28,15 +28,15 @@ from decimal import Decimal from typing import Any, cast import sqlalchemy as sa -from graphon.entities.pause_reason import HumanInputRequired, PauseReason, PauseReasonType, SchedulingPause -from graphon.enums import WorkflowExecutionStatus, WorkflowType -from graphon.nodes.human_input.entities import FormDefinition from pydantic import ValidationError from sqlalchemy import and_, delete, func, null, or_, select, tuple_ from sqlalchemy.engine import CursorResult from sqlalchemy.orm import Session, selectinload, sessionmaker from extensions.ext_storage import storage +from graphon.entities.pause_reason import HumanInputRequired, PauseReason, PauseReasonType, SchedulingPause +from graphon.enums import WorkflowExecutionStatus, WorkflowType +from graphon.nodes.human_input.entities import FormDefinition from libs.datetime_utils import naive_utc_now from libs.helper import convert_datetime_to_date from libs.infinite_scroll_pagination import InfiniteScrollPagination diff --git a/api/repositories/sqlalchemy_execution_extra_content_repository.py b/api/repositories/sqlalchemy_execution_extra_content_repository.py index feba5f7eb6..67f8795d3f 100644 --- a/api/repositories/sqlalchemy_execution_extra_content_repository.py +++ b/api/repositories/sqlalchemy_execution_extra_content_repository.py @@ -7,9 +7,6 @@ from collections import defaultdict from collections.abc import Sequence from typing import Any -from graphon.nodes.human_input.entities import FormDefinition -from graphon.nodes.human_input.enums import HumanInputFormStatus -from graphon.nodes.human_input.human_input_node import HumanInputNode from sqlalchemy import select from sqlalchemy.orm import Session, selectinload, sessionmaker @@ -21,6 +18,9 @@ from core.entities.execution_extra_content import ( from core.entities.execution_extra_content import ( HumanInputContent as HumanInputContentDomainModel, ) +from graphon.nodes.human_input.entities import FormDefinition +from graphon.nodes.human_input.enums import HumanInputFormStatus +from graphon.nodes.human_input.human_input_node import HumanInputNode from models.execution_extra_content import ( ExecutionExtraContent as ExecutionExtraContentModel, ) diff --git a/api/services/app_dsl_service.py b/api/services/app_dsl_service.py index 70184b42de..97aaea3395 100644 --- a/api/services/app_dsl_service.py +++ b/api/services/app_dsl_service.py @@ -10,12 +10,6 @@ from uuid import uuid4 import yaml from Crypto.Cipher import AES from Crypto.Util.Padding import pad, unpad -from graphon.enums import BuiltinNodeTypes -from graphon.model_runtime.utils.encoders import jsonable_encoder -from graphon.nodes.llm.entities import LLMNodeData -from graphon.nodes.parameter_extractor.entities import ParameterExtractorNodeData -from graphon.nodes.question_classifier.entities import QuestionClassifierNodeData -from graphon.nodes.tool.entities import ToolNodeData from packaging import version from packaging.version import parse as parse_version from pydantic import BaseModel @@ -36,6 +30,12 @@ from core.workflow.nodes.trigger_schedule.trigger_schedule_node import TriggerSc from events.app_event import app_model_config_was_updated, app_was_created from extensions.ext_redis import redis_client from factories import variable_factory +from graphon.enums import BuiltinNodeTypes +from graphon.model_runtime.utils.encoders import jsonable_encoder +from graphon.nodes.llm.entities import LLMNodeData +from graphon.nodes.parameter_extractor.entities import ParameterExtractorNodeData +from graphon.nodes.question_classifier.entities import QuestionClassifierNodeData +from graphon.nodes.tool.entities import ToolNodeData from libs.datetime_utils import naive_utc_now from models import Account, App, AppMode from models.model import AppModelConfig, AppModelConfigDict, IconType diff --git a/api/services/app_task_service.py b/api/services/app_task_service.py index 0842e9d3e7..6e9d6b1c73 100644 --- a/api/services/app_task_service.py +++ b/api/services/app_task_service.py @@ -5,11 +5,10 @@ like stopping tasks, handling both legacy Redis flag mechanism and new GraphEngine command channel mechanism. """ -from graphon.graph_engine.manager import GraphEngineManager - from core.app.apps.base_app_queue_manager import AppQueueManager from core.app.entities.app_invoke_entities import InvokeFrom from extensions.ext_redis import redis_client +from graphon.graph_engine.manager import GraphEngineManager from models.model import AppMode diff --git a/api/services/audio_service.py b/api/services/audio_service.py index 1c7027efb4..60948e652b 100644 --- a/api/services/audio_service.py +++ b/api/services/audio_service.py @@ -5,12 +5,12 @@ from collections.abc import Generator from typing import cast from flask import Response, stream_with_context -from graphon.model_runtime.entities.model_entities import ModelType from werkzeug.datastructures import FileStorage from constants import AUDIO_EXTENSIONS from core.model_manager import ModelManager from extensions.ext_database import db +from graphon.model_runtime.entities.model_entities import ModelType from models.enums import MessageStatus from models.model import App, AppMode, Message from services.errors.audio import ( diff --git a/api/services/clear_free_plan_tenant_expired_logs.py b/api/services/clear_free_plan_tenant_expired_logs.py index ea12e40420..dcc93b4b0f 100644 --- a/api/services/clear_free_plan_tenant_expired_logs.py +++ b/api/services/clear_free_plan_tenant_expired_logs.py @@ -6,7 +6,6 @@ from concurrent.futures import ThreadPoolExecutor import click from flask import Flask, current_app -from graphon.model_runtime.utils.encoders import jsonable_encoder from sqlalchemy import delete, func, select from sqlalchemy.orm import Session, sessionmaker @@ -14,6 +13,7 @@ from configs import dify_config from enums.cloud_plan import CloudPlan from extensions.ext_database import db from extensions.ext_storage import storage +from graphon.model_runtime.utils.encoders import jsonable_encoder from models.account import Tenant from models.model import ( App, diff --git a/api/services/conversation_service.py b/api/services/conversation_service.py index f5085af59b..ee8a1c4edd 100644 --- a/api/services/conversation_service.py +++ b/api/services/conversation_service.py @@ -3,7 +3,6 @@ import logging from collections.abc import Callable, Sequence from typing import Any -from graphon.variables.types import SegmentType from sqlalchemy import asc, desc, func, or_, select from sqlalchemy.orm import Session @@ -13,6 +12,7 @@ from core.db.session_factory import session_factory from core.llm_generator.llm_generator import LLMGenerator from extensions.ext_database import db from factories import variable_factory +from graphon.variables.types import SegmentType from libs.datetime_utils import naive_utc_now from libs.infinite_scroll_pagination import InfiniteScrollPagination from models import Account, ConversationVariable diff --git a/api/services/conversation_variable_updater.py b/api/services/conversation_variable_updater.py index 95a8951951..287d513f48 100644 --- a/api/services/conversation_variable_updater.py +++ b/api/services/conversation_variable_updater.py @@ -1,7 +1,7 @@ -from graphon.variables.variables import VariableBase from sqlalchemy import select from sqlalchemy.orm import Session, sessionmaker +from graphon.variables.variables import VariableBase from models import ConversationVariable diff --git a/api/services/datasource_provider_service.py b/api/services/datasource_provider_service.py index 364c4a86a0..416bc8cef9 100644 --- a/api/services/datasource_provider_service.py +++ b/api/services/datasource_provider_service.py @@ -3,7 +3,6 @@ import time from collections.abc import Mapping from typing import Any -from graphon.model_runtime.entities.provider_entities import FormType from sqlalchemy import delete, func, select, update from sqlalchemy.orm import Session, sessionmaker @@ -18,6 +17,7 @@ from core.plugin.impl.oauth import OAuthHandler from core.tools.utils.encryption import ProviderConfigCache, ProviderConfigEncrypter, create_provider_encrypter from extensions.ext_database import db from extensions.ext_redis import redis_client +from graphon.model_runtime.entities.provider_entities import FormType from models.oauth import DatasourceOauthParamConfig, DatasourceOauthTenantParamConfig, DatasourceProvider from models.provider_ids import DatasourceProviderID from services.plugin.plugin_service import PluginService diff --git a/api/services/entities/knowledge_entities/knowledge_entities.py b/api/services/entities/knowledge_entities/knowledge_entities.py index b1fe352861..910f54bebc 100644 --- a/api/services/entities/knowledge_entities/knowledge_entities.py +++ b/api/services/entities/knowledge_entities/knowledge_entities.py @@ -3,6 +3,7 @@ from typing import Any, Literal from pydantic import BaseModel, field_validator from core.rag.entities import Rule +from core.rag.entities.metadata_entities import MetadataFilteringCondition from core.rag.index_processor.constant.index_type import IndexStructureType from core.rag.retrieval.retrieval_methods import RetrievalMethod @@ -83,6 +84,7 @@ class RetrievalModel(BaseModel): score_threshold_enabled: bool score_threshold: float | None = None weights: WeightModel | None = None + metadata_filtering_conditions: MetadataFilteringCondition | None = None class MetaDataConfig(BaseModel): diff --git a/api/services/entities/model_provider_entities.py b/api/services/entities/model_provider_entities.py index a944ef6acd..6679c08ebd 100644 --- a/api/services/entities/model_provider_entities.py +++ b/api/services/entities/model_provider_entities.py @@ -1,15 +1,6 @@ from collections.abc import Sequence from enum import StrEnum -from graphon.model_runtime.entities.common_entities import I18nObject -from graphon.model_runtime.entities.model_entities import ModelType -from graphon.model_runtime.entities.provider_entities import ( - ConfigurateMethod, - ModelCredentialSchema, - ProviderCredentialSchema, - ProviderHelpEntity, - SimpleProviderEntity, -) from pydantic import BaseModel, ConfigDict, model_validator from configs import dify_config @@ -24,6 +15,15 @@ from core.entities.provider_entities import ( QuotaConfiguration, UnaddedModelConfiguration, ) +from graphon.model_runtime.entities.common_entities import I18nObject +from graphon.model_runtime.entities.model_entities import ModelType +from graphon.model_runtime.entities.provider_entities import ( + ConfigurateMethod, + ModelCredentialSchema, + ProviderCredentialSchema, + ProviderHelpEntity, + SimpleProviderEntity, +) from models.provider import ProviderType diff --git a/api/services/evaluation_service.py b/api/services/evaluation_service.py index 6930e7e399..b5c9d682d5 100644 --- a/api/services/evaluation_service.py +++ b/api/services/evaluation_service.py @@ -1,7 +1,7 @@ +import csv import io import json import logging -import csv from collections.abc import Mapping from typing import Any, Union @@ -1054,7 +1054,9 @@ class EvaluationService: metrics: list[EvaluationMetric] = [] for metric_position, default_metric in enumerate(run_request.default_metrics): - metric_value_type = default_metric.value_type or METRIC_VALUE_TYPE_MAPPING.get(default_metric.metric, "") + metric_value_type = default_metric.value_type or METRIC_VALUE_TYPE_MAPPING.get( + default_metric.metric, "" + ) for node_position, node_info in enumerate(default_metric.node_info_list): metrics.append( EvaluationMetric( diff --git a/api/services/file_service.py b/api/services/file_service.py index aab75eff2c..f60afe2f19 100644 --- a/api/services/file_service.py +++ b/api/services/file_service.py @@ -8,7 +8,6 @@ from tempfile import NamedTemporaryFile from typing import Literal from zipfile import ZIP_DEFLATED, ZipFile -from graphon.file import helpers as file_helpers from sqlalchemy import Engine, select from sqlalchemy.orm import Session, sessionmaker from werkzeug.exceptions import NotFound @@ -24,6 +23,7 @@ from core.rag.extractor.extract_processor import ExtractProcessor from extensions.ext_database import db from extensions.ext_storage import storage from extensions.storage.storage_type import StorageType +from graphon.file import helpers as file_helpers from libs.datetime_utils import naive_utc_now from libs.helper import extract_tenant_id from models import Account diff --git a/api/services/human_input_delivery_test_service.py b/api/services/human_input_delivery_test_service.py index 17b28bbe48..8b4983e5f7 100644 --- a/api/services/human_input_delivery_test_service.py +++ b/api/services/human_input_delivery_test_service.py @@ -4,7 +4,6 @@ from dataclasses import dataclass, field from enum import StrEnum from typing import Protocol -from graphon.runtime import VariablePool from sqlalchemy import Engine, select from sqlalchemy.orm import sessionmaker @@ -18,6 +17,7 @@ from core.workflow.human_input_adapter import ( ) from extensions.ext_database import db from extensions.ext_mail import mail +from graphon.runtime import VariablePool from libs.email_template_renderer import render_email_template from models import Account, TenantAccountJoin from services.feature_service import FeatureService diff --git a/api/services/human_input_service.py b/api/services/human_input_service.py index 02a6620fc7..76598d31ac 100644 --- a/api/services/human_input_service.py +++ b/api/services/human_input_service.py @@ -3,12 +3,6 @@ from collections.abc import Mapping from datetime import datetime, timedelta from typing import Any -from graphon.nodes.human_input.entities import ( - FormDefinition, - HumanInputSubmissionValidationError, - validate_human_input_submission, -) -from graphon.nodes.human_input.enums import HumanInputFormKind, HumanInputFormStatus from sqlalchemy import Engine, select from sqlalchemy.orm import Session, sessionmaker @@ -17,6 +11,12 @@ from core.repositories.human_input_repository import ( HumanInputFormRecord, HumanInputFormSubmissionRepository, ) +from graphon.nodes.human_input.entities import ( + FormDefinition, + HumanInputSubmissionValidationError, + validate_human_input_submission, +) +from graphon.nodes.human_input.enums import HumanInputFormKind, HumanInputFormStatus from libs.datetime_utils import ensure_naive_utc, naive_utc_now from libs.exception import BaseHTTPException from models.human_input import RecipientType diff --git a/api/services/model_load_balancing_service.py b/api/services/model_load_balancing_service.py index b652e049ce..c269346f5f 100644 --- a/api/services/model_load_balancing_service.py +++ b/api/services/model_load_balancing_service.py @@ -2,12 +2,6 @@ import json import logging from typing import Any, TypedDict -from graphon.model_runtime.entities.model_entities import ModelType -from graphon.model_runtime.entities.provider_entities import ( - ModelCredentialSchema, - ProviderCredentialSchema, -) -from graphon.model_runtime.model_providers.model_provider_factory import ModelProviderFactory from sqlalchemy import or_, select from constants import HIDDEN_VALUE @@ -18,6 +12,12 @@ from core.model_manager import LBModelManager from core.plugin.impl.model_runtime_factory import create_plugin_model_assembly, create_plugin_provider_manager from core.provider_manager import ProviderManager from extensions.ext_database import db +from graphon.model_runtime.entities.model_entities import ModelType +from graphon.model_runtime.entities.provider_entities import ( + ModelCredentialSchema, + ProviderCredentialSchema, +) +from graphon.model_runtime.model_providers.model_provider_factory import ModelProviderFactory from libs.datetime_utils import naive_utc_now from models.enums import CredentialSourceType from models.provider import LoadBalancingModelConfig, ProviderCredential, ProviderModelCredential diff --git a/api/services/rag_pipeline/rag_pipeline.py b/api/services/rag_pipeline/rag_pipeline.py index eac1093299..9db6682e10 100644 --- a/api/services/rag_pipeline/rag_pipeline.py +++ b/api/services/rag_pipeline/rag_pipeline.py @@ -9,15 +9,6 @@ from typing import Any, cast from uuid import uuid4 from flask_login import current_user -from graphon.entities import WorkflowNodeExecution -from graphon.enums import BuiltinNodeTypes, ErrorStrategy, NodeType, WorkflowNodeExecutionStatus -from graphon.errors import WorkflowNodeRunFailedError -from graphon.graph_events import GraphNodeEventBase, NodeRunFailedEvent, NodeRunSucceededEvent -from graphon.node_events import NodeRunResult -from graphon.nodes.base.node import Node -from graphon.nodes.http_request import HTTP_REQUEST_CONFIG_FILTER_KEY, build_http_request_config -from graphon.runtime import VariablePool -from graphon.variables.variables import Variable, VariableBase from sqlalchemy import func, select from sqlalchemy.orm import Session, sessionmaker @@ -53,6 +44,15 @@ from core.workflow.variable_pool_initializer import add_variables_to_pool from core.workflow.workflow_entry import WorkflowEntry from enterprise.telemetry.draft_trace import enqueue_draft_node_execution_trace from extensions.ext_database import db +from graphon.entities import WorkflowNodeExecution +from graphon.enums import BuiltinNodeTypes, ErrorStrategy, NodeType, WorkflowNodeExecutionStatus +from graphon.errors import WorkflowNodeRunFailedError +from graphon.graph_events import GraphNodeEventBase, NodeRunFailedEvent, NodeRunSucceededEvent +from graphon.node_events import NodeRunResult +from graphon.nodes.base.node import Node +from graphon.nodes.http_request import HTTP_REQUEST_CONFIG_FILTER_KEY, build_http_request_config +from graphon.runtime import VariablePool +from graphon.variables.variables import Variable, VariableBase from libs.infinite_scroll_pagination import InfiniteScrollPagination from models import Account from models.dataset import ( # type: ignore diff --git a/api/services/rag_pipeline/rag_pipeline_dsl_service.py b/api/services/rag_pipeline/rag_pipeline_dsl_service.py index 7dd86f1581..f315d053cb 100644 --- a/api/services/rag_pipeline/rag_pipeline_dsl_service.py +++ b/api/services/rag_pipeline/rag_pipeline_dsl_service.py @@ -13,12 +13,6 @@ import yaml # type: ignore from Crypto.Cipher import AES from Crypto.Util.Padding import pad, unpad from flask_login import current_user -from graphon.enums import BuiltinNodeTypes -from graphon.model_runtime.utils.encoders import jsonable_encoder -from graphon.nodes.llm.entities import LLMNodeData -from graphon.nodes.parameter_extractor.entities import ParameterExtractorNodeData -from graphon.nodes.question_classifier.entities import QuestionClassifierNodeData -from graphon.nodes.tool.entities import ToolNodeData from packaging import version from pydantic import BaseModel from sqlalchemy import select @@ -33,6 +27,12 @@ from core.workflow.nodes.knowledge_index import KNOWLEDGE_INDEX_NODE_TYPE from core.workflow.nodes.knowledge_retrieval.entities import KnowledgeRetrievalNodeData from extensions.ext_redis import redis_client from factories import variable_factory +from graphon.enums import BuiltinNodeTypes +from graphon.model_runtime.utils.encoders import jsonable_encoder +from graphon.nodes.llm.entities import LLMNodeData +from graphon.nodes.parameter_extractor.entities import ParameterExtractorNodeData +from graphon.nodes.question_classifier.entities import QuestionClassifierNodeData +from graphon.nodes.tool.entities import ToolNodeData from models import Account from models.dataset import Dataset, DatasetCollectionBinding, Pipeline from models.enums import CollectionBindingType, DatasetRuntimeMode diff --git a/api/services/retention/workflow_run/archive_paid_plan_workflow_run.py b/api/services/retention/workflow_run/archive_paid_plan_workflow_run.py index ab60986bfe..21be411bea 100644 --- a/api/services/retention/workflow_run/archive_paid_plan_workflow_run.py +++ b/api/services/retention/workflow_run/archive_paid_plan_workflow_run.py @@ -27,13 +27,13 @@ from dataclasses import dataclass, field from typing import Any, TypedDict import click -from graphon.enums import WorkflowType from sqlalchemy import inspect from sqlalchemy.orm import Session, sessionmaker from configs import dify_config from enums.cloud_plan import CloudPlan from extensions.ext_database import db +from graphon.enums import WorkflowType from libs.archive_storage import ( ArchiveStorage, ArchiveStorageNotConfiguredError, diff --git a/api/services/tools/api_tools_manage_service.py b/api/services/tools/api_tools_manage_service.py index 3bfa221528..8ad010f62d 100644 --- a/api/services/tools/api_tools_manage_service.py +++ b/api/services/tools/api_tools_manage_service.py @@ -2,7 +2,6 @@ import json import logging from typing import Any, TypedDict, cast -from graphon.model_runtime.utils.encoders import jsonable_encoder from httpx import get from sqlalchemy import select @@ -21,6 +20,7 @@ from core.tools.tool_manager import ToolManager from core.tools.utils.encryption import create_tool_provider_encrypter from core.tools.utils.parser import ApiBasedToolSchemaParser from extensions.ext_database import db +from graphon.model_runtime.utils.encoders import jsonable_encoder from models.tools import ApiToolProvider from services.tools.tools_transform_service import ToolTransformService diff --git a/api/services/trigger/trigger_service.py b/api/services/trigger/trigger_service.py index 5a5d13b96d..911331e357 100644 --- a/api/services/trigger/trigger_service.py +++ b/api/services/trigger/trigger_service.py @@ -5,7 +5,6 @@ from collections.abc import Mapping from typing import Any from flask import Request, Response -from graphon.entities.graph_config import NodeConfigDict from pydantic import BaseModel from sqlalchemy import select from sqlalchemy.orm import sessionmaker @@ -21,6 +20,7 @@ from core.trigger.utils.encryption import create_trigger_provider_encrypter_for_ from core.workflow.nodes.trigger_plugin.entities import TriggerEventNodeData from extensions.ext_database import db from extensions.ext_redis import redis_client +from graphon.entities.graph_config import NodeConfigDict from models.model import App from models.provider_ids import TriggerProviderID from models.trigger import TriggerSubscription, WorkflowPluginTrigger diff --git a/api/services/variable_truncator.py b/api/services/variable_truncator.py index 56880f84af..1529c2b98f 100644 --- a/api/services/variable_truncator.py +++ b/api/services/variable_truncator.py @@ -5,6 +5,7 @@ from abc import ABC, abstractmethod from collections.abc import Mapping from typing import Any, overload +from configs import dify_config from graphon.file import File from graphon.nodes.variable_assigner.common.helpers import UpdatedVariable from graphon.variables.segments import ( @@ -21,8 +22,6 @@ from graphon.variables.segments import ( ) from graphon.variables.utils import dumps_with_segments -from configs import dify_config - _MAX_DEPTH = 100 diff --git a/api/services/vector_service.py b/api/services/vector_service.py index 4838e68b8a..7e689af35d 100644 --- a/api/services/vector_service.py +++ b/api/services/vector_service.py @@ -1,6 +1,5 @@ import logging -from graphon.model_runtime.entities.model_entities import ModelType from sqlalchemy import delete, select from core.model_manager import ModelInstance, ModelManager @@ -13,6 +12,7 @@ from core.rag.index_processor.index_processor_base import BaseIndexProcessor from core.rag.index_processor.index_processor_factory import IndexProcessorFactory from core.rag.models.document import AttachmentDocument, Document from extensions.ext_database import db +from graphon.model_runtime.entities.model_entities import ModelType from models import UploadFile from models.dataset import ChildChunk, Dataset, DatasetProcessRule, DocumentSegment, SegmentAttachmentBinding from models.dataset import Document as DatasetDocument diff --git a/api/services/workflow/workflow_converter.py b/api/services/workflow/workflow_converter.py index 8e92449c6e..1658bdf99f 100644 --- a/api/services/workflow/workflow_converter.py +++ b/api/services/workflow/workflow_converter.py @@ -1,11 +1,6 @@ import json from typing import Any, TypedDict -from graphon.file import FileUploadConfig -from graphon.model_runtime.entities.llm_entities import LLMMode -from graphon.model_runtime.utils.encoders import jsonable_encoder -from graphon.nodes import BuiltinNodeTypes -from graphon.variables.input_entities import VariableEntity from sqlalchemy import select from core.app.app_config.entities import ( @@ -24,6 +19,11 @@ from core.prompt.simple_prompt_transform import SimplePromptTransform from core.prompt.utils.prompt_template_parser import PromptTemplateParser from events.app_event import app_was_created from extensions.ext_database import db +from graphon.file import FileUploadConfig +from graphon.model_runtime.entities.llm_entities import LLMMode +from graphon.model_runtime.utils.encoders import jsonable_encoder +from graphon.nodes import BuiltinNodeTypes +from graphon.variables.input_entities import VariableEntity from models import Account from models.api_based_extension import APIBasedExtension, APIBasedExtensionPoint from models.model import App, AppMode, AppModelConfig, IconType diff --git a/api/services/workflow_draft_variable_service.py b/api/services/workflow_draft_variable_service.py index a409ed8436..b71dbcad80 100644 --- a/api/services/workflow_draft_variable_service.py +++ b/api/services/workflow_draft_variable_service.py @@ -7,19 +7,6 @@ from datetime import datetime from enum import StrEnum from typing import Any, ClassVar, NotRequired, TypedDict -from graphon.enums import NodeType -from graphon.file import File -from graphon.nodes import BuiltinNodeTypes -from graphon.nodes.variable_assigner.common.helpers import get_updated_variables -from graphon.variable_loader import VariableLoader -from graphon.variables import Segment, StringSegment, VariableBase -from graphon.variables.consts import SELECTORS_LENGTH -from graphon.variables.segments import ( - ArrayFileSegment, - FileSegment, -) -from graphon.variables.types import SegmentType -from graphon.variables.utils import dumps_with_segments from sqlalchemy import Engine, delete, orm, select from sqlalchemy.dialects.mysql import insert as mysql_insert from sqlalchemy.dialects.postgresql import insert as pg_insert @@ -40,6 +27,19 @@ from core.workflow.variable_prefixes import ( from extensions.ext_storage import storage from factories.file_factory import StorageKeyLoader from factories.variable_factory import build_segment, segment_to_variable +from graphon.enums import NodeType +from graphon.file import File +from graphon.nodes import BuiltinNodeTypes +from graphon.nodes.variable_assigner.common.helpers import get_updated_variables +from graphon.variable_loader import VariableLoader +from graphon.variables import Segment, StringSegment, VariableBase +from graphon.variables.consts import SELECTORS_LENGTH +from graphon.variables.segments import ( + ArrayFileSegment, + FileSegment, +) +from graphon.variables.types import SegmentType +from graphon.variables.utils import dumps_with_segments from libs.datetime_utils import naive_utc_now from libs.uuid_utils import uuidv7 from models import Account, App, Conversation diff --git a/api/services/workflow_event_snapshot_service.py b/api/services/workflow_event_snapshot_service.py index 466f09605e..94f88f8c49 100644 --- a/api/services/workflow_event_snapshot_service.py +++ b/api/services/workflow_event_snapshot_service.py @@ -9,10 +9,6 @@ from collections.abc import Generator, Mapping, Sequence from dataclasses import dataclass from typing import Any -from graphon.entities import WorkflowStartReason -from graphon.enums import WorkflowExecutionStatus, WorkflowNodeExecutionStatus -from graphon.runtime import GraphRuntimeState -from graphon.workflow_type_encoder import WorkflowRuntimeTypeConverter from sqlalchemy import desc, select from sqlalchemy.orm import Session, sessionmaker @@ -29,7 +25,11 @@ from core.app.entities.task_entities import ( from core.app.layers.pause_state_persist_layer import WorkflowResumptionContext from core.workflow.human_input_forms import load_form_tokens_by_form_id from core.workflow.human_input_policy import HumanInputSurface, enrich_human_input_pause_reasons +from graphon.entities import WorkflowStartReason from graphon.entities.pause_reason import PauseReasonType +from graphon.enums import WorkflowExecutionStatus, WorkflowNodeExecutionStatus +from graphon.runtime import GraphRuntimeState +from graphon.workflow_type_encoder import WorkflowRuntimeTypeConverter from models.human_input import HumanInputForm from models.model import AppMode, Message from models.workflow import WorkflowNodeExecutionTriggeredFrom, WorkflowRun diff --git a/api/tasks/app_generate/workflow_execute_task.py b/api/tasks/app_generate/workflow_execute_task.py index bafecdec71..5ceeb302c8 100644 --- a/api/tasks/app_generate/workflow_execute_task.py +++ b/api/tasks/app_generate/workflow_execute_task.py @@ -7,7 +7,6 @@ from typing import Annotated, Any from celery import shared_task from flask import current_app, json -from graphon.runtime import GraphRuntimeState from pydantic import BaseModel, Discriminator, Field, Tag from sqlalchemy import Engine, select from sqlalchemy.orm import Session, sessionmaker @@ -23,6 +22,7 @@ from core.app.entities.app_invoke_entities import ( from core.app.layers.pause_state_persist_layer import PauseStateLayerConfig, WorkflowResumptionContext from core.repositories import DifyCoreRepositoryFactory from extensions.ext_database import db +from graphon.runtime import GraphRuntimeState from libs.flask_utils import set_login_user from models.account import Account from models.enums import CreatorUserRole, WorkflowRunTriggeredFrom diff --git a/api/tasks/batch_create_segment_to_index_task.py b/api/tasks/batch_create_segment_to_index_task.py index 4db551c73c..beb23d8354 100644 --- a/api/tasks/batch_create_segment_to_index_task.py +++ b/api/tasks/batch_create_segment_to_index_task.py @@ -8,7 +8,6 @@ from typing import Any import click import pandas as pd from celery import shared_task -from graphon.model_runtime.entities.model_entities import ModelType from sqlalchemy import func, select from core.db.session_factory import session_factory @@ -16,6 +15,7 @@ from core.model_manager import ModelManager from core.rag.index_processor.constant.index_type import IndexStructureType, IndexTechniqueType from extensions.ext_redis import redis_client from extensions.ext_storage import storage +from graphon.model_runtime.entities.model_entities import ModelType from libs import helper from libs.datetime_utils import naive_utc_now from models.dataset import Dataset, Document, DocumentSegment diff --git a/api/tasks/human_input_timeout_tasks.py b/api/tasks/human_input_timeout_tasks.py index ca73b4d374..fd743205a1 100644 --- a/api/tasks/human_input_timeout_tasks.py +++ b/api/tasks/human_input_timeout_tasks.py @@ -2,8 +2,6 @@ import logging from datetime import timedelta from celery import shared_task -from graphon.enums import WorkflowExecutionStatus -from graphon.nodes.human_input.enums import HumanInputFormKind, HumanInputFormStatus from sqlalchemy import or_, select from sqlalchemy.orm import sessionmaker @@ -11,6 +9,8 @@ from configs import dify_config from core.repositories.human_input_repository import HumanInputFormSubmissionRepository from extensions.ext_database import db from extensions.ext_storage import storage +from graphon.enums import WorkflowExecutionStatus +from graphon.nodes.human_input.enums import HumanInputFormKind, HumanInputFormStatus from libs.datetime_utils import ensure_naive_utc, naive_utc_now from models.human_input import HumanInputForm from models.workflow import WorkflowPause, WorkflowRun diff --git a/api/tasks/mail_human_input_delivery_task.py b/api/tasks/mail_human_input_delivery_task.py index 36c710d180..2a60be7762 100644 --- a/api/tasks/mail_human_input_delivery_task.py +++ b/api/tasks/mail_human_input_delivery_task.py @@ -6,7 +6,6 @@ from typing import Any import click from celery import shared_task -from graphon.runtime import GraphRuntimeState, VariablePool from sqlalchemy import select from sqlalchemy.orm import Session, sessionmaker @@ -15,6 +14,7 @@ from core.app.layers.pause_state_persist_layer import WorkflowResumptionContext from core.workflow.human_input_adapter import EmailDeliveryConfig, EmailDeliveryMethod from extensions.ext_database import db from extensions.ext_mail import mail +from graphon.runtime import GraphRuntimeState, VariablePool from models.human_input import ( DeliveryMethodType, HumanInputDelivery, diff --git a/api/tasks/workflow_execution_tasks.py b/api/tasks/workflow_execution_tasks.py index b4f975f4da..5ca04fd7c2 100644 --- a/api/tasks/workflow_execution_tasks.py +++ b/api/tasks/workflow_execution_tasks.py @@ -10,11 +10,11 @@ import logging from typing import Any from celery import shared_task -from graphon.entities import WorkflowExecution -from graphon.workflow_type_encoder import WorkflowRuntimeTypeConverter from sqlalchemy import select from core.db.session_factory import session_factory +from graphon.entities import WorkflowExecution +from graphon.workflow_type_encoder import WorkflowRuntimeTypeConverter from models import CreatorUserRole, WorkflowRun from models.enums import WorkflowRunTriggeredFrom diff --git a/api/tasks/workflow_node_execution_tasks.py b/api/tasks/workflow_node_execution_tasks.py index 128cdd72e1..0d5475a56d 100644 --- a/api/tasks/workflow_node_execution_tasks.py +++ b/api/tasks/workflow_node_execution_tasks.py @@ -10,13 +10,13 @@ import logging from typing import Any from celery import shared_task +from sqlalchemy import select + +from core.db.session_factory import session_factory from graphon.entities.workflow_node_execution import ( WorkflowNodeExecution, ) from graphon.workflow_type_encoder import WorkflowRuntimeTypeConverter -from sqlalchemy import select - -from core.db.session_factory import session_factory from models import CreatorUserRole, WorkflowNodeExecutionModel from models.workflow import WorkflowNodeExecutionTriggeredFrom diff --git a/api/tests/integration_tests/core/datasource/test_datasource_manager_integration.py b/api/tests/integration_tests/core/datasource/test_datasource_manager_integration.py index 91245e879e..a876b0c4aa 100644 --- a/api/tests/integration_tests/core/datasource/test_datasource_manager_integration.py +++ b/api/tests/integration_tests/core/datasource/test_datasource_manager_integration.py @@ -1,9 +1,8 @@ from collections.abc import Generator -from graphon.node_events import StreamCompletedEvent - from core.datasource.datasource_manager import DatasourceManager from core.datasource.entities.datasource_entities import DatasourceMessage +from graphon.node_events import StreamCompletedEvent def _gen_var_stream() -> Generator[DatasourceMessage, None, None]: diff --git a/api/tests/integration_tests/model_runtime/__mock/plugin_model.py b/api/tests/integration_tests/model_runtime/__mock/plugin_model.py index ce04a158a8..c4146d5ccd 100644 --- a/api/tests/integration_tests/model_runtime/__mock/plugin_model.py +++ b/api/tests/integration_tests/model_runtime/__mock/plugin_model.py @@ -4,6 +4,9 @@ from collections.abc import Generator, Sequence from decimal import Decimal from json import dumps +from core.plugin.entities.plugin_daemon import PluginModelProviderEntity +from core.plugin.impl.model import PluginModelClient + # import monkeypatch from graphon.model_runtime.entities.common_entities import I18nObject from graphon.model_runtime.entities.llm_entities import ( @@ -23,9 +26,6 @@ from graphon.model_runtime.entities.model_entities import ( ) from graphon.model_runtime.entities.provider_entities import ConfigurateMethod, ProviderEntity -from core.plugin.entities.plugin_daemon import PluginModelProviderEntity -from core.plugin.impl.model import PluginModelClient - class MockModelClass(PluginModelClient): def fetch_model_providers(self, tenant_id: str) -> Sequence[PluginModelProviderEntity]: diff --git a/api/tests/integration_tests/services/test_workflow_draft_variable_service.py b/api/tests/integration_tests/services/test_workflow_draft_variable_service.py index c7bb90f019..e130644338 100644 --- a/api/tests/integration_tests/services/test_workflow_draft_variable_service.py +++ b/api/tests/integration_tests/services/test_workflow_draft_variable_service.py @@ -3,10 +3,6 @@ import unittest import uuid import pytest -from graphon.nodes import BuiltinNodeTypes -from graphon.variables.segments import StringSegment -from graphon.variables.types import SegmentType -from graphon.variables.variables import StringVariable from sqlalchemy import delete, func, select from sqlalchemy.orm import Session @@ -15,6 +11,10 @@ from extensions.ext_database import db from extensions.ext_storage import storage from extensions.storage.storage_type import StorageType from factories.variable_factory import build_segment +from graphon.nodes import BuiltinNodeTypes +from graphon.variables.segments import StringSegment +from graphon.variables.types import SegmentType +from graphon.variables.variables import StringVariable from libs import datetime_utils from models.enums import CreatorUserRole from models.model import UploadFile diff --git a/api/tests/integration_tests/tasks/test_remove_app_and_related_data_task.py b/api/tests/integration_tests/tasks/test_remove_app_and_related_data_task.py index 3dfedd811d..4f444598b1 100644 --- a/api/tests/integration_tests/tasks/test_remove_app_and_related_data_task.py +++ b/api/tests/integration_tests/tasks/test_remove_app_and_related_data_task.py @@ -2,11 +2,11 @@ import uuid from unittest.mock import patch import pytest -from graphon.variables.segments import StringSegment from sqlalchemy import delete, func, select from core.db.session_factory import session_factory from extensions.storage.storage_type import StorageType +from graphon.variables.segments import StringSegment from models import Tenant from models.enums import CreatorUserRole from models.model import App, UploadFile @@ -209,7 +209,6 @@ class TestDeleteDraftVariablesWithOffloadIntegration: def setup_offload_test_data(self, app_and_tenant): tenant, app = app_and_tenant from graphon.variables.types import SegmentType - from libs.datetime_utils import naive_utc_now with session_factory.create_session() as session: @@ -453,7 +452,6 @@ class TestDeleteDraftVariablesSessionCommit: def setup_offload_test_data(self, app_and_tenant): """Create test data with offload files for session commit tests.""" from graphon.variables.types import SegmentType - from libs.datetime_utils import naive_utc_now tenant, app = app_and_tenant diff --git a/api/tests/integration_tests/workflow/nodes/__mock/model.py b/api/tests/integration_tests/workflow/nodes/__mock/model.py index c0143faa85..a9a2617bae 100644 --- a/api/tests/integration_tests/workflow/nodes/__mock/model.py +++ b/api/tests/integration_tests/workflow/nodes/__mock/model.py @@ -1,12 +1,11 @@ from unittest.mock import MagicMock -from graphon.model_runtime.entities.model_entities import ModelType - from core.app.entities.app_invoke_entities import ModelConfigWithCredentialsEntity from core.entities.provider_configuration import ProviderConfiguration, ProviderModelBundle from core.entities.provider_entities import CustomConfiguration, CustomProviderConfiguration, SystemConfiguration from core.model_manager import ModelInstance from core.plugin.impl.model_runtime_factory import create_plugin_model_provider_factory +from graphon.model_runtime.entities.model_entities import ModelType from models.provider import ProviderType diff --git a/api/tests/integration_tests/workflow/nodes/test_code.py b/api/tests/integration_tests/workflow/nodes/test_code.py index bb0c585dc8..aaa6092993 100644 --- a/api/tests/integration_tests/workflow/nodes/test_code.py +++ b/api/tests/integration_tests/workflow/nodes/test_code.py @@ -2,6 +2,11 @@ import time import uuid import pytest + +from configs import dify_config +from core.app.entities.app_invoke_entities import InvokeFrom, UserFrom +from core.workflow.node_factory import DifyNodeFactory +from core.workflow.system_variables import build_system_variables from graphon.enums import WorkflowNodeExecutionStatus from graphon.graph import Graph from graphon.node_events import NodeRunResult @@ -9,11 +14,6 @@ from graphon.nodes.code.code_node import CodeNode from graphon.nodes.code.entities import CodeNodeData from graphon.nodes.code.limits import CodeNodeLimits from graphon.runtime import GraphRuntimeState, VariablePool - -from configs import dify_config -from core.app.entities.app_invoke_entities import InvokeFrom, UserFrom -from core.workflow.node_factory import DifyNodeFactory -from core.workflow.system_variables import build_system_variables from tests.workflow_test_utils import build_test_graph_init_params pytest_plugins = ("tests.integration_tests.workflow.nodes.__mock.code_executor",) diff --git a/api/tests/integration_tests/workflow/nodes/test_llm.py b/api/tests/integration_tests/workflow/nodes/test_llm.py index bf640c7b96..3eead70163 100644 --- a/api/tests/integration_tests/workflow/nodes/test_llm.py +++ b/api/tests/integration_tests/workflow/nodes/test_llm.py @@ -4,6 +4,11 @@ import uuid from collections.abc import Generator from unittest.mock import MagicMock, patch +from core.app.entities.app_invoke_entities import InvokeFrom, UserFrom +from core.llm_generator.output_parser.structured_output import _parse_structured_output +from core.model_manager import ModelInstance +from core.workflow.system_variables import build_system_variables +from extensions.ext_database import db from graphon.enums import WorkflowNodeExecutionStatus from graphon.node_events import StreamCompletedEvent from graphon.nodes.llm.entities import LLMNodeData @@ -13,12 +18,6 @@ from graphon.nodes.llm.protocols import CredentialsProvider, ModelFactory from graphon.nodes.llm.runtime_protocols import PromptMessageSerializerProtocol from graphon.nodes.protocols import HttpClientProtocol from graphon.runtime import GraphRuntimeState, VariablePool - -from core.app.entities.app_invoke_entities import InvokeFrom, UserFrom -from core.llm_generator.output_parser.structured_output import _parse_structured_output -from core.model_manager import ModelInstance -from core.workflow.system_variables import build_system_variables -from extensions.ext_database import db from tests.workflow_test_utils import build_test_graph_init_params """FOR MOCK FIXTURES, DO NOT REMOVE""" diff --git a/api/tests/integration_tests/workflow/nodes/test_template_transform.py b/api/tests/integration_tests/workflow/nodes/test_template_transform.py index f87fbaf7ae..e2e0723fb8 100644 --- a/api/tests/integration_tests/workflow/nodes/test_template_transform.py +++ b/api/tests/integration_tests/workflow/nodes/test_template_transform.py @@ -1,16 +1,15 @@ import time import uuid +from core.app.entities.app_invoke_entities import InvokeFrom, UserFrom +from core.workflow.node_factory import DifyNodeFactory +from core.workflow.system_variables import build_system_variables from graphon.enums import WorkflowNodeExecutionStatus from graphon.graph import Graph from graphon.nodes.template_transform.entities import TemplateTransformNodeData from graphon.nodes.template_transform.template_transform_node import TemplateTransformNode from graphon.runtime import GraphRuntimeState, VariablePool from graphon.template_rendering import TemplateRenderError - -from core.app.entities.app_invoke_entities import InvokeFrom, UserFrom -from core.workflow.node_factory import DifyNodeFactory -from core.workflow.system_variables import build_system_variables from tests.workflow_test_utils import build_test_graph_init_params diff --git a/api/tests/test_containers_integration_tests/controllers/console/app/test_chat_conversation_status_count_api.py b/api/tests/test_containers_integration_tests/controllers/console/app/test_chat_conversation_status_count_api.py index ea95959a82..5a22f81a69 100644 --- a/api/tests/test_containers_integration_tests/controllers/console/app/test_chat_conversation_status_count_api.py +++ b/api/tests/test_containers_integration_tests/controllers/console/app/test_chat_conversation_status_count_api.py @@ -4,11 +4,11 @@ import json import uuid from flask.testing import FlaskClient -from graphon.enums import WorkflowExecutionStatus from sqlalchemy.orm import Session from configs import dify_config from constants import HEADER_NAME_CSRF_TOKEN +from graphon.enums import WorkflowExecutionStatus from libs.datetime_utils import naive_utc_now from libs.token import _real_cookie_name, generate_csrf_token from models import Account, DifySetup, Tenant, TenantAccountJoin diff --git a/api/tests/test_containers_integration_tests/core/app/layers/test_pause_state_persist_layer.py b/api/tests/test_containers_integration_tests/core/app/layers/test_pause_state_persist_layer.py index b4b65abdb6..c342e8994b 100644 --- a/api/tests/test_containers_integration_tests/core/app/layers/test_pause_state_persist_layer.py +++ b/api/tests/test_containers_integration_tests/core/app/layers/test_pause_state_persist_layer.py @@ -22,13 +22,6 @@ import uuid from time import time import pytest -from graphon.entities.pause_reason import SchedulingPause -from graphon.enums import WorkflowExecutionStatus -from graphon.graph_engine.entities.commands import GraphEngineCommand -from graphon.graph_engine.layers.base import GraphEngineLayerNotInitializedError -from graphon.graph_events import GraphRunPausedEvent -from graphon.model_runtime.entities.llm_entities import LLMUsage -from graphon.runtime import GraphRuntimeState, ReadOnlyGraphRuntimeState, ReadOnlyGraphRuntimeStateWrapper, VariablePool from sqlalchemy import Engine, delete, select from sqlalchemy.orm import Session @@ -40,6 +33,13 @@ from core.app.layers.pause_state_persist_layer import ( ) from core.workflow.system_variables import build_system_variables from extensions.ext_storage import storage +from graphon.entities.pause_reason import SchedulingPause +from graphon.enums import WorkflowExecutionStatus +from graphon.graph_engine.entities.commands import GraphEngineCommand +from graphon.graph_engine.layers.base import GraphEngineLayerNotInitializedError +from graphon.graph_events import GraphRunPausedEvent +from graphon.model_runtime.entities.llm_entities import LLMUsage +from graphon.runtime import GraphRuntimeState, ReadOnlyGraphRuntimeState, ReadOnlyGraphRuntimeStateWrapper, VariablePool from libs.datetime_utils import naive_utc_now from models import Account from models import WorkflowPause as WorkflowPauseModel 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 e0e1a07089..6524d6ce61 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 @@ -4,7 +4,6 @@ from __future__ import annotations from uuid import uuid4 -from graphon.nodes.human_input.entities import FormDefinition, HumanInputNodeData, UserAction from sqlalchemy import Engine, select from sqlalchemy.orm import Session @@ -18,6 +17,7 @@ from core.workflow.human_input_adapter import ( MemberRecipient, WebAppDeliveryMethod, ) +from graphon.nodes.human_input.entities import FormDefinition, HumanInputNodeData, UserAction from models.account import ( Account, AccountStatus, 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 241b638791..5aed230cd4 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 @@ -4,6 +4,17 @@ from datetime import timedelta from unittest.mock import MagicMock import pytest +from sqlalchemy import delete, select +from sqlalchemy.orm import Session + +from core.app.app_config.entities import WorkflowUIBasedAppConfig +from core.app.entities.app_invoke_entities import InvokeFrom, WorkflowAppGenerateEntity +from core.app.workflow.layers import PersistenceWorkflowInfo, WorkflowPersistenceLayer +from core.repositories.human_input_repository import HumanInputFormEntity, HumanInputFormRepository +from core.repositories.sqlalchemy_workflow_execution_repository import SQLAlchemyWorkflowExecutionRepository +from core.repositories.sqlalchemy_workflow_node_execution_repository import SQLAlchemyWorkflowNodeExecutionRepository +from core.workflow.node_runtime import DifyHumanInputNodeRuntime +from core.workflow.system_variables import build_system_variables from graphon.enums import WorkflowType from graphon.graph import Graph from graphon.graph_engine import GraphEngine @@ -16,17 +27,6 @@ from graphon.nodes.human_input.human_input_node import HumanInputNode from graphon.nodes.start.entities import StartNodeData from graphon.nodes.start.start_node import StartNode from graphon.runtime import GraphRuntimeState, VariablePool -from sqlalchemy import delete, select -from sqlalchemy.orm import Session - -from core.app.app_config.entities import WorkflowUIBasedAppConfig -from core.app.entities.app_invoke_entities import InvokeFrom, WorkflowAppGenerateEntity -from core.app.workflow.layers import PersistenceWorkflowInfo, WorkflowPersistenceLayer -from core.repositories.human_input_repository import HumanInputFormEntity, HumanInputFormRepository -from core.repositories.sqlalchemy_workflow_execution_repository import SQLAlchemyWorkflowExecutionRepository -from core.repositories.sqlalchemy_workflow_node_execution_repository import SQLAlchemyWorkflowNodeExecutionRepository -from core.workflow.node_runtime import DifyHumanInputNodeRuntime -from core.workflow.system_variables import build_system_variables from libs.datetime_utils import naive_utc_now from models import Account from models.account import AccountStatus, Tenant, TenantAccountJoin, TenantAccountRole, TenantStatus diff --git a/api/tests/test_containers_integration_tests/factories/test_storage_key_loader.py b/api/tests/test_containers_integration_tests/factories/test_storage_key_loader.py index 066b149b37..26b80cebbb 100644 --- a/api/tests/test_containers_integration_tests/factories/test_storage_key_loader.py +++ b/api/tests/test_containers_integration_tests/factories/test_storage_key_loader.py @@ -1,22 +1,23 @@ -import unittest +from __future__ import annotations + from datetime import UTC, datetime from unittest.mock import patch from uuid import uuid4 import pytest -from graphon.file import File, FileTransferMethod, FileType from sqlalchemy.orm import Session from core.app.file_access import DatabaseFileAccessController from extensions.ext_database import db from extensions.storage.storage_type import StorageType from factories.file_factory import StorageKeyLoader +from graphon.file import File, FileTransferMethod, FileType from models import ToolFile, UploadFile from models.enums import CreatorUserRole @pytest.mark.usefixtures("flask_req_ctx_with_containers") -class TestStorageKeyLoader(unittest.TestCase): +class TestStorageKeyLoader: """ Integration tests for StorageKeyLoader class. @@ -24,110 +25,82 @@ class TestStorageKeyLoader(unittest.TestCase): with different transfer methods: LOCAL_FILE, REMOTE_URL, and TOOL_FILE. """ - def setUp(self): - """Set up test data before each test method.""" - self.session = db.session() - self.tenant_id = str(uuid4()) - self.user_id = str(uuid4()) - self.conversation_id = str(uuid4()) - - # Create test data that will be cleaned up after each test - self.test_upload_files = [] - self.test_tool_files = [] - - # Create StorageKeyLoader instance - self.loader = StorageKeyLoader( - self.session, - self.tenant_id, - access_controller=DatabaseFileAccessController(), - ) - - def tearDown(self): - """Clean up test data after each test method.""" - self.session.rollback() + # ------------------------------------------------------------------ + # Per-test helpers (use db_session_with_containers as parameter) + # ------------------------------------------------------------------ + @staticmethod def _create_upload_file( - self, file_id: str | None = None, storage_key: str | None = None, tenant_id: str | None = None + session: Session, + tenant_id: str, + user_id: str, + *, + file_id: str | None = None, + storage_key: str | None = None, + override_tenant_id: str | None = None, ) -> UploadFile: - """Helper method to create an UploadFile record for testing.""" - if file_id is None: - file_id = str(uuid4()) - if storage_key is None: - storage_key = f"test_storage_key_{uuid4()}" - if tenant_id is None: - tenant_id = self.tenant_id - + """Create and flush an UploadFile record for testing.""" upload_file = UploadFile( - tenant_id=tenant_id, + tenant_id=override_tenant_id if override_tenant_id is not None else tenant_id, storage_type=StorageType.LOCAL, - key=storage_key, + key=storage_key or f"test_storage_key_{uuid4()}", name="test_file.txt", size=1024, extension=".txt", mime_type="text/plain", created_by_role=CreatorUserRole.ACCOUNT, - created_by=self.user_id, + created_by=user_id, created_at=datetime.now(UTC), used=False, ) - upload_file.id = file_id - - self.session.add(upload_file) - self.session.flush() - self.test_upload_files.append(upload_file) - + upload_file.id = file_id or str(uuid4()) + session.add(upload_file) + session.flush() return upload_file + @staticmethod def _create_tool_file( - self, file_id: str | None = None, file_key: str | None = None, tenant_id: str | None = None + session: Session, + tenant_id: str, + user_id: str, + conversation_id: str, + *, + file_id: str | None = None, + file_key: str | None = None, + override_tenant_id: str | None = None, ) -> ToolFile: - """Helper method to create a ToolFile record for testing.""" - if file_id is None: - file_id = str(uuid4()) - if file_key is None: - file_key = f"test_file_key_{uuid4()}" - if tenant_id is None: - tenant_id = self.tenant_id - + """Create and flush a ToolFile record for testing.""" tool_file = ToolFile( - user_id=self.user_id, - tenant_id=tenant_id, - conversation_id=self.conversation_id, - file_key=file_key, + user_id=user_id, + tenant_id=override_tenant_id if override_tenant_id is not None else tenant_id, + conversation_id=conversation_id, + file_key=file_key or f"test_file_key_{uuid4()}", mimetype="text/plain", original_url="http://example.com/file.txt", name="test_tool_file.txt", size=2048, ) - tool_file.id = file_id - - self.session.add(tool_file) - self.session.flush() - self.test_tool_files.append(tool_file) - + tool_file.id = file_id or str(uuid4()) + session.add(tool_file) + session.flush() return tool_file - def _create_file(self, related_id: str, transfer_method: FileTransferMethod, tenant_id: str | None = None) -> File: - """Helper method to create a File object for testing.""" - if tenant_id is None: - tenant_id = self.tenant_id - - # Set related_id for LOCAL_FILE and TOOL_FILE transfer methods - file_related_id = None - remote_url = None - - if transfer_method in (FileTransferMethod.LOCAL_FILE, FileTransferMethod.TOOL_FILE): - file_related_id = related_id - elif transfer_method == FileTransferMethod.REMOTE_URL: - remote_url = "https://example.com/test_file.txt" - file_related_id = related_id - + @staticmethod + def _create_file( + tenant_id: str, + related_id: str, + transfer_method: FileTransferMethod, + *, + override_tenant_id: str | None = None, + ) -> File: + """Build a File value-object for testing.""" + remote_url = "https://example.com/test_file.txt" if transfer_method == FileTransferMethod.REMOTE_URL else None return File( - file_id=str(uuid4()), # Generate new UUID for File.id - tenant_id=tenant_id, + file_id=str(uuid4()), + tenant_id=override_tenant_id if override_tenant_id is not None else tenant_id, file_type=FileType.DOCUMENT, transfer_method=transfer_method, - related_id=file_related_id, + related_id=related_id, remote_url=remote_url, filename="test_file.txt", extension=".txt", @@ -136,240 +109,280 @@ class TestStorageKeyLoader(unittest.TestCase): storage_key="initial_key", ) - def test_load_storage_keys_local_file(self): + # ------------------------------------------------------------------ + # Tests + # ------------------------------------------------------------------ + + def test_load_storage_keys_local_file(self, db_session_with_containers: Session): """Test loading storage keys for LOCAL_FILE transfer method.""" - # Create test data - upload_file = self._create_upload_file() - file = self._create_file(related_id=upload_file.id, transfer_method=FileTransferMethod.LOCAL_FILE) + tenant_id = str(uuid4()) + user_id = str(uuid4()) - # Load storage keys - self.loader.load_storage_keys([file]) + upload_file = self._create_upload_file(db_session_with_containers, tenant_id, user_id) + file = self._create_file(tenant_id, related_id=upload_file.id, transfer_method=FileTransferMethod.LOCAL_FILE) + + loader = StorageKeyLoader( + db_session_with_containers, tenant_id, access_controller=DatabaseFileAccessController() + ) + loader.load_storage_keys([file]) - # Verify storage key was loaded correctly assert file._storage_key == upload_file.key - def test_load_storage_keys_remote_url(self): + def test_load_storage_keys_remote_url(self, db_session_with_containers: Session): """Test loading storage keys for REMOTE_URL transfer method.""" - # Create test data - upload_file = self._create_upload_file() - file = self._create_file(related_id=upload_file.id, transfer_method=FileTransferMethod.REMOTE_URL) + tenant_id = str(uuid4()) + user_id = str(uuid4()) - # Load storage keys - self.loader.load_storage_keys([file]) + upload_file = self._create_upload_file(db_session_with_containers, tenant_id, user_id) + file = self._create_file(tenant_id, related_id=upload_file.id, transfer_method=FileTransferMethod.REMOTE_URL) + + loader = StorageKeyLoader( + db_session_with_containers, tenant_id, access_controller=DatabaseFileAccessController() + ) + loader.load_storage_keys([file]) - # Verify storage key was loaded correctly assert file._storage_key == upload_file.key - def test_load_storage_keys_tool_file(self): + def test_load_storage_keys_tool_file(self, db_session_with_containers: Session): """Test loading storage keys for TOOL_FILE transfer method.""" - # Create test data - tool_file = self._create_tool_file() - file = self._create_file(related_id=tool_file.id, transfer_method=FileTransferMethod.TOOL_FILE) + tenant_id = str(uuid4()) + user_id = str(uuid4()) + conversation_id = str(uuid4()) - # Load storage keys - self.loader.load_storage_keys([file]) + tool_file = self._create_tool_file(db_session_with_containers, tenant_id, user_id, conversation_id) + file = self._create_file(tenant_id, related_id=tool_file.id, transfer_method=FileTransferMethod.TOOL_FILE) + + loader = StorageKeyLoader( + db_session_with_containers, tenant_id, access_controller=DatabaseFileAccessController() + ) + loader.load_storage_keys([file]) - # Verify storage key was loaded correctly assert file._storage_key == tool_file.file_key - def test_load_storage_keys_mixed_methods(self): + def test_load_storage_keys_mixed_methods(self, db_session_with_containers: Session): """Test batch loading with mixed transfer methods.""" - # Create test data for different transfer methods - upload_file1 = self._create_upload_file() - upload_file2 = self._create_upload_file() - tool_file = self._create_tool_file() + tenant_id = str(uuid4()) + user_id = str(uuid4()) + conversation_id = str(uuid4()) - file1 = self._create_file(related_id=upload_file1.id, transfer_method=FileTransferMethod.LOCAL_FILE) - file2 = self._create_file(related_id=upload_file2.id, transfer_method=FileTransferMethod.REMOTE_URL) - file3 = self._create_file(related_id=tool_file.id, transfer_method=FileTransferMethod.TOOL_FILE) + upload_file1 = self._create_upload_file(db_session_with_containers, tenant_id, user_id) + upload_file2 = self._create_upload_file(db_session_with_containers, tenant_id, user_id) + tool_file = self._create_tool_file(db_session_with_containers, tenant_id, user_id, conversation_id) - files = [file1, file2, file3] + file1 = self._create_file(tenant_id, related_id=upload_file1.id, transfer_method=FileTransferMethod.LOCAL_FILE) + file2 = self._create_file(tenant_id, related_id=upload_file2.id, transfer_method=FileTransferMethod.REMOTE_URL) + file3 = self._create_file(tenant_id, related_id=tool_file.id, transfer_method=FileTransferMethod.TOOL_FILE) - # Load storage keys - self.loader.load_storage_keys(files) + loader = StorageKeyLoader( + db_session_with_containers, tenant_id, access_controller=DatabaseFileAccessController() + ) + loader.load_storage_keys([file1, file2, file3]) - # Verify all storage keys were loaded correctly assert file1._storage_key == upload_file1.key assert file2._storage_key == upload_file2.key assert file3._storage_key == tool_file.file_key - def test_load_storage_keys_empty_list(self): - """Test with empty file list.""" - # Should not raise any exceptions - self.loader.load_storage_keys([]) + def test_load_storage_keys_empty_list(self, db_session_with_containers: Session): + """Test with empty file list — should not raise.""" + tenant_id = str(uuid4()) + loader = StorageKeyLoader( + db_session_with_containers, tenant_id, access_controller=DatabaseFileAccessController() + ) + loader.load_storage_keys([]) - def test_load_storage_keys_ignores_legacy_file_tenant_id(self): + def test_load_storage_keys_ignores_legacy_file_tenant_id(self, db_session_with_containers: Session): """Legacy file tenant_id should not override the loader tenant scope.""" - upload_file = self._create_upload_file() + tenant_id = str(uuid4()) + user_id = str(uuid4()) + + upload_file = self._create_upload_file(db_session_with_containers, tenant_id, user_id) file = self._create_file( - related_id=upload_file.id, transfer_method=FileTransferMethod.LOCAL_FILE, tenant_id=str(uuid4()) + tenant_id, + related_id=upload_file.id, + transfer_method=FileTransferMethod.LOCAL_FILE, + override_tenant_id=str(uuid4()), ) - self.loader.load_storage_keys([file]) + loader = StorageKeyLoader( + db_session_with_containers, tenant_id, access_controller=DatabaseFileAccessController() + ) + loader.load_storage_keys([file]) assert file._storage_key == upload_file.key - def test_load_storage_keys_missing_file_id(self): - """Test with None file.related_id.""" - # Create a file with valid parameters first, then manually set related_id to None - file = self._create_file(related_id=str(uuid4()), transfer_method=FileTransferMethod.LOCAL_FILE) + def test_load_storage_keys_missing_file_id(self, db_session_with_containers: Session): + """Test with None file.related_id — should raise ValueError.""" + tenant_id = str(uuid4()) + user_id = str(uuid4()) + + upload_file = self._create_upload_file(db_session_with_containers, tenant_id, user_id) + file = self._create_file(tenant_id, related_id=upload_file.id, transfer_method=FileTransferMethod.LOCAL_FILE) file.related_id = None - # Should raise ValueError for None file related_id - with pytest.raises(ValueError) as context: - self.loader.load_storage_keys([file]) + loader = StorageKeyLoader( + db_session_with_containers, tenant_id, access_controller=DatabaseFileAccessController() + ) + with pytest.raises(ValueError, match="file id should not be None."): + loader.load_storage_keys([file]) - assert str(context.value) == "file id should not be None." + def test_load_storage_keys_nonexistent_upload_file_records(self, db_session_with_containers: Session): + """Test with missing UploadFile database records — should raise ValueError.""" + tenant_id = str(uuid4()) + file = self._create_file(tenant_id, related_id=str(uuid4()), transfer_method=FileTransferMethod.LOCAL_FILE) - def test_load_storage_keys_nonexistent_upload_file_records(self): - """Test with missing UploadFile database records.""" - # Create file with non-existent upload file id - non_existent_id = str(uuid4()) - file = self._create_file(related_id=non_existent_id, transfer_method=FileTransferMethod.LOCAL_FILE) - - # Should raise ValueError for missing record + loader = StorageKeyLoader( + db_session_with_containers, tenant_id, access_controller=DatabaseFileAccessController() + ) with pytest.raises(ValueError): - self.loader.load_storage_keys([file]) + loader.load_storage_keys([file]) - def test_load_storage_keys_nonexistent_tool_file_records(self): - """Test with missing ToolFile database records.""" - # Create file with non-existent tool file id - non_existent_id = str(uuid4()) - file = self._create_file(related_id=non_existent_id, transfer_method=FileTransferMethod.TOOL_FILE) + def test_load_storage_keys_nonexistent_tool_file_records(self, db_session_with_containers: Session): + """Test with missing ToolFile database records — should raise ValueError.""" + tenant_id = str(uuid4()) + file = self._create_file(tenant_id, related_id=str(uuid4()), transfer_method=FileTransferMethod.TOOL_FILE) - # Should raise ValueError for missing record + loader = StorageKeyLoader( + db_session_with_containers, tenant_id, access_controller=DatabaseFileAccessController() + ) with pytest.raises(ValueError): - self.loader.load_storage_keys([file]) + loader.load_storage_keys([file]) - def test_load_storage_keys_invalid_uuid(self): - """Test with invalid UUID format.""" - # Create a file with valid parameters first, then manually set invalid related_id - file = self._create_file(related_id=str(uuid4()), transfer_method=FileTransferMethod.LOCAL_FILE) + def test_load_storage_keys_invalid_uuid(self, db_session_with_containers: Session): + """Test with invalid UUID format — should raise ValueError.""" + tenant_id = str(uuid4()) + user_id = str(uuid4()) + + upload_file = self._create_upload_file(db_session_with_containers, tenant_id, user_id) + file = self._create_file(tenant_id, related_id=upload_file.id, transfer_method=FileTransferMethod.LOCAL_FILE) file.related_id = "invalid-uuid-format" - # Should raise ValueError for invalid UUID + loader = StorageKeyLoader( + db_session_with_containers, tenant_id, access_controller=DatabaseFileAccessController() + ) with pytest.raises(ValueError): - self.loader.load_storage_keys([file]) + loader.load_storage_keys([file]) - def test_load_storage_keys_batch_efficiency(self): - """Test batched operations use efficient queries.""" - # Create multiple files of different types - upload_files = [self._create_upload_file() for _ in range(3)] - tool_files = [self._create_tool_file() for _ in range(2)] + def test_load_storage_keys_batch_efficiency(self, db_session_with_containers: Session): + """Batched operations should issue exactly 2 queries for mixed file types.""" + tenant_id = str(uuid4()) + user_id = str(uuid4()) + conversation_id = str(uuid4()) - files = [] - files.extend( - [self._create_file(related_id=uf.id, transfer_method=FileTransferMethod.LOCAL_FILE) for uf in upload_files] + upload_files = [self._create_upload_file(db_session_with_containers, tenant_id, user_id) for _ in range(3)] + tool_files = [ + self._create_tool_file(db_session_with_containers, tenant_id, user_id, conversation_id) for _ in range(2) + ] + + files = [ + self._create_file(tenant_id, related_id=uf.id, transfer_method=FileTransferMethod.LOCAL_FILE) + for uf in upload_files + ] + [ + self._create_file(tenant_id, related_id=tf.id, transfer_method=FileTransferMethod.TOOL_FILE) + for tf in tool_files + ] + + loader = StorageKeyLoader( + db_session_with_containers, tenant_id, access_controller=DatabaseFileAccessController() ) - files.extend( - [self._create_file(related_id=tf.id, transfer_method=FileTransferMethod.TOOL_FILE) for tf in tool_files] - ) - - # Mock the session to count queries - with patch.object(self.session, "scalars", wraps=self.session.scalars) as mock_scalars: - self.loader.load_storage_keys(files) - - # Should make exactly 2 queries (one for upload_files, one for tool_files) + with patch.object( + db_session_with_containers, "scalars", wraps=db_session_with_containers.scalars + ) as mock_scalars: + loader.load_storage_keys(files) + # Exactly 2 DB round-trips: one for UploadFile, one for ToolFile assert mock_scalars.call_count == 2 - # Verify all storage keys were loaded correctly for i, file in enumerate(files[:3]): assert file._storage_key == upload_files[i].key for i, file in enumerate(files[3:]): assert file._storage_key == tool_files[i].file_key - def test_load_storage_keys_tenant_isolation(self): - """Test that tenant isolation works correctly.""" - # Create files for different tenants + def test_load_storage_keys_tenant_isolation(self, db_session_with_containers: Session): + """Loader should not surface records belonging to a different tenant.""" + tenant_id = str(uuid4()) other_tenant_id = str(uuid4()) + user_id = str(uuid4()) - # Create upload file for current tenant - upload_file_current = self._create_upload_file() + upload_file_current = self._create_upload_file(db_session_with_containers, tenant_id, user_id) file_current = self._create_file( - related_id=upload_file_current.id, transfer_method=FileTransferMethod.LOCAL_FILE + tenant_id, related_id=upload_file_current.id, transfer_method=FileTransferMethod.LOCAL_FILE ) - # Create upload file for other tenant (but don't add to cleanup list) - upload_file_other = UploadFile( - tenant_id=other_tenant_id, - storage_type=StorageType.LOCAL, - key="other_tenant_key", - name="other_file.txt", - size=1024, - extension=".txt", - mime_type="text/plain", - created_by_role=CreatorUserRole.ACCOUNT, - created_by=self.user_id, - created_at=datetime.now(UTC), - used=False, + upload_file_other = self._create_upload_file( + db_session_with_containers, + tenant_id, + user_id, + override_tenant_id=other_tenant_id, ) - upload_file_other.id = str(uuid4()) - self.session.add(upload_file_other) - self.session.flush() - - # Create file for other tenant but try to load with current tenant's loader file_other = self._create_file( - related_id=upload_file_other.id, transfer_method=FileTransferMethod.LOCAL_FILE, tenant_id=other_tenant_id + tenant_id, + related_id=upload_file_other.id, + transfer_method=FileTransferMethod.LOCAL_FILE, + override_tenant_id=other_tenant_id, ) - # Should raise ValueError due to tenant mismatch - with pytest.raises(ValueError) as context: - self.loader.load_storage_keys([file_other]) + loader = StorageKeyLoader( + db_session_with_containers, tenant_id, access_controller=DatabaseFileAccessController() + ) - assert "Upload file not found for id:" in str(context.value) + with pytest.raises(ValueError, match="Upload file not found for id:"): + loader.load_storage_keys([file_other]) - # Current tenant's file should still work - self.loader.load_storage_keys([file_current]) + # Current-tenant file still resolves correctly + loader.load_storage_keys([file_current]) assert file_current._storage_key == upload_file_current.key - def test_load_storage_keys_mixed_tenant_batch(self): - """Test batch with mixed tenant files (should fail on first mismatch).""" - # Create files for current tenant - upload_file_current = self._create_upload_file() + def test_load_storage_keys_mixed_tenant_batch(self, db_session_with_containers: Session): + """A batch containing a foreign-tenant file should fail on the mismatch.""" + tenant_id = str(uuid4()) + user_id = str(uuid4()) + + upload_file_current = self._create_upload_file(db_session_with_containers, tenant_id, user_id) file_current = self._create_file( - related_id=upload_file_current.id, transfer_method=FileTransferMethod.LOCAL_FILE + tenant_id, related_id=upload_file_current.id, transfer_method=FileTransferMethod.LOCAL_FILE ) - - # Create file for different tenant - other_tenant_id = str(uuid4()) file_other = self._create_file( - related_id=str(uuid4()), transfer_method=FileTransferMethod.LOCAL_FILE, tenant_id=other_tenant_id + tenant_id, + related_id=str(uuid4()), + transfer_method=FileTransferMethod.LOCAL_FILE, + override_tenant_id=str(uuid4()), ) - # Should raise ValueError on tenant mismatch - with pytest.raises(ValueError) as context: - self.loader.load_storage_keys([file_current, file_other]) + loader = StorageKeyLoader( + db_session_with_containers, tenant_id, access_controller=DatabaseFileAccessController() + ) + with pytest.raises(ValueError, match="Upload file not found for id:"): + loader.load_storage_keys([file_current, file_other]) - assert "Upload file not found for id:" in str(context.value) + def test_load_storage_keys_duplicate_file_ids(self, db_session_with_containers: Session): + """Duplicate file IDs in the batch should be handled gracefully.""" + tenant_id = str(uuid4()) + user_id = str(uuid4()) - def test_load_storage_keys_duplicate_file_ids(self): - """Test handling of duplicate file IDs in the batch.""" - # Create upload file - upload_file = self._create_upload_file() + upload_file = self._create_upload_file(db_session_with_containers, tenant_id, user_id) + file1 = self._create_file(tenant_id, related_id=upload_file.id, transfer_method=FileTransferMethod.LOCAL_FILE) + file2 = self._create_file(tenant_id, related_id=upload_file.id, transfer_method=FileTransferMethod.LOCAL_FILE) - # Create two File objects with same related_id - file1 = self._create_file(related_id=upload_file.id, transfer_method=FileTransferMethod.LOCAL_FILE) - file2 = self._create_file(related_id=upload_file.id, transfer_method=FileTransferMethod.LOCAL_FILE) + loader = StorageKeyLoader( + db_session_with_containers, tenant_id, access_controller=DatabaseFileAccessController() + ) + loader.load_storage_keys([file1, file2]) - # Should handle duplicates gracefully - self.loader.load_storage_keys([file1, file2]) - - # Both files should have the same storage key assert file1._storage_key == upload_file.key assert file2._storage_key == upload_file.key - def test_load_storage_keys_session_isolation(self): - """Test that the loader uses the provided session correctly.""" - # Create test data - upload_file = self._create_upload_file() - file = self._create_file(related_id=upload_file.id, transfer_method=FileTransferMethod.LOCAL_FILE) + def test_load_storage_keys_session_isolation(self, db_session_with_containers: Session): + """A loader backed by an uncommitted session should not see data from another session.""" + tenant_id = str(uuid4()) + user_id = str(uuid4()) - # Create loader with different session (same underlying connection) + upload_file = self._create_upload_file(db_session_with_containers, tenant_id, user_id) + file = self._create_file(tenant_id, related_id=upload_file.id, transfer_method=FileTransferMethod.LOCAL_FILE) + # A loader with a fresh, separate session cannot see uncommitted rows from db_session_with_containers with Session(bind=db.engine) as other_session: other_loader = StorageKeyLoader( other_session, - self.tenant_id, + tenant_id, access_controller=DatabaseFileAccessController(), ) with pytest.raises(ValueError): diff --git a/api/tests/test_containers_integration_tests/repositories/test_sqlalchemy_api_workflow_node_execution_repository.py b/api/tests/test_containers_integration_tests/repositories/test_sqlalchemy_api_workflow_node_execution_repository.py index a68b3a08c7..641399c7f9 100644 --- a/api/tests/test_containers_integration_tests/repositories/test_sqlalchemy_api_workflow_node_execution_repository.py +++ b/api/tests/test_containers_integration_tests/repositories/test_sqlalchemy_api_workflow_node_execution_repository.py @@ -5,10 +5,10 @@ from __future__ import annotations from datetime import timedelta from uuid import uuid4 -from graphon.enums import WorkflowNodeExecutionStatus from sqlalchemy import Engine, delete from sqlalchemy.orm import Session, sessionmaker +from graphon.enums import WorkflowNodeExecutionStatus from libs.datetime_utils import naive_utc_now from models.enums import CreatorUserRole from models.workflow import WorkflowNodeExecutionModel diff --git a/api/tests/test_containers_integration_tests/services/test_agent_service.py b/api/tests/test_containers_integration_tests/services/test_agent_service.py index 4f3c0e4200..00a2f9a59f 100644 --- a/api/tests/test_containers_integration_tests/services/test_agent_service.py +++ b/api/tests/test_containers_integration_tests/services/test_agent_service.py @@ -842,7 +842,6 @@ class TestAgentService: conversation, message = self._create_test_conversation_and_message(db_session_with_containers, app, account) from graphon.file import FileTransferMethod, FileType - from models.enums import CreatorUserRole # Add files to message diff --git a/api/tests/test_containers_integration_tests/services/test_app_dsl_service.py b/api/tests/test_containers_integration_tests/services/test_app_dsl_service.py index 9c21880aab..1835650c42 100644 --- a/api/tests/test_containers_integration_tests/services/test_app_dsl_service.py +++ b/api/tests/test_containers_integration_tests/services/test_app_dsl_service.py @@ -10,6 +10,7 @@ from uuid import uuid4 import pytest import yaml from faker import Faker + from core.trigger.constants import ( TRIGGER_PLUGIN_NODE_TYPE, TRIGGER_SCHEDULE_NODE_TYPE, diff --git a/api/tests/test_containers_integration_tests/services/test_dataset_service.py b/api/tests/test_containers_integration_tests/services/test_dataset_service.py index f9bfa570cb..0de3c64c4f 100644 --- a/api/tests/test_containers_integration_tests/services/test_dataset_service.py +++ b/api/tests/test_containers_integration_tests/services/test_dataset_service.py @@ -9,11 +9,11 @@ from unittest.mock import Mock, patch from uuid import uuid4 import pytest -from graphon.model_runtime.entities.model_entities import ModelType from sqlalchemy.orm import Session from core.rag.index_processor.constant.index_type import IndexStructureType, IndexTechniqueType from core.rag.retrieval.retrieval_methods import RetrievalMethod +from graphon.model_runtime.entities.model_entities import ModelType from models.account import Account, Tenant, TenantAccountJoin, TenantAccountRole from models.dataset import Dataset, DatasetPermissionEnum, Document, ExternalKnowledgeBindings, Pipeline from models.enums import DatasetRuntimeMode, DataSourceType, DocumentCreatedFrom, IndexingStatus diff --git a/api/tests/test_containers_integration_tests/services/test_dataset_service_update_dataset.py b/api/tests/test_containers_integration_tests/services/test_dataset_service_update_dataset.py index 2974e00897..ac0483a45d 100644 --- a/api/tests/test_containers_integration_tests/services/test_dataset_service_update_dataset.py +++ b/api/tests/test_containers_integration_tests/services/test_dataset_service_update_dataset.py @@ -3,10 +3,10 @@ from unittest.mock import Mock, patch from uuid import uuid4 import pytest -from graphon.model_runtime.entities.model_entities import ModelType from sqlalchemy.orm import Session from core.rag.index_processor.constant.index_type import IndexTechniqueType +from graphon.model_runtime.entities.model_entities import ModelType from models.account import ( Account, AccountStatus, diff --git a/api/tests/test_containers_integration_tests/services/test_delete_archived_workflow_run.py b/api/tests/test_containers_integration_tests/services/test_delete_archived_workflow_run.py index c8f04e9215..fe426ae516 100644 --- a/api/tests/test_containers_integration_tests/services/test_delete_archived_workflow_run.py +++ b/api/tests/test_containers_integration_tests/services/test_delete_archived_workflow_run.py @@ -5,9 +5,9 @@ Testcontainers integration tests for archived workflow run deletion service. from datetime import UTC, datetime, timedelta from uuid import uuid4 -from graphon.enums import WorkflowExecutionStatus from sqlalchemy import select +from graphon.enums import WorkflowExecutionStatus from models.enums import CreatorUserRole, WorkflowRunTriggeredFrom from models.workflow import WorkflowArchiveLog, WorkflowRun from services.retention.workflow_run.delete_archived_workflow_run import ArchivedWorkflowRunDeletion diff --git a/api/tests/test_containers_integration_tests/services/test_human_input_delivery_test.py b/api/tests/test_containers_integration_tests/services/test_human_input_delivery_test.py index 598daa86e6..80f9083e81 100644 --- a/api/tests/test_containers_integration_tests/services/test_human_input_delivery_test.py +++ b/api/tests/test_containers_integration_tests/services/test_human_input_delivery_test.py @@ -3,8 +3,6 @@ import uuid from unittest.mock import MagicMock import pytest -from graphon.enums import BuiltinNodeTypes -from graphon.nodes.human_input.entities import HumanInputNodeData from core.workflow.human_input_adapter import ( EmailDeliveryConfig, @@ -12,6 +10,8 @@ from core.workflow.human_input_adapter import ( EmailRecipients, ExternalRecipient, ) +from graphon.enums import BuiltinNodeTypes +from graphon.nodes.human_input.entities import HumanInputNodeData from models.account import Account, Tenant, TenantAccountJoin, TenantAccountRole from models.model import App, AppMode from models.workflow import Workflow, WorkflowType diff --git a/api/tests/test_containers_integration_tests/services/test_model_provider_service.py b/api/tests/test_containers_integration_tests/services/test_model_provider_service.py index ba926bf675..8955a3b5f2 100644 --- a/api/tests/test_containers_integration_tests/services/test_model_provider_service.py +++ b/api/tests/test_containers_integration_tests/services/test_model_provider_service.py @@ -2,10 +2,10 @@ from unittest.mock import MagicMock, patch import pytest from faker import Faker -from graphon.model_runtime.entities.model_entities import FetchFrom, ModelType from sqlalchemy.orm import Session from core.entities.model_entities import ModelStatus +from graphon.model_runtime.entities.model_entities import FetchFrom, ModelType from models import Account, Tenant, TenantAccountJoin, TenantAccountRole from models.provider import Provider, ProviderModel, ProviderModelSetting, ProviderType from services.model_provider_service import ModelProviderService @@ -405,11 +405,10 @@ class TestModelProviderService: mock_provider_manager = mock_external_service_dependencies["provider_manager"].return_value # Create mock models + from core.entities.model_entities import ModelWithProviderEntity, SimpleModelProviderEntity from graphon.model_runtime.entities.common_entities import I18nObject from graphon.model_runtime.entities.provider_entities import ProviderEntity - from core.entities.model_entities import ModelWithProviderEntity, SimpleModelProviderEntity - # Create real model objects instead of mocks provider_entity_1 = SimpleModelProviderEntity( ProviderEntity( @@ -644,9 +643,8 @@ class TestModelProviderService: mock_provider_manager = mock_external_service_dependencies["provider_manager"].return_value # Create mock default model response - from graphon.model_runtime.entities.common_entities import I18nObject - from core.entities.model_entities import DefaultModelEntity, DefaultModelProviderEntity + from graphon.model_runtime.entities.common_entities import I18nObject mock_default_model = DefaultModelEntity( model="gpt-3.5-turbo", diff --git a/api/tests/test_containers_integration_tests/services/test_workflow_app_service.py b/api/tests/test_containers_integration_tests/services/test_workflow_app_service.py index 749c6fff5b..1e57b5603d 100644 --- a/api/tests/test_containers_integration_tests/services/test_workflow_app_service.py +++ b/api/tests/test_containers_integration_tests/services/test_workflow_app_service.py @@ -8,9 +8,9 @@ from unittest.mock import patch import pytest from faker import Faker -from graphon.enums import WorkflowExecutionStatus from sqlalchemy.orm import Session +from graphon.enums import WorkflowExecutionStatus from models import EndUser, Workflow, WorkflowAppLog, WorkflowArchiveLog, WorkflowRun from models.enums import AppTriggerType, CreatorUserRole, WorkflowRunTriggeredFrom from models.workflow import WorkflowAppLogCreatedFrom diff --git a/api/tests/test_containers_integration_tests/services/test_workflow_draft_variable_service.py b/api/tests/test_containers_integration_tests/services/test_workflow_draft_variable_service.py index 0c281c8c33..86cf2327c7 100644 --- a/api/tests/test_containers_integration_tests/services/test_workflow_draft_variable_service.py +++ b/api/tests/test_containers_integration_tests/services/test_workflow_draft_variable_service.py @@ -1,9 +1,9 @@ import pytest from faker import Faker -from graphon.variables.segments import StringSegment from sqlalchemy.orm import Session from core.workflow.variable_prefixes import CONVERSATION_VARIABLE_NODE_ID, SYSTEM_VARIABLE_NODE_ID +from graphon.variables.segments import StringSegment from models import App, Workflow from models.enums import DraftVariableType from models.workflow import WorkflowDraftVariable diff --git a/api/tests/test_containers_integration_tests/services/workflow/test_workflow_node_execution_service_repository.py b/api/tests/test_containers_integration_tests/services/workflow/test_workflow_node_execution_service_repository.py index 7c43bf676b..4dab895135 100644 --- a/api/tests/test_containers_integration_tests/services/workflow/test_workflow_node_execution_service_repository.py +++ b/api/tests/test_containers_integration_tests/services/workflow/test_workflow_node_execution_service_repository.py @@ -1,10 +1,10 @@ from datetime import datetime, timedelta from uuid import uuid4 -from graphon.enums import WorkflowNodeExecutionStatus from sqlalchemy import Engine, select from sqlalchemy.orm import Session, sessionmaker +from graphon.enums import WorkflowNodeExecutionStatus from libs.datetime_utils import naive_utc_now from models.enums import CreatorUserRole from models.workflow import WorkflowNodeExecutionModel diff --git a/api/tests/test_containers_integration_tests/tasks/test_mail_human_input_delivery_task.py b/api/tests/test_containers_integration_tests/tasks/test_mail_human_input_delivery_task.py index 5dcebef141..95a867dbb5 100644 --- a/api/tests/test_containers_integration_tests/tasks/test_mail_human_input_delivery_task.py +++ b/api/tests/test_containers_integration_tests/tasks/test_mail_human_input_delivery_task.py @@ -3,9 +3,6 @@ from datetime import UTC, datetime from unittest.mock import patch import pytest -from graphon.enums import WorkflowExecutionStatus -from graphon.nodes.human_input.entities import HumanInputNodeData -from graphon.runtime import GraphRuntimeState, VariablePool from sqlalchemy import delete from configs import dify_config @@ -21,6 +18,9 @@ from core.workflow.human_input_adapter import ( MemberRecipient, ) from extensions.ext_storage import storage +from graphon.enums import WorkflowExecutionStatus +from graphon.nodes.human_input.entities import HumanInputNodeData +from graphon.runtime import GraphRuntimeState, VariablePool from models.account import Account, AccountStatus, Tenant, TenantAccountJoin, TenantAccountRole from models.enums import CreatorUserRole, WorkflowRunTriggeredFrom from models.human_input import HumanInputDelivery, HumanInputForm, HumanInputFormRecipient diff --git a/api/tests/test_containers_integration_tests/tasks/test_remove_app_and_related_data_task.py b/api/tests/test_containers_integration_tests/tasks/test_remove_app_and_related_data_task.py index b5bef145d5..b43b622870 100644 --- a/api/tests/test_containers_integration_tests/tasks/test_remove_app_and_related_data_task.py +++ b/api/tests/test_containers_integration_tests/tasks/test_remove_app_and_related_data_task.py @@ -2,12 +2,12 @@ import uuid from unittest.mock import ANY, call, patch import pytest -from graphon.variables.segments import StringSegment -from graphon.variables.types import SegmentType from sqlalchemy import delete, func, select from core.db.session_factory import session_factory from extensions.storage.storage_type import StorageType +from graphon.variables.segments import StringSegment +from graphon.variables.types import SegmentType from libs.datetime_utils import naive_utc_now from models import Tenant from models.enums import CreatorUserRole diff --git a/api/tests/test_containers_integration_tests/test_workflow_pause_integration.py b/api/tests/test_containers_integration_tests/test_workflow_pause_integration.py index 6e98c0855a..b00d827e37 100644 --- a/api/tests/test_containers_integration_tests/test_workflow_pause_integration.py +++ b/api/tests/test_containers_integration_tests/test_workflow_pause_integration.py @@ -24,12 +24,12 @@ from dataclasses import dataclass from datetime import timedelta import pytest -from graphon.entities import WorkflowExecution -from graphon.enums import WorkflowExecutionStatus from sqlalchemy import delete, func, select from sqlalchemy.orm import Session, selectinload, sessionmaker from extensions.ext_storage import storage +from graphon.entities import WorkflowExecution +from graphon.enums import WorkflowExecutionStatus from libs.datetime_utils import naive_utc_now from models import Account from models import WorkflowPause as WorkflowPauseModel diff --git a/api/tests/test_containers_integration_tests/trigger/test_trigger_e2e.py b/api/tests/test_containers_integration_tests/trigger/test_trigger_e2e.py index 7c4553d4a0..9c20118e27 100644 --- a/api/tests/test_containers_integration_tests/trigger/test_trigger_e2e.py +++ b/api/tests/test_containers_integration_tests/trigger/test_trigger_e2e.py @@ -10,7 +10,6 @@ from typing import Any import pytest from flask import Flask, Response from flask.testing import FlaskClient -from graphon.enums import BuiltinNodeTypes from sqlalchemy import select from sqlalchemy.orm import Session @@ -25,6 +24,7 @@ from core.trigger.debug import event_selectors from core.trigger.debug.event_bus import TriggerDebugEventBus from core.trigger.debug.event_selectors import PluginTriggerDebugEventPoller, WebhookTriggerDebugEventPoller from core.trigger.debug.events import PluginTriggerDebugEvent, build_plugin_pool_key +from graphon.enums import BuiltinNodeTypes from libs.datetime_utils import naive_utc_now from models.account import Account, Tenant from models.enums import AppTriggerStatus, AppTriggerType, CreatorUserRole, WorkflowTriggerStatus diff --git a/api/tests/unit_tests/controllers/console/app/test_workflow.py b/api/tests/unit_tests/controllers/console/app/test_workflow.py index 17a2fda9b9..1f0bf0c477 100644 --- a/api/tests/unit_tests/controllers/console/app/test_workflow.py +++ b/api/tests/unit_tests/controllers/console/app/test_workflow.py @@ -266,7 +266,7 @@ def test_publish_evaluation_workflow_success(app, monkeypatch: pytest.MonkeyPatc session_kwargs: dict[str, object] = {} class _FakeSession: - def __enter__(self) -> "_FakeSession": + def __enter__(self) -> _FakeSession: return self def __exit__(self, exc_type, exc, tb) -> None: @@ -326,7 +326,7 @@ def test_convert_workflow_type_uses_non_expiring_session(app, monkeypatch: pytes session_kwargs: dict[str, object] = {} class _FakeSession: - def __enter__(self) -> "_FakeSession": + def __enter__(self) -> _FakeSession: return self def __exit__(self, exc_type, exc, tb) -> None: 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 e11102acb1..c4a8148446 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 @@ -6,14 +6,14 @@ from unittest.mock import Mock import pytest from flask import Flask -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.enums import FormInputType from controllers.console import wraps as console_wraps 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.enums import FormInputType from libs import login as login_lib from models.account import Account, AccountStatus, TenantAccountRole from models.workflow import WorkflowRun diff --git a/api/tests/unit_tests/controllers/console/app/workflow_draft_variables_test.py b/api/tests/unit_tests/controllers/console/app/workflow_draft_variables_test.py index a3e2c06f31..62fa82e339 100644 --- a/api/tests/unit_tests/controllers/console/app/workflow_draft_variables_test.py +++ b/api/tests/unit_tests/controllers/console/app/workflow_draft_variables_test.py @@ -5,7 +5,6 @@ from unittest.mock import patch import pytest from flask_restx import marshal -from graphon.variables.types import SegmentType from controllers.console.app.workflow_draft_variable import ( _WORKFLOW_DRAFT_VARIABLE_FIELDS, @@ -16,6 +15,7 @@ from controllers.console.app.workflow_draft_variable import ( ) from core.workflow.variable_prefixes import CONVERSATION_VARIABLE_NODE_ID, SYSTEM_VARIABLE_NODE_ID from factories.variable_factory import build_segment +from graphon.variables.types import SegmentType from libs.datetime_utils import naive_utc_now from libs.uuid_utils import uuidv7 from models.workflow import WorkflowDraftVariable, WorkflowDraftVariableFile diff --git a/api/tests/unit_tests/controllers/console/datasets/test_datasets.py b/api/tests/unit_tests/controllers/console/datasets/test_datasets.py index 1e42b34634..30b7ab654c 100644 --- a/api/tests/unit_tests/controllers/console/datasets/test_datasets.py +++ b/api/tests/unit_tests/controllers/console/datasets/test_datasets.py @@ -13,9 +13,9 @@ from controllers.console.datasets.datasets import ( DatasetApiDeleteApi, DatasetApiKeyApi, DatasetAutoDisableLogApi, - DatasetEvaluationMetricsApi, DatasetEnableApiApi, DatasetErrorDocs, + DatasetEvaluationMetricsApi, DatasetIndexingEstimateApi, DatasetIndexingStatusApi, DatasetListApi, @@ -34,8 +34,8 @@ from core.rag.index_processor.constant.index_type import IndexStructureType from extensions.storage.storage_type import StorageType from models.enums import CreatorUserRole from models.model import ApiToken, UploadFile -from services.evaluation_service import EvaluationService from services.dataset_service import DatasetPermissionService, DatasetService +from services.evaluation_service import EvaluationService def unwrap(func): diff --git a/api/tests/unit_tests/controllers/console/workspace/test_accounts.py b/api/tests/unit_tests/controllers/console/workspace/test_accounts.py index 42be02cdaf..bbe9d09521 100644 --- a/api/tests/unit_tests/controllers/console/workspace/test_accounts.py +++ b/api/tests/unit_tests/controllers/console/workspace/test_accounts.py @@ -1,6 +1,7 @@ from unittest.mock import MagicMock, PropertyMock, patch import pytest +from werkzeug.exceptions import NotFound from controllers.console import console_ns from controllers.console.auth.error import ( @@ -29,6 +30,7 @@ from controllers.console.workspace.error import ( CurrentPasswordIncorrectError, InvalidAccountDeletionCodeError, ) +from models.enums import CreatorUserRole from services.errors.account import CurrentPasswordIncorrectError as ServicePwdError @@ -135,6 +137,131 @@ class TestAccountUpdateApis: assert result["id"] == "u1" +class TestAccountAvatarApiGet: + """GET /account/avatar must not sign arbitrary upload_file IDs (IDOR).""" + + def test_get_avatar_signed_url_when_upload_owned_by_current_account(self, app): + api = AccountAvatarApi() + method = unwrap(api.get) + + user = MagicMock() + user.id = "acc-owner" + tenant_id = "tenant-1" + file_id = "550e8400-e29b-41d4-a716-446655440000" + + upload_file = MagicMock() + upload_file.id = file_id + upload_file.tenant_id = tenant_id + upload_file.created_by = user.id + upload_file.created_by_role = CreatorUserRole.ACCOUNT + + with ( + app.test_request_context(f"/account/avatar?avatar={file_id}"), + patch( + "controllers.console.workspace.account.current_account_with_tenant", + return_value=(user, tenant_id), + ), + patch("controllers.console.workspace.account.db.session.scalar", return_value=upload_file), + patch( + "controllers.console.workspace.account.file_helpers.get_signed_file_url", + return_value="https://signed/example", + ) as sign_mock, + ): + result = method(api) + + assert result == {"avatar_url": "https://signed/example"} + sign_mock.assert_called_once_with(upload_file_id=file_id) + + def test_get_avatar_not_found_when_upload_created_by_other_account_same_tenant(self, app): + api = AccountAvatarApi() + method = unwrap(api.get) + + user = MagicMock() + user.id = "acc-a" + tenant_id = "tenant-1" + file_id = "550e8400-e29b-41d4-a716-446655440001" + + upload_file = MagicMock() + upload_file.id = file_id + upload_file.tenant_id = tenant_id + upload_file.created_by = "acc-b" + upload_file.created_by_role = CreatorUserRole.ACCOUNT + + with ( + app.test_request_context(f"/account/avatar?avatar={file_id}"), + patch( + "controllers.console.workspace.account.current_account_with_tenant", + return_value=(user, tenant_id), + ), + patch("controllers.console.workspace.account.db.session.scalar", return_value=upload_file), + patch( + "controllers.console.workspace.account.file_helpers.get_signed_file_url", + return_value="https://signed/leak", + ) as sign_mock, + ): + with pytest.raises(NotFound): + method(api) + + sign_mock.assert_not_called() + + def test_get_avatar_not_found_when_upload_belongs_to_other_tenant(self, app): + api = AccountAvatarApi() + method = unwrap(api.get) + + user = MagicMock() + user.id = "acc-owner" + tenant_id = "tenant-1" + file_id = "550e8400-e29b-41d4-a716-446655440002" + + upload_file = MagicMock() + upload_file.id = file_id + upload_file.tenant_id = "tenant-other" + upload_file.created_by = user.id + upload_file.created_by_role = CreatorUserRole.ACCOUNT + + with ( + app.test_request_context(f"/account/avatar?avatar={file_id}"), + patch( + "controllers.console.workspace.account.current_account_with_tenant", + return_value=(user, tenant_id), + ), + patch("controllers.console.workspace.account.db.session.scalar", return_value=upload_file), + patch( + "controllers.console.workspace.account.file_helpers.get_signed_file_url", + return_value="https://signed/leak", + ) as sign_mock, + ): + with pytest.raises(NotFound): + method(api) + + sign_mock.assert_not_called() + + def test_get_avatar_https_pass_through_without_signing(self, app): + api = AccountAvatarApi() + method = unwrap(api.get) + + user = MagicMock() + user.id = "acc-owner" + tenant_id = "tenant-1" + external = "https://cdn.example/avatar.png" + + with ( + app.test_request_context(f"/account/avatar?avatar={external}"), + patch( + "controllers.console.workspace.account.current_account_with_tenant", + return_value=(user, tenant_id), + ), + patch( + "controllers.console.workspace.account.file_helpers.get_signed_file_url", + return_value="https://signed/should-not-use", + ) as sign_mock, + ): + result = method(api) + + assert result == {"avatar_url": external} + sign_mock.assert_not_called() + + class TestAccountPasswordApi: def test_password_success(self, app): api = AccountPasswordApi() diff --git a/api/tests/unit_tests/controllers/console/workspace/test_load_balancing_config.py b/api/tests/unit_tests/controllers/console/workspace/test_load_balancing_config.py index 9c42ee9529..b2f949c6e2 100644 --- a/api/tests/unit_tests/controllers/console/workspace/test_load_balancing_config.py +++ b/api/tests/unit_tests/controllers/console/workspace/test_load_balancing_config.py @@ -11,9 +11,10 @@ from unittest.mock import MagicMock import pytest from flask import Flask from flask.views import MethodView +from werkzeug.exceptions import Forbidden + from graphon.model_runtime.entities.model_entities import ModelType from graphon.model_runtime.errors.validate import CredentialsValidateFailedError -from werkzeug.exceptions import Forbidden if not hasattr(builtins, "MethodView"): builtins.MethodView = MethodView # type: ignore[attr-defined] diff --git a/api/tests/unit_tests/controllers/service_api/app/test_audio.py b/api/tests/unit_tests/controllers/service_api/app/test_audio.py index a26fea8fbd..c16ebad739 100644 --- a/api/tests/unit_tests/controllers/service_api/app/test_audio.py +++ b/api/tests/unit_tests/controllers/service_api/app/test_audio.py @@ -13,7 +13,6 @@ from types import SimpleNamespace from unittest.mock import Mock, patch import pytest -from graphon.model_runtime.errors.invoke import InvokeError from werkzeug.datastructures import FileStorage from werkzeug.exceptions import InternalServerError @@ -30,6 +29,7 @@ from controllers.service_api.app.error import ( UnsupportedAudioTypeError, ) from core.errors.error import ModelCurrentlyNotSupportError, ProviderTokenNotInitError, QuotaExceededError +from graphon.model_runtime.errors.invoke import InvokeError from services.audio_service import AudioService from services.errors.app_model_config import AppModelConfigBrokenError from services.errors.audio import ( diff --git a/api/tests/unit_tests/controllers/service_api/app/test_completion.py b/api/tests/unit_tests/controllers/service_api/app/test_completion.py index 57681d8f5b..3364c07e62 100644 --- a/api/tests/unit_tests/controllers/service_api/app/test_completion.py +++ b/api/tests/unit_tests/controllers/service_api/app/test_completion.py @@ -16,7 +16,6 @@ from types import SimpleNamespace from unittest.mock import Mock, patch import pytest -from graphon.model_runtime.errors.invoke import InvokeError from pydantic import ValidationError from werkzeug.exceptions import BadRequest, NotFound @@ -35,6 +34,7 @@ from controllers.service_api.app.error import ( NotChatAppError, ) from core.errors.error import QuotaExceededError +from graphon.model_runtime.errors.invoke import InvokeError from models.model import App, AppMode, EndUser from services.app_generate_service import AppGenerateService from services.app_task_service import AppTaskService diff --git a/api/tests/unit_tests/controllers/service_api/app/test_workflow.py b/api/tests/unit_tests/controllers/service_api/app/test_workflow.py index d883d2d2b9..e1f75319dd 100644 --- a/api/tests/unit_tests/controllers/service_api/app/test_workflow.py +++ b/api/tests/unit_tests/controllers/service_api/app/test_workflow.py @@ -20,7 +20,6 @@ from types import SimpleNamespace from unittest.mock import Mock, patch import pytest -from graphon.enums import WorkflowExecutionStatus from werkzeug.exceptions import BadRequest, NotFound from controllers.service_api.app.error import NotWorkflowAppError @@ -38,6 +37,7 @@ from controllers.service_api.app.workflow import ( WorkflowTaskStopApi, ) from controllers.web.error import InvokeRateLimitError as InvokeRateLimitHttpError +from graphon.enums import WorkflowExecutionStatus from models.model import App, AppMode from services.app_generate_service import AppGenerateService from services.errors.app import IsDraftWorkflowError, WorkflowNotFoundError diff --git a/api/tests/unit_tests/controllers/service_api/app/test_workflow_fields.py b/api/tests/unit_tests/controllers/service_api/app/test_workflow_fields.py index 4b8e3a738c..eda270258d 100644 --- a/api/tests/unit_tests/controllers/service_api/app/test_workflow_fields.py +++ b/api/tests/unit_tests/controllers/service_api/app/test_workflow_fields.py @@ -1,8 +1,7 @@ from types import SimpleNamespace -from graphon.enums import WorkflowExecutionStatus - from controllers.service_api.app.workflow import WorkflowRunOutputsField, WorkflowRunStatusField +from graphon.enums import WorkflowExecutionStatus def test_workflow_run_status_field_with_enum() -> None: diff --git a/api/tests/unit_tests/controllers/service_api/dataset/test_hit_testing.py b/api/tests/unit_tests/controllers/service_api/dataset/test_hit_testing.py index 9be8e56f56..a26cdf6563 100644 --- a/api/tests/unit_tests/controllers/service_api/dataset/test_hit_testing.py +++ b/api/tests/unit_tests/controllers/service_api/dataset/test_hit_testing.py @@ -171,6 +171,62 @@ class TestHitTestingApiPost: assert passed_retrieval_model["search_method"] == "semantic_search" assert passed_retrieval_model["top_k"] == 10 + @patch("controllers.service_api.dataset.hit_testing.service_api_ns") + @patch("controllers.console.datasets.hit_testing_base.marshal") + @patch("controllers.console.datasets.hit_testing_base.HitTestingService") + @patch("controllers.console.datasets.hit_testing_base.DatasetService") + @patch("controllers.console.datasets.hit_testing_base.current_user", new_callable=lambda: Mock(spec=Account)) + def test_post_preserves_retrieval_model_metadata_filtering_conditions( + self, + mock_current_user, + mock_dataset_svc, + mock_hit_svc, + mock_marshal, + mock_ns, + app, + ): + """Service API retrieval payload should not drop metadata filters.""" + dataset_id = str(uuid.uuid4()) + tenant_id = str(uuid.uuid4()) + + mock_dataset = Mock() + mock_dataset.id = dataset_id + + mock_dataset_svc.get_dataset.return_value = mock_dataset + mock_dataset_svc.check_dataset_permission.return_value = None + mock_hit_svc.retrieve.return_value = {"query": "filtered query", "records": []} + mock_hit_svc.hit_testing_args_check.return_value = None + mock_marshal.return_value = [] + + metadata_filtering_conditions = { + "logical_operator": "and", + "conditions": [ + { + "name": "category", + "comparison_operator": "is", + "value": "finance", + } + ], + } + mock_ns.payload = { + "query": "filtered query", + "retrieval_model": { + "search_method": "semantic_search", + "reranking_enable": False, + "score_threshold_enabled": False, + "top_k": 4, + "metadata_filtering_conditions": metadata_filtering_conditions, + }, + } + + with app.test_request_context(): + api = HitTestingApi() + HitTestingApi.post.__wrapped__(api, tenant_id, dataset_id) + + passed_retrieval_model = mock_hit_svc.retrieve.call_args.kwargs.get("retrieval_model") + assert passed_retrieval_model is not None + assert passed_retrieval_model["metadata_filtering_conditions"] == metadata_filtering_conditions + @patch("controllers.service_api.dataset.hit_testing.service_api_ns") @patch("controllers.console.datasets.hit_testing_base.marshal") @patch("controllers.console.datasets.hit_testing_base.HitTestingService") diff --git a/api/tests/unit_tests/core/app/app_config/features/file_upload/test_manager.py b/api/tests/unit_tests/core/app/app_config/features/file_upload/test_manager.py index 8bde9c1f97..11b53dd0f9 100644 --- a/api/tests/unit_tests/core/app/app_config/features/file_upload/test_manager.py +++ b/api/tests/unit_tests/core/app/app_config/features/file_upload/test_manager.py @@ -1,8 +1,7 @@ +from core.app.app_config.features.file_upload.manager import FileUploadConfigManager from graphon.file import FileTransferMethod, FileUploadConfig, ImageConfig from graphon.model_runtime.entities.message_entities import ImagePromptMessageContent -from core.app.app_config.features.file_upload.manager import FileUploadConfigManager - def test_convert_with_vision(): config = { diff --git a/api/tests/unit_tests/core/app/apps/advanced_chat/test_app_runner_conversation_variables.py b/api/tests/unit_tests/core/app/apps/advanced_chat/test_app_runner_conversation_variables.py index e053d0779e..370f7abb8b 100644 --- a/api/tests/unit_tests/core/app/apps/advanced_chat/test_app_runner_conversation_variables.py +++ b/api/tests/unit_tests/core/app/apps/advanced_chat/test_app_runner_conversation_variables.py @@ -3,12 +3,12 @@ from unittest.mock import MagicMock, patch from uuid import uuid4 -from graphon.variables import SegmentType from sqlalchemy.orm import Session from core.app.apps.advanced_chat.app_runner import AdvancedChatAppRunner from core.app.entities.app_invoke_entities import AdvancedChatAppGenerateEntity, InvokeFrom from factories import variable_factory +from graphon.variables import SegmentType from models import ConversationVariable, Workflow MINIMAL_GRAPH = { diff --git a/api/tests/unit_tests/core/app/apps/chat/test_base_app_runner_multimodal.py b/api/tests/unit_tests/core/app/apps/chat/test_base_app_runner_multimodal.py index f255d2c7df..b3ea1a464f 100644 --- a/api/tests/unit_tests/core/app/apps/chat/test_base_app_runner_multimodal.py +++ b/api/tests/unit_tests/core/app/apps/chat/test_base_app_runner_multimodal.py @@ -4,13 +4,13 @@ from unittest.mock import MagicMock, patch from uuid import uuid4 import pytest -from graphon.file import FileTransferMethod, FileType -from graphon.model_runtime.entities.message_entities import ImagePromptMessageContent from core.app.apps.base_app_queue_manager import PublishFrom from core.app.apps.base_app_runner import AppRunner from core.app.entities.app_invoke_entities import InvokeFrom from core.app.entities.queue_entities import QueueMessageFileEvent +from graphon.file import FileTransferMethod, FileType +from graphon.model_runtime.entities.message_entities import ImagePromptMessageContent from models.enums import CreatorUserRole diff --git a/api/tests/unit_tests/core/app/apps/common/test_graph_runtime_state_support.py b/api/tests/unit_tests/core/app/apps/common/test_graph_runtime_state_support.py index 4a94a2b4f1..201923e0e4 100644 --- a/api/tests/unit_tests/core/app/apps/common/test_graph_runtime_state_support.py +++ b/api/tests/unit_tests/core/app/apps/common/test_graph_runtime_state_support.py @@ -1,11 +1,11 @@ from types import SimpleNamespace import pytest -from graphon.runtime import GraphRuntimeState, VariablePool from core.app.apps.common.graph_runtime_state_support import GraphRuntimeStateSupport from core.workflow.system_variables import build_system_variables from core.workflow.variable_pool_initializer import add_variables_to_pool +from graphon.runtime import GraphRuntimeState, VariablePool def _make_state(workflow_run_id: str | None) -> GraphRuntimeState: diff --git a/api/tests/unit_tests/core/app/apps/common/test_workflow_response_converter.py b/api/tests/unit_tests/core/app/apps/common/test_workflow_response_converter.py index 82fcccdf40..dd6cd0e919 100644 --- a/api/tests/unit_tests/core/app/apps/common/test_workflow_response_converter.py +++ b/api/tests/unit_tests/core/app/apps/common/test_workflow_response_converter.py @@ -1,10 +1,9 @@ from collections.abc import Mapping, Sequence +from core.app.apps.common.workflow_response_converter import WorkflowResponseConverter from graphon.file import FILE_MODEL_IDENTITY, File, FileTransferMethod, FileType from graphon.variables.segments import ArrayFileSegment, FileSegment -from core.app.apps.common.workflow_response_converter import WorkflowResponseConverter - class TestWorkflowResponseConverterFetchFilesFromVariableValue: """Test class for WorkflowResponseConverter._fetch_files_from_variable_value method""" diff --git a/api/tests/unit_tests/core/app/apps/common/test_workflow_response_converter_human_input.py b/api/tests/unit_tests/core/app/apps/common/test_workflow_response_converter_human_input.py index bc11bf4174..1bef6f69cd 100644 --- a/api/tests/unit_tests/core/app/apps/common/test_workflow_response_converter_human_input.py +++ b/api/tests/unit_tests/core/app/apps/common/test_workflow_response_converter_human_input.py @@ -1,13 +1,12 @@ from datetime import UTC, datetime from types import SimpleNamespace -from graphon.entities import WorkflowStartReason -from graphon.runtime import GraphRuntimeState, VariablePool - from core.app.apps.common.workflow_response_converter import WorkflowResponseConverter from core.app.entities.app_invoke_entities import InvokeFrom from core.app.entities.queue_entities import QueueHumanInputFormFilledEvent, QueueHumanInputFormTimeoutEvent from core.workflow.system_variables import build_system_variables +from graphon.entities import WorkflowStartReason +from graphon.runtime import GraphRuntimeState, VariablePool def _build_converter(): diff --git a/api/tests/unit_tests/core/app/apps/common/test_workflow_response_converter_resumption.py b/api/tests/unit_tests/core/app/apps/common/test_workflow_response_converter_resumption.py index c9e146ff12..936ac37e55 100644 --- a/api/tests/unit_tests/core/app/apps/common/test_workflow_response_converter_resumption.py +++ b/api/tests/unit_tests/core/app/apps/common/test_workflow_response_converter_resumption.py @@ -1,11 +1,10 @@ from types import SimpleNamespace -from graphon.entities import WorkflowStartReason -from graphon.runtime import GraphRuntimeState, VariablePool - from core.app.apps.common.workflow_response_converter import WorkflowResponseConverter from core.app.entities.app_invoke_entities import InvokeFrom from core.workflow.system_variables import build_system_variables +from graphon.entities import WorkflowStartReason +from graphon.runtime import GraphRuntimeState, VariablePool def _build_converter() -> WorkflowResponseConverter: diff --git a/api/tests/unit_tests/core/app/apps/common/test_workflow_response_converter_truncation.py b/api/tests/unit_tests/core/app/apps/common/test_workflow_response_converter_truncation.py index 0fde7565d2..b3c0eb74fa 100644 --- a/api/tests/unit_tests/core/app/apps/common/test_workflow_response_converter_truncation.py +++ b/api/tests/unit_tests/core/app/apps/common/test_workflow_response_converter_truncation.py @@ -10,8 +10,6 @@ from typing import Any from unittest.mock import Mock import pytest -from graphon.entities import WorkflowStartReason -from graphon.enums import BuiltinNodeTypes from core.app.app_config.entities import WorkflowUIBasedAppConfig from core.app.apps.common.workflow_response_converter import WorkflowResponseConverter @@ -27,6 +25,8 @@ from core.app.entities.queue_entities import ( QueueNodeSucceededEvent, ) from core.workflow.system_variables import build_system_variables +from graphon.entities import WorkflowStartReason +from graphon.enums import BuiltinNodeTypes from libs.datetime_utils import naive_utc_now from models import Account from models.model import AppMode diff --git a/api/tests/unit_tests/core/app/apps/test_base_app_generator.py b/api/tests/unit_tests/core/app/apps/test_base_app_generator.py index 6167be3bbd..b0f8b423e1 100644 --- a/api/tests/unit_tests/core/app/apps/test_base_app_generator.py +++ b/api/tests/unit_tests/core/app/apps/test_base_app_generator.py @@ -1,7 +1,7 @@ import pytest -from graphon.variables.input_entities import VariableEntity, VariableEntityType from core.app.apps.base_app_generator import BaseAppGenerator +from graphon.variables.input_entities import VariableEntity, VariableEntityType def test_validate_inputs_with_zero(): @@ -476,9 +476,8 @@ class TestBaseAppGeneratorExtras: assert converted[1] == "event: ping\n\n" def test_get_draft_var_saver_factory_debugger(self): - from graphon.enums import BuiltinNodeTypes - from core.app.entities.app_invoke_entities import InvokeFrom + from graphon.enums import BuiltinNodeTypes from models import Account base_app_generator = BaseAppGenerator() diff --git a/api/tests/unit_tests/core/app/apps/test_workflow_app_runner_notifications.py b/api/tests/unit_tests/core/app/apps/test_workflow_app_runner_notifications.py index aa789d9ff3..10fb2271f4 100644 --- a/api/tests/unit_tests/core/app/apps/test_workflow_app_runner_notifications.py +++ b/api/tests/unit_tests/core/app/apps/test_workflow_app_runner_notifications.py @@ -1,11 +1,11 @@ from unittest.mock import MagicMock import pytest -from graphon.entities.pause_reason import HumanInputRequired -from graphon.graph_events import GraphRunPausedEvent from core.app.apps.workflow_app_runner import WorkflowBasedAppRunner from core.app.entities.queue_entities import QueueWorkflowPausedEvent +from graphon.entities.pause_reason import HumanInputRequired +from graphon.graph_events import GraphRunPausedEvent class _DummyQueueManager: diff --git a/api/tests/unit_tests/core/app/apps/test_workflow_app_runner_single_node.py b/api/tests/unit_tests/core/app/apps/test_workflow_app_runner_single_node.py index cbe7417f91..3afdbd2822 100644 --- a/api/tests/unit_tests/core/app/apps/test_workflow_app_runner_single_node.py +++ b/api/tests/unit_tests/core/app/apps/test_workflow_app_runner_single_node.py @@ -4,8 +4,6 @@ from typing import Any from unittest.mock import MagicMock, patch import pytest -from graphon.entities.graph_config import NodeConfigDictAdapter -from graphon.runtime import GraphRuntimeState, VariablePool from core.app.apps.base_app_queue_manager import AppQueueManager from core.app.apps.workflow.app_runner import WorkflowAppRunner @@ -13,6 +11,8 @@ from core.app.apps.workflow_app_runner import WorkflowBasedAppRunner from core.app.entities.app_invoke_entities import InvokeFrom, WorkflowAppGenerateEntity from core.workflow.snippet_start import SNIPPET_VIRTUAL_START_NODE_ID from core.workflow.system_variables import default_system_variables +from graphon.entities.graph_config import NodeConfigDictAdapter +from graphon.runtime import GraphRuntimeState, VariablePool from models.workflow import Workflow 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 8a717e1dcc..a3ab379b66 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 @@ -3,11 +3,6 @@ from types import SimpleNamespace from unittest.mock import MagicMock import pytest -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.enums import FormInputType from core.app.apps.common import workflow_response_converter from core.app.apps.common.workflow_response_converter import WorkflowResponseConverter @@ -16,6 +11,11 @@ from core.app.entities.app_invoke_entities import InvokeFrom from core.app.entities.queue_entities import QueueWorkflowPausedEvent from core.app.entities.task_entities import HumanInputRequiredResponse, WorkflowPauseStreamResponse 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.enums import FormInputType from models.account import Account from models.human_input import RecipientType diff --git a/api/tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline.py b/api/tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline.py index 29df903aa8..1f6e7e12ef 100644 --- a/api/tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline.py +++ b/api/tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline.py @@ -2,15 +2,14 @@ import time from contextlib import contextmanager from unittest.mock import MagicMock -from graphon.entities import WorkflowStartReason -from graphon.runtime import GraphRuntimeState - from core.app.app_config.entities import WorkflowUIBasedAppConfig from core.app.apps.base_app_queue_manager import AppQueueManager from core.app.apps.workflow.generate_task_pipeline import WorkflowAppGenerateTaskPipeline from core.app.entities.app_invoke_entities import InvokeFrom, WorkflowAppGenerateEntity from core.app.entities.queue_entities import QueueWorkflowStartedEvent from core.workflow.system_variables import build_system_variables +from graphon.entities import WorkflowStartReason +from graphon.runtime import GraphRuntimeState from models.account import Account from models.model import AppMode from tests.workflow_test_utils import build_test_variable_pool diff --git a/api/tests/unit_tests/core/app/layers/test_conversation_variable_persist_layer.py b/api/tests/unit_tests/core/app/layers/test_conversation_variable_persist_layer.py index a78c1b428f..ba55e8f695 100644 --- a/api/tests/unit_tests/core/app/layers/test_conversation_variable_persist_layer.py +++ b/api/tests/unit_tests/core/app/layers/test_conversation_variable_persist_layer.py @@ -1,6 +1,9 @@ from collections.abc import Sequence from unittest.mock import Mock +from core.app.layers.conversation_variable_persist_layer import ConversationVariablePersistenceLayer +from core.workflow.system_variables import SystemVariableKey +from core.workflow.variable_prefixes import CONVERSATION_VARIABLE_NODE_ID from graphon.enums import BuiltinNodeTypes, WorkflowNodeExecutionStatus from graphon.graph_engine.command_channels import CommandChannel from graphon.graph_events import NodeRunSucceededEvent, NodeRunVariableUpdatedEvent @@ -8,10 +11,6 @@ from graphon.node_events import NodeRunResult from graphon.runtime import ReadOnlyGraphRuntimeState from graphon.variables import StringVariable from graphon.variables.segments import Segment, StringSegment - -from core.app.layers.conversation_variable_persist_layer import ConversationVariablePersistenceLayer -from core.workflow.system_variables import SystemVariableKey -from core.workflow.variable_prefixes import CONVERSATION_VARIABLE_NODE_ID from libs.datetime_utils import naive_utc_now diff --git a/api/tests/unit_tests/core/app/layers/test_pause_state_persist_layer.py b/api/tests/unit_tests/core/app/layers/test_pause_state_persist_layer.py index 035e64325b..539944d683 100644 --- a/api/tests/unit_tests/core/app/layers/test_pause_state_persist_layer.py +++ b/api/tests/unit_tests/core/app/layers/test_pause_state_persist_layer.py @@ -4,6 +4,16 @@ from time import time from unittest.mock import Mock import pytest + +from core.app.app_config.entities import WorkflowUIBasedAppConfig +from core.app.entities.app_invoke_entities import AdvancedChatAppGenerateEntity, InvokeFrom, WorkflowAppGenerateEntity +from core.app.layers.pause_state_persist_layer import ( + PauseStatePersistenceLayer, + WorkflowResumptionContext, + _AdvancedChatAppGenerateEntityWrapper, + _WorkflowGenerateEntityWrapper, +) +from core.workflow.system_variables import SystemVariableKey from graphon.entities.pause_reason import SchedulingPause from graphon.graph_engine.entities.commands import GraphEngineCommand from graphon.graph_engine.layers.base import GraphEngineLayerNotInitializedError @@ -15,16 +25,6 @@ from graphon.graph_events import ( ) from graphon.runtime import ReadOnlyVariablePool from graphon.variables.segments import Segment - -from core.app.app_config.entities import WorkflowUIBasedAppConfig -from core.app.entities.app_invoke_entities import AdvancedChatAppGenerateEntity, InvokeFrom, WorkflowAppGenerateEntity -from core.app.layers.pause_state_persist_layer import ( - PauseStatePersistenceLayer, - WorkflowResumptionContext, - _AdvancedChatAppGenerateEntityWrapper, - _WorkflowGenerateEntityWrapper, -) -from core.workflow.system_variables import SystemVariableKey from models.model import AppMode from repositories.factory import DifyAPIRepositoryFactory diff --git a/api/tests/unit_tests/core/app/task_pipeline/test_easy_ui_based_generate_task_pipeline.py b/api/tests/unit_tests/core/app/task_pipeline/test_easy_ui_based_generate_task_pipeline.py index 4aaa10a81a..1c1bf391d3 100644 --- a/api/tests/unit_tests/core/app/task_pipeline/test_easy_ui_based_generate_task_pipeline.py +++ b/api/tests/unit_tests/core/app/task_pipeline/test_easy_ui_based_generate_task_pipeline.py @@ -2,8 +2,6 @@ from types import SimpleNamespace from unittest.mock import ANY, Mock, patch import pytest -from graphon.model_runtime.entities.llm_entities import LLMResult as RuntimeLLMResult -from graphon.model_runtime.entities.message_entities import TextPromptMessageContent from core.app.apps.base_app_queue_manager import AppQueueManager from core.app.entities.app_invoke_entities import ChatAppGenerateEntity @@ -28,6 +26,8 @@ from core.app.entities.task_entities import ( from core.app.task_pipeline.easy_ui_based_generate_task_pipeline import EasyUIBasedGenerateTaskPipeline from core.base.tts import AppGeneratorTTSPublisher from core.ops.ops_trace_manager import TraceQueueManager +from graphon.model_runtime.entities.llm_entities import LLMResult as RuntimeLLMResult +from graphon.model_runtime.entities.message_entities import TextPromptMessageContent from models.model import AppMode diff --git a/api/tests/unit_tests/core/datasource/test_datasource_manager.py b/api/tests/unit_tests/core/datasource/test_datasource_manager.py index af54aed363..deeac49bbc 100644 --- a/api/tests/unit_tests/core/datasource/test_datasource_manager.py +++ b/api/tests/unit_tests/core/datasource/test_datasource_manager.py @@ -2,15 +2,15 @@ import types from collections.abc import Generator import pytest -from graphon.enums import WorkflowNodeExecutionStatus -from graphon.file import File, FileTransferMethod, FileType -from graphon.node_events import StreamChunkEvent, StreamCompletedEvent from contexts.wrapper import RecyclableContextVar from core.datasource.datasource_manager import DatasourceManager from core.datasource.entities.datasource_entities import DatasourceMessage, DatasourceProviderType from core.datasource.errors import DatasourceProviderNotFoundError from core.workflow.file_reference import parse_file_reference +from graphon.enums import WorkflowNodeExecutionStatus +from graphon.file import File, FileTransferMethod, FileType +from graphon.node_events import StreamChunkEvent, StreamCompletedEvent def _gen_messages_text_only(text: str) -> Generator[DatasourceMessage, None, None]: diff --git a/api/tests/unit_tests/core/mcp/server/test_streamable_http.py b/api/tests/unit_tests/core/mcp/server/test_streamable_http.py index 9a815fb94d..57456085c3 100644 --- a/api/tests/unit_tests/core/mcp/server/test_streamable_http.py +++ b/api/tests/unit_tests/core/mcp/server/test_streamable_http.py @@ -3,7 +3,6 @@ from unittest.mock import Mock, patch import jsonschema import pytest -from graphon.variables.input_entities import VariableEntity, VariableEntityType from core.app.features.rate_limiting.rate_limit import RateLimitGenerator from core.mcp import types @@ -19,6 +18,7 @@ from core.mcp.server.streamable_http import ( prepare_tool_arguments, process_mapping_response, ) +from graphon.variables.input_entities import VariableEntity, VariableEntityType from models.model import App, AppMCPServer, AppMode, EndUser diff --git a/api/tests/unit_tests/core/plugin/test_plugin_runtime.py b/api/tests/unit_tests/core/plugin/test_plugin_runtime.py index a3b1e5f6b0..704b82adc0 100644 --- a/api/tests/unit_tests/core/plugin/test_plugin_runtime.py +++ b/api/tests/unit_tests/core/plugin/test_plugin_runtime.py @@ -17,14 +17,6 @@ from unittest.mock import MagicMock, patch import httpx import pytest -from graphon.model_runtime.errors.invoke import ( - InvokeAuthorizationError, - InvokeBadRequestError, - InvokeConnectionError, - InvokeRateLimitError, - InvokeServerUnavailableError, -) -from graphon.model_runtime.errors.validate import CredentialsValidateFailedError from pydantic import BaseModel from core.plugin.entities.plugin_daemon import ( @@ -45,6 +37,14 @@ from core.plugin.impl.exc import ( ) from core.plugin.impl.plugin import PluginInstaller from core.plugin.impl.tool import PluginToolManager +from graphon.model_runtime.errors.invoke import ( + InvokeAuthorizationError, + InvokeBadRequestError, + InvokeConnectionError, + InvokeRateLimitError, + InvokeServerUnavailableError, +) +from graphon.model_runtime.errors.validate import CredentialsValidateFailedError @pytest.fixture(autouse=True) diff --git a/api/tests/unit_tests/core/plugin/utils/test_chunk_merger.py b/api/tests/unit_tests/core/plugin/utils/test_chunk_merger.py index 014853e480..00a4207786 100644 --- a/api/tests/unit_tests/core/plugin/utils/test_chunk_merger.py +++ b/api/tests/unit_tests/core/plugin/utils/test_chunk_merger.py @@ -1,12 +1,12 @@ from collections.abc import Generator import pytest -from graphon.file import File, FileTransferMethod, FileType from core.agent.entities import AgentInvokeMessage from core.plugin.utils.chunk_merger import FileChunk, merge_blob_chunks from core.plugin.utils.converter import convert_parameters_to_plugin_format from core.tools.entities.tool_entities import ToolInvokeMessage, ToolParameter, ToolSelector +from graphon.file import File, FileTransferMethod, FileType class TestChunkMerger: diff --git a/api/tests/unit_tests/core/prompt/test_advanced_prompt_transform.py b/api/tests/unit_tests/core/prompt/test_advanced_prompt_transform.py index 6fee5790cc..e536c0831f 100644 --- a/api/tests/unit_tests/core/prompt/test_advanced_prompt_transform.py +++ b/api/tests/unit_tests/core/prompt/test_advanced_prompt_transform.py @@ -2,6 +2,13 @@ from typing import cast from unittest.mock import MagicMock, patch import pytest + +from configs import dify_config +from core.app.app_config.entities import ModelConfigEntity +from core.memory.token_buffer_memory import TokenBufferMemory +from core.prompt.advanced_prompt_transform import AdvancedPromptTransform +from core.prompt.entities.advanced_prompt_entities import ChatModelMessage, CompletionModelPromptTemplate, MemoryConfig +from core.prompt.utils.prompt_template_parser import PromptTemplateParser from graphon.file import File, FileTransferMethod, FileType from graphon.model_runtime.entities.message_entities import ( AssistantPromptMessage, @@ -11,13 +18,6 @@ from graphon.model_runtime.entities.message_entities import ( TextPromptMessageContent, UserPromptMessage, ) - -from configs import dify_config -from core.app.app_config.entities import ModelConfigEntity -from core.memory.token_buffer_memory import TokenBufferMemory -from core.prompt.advanced_prompt_transform import AdvancedPromptTransform -from core.prompt.entities.advanced_prompt_entities import ChatModelMessage, CompletionModelPromptTemplate, MemoryConfig -from core.prompt.utils.prompt_template_parser import PromptTemplateParser from models.model import Conversation diff --git a/api/tests/unit_tests/core/prompt/test_prompt_message.py b/api/tests/unit_tests/core/prompt/test_prompt_message.py index a4b3960b0a..5d865d934c 100644 --- a/api/tests/unit_tests/core/prompt/test_prompt_message.py +++ b/api/tests/unit_tests/core/prompt/test_prompt_message.py @@ -1,3 +1,5 @@ +from core.prompt.simple_prompt_transform import ModelMode +from core.prompt.utils.prompt_message_util import PromptMessageUtil from graphon.model_runtime.entities.message_entities import ( AssistantPromptMessage, AudioPromptMessageContent, @@ -7,9 +9,6 @@ from graphon.model_runtime.entities.message_entities import ( UserPromptMessage, ) -from core.prompt.simple_prompt_transform import ModelMode -from core.prompt.utils.prompt_message_util import PromptMessageUtil - def test_build_prompt_message_with_prompt_message_contents(): prompt = UserPromptMessage(content=[TextPromptMessageContent(data="Hello, World!")]) diff --git a/api/tests/unit_tests/core/rag/datasource/vdb/test_vector_factory.py b/api/tests/unit_tests/core/rag/datasource/vdb/test_vector_factory.py index f84ce2771f..7b6ee97f1c 100644 --- a/api/tests/unit_tests/core/rag/datasource/vdb/test_vector_factory.py +++ b/api/tests/unit_tests/core/rag/datasource/vdb/test_vector_factory.py @@ -316,6 +316,33 @@ def test_create_batches_texts_and_skips_empty_input(vector_factory_module): vector._vector_processor.create.assert_not_called() +def test_create_skips_empty_text_documents_before_embedding(vector_factory_module): + vector = vector_factory_module.Vector.__new__(vector_factory_module.Vector) + vector._embeddings = MagicMock() + vector._embeddings.embed_documents.return_value = [[0.1], [0.2]] + vector._vector_processor = MagicMock() + + docs = [ + Document(page_content="foo", metadata={"doc_id": "id-1"}), + Document(page_content="", metadata={"doc_id": "id-empty"}), + Document(page_content=" \n", metadata={"doc_id": "id-blank"}), + Document(page_content="bar", metadata={"doc_id": "id-2"}), + ] + + vector.create(texts=docs, request_id="r-1") + + vector._embeddings.embed_documents.assert_called_once_with(["foo", "bar"]) + vector._vector_processor.create.assert_called_once_with( + texts=[docs[0], docs[3]], embeddings=[[0.1], [0.2]], request_id="r-1" + ) + + vector._embeddings.embed_documents.reset_mock() + vector._vector_processor.create.reset_mock() + vector.create(texts=[docs[1], docs[2]]) + vector._embeddings.embed_documents.assert_not_called() + vector._vector_processor.create.assert_not_called() + + def test_create_multimodal_filters_missing_uploads(vector_factory_module, monkeypatch): class _Field: def in_(self, value): @@ -396,6 +423,48 @@ def test_add_texts_with_optional_duplicate_check(vector_factory_module): vector._vector_processor.create.assert_called_once() +def test_add_texts_skips_empty_text_documents(vector_factory_module): + vector = vector_factory_module.Vector.__new__(vector_factory_module.Vector) + vector._embeddings = MagicMock() + vector._embeddings.embed_documents.return_value = [[0.1]] + vector._vector_processor = MagicMock() + + docs = [ + Document(page_content="keep", metadata={"doc_id": "id-1"}), + Document(page_content="", metadata={"doc_id": "id-empty"}), + ] + + vector.add_texts(docs, source="api") + + vector._embeddings.embed_documents.assert_called_once_with(["keep"]) + vector._vector_processor.create.assert_called_once_with(texts=[docs[0]], embeddings=[[0.1]], source="api") + + vector._embeddings.embed_documents.reset_mock() + vector._vector_processor.create.reset_mock() + vector.add_texts([docs[1]]) + vector._embeddings.embed_documents.assert_not_called() + vector._vector_processor.create.assert_not_called() + + +def test_add_texts_filters_empty_documents_before_duplicate_check(vector_factory_module): + vector = vector_factory_module.Vector.__new__(vector_factory_module.Vector) + vector._embeddings = MagicMock() + vector._embeddings.embed_documents.return_value = [[0.1]] + vector._vector_processor = MagicMock() + vector._filter_duplicate_texts = MagicMock(return_value=[]) + + docs = [ + Document(page_content="keep", metadata={"doc_id": "id-1"}), + Document(page_content=" ", metadata={"doc_id": "id-empty"}), + ] + + vector.add_texts(docs, duplicate_check=True) + + vector._filter_duplicate_texts.assert_called_once_with([docs[0]]) + vector._embeddings.embed_documents.assert_not_called() + vector._vector_processor.create.assert_not_called() + + def test_vector_delegation_methods(vector_factory_module): vector = vector_factory_module.Vector.__new__(vector_factory_module.Vector) vector._embeddings = MagicMock() diff --git a/api/tests/unit_tests/core/rag/embedding/test_embedding_service.py b/api/tests/unit_tests/core/rag/embedding/test_embedding_service.py index 408cf14a51..4b8175b0b4 100644 --- a/api/tests/unit_tests/core/rag/embedding/test_embedding_service.py +++ b/api/tests/unit_tests/core/rag/embedding/test_embedding_service.py @@ -49,6 +49,10 @@ from unittest.mock import Mock, patch import numpy as np import pytest +from sqlalchemy.exc import IntegrityError + +from core.entities.embedding_type import EmbeddingInputType +from core.rag.embedding.cached_embedding import CacheEmbedding from graphon.model_runtime.entities.model_entities import ModelPropertyKey from graphon.model_runtime.entities.text_embedding_entities import EmbeddingResult, EmbeddingUsage from graphon.model_runtime.errors.invoke import ( @@ -56,10 +60,6 @@ from graphon.model_runtime.errors.invoke import ( InvokeConnectionError, InvokeRateLimitError, ) -from sqlalchemy.exc import IntegrityError - -from core.entities.embedding_type import EmbeddingInputType -from core.rag.embedding.cached_embedding import CacheEmbedding from models.dataset import Embedding diff --git a/api/tests/unit_tests/core/rag/indexing/test_indexing_runner.py b/api/tests/unit_tests/core/rag/indexing/test_indexing_runner.py index fb14c6283c..b4bb343533 100644 --- a/api/tests/unit_tests/core/rag/indexing/test_indexing_runner.py +++ b/api/tests/unit_tests/core/rag/indexing/test_indexing_runner.py @@ -53,7 +53,6 @@ from typing import Any from unittest.mock import MagicMock, Mock, patch import pytest -from graphon.model_runtime.entities.model_entities import ModelType from sqlalchemy.orm.exc import ObjectDeletedError from core.errors.error import ProviderTokenNotInitError @@ -64,6 +63,7 @@ from core.indexing_runner import ( ) from core.rag.index_processor.constant.index_type import IndexStructureType, IndexTechniqueType from core.rag.models.document import ChildDocument, Document +from graphon.model_runtime.entities.model_entities import ModelType from libs.datetime_utils import naive_utc_now from models.dataset import Dataset, DatasetProcessRule from models.dataset import Document as DatasetDocument diff --git a/api/tests/unit_tests/core/repositories/test_celery_workflow_execution_repository.py b/api/tests/unit_tests/core/repositories/test_celery_workflow_execution_repository.py index e229d5fc1a..3d3322094e 100644 --- a/api/tests/unit_tests/core/repositories/test_celery_workflow_execution_repository.py +++ b/api/tests/unit_tests/core/repositories/test_celery_workflow_execution_repository.py @@ -9,10 +9,10 @@ from unittest.mock import Mock, patch from uuid import uuid4 import pytest -from graphon.entities import WorkflowExecution -from graphon.enums import WorkflowType from core.repositories.celery_workflow_execution_repository import CeleryWorkflowExecutionRepository +from graphon.entities import WorkflowExecution +from graphon.enums import WorkflowType from libs.datetime_utils import naive_utc_now from models import Account, EndUser from models.enums import WorkflowRunTriggeredFrom diff --git a/api/tests/unit_tests/core/repositories/test_celery_workflow_node_execution_repository.py b/api/tests/unit_tests/core/repositories/test_celery_workflow_node_execution_repository.py index 7dbf78d0f0..05b4f3a053 100644 --- a/api/tests/unit_tests/core/repositories/test_celery_workflow_node_execution_repository.py +++ b/api/tests/unit_tests/core/repositories/test_celery_workflow_node_execution_repository.py @@ -9,14 +9,14 @@ from unittest.mock import Mock, patch from uuid import uuid4 import pytest + +from core.repositories.celery_workflow_node_execution_repository import CeleryWorkflowNodeExecutionRepository +from core.repositories.factory import OrderConfig from graphon.entities.workflow_node_execution import ( WorkflowNodeExecution, WorkflowNodeExecutionStatus, ) from graphon.enums import BuiltinNodeTypes - -from core.repositories.celery_workflow_node_execution_repository import CeleryWorkflowNodeExecutionRepository -from core.repositories.factory import OrderConfig from libs.datetime_utils import naive_utc_now from models import Account, EndUser from models.workflow import WorkflowNodeExecutionTriggeredFrom 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 5bbcd2202d..18ae9fafc8 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 @@ -7,11 +7,6 @@ from datetime import datetime from types import SimpleNamespace import pytest -from graphon.nodes.human_input.entities import ( - FormDefinition, - UserAction, -) -from graphon.nodes.human_input.enums import HumanInputFormKind, HumanInputFormStatus from core.repositories.human_input_repository import ( HumanInputFormRecord, @@ -26,6 +21,11 @@ from core.workflow.human_input_adapter import ( ExternalRecipient, MemberRecipient, ) +from graphon.nodes.human_input.entities import ( + FormDefinition, + UserAction, +) +from graphon.nodes.human_input.enums import HumanInputFormKind, HumanInputFormStatus from libs.datetime_utils import naive_utc_now from models.human_input import ( EmailExternalRecipientPayload, diff --git a/api/tests/unit_tests/core/repositories/test_workflow_node_execution_conflict_handling.py b/api/tests/unit_tests/core/repositories/test_workflow_node_execution_conflict_handling.py index 84fe522388..abdbc72085 100644 --- a/api/tests/unit_tests/core/repositories/test_workflow_node_execution_conflict_handling.py +++ b/api/tests/unit_tests/core/repositories/test_workflow_node_execution_conflict_handling.py @@ -4,17 +4,17 @@ from unittest.mock import MagicMock, Mock import psycopg2.errors import pytest -from graphon.entities.workflow_node_execution import ( - WorkflowNodeExecution, - WorkflowNodeExecutionStatus, -) -from graphon.enums import BuiltinNodeTypes from sqlalchemy.exc import IntegrityError from sqlalchemy.orm import sessionmaker from core.repositories.sqlalchemy_workflow_node_execution_repository import ( SQLAlchemyWorkflowNodeExecutionRepository, ) +from graphon.entities.workflow_node_execution import ( + WorkflowNodeExecution, + WorkflowNodeExecutionStatus, +) +from graphon.enums import BuiltinNodeTypes from libs.datetime_utils import naive_utc_now from models import Account, WorkflowNodeExecutionTriggeredFrom diff --git a/api/tests/unit_tests/core/repositories/test_workflow_node_execution_truncation.py b/api/tests/unit_tests/core/repositories/test_workflow_node_execution_truncation.py index 27729e7f06..5af1376a0a 100644 --- a/api/tests/unit_tests/core/repositories/test_workflow_node_execution_truncation.py +++ b/api/tests/unit_tests/core/repositories/test_workflow_node_execution_truncation.py @@ -11,17 +11,17 @@ from datetime import UTC, datetime from typing import Any from unittest.mock import MagicMock -from graphon.entities.workflow_node_execution import ( - WorkflowNodeExecution, - WorkflowNodeExecutionStatus, -) -from graphon.enums import BuiltinNodeTypes from sqlalchemy import Engine from configs import dify_config from core.repositories.sqlalchemy_workflow_node_execution_repository import ( SQLAlchemyWorkflowNodeExecutionRepository, ) +from graphon.entities.workflow_node_execution import ( + WorkflowNodeExecution, + WorkflowNodeExecutionStatus, +) +from graphon.enums import BuiltinNodeTypes from models import Account, WorkflowNodeExecutionTriggeredFrom from models.enums import ExecutionOffLoadType from models.workflow import WorkflowNodeExecutionModel, WorkflowNodeExecutionOffload diff --git a/api/tests/unit_tests/core/test_file.py b/api/tests/unit_tests/core/test_file.py index 00a3a89c0b..eab0176f41 100644 --- a/api/tests/unit_tests/core/test_file.py +++ b/api/tests/unit_tests/core/test_file.py @@ -1,7 +1,6 @@ import json from graphon.file import File, FileTransferMethod, FileType, FileUploadConfig - from models.workflow import Workflow diff --git a/api/tests/unit_tests/core/test_model_manager.py b/api/tests/unit_tests/core/test_model_manager.py index 9031c2b075..5a7e7e30a5 100644 --- a/api/tests/unit_tests/core/test_model_manager.py +++ b/api/tests/unit_tests/core/test_model_manager.py @@ -2,12 +2,12 @@ from unittest.mock import MagicMock, patch import pytest import redis -from graphon.model_runtime.entities.model_entities import ModelType from pytest_mock import MockerFixture from core.entities.provider_entities import ModelLoadBalancingConfiguration from core.model_manager import LBModelManager, ModelManager from extensions.ext_redis import redis_client +from graphon.model_runtime.entities.model_entities import ModelType @pytest.fixture diff --git a/api/tests/unit_tests/core/test_provider_configuration.py b/api/tests/unit_tests/core/test_provider_configuration.py index 331166fe63..b19a21d7f4 100644 --- a/api/tests/unit_tests/core/test_provider_configuration.py +++ b/api/tests/unit_tests/core/test_provider_configuration.py @@ -1,15 +1,6 @@ from unittest.mock import Mock, patch import pytest -from graphon.model_runtime.entities.common_entities import I18nObject -from graphon.model_runtime.entities.model_entities import ModelType -from graphon.model_runtime.entities.provider_entities import ( - ConfigurateMethod, - CredentialFormSchema, - FormOption, - FormType, - ProviderEntity, -) from core.entities.provider_configuration import ProviderConfiguration, SystemConfigurationStatus from core.entities.provider_entities import ( @@ -21,6 +12,15 @@ from core.entities.provider_entities import ( RestrictModel, SystemConfiguration, ) +from graphon.model_runtime.entities.common_entities import I18nObject +from graphon.model_runtime.entities.model_entities import ModelType +from graphon.model_runtime.entities.provider_entities import ( + ConfigurateMethod, + CredentialFormSchema, + FormOption, + FormType, + ProviderEntity, +) from models.provider import Provider, ProviderType diff --git a/api/tests/unit_tests/core/tools/utils/test_workflow_configuration_sync.py b/api/tests/unit_tests/core/tools/utils/test_workflow_configuration_sync.py index 0e3a7e623a..43f3fbd5c9 100644 --- a/api/tests/unit_tests/core/tools/utils/test_workflow_configuration_sync.py +++ b/api/tests/unit_tests/core/tools/utils/test_workflow_configuration_sync.py @@ -1,9 +1,9 @@ import pytest -from graphon.variables.input_entities import VariableEntity, VariableEntityType from core.tools.entities.tool_entities import ToolParameter, WorkflowToolParameterConfiguration from core.tools.errors import WorkflowToolHumanInputNotSupportedError from core.tools.utils.workflow_configuration_sync import WorkflowToolConfigurationUtils +from graphon.variables.input_entities import VariableEntity, VariableEntityType def test_ensure_no_human_input_nodes_passes_for_non_human_input(): diff --git a/api/tests/unit_tests/core/tools/workflow_as_tool/test_tool.py b/api/tests/unit_tests/core/tools/workflow_as_tool/test_tool.py index c20edd7400..72a73dd936 100644 --- a/api/tests/unit_tests/core/tools/workflow_as_tool/test_tool.py +++ b/api/tests/unit_tests/core/tools/workflow_as_tool/test_tool.py @@ -11,7 +11,6 @@ from typing import Any from unittest.mock import MagicMock, Mock, patch import pytest -from graphon.file import FILE_MODEL_IDENTITY, FileTransferMethod, FileType from core.app.entities.app_invoke_entities import InvokeFrom from core.tools.__base.tool_runtime import ToolRuntime @@ -25,6 +24,7 @@ from core.tools.entities.tool_entities import ( ) from core.tools.errors import ToolInvokeError from core.tools.workflow_as_tool.tool import WorkflowTool +from graphon.file import FILE_MODEL_IDENTITY, FileTransferMethod, FileType class StubScalars: diff --git a/api/tests/unit_tests/core/variables/test_segment_type.py b/api/tests/unit_tests/core/variables/test_segment_type.py index 37ecd2890b..d4e862220a 100644 --- a/api/tests/unit_tests/core/variables/test_segment_type.py +++ b/api/tests/unit_tests/core/variables/test_segment_type.py @@ -1,4 +1,5 @@ import pytest + from graphon.variables.segment_group import SegmentGroup from graphon.variables.segments import StringSegment from graphon.variables.types import ArrayValidation, SegmentType diff --git a/api/tests/unit_tests/core/variables/test_segment_type_validation.py b/api/tests/unit_tests/core/variables/test_segment_type_validation.py index 1752e27271..317fe99d37 100644 --- a/api/tests/unit_tests/core/variables/test_segment_type_validation.py +++ b/api/tests/unit_tests/core/variables/test_segment_type_validation.py @@ -9,6 +9,7 @@ from dataclasses import dataclass from typing import Any import pytest + from graphon.file import File, FileTransferMethod, FileType from graphon.variables.segment_group import SegmentGroup from graphon.variables.segments import ( diff --git a/api/tests/unit_tests/core/variables/test_variables.py b/api/tests/unit_tests/core/variables/test_variables.py index 75b01bf42e..dae5e1ce98 100644 --- a/api/tests/unit_tests/core/variables/test_variables.py +++ b/api/tests/unit_tests/core/variables/test_variables.py @@ -1,4 +1,6 @@ import pytest +from pydantic import ValidationError + from graphon.variables import ( ArrayFileVariable, ArrayVariable, @@ -10,7 +12,6 @@ from graphon.variables import ( StringVariable, ) from graphon.variables.variables import VariableBase -from pydantic import ValidationError def test_frozen_variables(): diff --git a/api/tests/unit_tests/core/workflow/graph_engine/layers/conftest.py b/api/tests/unit_tests/core/workflow/graph_engine/layers/conftest.py index 41627f5e0b..025d79b25d 100644 --- a/api/tests/unit_tests/core/workflow/graph_engine/layers/conftest.py +++ b/api/tests/unit_tests/core/workflow/graph_engine/layers/conftest.py @@ -5,12 +5,13 @@ Shared fixtures for ObservabilityLayer tests. from unittest.mock import MagicMock, patch import pytest -from graphon.enums import BuiltinNodeTypes from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import SimpleSpanProcessor from opentelemetry.sdk.trace.export.in_memory_span_exporter import InMemorySpanExporter from opentelemetry.trace import set_tracer_provider +from graphon.enums import BuiltinNodeTypes + @pytest.fixture def memory_span_exporter(): @@ -61,9 +62,8 @@ def mock_llm_node(): @pytest.fixture def mock_tool_node(): """Create a mock Tool Node with tool-specific attributes.""" - from graphon.nodes.tool.entities import ToolNodeData - from core.tools.entities.tool_entities import ToolProviderType + from graphon.nodes.tool.entities import ToolNodeData node = MagicMock() node.id = "test-tool-node-id" diff --git a/api/tests/unit_tests/core/workflow/graph_engine/layers/test_observability.py b/api/tests/unit_tests/core/workflow/graph_engine/layers/test_observability.py index 9cf72763ee..919f15efd0 100644 --- a/api/tests/unit_tests/core/workflow/graph_engine/layers/test_observability.py +++ b/api/tests/unit_tests/core/workflow/graph_engine/layers/test_observability.py @@ -13,10 +13,10 @@ Test coverage: from unittest.mock import patch import pytest -from graphon.enums import BuiltinNodeTypes from opentelemetry.trace import StatusCode from core.app.workflow.layers.observability import ObservabilityLayer +from graphon.enums import BuiltinNodeTypes class TestObservabilityLayerInitialization: diff --git a/api/tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py b/api/tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py index 27938e084b..f9819c47ec 100644 --- a/api/tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py +++ b/api/tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py @@ -10,6 +10,10 @@ from collections.abc import Generator, Mapping from typing import TYPE_CHECKING, Any, Optional from unittest.mock import MagicMock +from core.model_manager import ModelInstance +from core.workflow.node_runtime import DifyToolNodeRuntime +from core.workflow.nodes.agent import AgentNode +from core.workflow.nodes.knowledge_retrieval.knowledge_retrieval_node import KnowledgeRetrievalNode from graphon.enums import WorkflowNodeExecutionMetadataKey, WorkflowNodeExecutionStatus from graphon.model_runtime.entities.llm_entities import LLMUsage from graphon.node_events import NodeRunResult, StreamChunkEvent, StreamCompletedEvent @@ -27,11 +31,6 @@ from graphon.nodes.template_transform import TemplateTransformNode from graphon.nodes.tool import ToolNode from graphon.template_rendering import Jinja2TemplateRenderer, TemplateRenderError -from core.model_manager import ModelInstance -from core.workflow.node_runtime import DifyToolNodeRuntime -from core.workflow.nodes.agent import AgentNode -from core.workflow.nodes.knowledge_retrieval.knowledge_retrieval_node import KnowledgeRetrievalNode - if TYPE_CHECKING: from graphon.entities import GraphInitParams from graphon.runtime import GraphRuntimeState 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 d3272936cd..75bc6d05f7 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 @@ -4,6 +4,13 @@ from dataclasses import dataclass from datetime import datetime, timedelta from typing import Any, Protocol +from core.repositories.human_input_repository import ( + FormCreateParams, + HumanInputFormEntity, + HumanInputFormRepository, +) +from core.workflow.node_runtime import DifyHumanInputNodeRuntime +from core.workflow.system_variables import build_system_variables from graphon.entities import WorkflowStartReason from graphon.graph import Graph from graphon.graph_engine import GraphEngine, GraphEngineConfig @@ -23,14 +30,6 @@ from graphon.nodes.human_input.human_input_node import HumanInputNode from graphon.nodes.start.entities import StartNodeData from graphon.nodes.start.start_node import StartNode from graphon.runtime import GraphRuntimeState, VariablePool - -from core.repositories.human_input_repository import ( - FormCreateParams, - HumanInputFormEntity, - HumanInputFormRepository, -) -from core.workflow.node_runtime import DifyHumanInputNodeRuntime -from core.workflow.system_variables import build_system_variables from libs.datetime_utils import naive_utc_now from tests.workflow_test_utils import build_test_graph_init_params diff --git a/api/tests/unit_tests/core/workflow/graph_engine/test_table_runner.py b/api/tests/unit_tests/core/workflow/graph_engine/test_table_runner.py index b11f957677..7d23b63049 100644 --- a/api/tests/unit_tests/core/workflow/graph_engine/test_table_runner.py +++ b/api/tests/unit_tests/core/workflow/graph_engine/test_table_runner.py @@ -19,6 +19,11 @@ from functools import lru_cache from pathlib import Path from typing import Any +from core.app.entities.app_invoke_entities import DIFY_RUN_CONTEXT_KEY, InvokeFrom, UserFrom +from core.tools.utils.yaml_utils import _load_yaml_file +from core.workflow.node_factory import DifyNodeFactory, get_default_root_node_id +from core.workflow.system_variables import build_bootstrap_variables, build_system_variables +from core.workflow.variable_pool_initializer import add_node_inputs_to_pool, add_variables_to_pool from graphon.entities import GraphInitParams from graphon.graph import Graph from graphon.graph_engine import GraphEngine, GraphEngineConfig @@ -39,12 +44,6 @@ from graphon.variables import ( StringVariable, ) -from core.app.entities.app_invoke_entities import DIFY_RUN_CONTEXT_KEY, InvokeFrom, UserFrom -from core.tools.utils.yaml_utils import _load_yaml_file -from core.workflow.node_factory import DifyNodeFactory, get_default_root_node_id -from core.workflow.system_variables import build_bootstrap_variables, build_system_variables -from core.workflow.variable_pool_initializer import add_node_inputs_to_pool, add_variables_to_pool - from .test_mock_config import MockConfig from .test_mock_factory import MockNodeFactory diff --git a/api/tests/unit_tests/core/workflow/graph_engine/test_tool_in_chatflow.py b/api/tests/unit_tests/core/workflow/graph_engine/test_tool_in_chatflow.py index 12aec6edf2..ba1e74f3e0 100644 --- a/api/tests/unit_tests/core/workflow/graph_engine/test_tool_in_chatflow.py +++ b/api/tests/unit_tests/core/workflow/graph_engine/test_tool_in_chatflow.py @@ -5,6 +5,7 @@ from graphon.graph_events import ( NodeRunStreamChunkEvent, ) +from .test_mock_config import MockConfigBuilder from .test_table_runner import TableTestRunner @@ -44,3 +45,51 @@ def test_tool_in_chatflow(): assert stream_chunk_events[0].chunk == "hello, dify!", ( f"Expected chunk to be 'hello, dify!', but got {stream_chunk_events[0].chunk}" ) + + +def test_answer_can_render_llm_structured_output_in_chatflow(): + runner = TableTestRunner() + + fixture_data = runner.workflow_runner.load_fixture("basic_chatflow") + nodes = fixture_data["workflow"]["graph"]["nodes"] + answer_node = next(node for node in nodes if node["id"] == "answer") + answer_node["data"]["answer"] = "{{#llm.structured_output#}}" + + mock_config = ( + MockConfigBuilder() + .with_node_output( + "llm", + { + "text": "plain text", + "structured_output": {"type": "greeting"}, + "usage": { + "prompt_tokens": 10, + "completion_tokens": 5, + "total_tokens": 15, + }, + "finish_reason": "stop", + }, + ) + .build() + ) + + graph, graph_runtime_state = runner.workflow_runner.create_graph_from_fixture( + fixture_data=fixture_data, + query="hello", + use_mock_factory=True, + mock_config=mock_config, + ) + + engine = GraphEngine( + workflow_id="test_workflow", + graph=graph, + graph_runtime_state=graph_runtime_state, + command_channel=InMemoryChannel(), + config=GraphEngineConfig(), + ) + + events = list(engine.run()) + success_events = [e for e in events if isinstance(e, GraphRunSucceededEvent)] + + assert success_events, "Workflow should complete successfully" + assert success_events[-1].outputs["answer"] == '{\n "type": "greeting"\n}' diff --git a/api/tests/unit_tests/core/workflow/nodes/answer/test_answer.py b/api/tests/unit_tests/core/workflow/nodes/answer/test_answer.py index 76b4cd1ef4..ae9dae0646 100644 --- a/api/tests/unit_tests/core/workflow/nodes/answer/test_answer.py +++ b/api/tests/unit_tests/core/workflow/nodes/answer/test_answer.py @@ -86,3 +86,80 @@ def test_execute_answer(): assert result.status == WorkflowNodeExecutionStatus.SUCCEEDED assert result.outputs["answer"] == "Today's weather is sunny\nYou are a helpful AI.\n{{img}}\nFin." + + +def test_execute_answer_renders_structured_output_object_as_json() -> None: + init_params = build_test_graph_init_params( + workflow_id="1", + graph_config={"nodes": [], "edges": []}, + tenant_id="1", + app_id="1", + user_id="1", + user_from=UserFrom.ACCOUNT, + invoke_from=InvokeFrom.DEBUGGER, + call_depth=0, + ) + + variable_pool = VariablePool( + system_variables=build_system_variables(user_id="aaa", files=[]), + user_inputs={}, + environment_variables=[], + conversation_variables=[], + ) + variable_pool.add(["1777539038857", "structured_output"], {"type": "greeting"}) + + graph_runtime_state = GraphRuntimeState(variable_pool=variable_pool, start_at=time.perf_counter()) + + node = AnswerNode( + node_id=str(uuid.uuid4()), + graph_init_params=init_params, + graph_runtime_state=graph_runtime_state, + config=AnswerNodeData( + title="123", + type="answer", + answer="{{#1777539038857.structured_output#}}", + ), + ) + + result = node._run() + + assert result.status == WorkflowNodeExecutionStatus.SUCCEEDED + assert result.outputs["answer"] == '{\n "type": "greeting"\n}' + + +def test_execute_answer_falls_back_to_plain_selector_text_when_structured_output_missing() -> None: + init_params = build_test_graph_init_params( + workflow_id="1", + graph_config={"nodes": [], "edges": []}, + tenant_id="1", + app_id="1", + user_id="1", + user_from=UserFrom.ACCOUNT, + invoke_from=InvokeFrom.DEBUGGER, + call_depth=0, + ) + + variable_pool = VariablePool( + system_variables=build_system_variables(user_id="aaa", files=[]), + user_inputs={}, + environment_variables=[], + conversation_variables=[], + ) + + graph_runtime_state = GraphRuntimeState(variable_pool=variable_pool, start_at=time.perf_counter()) + + node = AnswerNode( + node_id=str(uuid.uuid4()), + graph_init_params=init_params, + graph_runtime_state=graph_runtime_state, + config=AnswerNodeData( + title="123", + type="answer", + answer="{{#1777539038857.structured_output#}}", + ), + ) + + result = node._run() + + assert result.status == WorkflowNodeExecutionStatus.SUCCEEDED + assert result.outputs["answer"] == "1777539038857.structured_output" diff --git a/api/tests/unit_tests/core/workflow/nodes/base/test_base_node.py b/api/tests/unit_tests/core/workflow/nodes/base/test_base_node.py index 343bcd3919..ec4cef1955 100644 --- a/api/tests/unit_tests/core/workflow/nodes/base/test_base_node.py +++ b/api/tests/unit_tests/core/workflow/nodes/base/test_base_node.py @@ -1,10 +1,10 @@ import pytest + +from core.workflow.node_factory import get_node_type_classes_mapping from graphon.entities.base_node_data import BaseNodeData from graphon.enums import BuiltinNodeTypes, NodeType from graphon.nodes.base.node import Node -from core.workflow.node_factory import get_node_type_classes_mapping - # Ensures that all production node classes are imported and registered. _ = get_node_type_classes_mapping() diff --git a/api/tests/unit_tests/core/workflow/nodes/base/test_get_node_type_classes_mapping.py b/api/tests/unit_tests/core/workflow/nodes/base/test_get_node_type_classes_mapping.py index b9371a34f4..ef0df55995 100644 --- a/api/tests/unit_tests/core/workflow/nodes/base/test_get_node_type_classes_mapping.py +++ b/api/tests/unit_tests/core/workflow/nodes/base/test_get_node_type_classes_mapping.py @@ -1,6 +1,7 @@ import types from collections.abc import Mapping +from core.workflow.node_factory import get_node_type_classes_mapping from graphon.entities.base_node_data import BaseNodeData from graphon.enums import BuiltinNodeTypes, NodeType from graphon.nodes.base.node import Node @@ -13,8 +14,6 @@ from graphon.nodes.variable_assigner.v2.node import ( VariableAssignerNode as VariableAssignerV2, ) -from core.workflow.node_factory import get_node_type_classes_mapping - def test_variable_assigner_latest_prefers_highest_numeric_version(): # Act diff --git a/api/tests/unit_tests/core/workflow/nodes/code/code_node_spec.py b/api/tests/unit_tests/core/workflow/nodes/code/code_node_spec.py index d155124c50..ce0c9b79c6 100644 --- a/api/tests/unit_tests/core/workflow/nodes/code/code_node_spec.py +++ b/api/tests/unit_tests/core/workflow/nodes/code/code_node_spec.py @@ -1,3 +1,4 @@ +from configs import dify_config from graphon.nodes.code.code_node import CodeNode from graphon.nodes.code.entities import CodeLanguage, CodeNodeData from graphon.nodes.code.exc import ( @@ -8,8 +9,6 @@ from graphon.nodes.code.exc import ( from graphon.nodes.code.limits import CodeNodeLimits from graphon.variables.types import SegmentType -from configs import dify_config - CodeNode._limits = CodeNodeLimits( max_string_length=dify_config.CODE_MAX_STRING_LENGTH, max_number=dify_config.CODE_MAX_NUMBER, diff --git a/api/tests/unit_tests/core/workflow/nodes/http_request/test_http_request_executor.py b/api/tests/unit_tests/core/workflow/nodes/http_request/test_http_request_executor.py index a5026b40cf..be7cc073db 100644 --- a/api/tests/unit_tests/core/workflow/nodes/http_request/test_http_request_executor.py +++ b/api/tests/unit_tests/core/workflow/nodes/http_request/test_http_request_executor.py @@ -1,4 +1,8 @@ import pytest + +from configs import dify_config +from core.helper.ssrf_proxy import ssrf_proxy +from core.workflow.system_variables import default_system_variables from graphon.file.file_manager import file_manager from graphon.nodes.http_request import ( BodyData, @@ -12,10 +16,6 @@ from graphon.nodes.http_request.exc import AuthorizationConfigError from graphon.nodes.http_request.executor import Executor from graphon.runtime import VariablePool -from configs import dify_config -from core.helper.ssrf_proxy import ssrf_proxy -from core.workflow.system_variables import default_system_variables - HTTP_REQUEST_CONFIG = HttpRequestNodeConfig( max_connect_timeout=dify_config.HTTP_REQUEST_MAX_CONNECT_TIMEOUT, max_read_timeout=dify_config.HTTP_REQUEST_MAX_READ_TIMEOUT, 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 bbb4fa5f69..4a9438b14f 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 @@ -1,6 +1,9 @@ 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.system_variables import default_system_variables from graphon.entities import GraphInitParams from graphon.enums import BuiltinNodeTypes from graphon.graph_events import ( @@ -12,10 +15,6 @@ from graphon.nodes.human_input.entities import HumanInputNodeData from graphon.nodes.human_input.enums import HumanInputFormStatus from graphon.nodes.human_input.human_input_node import HumanInputNode from graphon.runtime import GraphRuntimeState, VariablePool - -from core.app.entities.app_invoke_entities import DIFY_RUN_CONTEXT_KEY, InvokeFrom, UserFrom -from core.workflow.node_runtime import DifyHumanInputNodeRuntime -from core.workflow.system_variables import default_system_variables from libs.datetime_utils import naive_utc_now diff --git a/api/tests/unit_tests/core/workflow/nodes/knowledge_retrieval/test_knowledge_retrieval_node.py b/api/tests/unit_tests/core/workflow/nodes/knowledge_retrieval/test_knowledge_retrieval_node.py index 3ab86001e8..e923ee761b 100644 --- a/api/tests/unit_tests/core/workflow/nodes/knowledge_retrieval/test_knowledge_retrieval_node.py +++ b/api/tests/unit_tests/core/workflow/nodes/knowledge_retrieval/test_knowledge_retrieval_node.py @@ -3,10 +3,6 @@ import uuid from unittest.mock import Mock import pytest -from graphon.enums import WorkflowNodeExecutionStatus -from graphon.model_runtime.entities.llm_entities import LLMUsage -from graphon.runtime import GraphRuntimeState, VariablePool -from graphon.variables import StringSegment from core.app.entities.app_invoke_entities import InvokeFrom, UserFrom from core.workflow.nodes.knowledge_retrieval.entities import ( @@ -25,6 +21,10 @@ from core.workflow.nodes.knowledge_retrieval.knowledge_retrieval_node import ( ) from core.workflow.nodes.knowledge_retrieval.retrieval import RAGRetrievalProtocol, Source from core.workflow.system_variables import build_system_variables +from graphon.enums import WorkflowNodeExecutionStatus +from graphon.model_runtime.entities.llm_entities import LLMUsage +from graphon.runtime import GraphRuntimeState, VariablePool +from graphon.variables import StringSegment from tests.workflow_test_utils import build_test_graph_init_params diff --git a/api/tests/unit_tests/core/workflow/nodes/list_operator/node_spec.py b/api/tests/unit_tests/core/workflow/nodes/list_operator/node_spec.py index c0332fe99a..388654f279 100644 --- a/api/tests/unit_tests/core/workflow/nodes/list_operator/node_spec.py +++ b/api/tests/unit_tests/core/workflow/nodes/list_operator/node_spec.py @@ -2,6 +2,8 @@ from types import SimpleNamespace from unittest.mock import MagicMock import pytest + +from core.app.entities.app_invoke_entities import DIFY_RUN_CONTEXT_KEY from graphon.entities import GraphInitParams from graphon.enums import BuiltinNodeTypes, WorkflowNodeExecutionStatus from graphon.nodes.list_operator.entities import ListOperatorNodeData @@ -9,8 +11,6 @@ from graphon.nodes.list_operator.node import ListOperatorNode from graphon.runtime import GraphRuntimeState from graphon.variables import ArrayNumberSegment, ArrayStringSegment -from core.app.entities.app_invoke_entities import DIFY_RUN_CONTEXT_KEY - class TestListOperatorNode: """Comprehensive tests for ListOperatorNode.""" diff --git a/api/tests/unit_tests/core/workflow/nodes/llm/test_node.py b/api/tests/unit_tests/core/workflow/nodes/llm/test_node.py index 453c9dba4d..c707cf28cd 100644 --- a/api/tests/unit_tests/core/workflow/nodes/llm/test_node.py +++ b/api/tests/unit_tests/core/workflow/nodes/llm/test_node.py @@ -5,6 +5,19 @@ from collections.abc import Sequence from unittest import mock import pytest + +from core.app.entities.app_invoke_entities import DifyRunContext, InvokeFrom, ModelConfigWithCredentialsEntity, UserFrom +from core.app.llm.model_access import ( + DifyCredentialsProvider, + DifyModelFactory, + build_dify_model_access, + fetch_model_config, +) +from core.entities.provider_configuration import ProviderConfiguration, ProviderModelBundle +from core.entities.provider_entities import CustomConfiguration, SystemConfiguration +from core.plugin.impl.model_runtime_factory import create_plugin_model_runtime +from core.prompt.entities.advanced_prompt_entities import MemoryConfig +from core.workflow.system_variables import default_system_variables from graphon.entities import GraphInitParams from graphon.file import File, FileTransferMethod, FileType from graphon.model_runtime.entities.common_entities import I18nObject @@ -67,19 +80,6 @@ from graphon.nodes.llm.runtime_protocols import PromptMessageSerializerProtocol from graphon.runtime import GraphRuntimeState, VariablePool from graphon.template_rendering import TemplateRenderError from graphon.variables import ArrayAnySegment, ArrayFileSegment, NoneSegment - -from core.app.entities.app_invoke_entities import DifyRunContext, InvokeFrom, ModelConfigWithCredentialsEntity, UserFrom -from core.app.llm.model_access import ( - DifyCredentialsProvider, - DifyModelFactory, - build_dify_model_access, - fetch_model_config, -) -from core.entities.provider_configuration import ProviderConfiguration, ProviderModelBundle -from core.entities.provider_entities import CustomConfiguration, SystemConfiguration -from core.plugin.impl.model_runtime_factory import create_plugin_model_runtime -from core.prompt.entities.advanced_prompt_entities import MemoryConfig -from core.workflow.system_variables import default_system_variables from models.provider import ProviderType from tests.workflow_test_utils import build_test_graph_init_params diff --git a/api/tests/unit_tests/core/workflow/nodes/parameter_extractor/test_parameter_extractor_node.py b/api/tests/unit_tests/core/workflow/nodes/parameter_extractor/test_parameter_extractor_node.py index 1c362a0a03..8f8ec49f14 100644 --- a/api/tests/unit_tests/core/workflow/nodes/parameter_extractor/test_parameter_extractor_node.py +++ b/api/tests/unit_tests/core/workflow/nodes/parameter_extractor/test_parameter_extractor_node.py @@ -6,6 +6,8 @@ from dataclasses import dataclass from typing import Any import pytest + +from factories.variable_factory import build_segment_with_type from graphon.model_runtime.entities import LLMMode from graphon.nodes.llm import ModelConfig, VisionConfig from graphon.nodes.parameter_extractor.entities import ParameterConfig, ParameterExtractorNodeData @@ -18,8 +20,6 @@ from graphon.nodes.parameter_extractor.exc import ( from graphon.nodes.parameter_extractor.parameter_extractor_node import ParameterExtractorNode from graphon.variables.types import SegmentType -from factories.variable_factory import build_segment_with_type - @dataclass class ValidTestCase: diff --git a/api/tests/unit_tests/core/workflow/nodes/test_base_node.py b/api/tests/unit_tests/core/workflow/nodes/test_base_node.py index 824f52a89b..364408ead6 100644 --- a/api/tests/unit_tests/core/workflow/nodes/test_base_node.py +++ b/api/tests/unit_tests/core/workflow/nodes/test_base_node.py @@ -1,15 +1,15 @@ from collections.abc import Mapping import pytest + +from core.app.entities.app_invoke_entities import InvokeFrom, UserFrom +from core.workflow.node_runtime import resolve_dify_run_context +from core.workflow.system_variables import build_system_variables from graphon.entities import GraphInitParams from graphon.entities.base_node_data import BaseNodeData from graphon.enums import BuiltinNodeTypes from graphon.nodes.base.node import Node from graphon.runtime import GraphRuntimeState, VariablePool - -from core.app.entities.app_invoke_entities import InvokeFrom, UserFrom -from core.workflow.node_runtime import resolve_dify_run_context -from core.workflow.system_variables import build_system_variables from tests.workflow_test_utils import build_test_graph_init_params diff --git a/api/tests/unit_tests/core/workflow/nodes/test_document_extractor_node.py b/api/tests/unit_tests/core/workflow/nodes/test_document_extractor_node.py index 896ec61092..dd75b32593 100644 --- a/api/tests/unit_tests/core/workflow/nodes/test_document_extractor_node.py +++ b/api/tests/unit_tests/core/workflow/nodes/test_document_extractor_node.py @@ -4,6 +4,8 @@ from unittest.mock import Mock, patch import pandas as pd import pytest from docx.oxml.text.paragraph import CT_P + +from core.app.entities.app_invoke_entities import InvokeFrom, UserFrom from graphon.entities import GraphInitParams from graphon.enums import BuiltinNodeTypes, WorkflowNodeExecutionStatus from graphon.file import File, FileTransferMethod @@ -21,8 +23,6 @@ from graphon.nodes.document_extractor.node import ( from graphon.variables import ArrayFileSegment, FileSegment from graphon.variables.segments import ArrayStringSegment from graphon.variables.variables import StringVariable - -from core.app.entities.app_invoke_entities import InvokeFrom, UserFrom from tests.workflow_test_utils import build_test_graph_init_params diff --git a/api/tests/unit_tests/core/workflow/nodes/test_if_else.py b/api/tests/unit_tests/core/workflow/nodes/test_if_else.py index 18cb136322..aa9a1360b0 100644 --- a/api/tests/unit_tests/core/workflow/nodes/test_if_else.py +++ b/api/tests/unit_tests/core/workflow/nodes/test_if_else.py @@ -3,6 +3,11 @@ import uuid from unittest.mock import MagicMock, Mock import pytest + +from core.app.entities.app_invoke_entities import DIFY_RUN_CONTEXT_KEY, InvokeFrom, UserFrom +from core.workflow.node_factory import DifyNodeFactory +from core.workflow.system_variables import build_system_variables +from extensions.ext_database import db from graphon.enums import WorkflowNodeExecutionStatus from graphon.file import File, FileTransferMethod, FileType from graphon.graph import Graph @@ -11,11 +16,6 @@ from graphon.nodes.if_else.if_else_node import IfElseNode from graphon.runtime import GraphRuntimeState, VariablePool from graphon.utils.condition.entities import Condition, SubCondition, SubVariableCondition from graphon.variables import ArrayFileSegment - -from core.app.entities.app_invoke_entities import DIFY_RUN_CONTEXT_KEY, InvokeFrom, UserFrom -from core.workflow.node_factory import DifyNodeFactory -from core.workflow.system_variables import build_system_variables -from extensions.ext_database import db from tests.workflow_test_utils import build_test_graph_init_params diff --git a/api/tests/unit_tests/core/workflow/nodes/test_list_operator.py b/api/tests/unit_tests/core/workflow/nodes/test_list_operator.py index e7bf78f851..465a4c0ff4 100644 --- a/api/tests/unit_tests/core/workflow/nodes/test_list_operator.py +++ b/api/tests/unit_tests/core/workflow/nodes/test_list_operator.py @@ -1,6 +1,8 @@ from unittest.mock import MagicMock import pytest + +from core.app.entities.app_invoke_entities import DIFY_RUN_CONTEXT_KEY, InvokeFrom, UserFrom from graphon.enums import WorkflowNodeExecutionStatus from graphon.file import File, FileTransferMethod, FileType from graphon.nodes.list_operator.entities import ( @@ -16,8 +18,6 @@ from graphon.nodes.list_operator.exc import InvalidKeyError from graphon.nodes.list_operator.node import ListOperatorNode, _get_file_extract_string_func from graphon.variables import ArrayFileSegment -from core.app.entities.app_invoke_entities import DIFY_RUN_CONTEXT_KEY, InvokeFrom, UserFrom - def _build_list_operator_node(node_data: ListOperatorNodeData, graph_init_params) -> ListOperatorNode: return ListOperatorNode( diff --git a/api/tests/unit_tests/core/workflow/nodes/test_start_node_json_object.py b/api/tests/unit_tests/core/workflow/nodes/test_start_node_json_object.py index 56bbb923b3..5655f80737 100644 --- a/api/tests/unit_tests/core/workflow/nodes/test_start_node_json_object.py +++ b/api/tests/unit_tests/core/workflow/nodes/test_start_node_json_object.py @@ -2,16 +2,16 @@ import json import time import pytest +from pydantic import ValidationError as PydanticValidationError + +from core.workflow.system_variables import build_system_variables +from core.workflow.variable_prefixes import CONVERSATION_VARIABLE_NODE_ID, ENVIRONMENT_VARIABLE_NODE_ID from graphon.nodes.start.entities import StartNodeData from graphon.nodes.start.start_node import StartNode from graphon.runtime import GraphRuntimeState from graphon.variables import build_segment, segment_to_variable from graphon.variables.input_entities import VariableEntity, VariableEntityType from graphon.variables.variables import Variable -from pydantic import ValidationError as PydanticValidationError - -from core.workflow.system_variables import build_system_variables -from core.workflow.variable_prefixes import CONVERSATION_VARIABLE_NODE_ID, ENVIRONMENT_VARIABLE_NODE_ID from tests.workflow_test_utils import build_test_graph_init_params, build_test_variable_pool diff --git a/api/tests/unit_tests/core/workflow/nodes/webhook/test_exceptions.py b/api/tests/unit_tests/core/workflow/nodes/webhook/test_exceptions.py index f1132af02b..617554ee17 100644 --- a/api/tests/unit_tests/core/workflow/nodes/webhook/test_exceptions.py +++ b/api/tests/unit_tests/core/workflow/nodes/webhook/test_exceptions.py @@ -1,5 +1,4 @@ import pytest -from graphon.entities.exc import BaseNodeError from core.workflow.nodes.trigger_webhook.exc import ( WebhookConfigError, @@ -7,6 +6,7 @@ from core.workflow.nodes.trigger_webhook.exc import ( WebhookNotFoundError, WebhookTimeoutError, ) +from graphon.entities.exc import BaseNodeError def test_webhook_node_error_inheritance(): 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 1418cdd87c..1821f72e0c 100644 --- a/api/tests/unit_tests/core/workflow/test_node_factory.py +++ b/api/tests/unit_tests/core/workflow/test_node_factory.py @@ -10,14 +10,20 @@ from core.workflow.nodes.knowledge_index import KNOWLEDGE_INDEX_NODE_TYPE from graphon.entities.base_node_data import BaseNodeData from graphon.enums import BuiltinNodeTypes, NodeType from graphon.nodes.code.entities import CodeLanguage +from graphon.nodes.llm.entities import LLMNodeData from graphon.variables.segments import StringSegment def _assert_typed_node_config(config, *, node_id: str, node_type: NodeType, version: str = "1") -> None: _ = node_id - assert isinstance(config, BaseNodeData) - assert config.type == node_type - assert config.version == version + if isinstance(config, BaseNodeData): + assert config.type == node_type + assert config.version == version + return + + assert isinstance(config, dict) + assert config["type"] == node_type + assert config["version"] == version def _node_constructor(*, return_value): @@ -546,6 +552,84 @@ class TestDifyNodeFactoryCreateNode: assert kwargs["unstructured_api_config"] is sentinel.unstructured_api_config assert kwargs["http_client"] is sentinel.http_client + def test_build_llm_compatible_node_init_kwargs_preserves_structured_output_switch(self, factory): + node_data = LLMNodeData.model_validate( + { + "type": BuiltinNodeTypes.LLM, + "title": "LLM", + "model": {"provider": "provider", "name": "model", "mode": "chat", "completion_params": {}}, + "prompt_template": [{"role": "system", "text": "x"}], + "context": {"enabled": False, "variable_selector": []}, + "vision": {"enabled": False}, + "structured_output_enabled": True, + "structured_output": { + "schema": { + "type": "object", + "properties": {"type": {"type": "string"}}, + "required": ["type"], + } + }, + } + ) + wrapped_model_instance = sentinel.wrapped_model_instance + memory = sentinel.memory + factory._build_model_instance_for_llm_node = MagicMock(return_value=sentinel.model_instance) + factory._build_memory_for_llm_node = MagicMock(return_value=memory) + with patch.object(node_factory, "DifyPreparedLLM", return_value=wrapped_model_instance) as prepared_llm: + kwargs = factory._build_llm_compatible_node_init_kwargs( + node_class=sentinel.node_class, + node_data=node_data, + wrap_model_instance=True, + include_http_client=True, + include_llm_file_saver=True, + include_prompt_message_serializer=True, + include_retriever_attachment_loader=True, + include_jinja2_template_renderer=True, + ) + + assert node_data.structured_output_switch_on is True + assert node_data.structured_output_enabled is True + factory._build_model_instance_for_llm_node.assert_called_once_with(node_data) + factory._build_memory_for_llm_node.assert_called_once_with( + node_data=node_data, + model_instance=sentinel.model_instance, + ) + prepared_llm.assert_called_once_with(sentinel.model_instance) + assert kwargs["model_instance"] is wrapped_model_instance + + def test_create_node_passes_alias_preserving_llm_config_to_constructor(self, monkeypatch, factory): + created_node = object() + constructor = _node_constructor(return_value=created_node) + monkeypatch.setattr(factory, "_resolve_node_class", MagicMock(return_value=constructor)) + monkeypatch.setattr(factory, "_build_llm_compatible_node_init_kwargs", MagicMock(return_value={})) + + node_config = { + "id": "llm-node-id", + "data": { + "type": BuiltinNodeTypes.LLM, + "title": "LLM", + "model": {"provider": "provider", "name": "model", "mode": "chat", "completion_params": {}}, + "prompt_template": [{"role": "system", "text": "x"}], + "context": {"enabled": False, "variable_selector": []}, + "vision": {"enabled": False}, + "structured_output_enabled": True, + "structured_output": { + "schema": { + "type": "object", + "properties": {"type": {"type": "string"}}, + "required": ["type"], + } + }, + }, + } + + factory.create_node(node_config) + + config = constructor.call_args.kwargs["config"] + assert isinstance(config, dict) + assert config["structured_output_enabled"] is True + assert "structured_output_switch_on" not in config + @pytest.mark.parametrize( ("node_type", "constructor_name", "expected_extra_kwargs"), [ diff --git a/api/tests/unit_tests/core/workflow/test_variable_pool.py b/api/tests/unit_tests/core/workflow/test_variable_pool.py index 21998af02f..9dab38ed8e 100644 --- a/api/tests/unit_tests/core/workflow/test_variable_pool.py +++ b/api/tests/unit_tests/core/workflow/test_variable_pool.py @@ -3,6 +3,15 @@ import uuid from collections import defaultdict import pytest + +from core.workflow.system_variables import build_system_variables, system_variables_to_mapping +from core.workflow.variable_pool_initializer import add_variables_to_pool +from core.workflow.variable_prefixes import ( + CONVERSATION_VARIABLE_NODE_ID, + ENVIRONMENT_VARIABLE_NODE_ID, + SYSTEM_VARIABLE_NODE_ID, +) +from factories.variable_factory import build_segment, segment_to_variable from graphon.file import File, FileTransferMethod, FileType from graphon.runtime import VariablePool from graphon.variables import FileSegment, StringSegment @@ -29,15 +38,6 @@ from graphon.variables.variables import ( ) from models.utils.file_input_compat import rebuild_serialized_graph_files_without_lookup -from core.workflow.system_variables import build_system_variables, system_variables_to_mapping -from core.workflow.variable_pool_initializer import add_variables_to_pool -from core.workflow.variable_prefixes import ( - CONVERSATION_VARIABLE_NODE_ID, - ENVIRONMENT_VARIABLE_NODE_ID, - SYSTEM_VARIABLE_NODE_ID, -) -from factories.variable_factory import build_segment, segment_to_variable - @pytest.fixture def pool(): diff --git a/api/tests/unit_tests/core/workflow/test_variable_pool_initializer.py b/api/tests/unit_tests/core/workflow/test_variable_pool_initializer.py index a60972f920..238cec9fa9 100644 --- a/api/tests/unit_tests/core/workflow/test_variable_pool_initializer.py +++ b/api/tests/unit_tests/core/workflow/test_variable_pool_initializer.py @@ -1,6 +1,5 @@ -from graphon.runtime import VariablePool - from core.workflow.variable_pool_initializer import add_node_inputs_to_pool +from graphon.runtime import VariablePool def test_add_node_inputs_to_pool_writes_primary_and_alias_selectors() -> None: diff --git a/api/tests/unit_tests/core/workflow/test_workflow_entry.py b/api/tests/unit_tests/core/workflow/test_workflow_entry.py index d8361d06c4..041c5cc612 100644 --- a/api/tests/unit_tests/core/workflow/test_workflow_entry.py +++ b/api/tests/unit_tests/core/workflow/test_workflow_entry.py @@ -1,12 +1,6 @@ from types import SimpleNamespace import pytest -from graphon.entities.graph_config import NodeConfigDictAdapter -from graphon.file import File, FileTransferMethod, FileType -from graphon.nodes.code.code_node import CodeNode -from graphon.nodes.code.limits import CodeNodeLimits -from graphon.runtime import VariablePool -from graphon.variables.variables import StringVariable from configs import dify_config from core.helper.code_executor.code_executor import CodeLanguage @@ -16,6 +10,12 @@ from core.workflow.variable_prefixes import ( ENVIRONMENT_VARIABLE_NODE_ID, ) from core.workflow.workflow_entry import WorkflowEntry +from graphon.entities.graph_config import NodeConfigDictAdapter +from graphon.file import File, FileTransferMethod, FileType +from graphon.nodes.code.code_node import CodeNode +from graphon.nodes.code.limits import CodeNodeLimits +from graphon.runtime import VariablePool +from graphon.variables.variables import StringVariable @pytest.fixture(autouse=True) diff --git a/api/tests/unit_tests/core/workflow/test_workflow_entry_redis_channel.py b/api/tests/unit_tests/core/workflow/test_workflow_entry_redis_channel.py index 4b2f98aeff..80dc8927fa 100644 --- a/api/tests/unit_tests/core/workflow/test_workflow_entry_redis_channel.py +++ b/api/tests/unit_tests/core/workflow/test_workflow_entry_redis_channel.py @@ -2,11 +2,10 @@ from unittest.mock import MagicMock, patch -from graphon.graph_engine.command_channels import RedisChannel -from graphon.runtime import GraphRuntimeState, VariablePool - from core.app.entities.app_invoke_entities import InvokeFrom, UserFrom from core.workflow.workflow_entry import WorkflowEntry +from graphon.graph_engine.command_channels import RedisChannel +from graphon.runtime import GraphRuntimeState, VariablePool class TestWorkflowEntryRedisChannel: diff --git a/api/tests/unit_tests/factories/test_build_from_mapping.py b/api/tests/unit_tests/factories/test_build_from_mapping.py index 378aa9744c..ffb151fbf4 100644 --- a/api/tests/unit_tests/factories/test_build_from_mapping.py +++ b/api/tests/unit_tests/factories/test_build_from_mapping.py @@ -2,13 +2,13 @@ import uuid from unittest.mock import MagicMock, patch import pytest -from graphon.file import File, FileTransferMethod, FileType, FileUploadConfig from httpx import Response from core.app.entities.app_invoke_entities import InvokeFrom, UserFrom from core.app.file_access import DatabaseFileAccessController, FileAccessScope, bind_file_access_scope from core.workflow.file_reference import build_file_reference, parse_file_reference, resolve_file_record_id from factories.file_factory.builders import build_from_mapping as _build_from_mapping +from graphon.file import File, FileTransferMethod, FileType, FileUploadConfig from models import ToolFile, UploadFile diff --git a/api/tests/unit_tests/factories/test_file_factory.py b/api/tests/unit_tests/factories/test_file_factory.py index 5b105d6084..c2835c4124 100644 --- a/api/tests/unit_tests/factories/test_file_factory.py +++ b/api/tests/unit_tests/factories/test_file_factory.py @@ -230,3 +230,64 @@ class TestExtractFilename: "http://example.com/", 'attachment; filename="file%20with%20quotes%20%26%20encoding.txt"' ) assert result == "file with quotes & encoding.txt" + + def test_url_with_query_string(self): + """Test that query strings are stripped from URL basename.""" + result = extract_filename("http://example.com/path/file.txt?signature=abc123&expires=12345", None) + assert result == "file.txt" + + def test_url_with_hash_fragment(self): + """Test that hash fragments are stripped from URL basename.""" + result = extract_filename("http://example.com/path/file.txt#section", None) + assert result == "file.txt" + + def test_url_with_query_and_fragment(self): + """Test that both query strings and hash fragments are stripped.""" + result = extract_filename("http://example.com/path/file.txt?token=xyz#section", None) + assert result == "file.txt" + + def test_signed_url_preserves_filename(self): + """Test that signed URL parameters don't affect filename extraction.""" + result = extract_filename( + "http://storage.example.com/bucket/documents/report.pdf?AWSAccessKeyId=xxx&Signature=yyy&Expires=12345", + None, + ) + assert result == "report.pdf" + + def test_percent_encoded_filename_with_query_string(self): + """Test percent-encoded filename with query string is decoded correctly.""" + result = extract_filename("http://example.com/path/my%20file.txt?download=true", None) + assert result == "my file.txt" + + def test_percent_encoded_filename_with_fragment(self): + """Test percent-encoded filename with fragment is decoded correctly.""" + result = extract_filename("http://example.com/path/my%20file.txt#page=1", None) + assert result == "my file.txt" + + def test_complex_percent_encoding_with_query(self): + """Test complex percent-encoded filename with query parameters.""" + result = extract_filename("http://example.com/docs/%E4%B8%AD%E6%96%87%E6%96%87%E4%BB%B6.pdf?v=1", None) + assert result == "中文文件.pdf" + + def test_url_with_special_chars_in_query(self): + """Test that special characters in query string don't affect filename.""" + result = extract_filename("http://example.com/file.bin?name=test&path=/some/path", None) + assert result == "file.bin" + + def test_malformed_percent_encoding_safe_fallback(self): + """Test that malformed percent-encoding is handled safely.""" + result = extract_filename("http://example.com/path/file%20name%GG.txt?x=1", None) + # %GG is invalid, should be replaced with replacement character + + assert "file" in result + assert ".txt" in result + + def test_empty_path_with_query_returns_none(self): + """Test that empty path with query string returns None.""" + result = extract_filename("http://example.com/?query=value", None) + assert result is None + + def test_path_only_with_query_string(self): + """Test bare path (not full URL) with query string.""" + result = extract_filename("/path/to/file.txt?extra=params", None) + assert result == "file.txt" diff --git a/api/tests/unit_tests/factories/test_variable_factory.py b/api/tests/unit_tests/factories/test_variable_factory.py index 015d1f8929..2439409e80 100644 --- a/api/tests/unit_tests/factories/test_variable_factory.py +++ b/api/tests/unit_tests/factories/test_variable_factory.py @@ -4,6 +4,11 @@ from typing import Any from uuid import uuid4 import pytest +from hypothesis import HealthCheck, given, settings +from hypothesis import strategies as st + +from factories import variable_factory +from factories.variable_factory import TypeMismatchError, build_segment, build_segment_with_type from graphon.file import File, FileTransferMethod, FileType from graphon.variables import ( ArrayNumberVariable, @@ -31,11 +36,6 @@ from graphon.variables.segments import ( StringSegment, ) from graphon.variables.types import SegmentType -from hypothesis import HealthCheck, given, settings -from hypothesis import strategies as st - -from factories import variable_factory -from factories.variable_factory import TypeMismatchError, build_segment, build_segment_with_type def test_string_variable(): 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 f1ce1a2c1c..fa2c02020b 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 @@ -5,6 +5,7 @@ Unit tests for FormService. from datetime import timedelta import pytest + from graphon.nodes.human_input.entities import ( FormInput, UserAction, @@ -13,7 +14,6 @@ from graphon.nodes.human_input.enums import ( FormInputType, TimeoutUnit, ) - from libs.datetime_utils import naive_utc_now from .support import ( 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 0babfbb315..866ee61b3e 100644 --- a/api/tests/unit_tests/libs/_human_input/test_models.py +++ b/api/tests/unit_tests/libs/_human_input/test_models.py @@ -5,6 +5,7 @@ Unit tests for human input form models. from datetime import datetime, timedelta import pytest + from graphon.nodes.human_input.entities import ( FormInput, UserAction, @@ -13,7 +14,6 @@ from graphon.nodes.human_input.enums import ( FormInputType, TimeoutUnit, ) - from libs.datetime_utils import naive_utc_now from .support import FormSubmissionData, FormSubmissionRequest, HumanInputForm diff --git a/api/tests/unit_tests/models/test_conversation_variable.py b/api/tests/unit_tests/models/test_conversation_variable.py index 86163f1554..bb3a6db1a1 100644 --- a/api/tests/unit_tests/models/test_conversation_variable.py +++ b/api/tests/unit_tests/models/test_conversation_variable.py @@ -1,8 +1,7 @@ from uuid import uuid4 -from graphon.variables import SegmentType - from factories import variable_factory +from graphon.variables import SegmentType from models import ConversationVariable diff --git a/api/tests/unit_tests/models/test_model.py b/api/tests/unit_tests/models/test_model.py index 3f6d6bfbe3..a87dd7f15a 100644 --- a/api/tests/unit_tests/models/test_model.py +++ b/api/tests/unit_tests/models/test_model.py @@ -2,9 +2,9 @@ import importlib import types import pytest -from graphon.file import FILE_MODEL_IDENTITY, FileTransferMethod from core.workflow.file_reference import build_file_reference +from graphon.file import FILE_MODEL_IDENTITY, FileTransferMethod from models.model import Conversation, Message diff --git a/api/tests/unit_tests/models/test_workflow.py b/api/tests/unit_tests/models/test_workflow.py index d2949ef259..d80c0f45ff 100644 --- a/api/tests/unit_tests/models/test_workflow.py +++ b/api/tests/unit_tests/models/test_workflow.py @@ -3,14 +3,13 @@ import json from unittest import mock from uuid import uuid4 -from graphon.file import File, FileTransferMethod, FileType -from graphon.variables import FloatVariable, IntegerVariable, SecretVariable, StringVariable -from graphon.variables.segments import IntegerSegment, Segment - from constants import HIDDEN_VALUE from core.helper import encrypter from core.workflow.file_reference import build_file_reference from factories.variable_factory import build_segment +from graphon.file import File, FileTransferMethod, FileType +from graphon.variables import FloatVariable, IntegerVariable, SecretVariable, StringVariable +from graphon.variables.segments import IntegerSegment, Segment from models.workflow import ( Workflow, WorkflowDraftVariable, diff --git a/api/tests/unit_tests/models/test_workflow_models.py b/api/tests/unit_tests/models/test_workflow_models.py index 876b889beb..0953570a31 100644 --- a/api/tests/unit_tests/models/test_workflow_models.py +++ b/api/tests/unit_tests/models/test_workflow_models.py @@ -13,12 +13,12 @@ from datetime import UTC, datetime from uuid import uuid4 import pytest + from graphon.enums import ( BuiltinNodeTypes, WorkflowExecutionStatus, WorkflowNodeExecutionStatus, ) - from models.enums import CreatorUserRole, WorkflowRunTriggeredFrom from models.workflow import ( Workflow, diff --git a/api/tests/unit_tests/services/document_service_validation.py b/api/tests/unit_tests/services/document_service_validation.py index 6903c47a24..71df8c4e20 100644 --- a/api/tests/unit_tests/services/document_service_validation.py +++ b/api/tests/unit_tests/services/document_service_validation.py @@ -109,11 +109,11 @@ This test suite follows a comprehensive testing strategy that covers: from unittest.mock import Mock, patch import pytest -from graphon.model_runtime.entities.model_entities import ModelType from core.errors.error import LLMBadRequestError, ProviderTokenNotInitError from core.rag.entities import PreProcessingRule, Rule, Segmentation from core.rag.index_processor.constant.index_type import IndexStructureType, IndexTechniqueType +from graphon.model_runtime.entities.model_entities import ModelType from models.dataset import Dataset, DatasetProcessRule, Document from services.dataset_service import DatasetService, DocumentService from services.entities.knowledge_entities.knowledge_entities import ( 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 9be475d043..55af564821 100644 --- a/api/tests/unit_tests/services/test_human_input_service.py +++ b/api/tests/unit_tests/services/test_human_input_service.py @@ -3,18 +3,18 @@ from datetime import datetime, timedelta from unittest.mock import MagicMock import pytest -from graphon.nodes.human_input.entities import ( - FormDefinition, - FormInput, - UserAction, -) -from graphon.nodes.human_input.enums import FormInputType, HumanInputFormKind, HumanInputFormStatus import services.human_input_service as human_input_service_module from core.repositories.human_input_repository import ( HumanInputFormRecord, HumanInputFormSubmissionRepository, ) +from graphon.nodes.human_input.entities import ( + FormDefinition, + FormInput, + UserAction, +) +from graphon.nodes.human_input.enums import FormInputType, HumanInputFormKind, HumanInputFormStatus from libs.datetime_utils import naive_utc_now from models.human_input import RecipientType from services.human_input_service import ( diff --git a/api/tests/unit_tests/services/test_model_provider_service_sanitization.py b/api/tests/unit_tests/services/test_model_provider_service_sanitization.py index 1bd979b9ec..97f3bd6f01 100644 --- a/api/tests/unit_tests/services/test_model_provider_service_sanitization.py +++ b/api/tests/unit_tests/services/test_model_provider_service_sanitization.py @@ -1,11 +1,11 @@ import types import pytest + +from core.entities.provider_entities import CredentialConfiguration, CustomModelConfiguration from graphon.model_runtime.entities.common_entities import I18nObject from graphon.model_runtime.entities.model_entities import ModelType from graphon.model_runtime.entities.provider_entities import ConfigurateMethod - -from core.entities.provider_entities import CredentialConfiguration, CustomModelConfiguration from models.provider import ProviderType from services.model_provider_service import ModelProviderService diff --git a/api/tests/unit_tests/services/test_variable_truncator.py b/api/tests/unit_tests/services/test_variable_truncator.py index 148234ac75..931e96ef3a 100644 --- a/api/tests/unit_tests/services/test_variable_truncator.py +++ b/api/tests/unit_tests/services/test_variable_truncator.py @@ -16,6 +16,7 @@ from typing import Any from uuid import uuid4 import pytest + from graphon.file import File, FileTransferMethod, FileType from graphon.variables.segments import ( ArrayFileSegment, @@ -28,7 +29,6 @@ from graphon.variables.segments import ( ObjectSegment, StringSegment, ) - from services.variable_truncator import ( DummyVariableTruncator, MaxDepthExceededError, diff --git a/api/tests/unit_tests/services/test_workflow_run_service_pause.py b/api/tests/unit_tests/services/test_workflow_run_service_pause.py index a62c9f4555..239cc83518 100644 --- a/api/tests/unit_tests/services/test_workflow_run_service_pause.py +++ b/api/tests/unit_tests/services/test_workflow_run_service_pause.py @@ -13,10 +13,10 @@ from datetime import datetime from unittest.mock import MagicMock, create_autospec, patch import pytest -from graphon.enums import WorkflowExecutionStatus from sqlalchemy import Engine from sqlalchemy.orm import Session, sessionmaker +from graphon.enums import WorkflowExecutionStatus from models.workflow import WorkflowPause from repositories.api_workflow_run_repository import APIWorkflowRunRepository from repositories.sqlalchemy_api_workflow_run_repository import _PrivateWorkflowPauseEntity diff --git a/api/tests/unit_tests/services/workflow/test_draft_var_loader_simple.py b/api/tests/unit_tests/services/workflow/test_draft_var_loader_simple.py index ea591194b5..fb5cf7bc6e 100644 --- a/api/tests/unit_tests/services/workflow/test_draft_var_loader_simple.py +++ b/api/tests/unit_tests/services/workflow/test_draft_var_loader_simple.py @@ -4,12 +4,12 @@ import json from unittest.mock import Mock, patch import pytest -from graphon.file import File, FileTransferMethod, FileType -from graphon.variables.segments import ObjectSegment, StringSegment -from graphon.variables.types import SegmentType from sqlalchemy import Engine from core.workflow.file_reference import build_file_reference +from graphon.file import File, FileTransferMethod, FileType +from graphon.variables.segments import ObjectSegment, StringSegment +from graphon.variables.types import SegmentType from models.model import UploadFile from models.workflow import WorkflowDraftVariable, WorkflowDraftVariableFile from services.workflow_draft_variable_service import DraftVarLoader diff --git a/api/tests/unit_tests/services/workflow/test_workflow_draft_variable_service.py b/api/tests/unit_tests/services/workflow/test_workflow_draft_variable_service.py index 9790c9b5f6..663eec6a06 100644 --- a/api/tests/unit_tests/services/workflow/test_workflow_draft_variable_service.py +++ b/api/tests/unit_tests/services/workflow/test_workflow_draft_variable_service.py @@ -4,10 +4,6 @@ import uuid from unittest.mock import MagicMock, Mock, patch import pytest -from graphon.enums import BuiltinNodeTypes -from graphon.file import File, FileTransferMethod, FileType -from graphon.variables.segments import StringSegment -from graphon.variables.types import SegmentType from sqlalchemy import Engine from sqlalchemy.orm import Session @@ -17,6 +13,10 @@ from core.workflow.variable_prefixes import ( ENVIRONMENT_VARIABLE_NODE_ID, SYSTEM_VARIABLE_NODE_ID, ) +from graphon.enums import BuiltinNodeTypes +from graphon.file import File, FileTransferMethod, FileType +from graphon.variables.segments import StringSegment +from graphon.variables.types import SegmentType from libs.uuid_utils import uuidv7 from models.account import Account from models.enums import DraftVariableType diff --git a/api/tests/unit_tests/services/workflow/test_workflow_event_snapshot_service.py b/api/tests/unit_tests/services/workflow/test_workflow_event_snapshot_service.py index f8fe667dca..dfdbd9acd6 100644 --- a/api/tests/unit_tests/services/workflow/test_workflow_event_snapshot_service.py +++ b/api/tests/unit_tests/services/workflow/test_workflow_event_snapshot_service.py @@ -10,15 +10,15 @@ from typing import Any, cast from unittest.mock import MagicMock import pytest -from graphon.entities.pause_reason import HumanInputRequired -from graphon.enums import WorkflowExecutionStatus, WorkflowNodeExecutionStatus -from graphon.runtime import GraphRuntimeState, VariablePool from sqlalchemy.orm import Session, sessionmaker from core.app.app_config.entities import WorkflowUIBasedAppConfig from core.app.entities.app_invoke_entities import InvokeFrom, WorkflowAppGenerateEntity from core.app.entities.task_entities import StreamEvent from core.app.layers.pause_state_persist_layer import WorkflowResumptionContext, _WorkflowGenerateEntityWrapper +from graphon.entities.pause_reason import HumanInputRequired +from graphon.enums import WorkflowExecutionStatus, WorkflowNodeExecutionStatus +from graphon.runtime import GraphRuntimeState, VariablePool from models.enums import CreatorUserRole from models.model import AppMode from models.workflow import WorkflowRun diff --git a/api/tests/unit_tests/tasks/test_human_input_timeout_tasks.py b/api/tests/unit_tests/tasks/test_human_input_timeout_tasks.py index 7119217e94..591da56f49 100644 --- a/api/tests/unit_tests/tasks/test_human_input_timeout_tasks.py +++ b/api/tests/unit_tests/tasks/test_human_input_timeout_tasks.py @@ -5,8 +5,8 @@ from types import SimpleNamespace from typing import Any import pytest -from graphon.nodes.human_input.enums import HumanInputFormKind, HumanInputFormStatus +from graphon.nodes.human_input.enums import HumanInputFormKind, HumanInputFormStatus from tasks import human_input_timeout_tasks as task_module diff --git a/api/tests/unit_tests/tools/test_mcp_tool.py b/api/tests/unit_tests/tools/test_mcp_tool.py index 544e89fcee..689b973097 100644 --- a/api/tests/unit_tests/tools/test_mcp_tool.py +++ b/api/tests/unit_tests/tools/test_mcp_tool.py @@ -4,7 +4,6 @@ from typing import Any from unittest.mock import Mock, patch import pytest -from graphon.model_runtime.entities.llm_entities import LLMUsage from core.mcp.types import ( AudioContent, @@ -19,6 +18,7 @@ from core.tools.__base.tool_runtime import ToolRuntime from core.tools.entities.common_entities import I18nObject from core.tools.entities.tool_entities import ToolEntity, ToolIdentity, ToolInvokeMessage from core.tools.mcp_tool.tool import MCPTool +from graphon.model_runtime.entities.llm_entities import LLMUsage def _make_mcp_tool(output_schema: dict[str, Any] | None = None) -> MCPTool: diff --git a/api/tests/unit_tests/utils/structured_output_parser/test_structured_output_parser.py b/api/tests/unit_tests/utils/structured_output_parser/test_structured_output_parser.py index ffa6833524..c166a946d9 100644 --- a/api/tests/unit_tests/utils/structured_output_parser/test_structured_output_parser.py +++ b/api/tests/unit_tests/utils/structured_output_parser/test_structured_output_parser.py @@ -2,6 +2,9 @@ from decimal import Decimal from unittest.mock import MagicMock, patch import pytest + +from core.llm_generator.output_parser.errors import OutputParserError +from core.llm_generator.output_parser.structured_output import invoke_llm_with_structured_output from graphon.model_runtime.entities.llm_entities import ( LLMResult, LLMResultChunk, @@ -18,9 +21,6 @@ from graphon.model_runtime.entities.message_entities import ( ) from graphon.model_runtime.entities.model_entities import AIModelEntity, ModelType -from core.llm_generator.output_parser.errors import OutputParserError -from core.llm_generator.output_parser.structured_output import invoke_llm_with_structured_output - def create_mock_usage(prompt_tokens: int = 10, completion_tokens: int = 5) -> LLMUsage: """Create a mock LLMUsage with all required fields""" diff --git a/api/uv.lock b/api/uv.lock index fdce6fe309..9171f2f890 100644 --- a/api/uv.lock +++ b/api/uv.lock @@ -1683,8 +1683,8 @@ requires-dist = [ { name = "gevent", specifier = ">=26.4.0" }, { name = "gevent-websocket", specifier = ">=0.10.1" }, { name = "gmpy2", specifier = ">=2.3.0" }, - { name = "google-api-python-client", specifier = ">=2.194.0" }, - { name = "google-cloud-aiplatform", specifier = ">=1.148.1,<2.0.0" }, + { name = "google-api-python-client", specifier = ">=2.195.0" }, + { name = "google-cloud-aiplatform", specifier = ">=1.149.0,<2.0.0" }, { name = "graphon", specifier = "~=0.2.2" }, { name = "gunicorn", specifier = ">=25.3.0" }, { name = "httpx", extras = ["socks"], specifier = ">=0.28.1,<1.0.0" }, @@ -2837,7 +2837,7 @@ grpc = [ [[package]] name = "google-api-python-client" -version = "2.194.0" +version = "2.195.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "google-api-core" }, @@ -2846,9 +2846,9 @@ dependencies = [ { name = "httplib2" }, { name = "uritemplate" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/60/ab/e83af0eb043e4ccc49571ca7a6a49984e9d00f4e9e6e6f1238d60bc84dce/google_api_python_client-2.194.0.tar.gz", hash = "sha256:db92647bd1a90f40b79c9618461553c2b20b6a43ce7395fa6de07132dc14f023", size = 14443469, upload-time = "2026-04-08T23:07:35.757Z" } +sdist = { url = "https://files.pythonhosted.org/packages/69/07/08d759b9cb10f48af14b25262dd0d6685ca8cda6c1f9e8a8109f57457205/google_api_python_client-2.195.0.tar.gz", hash = "sha256:c72cf2661c3addf01c880ce60541e83e1df354644b874f7f9d8d5ed2070446ae", size = 14584819, upload-time = "2026-04-30T21:51:50.638Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b0/34/5a624e49f179aa5b0cb87b2ce8093960299030ff40423bfbde09360eb908/google_api_python_client-2.194.0-py3-none-any.whl", hash = "sha256:61eaaac3b8fc8fdf11c08af87abc3d1342d1b37319cc1b57405f86ef7697e717", size = 15016514, upload-time = "2026-04-08T23:07:33.093Z" }, + { url = "https://files.pythonhosted.org/packages/21/b9/2c71095e31fff57668fec7c07ac897df065f15521d070e63229e13689590/google_api_python_client-2.195.0-py3-none-any.whl", hash = "sha256:753e62057f23049a89534bea0162b60fe391b85fb86d80bcdf884d05ec91c5bf", size = 15162418, upload-time = "2026-04-30T21:51:47.444Z" }, ] [[package]] @@ -2884,7 +2884,7 @@ wheels = [ [[package]] name = "google-cloud-aiplatform" -version = "1.148.1" +version = "1.149.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "docstring-parser" }, @@ -2900,9 +2900,9 @@ dependencies = [ { name = "pydantic" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c9/f3/b2a9417014c93858a2e3266134f931eefd972c2d410b25d7b8782fc6f143/google_cloud_aiplatform-1.148.1.tar.gz", hash = "sha256:75d605fba34e68714bd08e1e482755d0a6e3ae972805f809d088e686c30879e7", size = 10278758, upload-time = "2026-04-17T23:45:26.738Z" } +sdist = { url = "https://files.pythonhosted.org/packages/42/2c/fba4adc56f74c0ee0fbd91a39d414ca2c3588dd8b71f9be8a507015ca886/google_cloud_aiplatform-1.149.0.tar.gz", hash = "sha256:a4d73485bf1d727a9e1bbbd13d08d7031490686bbf7d125eb905c1a6c1559a35", size = 10451466, upload-time = "2026-04-27T23:11:54.513Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/56/5b/e3515d7bbba602c2b0f6a0da5431785e897252443682e4735d0e6873dc8f/google_cloud_aiplatform-1.148.1-py2.py3-none-any.whl", hash = "sha256:035101e2d8e65c6a706cc3930b2452de7ddcbde50dd130320fcea0d8b03b0c5a", size = 8434481, upload-time = "2026-04-17T23:45:22.919Z" }, + { url = "https://files.pythonhosted.org/packages/bf/a0/27719ba23967ef62e52a1d54e013e0fc174bdab8dd84fb300bab9bf0d4a3/google_cloud_aiplatform-1.149.0-py2.py3-none-any.whl", hash = "sha256:e6b5299fa5d303e971cb29a19f03fdbb7b1e3b9d2faa3a788ca933341fba2f2e", size = 8570410, upload-time = "2026-04-27T23:11:50.495Z" }, ] [[package]] diff --git a/eslint-suppressions.json b/eslint-suppressions.json deleted file mode 100644 index 52ae4b53a0..0000000000 --- a/eslint-suppressions.json +++ /dev/null @@ -1,5892 +0,0 @@ -{ - "e2e/features/support/hooks.ts": { - "no-console": { - "count": 3 - }, - "node/prefer-global/buffer": { - "count": 1 - } - }, - "e2e/scripts/common.ts": { - "node/prefer-global/buffer": { - "count": 2 - } - }, - "e2e/support/process.ts": { - "ts/no-use-before-define": { - "count": 2 - } - }, - "packages/migrate-no-unchecked-indexed-access/src/no-unchecked-indexed-access/migrate.ts": { - "no-console": { - "count": 11 - } - }, - "packages/migrate-no-unchecked-indexed-access/src/no-unchecked-indexed-access/normalize.ts": { - "no-console": { - "count": 1 - } - }, - "packages/migrate-no-unchecked-indexed-access/src/no-unchecked-indexed-access/run.ts": { - "no-console": { - "count": 9 - } - }, - "web/.storybook/main.ts": { - "storybook/no-uninstalled-addons": { - "count": 3 - } - }, - "web/__mocks__/zustand.ts": { - "no-barrel-files/no-barrel-files": { - "count": 1 - } - }, - "web/__tests__/document-detail-navigation-fix.test.tsx": { - "no-console": { - "count": 10 - } - }, - "web/__tests__/document-list-sorting.test.tsx": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/__tests__/embedded-user-id-auth.test.tsx": { - "ts/no-explicit-any": { - "count": 8 - } - }, - "web/__tests__/embedded-user-id-store.test.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/__tests__/goto-anything/command-selector.test.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/__tests__/i18n-upload-features.test.ts": { - "no-console": { - "count": 3 - } - }, - "web/__tests__/navigation-utils.test.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/__tests__/plugin-tool-workflow-error.test.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/__tests__/real-browser-flicker.test.tsx": { - "no-console": { - "count": 16 - }, - "react/set-state-in-effect": { - "count": 4 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/__tests__/unified-tags-logic.test.ts": { - "ts/no-explicit-any": { - "count": 8 - } - }, - "web/__tests__/workflow-onboarding-integration.test.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/(commonLayout)/app/(appDetailLayout)/[appId]/layout-main.tsx": { - "react/set-state-in-effect": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/__tests__/svg-attribute-error-reproduction.spec.tsx": { - "no-console": { - "count": 19 - }, - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/provider-panel.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/type.ts": { - "erasable-syntax-only/enums": { - "count": 1 - } - }, - "web/app/(commonLayout)/datasets/(datasetDetailLayout)/[datasetId]/layout-main.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/(humanInputLayout)/form/[token]/form.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/(shareLayout)/components/splash.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/(shareLayout)/webapp-reset-password/layout.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/(shareLayout)/webapp-signin/components/mail-and-password-auth.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/account/(commonLayout)/account-page/email-change-modal.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 5 - } - }, - "web/app/account/(commonLayout)/account-page/index.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/account/(commonLayout)/delete-account/components/feed-back.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/account/(commonLayout)/delete-account/components/verify-email.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/account/(commonLayout)/delete-account/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/account/oauth/authorize/layout.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/account/oauth/authorize/page.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/app-sidebar/app-info/app-operations.tsx": { - "react/set-state-in-effect": { - "count": 4 - } - }, - "web/app/components/app-sidebar/basic.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/app-sidebar/index.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/app-sidebar/toggle-button.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/app/annotation/add-annotation-modal/edit-item/index.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "react-refresh/only-export-components": { - "count": 1 - } - }, - "web/app/components/app/annotation/batch-add-annotation-modal/index.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "no-restricted-imports": { - "count": 1 - }, - "react-refresh/only-export-components": { - "count": 1 - }, - "react/set-state-in-effect": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/app/annotation/edit-annotation-modal/edit-item/index.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "react-refresh/only-export-components": { - "count": 1 - }, - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/app/annotation/header-opts/index.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/app/annotation/index.tsx": { - "react/set-state-in-effect": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 5 - } - }, - "web/app/components/app/annotation/type.ts": { - "erasable-syntax-only/enums": { - "count": 2 - } - }, - "web/app/components/app/annotation/view-annotation-modal/index.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "react/set-state-in-effect": { - "count": 5 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/app/app-access-control/specific-groups-or-members.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/app/app-publisher/features-wrapper.tsx": { - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/app/app-publisher/index.tsx": { - "ts/no-explicit-any": { - "count": 5 - } - }, - "web/app/components/app/app-publisher/version-info-modal.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/app/configuration/base/var-highlight/index.tsx": { - "react-refresh/only-export-components": { - "count": 1 - } - }, - "web/app/components/app/configuration/config-prompt/advanced-prompt-input.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/app/configuration/config-prompt/conversation-history/edit-modal.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/app/configuration/config-prompt/simple-prompt-input.tsx": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/app/configuration/config-var/__tests__/index.spec.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/app/configuration/config-var/config-modal/index.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/app/configuration/config-var/config-modal/type-select.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/app/configuration/config-var/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/app/configuration/config-var/select-var-type.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/app/configuration/config-vision/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/app/configuration/config-vision/param-config-content.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/app/configuration/config/agent/agent-setting/index.tsx": { - "react/set-state-in-effect": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/app/configuration/config/agent/agent-setting/item-panel.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/app/configuration/config/agent/agent-tools/index.tsx": { - "ts/no-explicit-any": { - "count": 9 - } - }, - "web/app/components/app/configuration/config/agent/agent-tools/setting-built-in-tool.tsx": { - "react-hooks/exhaustive-deps": { - "count": 1 - }, - "react/set-state-in-effect": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/app/configuration/config/assistant-type-picker/index.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/app/configuration/config/automatic/get-automatic-res.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "react/set-state-in-effect": { - "count": 4 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/app/configuration/config/automatic/instruction-editor.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/app/configuration/config/automatic/prompt-res-in-workflow.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/app/configuration/config/automatic/prompt-res.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/app/configuration/config/automatic/types.ts": { - "erasable-syntax-only/enums": { - "count": 1 - } - }, - "web/app/components/app/configuration/config/automatic/version-selector.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/app/configuration/config/code-generator/get-code-generator-res.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "react/set-state-in-effect": { - "count": 4 - }, - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/app/configuration/config/config-audio.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/app/configuration/config/config-document.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/app/configuration/dataset-config/context-var/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/app/configuration/dataset-config/index.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/app/configuration/dataset-config/params-config/__tests__/config-content.spec.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/app/configuration/dataset-config/params-config/config-content.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/app/configuration/dataset-config/params-config/index.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/app/configuration/dataset-config/select-dataset/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/app/configuration/dataset-config/settings-modal/index.tsx": { - "react/set-state-in-effect": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/app/configuration/dataset-config/settings-modal/retrieval-section.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/app/configuration/debug/__tests__/index.spec.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/app/configuration/debug/debug-with-multiple-model/chat-item.tsx": { - "ts/no-explicit-any": { - "count": 6 - } - }, - "web/app/components/app/configuration/debug/debug-with-multiple-model/index.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/app/configuration/debug/debug-with-multiple-model/text-generation-item.tsx": { - "ts/no-explicit-any": { - "count": 8 - } - }, - "web/app/components/app/configuration/debug/debug-with-single-model/index.tsx": { - "ts/no-explicit-any": { - "count": 5 - } - }, - "web/app/components/app/configuration/debug/hooks.tsx": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/app/configuration/debug/index.tsx": { - "react/set-state-in-effect": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 11 - } - }, - "web/app/components/app/configuration/debug/types.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/app/configuration/prompt-value-panel/utils.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/app/create-app-dialog/app-list/sidebar.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "react-refresh/only-export-components": { - "count": 1 - } - }, - "web/app/components/app/create-app-modal/index.tsx": { - "react/set-state-in-effect": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/app/create-from-dsl-modal/dsl-confirm-modal.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/app/create-from-dsl-modal/index.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "no-restricted-imports": { - "count": 1 - }, - "react-refresh/only-export-components": { - "count": 1 - }, - "react/set-state-in-effect": { - "count": 2 - } - }, - "web/app/components/app/duplicate-modal/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/app/log/filter.tsx": { - "react-refresh/only-export-components": { - "count": 1 - } - }, - "web/app/components/app/log/index.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/app/log/list.tsx": { - "react/set-state-in-effect": { - "count": 6 - }, - "style/multiline-ternary": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 5 - } - }, - "web/app/components/app/log/model-info.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/app/overview/customize/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/app/overview/embedded/index.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/app/overview/settings/index.tsx": { - "no-restricted-imports": { - "count": 2 - }, - "react/set-state-in-effect": { - "count": 3 - }, - "regexp/no-unused-capturing-group": { - "count": 1 - } - }, - "web/app/components/app/overview/trigger-card.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/app/switch-app-modal/index.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/app/text-generate/item/index.tsx": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/app/text-generate/item/result-tab.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/app/workflow-log/detail.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/app/workflow-log/filter.tsx": { - "react-refresh/only-export-components": { - "count": 1 - } - }, - "web/app/components/app/workflow-log/list.tsx": { - "react/set-state-in-effect": { - "count": 2 - } - }, - "web/app/components/app/workflow-log/trigger-by-display.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/apps/app-card.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "react/set-state-in-effect": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/apps/list.tsx": { - "react-hooks/exhaustive-deps": { - "count": 1 - }, - "react/unsupported-syntax": { - "count": 2 - } - }, - "web/app/components/apps/new-app-card.tsx": { - "react-hooks-extra/no-direct-set-state-in-use-effect": { - "count": 1 - }, - "react/set-state-in-effect": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/action-button/index.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - } - }, - "web/app/components/base/agent-log-modal/detail.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/agent-log-modal/index.stories.tsx": { - "no-console": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/agent-log-modal/index.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/base/agent-log-modal/result.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/base/agent-log-modal/tool-call.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/base/amplitude/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 2 - } - }, - "web/app/components/base/amplitude/utils.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/base/app-icon-picker/ImageInput.tsx": { - "react/no-create-ref": { - "count": 1 - } - }, - "web/app/components/base/audio-btn/audio.ts": { - "node/prefer-global/buffer": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/base/audio-gallery/AudioPlayer.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/base/auto-height-textarea/index.stories.tsx": { - "no-console": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/auto-height-textarea/index.tsx": { - "react-hooks/rules-of-hooks": { - "count": 1 - }, - "react/rules-of-hooks": { - "count": 1 - } - }, - "web/app/components/base/badge/index.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - } - }, - "web/app/components/base/block-input/index.stories.tsx": { - "no-console": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/block-input/index.tsx": { - "react-refresh/only-export-components": { - "count": 1 - }, - "react/component-hook-factories": { - "count": 1 - }, - "react/no-nested-component-definitions": { - "count": 1 - }, - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/base/carousel/index.tsx": { - "react-hooks-extra/no-direct-set-state-in-use-effect": { - "count": 1 - }, - "react-refresh/only-export-components": { - "count": 1 - }, - "react/set-state-in-effect": { - "count": 3 - } - }, - "web/app/components/base/chat/chat-with-history/chat-wrapper.tsx": { - "ts/no-explicit-any": { - "count": 7 - } - }, - "web/app/components/base/chat/chat-with-history/context.ts": { - "ts/no-explicit-any": { - "count": 7 - } - }, - "web/app/components/base/chat/chat-with-history/header-in-mobile.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/base/chat/chat-with-history/header/index.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/base/chat/chat-with-history/hooks.tsx": { - "react/set-state-in-effect": { - "count": 4 - }, - "ts/no-explicit-any": { - "count": 18 - } - }, - "web/app/components/base/chat/chat-with-history/index.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/base/chat/chat-with-history/inputs-form/content.tsx": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/base/chat/chat-with-history/sidebar/operation.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/base/chat/chat-with-history/sidebar/rename-modal.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/base/chat/chat/answer/agent-content.tsx": { - "style/multiline-ternary": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/chat/chat/answer/human-input-content/utils.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/chat/chat/answer/index.tsx": { - "react/set-state-in-effect": { - "count": 3 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/chat/chat/answer/operation.tsx": { - "no-restricted-imports": { - "count": 2 - } - }, - "web/app/components/base/chat/chat/answer/workflow-process.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/base/chat/chat/chat-input-area/index.tsx": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/base/chat/chat/check-input-forms-hooks.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/chat/chat/citation/index.tsx": { - "react-hooks/exhaustive-deps": { - "count": 1 - }, - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/base/chat/chat/hooks.ts": { - "react/set-state-in-effect": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 17 - } - }, - "web/app/components/base/chat/chat/index.tsx": { - "ts/no-explicit-any": { - "count": 3 - }, - "ts/no-non-null-asserted-optional-chain": { - "count": 1 - } - }, - "web/app/components/base/chat/chat/type.ts": { - "ts/no-explicit-any": { - "count": 5 - } - }, - "web/app/components/base/chat/chat/utils.ts": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/base/chat/embedded-chatbot/chat-wrapper.tsx": { - "ts/no-explicit-any": { - "count": 7 - } - }, - "web/app/components/base/chat/embedded-chatbot/context.ts": { - "ts/no-explicit-any": { - "count": 7 - } - }, - "web/app/components/base/chat/embedded-chatbot/hooks.tsx": { - "react-hooks-extra/no-direct-set-state-in-use-effect": { - "count": 3 - }, - "react/set-state-in-effect": { - "count": 6 - } - }, - "web/app/components/base/chat/embedded-chatbot/inputs-form/content.tsx": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/base/chat/types.ts": { - "no-barrel-files/no-barrel-files": { - "count": 2 - } - }, - "web/app/components/base/chat/utils.ts": { - "ts/no-explicit-any": { - "count": 10 - } - }, - "web/app/components/base/checkbox/index.stories.tsx": { - "no-console": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/chip/index.tsx": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/base/content-dialog/index.stories.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/base/date-and-time-picker/hooks.ts": { - "react/no-unnecessary-use-prefix": { - "count": 2 - } - }, - "web/app/components/base/date-and-time-picker/types.ts": { - "erasable-syntax-only/enums": { - "count": 2 - } - }, - "web/app/components/base/date-and-time-picker/utils/dayjs.ts": { - "no-barrel-files/no-barrel-files": { - "count": 1 - } - }, - "web/app/components/base/dialog/index.stories.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/base/drawer-plus/index.stories.tsx": { - "react/component-hook-factories": { - "count": 1 - } - }, - "web/app/components/base/emoji-picker/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/base/error-boundary/index.tsx": { - "react-refresh/only-export-components": { - "count": 3 - }, - "react/component-hook-factories": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/base/features/context.tsx": { - "react-refresh/only-export-components": { - "count": 1 - } - }, - "web/app/components/base/features/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 1 - } - }, - "web/app/components/base/features/new-feature-panel/annotation-reply/config-param-modal.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/base/features/new-feature-panel/annotation-reply/config-param.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/base/features/new-feature-panel/annotation-reply/index.tsx": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/base/features/new-feature-panel/annotation-reply/type.ts": { - "erasable-syntax-only/enums": { - "count": 1 - } - }, - "web/app/components/base/features/new-feature-panel/annotation-reply/use-annotation-config.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/base/features/new-feature-panel/feature-card.tsx": { - "ts/no-explicit-any": { - "count": 5 - } - }, - "web/app/components/base/features/new-feature-panel/moderation/index.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/features/new-feature-panel/moderation/moderation-setting-modal.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/base/features/new-feature-panel/text-to-speech/param-config-content.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/base/features/types.ts": { - "erasable-syntax-only/enums": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/file-uploader/dynamic-pdf-preview.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/file-uploader/file-list-in-log.tsx": { - "react/no-missing-key": { - "count": 1 - } - }, - "web/app/components/base/file-uploader/hooks.ts": { - "react/no-unnecessary-use-prefix": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/base/file-uploader/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 5 - } - }, - "web/app/components/base/file-uploader/pdf-highlighter-adapter.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 2 - } - }, - "web/app/components/base/file-uploader/store.tsx": { - "react-refresh/only-export-components": { - "count": 4 - } - }, - "web/app/components/base/file-uploader/types.ts": { - "erasable-syntax-only/enums": { - "count": 1 - } - }, - "web/app/components/base/file-uploader/utils.ts": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/base/form/components/base/base-field.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/base/form/components/base/base-form.tsx": { - "ts/no-explicit-any": { - "count": 6 - } - }, - "web/app/components/base/form/components/base/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 2 - } - }, - "web/app/components/base/form/components/field/mixed-variable-text-input/placeholder.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/form/components/field/variable-or-constant-input.tsx": { - "no-console": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/base/form/components/field/variable-selector.tsx": { - "no-console": { - "count": 1 - } - }, - "web/app/components/base/form/form-scenarios/base/field.tsx": { - "react/component-hook-factories": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/form/form-scenarios/base/types.ts": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/base/form/form-scenarios/demo/index.tsx": { - "no-console": { - "count": 2 - } - }, - "web/app/components/base/form/form-scenarios/input-field/field.tsx": { - "react/component-hook-factories": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/form/form-scenarios/input-field/types.ts": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/base/form/form-scenarios/node-panel/field.tsx": { - "react/component-hook-factories": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/form/form-scenarios/node-panel/types.ts": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/base/form/hooks/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 3 - } - }, - "web/app/components/base/form/hooks/use-check-validated.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/base/form/hooks/use-get-validators.ts": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/base/form/types.ts": { - "erasable-syntax-only/enums": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 15 - } - }, - "web/app/components/base/form/utils/secret-input/index.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/base/ga/index.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "react-refresh/only-export-components": { - "count": 1 - } - }, - "web/app/components/base/icons/src/public/avatar/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 2 - } - }, - "web/app/components/base/icons/src/public/billing/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 4 - } - }, - "web/app/components/base/icons/src/public/common/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 6 - } - }, - "web/app/components/base/icons/src/public/education/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 1 - } - }, - "web/app/components/base/icons/src/public/files/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 11 - } - }, - "web/app/components/base/icons/src/public/knowledge/dataset-card/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 4 - } - }, - "web/app/components/base/icons/src/public/knowledge/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 6 - } - }, - "web/app/components/base/icons/src/public/knowledge/online-drive/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 3 - } - }, - "web/app/components/base/icons/src/public/llm/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 9 - } - }, - "web/app/components/base/icons/src/public/other/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 6 - } - }, - "web/app/components/base/icons/src/public/thought/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 1 - } - }, - "web/app/components/base/icons/src/public/tracing/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 21 - } - }, - "web/app/components/base/icons/src/vender/features/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 10 - } - }, - "web/app/components/base/icons/src/vender/knowledge/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 15 - } - }, - "web/app/components/base/icons/src/vender/line/alertsAndFeedback/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 2 - } - }, - "web/app/components/base/icons/src/vender/line/arrows/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 6 - } - }, - "web/app/components/base/icons/src/vender/line/communication/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 3 - } - }, - "web/app/components/base/icons/src/vender/line/development/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 2 - } - }, - "web/app/components/base/icons/src/vender/line/editor/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 1 - } - }, - "web/app/components/base/icons/src/vender/line/education/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 1 - } - }, - "web/app/components/base/icons/src/vender/line/files/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 6 - } - }, - "web/app/components/base/icons/src/vender/line/financeAndECommerce/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 4 - } - }, - "web/app/components/base/icons/src/vender/line/general/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 12 - } - }, - "web/app/components/base/icons/src/vender/line/images/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 1 - } - }, - "web/app/components/base/icons/src/vender/line/layout/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 1 - } - }, - "web/app/components/base/icons/src/vender/line/mediaAndDevices/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 2 - } - }, - "web/app/components/base/icons/src/vender/line/others/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 7 - } - }, - "web/app/components/base/icons/src/vender/line/time/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 2 - } - }, - "web/app/components/base/icons/src/vender/other/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 8 - } - }, - "web/app/components/base/icons/src/vender/pipeline/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 3 - } - }, - "web/app/components/base/icons/src/vender/plugin/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 3 - } - }, - "web/app/components/base/icons/src/vender/solid/FinanceAndECommerce/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 1 - } - }, - "web/app/components/base/icons/src/vender/solid/alertsAndFeedback/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 1 - } - }, - "web/app/components/base/icons/src/vender/solid/arrows/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 3 - } - }, - "web/app/components/base/icons/src/vender/solid/communication/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 6 - } - }, - "web/app/components/base/icons/src/vender/solid/development/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 4 - } - }, - "web/app/components/base/icons/src/vender/solid/editor/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 1 - } - }, - "web/app/components/base/icons/src/vender/solid/education/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 3 - } - }, - "web/app/components/base/icons/src/vender/solid/files/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 3 - } - }, - "web/app/components/base/icons/src/vender/solid/general/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 11 - } - }, - "web/app/components/base/icons/src/vender/solid/mediaAndDevices/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 2 - } - }, - "web/app/components/base/icons/src/vender/solid/security/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 1 - } - }, - "web/app/components/base/icons/src/vender/solid/shapes/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 1 - } - }, - "web/app/components/base/icons/src/vender/solid/users/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 1 - } - }, - "web/app/components/base/icons/src/vender/system/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 1 - } - }, - "web/app/components/base/icons/src/vender/workflow/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 30 - } - }, - "web/app/components/base/icons/utils.ts": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/base/image-uploader/__tests__/image-preview.spec.tsx": { - "erasable-syntax-only/parameter-properties": { - "count": 1 - } - }, - "web/app/components/base/image-uploader/__tests__/utils.spec.ts": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/base/image-uploader/hooks.ts": { - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/base/image-uploader/image-link-input.tsx": { - "regexp/no-unused-capturing-group": { - "count": 1 - } - }, - "web/app/components/base/image-uploader/image-preview.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/image-uploader/utils.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/base/inline-delete-confirm/index.stories.tsx": { - "no-console": { - "count": 2 - } - }, - "web/app/components/base/input-with-copy/index.tsx": { - "react/unsupported-syntax": { - "count": 1 - } - }, - "web/app/components/base/input/index.stories.tsx": { - "no-console": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/input/index.tsx": { - "react-refresh/only-export-components": { - "count": 1 - } - }, - "web/app/components/base/logo/dify-logo.tsx": { - "react-refresh/only-export-components": { - "count": 2 - } - }, - "web/app/components/base/markdown-blocks/audio-block.tsx": { - "ts/no-explicit-any": { - "count": 5 - } - }, - "web/app/components/base/markdown-blocks/button.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/markdown-blocks/code-block.tsx": { - "react/set-state-in-effect": { - "count": 7 - }, - "ts/no-explicit-any": { - "count": 9 - } - }, - "web/app/components/base/markdown-blocks/form.tsx": { - "erasable-syntax-only/enums": { - "count": 3 - } - }, - "web/app/components/base/markdown-blocks/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 10 - } - }, - "web/app/components/base/markdown-blocks/link.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/markdown-blocks/paragraph.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/base/markdown-blocks/plugin-img.tsx": { - "react/set-state-in-effect": { - "count": 2 - } - }, - "web/app/components/base/markdown-blocks/plugin-paragraph.tsx": { - "react/set-state-in-effect": { - "count": 2 - } - }, - "web/app/components/base/markdown-blocks/think-block.tsx": { - "react/set-state-in-effect": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/base/markdown-blocks/video-block.tsx": { - "ts/no-explicit-any": { - "count": 5 - } - }, - "web/app/components/base/markdown/error-boundary.tsx": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/base/markdown/markdown-utils.ts": { - "regexp/no-unused-capturing-group": { - "count": 1 - } - }, - "web/app/components/base/mermaid/index.tsx": { - "react/set-state-in-effect": { - "count": 7 - }, - "regexp/no-super-linear-backtracking": { - "count": 3 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/mermaid/utils.ts": { - "regexp/no-unused-capturing-group": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/base/message-log-modal/index.stories.tsx": { - "no-console": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/message-log-modal/index.tsx": { - "react/set-state-in-effect": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/modal-like-wrap/index.stories.tsx": { - "no-console": { - "count": 3 - } - }, - "web/app/components/base/modal/index.stories.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/base/modal/modal.stories.tsx": { - "no-console": { - "count": 4 - }, - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/base/new-audio-button/index.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/node-status/index.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "react-refresh/only-export-components": { - "count": 1 - } - }, - "web/app/components/base/notion-connector/index.stories.tsx": { - "no-console": { - "count": 1 - } - }, - "web/app/components/base/notion-page-selector/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 1 - } - }, - "web/app/components/base/pagination/index.tsx": { - "unicorn/prefer-number-properties": { - "count": 1 - } - }, - "web/app/components/base/pagination/type.ts": { - "ts/no-empty-object-type": { - "count": 1 - } - }, - "web/app/components/base/param-item/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/base/prompt-editor/index.stories.tsx": { - "no-console": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/base/prompt-editor/index.tsx": { - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/base/prompt-editor/plugins/component-picker-block/menu.tsx": { - "erasable-syntax-only/parameter-properties": { - "count": 1 - } - }, - "web/app/components/base/prompt-editor/plugins/context-block/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 3 - }, - "react-refresh/only-export-components": { - "count": 2 - } - }, - "web/app/components/base/prompt-editor/plugins/current-block/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 3 - }, - "react-refresh/only-export-components": { - "count": 2 - } - }, - "web/app/components/base/prompt-editor/plugins/draggable-plugin/index.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/base/prompt-editor/plugins/error-message-block/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 3 - }, - "react-refresh/only-export-components": { - "count": 2 - } - }, - "web/app/components/base/prompt-editor/plugins/history-block/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 3 - }, - "react-refresh/only-export-components": { - "count": 2 - } - }, - "web/app/components/base/prompt-editor/plugins/hitl-input-block/component-ui.tsx": { - "react-hooks/exhaustive-deps": { - "count": 1 - } - }, - "web/app/components/base/prompt-editor/plugins/hitl-input-block/hitl-input-block-replacement-block.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/prompt-editor/plugins/hitl-input-block/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 3 - }, - "react-refresh/only-export-components": { - "count": 2 - } - }, - "web/app/components/base/prompt-editor/plugins/last-run-block/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 3 - }, - "react-refresh/only-export-components": { - "count": 2 - } - }, - "web/app/components/base/prompt-editor/plugins/query-block/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 3 - }, - "react-refresh/only-export-components": { - "count": 2 - } - }, - "web/app/components/base/prompt-editor/plugins/request-url-block/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 3 - }, - "react-refresh/only-export-components": { - "count": 2 - } - }, - "web/app/components/base/prompt-editor/plugins/shortcuts-popup-plugin/index.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/base/prompt-editor/plugins/update-block.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/base/prompt-editor/plugins/variable-block/index.tsx": { - "react-refresh/only-export-components": { - "count": 2 - } - }, - "web/app/components/base/prompt-editor/plugins/workflow-variable-block/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 3 - }, - "react-refresh/only-export-components": { - "count": 3 - } - }, - "web/app/components/base/prompt-editor/plugins/workflow-variable-block/node.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/base/prompt-editor/utils.ts": { - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/base/prompt-log-modal/index.stories.tsx": { - "no-console": { - "count": 1 - } - }, - "web/app/components/base/prompt-log-modal/index.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/base/radio-card/index.stories.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/radio/component/group/index.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/base/radio/context/index.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/radio/index.stories.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/search-input/index.stories.tsx": { - "no-console": { - "count": 3 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/sort/index.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/base/svg-gallery/index.tsx": { - "node/prefer-global/buffer": { - "count": 1 - } - }, - "web/app/components/base/tab-slider/index.tsx": { - "react/set-state-in-effect": { - "count": 2 - } - }, - "web/app/components/base/tag-input/index.stories.tsx": { - "no-console": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/tag-management/__tests__/panel.spec.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/base/tag-management/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/base/tag-management/tag-item-editor.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/base/tag-management/tag-remove-modal.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/base/text-generation/hooks.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/text-generation/types.ts": { - "no-barrel-files/no-barrel-files": { - "count": 1 - } - }, - "web/app/components/base/textarea/index.stories.tsx": { - "no-console": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/video-gallery/VideoPlayer.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/base/voice-input/__tests__/index.spec.tsx": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/base/voice-input/index.stories.tsx": { - "no-console": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/voice-input/utils.ts": { - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/base/with-input-validation/index.stories.tsx": { - "no-console": { - "count": 1 - }, - "react/component-hook-factories": { - "count": 1 - } - }, - "web/app/components/base/with-input-validation/index.tsx": { - "react/component-hook-factories": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/zendesk/utils.ts": { - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/billing/annotation-full/modal.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/billing/billing-page/__tests__/index.spec.tsx": { - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/billing/plan-upgrade-modal/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/billing/plan/assets/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 4 - } - }, - "web/app/components/billing/plan/index.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/billing/pricing/assets/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 12 - } - }, - "web/app/components/billing/pricing/plan-switcher/plan-range-switcher.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "react-refresh/only-export-components": { - "count": 1 - } - }, - "web/app/components/billing/pricing/types.ts": { - "erasable-syntax-only/enums": { - "count": 1 - } - }, - "web/app/components/billing/priority-label/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/billing/type.ts": { - "erasable-syntax-only/enums": { - "count": 4 - } - }, - "web/app/components/billing/upgrade-btn/index.tsx": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/datasets/common/image-previewer/index.tsx": { - "no-irregular-whitespace": { - "count": 1 - } - }, - "web/app/components/datasets/common/image-uploader/__tests__/store.spec.tsx": { - "react/error-boundaries": { - "count": 1 - } - }, - "web/app/components/datasets/common/image-uploader/hooks/use-upload.ts": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/datasets/common/image-uploader/image-uploader-in-retrieval-testing/image-input.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/datasets/common/image-uploader/store.tsx": { - "react-refresh/only-export-components": { - "count": 3 - } - }, - "web/app/components/datasets/common/retrieval-method-info/index.tsx": { - "react-refresh/only-export-components": { - "count": 1 - } - }, - "web/app/components/datasets/common/retrieval-param-config/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/datasets/create-from-pipeline/create-options/create-from-dsl-modal/dsl-confirm-modal.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/datasets/create-from-pipeline/create-options/create-from-dsl-modal/hooks/use-dsl-import.ts": { - "erasable-syntax-only/enums": { - "count": 1 - } - }, - "web/app/components/datasets/create-from-pipeline/create-options/create-from-dsl-modal/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 1 - }, - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/datasets/create-from-pipeline/list/template-card/details/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/datasets/create-from-pipeline/list/template-card/details/types.ts": { - "erasable-syntax-only/enums": { - "count": 1 - } - }, - "web/app/components/datasets/create-from-pipeline/list/template-card/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/datasets/create/embedding-process/indexing-progress-item.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/datasets/create/empty-dataset-creation-modal/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/datasets/create/file-preview/index.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/datasets/create/notion-page-preview/index.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/datasets/create/step-one/components/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 3 - } - }, - "web/app/components/datasets/create/step-one/hooks/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 1 - } - }, - "web/app/components/datasets/create/step-two/components/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 5 - } - }, - "web/app/components/datasets/create/step-two/components/indexing-mode-section.tsx": { - "no-restricted-imports": { - "count": 2 - } - }, - "web/app/components/datasets/create/step-two/components/inputs.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/datasets/create/step-two/hooks/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 6 - } - }, - "web/app/components/datasets/create/step-two/hooks/use-indexing-config.ts": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "react/set-state-in-effect": { - "count": 3 - } - }, - "web/app/components/datasets/create/step-two/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 1 - }, - "react-hooks/exhaustive-deps": { - "count": 1 - } - }, - "web/app/components/datasets/create/step-two/preview-item/index.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "react-refresh/only-export-components": { - "count": 1 - } - }, - "web/app/components/datasets/create/stop-embedding-modal/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/datasets/create/website/base/checkbox-with-label.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/datasets/create/website/base/field.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/datasets/create/website/firecrawl/index.tsx": { - "no-console": { - "count": 1 - }, - "react/set-state-in-effect": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 5 - } - }, - "web/app/components/datasets/create/website/firecrawl/options.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/datasets/create/website/jina-reader/index.tsx": { - "no-console": { - "count": 1 - }, - "react/set-state-in-effect": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/datasets/create/website/jina-reader/options.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/datasets/create/website/watercrawl/index.tsx": { - "no-console": { - "count": 1 - }, - "react/set-state-in-effect": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/datasets/create/website/watercrawl/options.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/datasets/documents/components/document-list/components/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 2 - } - }, - "web/app/components/datasets/documents/components/document-list/hooks/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 4 - } - }, - "web/app/components/datasets/documents/components/operations.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/datasets/documents/components/rename-modal.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/datasets/documents/create-from-pipeline/data-source/base/credential-selector/__tests__/index.spec.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - } - }, - "web/app/components/datasets/documents/create-from-pipeline/data-source/base/credential-selector/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/datasets/documents/create-from-pipeline/data-source/online-documents/index.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/item.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/index.tsx": { - "react/set-state-in-effect": { - "count": 5 - } - }, - "web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/utils.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/datasets/documents/create-from-pipeline/data-source/store/provider.tsx": { - "react-refresh/only-export-components": { - "count": 1 - } - }, - "web/app/components/datasets/documents/create-from-pipeline/data-source/store/slices/online-drive.ts": { - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/datasets/documents/create-from-pipeline/data-source/website-crawl/base/checkbox-with-label.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/datasets/documents/create-from-pipeline/data-source/website-crawl/base/options/index.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/datasets/documents/create-from-pipeline/data-source/website-crawl/index.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/datasets/documents/create-from-pipeline/hooks/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 5 - } - }, - "web/app/components/datasets/documents/create-from-pipeline/process-documents/form.tsx": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/datasets/documents/create-from-pipeline/process-documents/index.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/datasets/documents/create-from-pipeline/processing/embedding-process/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/datasets/documents/create-from-pipeline/steps/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 3 - } - }, - "web/app/components/datasets/documents/create-from-pipeline/types.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - } - }, - "web/app/components/datasets/documents/detail/batch-modal/index.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/datasets/documents/detail/completed/common/chunk-content.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/datasets/documents/detail/completed/common/regeneration-modal.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/datasets/documents/detail/completed/components/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 3 - } - }, - "web/app/components/datasets/documents/detail/completed/components/segment-list-content.tsx": { - "ts/no-non-null-asserted-optional-chain": { - "count": 1 - } - }, - "web/app/components/datasets/documents/detail/completed/display-toggle.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/datasets/documents/detail/completed/hooks/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 5 - } - }, - "web/app/components/datasets/documents/detail/completed/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 2 - }, - "react-refresh/only-export-components": { - "count": 1 - }, - "react/use-memo": { - "count": 1 - } - }, - "web/app/components/datasets/documents/detail/completed/segment-card/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/datasets/documents/detail/context.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/datasets/documents/detail/embedding/components/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 4 - } - }, - "web/app/components/datasets/documents/detail/embedding/hooks/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 1 - } - }, - "web/app/components/datasets/documents/detail/metadata/components/metadata-field-list.tsx": { - "ts/no-non-null-asserted-optional-chain": { - "count": 1 - } - }, - "web/app/components/datasets/documents/detail/metadata/hooks/use-metadata-state.ts": { - "react-hooks-extra/no-direct-set-state-in-use-effect": { - "count": 4 - }, - "react/set-state-in-effect": { - "count": 4 - } - }, - "web/app/components/datasets/documents/detail/metadata/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 1 - } - }, - "web/app/components/datasets/documents/detail/segment-add/index.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "react-refresh/only-export-components": { - "count": 1 - } - }, - "web/app/components/datasets/documents/detail/settings/pipeline-settings/index.tsx": { - "ts/no-explicit-any": { - "count": 6 - } - }, - "web/app/components/datasets/documents/detail/settings/pipeline-settings/process-documents/index.tsx": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/datasets/documents/status-item/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/datasets/external-knowledge-base/create/ExternalApiSelect.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/datasets/external-knowledge-base/create/ExternalApiSelection.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/datasets/formatted-text/flavours/type.ts": { - "ts/no-empty-object-type": { - "count": 1 - } - }, - "web/app/components/datasets/hit-testing/components/chunk-detail-modal.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/datasets/hit-testing/components/result-item-external.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/datasets/hit-testing/components/score.tsx": { - "unicorn/prefer-number-properties": { - "count": 1 - } - }, - "web/app/components/datasets/hit-testing/index.tsx": { - "react/unsupported-syntax": { - "count": 1 - } - }, - "web/app/components/datasets/list/dataset-card/hooks/use-dataset-card-state.ts": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/datasets/metadata/edit-metadata-batch/input-combined.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/datasets/metadata/edit-metadata-batch/modal.tsx": { - "no-restricted-imports": { - "count": 2 - } - }, - "web/app/components/datasets/metadata/hooks/use-edit-dataset-metadata.ts": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/datasets/metadata/hooks/use-metadata-document.ts": { - "ts/no-explicit-any": { - "count": 1 - }, - "ts/no-non-null-asserted-optional-chain": { - "count": 2 - } - }, - "web/app/components/datasets/metadata/metadata-dataset/create-content.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/datasets/metadata/metadata-dataset/create-metadata-modal.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/datasets/metadata/metadata-dataset/dataset-metadata-drawer.tsx": { - "no-restricted-imports": { - "count": 2 - } - }, - "web/app/components/datasets/metadata/metadata-dataset/select-metadata-modal.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - } - }, - "web/app/components/datasets/metadata/metadata-document/info-group.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/datasets/metadata/types.ts": { - "erasable-syntax-only/enums": { - "count": 2 - } - }, - "web/app/components/datasets/rename-modal/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/datasets/settings/chunk-structure/types.ts": { - "erasable-syntax-only/enums": { - "count": 1 - } - }, - "web/app/components/datasets/settings/index-method/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/datasets/settings/summary-index-setting.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/develop/code.tsx": { - "ts/no-empty-object-type": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 9 - } - }, - "web/app/components/develop/md.tsx": { - "ts/no-empty-object-type": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/develop/secret-key/secret-key-generate.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/develop/secret-key/secret-key-modal.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/explore/banner/banner-item.tsx": { - "react-hooks-extra/no-direct-set-state-in-use-effect": { - "count": 1 - }, - "react/set-state-in-effect": { - "count": 3 - } - }, - "web/app/components/explore/banner/indicator-button.tsx": { - "react-hooks-extra/no-direct-set-state-in-use-effect": { - "count": 1 - }, - "react/set-state-in-effect": { - "count": 2 - } - }, - "web/app/components/explore/create-app-modal/index.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - }, - "unicorn/prefer-number-properties": { - "count": 1 - } - }, - "web/app/components/explore/item-operation/index.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/explore/try-app/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/explore/try-app/tab.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "react-refresh/only-export-components": { - "count": 1 - } - }, - "web/app/components/goto-anything/actions/commands/command-bus.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/goto-anything/actions/commands/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 2 - } - }, - "web/app/components/goto-anything/actions/commands/registry.ts": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/goto-anything/actions/commands/slash.tsx": { - "react-refresh/only-export-components": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/goto-anything/actions/commands/types.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/goto-anything/actions/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 2 - } - }, - "web/app/components/goto-anything/actions/types.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/goto-anything/command-selector.tsx": { - "react/unsupported-syntax": { - "count": 2 - } - }, - "web/app/components/goto-anything/components/footer.tsx": { - "react/unsupported-syntax": { - "count": 1 - } - }, - "web/app/components/goto-anything/components/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 4 - } - }, - "web/app/components/goto-anything/context.tsx": { - "react-refresh/only-export-components": { - "count": 1 - }, - "react/set-state-in-effect": { - "count": 4 - } - }, - "web/app/components/goto-anything/hooks/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 4 - } - }, - "web/app/components/goto-anything/hooks/use-goto-anything-results.ts": { - "@tanstack/query/exhaustive-deps": { - "count": 1 - } - }, - "web/app/components/header/account-about/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/header/account-setting/api-based-extension-page/modal.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/header/account-setting/data-source-page-new/card.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/header/account-setting/data-source-page-new/hooks/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 2 - } - }, - "web/app/components/header/account-setting/data-source-page-new/hooks/use-marketplace-all-plugins.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/header/account-setting/data-source-page-new/install-from-marketplace.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/header/account-setting/data-source-page-new/item.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/header/account-setting/data-source-page-new/types.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/header/account-setting/key-validator/declarations.ts": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/header/account-setting/members-page/invite-modal/index.tsx": { - "react/set-state-in-effect": { - "count": 3 - } - }, - "web/app/components/header/account-setting/members-page/transfer-ownership-modal/index.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "no-restricted-imports": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/header/account-setting/model-provider-page/declarations.ts": { - "erasable-syntax-only/enums": { - "count": 11 - }, - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/header/account-setting/model-provider-page/hooks.ts": { - "react/no-unnecessary-use-prefix": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/header/account-setting/model-provider-page/model-auth/add-credential-in-load-balancing.tsx": { - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/header/account-setting/model-provider-page/model-auth/config-provider.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/header/account-setting/model-provider-page/model-auth/credential-selector.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/header/account-setting/model-provider-page/model-auth/hooks/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 6 - } - }, - "web/app/components/header/account-setting/model-provider-page/model-auth/hooks/use-auth.ts": { - "ts/no-explicit-any": { - "count": 6 - } - }, - "web/app/components/header/account-setting/model-provider-page/model-auth/hooks/use-custom-models.ts": { - "react/no-unnecessary-use-prefix": { - "count": 2 - } - }, - "web/app/components/header/account-setting/model-provider-page/model-auth/hooks/use-model-form-schemas.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/header/account-setting/model-provider-page/model-auth/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 7 - } - }, - "web/app/components/header/account-setting/model-provider-page/model-auth/switch-credential-in-load-balancing.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/header/account-setting/model-provider-page/model-modal/Form.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 6 - } - }, - "web/app/components/header/account-setting/model-provider-page/model-modal/Input.tsx": { - "unicorn/prefer-number-properties": { - "count": 2 - } - }, - "web/app/components/header/account-setting/model-provider-page/model-modal/index.tsx": { - "ts/no-explicit-any": { - "count": 5 - } - }, - "web/app/components/header/account-setting/model-provider-page/model-parameter-modal/configuration-button.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/header/account-setting/model-provider-page/model-parameter-modal/model-display.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/header/account-setting/model-provider-page/model-parameter-modal/status-indicators.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/header/account-setting/model-provider-page/provider-added-card/cooldown-timer.tsx": { - "react/set-state-in-effect": { - "count": 2 - } - }, - "web/app/components/header/account-setting/model-provider-page/provider-added-card/model-auth-dropdown/__tests__/use-activate-credential.spec.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/header/account-setting/model-provider-page/provider-added-card/model-list-item.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/header/account-setting/model-provider-page/provider-added-card/model-load-balancing-configs.tsx": { - "ts/no-explicit-any": { - "count": 5 - } - }, - "web/app/components/header/account-setting/model-provider-page/provider-added-card/model-load-balancing-modal.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "react/set-state-in-effect": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/header/account-setting/model-provider-page/utils.ts": { - "no-barrel-files/no-barrel-files": { - "count": 2 - } - }, - "web/app/components/header/account-setting/plugin-page/utils.ts": { - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/header/app-nav/index.tsx": { - "react/set-state-in-effect": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/header/header-wrapper.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/plugins/card/index.tsx": { - "ts/no-non-null-asserted-optional-chain": { - "count": 1 - } - }, - "web/app/components/plugins/install-plugin/hooks.ts": { - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/plugins/install-plugin/hooks/use-fold-anim-into.ts": { - "react/no-unnecessary-use-prefix": { - "count": 1 - } - }, - "web/app/components/plugins/install-plugin/install-bundle/index.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "no-restricted-imports": { - "count": 1 - }, - "react-refresh/only-export-components": { - "count": 1 - } - }, - "web/app/components/plugins/install-plugin/install-bundle/item/github-item.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/plugins/install-plugin/install-bundle/steps/hooks/use-install-multi-state.ts": { - "react-hooks/exhaustive-deps": { - "count": 1 - } - }, - "web/app/components/plugins/install-plugin/install-from-github/index.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/plugins/install-plugin/install-from-github/steps/selectPackage.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/plugins/install-plugin/install-from-local-package/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/plugins/install-plugin/install-from-local-package/steps/uploading.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/plugins/install-plugin/install-from-marketplace/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/plugins/marketplace/hooks.ts": { - "@tanstack/query/exhaustive-deps": { - "count": 1 - } - }, - "web/app/components/plugins/plugin-auth/authorized-in-node.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/plugins/plugin-auth/authorized/item.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/plugins/plugin-auth/hooks/use-get-api.ts": { - "react/no-unnecessary-use-prefix": { - "count": 1 - } - }, - "web/app/components/plugins/plugin-auth/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 12 - }, - "react-refresh/only-export-components": { - "count": 3 - } - }, - "web/app/components/plugins/plugin-auth/plugin-auth-in-agent.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/plugins/plugin-auth/types.ts": { - "erasable-syntax-only/enums": { - "count": 2 - }, - "no-barrel-files/no-barrel-files": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/plugins/plugin-auth/utils.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/plugins/plugin-detail-panel/agent-strategy-list.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/plugins/plugin-detail-panel/app-selector/app-inputs-form.tsx": { - "ts/no-explicit-any": { - "count": 8 - } - }, - "web/app/components/plugins/plugin-detail-panel/datasource-action-list.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/plugins/plugin-detail-panel/detail-header.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 1 - } - }, - "web/app/components/plugins/plugin-detail-panel/detail-header/components/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 2 - } - }, - "web/app/components/plugins/plugin-detail-panel/detail-header/hooks/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 3 - } - }, - "web/app/components/plugins/plugin-detail-panel/endpoint-list.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/plugins/plugin-detail-panel/endpoint-modal.tsx": { - "ts/no-explicit-any": { - "count": 7 - } - }, - "web/app/components/plugins/plugin-detail-panel/model-list.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/plugins/plugin-detail-panel/model-selector/index.tsx": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/plugins/plugin-detail-panel/model-selector/tts-params-panel.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/plugins/plugin-detail-panel/multiple-tool-selector/index.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/plugins/plugin-detail-panel/strategy-detail.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/plugins/plugin-detail-panel/subscription-list/__tests__/index.spec.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/plugins/plugin-detail-panel/subscription-list/create/hooks/use-common-modal-state.ts": { - "erasable-syntax-only/enums": { - "count": 1 - } - }, - "web/app/components/plugins/plugin-detail-panel/subscription-list/create/hooks/use-oauth-client-state.ts": { - "erasable-syntax-only/enums": { - "count": 2 - } - }, - "web/app/components/plugins/plugin-detail-panel/subscription-list/create/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 3 - } - }, - "web/app/components/plugins/plugin-detail-panel/subscription-list/create/oauth-client.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/plugins/plugin-detail-panel/subscription-list/create/types.ts": { - "erasable-syntax-only/enums": { - "count": 1 - } - }, - "web/app/components/plugins/plugin-detail-panel/subscription-list/edit/apikey-edit-modal.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/plugins/plugin-detail-panel/subscription-list/edit/manual-edit-modal.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/plugins/plugin-detail-panel/subscription-list/edit/oauth-edit-modal.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/plugins/plugin-detail-panel/subscription-list/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 2 - } - }, - "web/app/components/plugins/plugin-detail-panel/subscription-list/log-viewer.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/plugins/plugin-detail-panel/subscription-list/subscription-card.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/plugins/plugin-detail-panel/subscription-list/types.ts": { - "erasable-syntax-only/enums": { - "count": 1 - } - }, - "web/app/components/plugins/plugin-detail-panel/tool-selector/components/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 7 - } - }, - "web/app/components/plugins/plugin-detail-panel/tool-selector/components/schema-modal.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/plugins/plugin-detail-panel/tool-selector/components/tool-item.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/plugins/plugin-detail-panel/tool-selector/hooks/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 2 - } - }, - "web/app/components/plugins/plugin-detail-panel/trigger/event-detail-drawer.tsx": { - "ts/no-explicit-any": { - "count": 5 - } - }, - "web/app/components/plugins/plugin-item/action.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/plugins/plugin-item/index.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/plugins/plugin-mutation-model/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/plugins/plugin-page/context.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/plugins/plugin-page/empty/index.tsx": { - "react/set-state-in-effect": { - "count": 2 - } - }, - "web/app/components/plugins/plugin-page/install-plugin-dropdown.tsx": { - "react/set-state-in-effect": { - "count": 2 - } - }, - "web/app/components/plugins/plugin-page/plugin-info.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/plugins/readme-panel/index.tsx": { - "react/unsupported-syntax": { - "count": 1 - } - }, - "web/app/components/plugins/readme-panel/store.ts": { - "erasable-syntax-only/enums": { - "count": 1 - } - }, - "web/app/components/plugins/reference-setting-modal/auto-update-setting/types.ts": { - "erasable-syntax-only/enums": { - "count": 2 - } - }, - "web/app/components/plugins/reference-setting-modal/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/plugins/types.ts": { - "erasable-syntax-only/enums": { - "count": 7 - }, - "ts/no-explicit-any": { - "count": 25 - } - }, - "web/app/components/plugins/update-plugin/from-market-place.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - } - }, - "web/app/components/rag-pipeline/components/panel/input-field/editor/form/hidden-fields.tsx": { - "react/component-hook-factories": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/rag-pipeline/components/panel/input-field/editor/form/hooks.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/rag-pipeline/components/panel/input-field/editor/form/initial-fields.tsx": { - "react/component-hook-factories": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/rag-pipeline/components/panel/input-field/editor/form/show-all-settings.tsx": { - "react/component-hook-factories": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/rag-pipeline/components/panel/input-field/editor/form/types.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/rag-pipeline/components/panel/input-field/hooks.ts": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/rag-pipeline/components/panel/input-field/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/rag-pipeline/components/panel/input-field/label-right-content/global-inputs.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/rag-pipeline/components/panel/test-run/preparation/document-processing/index.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/rag-pipeline/components/panel/test-run/preparation/document-processing/options.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/rag-pipeline/components/panel/test-run/preparation/index.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/rag-pipeline/components/panel/test-run/result/index.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/rag-pipeline/components/panel/test-run/result/result-preview/index.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/rag-pipeline/components/panel/test-run/result/result-preview/utils.ts": { - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/rag-pipeline/components/publish-as-knowledge-pipeline-modal.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/rag-pipeline/components/rag-pipeline-children.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/rag-pipeline/components/rag-pipeline-header/run-mode.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/rag-pipeline/components/rag-pipeline-main.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/rag-pipeline/components/update-dsl-modal.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/rag-pipeline/components/version-mismatch-modal.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/rag-pipeline/hooks/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 9 - } - }, - "web/app/components/rag-pipeline/hooks/use-DSL.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/rag-pipeline/hooks/use-input-fields.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/rag-pipeline/hooks/use-nodes-sync-draft.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/rag-pipeline/hooks/use-pipeline-config.ts": { - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/rag-pipeline/hooks/use-pipeline-init.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/rag-pipeline/hooks/use-pipeline-run.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/rag-pipeline/store/index.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/rag-pipeline/utils/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 1 - } - }, - "web/app/components/rag-pipeline/utils/nodes.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/share/text-generation/index.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/share/text-generation/info-modal.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/share/text-generation/menu-dropdown.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/share/text-generation/no-data/index.tsx": { - "ts/no-empty-object-type": { - "count": 1 - } - }, - "web/app/components/share/text-generation/result/index.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/share/text-generation/run-batch/csv-reader/index.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/share/text-generation/run-once/index.tsx": { - "react/set-state-in-effect": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/share/text-generation/types.ts": { - "erasable-syntax-only/enums": { - "count": 1 - } - }, - "web/app/components/share/utils.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/tools/edit-custom-collection-modal/config-credentials.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/tools/edit-custom-collection-modal/get-schema.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/tools/edit-custom-collection-modal/index.tsx": { - "react/set-state-in-effect": { - "count": 4 - }, - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/tools/edit-custom-collection-modal/test-api.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/tools/mcp/create-card.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/tools/mcp/mcp-server-modal.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 5 - } - }, - "web/app/components/tools/mcp/mcp-server-param-item.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/tools/mcp/modal.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/tools/mcp/provider-card.tsx": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/tools/provider-list.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/tools/provider/empty.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/tools/setting/build-in/config-credentials.tsx": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/tools/types.ts": { - "erasable-syntax-only/enums": { - "count": 4 - }, - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/workflow-app/components/workflow-children.tsx": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/workflow-app/hooks/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 13 - } - }, - "web/app/components/workflow-app/hooks/use-DSL.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow-app/hooks/use-nodes-sync-draft.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow-app/hooks/use-workflow-init.ts": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/workflow-app/hooks/use-workflow-refresh-draft.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow-app/hooks/use-workflow-run.ts": { - "ts/no-explicit-any": { - "count": 5 - } - }, - "web/app/components/workflow-app/hooks/use-workflow-template.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow-app/index.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow-app/store/workflow/workflow-slice.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/block-selector/all-start-blocks.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/workflow/block-selector/featured-tools.tsx": { - "react/set-state-in-effect": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/block-selector/featured-triggers.tsx": { - "react/set-state-in-effect": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/block-selector/hooks.ts": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/workflow/block-selector/index-bar.tsx": { - "react-refresh/only-export-components": { - "count": 1 - } - }, - "web/app/components/workflow/block-selector/market-place-plugin/action.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/workflow/block-selector/market-place-plugin/item.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - } - }, - "web/app/components/workflow/block-selector/rag-tool-recommendations/index.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/workflow/block-selector/tabs.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/block-selector/tool/tool-list-flat-view/list.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/block-selector/tool/tool.tsx": { - "react/set-state-in-effect": { - "count": 2 - } - }, - "web/app/components/workflow/block-selector/trigger-plugin/action-item.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/block-selector/trigger-plugin/item.tsx": { - "react/set-state-in-effect": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/block-selector/types.ts": { - "erasable-syntax-only/enums": { - "count": 4 - } - }, - "web/app/components/workflow/block-selector/use-check-vertical-scrollbar.ts": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/workflow/block-selector/use-sticky-scroll.ts": { - "erasable-syntax-only/enums": { - "count": 1 - } - }, - "web/app/components/workflow/block-selector/view-type-select.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "react-refresh/only-export-components": { - "count": 1 - } - }, - "web/app/components/workflow/candidate-node-main.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/context.tsx": { - "react-refresh/only-export-components": { - "count": 1 - } - }, - "web/app/components/workflow/datasets-detail-store/provider.tsx": { - "react-refresh/only-export-components": { - "count": 1 - } - }, - "web/app/components/workflow/dsl-export-confirm-modal.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/header/run-mode.tsx": { - "no-console": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/header/test-run-menu.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "react-refresh/only-export-components": { - "count": 1 - } - }, - "web/app/components/workflow/header/version-history-button.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/hooks-store/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 2 - } - }, - "web/app/components/workflow/hooks-store/provider.tsx": { - "react-refresh/only-export-components": { - "count": 1 - } - }, - "web/app/components/workflow/hooks-store/store.ts": { - "ts/no-explicit-any": { - "count": 6 - } - }, - "web/app/components/workflow/hooks/__tests__/use-checklist.spec.ts": { - "react/error-boundaries": { - "count": 1 - } - }, - "web/app/components/workflow/hooks/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 27 - } - }, - "web/app/components/workflow/hooks/use-checklist.ts": { - "ts/no-empty-object-type": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/workflow/hooks/use-dynamic-test-run-options.tsx": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/workflow/hooks/use-helpline.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/hooks/use-inspect-vars-crud-common.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/hooks/use-nodes-interactions.ts": { - "ts/no-explicit-any": { - "count": 8 - } - }, - "web/app/components/workflow/hooks/use-serial-async-callback.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/hooks/use-workflow-interactions.ts": { - "no-barrel-files/no-barrel-files": { - "count": 5 - } - }, - "web/app/components/workflow/hooks/use-workflow-run-event/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 19 - } - }, - "web/app/components/workflow/hooks/use-workflow-run-event/use-workflow-agent-log.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/hooks/use-workflow-run-event/use-workflow-finished.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/hooks/use-workflow-search.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/hooks/use-workflow-variables.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/index.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/_base/components/add-variable-popup-with-position.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/nodes/_base/components/agent-strategy.tsx": { - "ts/no-empty-object-type": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/workflow/nodes/_base/components/before-run-form/form-item.tsx": { - "ts/no-explicit-any": { - "count": 11 - } - }, - "web/app/components/workflow/nodes/_base/components/before-run-form/form.tsx": { - "ts/no-explicit-any": { - "count": 3 - }, - "ts/no-non-null-asserted-optional-chain": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/_base/components/before-run-form/index.tsx": { - "ts/no-explicit-any": { - "count": 5 - } - }, - "web/app/components/workflow/nodes/_base/components/collapse/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/_base/components/editor/code-editor/editor-support-vars.tsx": { - "react/set-state-in-effect": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 6 - } - }, - "web/app/components/workflow/nodes/_base/components/editor/code-editor/index.tsx": { - "react-refresh/only-export-components": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 6 - } - }, - "web/app/components/workflow/nodes/_base/components/entry-node-container.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "react-refresh/only-export-components": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/_base/components/error-handle/default-value.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/_base/components/error-handle/error-handle-type-selector.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/_base/components/error-handle/types.ts": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/_base/components/field.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/_base/components/input-support-select-var.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/_base/components/input-var-type-icon.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/_base/components/layout/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 7 - }, - "react-refresh/only-export-components": { - "count": 7 - } - }, - "web/app/components/workflow/nodes/_base/components/mcp-tool-availability.tsx": { - "react-refresh/only-export-components": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/_base/components/mcp-tool-not-support-tooltip.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/_base/components/memory-config.tsx": { - "unicorn/prefer-number-properties": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/_base/components/mixed-variable-text-input/index.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/_base/components/mixed-variable-text-input/placeholder.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/_base/components/node-control.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/_base/components/node-handle.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/_base/components/option-card.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/_base/components/prompt/editor.tsx": { - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/workflow/nodes/_base/components/readonly-input-with-select-var.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/_base/components/selector.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/nodes/_base/components/setting-item.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/_base/components/switch-plugin-version.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/_base/components/variable/match-schema-type.ts": { - "ts/no-explicit-any": { - "count": 8 - } - }, - "web/app/components/workflow/nodes/_base/components/variable/output-var-list.tsx": { - "ts/no-non-null-asserted-optional-chain": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/_base/components/variable/utils.ts": { - "ts/no-explicit-any": { - "count": 32 - } - }, - "web/app/components/workflow/nodes/_base/components/variable/var-list.tsx": { - "react/unsupported-syntax": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/_base/components/variable/var-type-picker.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/_base/components/variable/variable-label/hooks.ts": { - "react/no-unnecessary-use-prefix": { - "count": 2 - } - }, - "web/app/components/workflow/nodes/_base/components/variable/variable-label/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 5 - } - }, - "web/app/components/workflow/nodes/_base/components/workflow-panel/index.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "react/set-state-in-effect": { - "count": 3 - }, - "ts/no-explicit-any": { - "count": 6 - } - }, - "web/app/components/workflow/nodes/_base/components/workflow-panel/last-run/index.tsx": { - "react/set-state-in-effect": { - "count": 7 - }, - "ts/no-explicit-any": { - "count": 5 - } - }, - "web/app/components/workflow/nodes/_base/components/workflow-panel/last-run/use-last-run.ts": { - "react/no-unnecessary-use-prefix": { - "count": 2 - }, - "react/set-state-in-effect": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 7 - } - }, - "web/app/components/workflow/nodes/_base/components/workflow-panel/tab.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "react-refresh/only-export-components": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/_base/hooks/use-one-step-run.ts": { - "react/set-state-in-effect": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 22 - } - }, - "web/app/components/workflow/nodes/_base/hooks/use-output-var-list.ts": { - "ts/no-explicit-any": { - "count": 8 - } - }, - "web/app/components/workflow/nodes/_base/hooks/use-toggle-expend.ts": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/_base/hooks/use-var-list.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/nodes/_base/node.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/_base/types.ts": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/agent/default.ts": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/workflow/nodes/agent/node.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/nodes/agent/panel.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/agent/types.ts": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/agent/use-config.ts": { - "ts/no-explicit-any": { - "count": 7 - } - }, - "web/app/components/workflow/nodes/agent/use-single-run-form-params.ts": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/workflow/nodes/answer/default.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/assigner/default.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/assigner/hooks.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/assigner/types.ts": { - "erasable-syntax-only/enums": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/assigner/use-single-run-form-params.ts": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/workflow/nodes/assigner/utils.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/code/default.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/code/types.ts": { - "erasable-syntax-only/enums": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/code/use-config.ts": { - "react/set-state-in-effect": { - "count": 2 - }, - "regexp/no-useless-assertions": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 6 - } - }, - "web/app/components/workflow/nodes/code/use-single-run-form-params.ts": { - "ts/no-explicit-any": { - "count": 5 - } - }, - "web/app/components/workflow/nodes/components.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/nodes/data-source-empty/hooks.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/data-source/default.ts": { - "ts/no-explicit-any": { - "count": 5 - } - }, - "web/app/components/workflow/nodes/data-source/hooks/use-before-run-form.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/data-source/hooks/use-config.ts": { - "ts/no-explicit-any": { - "count": 6 - } - }, - "web/app/components/workflow/nodes/data-source/panel.tsx": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/workflow/nodes/data-source/types.ts": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "no-barrel-files/no-barrel-files": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/data-source/utils.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/document-extractor/default.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/document-extractor/use-single-run-form-params.ts": { - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/workflow/nodes/end/default.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/end/node.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/http/components/authorization/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/http/components/curl-panel.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/http/components/key-value/key-value-edit/index.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/nodes/http/components/key-value/key-value-edit/item.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/http/default.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/http/types.ts": { - "erasable-syntax-only/enums": { - "count": 5 - } - }, - "web/app/components/workflow/nodes/http/use-config.ts": { - "react/set-state-in-effect": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/http/use-single-run-form-params.ts": { - "ts/no-explicit-any": { - "count": 5 - } - }, - "web/app/components/workflow/nodes/human-input/components/delivery-method/email-configure-modal.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/human-input/components/delivery-method/method-item.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/human-input/components/delivery-method/method-selector.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/human-input/components/delivery-method/test-email-sender.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 2 - }, - "ts/no-non-null-asserted-optional-chain": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/human-input/components/delivery-method/upgrade-modal.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/human-input/components/form-content-preview.tsx": { - "react/unsupported-syntax": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/human-input/components/form-content.tsx": { - "react/component-hook-factories": { - "count": 1 - }, - "react/no-nested-component-definitions": { - "count": 1 - }, - "react/set-state-in-effect": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/workflow/nodes/human-input/components/variable-in-markdown.tsx": { - "react-refresh/only-export-components": { - "count": 2 - } - }, - "web/app/components/workflow/nodes/human-input/panel.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/human-input/types.ts": { - "erasable-syntax-only/enums": { - "count": 2 - } - }, - "web/app/components/workflow/nodes/if-else/components/condition-list/condition-input.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/if-else/components/condition-list/condition-operator.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/if-else/components/condition-number-input.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/if-else/default.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/if-else/types.ts": { - "erasable-syntax-only/enums": { - "count": 2 - } - }, - "web/app/components/workflow/nodes/if-else/use-single-run-form-params.ts": { - "ts/no-explicit-any": { - "count": 5 - } - }, - "web/app/components/workflow/nodes/iteration-start/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/iteration/default.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/iteration/node.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/iteration/use-single-run-form-params.ts": { - "ts/no-explicit-any": { - "count": 6 - } - }, - "web/app/components/workflow/nodes/knowledge-base/components/chunk-structure/selector.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/knowledge-base/components/retrieval-setting/hooks.tsx": { - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/workflow/nodes/knowledge-base/components/retrieval-setting/search-method-option.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/knowledge-base/components/retrieval-setting/type.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/nodes/knowledge-base/types.ts": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "no-barrel-files/no-barrel-files": { - "count": 8 - } - }, - "web/app/components/workflow/nodes/knowledge-base/use-single-run-form-params.ts": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/workflow/nodes/knowledge-base/utils.ts": { - "erasable-syntax-only/enums": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/knowledge-retrieval/components/metadata/condition-list/condition-item.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/knowledge-retrieval/components/metadata/condition-list/condition-operator.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/knowledge-retrieval/components/metadata/condition-list/condition-value-method.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/knowledge-retrieval/components/metadata/metadata-filter/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/knowledge-retrieval/components/metadata/metadata-filter/metadata-filter-selector.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/knowledge-retrieval/default.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/knowledge-retrieval/node.tsx": { - "react/set-state-in-effect": { - "count": 2 - } - }, - "web/app/components/workflow/nodes/knowledge-retrieval/types.ts": { - "erasable-syntax-only/enums": { - "count": 4 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/knowledge-retrieval/use-single-run-form-params.ts": { - "ts/no-explicit-any": { - "count": 5 - } - }, - "web/app/components/workflow/nodes/list-operator/components/filter-condition.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/list-operator/default.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/list-operator/types.ts": { - "erasable-syntax-only/enums": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/llm/components/config-prompt-item.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/workflow/nodes/llm/components/config-prompt.tsx": { - "react/unsupported-syntax": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/llm/components/json-schema-config-modal/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/llm/components/json-schema-config-modal/json-importer.tsx": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/workflow/nodes/llm/components/json-schema-config-modal/json-schema-config.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/llm/components/json-schema-config-modal/json-schema-generator/assets/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 2 - } - }, - "web/app/components/workflow/nodes/llm/components/json-schema-config-modal/json-schema-generator/generated-result.tsx": { - "style/multiline-ternary": { - "count": 2 - } - }, - "web/app/components/workflow/nodes/llm/components/json-schema-config-modal/visual-editor/context.tsx": { - "react-refresh/only-export-components": { - "count": 2 - } - }, - "web/app/components/workflow/nodes/llm/components/json-schema-config-modal/visual-editor/edit-card/auto-width-input.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/llm/components/json-schema-config-modal/visual-editor/edit-card/type-selector.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/llm/components/json-schema-config-modal/visual-editor/hooks.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/llm/components/structure-output.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/nodes/llm/default.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/llm/types.ts": { - "erasable-syntax-only/enums": { - "count": 2 - } - }, - "web/app/components/workflow/nodes/llm/use-config.ts": { - "react/set-state-in-effect": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/llm/use-single-run-form-params.ts": { - "ts/no-explicit-any": { - "count": 9 - } - }, - "web/app/components/workflow/nodes/llm/utils.ts": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 7 - } - }, - "web/app/components/workflow/nodes/loop-start/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/loop/components/condition-list/condition-input.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/loop/components/condition-list/condition-operator.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/loop/components/condition-number-input.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/loop/components/loop-variables/form-item.tsx": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/workflow/nodes/loop/components/loop-variables/item.tsx": { - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/workflow/nodes/loop/default.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/loop/types.ts": { - "erasable-syntax-only/enums": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/loop/use-config.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/nodes/loop/use-single-run-form-params.helpers.ts": { - "ts/no-non-null-asserted-optional-chain": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/loop/use-single-run-form-params.ts": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/workflow/nodes/parameter-extractor/components/extract-parameter/__tests__/list.spec.tsx": { - "unused-imports/no-unused-vars": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/parameter-extractor/components/extract-parameter/update.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/parameter-extractor/default.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/parameter-extractor/panel.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/parameter-extractor/types.ts": { - "erasable-syntax-only/enums": { - "count": 2 - } - }, - "web/app/components/workflow/nodes/parameter-extractor/use-config.ts": { - "react/set-state-in-effect": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/nodes/parameter-extractor/use-single-run-form-params.ts": { - "ts/no-explicit-any": { - "count": 9 - } - }, - "web/app/components/workflow/nodes/question-classifier/components/advanced-setting.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/question-classifier/components/class-item.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/question-classifier/components/class-list.tsx": { - "react/set-state-in-effect": { - "count": 1 - }, - "react/unsupported-syntax": { - "count": 2 - } - }, - "web/app/components/workflow/nodes/question-classifier/default.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/question-classifier/node.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/question-classifier/use-config.ts": { - "react/set-state-in-effect": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/nodes/question-classifier/use-single-run-form-params.ts": { - "ts/no-explicit-any": { - "count": 8 - } - }, - "web/app/components/workflow/nodes/start/panel.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/nodes/start/use-config.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/start/use-single-run-form-params.ts": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/workflow/nodes/template-transform/default.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/template-transform/use-config.ts": { - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/workflow/nodes/template-transform/use-single-run-form-params.ts": { - "ts/no-explicit-any": { - "count": 5 - } - }, - "web/app/components/workflow/nodes/tool/components/input-var-list.tsx": { - "ts/no-explicit-any": { - "count": 7 - } - }, - "web/app/components/workflow/nodes/tool/components/mixed-variable-text-input/index.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/tool/components/mixed-variable-text-input/placeholder.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/tool/components/tool-form/index.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/tool/components/tool-form/item.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/tool/default.ts": { - "ts/no-explicit-any": { - "count": 7 - } - }, - "web/app/components/workflow/nodes/tool/hooks/use-config.ts": { - "ts/no-explicit-any": { - "count": 6 - } - }, - "web/app/components/workflow/nodes/tool/hooks/use-single-run-form-params.ts": { - "ts/no-explicit-any": { - "count": 6 - } - }, - "web/app/components/workflow/nodes/tool/output-schema-utils.ts": { - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/workflow/nodes/tool/panel.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/nodes/tool/types.ts": { - "no-barrel-files/no-barrel-files": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/workflow/nodes/trigger-plugin/components/trigger-form/index.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/trigger-plugin/components/trigger-form/item.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/trigger-plugin/default.ts": { - "ts/no-explicit-any": { - "count": 11 - } - }, - "web/app/components/workflow/nodes/trigger-plugin/node.tsx": { - "react/unsupported-syntax": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/nodes/trigger-plugin/panel.tsx": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/workflow/nodes/trigger-plugin/types.ts": { - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/workflow/nodes/trigger-plugin/use-config.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/trigger-plugin/utils/form-helpers.ts": { - "ts/no-explicit-any": { - "count": 7 - } - }, - "web/app/components/workflow/nodes/trigger-schedule/default.ts": { - "regexp/no-unused-capturing-group": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 10 - } - }, - "web/app/components/workflow/nodes/trigger-webhook/components/parameter-table.tsx": { - "ts/no-non-null-asserted-optional-chain": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/trigger-webhook/default.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/trigger-webhook/panel.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/utils.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/variable-assigner/components/var-group-item.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/nodes/variable-assigner/default.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/nodes/variable-assigner/use-single-run-form-params.ts": { - "ts/no-explicit-any": { - "count": 5 - } - }, - "web/app/components/workflow/note-node/note-editor/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 3 - } - }, - "web/app/components/workflow/note-node/note-editor/plugins/link-editor-plugin/component.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/workflow/note-node/note-editor/utils.ts": { - "regexp/no-useless-quantifier": { - "count": 1 - } - }, - "web/app/components/workflow/operator/add-block.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/operator/hooks.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/operator/tip-popup.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/operator/zoom-in-out.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - } - }, - "web/app/components/workflow/panel/chat-record/index.tsx": { - "ts/no-explicit-any": { - "count": 8 - } - }, - "web/app/components/workflow/panel/chat-record/user-input.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/panel/chat-variable-panel/components/array-bool-list.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/panel/chat-variable-panel/components/array-value-list.tsx": { - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/workflow/panel/chat-variable-panel/components/object-value-item.tsx": { - "react-refresh/only-export-components": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 5 - }, - "unicorn/prefer-number-properties": { - "count": 2 - } - }, - "web/app/components/workflow/panel/chat-variable-panel/components/object-value-list.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/panel/chat-variable-panel/type.ts": { - "erasable-syntax-only/enums": { - "count": 1 - } - }, - "web/app/components/workflow/panel/debug-and-preview/chat-wrapper.tsx": { - "ts/no-explicit-any": { - "count": 6 - } - }, - "web/app/components/workflow/panel/debug-and-preview/conversation-variable-modal.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/panel/debug-and-preview/hooks.ts": { - "ts/no-explicit-any": { - "count": 12 - } - }, - "web/app/components/workflow/panel/env-panel/variable-modal.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "react/set-state-in-effect": { - "count": 4 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/panel/human-input-form-list.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/panel/inputs-panel.tsx": { - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/workflow/panel/version-history-panel/delete-confirm-modal.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/panel/version-history-panel/restore-confirm-modal.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/panel/workflow-preview.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/run/agent-log/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 2 - } - }, - "web/app/components/workflow/run/hooks.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/run/index.tsx": { - "react/set-state-in-effect": { - "count": 2 - } - }, - "web/app/components/workflow/run/iteration-log/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 2 - } - }, - "web/app/components/workflow/run/iteration-log/iteration-log-trigger.tsx": { - "unicorn/prefer-number-properties": { - "count": 1 - } - }, - "web/app/components/workflow/run/loop-log/__tests__/loop-log-trigger.spec.tsx": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/workflow/run/loop-log/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 2 - } - }, - "web/app/components/workflow/run/loop-log/loop-log-trigger.tsx": { - "unicorn/prefer-number-properties": { - "count": 1 - } - }, - "web/app/components/workflow/run/node.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/components/workflow/run/output-panel.tsx": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/workflow/run/result-panel.tsx": { - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/app/components/workflow/run/result-text.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/run/retry-log/index.tsx": { - "no-barrel-files/no-barrel-files": { - "count": 2 - } - }, - "web/app/components/workflow/run/utils/format-log/agent/index.ts": { - "ts/no-explicit-any": { - "count": 11 - } - }, - "web/app/components/workflow/run/utils/format-log/graph-to-log-struct.ts": { - "ts/no-explicit-any": { - "count": 7 - } - }, - "web/app/components/workflow/run/utils/format-log/index.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/run/utils/format-log/iteration/index.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/run/utils/format-log/loop/index.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/run/utils/format-log/parallel/index.ts": { - "no-console": { - "count": 4 - }, - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/store/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 2 - } - }, - "web/app/components/workflow/store/workflow/debug/inspect-vars-slice.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/store/workflow/workflow-draft-slice.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/store/workflow/workflow-slice.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/types.ts": { - "erasable-syntax-only/enums": { - "count": 16 - }, - "ts/no-empty-object-type": { - "count": 3 - }, - "ts/no-explicit-any": { - "count": 8 - } - }, - "web/app/components/workflow/update-dsl-modal.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/utils/__tests__/node-navigation.spec.ts": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/workflow/utils/data-source.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/utils/debug.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/utils/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 10 - } - }, - "web/app/components/workflow/utils/node-navigation.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/utils/node.ts": { - "regexp/no-super-linear-backtracking": { - "count": 1 - } - }, - "web/app/components/workflow/utils/tool.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/utils/workflow-init.ts": { - "ts/no-explicit-any": { - "count": 12 - } - }, - "web/app/components/workflow/utils/workflow.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/variable-inspect/display-content.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/variable-inspect/group.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/variable-inspect/left.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/variable-inspect/listening.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/variable-inspect/panel.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/variable-inspect/right.tsx": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/app/components/workflow/variable-inspect/trigger.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/variable-inspect/utils.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/workflow/variable-inspect/value-content.tsx": { - "react/set-state-in-effect": { - "count": 5 - }, - "regexp/no-super-linear-backtracking": { - "count": 1 - }, - "regexp/no-unused-capturing-group": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 5 - } - }, - "web/app/components/workflow/workflow-history-store.tsx": { - "react-refresh/only-export-components": { - "count": 2 - } - }, - "web/app/components/workflow/workflow-preview/components/nodes/base.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/workflow-preview/components/nodes/constants.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/workflow/workflow-preview/components/nodes/iteration-start/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/workflow-preview/components/nodes/loop-start/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/workflow/workflow-preview/components/zoom-in-out.tsx": { - "erasable-syntax-only/enums": { - "count": 1 - } - }, - "web/app/education-apply/expire-notice-modal.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/education-apply/hooks.ts": { - "react/set-state-in-effect": { - "count": 5 - } - }, - "web/app/education-apply/verify-state-modal.tsx": { - "react/set-state-in-effect": { - "count": 1 - } - }, - "web/app/forgot-password/ForgotPasswordForm.spec.tsx": { - "ts/no-explicit-any": { - "count": 5 - } - }, - "web/app/init/InitPasswordPopup.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/install/installForm.spec.tsx": { - "ts/no-explicit-any": { - "count": 7 - } - }, - "web/app/layout.tsx": { - "react-refresh/only-export-components": { - "count": 1 - } - }, - "web/app/reset-password/layout.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/signin/components/mail-and-password-auth.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/signin/layout.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/signin/one-more-step.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/signup/layout.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/context/external-api-panel-context.tsx": { - "react-refresh/only-export-components": { - "count": 1 - } - }, - "web/context/external-knowledge-api-context.tsx": { - "react-refresh/only-export-components": { - "count": 1 - } - }, - "web/context/hooks/use-trigger-events-limit-modal.ts": { - "react/set-state-in-effect": { - "count": 3 - } - }, - "web/context/modal-context-provider.tsx": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/context/modal-context.test.tsx": { - "ts/no-explicit-any": { - "count": 5 - } - }, - "web/context/modal-context.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/context/provider-context-provider.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/context/web-app-context.tsx": { - "react-refresh/only-export-components": { - "count": 1 - } - }, - "web/hooks/use-async-window-open.spec.ts": { - "ts/no-explicit-any": { - "count": 6 - } - }, - "web/hooks/use-format-time-from-now.spec.ts": { - "regexp/no-dupe-disjunctions": { - "count": 5 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/hooks/use-metadata.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/hooks/use-mitt.ts": { - "react/component-hook-factories": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/hooks/use-oauth.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/hooks/use-pay.tsx": { - "react/set-state-in-effect": { - "count": 4 - } - }, - "web/i18n-config/index.ts": { - "no-barrel-files/no-barrel-files": { - "count": 1 - } - }, - "web/i18n-config/lib.client.ts": { - "no-barrel-files/no-barrel-files": { - "count": 1 - } - }, - "web/i18n/de-DE/billing.json": { - "no-irregular-whitespace": { - "count": 1 - } - }, - "web/i18n/en-US/app-debug.json": { - "no-irregular-whitespace": { - "count": 1 - } - }, - "web/i18n/fr-FR/app-debug.json": { - "no-irregular-whitespace": { - "count": 1 - } - }, - "web/i18n/fr-FR/app.json": { - "no-irregular-whitespace": { - "count": 1 - } - }, - "web/i18n/fr-FR/plugin-trigger.json": { - "no-irregular-whitespace": { - "count": 1 - } - }, - "web/i18n/fr-FR/tools.json": { - "no-irregular-whitespace": { - "count": 1 - } - }, - "web/i18n/fr-FR/workflow.json": { - "no-irregular-whitespace": { - "count": 2 - } - }, - "web/i18n/pt-BR/common.json": { - "no-irregular-whitespace": { - "count": 1 - } - }, - "web/i18n/ru-RU/common.json": { - "no-irregular-whitespace": { - "count": 2 - } - }, - "web/i18n/uk-UA/app-debug.json": { - "no-irregular-whitespace": { - "count": 1 - } - }, - "web/models/access-control.ts": { - "erasable-syntax-only/enums": { - "count": 2 - } - }, - "web/models/app.ts": { - "erasable-syntax-only/enums": { - "count": 2 - } - }, - "web/models/common.ts": { - "erasable-syntax-only/enums": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/models/datasets.ts": { - "erasable-syntax-only/enums": { - "count": 8 - }, - "ts/no-explicit-any": { - "count": 5 - } - }, - "web/models/debug.ts": { - "erasable-syntax-only/enums": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/models/log.ts": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 7 - } - }, - "web/models/pipeline.ts": { - "erasable-syntax-only/enums": { - "count": 3 - }, - "ts/no-explicit-any": { - "count": 6 - } - }, - "web/models/share.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/plugins/dev-proxy/server.spec.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/scripts/component-analyzer.js": { - "regexp/no-unused-capturing-group": { - "count": 6 - } - }, - "web/service/access-control.ts": { - "@tanstack/query/exhaustive-deps": { - "count": 1 - } - }, - "web/service/annotation.ts": { - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/service/apps.ts": { - "ts/no-explicit-any": { - "count": 7 - } - }, - "web/service/base.ts": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/service/client.spec.ts": { - "next/no-assign-module-variable": { - "count": 1 - } - }, - "web/service/common.ts": { - "ts/no-explicit-any": { - "count": 29 - } - }, - "web/service/datasets.ts": { - "ts/no-explicit-any": { - "count": 6 - } - }, - "web/service/debug.ts": { - "ts/no-explicit-any": { - "count": 6 - } - }, - "web/service/fetch.ts": { - "regexp/no-unused-capturing-group": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/service/knowledge/use-dataset.ts": { - "@tanstack/query/exhaustive-deps": { - "count": 1 - } - }, - "web/service/share.ts": { - "erasable-syntax-only/enums": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/service/try-app.ts": { - "no-barrel-files/no-barrel-files": { - "count": 2 - } - }, - "web/service/use-apps.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/service/use-common.ts": { - "ts/no-empty-object-type": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/service/use-endpoints.ts": { - "ts/no-explicit-any": { - "count": 7 - } - }, - "web/service/use-flow.ts": { - "react/no-unnecessary-use-prefix": { - "count": 1 - } - }, - "web/service/use-pipeline.ts": { - "@tanstack/query/exhaustive-deps": { - "count": 1 - } - }, - "web/service/use-plugins-auth.ts": { - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/service/use-plugins.ts": { - "react/set-state-in-effect": { - "count": 1 - }, - "regexp/no-unused-capturing-group": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 3 - }, - "ts/no-non-null-asserted-optional-chain": { - "count": 1 - } - }, - "web/service/use-tools.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/service/use-workflow.ts": { - "@tanstack/query/exhaustive-deps": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/service/utils.spec.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/types/app.ts": { - "erasable-syntax-only/enums": { - "count": 9 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/types/assets.d.ts": { - "ts/no-explicit-any": { - "count": 5 - } - }, - "web/types/common.ts": { - "erasable-syntax-only/enums": { - "count": 1 - } - }, - "web/types/feature.ts": { - "erasable-syntax-only/enums": { - "count": 3 - } - }, - "web/types/lamejs.d.ts": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/types/pipeline.tsx": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/types/react-18-input-autosize.d.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/types/workflow.ts": { - "ts/no-explicit-any": { - "count": 17 - } - }, - "web/utils/clipboard.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/utils/completion-params.spec.ts": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/utils/completion-params.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/utils/context.ts": { - "react/component-hook-factories": { - "count": 1 - } - }, - "web/utils/error-parser.ts": { - "no-console": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/utils/get-icon.spec.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/utils/gtag.ts": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/utils/index.spec.ts": { - "test/no-identical-title": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 8 - } - }, - "web/utils/index.ts": { - "ts/no-explicit-any": { - "count": 3 - } - }, - "web/utils/mcp.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/utils/model-config.spec.ts": { - "ts/no-explicit-any": { - "count": 13 - } - }, - "web/utils/model-config.ts": { - "ts/no-explicit-any": { - "count": 6 - } - }, - "web/utils/navigation.spec.ts": { - "ts/no-explicit-any": { - "count": 4 - } - }, - "web/utils/tool-call.spec.ts": { - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/utils/validators.ts": { - "ts/no-explicit-any": { - "count": 2 - } - } -} \ No newline at end of file diff --git a/packages/contracts/generated/api/console/account/orpc.gen.ts b/packages/contracts/generated/api/console/account/orpc.gen.ts new file mode 100644 index 0000000000..a926103667 --- /dev/null +++ b/packages/contracts/generated/api/console/account/orpc.gen.ts @@ -0,0 +1,378 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zGetAccountAvatarQuery, + zGetAccountAvatarResponse, + zGetAccountDeleteVerifyResponse, + zGetAccountEducationAutocompleteQuery, + zGetAccountEducationAutocompleteResponse, + zGetAccountEducationResponse, + zGetAccountEducationVerifyResponse, + zGetAccountIntegratesResponse, + zGetAccountProfileResponse, + zPostAccountAvatarBody, + zPostAccountAvatarResponse, + zPostAccountChangeEmailBody, + zPostAccountChangeEmailCheckEmailUniqueBody, + zPostAccountChangeEmailCheckEmailUniqueResponse, + zPostAccountChangeEmailResetBody, + zPostAccountChangeEmailResetResponse, + zPostAccountChangeEmailResponse, + zPostAccountChangeEmailValidityBody, + zPostAccountChangeEmailValidityResponse, + zPostAccountDeleteBody, + zPostAccountDeleteFeedbackBody, + zPostAccountDeleteFeedbackResponse, + zPostAccountDeleteResponse, + zPostAccountEducationBody, + zPostAccountEducationResponse, + zPostAccountInitBody, + zPostAccountInitResponse, + zPostAccountInterfaceLanguageBody, + zPostAccountInterfaceLanguageResponse, + zPostAccountInterfaceThemeBody, + zPostAccountInterfaceThemeResponse, + zPostAccountNameBody, + zPostAccountNameResponse, + zPostAccountPasswordBody, + zPostAccountPasswordResponse, + zPostAccountTimezoneBody, + zPostAccountTimezoneResponse, +} from './zod.gen' + +/** + * Get account avatar url + */ +export const get = oc + .route({ + description: 'Get account avatar url', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAccountAvatar', + path: '/account/avatar', + tags: ['console'], + }) + .input(z.object({ query: zGetAccountAvatarQuery })) + .output(zGetAccountAvatarResponse) + +export const post = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAccountAvatar', + path: '/account/avatar', + tags: ['console'], + }) + .input(z.object({ body: zPostAccountAvatarBody })) + .output(zPostAccountAvatarResponse) + +export const avatar = { + get, + post, +} + +export const post2 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAccountChangeEmailCheckEmailUnique', + path: '/account/change-email/check-email-unique', + tags: ['console'], + }) + .input(z.object({ body: zPostAccountChangeEmailCheckEmailUniqueBody })) + .output(zPostAccountChangeEmailCheckEmailUniqueResponse) + +export const checkEmailUnique = { + post: post2, +} + +export const post3 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAccountChangeEmailReset', + path: '/account/change-email/reset', + tags: ['console'], + }) + .input(z.object({ body: zPostAccountChangeEmailResetBody })) + .output(zPostAccountChangeEmailResetResponse) + +export const reset = { + post: post3, +} + +export const post4 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAccountChangeEmailValidity', + path: '/account/change-email/validity', + tags: ['console'], + }) + .input(z.object({ body: zPostAccountChangeEmailValidityBody })) + .output(zPostAccountChangeEmailValidityResponse) + +export const validity = { + post: post4, +} + +export const post5 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAccountChangeEmail', + path: '/account/change-email', + tags: ['console'], + }) + .input(z.object({ body: zPostAccountChangeEmailBody })) + .output(zPostAccountChangeEmailResponse) + +export const changeEmail = { + post: post5, + checkEmailUnique, + reset, + validity, +} + +export const post6 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAccountDeleteFeedback', + path: '/account/delete/feedback', + tags: ['console'], + }) + .input(z.object({ body: zPostAccountDeleteFeedbackBody })) + .output(zPostAccountDeleteFeedbackResponse) + +export const feedback = { + post: post6, +} + +export const get2 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAccountDeleteVerify', + path: '/account/delete/verify', + tags: ['console'], + }) + .output(zGetAccountDeleteVerifyResponse) + +export const verify = { + get: get2, +} + +export const post7 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAccountDelete', + path: '/account/delete', + tags: ['console'], + }) + .input(z.object({ body: zPostAccountDeleteBody })) + .output(zPostAccountDeleteResponse) + +export const delete_ = { + post: post7, + feedback, + verify, +} + +export const get3 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAccountEducationAutocomplete', + path: '/account/education/autocomplete', + tags: ['console'], + }) + .input(z.object({ query: zGetAccountEducationAutocompleteQuery })) + .output(zGetAccountEducationAutocompleteResponse) + +export const autocomplete = { + get: get3, +} + +export const get4 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAccountEducationVerify', + path: '/account/education/verify', + tags: ['console'], + }) + .output(zGetAccountEducationVerifyResponse) + +export const verify2 = { + get: get4, +} + +export const get5 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAccountEducation', + path: '/account/education', + tags: ['console'], + }) + .output(zGetAccountEducationResponse) + +export const post8 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAccountEducation', + path: '/account/education', + tags: ['console'], + }) + .input(z.object({ body: zPostAccountEducationBody })) + .output(zPostAccountEducationResponse) + +export const education = { + get: get5, + post: post8, + autocomplete, + verify: verify2, +} + +export const post9 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAccountInit', + path: '/account/init', + tags: ['console'], + }) + .input(z.object({ body: zPostAccountInitBody })) + .output(zPostAccountInitResponse) + +export const init = { + post: post9, +} + +export const get6 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAccountIntegrates', + path: '/account/integrates', + tags: ['console'], + }) + .output(zGetAccountIntegratesResponse) + +export const integrates = { + get: get6, +} + +export const post10 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAccountInterfaceLanguage', + path: '/account/interface-language', + tags: ['console'], + }) + .input(z.object({ body: zPostAccountInterfaceLanguageBody })) + .output(zPostAccountInterfaceLanguageResponse) + +export const interfaceLanguage = { + post: post10, +} + +export const post11 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAccountInterfaceTheme', + path: '/account/interface-theme', + tags: ['console'], + }) + .input(z.object({ body: zPostAccountInterfaceThemeBody })) + .output(zPostAccountInterfaceThemeResponse) + +export const interfaceTheme = { + post: post11, +} + +export const post12 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAccountName', + path: '/account/name', + tags: ['console'], + }) + .input(z.object({ body: zPostAccountNameBody })) + .output(zPostAccountNameResponse) + +export const name = { + post: post12, +} + +export const post13 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAccountPassword', + path: '/account/password', + tags: ['console'], + }) + .input(z.object({ body: zPostAccountPasswordBody })) + .output(zPostAccountPasswordResponse) + +export const password = { + post: post13, +} + +export const get7 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAccountProfile', + path: '/account/profile', + tags: ['console'], + }) + .output(zGetAccountProfileResponse) + +export const profile = { + get: get7, +} + +export const post14 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAccountTimezone', + path: '/account/timezone', + tags: ['console'], + }) + .input(z.object({ body: zPostAccountTimezoneBody })) + .output(zPostAccountTimezoneResponse) + +export const timezone = { + post: post14, +} + +export const account = { + avatar, + changeEmail, + delete: delete_, + education, + init, + integrates, + interfaceLanguage, + interfaceTheme, + name, + password, + profile, + timezone, +} + +export const contract = { + account, +} diff --git a/packages/contracts/generated/api/console/account/types.gen.ts b/packages/contracts/generated/api/console/account/types.gen.ts new file mode 100644 index 0000000000..9021d4c8fb --- /dev/null +++ b/packages/contracts/generated/api/console/account/types.gen.ts @@ -0,0 +1,429 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type AccountAvatarPayload = { + avatar: string +} + +export type Account = { + avatar?: string | null + created_at?: number | null + email: string + id: string + interface_language?: string | null + interface_theme?: string | null + is_password_set: boolean + last_login_at?: number | null + last_login_ip?: string | null + name: string + timezone?: string | null +} + +export type ChangeEmailSendPayload = { + email: string + language?: string | null + phase?: string | null + token?: string | null +} + +export type CheckEmailUniquePayload = { + email: string +} + +export type ChangeEmailResetPayload = { + new_email: string + token: string +} + +export type ChangeEmailValidityPayload = { + code: string + email: string + token: string +} + +export type AccountDeletePayload = { + code: string + token: string +} + +export type AccountDeletionFeedbackPayload = { + email: string + feedback: string +} + +export type EducationStatusResponse = { + allow_refresh?: boolean | null + expire_at?: number | null + is_student?: boolean | null + result?: boolean | null +} + +export type EducationActivatePayload = { + institution: string + role: string + token: string +} + +export type EducationAutocompleteResponse = { + curr_page?: number | null + data?: Array + has_next?: boolean | null +} + +export type EducationVerifyResponse = { + token?: string | null +} + +export type AccountInitPayload = { + interface_language: string + invitation_code?: string | null + timezone: string +} + +export type AccountIntegrateListResponse = { + data: Array +} + +export type AccountInterfaceLanguagePayload = { + interface_language: string +} + +export type AccountInterfaceThemePayload = { + interface_theme: 'light' | 'dark' +} + +export type AccountNamePayload = { + name: string +} + +export type AccountPasswordPayload = { + new_password: string + password?: string | null + repeat_new_password: string +} + +export type AccountTimezonePayload = { + timezone: string +} + +export type AccountIntegrateResponse = { + created_at?: number | null + is_bound: boolean + link?: string | null + provider: string +} + +export type GetAccountAvatarData = { + body?: never + path?: never + query: { + avatar: string + } + url: '/account/avatar' +} + +export type GetAccountAvatarResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetAccountAvatarResponse = GetAccountAvatarResponses[keyof GetAccountAvatarResponses] + +export type PostAccountAvatarData = { + body: AccountAvatarPayload + path?: never + query?: never + url: '/account/avatar' +} + +export type PostAccountAvatarResponses = { + 200: Account +} + +export type PostAccountAvatarResponse = PostAccountAvatarResponses[keyof PostAccountAvatarResponses] + +export type PostAccountChangeEmailData = { + body: ChangeEmailSendPayload + path?: never + query?: never + url: '/account/change-email' +} + +export type PostAccountChangeEmailResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAccountChangeEmailResponse + = PostAccountChangeEmailResponses[keyof PostAccountChangeEmailResponses] + +export type PostAccountChangeEmailCheckEmailUniqueData = { + body: CheckEmailUniquePayload + path?: never + query?: never + url: '/account/change-email/check-email-unique' +} + +export type PostAccountChangeEmailCheckEmailUniqueResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAccountChangeEmailCheckEmailUniqueResponse + = PostAccountChangeEmailCheckEmailUniqueResponses[keyof PostAccountChangeEmailCheckEmailUniqueResponses] + +export type PostAccountChangeEmailResetData = { + body: ChangeEmailResetPayload + path?: never + query?: never + url: '/account/change-email/reset' +} + +export type PostAccountChangeEmailResetResponses = { + 200: Account +} + +export type PostAccountChangeEmailResetResponse + = PostAccountChangeEmailResetResponses[keyof PostAccountChangeEmailResetResponses] + +export type PostAccountChangeEmailValidityData = { + body: ChangeEmailValidityPayload + path?: never + query?: never + url: '/account/change-email/validity' +} + +export type PostAccountChangeEmailValidityResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAccountChangeEmailValidityResponse + = PostAccountChangeEmailValidityResponses[keyof PostAccountChangeEmailValidityResponses] + +export type PostAccountDeleteData = { + body: AccountDeletePayload + path?: never + query?: never + url: '/account/delete' +} + +export type PostAccountDeleteResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAccountDeleteResponse = PostAccountDeleteResponses[keyof PostAccountDeleteResponses] + +export type PostAccountDeleteFeedbackData = { + body: AccountDeletionFeedbackPayload + path?: never + query?: never + url: '/account/delete/feedback' +} + +export type PostAccountDeleteFeedbackResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAccountDeleteFeedbackResponse + = PostAccountDeleteFeedbackResponses[keyof PostAccountDeleteFeedbackResponses] + +export type GetAccountDeleteVerifyData = { + body?: never + path?: never + query?: never + url: '/account/delete/verify' +} + +export type GetAccountDeleteVerifyResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetAccountDeleteVerifyResponse + = GetAccountDeleteVerifyResponses[keyof GetAccountDeleteVerifyResponses] + +export type GetAccountEducationData = { + body?: never + path?: never + query?: never + url: '/account/education' +} + +export type GetAccountEducationResponses = { + 200: EducationStatusResponse +} + +export type GetAccountEducationResponse + = GetAccountEducationResponses[keyof GetAccountEducationResponses] + +export type PostAccountEducationData = { + body: EducationActivatePayload + path?: never + query?: never + url: '/account/education' +} + +export type PostAccountEducationResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAccountEducationResponse + = PostAccountEducationResponses[keyof PostAccountEducationResponses] + +export type GetAccountEducationAutocompleteData = { + body?: never + path?: never + query: { + keywords: string + limit?: number + page?: number + } + url: '/account/education/autocomplete' +} + +export type GetAccountEducationAutocompleteResponses = { + 200: EducationAutocompleteResponse +} + +export type GetAccountEducationAutocompleteResponse + = GetAccountEducationAutocompleteResponses[keyof GetAccountEducationAutocompleteResponses] + +export type GetAccountEducationVerifyData = { + body?: never + path?: never + query?: never + url: '/account/education/verify' +} + +export type GetAccountEducationVerifyResponses = { + 200: EducationVerifyResponse +} + +export type GetAccountEducationVerifyResponse + = GetAccountEducationVerifyResponses[keyof GetAccountEducationVerifyResponses] + +export type PostAccountInitData = { + body: AccountInitPayload + path?: never + query?: never + url: '/account/init' +} + +export type PostAccountInitResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAccountInitResponse = PostAccountInitResponses[keyof PostAccountInitResponses] + +export type GetAccountIntegratesData = { + body?: never + path?: never + query?: never + url: '/account/integrates' +} + +export type GetAccountIntegratesResponses = { + 200: AccountIntegrateListResponse +} + +export type GetAccountIntegratesResponse + = GetAccountIntegratesResponses[keyof GetAccountIntegratesResponses] + +export type PostAccountInterfaceLanguageData = { + body: AccountInterfaceLanguagePayload + path?: never + query?: never + url: '/account/interface-language' +} + +export type PostAccountInterfaceLanguageResponses = { + 200: Account +} + +export type PostAccountInterfaceLanguageResponse + = PostAccountInterfaceLanguageResponses[keyof PostAccountInterfaceLanguageResponses] + +export type PostAccountInterfaceThemeData = { + body: AccountInterfaceThemePayload + path?: never + query?: never + url: '/account/interface-theme' +} + +export type PostAccountInterfaceThemeResponses = { + 200: Account +} + +export type PostAccountInterfaceThemeResponse + = PostAccountInterfaceThemeResponses[keyof PostAccountInterfaceThemeResponses] + +export type PostAccountNameData = { + body: AccountNamePayload + path?: never + query?: never + url: '/account/name' +} + +export type PostAccountNameResponses = { + 200: Account +} + +export type PostAccountNameResponse = PostAccountNameResponses[keyof PostAccountNameResponses] + +export type PostAccountPasswordData = { + body: AccountPasswordPayload + path?: never + query?: never + url: '/account/password' +} + +export type PostAccountPasswordResponses = { + 200: Account +} + +export type PostAccountPasswordResponse + = PostAccountPasswordResponses[keyof PostAccountPasswordResponses] + +export type GetAccountProfileData = { + body?: never + path?: never + query?: never + url: '/account/profile' +} + +export type GetAccountProfileResponses = { + 200: Account +} + +export type GetAccountProfileResponse = GetAccountProfileResponses[keyof GetAccountProfileResponses] + +export type PostAccountTimezoneData = { + body: AccountTimezonePayload + path?: never + query?: never + url: '/account/timezone' +} + +export type PostAccountTimezoneResponses = { + 200: Account +} + +export type PostAccountTimezoneResponse + = PostAccountTimezoneResponses[keyof PostAccountTimezoneResponses] diff --git a/packages/contracts/generated/api/console/account/zod.gen.ts b/packages/contracts/generated/api/console/account/zod.gen.ts new file mode 100644 index 0000000000..befa7c27c6 --- /dev/null +++ b/packages/contracts/generated/api/console/account/zod.gen.ts @@ -0,0 +1,318 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * AccountAvatarPayload + */ +export const zAccountAvatarPayload = z.object({ + avatar: z.string(), +}) + +/** + * Account + */ +export const zAccount = z.object({ + avatar: z.string().nullish(), + created_at: z.int().nullish(), + email: z.string(), + id: z.string(), + interface_language: z.string().nullish(), + interface_theme: z.string().nullish(), + is_password_set: z.boolean(), + last_login_at: z.int().nullish(), + last_login_ip: z.string().nullish(), + name: z.string(), + timezone: z.string().nullish(), +}) + +/** + * ChangeEmailSendPayload + */ +export const zChangeEmailSendPayload = z.object({ + email: z.string(), + language: z.string().nullish(), + phase: z.string().nullish(), + token: z.string().nullish(), +}) + +/** + * CheckEmailUniquePayload + */ +export const zCheckEmailUniquePayload = z.object({ + email: z.string(), +}) + +/** + * ChangeEmailResetPayload + */ +export const zChangeEmailResetPayload = z.object({ + new_email: z.string(), + token: z.string(), +}) + +/** + * ChangeEmailValidityPayload + */ +export const zChangeEmailValidityPayload = z.object({ + code: z.string(), + email: z.string(), + token: z.string(), +}) + +/** + * AccountDeletePayload + */ +export const zAccountDeletePayload = z.object({ + code: z.string(), + token: z.string(), +}) + +/** + * AccountDeletionFeedbackPayload + */ +export const zAccountDeletionFeedbackPayload = z.object({ + email: z.string(), + feedback: z.string(), +}) + +/** + * EducationStatusResponse + */ +export const zEducationStatusResponse = z.object({ + allow_refresh: z.boolean().nullish(), + expire_at: z.int().nullish(), + is_student: z.boolean().nullish(), + result: z.boolean().nullish(), +}) + +/** + * EducationActivatePayload + */ +export const zEducationActivatePayload = z.object({ + institution: z.string(), + role: z.string(), + token: z.string(), +}) + +/** + * EducationAutocompleteResponse + */ +export const zEducationAutocompleteResponse = z.object({ + curr_page: z.int().nullish(), + data: z.array(z.string()).optional(), + has_next: z.boolean().nullish(), +}) + +/** + * EducationVerifyResponse + */ +export const zEducationVerifyResponse = z.object({ + token: z.string().nullish(), +}) + +/** + * AccountInitPayload + */ +export const zAccountInitPayload = z.object({ + interface_language: z.string(), + invitation_code: z.string().nullish(), + timezone: z.string(), +}) + +/** + * AccountInterfaceLanguagePayload + */ +export const zAccountInterfaceLanguagePayload = z.object({ + interface_language: z.string(), +}) + +/** + * AccountInterfaceThemePayload + */ +export const zAccountInterfaceThemePayload = z.object({ + interface_theme: z.enum(['light', 'dark']), +}) + +/** + * AccountNamePayload + */ +export const zAccountNamePayload = z.object({ + name: z.string().min(3).max(30), +}) + +/** + * AccountPasswordPayload + */ +export const zAccountPasswordPayload = z.object({ + new_password: z.string(), + password: z.string().nullish(), + repeat_new_password: z.string(), +}) + +/** + * AccountTimezonePayload + */ +export const zAccountTimezonePayload = z.object({ + timezone: z.string(), +}) + +/** + * AccountIntegrateResponse + */ +export const zAccountIntegrateResponse = z.object({ + created_at: z.int().nullish(), + is_bound: z.boolean(), + link: z.string().nullish(), + provider: z.string(), +}) + +/** + * AccountIntegrateListResponse + */ +export const zAccountIntegrateListResponse = z.object({ + data: z.array(zAccountIntegrateResponse), +}) + +export const zGetAccountAvatarQuery = z.object({ + avatar: z.string(), +}) + +/** + * Success + */ +export const zGetAccountAvatarResponse = z.record(z.string(), z.unknown()) + +export const zPostAccountAvatarBody = zAccountAvatarPayload + +/** + * Success + */ +export const zPostAccountAvatarResponse = zAccount + +export const zPostAccountChangeEmailBody = zChangeEmailSendPayload + +/** + * Success + */ +export const zPostAccountChangeEmailResponse = z.record(z.string(), z.unknown()) + +export const zPostAccountChangeEmailCheckEmailUniqueBody = zCheckEmailUniquePayload + +/** + * Success + */ +export const zPostAccountChangeEmailCheckEmailUniqueResponse = z.record(z.string(), z.unknown()) + +export const zPostAccountChangeEmailResetBody = zChangeEmailResetPayload + +/** + * Success + */ +export const zPostAccountChangeEmailResetResponse = zAccount + +export const zPostAccountChangeEmailValidityBody = zChangeEmailValidityPayload + +/** + * Success + */ +export const zPostAccountChangeEmailValidityResponse = z.record(z.string(), z.unknown()) + +export const zPostAccountDeleteBody = zAccountDeletePayload + +/** + * Success + */ +export const zPostAccountDeleteResponse = z.record(z.string(), z.unknown()) + +export const zPostAccountDeleteFeedbackBody = zAccountDeletionFeedbackPayload + +/** + * Success + */ +export const zPostAccountDeleteFeedbackResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zGetAccountDeleteVerifyResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zGetAccountEducationResponse = zEducationStatusResponse + +export const zPostAccountEducationBody = zEducationActivatePayload + +/** + * Success + */ +export const zPostAccountEducationResponse = z.record(z.string(), z.unknown()) + +export const zGetAccountEducationAutocompleteQuery = z.object({ + keywords: z.string(), + limit: z.int().optional().default(20), + page: z.int().optional().default(0), +}) + +/** + * Success + */ +export const zGetAccountEducationAutocompleteResponse = zEducationAutocompleteResponse + +/** + * Success + */ +export const zGetAccountEducationVerifyResponse = zEducationVerifyResponse + +export const zPostAccountInitBody = zAccountInitPayload + +/** + * Success + */ +export const zPostAccountInitResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zGetAccountIntegratesResponse = zAccountIntegrateListResponse + +export const zPostAccountInterfaceLanguageBody = zAccountInterfaceLanguagePayload + +/** + * Success + */ +export const zPostAccountInterfaceLanguageResponse = zAccount + +export const zPostAccountInterfaceThemeBody = zAccountInterfaceThemePayload + +/** + * Success + */ +export const zPostAccountInterfaceThemeResponse = zAccount + +export const zPostAccountNameBody = zAccountNamePayload + +/** + * Success + */ +export const zPostAccountNameResponse = zAccount + +export const zPostAccountPasswordBody = zAccountPasswordPayload + +/** + * Success + */ +export const zPostAccountPasswordResponse = zAccount + +/** + * Success + */ +export const zGetAccountProfileResponse = zAccount + +export const zPostAccountTimezoneBody = zAccountTimezonePayload + +/** + * Success + */ +export const zPostAccountTimezoneResponse = zAccount diff --git a/packages/contracts/generated/api/console/activate/orpc.gen.ts b/packages/contracts/generated/api/console/activate/orpc.gen.ts new file mode 100644 index 0000000000..870f45bd2e --- /dev/null +++ b/packages/contracts/generated/api/console/activate/orpc.gen.ts @@ -0,0 +1,54 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zGetActivateCheckQuery, + zGetActivateCheckResponse, + zPostActivateBody, + zPostActivateResponse, +} from './zod.gen' + +/** + * Check if activation token is valid + */ +export const get = oc + .route({ + description: 'Check if activation token is valid', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getActivateCheck', + path: '/activate/check', + tags: ['console'], + }) + .input(z.object({ query: zGetActivateCheckQuery })) + .output(zGetActivateCheckResponse) + +export const check = { + get, +} + +/** + * Activate account with invitation token + */ +export const post = oc + .route({ + description: 'Activate account with invitation token', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postActivate', + path: '/activate', + tags: ['console'], + }) + .input(z.object({ body: zPostActivateBody })) + .output(zPostActivateResponse) + +export const activate = { + post, + check, +} + +export const contract = { + activate, +} diff --git a/packages/contracts/generated/api/console/activate/types.gen.ts b/packages/contracts/generated/api/console/activate/types.gen.ts new file mode 100644 index 0000000000..97a16c6861 --- /dev/null +++ b/packages/contracts/generated/api/console/activate/types.gen.ts @@ -0,0 +1,63 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type ActivatePayload = { + email?: string | null + interface_language: string + name: string + timezone: string + token: string + workspace_id?: string | null +} + +export type ActivationResponse = { + result: string +} + +export type ActivationCheckResponse = { + data?: { + [key: string]: unknown + } | null + is_valid: boolean +} + +export type PostActivateData = { + body: ActivatePayload + path?: never + query?: never + url: '/activate' +} + +export type PostActivateErrors = { + 400: { + [key: string]: unknown + } +} + +export type PostActivateError = PostActivateErrors[keyof PostActivateErrors] + +export type PostActivateResponses = { + 200: ActivationResponse +} + +export type PostActivateResponse = PostActivateResponses[keyof PostActivateResponses] + +export type GetActivateCheckData = { + body?: never + path?: never + query: { + email?: string | null + token: string + workspace_id?: string | null + } + url: '/activate/check' +} + +export type GetActivateCheckResponses = { + 200: ActivationCheckResponse +} + +export type GetActivateCheckResponse = GetActivateCheckResponses[keyof GetActivateCheckResponses] diff --git a/packages/contracts/generated/api/console/activate/zod.gen.ts b/packages/contracts/generated/api/console/activate/zod.gen.ts new file mode 100644 index 0000000000..30897b6666 --- /dev/null +++ b/packages/contracts/generated/api/console/activate/zod.gen.ts @@ -0,0 +1,48 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * ActivatePayload + */ +export const zActivatePayload = z.object({ + email: z.string().nullish(), + interface_language: z.string(), + name: z.string().max(30), + timezone: z.string(), + token: z.string(), + workspace_id: z.string().nullish(), +}) + +/** + * ActivationResponse + */ +export const zActivationResponse = z.object({ + result: z.string(), +}) + +/** + * ActivationCheckResponse + */ +export const zActivationCheckResponse = z.object({ + data: z.record(z.string(), z.unknown()).nullish(), + is_valid: z.boolean(), +}) + +export const zPostActivateBody = zActivatePayload + +/** + * Account activated successfully + */ +export const zPostActivateResponse = zActivationResponse + +export const zGetActivateCheckQuery = z.object({ + email: z.string().nullish(), + token: z.string(), + workspace_id: z.string().nullish(), +}) + +/** + * Success + */ +export const zGetActivateCheckResponse = zActivationCheckResponse diff --git a/packages/contracts/generated/api/console/admin/orpc.gen.ts b/packages/contracts/generated/api/console/admin/orpc.gen.ts new file mode 100644 index 0000000000..93f012405a --- /dev/null +++ b/packages/contracts/generated/api/console/admin/orpc.gen.ts @@ -0,0 +1,153 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zDeleteAdminDeleteExploreBannerByBannerIdPath, + zDeleteAdminDeleteExploreBannerByBannerIdResponse, + zDeleteAdminInsertExploreAppsByAppIdPath, + zDeleteAdminInsertExploreAppsByAppIdResponse, + zPostAdminBatchAddNotificationAccountsResponse, + zPostAdminInsertExploreAppsBody, + zPostAdminInsertExploreAppsResponse, + zPostAdminInsertExploreBannerBody, + zPostAdminInsertExploreBannerResponse, + zPostAdminUpsertNotificationBody, + zPostAdminUpsertNotificationResponse, +} from './zod.gen' + +/** + * Register target accounts for a notification by email address. JSON body: {"notification_id": "...", "user_email": ["a@example.com", ...]}. File upload: multipart/form-data with a 'file' field (CSV or TXT, one email per line) plus a 'notification_id' field. Emails that do not match any account are silently skipped. + */ +export const post = oc + .route({ + description: + 'Register target accounts for a notification by email address. JSON body: {"notification_id": "...", "user_email": ["a@example.com", ...]}. File upload: multipart/form-data with a \'file\' field (CSV or TXT, one email per line) plus a \'notification_id\' field. Emails that do not match any account are silently skipped.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAdminBatchAddNotificationAccounts', + path: '/admin/batch_add_notification_accounts', + tags: ['console'], + }) + .output(zPostAdminBatchAddNotificationAccountsResponse) + +export const batchAddNotificationAccounts = { + post, +} + +/** + * Delete an explore banner + */ +export const delete_ = oc + .route({ + description: 'Delete an explore banner', + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteAdminDeleteExploreBannerByBannerId', + path: '/admin/delete-explore-banner/{banner_id}', + successStatus: 204, + tags: ['console'], + }) + .input(z.object({ params: zDeleteAdminDeleteExploreBannerByBannerIdPath })) + .output(zDeleteAdminDeleteExploreBannerByBannerIdResponse) + +export const byBannerId = { + delete: delete_, +} + +export const deleteExploreBanner = { + byBannerId, +} + +/** + * Remove an app from the explore list + */ +export const delete2 = oc + .route({ + description: 'Remove an app from the explore list', + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteAdminInsertExploreAppsByAppId', + path: '/admin/insert-explore-apps/{app_id}', + successStatus: 204, + tags: ['console'], + }) + .input(z.object({ params: zDeleteAdminInsertExploreAppsByAppIdPath })) + .output(zDeleteAdminInsertExploreAppsByAppIdResponse) + +export const byAppId = { + delete: delete2, +} + +/** + * Insert or update an app in the explore list + */ +export const post2 = oc + .route({ + description: 'Insert or update an app in the explore list', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAdminInsertExploreApps', + path: '/admin/insert-explore-apps', + tags: ['console'], + }) + .input(z.object({ body: zPostAdminInsertExploreAppsBody })) + .output(zPostAdminInsertExploreAppsResponse) + +export const insertExploreApps = { + post: post2, + byAppId, +} + +/** + * Insert an explore banner + */ +export const post3 = oc + .route({ + description: 'Insert an explore banner', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAdminInsertExploreBanner', + path: '/admin/insert-explore-banner', + successStatus: 201, + tags: ['console'], + }) + .input(z.object({ body: zPostAdminInsertExploreBannerBody })) + .output(zPostAdminInsertExploreBannerResponse) + +export const insertExploreBanner = { + post: post3, +} + +/** + * Create or update an in-product notification. Supply notification_id to update an existing one; omit it to create a new one. Pass at least one language variant in contents (zh / en / jp). + */ +export const post4 = oc + .route({ + description: + 'Create or update an in-product notification. Supply notification_id to update an existing one; omit it to create a new one. Pass at least one language variant in contents (zh / en / jp).', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAdminUpsertNotification', + path: '/admin/upsert_notification', + tags: ['console'], + }) + .input(z.object({ body: zPostAdminUpsertNotificationBody })) + .output(zPostAdminUpsertNotificationResponse) + +export const upsertNotification = { + post: post4, +} + +export const admin = { + batchAddNotificationAccounts, + deleteExploreBanner, + insertExploreApps, + insertExploreBanner, + upsertNotification, +} + +export const contract = { + admin, +} diff --git a/packages/contracts/generated/api/console/admin/types.gen.ts b/packages/contracts/generated/api/console/admin/types.gen.ts new file mode 100644 index 0000000000..d3fef01791 --- /dev/null +++ b/packages/contracts/generated/api/console/admin/types.gen.ts @@ -0,0 +1,157 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type InsertExploreAppPayload = { + app_id: string + can_trial?: boolean + category: string + copyright?: string | null + custom_disclaimer?: string | null + desc?: string | null + language: string + position: number + privacy_policy?: string | null + trial_limit?: number +} + +export type InsertExploreBannerPayload = { + 'category': string + 'description': string + 'img-src': string + 'language'?: string + 'link': string + 'sort': number + 'title': string +} + +export type UpsertNotificationPayload = { + contents: Array + end_time?: string | null + frequency?: string + notification_id?: string | null + start_time?: string | null + status?: string +} + +export type LangContentPayload = { + body: string + lang: string + subtitle?: string | null + title: string + title_pic_url?: string | null +} + +export type PostAdminBatchAddNotificationAccountsData = { + body?: never + path?: never + query?: never + url: '/admin/batch_add_notification_accounts' +} + +export type PostAdminBatchAddNotificationAccountsResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAdminBatchAddNotificationAccountsResponse + = PostAdminBatchAddNotificationAccountsResponses[keyof PostAdminBatchAddNotificationAccountsResponses] + +export type DeleteAdminDeleteExploreBannerByBannerIdData = { + body?: never + path: { + banner_id: string + } + query?: never + url: '/admin/delete-explore-banner/{banner_id}' +} + +export type DeleteAdminDeleteExploreBannerByBannerIdResponses = { + 204: { + [key: string]: unknown + } +} + +export type DeleteAdminDeleteExploreBannerByBannerIdResponse + = DeleteAdminDeleteExploreBannerByBannerIdResponses[keyof DeleteAdminDeleteExploreBannerByBannerIdResponses] + +export type PostAdminInsertExploreAppsData = { + body: InsertExploreAppPayload + path?: never + query?: never + url: '/admin/insert-explore-apps' +} + +export type PostAdminInsertExploreAppsErrors = { + 404: { + [key: string]: unknown + } +} + +export type PostAdminInsertExploreAppsError + = PostAdminInsertExploreAppsErrors[keyof PostAdminInsertExploreAppsErrors] + +export type PostAdminInsertExploreAppsResponses = { + 200: { + [key: string]: unknown + } + 201: { + [key: string]: unknown + } +} + +export type PostAdminInsertExploreAppsResponse + = PostAdminInsertExploreAppsResponses[keyof PostAdminInsertExploreAppsResponses] + +export type DeleteAdminInsertExploreAppsByAppIdData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/admin/insert-explore-apps/{app_id}' +} + +export type DeleteAdminInsertExploreAppsByAppIdResponses = { + 204: { + [key: string]: unknown + } +} + +export type DeleteAdminInsertExploreAppsByAppIdResponse + = DeleteAdminInsertExploreAppsByAppIdResponses[keyof DeleteAdminInsertExploreAppsByAppIdResponses] + +export type PostAdminInsertExploreBannerData = { + body: InsertExploreBannerPayload + path?: never + query?: never + url: '/admin/insert-explore-banner' +} + +export type PostAdminInsertExploreBannerResponses = { + 201: { + [key: string]: unknown + } +} + +export type PostAdminInsertExploreBannerResponse + = PostAdminInsertExploreBannerResponses[keyof PostAdminInsertExploreBannerResponses] + +export type PostAdminUpsertNotificationData = { + body: UpsertNotificationPayload + path?: never + query?: never + url: '/admin/upsert_notification' +} + +export type PostAdminUpsertNotificationResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAdminUpsertNotificationResponse + = PostAdminUpsertNotificationResponses[keyof PostAdminUpsertNotificationResponses] diff --git a/packages/contracts/generated/api/console/admin/zod.gen.ts b/packages/contracts/generated/api/console/admin/zod.gen.ts new file mode 100644 index 0000000000..9ebed93e1e --- /dev/null +++ b/packages/contracts/generated/api/console/admin/zod.gen.ts @@ -0,0 +1,99 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * InsertExploreAppPayload + */ +export const zInsertExploreAppPayload = z.object({ + app_id: z.string(), + can_trial: z.boolean().optional().default(false), + category: z.string(), + copyright: z.string().nullish(), + custom_disclaimer: z.string().nullish(), + desc: z.string().nullish(), + language: z.string(), + position: z.int(), + privacy_policy: z.string().nullish(), + trial_limit: z.int().optional().default(0), +}) + +/** + * InsertExploreBannerPayload + */ +export const zInsertExploreBannerPayload = z.object({ + 'category': z.string(), + 'description': z.string(), + 'img-src': z.string(), + 'language': z.string().optional().default('en-US'), + 'link': z.string(), + 'sort': z.int(), + 'title': z.string(), +}) + +/** + * LangContentPayload + */ +export const zLangContentPayload = z.object({ + body: z.string(), + lang: z.string(), + subtitle: z.string().nullish(), + title: z.string(), + title_pic_url: z.string().nullish(), +}) + +/** + * UpsertNotificationPayload + */ +export const zUpsertNotificationPayload = z.object({ + contents: z.array(zLangContentPayload).min(1), + end_time: z.string().nullish(), + frequency: z.string().optional().default('once'), + notification_id: z.string().nullish(), + start_time: z.string().nullish(), + status: z.string().optional().default('active'), +}) + +/** + * Accounts added successfully + */ +export const zPostAdminBatchAddNotificationAccountsResponse = z.record(z.string(), z.unknown()) + +export const zDeleteAdminDeleteExploreBannerByBannerIdPath = z.object({ + banner_id: z.string(), +}) + +/** + * Banner deleted successfully + */ +export const zDeleteAdminDeleteExploreBannerByBannerIdResponse = z.record(z.string(), z.unknown()) + +export const zPostAdminInsertExploreAppsBody = zInsertExploreAppPayload + +export const zPostAdminInsertExploreAppsResponse = z.union([ + z.record(z.string(), z.unknown()), + z.record(z.string(), z.unknown()), +]) + +export const zDeleteAdminInsertExploreAppsByAppIdPath = z.object({ + app_id: z.string(), +}) + +/** + * App removed successfully + */ +export const zDeleteAdminInsertExploreAppsByAppIdResponse = z.record(z.string(), z.unknown()) + +export const zPostAdminInsertExploreBannerBody = zInsertExploreBannerPayload + +/** + * Banner inserted successfully + */ +export const zPostAdminInsertExploreBannerResponse = z.record(z.string(), z.unknown()) + +export const zPostAdminUpsertNotificationBody = zUpsertNotificationPayload + +/** + * Notification upserted successfully + */ +export const zPostAdminUpsertNotificationResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/api/console/all-workspaces/orpc.gen.ts b/packages/contracts/generated/api/console/all-workspaces/orpc.gen.ts new file mode 100644 index 0000000000..91ccdbc408 --- /dev/null +++ b/packages/contracts/generated/api/console/all-workspaces/orpc.gen.ts @@ -0,0 +1,25 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { zGetAllWorkspacesQuery, zGetAllWorkspacesResponse } from './zod.gen' + +export const get = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAllWorkspaces', + path: '/all-workspaces', + tags: ['console'], + }) + .input(z.object({ query: zGetAllWorkspacesQuery.optional() })) + .output(zGetAllWorkspacesResponse) + +export const allWorkspaces = { + get, +} + +export const contract = { + allWorkspaces, +} diff --git a/packages/contracts/generated/api/console/all-workspaces/types.gen.ts b/packages/contracts/generated/api/console/all-workspaces/types.gen.ts new file mode 100644 index 0000000000..2c30287835 --- /dev/null +++ b/packages/contracts/generated/api/console/all-workspaces/types.gen.ts @@ -0,0 +1,23 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type GetAllWorkspacesData = { + body?: never + path?: never + query?: { + limit?: number + page?: number + } + url: '/all-workspaces' +} + +export type GetAllWorkspacesResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetAllWorkspacesResponse = GetAllWorkspacesResponses[keyof GetAllWorkspacesResponses] diff --git a/packages/contracts/generated/api/console/all-workspaces/zod.gen.ts b/packages/contracts/generated/api/console/all-workspaces/zod.gen.ts new file mode 100644 index 0000000000..bdb5f0d132 --- /dev/null +++ b/packages/contracts/generated/api/console/all-workspaces/zod.gen.ts @@ -0,0 +1,13 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +export const zGetAllWorkspacesQuery = z.object({ + limit: z.int().gte(1).lte(100).optional().default(20), + page: z.int().gte(1).lte(99999).optional().default(1), +}) + +/** + * Success + */ +export const zGetAllWorkspacesResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/api/console/api-based-extension/orpc.gen.ts b/packages/contracts/generated/api/console/api-based-extension/orpc.gen.ts new file mode 100644 index 0000000000..b47ed17f34 --- /dev/null +++ b/packages/contracts/generated/api/console/api-based-extension/orpc.gen.ts @@ -0,0 +1,109 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zDeleteApiBasedExtensionByIdPath, + zDeleteApiBasedExtensionByIdResponse, + zGetApiBasedExtensionByIdPath, + zGetApiBasedExtensionByIdResponse, + zGetApiBasedExtensionResponse, + zPostApiBasedExtensionBody, + zPostApiBasedExtensionByIdBody, + zPostApiBasedExtensionByIdPath, + zPostApiBasedExtensionByIdResponse, + zPostApiBasedExtensionResponse, +} from './zod.gen' + +/** + * Delete API-based extension + */ +export const delete_ = oc + .route({ + description: 'Delete API-based extension', + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteApiBasedExtensionById', + path: '/api-based-extension/{id}', + successStatus: 204, + tags: ['console'], + }) + .input(z.object({ params: zDeleteApiBasedExtensionByIdPath })) + .output(zDeleteApiBasedExtensionByIdResponse) + +/** + * Get API-based extension by ID + */ +export const get = oc + .route({ + description: 'Get API-based extension by ID', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getApiBasedExtensionById', + path: '/api-based-extension/{id}', + tags: ['console'], + }) + .input(z.object({ params: zGetApiBasedExtensionByIdPath })) + .output(zGetApiBasedExtensionByIdResponse) + +/** + * Update API-based extension + */ +export const post = oc + .route({ + description: 'Update API-based extension', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postApiBasedExtensionById', + path: '/api-based-extension/{id}', + tags: ['console'], + }) + .input(z.object({ body: zPostApiBasedExtensionByIdBody, params: zPostApiBasedExtensionByIdPath })) + .output(zPostApiBasedExtensionByIdResponse) + +export const byId = { + delete: delete_, + get, + post, +} + +/** + * Get all API-based extensions for current tenant + */ +export const get2 = oc + .route({ + description: 'Get all API-based extensions for current tenant', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getApiBasedExtension', + path: '/api-based-extension', + tags: ['console'], + }) + .output(zGetApiBasedExtensionResponse) + +/** + * Create a new API-based extension + */ +export const post2 = oc + .route({ + description: 'Create a new API-based extension', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postApiBasedExtension', + path: '/api-based-extension', + successStatus: 201, + tags: ['console'], + }) + .input(z.object({ body: zPostApiBasedExtensionBody })) + .output(zPostApiBasedExtensionResponse) + +export const apiBasedExtension = { + get: get2, + post: post2, + byId, +} + +export const contract = { + apiBasedExtension, +} diff --git a/packages/contracts/generated/api/console/api-based-extension/types.gen.ts b/packages/contracts/generated/api/console/api-based-extension/types.gen.ts new file mode 100644 index 0000000000..f7b12f5b3f --- /dev/null +++ b/packages/contracts/generated/api/console/api-based-extension/types.gen.ts @@ -0,0 +1,99 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type ApiBasedExtensionListResponse = Array + +export type ApiBasedExtensionPayload = { + api_endpoint: string + api_key: string + name: string +} + +export type ApiBasedExtensionResponse = { + api_endpoint: string + api_key: string + created_at?: number | null + id: string + name: string +} + +export type GetApiBasedExtensionData = { + body?: never + path?: never + query?: never + url: '/api-based-extension' +} + +export type GetApiBasedExtensionResponses = { + 200: ApiBasedExtensionListResponse +} + +export type GetApiBasedExtensionResponse + = GetApiBasedExtensionResponses[keyof GetApiBasedExtensionResponses] + +export type PostApiBasedExtensionData = { + body: ApiBasedExtensionPayload + path?: never + query?: never + url: '/api-based-extension' +} + +export type PostApiBasedExtensionResponses = { + 201: ApiBasedExtensionResponse +} + +export type PostApiBasedExtensionResponse + = PostApiBasedExtensionResponses[keyof PostApiBasedExtensionResponses] + +export type DeleteApiBasedExtensionByIdData = { + body?: never + path: { + id: string + } + query?: never + url: '/api-based-extension/{id}' +} + +export type DeleteApiBasedExtensionByIdResponses = { + 204: { + [key: string]: unknown + } +} + +export type DeleteApiBasedExtensionByIdResponse + = DeleteApiBasedExtensionByIdResponses[keyof DeleteApiBasedExtensionByIdResponses] + +export type GetApiBasedExtensionByIdData = { + body?: never + path: { + id: string + } + query?: never + url: '/api-based-extension/{id}' +} + +export type GetApiBasedExtensionByIdResponses = { + 200: ApiBasedExtensionResponse +} + +export type GetApiBasedExtensionByIdResponse + = GetApiBasedExtensionByIdResponses[keyof GetApiBasedExtensionByIdResponses] + +export type PostApiBasedExtensionByIdData = { + body: ApiBasedExtensionPayload + path: { + id: string + } + query?: never + url: '/api-based-extension/{id}' +} + +export type PostApiBasedExtensionByIdResponses = { + 200: ApiBasedExtensionResponse +} + +export type PostApiBasedExtensionByIdResponse + = PostApiBasedExtensionByIdResponses[keyof PostApiBasedExtensionByIdResponses] diff --git a/packages/contracts/generated/api/console/api-based-extension/zod.gen.ts b/packages/contracts/generated/api/console/api-based-extension/zod.gen.ts new file mode 100644 index 0000000000..43f38a5214 --- /dev/null +++ b/packages/contracts/generated/api/console/api-based-extension/zod.gen.ts @@ -0,0 +1,66 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * APIBasedExtensionPayload + */ +export const zApiBasedExtensionPayload = z.object({ + api_endpoint: z.string(), + api_key: z.string(), + name: z.string(), +}) + +/** + * APIBasedExtensionResponse + */ +export const zApiBasedExtensionResponse = z.object({ + api_endpoint: z.string(), + api_key: z.string(), + created_at: z.int().nullish(), + id: z.string(), + name: z.string(), +}) + +export const zApiBasedExtensionListResponse = z.array(zApiBasedExtensionResponse) + +/** + * Success + */ +export const zGetApiBasedExtensionResponse = zApiBasedExtensionListResponse + +export const zPostApiBasedExtensionBody = zApiBasedExtensionPayload + +/** + * Extension created successfully + */ +export const zPostApiBasedExtensionResponse = zApiBasedExtensionResponse + +export const zDeleteApiBasedExtensionByIdPath = z.object({ + id: z.string(), +}) + +/** + * Extension deleted successfully + */ +export const zDeleteApiBasedExtensionByIdResponse = z.record(z.string(), z.unknown()) + +export const zGetApiBasedExtensionByIdPath = z.object({ + id: z.string(), +}) + +/** + * Success + */ +export const zGetApiBasedExtensionByIdResponse = zApiBasedExtensionResponse + +export const zPostApiBasedExtensionByIdBody = zApiBasedExtensionPayload + +export const zPostApiBasedExtensionByIdPath = z.object({ + id: z.string(), +}) + +/** + * Extension updated successfully + */ +export const zPostApiBasedExtensionByIdResponse = zApiBasedExtensionResponse diff --git a/packages/contracts/generated/api/console/api-key-auth/orpc.gen.ts b/packages/contracts/generated/api/console/api-key-auth/orpc.gen.ts new file mode 100644 index 0000000000..a113e39c15 --- /dev/null +++ b/packages/contracts/generated/api/console/api-key-auth/orpc.gen.ts @@ -0,0 +1,66 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zDeleteApiKeyAuthDataSourceByBindingIdPath, + zDeleteApiKeyAuthDataSourceByBindingIdResponse, + zGetApiKeyAuthDataSourceResponse, + zPostApiKeyAuthDataSourceBindingBody, + zPostApiKeyAuthDataSourceBindingResponse, +} from './zod.gen' + +export const post = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postApiKeyAuthDataSourceBinding', + path: '/api-key-auth/data-source/binding', + tags: ['console'], + }) + .input(z.object({ body: zPostApiKeyAuthDataSourceBindingBody })) + .output(zPostApiKeyAuthDataSourceBindingResponse) + +export const binding = { + post, +} + +export const delete_ = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteApiKeyAuthDataSourceByBindingId', + path: '/api-key-auth/data-source/{binding_id}', + tags: ['console'], + }) + .input(z.object({ params: zDeleteApiKeyAuthDataSourceByBindingIdPath })) + .output(zDeleteApiKeyAuthDataSourceByBindingIdResponse) + +export const byBindingId = { + delete: delete_, +} + +export const get = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getApiKeyAuthDataSource', + path: '/api-key-auth/data-source', + tags: ['console'], + }) + .output(zGetApiKeyAuthDataSourceResponse) + +export const dataSource = { + get, + binding, + byBindingId, +} + +export const apiKeyAuth = { + dataSource, +} + +export const contract = { + apiKeyAuth, +} diff --git a/packages/contracts/generated/api/console/api-key-auth/types.gen.ts b/packages/contracts/generated/api/console/api-key-auth/types.gen.ts new file mode 100644 index 0000000000..970b3a44e9 --- /dev/null +++ b/packages/contracts/generated/api/console/api-key-auth/types.gen.ts @@ -0,0 +1,63 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type ApiKeyAuthBindingPayload = { + category: string + credentials: { + [key: string]: unknown + } + provider: string +} + +export type GetApiKeyAuthDataSourceData = { + body?: never + path?: never + query?: never + url: '/api-key-auth/data-source' +} + +export type GetApiKeyAuthDataSourceResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetApiKeyAuthDataSourceResponse + = GetApiKeyAuthDataSourceResponses[keyof GetApiKeyAuthDataSourceResponses] + +export type PostApiKeyAuthDataSourceBindingData = { + body: ApiKeyAuthBindingPayload + path?: never + query?: never + url: '/api-key-auth/data-source/binding' +} + +export type PostApiKeyAuthDataSourceBindingResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostApiKeyAuthDataSourceBindingResponse + = PostApiKeyAuthDataSourceBindingResponses[keyof PostApiKeyAuthDataSourceBindingResponses] + +export type DeleteApiKeyAuthDataSourceByBindingIdData = { + body?: never + path: { + binding_id: string + } + query?: never + url: '/api-key-auth/data-source/{binding_id}' +} + +export type DeleteApiKeyAuthDataSourceByBindingIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type DeleteApiKeyAuthDataSourceByBindingIdResponse + = DeleteApiKeyAuthDataSourceByBindingIdResponses[keyof DeleteApiKeyAuthDataSourceByBindingIdResponses] diff --git a/packages/contracts/generated/api/console/api-key-auth/zod.gen.ts b/packages/contracts/generated/api/console/api-key-auth/zod.gen.ts new file mode 100644 index 0000000000..6c7f5ad19b --- /dev/null +++ b/packages/contracts/generated/api/console/api-key-auth/zod.gen.ts @@ -0,0 +1,33 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * ApiKeyAuthBindingPayload + */ +export const zApiKeyAuthBindingPayload = z.object({ + category: z.string(), + credentials: z.record(z.string(), z.unknown()), + provider: z.string(), +}) + +/** + * Success + */ +export const zGetApiKeyAuthDataSourceResponse = z.record(z.string(), z.unknown()) + +export const zPostApiKeyAuthDataSourceBindingBody = zApiKeyAuthBindingPayload + +/** + * Success + */ +export const zPostApiKeyAuthDataSourceBindingResponse = z.record(z.string(), z.unknown()) + +export const zDeleteApiKeyAuthDataSourceByBindingIdPath = z.object({ + binding_id: z.string(), +}) + +/** + * Success + */ +export const zDeleteApiKeyAuthDataSourceByBindingIdResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/api/console/app/orpc.gen.ts b/packages/contracts/generated/api/console/app/orpc.gen.ts new file mode 100644 index 0000000000..7ccb933866 --- /dev/null +++ b/packages/contracts/generated/api/console/app/orpc.gen.ts @@ -0,0 +1,33 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { zGetAppPromptTemplatesQuery, zGetAppPromptTemplatesResponse } from './zod.gen' + +/** + * Get advanced prompt templates based on app mode and model configuration + */ +export const get = oc + .route({ + description: 'Get advanced prompt templates based on app mode and model configuration', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppPromptTemplates', + path: '/app/prompt-templates', + tags: ['console'], + }) + .input(z.object({ query: zGetAppPromptTemplatesQuery })) + .output(zGetAppPromptTemplatesResponse) + +export const promptTemplates = { + get, +} + +export const app = { + promptTemplates, +} + +export const contract = { + app, +} diff --git a/packages/contracts/generated/api/console/app/types.gen.ts b/packages/contracts/generated/api/console/app/types.gen.ts new file mode 100644 index 0000000000..ad8334ad6d --- /dev/null +++ b/packages/contracts/generated/api/console/app/types.gen.ts @@ -0,0 +1,35 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type GetAppPromptTemplatesData = { + body?: never + path?: never + query: { + app_mode: string + has_context?: string + model_mode: string + model_name: string + } + url: '/app/prompt-templates' +} + +export type GetAppPromptTemplatesErrors = { + 400: { + [key: string]: unknown + } +} + +export type GetAppPromptTemplatesError + = GetAppPromptTemplatesErrors[keyof GetAppPromptTemplatesErrors] + +export type GetAppPromptTemplatesResponses = { + 200: Array<{ + [key: string]: unknown + }> +} + +export type GetAppPromptTemplatesResponse + = GetAppPromptTemplatesResponses[keyof GetAppPromptTemplatesResponses] diff --git a/packages/contracts/generated/api/console/app/zod.gen.ts b/packages/contracts/generated/api/console/app/zod.gen.ts new file mode 100644 index 0000000000..df13f62825 --- /dev/null +++ b/packages/contracts/generated/api/console/app/zod.gen.ts @@ -0,0 +1,15 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +export const zGetAppPromptTemplatesQuery = z.object({ + app_mode: z.string(), + has_context: z.string().optional().default('true'), + model_mode: z.string(), + model_name: z.string(), +}) + +/** + * Prompt templates retrieved successfully + */ +export const zGetAppPromptTemplatesResponse = z.array(z.record(z.string(), z.unknown())) diff --git a/packages/contracts/generated/api/console/apps/orpc.gen.ts b/packages/contracts/generated/api/console/apps/orpc.gen.ts new file mode 100644 index 0000000000..069976904d --- /dev/null +++ b/packages/contracts/generated/api/console/apps/orpc.gen.ts @@ -0,0 +1,3775 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zDeleteAppsByAppIdAnnotationsByAnnotationIdPath, + zDeleteAppsByAppIdAnnotationsByAnnotationIdResponse, + zDeleteAppsByAppIdAnnotationsPath, + zDeleteAppsByAppIdAnnotationsResponse, + zDeleteAppsByAppIdChatConversationsByConversationIdPath, + zDeleteAppsByAppIdChatConversationsByConversationIdResponse, + zDeleteAppsByAppIdCompletionConversationsByConversationIdPath, + zDeleteAppsByAppIdCompletionConversationsByConversationIdResponse, + zDeleteAppsByAppIdPath, + zDeleteAppsByAppIdResponse, + zDeleteAppsByAppIdTraceConfigBody, + zDeleteAppsByAppIdTraceConfigPath, + zDeleteAppsByAppIdTraceConfigResponse, + zDeleteAppsByAppIdWorkflowCommentsByCommentIdPath, + zDeleteAppsByAppIdWorkflowCommentsByCommentIdRepliesByReplyIdPath, + zDeleteAppsByAppIdWorkflowCommentsByCommentIdRepliesByReplyIdResponse, + zDeleteAppsByAppIdWorkflowCommentsByCommentIdResponse, + zDeleteAppsByAppIdWorkflowsByWorkflowIdPath, + zDeleteAppsByAppIdWorkflowsByWorkflowIdResponse, + zDeleteAppsByAppIdWorkflowsDraftNodesByNodeIdVariablesPath, + zDeleteAppsByAppIdWorkflowsDraftNodesByNodeIdVariablesResponse, + zDeleteAppsByAppIdWorkflowsDraftVariablesByVariableIdPath, + zDeleteAppsByAppIdWorkflowsDraftVariablesByVariableIdResponse, + zDeleteAppsByAppIdWorkflowsDraftVariablesPath, + zDeleteAppsByAppIdWorkflowsDraftVariablesResponse, + zDeleteAppsByResourceIdApiKeysByApiKeyIdPath, + zDeleteAppsByResourceIdApiKeysByApiKeyIdResponse, + zGetAppsByAppIdAdvancedChatWorkflowRunsCountPath, + zGetAppsByAppIdAdvancedChatWorkflowRunsCountQuery, + zGetAppsByAppIdAdvancedChatWorkflowRunsCountResponse, + zGetAppsByAppIdAdvancedChatWorkflowRunsPath, + zGetAppsByAppIdAdvancedChatWorkflowRunsQuery, + zGetAppsByAppIdAdvancedChatWorkflowRunsResponse, + zGetAppsByAppIdAgentLogsPath, + zGetAppsByAppIdAgentLogsQuery, + zGetAppsByAppIdAgentLogsResponse, + zGetAppsByAppIdAnnotationReplyByActionStatusByJobIdPath, + zGetAppsByAppIdAnnotationReplyByActionStatusByJobIdResponse, + zGetAppsByAppIdAnnotationsBatchImportStatusByJobIdPath, + zGetAppsByAppIdAnnotationsBatchImportStatusByJobIdResponse, + zGetAppsByAppIdAnnotationsByAnnotationIdHitHistoriesPath, + zGetAppsByAppIdAnnotationsByAnnotationIdHitHistoriesQuery, + zGetAppsByAppIdAnnotationsByAnnotationIdHitHistoriesResponse, + zGetAppsByAppIdAnnotationsCountPath, + zGetAppsByAppIdAnnotationsCountResponse, + zGetAppsByAppIdAnnotationSettingPath, + zGetAppsByAppIdAnnotationSettingResponse, + zGetAppsByAppIdAnnotationsExportPath, + zGetAppsByAppIdAnnotationsExportResponse, + zGetAppsByAppIdAnnotationsPath, + zGetAppsByAppIdAnnotationsQuery, + zGetAppsByAppIdAnnotationsResponse, + zGetAppsByAppIdChatConversationsByConversationIdPath, + zGetAppsByAppIdChatConversationsByConversationIdResponse, + zGetAppsByAppIdChatConversationsPath, + zGetAppsByAppIdChatConversationsQuery, + zGetAppsByAppIdChatConversationsResponse, + zGetAppsByAppIdChatMessagesByMessageIdSuggestedQuestionsPath, + zGetAppsByAppIdChatMessagesByMessageIdSuggestedQuestionsResponse, + zGetAppsByAppIdChatMessagesPath, + zGetAppsByAppIdChatMessagesQuery, + zGetAppsByAppIdChatMessagesResponse, + zGetAppsByAppIdCompletionConversationsByConversationIdPath, + zGetAppsByAppIdCompletionConversationsByConversationIdResponse, + zGetAppsByAppIdCompletionConversationsPath, + zGetAppsByAppIdCompletionConversationsQuery, + zGetAppsByAppIdCompletionConversationsResponse, + zGetAppsByAppIdConversationVariablesPath, + zGetAppsByAppIdConversationVariablesQuery, + zGetAppsByAppIdConversationVariablesResponse, + zGetAppsByAppIdExportPath, + zGetAppsByAppIdExportQuery, + zGetAppsByAppIdExportResponse, + zGetAppsByAppIdFeedbacksExportPath, + zGetAppsByAppIdFeedbacksExportQuery, + zGetAppsByAppIdFeedbacksExportResponse, + zGetAppsByAppIdMessagesByMessageIdPath, + zGetAppsByAppIdMessagesByMessageIdResponse, + zGetAppsByAppIdPath, + zGetAppsByAppIdResponse, + zGetAppsByAppIdServerPath, + zGetAppsByAppIdServerResponse, + zGetAppsByAppIdStatisticsAverageResponseTimePath, + zGetAppsByAppIdStatisticsAverageResponseTimeQuery, + zGetAppsByAppIdStatisticsAverageResponseTimeResponse, + zGetAppsByAppIdStatisticsAverageSessionInteractionsPath, + zGetAppsByAppIdStatisticsAverageSessionInteractionsQuery, + zGetAppsByAppIdStatisticsAverageSessionInteractionsResponse, + zGetAppsByAppIdStatisticsDailyConversationsPath, + zGetAppsByAppIdStatisticsDailyConversationsQuery, + zGetAppsByAppIdStatisticsDailyConversationsResponse, + zGetAppsByAppIdStatisticsDailyEndUsersPath, + zGetAppsByAppIdStatisticsDailyEndUsersQuery, + zGetAppsByAppIdStatisticsDailyEndUsersResponse, + zGetAppsByAppIdStatisticsDailyMessagesPath, + zGetAppsByAppIdStatisticsDailyMessagesQuery, + zGetAppsByAppIdStatisticsDailyMessagesResponse, + zGetAppsByAppIdStatisticsTokenCostsPath, + zGetAppsByAppIdStatisticsTokenCostsQuery, + zGetAppsByAppIdStatisticsTokenCostsResponse, + zGetAppsByAppIdStatisticsTokensPerSecondPath, + zGetAppsByAppIdStatisticsTokensPerSecondQuery, + zGetAppsByAppIdStatisticsTokensPerSecondResponse, + zGetAppsByAppIdStatisticsUserSatisfactionRatePath, + zGetAppsByAppIdStatisticsUserSatisfactionRateQuery, + zGetAppsByAppIdStatisticsUserSatisfactionRateResponse, + zGetAppsByAppIdTextToAudioVoicesPath, + zGetAppsByAppIdTextToAudioVoicesQuery, + zGetAppsByAppIdTextToAudioVoicesResponse, + zGetAppsByAppIdTraceConfigPath, + zGetAppsByAppIdTraceConfigQuery, + zGetAppsByAppIdTraceConfigResponse, + zGetAppsByAppIdTracePath, + zGetAppsByAppIdTraceResponse, + zGetAppsByAppIdTriggersPath, + zGetAppsByAppIdTriggersResponse, + zGetAppsByAppIdWorkflowAppLogsPath, + zGetAppsByAppIdWorkflowAppLogsQuery, + zGetAppsByAppIdWorkflowAppLogsResponse, + zGetAppsByAppIdWorkflowArchivedLogsPath, + zGetAppsByAppIdWorkflowArchivedLogsQuery, + zGetAppsByAppIdWorkflowArchivedLogsResponse, + zGetAppsByAppIdWorkflowCommentsByCommentIdPath, + zGetAppsByAppIdWorkflowCommentsByCommentIdResponse, + zGetAppsByAppIdWorkflowCommentsMentionUsersPath, + zGetAppsByAppIdWorkflowCommentsMentionUsersResponse, + zGetAppsByAppIdWorkflowCommentsPath, + zGetAppsByAppIdWorkflowCommentsResponse, + zGetAppsByAppIdWorkflowRunsByRunIdExportPath, + zGetAppsByAppIdWorkflowRunsByRunIdExportResponse, + zGetAppsByAppIdWorkflowRunsByRunIdNodeExecutionsPath, + zGetAppsByAppIdWorkflowRunsByRunIdNodeExecutionsResponse, + zGetAppsByAppIdWorkflowRunsByRunIdPath, + zGetAppsByAppIdWorkflowRunsByRunIdResponse, + zGetAppsByAppIdWorkflowRunsCountPath, + zGetAppsByAppIdWorkflowRunsCountQuery, + zGetAppsByAppIdWorkflowRunsCountResponse, + zGetAppsByAppIdWorkflowRunsPath, + zGetAppsByAppIdWorkflowRunsQuery, + zGetAppsByAppIdWorkflowRunsResponse, + zGetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypePath, + zGetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypeQuery, + zGetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypeResponse, + zGetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsPath, + zGetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsResponse, + zGetAppsByAppIdWorkflowsDraftConversationVariablesPath, + zGetAppsByAppIdWorkflowsDraftConversationVariablesResponse, + zGetAppsByAppIdWorkflowsDraftEnvironmentVariablesPath, + zGetAppsByAppIdWorkflowsDraftEnvironmentVariablesResponse, + zGetAppsByAppIdWorkflowsDraftNodesByNodeIdLastRunPath, + zGetAppsByAppIdWorkflowsDraftNodesByNodeIdLastRunResponse, + zGetAppsByAppIdWorkflowsDraftNodesByNodeIdVariablesPath, + zGetAppsByAppIdWorkflowsDraftNodesByNodeIdVariablesResponse, + zGetAppsByAppIdWorkflowsDraftPath, + zGetAppsByAppIdWorkflowsDraftResponse, + zGetAppsByAppIdWorkflowsDraftSystemVariablesPath, + zGetAppsByAppIdWorkflowsDraftSystemVariablesResponse, + zGetAppsByAppIdWorkflowsDraftVariablesByVariableIdPath, + zGetAppsByAppIdWorkflowsDraftVariablesByVariableIdResponse, + zGetAppsByAppIdWorkflowsDraftVariablesPath, + zGetAppsByAppIdWorkflowsDraftVariablesQuery, + zGetAppsByAppIdWorkflowsDraftVariablesResponse, + zGetAppsByAppIdWorkflowsPath, + zGetAppsByAppIdWorkflowsPublishPath, + zGetAppsByAppIdWorkflowsPublishResponse, + zGetAppsByAppIdWorkflowsQuery, + zGetAppsByAppIdWorkflowsResponse, + zGetAppsByAppIdWorkflowStatisticsAverageAppInteractionsPath, + zGetAppsByAppIdWorkflowStatisticsAverageAppInteractionsQuery, + zGetAppsByAppIdWorkflowStatisticsAverageAppInteractionsResponse, + zGetAppsByAppIdWorkflowStatisticsDailyConversationsPath, + zGetAppsByAppIdWorkflowStatisticsDailyConversationsQuery, + zGetAppsByAppIdWorkflowStatisticsDailyConversationsResponse, + zGetAppsByAppIdWorkflowStatisticsDailyTerminalsPath, + zGetAppsByAppIdWorkflowStatisticsDailyTerminalsQuery, + zGetAppsByAppIdWorkflowStatisticsDailyTerminalsResponse, + zGetAppsByAppIdWorkflowStatisticsTokenCostsPath, + zGetAppsByAppIdWorkflowStatisticsTokenCostsQuery, + zGetAppsByAppIdWorkflowStatisticsTokenCostsResponse, + zGetAppsByAppIdWorkflowsTriggersWebhookPath, + zGetAppsByAppIdWorkflowsTriggersWebhookQuery, + zGetAppsByAppIdWorkflowsTriggersWebhookResponse, + zGetAppsByResourceIdApiKeysPath, + zGetAppsByResourceIdApiKeysResponse, + zGetAppsByServerIdServerRefreshPath, + zGetAppsByServerIdServerRefreshResponse, + zGetAppsImportsByAppIdCheckDependenciesPath, + zGetAppsImportsByAppIdCheckDependenciesResponse, + zGetAppsQuery, + zGetAppsResponse, + zGetAppsWorkflowsOnlineUsersQuery, + zGetAppsWorkflowsOnlineUsersResponse, + zPatchAppsByAppIdTraceConfigBody, + zPatchAppsByAppIdTraceConfigPath, + zPatchAppsByAppIdTraceConfigResponse, + zPatchAppsByAppIdWorkflowsByWorkflowIdBody, + zPatchAppsByAppIdWorkflowsByWorkflowIdPath, + zPatchAppsByAppIdWorkflowsByWorkflowIdResponse, + zPatchAppsByAppIdWorkflowsDraftVariablesByVariableIdBody, + zPatchAppsByAppIdWorkflowsDraftVariablesByVariableIdPath, + zPatchAppsByAppIdWorkflowsDraftVariablesByVariableIdResponse, + zPostAppsBody, + zPostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormPreviewBody, + zPostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormPreviewPath, + zPostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormPreviewResponse, + zPostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormRunBody, + zPostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormRunPath, + zPostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormRunResponse, + zPostAppsByAppIdAdvancedChatWorkflowsDraftIterationNodesByNodeIdRunBody, + zPostAppsByAppIdAdvancedChatWorkflowsDraftIterationNodesByNodeIdRunPath, + zPostAppsByAppIdAdvancedChatWorkflowsDraftIterationNodesByNodeIdRunResponse, + zPostAppsByAppIdAdvancedChatWorkflowsDraftLoopNodesByNodeIdRunBody, + zPostAppsByAppIdAdvancedChatWorkflowsDraftLoopNodesByNodeIdRunPath, + zPostAppsByAppIdAdvancedChatWorkflowsDraftLoopNodesByNodeIdRunResponse, + zPostAppsByAppIdAdvancedChatWorkflowsDraftRunBody, + zPostAppsByAppIdAdvancedChatWorkflowsDraftRunPath, + zPostAppsByAppIdAdvancedChatWorkflowsDraftRunResponse, + zPostAppsByAppIdAnnotationReplyByActionBody, + zPostAppsByAppIdAnnotationReplyByActionPath, + zPostAppsByAppIdAnnotationReplyByActionResponse, + zPostAppsByAppIdAnnotationsBatchImportPath, + zPostAppsByAppIdAnnotationsBatchImportResponse, + zPostAppsByAppIdAnnotationsBody, + zPostAppsByAppIdAnnotationsByAnnotationIdBody, + zPostAppsByAppIdAnnotationsByAnnotationIdPath, + zPostAppsByAppIdAnnotationsByAnnotationIdResponse, + zPostAppsByAppIdAnnotationSettingsByAnnotationSettingIdBody, + zPostAppsByAppIdAnnotationSettingsByAnnotationSettingIdPath, + zPostAppsByAppIdAnnotationSettingsByAnnotationSettingIdResponse, + zPostAppsByAppIdAnnotationsPath, + zPostAppsByAppIdAnnotationsResponse, + zPostAppsByAppIdApiEnableBody, + zPostAppsByAppIdApiEnablePath, + zPostAppsByAppIdApiEnableResponse, + zPostAppsByAppIdAudioToTextPath, + zPostAppsByAppIdAudioToTextResponse, + zPostAppsByAppIdChatMessagesByTaskIdStopPath, + zPostAppsByAppIdChatMessagesByTaskIdStopResponse, + zPostAppsByAppIdCompletionMessagesBody, + zPostAppsByAppIdCompletionMessagesByTaskIdStopPath, + zPostAppsByAppIdCompletionMessagesByTaskIdStopResponse, + zPostAppsByAppIdCompletionMessagesPath, + zPostAppsByAppIdCompletionMessagesResponse, + zPostAppsByAppIdConvertToWorkflowBody, + zPostAppsByAppIdConvertToWorkflowPath, + zPostAppsByAppIdConvertToWorkflowResponse, + zPostAppsByAppIdCopyBody, + zPostAppsByAppIdCopyPath, + zPostAppsByAppIdCopyResponse, + zPostAppsByAppIdFeedbacksBody, + zPostAppsByAppIdFeedbacksPath, + zPostAppsByAppIdFeedbacksResponse, + zPostAppsByAppIdIconBody, + zPostAppsByAppIdIconPath, + zPostAppsByAppIdIconResponse, + zPostAppsByAppIdModelConfigBody, + zPostAppsByAppIdModelConfigPath, + zPostAppsByAppIdModelConfigResponse, + zPostAppsByAppIdNameBody, + zPostAppsByAppIdNamePath, + zPostAppsByAppIdNameResponse, + zPostAppsByAppIdPublishToCreatorsPlatformPath, + zPostAppsByAppIdPublishToCreatorsPlatformResponse, + zPostAppsByAppIdServerBody, + zPostAppsByAppIdServerPath, + zPostAppsByAppIdServerResponse, + zPostAppsByAppIdSiteAccessTokenResetPath, + zPostAppsByAppIdSiteAccessTokenResetResponse, + zPostAppsByAppIdSiteBody, + zPostAppsByAppIdSiteEnableBody, + zPostAppsByAppIdSiteEnablePath, + zPostAppsByAppIdSiteEnableResponse, + zPostAppsByAppIdSitePath, + zPostAppsByAppIdSiteResponse, + zPostAppsByAppIdTextToAudioBody, + zPostAppsByAppIdTextToAudioPath, + zPostAppsByAppIdTextToAudioResponse, + zPostAppsByAppIdTraceBody, + zPostAppsByAppIdTraceConfigBody, + zPostAppsByAppIdTraceConfigPath, + zPostAppsByAppIdTraceConfigResponse, + zPostAppsByAppIdTracePath, + zPostAppsByAppIdTraceResponse, + zPostAppsByAppIdTriggerEnableBody, + zPostAppsByAppIdTriggerEnablePath, + zPostAppsByAppIdTriggerEnableResponse, + zPostAppsByAppIdWorkflowCommentsBody, + zPostAppsByAppIdWorkflowCommentsByCommentIdRepliesBody, + zPostAppsByAppIdWorkflowCommentsByCommentIdRepliesPath, + zPostAppsByAppIdWorkflowCommentsByCommentIdRepliesResponse, + zPostAppsByAppIdWorkflowCommentsByCommentIdResolvePath, + zPostAppsByAppIdWorkflowCommentsByCommentIdResolveResponse, + zPostAppsByAppIdWorkflowCommentsPath, + zPostAppsByAppIdWorkflowCommentsResponse, + zPostAppsByAppIdWorkflowRunsTasksByTaskIdStopPath, + zPostAppsByAppIdWorkflowRunsTasksByTaskIdStopResponse, + zPostAppsByAppIdWorkflowsByWorkflowIdRestorePath, + zPostAppsByAppIdWorkflowsByWorkflowIdRestoreResponse, + zPostAppsByAppIdWorkflowsDraftBody, + zPostAppsByAppIdWorkflowsDraftConversationVariablesBody, + zPostAppsByAppIdWorkflowsDraftConversationVariablesPath, + zPostAppsByAppIdWorkflowsDraftConversationVariablesResponse, + zPostAppsByAppIdWorkflowsDraftEnvironmentVariablesBody, + zPostAppsByAppIdWorkflowsDraftEnvironmentVariablesPath, + zPostAppsByAppIdWorkflowsDraftEnvironmentVariablesResponse, + zPostAppsByAppIdWorkflowsDraftFeaturesBody, + zPostAppsByAppIdWorkflowsDraftFeaturesPath, + zPostAppsByAppIdWorkflowsDraftFeaturesResponse, + zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdDeliveryTestBody, + zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdDeliveryTestPath, + zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdDeliveryTestResponse, + zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormPreviewBody, + zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormPreviewPath, + zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormPreviewResponse, + zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormRunBody, + zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormRunPath, + zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormRunResponse, + zPostAppsByAppIdWorkflowsDraftIterationNodesByNodeIdRunBody, + zPostAppsByAppIdWorkflowsDraftIterationNodesByNodeIdRunPath, + zPostAppsByAppIdWorkflowsDraftIterationNodesByNodeIdRunResponse, + zPostAppsByAppIdWorkflowsDraftLoopNodesByNodeIdRunBody, + zPostAppsByAppIdWorkflowsDraftLoopNodesByNodeIdRunPath, + zPostAppsByAppIdWorkflowsDraftLoopNodesByNodeIdRunResponse, + zPostAppsByAppIdWorkflowsDraftNodesByNodeIdRunBody, + zPostAppsByAppIdWorkflowsDraftNodesByNodeIdRunPath, + zPostAppsByAppIdWorkflowsDraftNodesByNodeIdRunResponse, + zPostAppsByAppIdWorkflowsDraftNodesByNodeIdTriggerRunPath, + zPostAppsByAppIdWorkflowsDraftNodesByNodeIdTriggerRunResponse, + zPostAppsByAppIdWorkflowsDraftPath, + zPostAppsByAppIdWorkflowsDraftResponse, + zPostAppsByAppIdWorkflowsDraftRunBody, + zPostAppsByAppIdWorkflowsDraftRunPath, + zPostAppsByAppIdWorkflowsDraftRunResponse, + zPostAppsByAppIdWorkflowsDraftTriggerRunAllBody, + zPostAppsByAppIdWorkflowsDraftTriggerRunAllPath, + zPostAppsByAppIdWorkflowsDraftTriggerRunAllResponse, + zPostAppsByAppIdWorkflowsDraftTriggerRunBody, + zPostAppsByAppIdWorkflowsDraftTriggerRunPath, + zPostAppsByAppIdWorkflowsDraftTriggerRunResponse, + zPostAppsByAppIdWorkflowsPublishBody, + zPostAppsByAppIdWorkflowsPublishPath, + zPostAppsByAppIdWorkflowsPublishResponse, + zPostAppsByResourceIdApiKeysPath, + zPostAppsByResourceIdApiKeysResponse, + zPostAppsImportsBody, + zPostAppsImportsByImportIdConfirmPath, + zPostAppsImportsByImportIdConfirmResponse, + zPostAppsImportsResponse, + zPostAppsResponse, + zPutAppsByAppIdBody, + zPutAppsByAppIdPath, + zPutAppsByAppIdResponse, + zPutAppsByAppIdServerBody, + zPutAppsByAppIdServerPath, + zPutAppsByAppIdServerResponse, + zPutAppsByAppIdWorkflowCommentsByCommentIdBody, + zPutAppsByAppIdWorkflowCommentsByCommentIdPath, + zPutAppsByAppIdWorkflowCommentsByCommentIdRepliesByReplyIdBody, + zPutAppsByAppIdWorkflowCommentsByCommentIdRepliesByReplyIdPath, + zPutAppsByAppIdWorkflowCommentsByCommentIdRepliesByReplyIdResponse, + zPutAppsByAppIdWorkflowCommentsByCommentIdResponse, + zPutAppsByAppIdWorkflowsDraftVariablesByVariableIdResetPath, + zPutAppsByAppIdWorkflowsDraftVariablesByVariableIdResetResponse, +} from './zod.gen' + +export const get = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsImportsByAppIdCheckDependencies', + path: '/apps/imports/{app_id}/check-dependencies', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsImportsByAppIdCheckDependenciesPath })) + .output(zGetAppsImportsByAppIdCheckDependenciesResponse) + +export const checkDependencies = { + get, +} + +export const byAppId = { + checkDependencies, +} + +export const post = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsImportsByImportIdConfirm', + path: '/apps/imports/{import_id}/confirm', + tags: ['console'], + }) + .input(z.object({ params: zPostAppsImportsByImportIdConfirmPath })) + .output(zPostAppsImportsByImportIdConfirmResponse) + +export const confirm = { + post, +} + +export const byImportId = { + confirm, +} + +export const post2 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsImports', + path: '/apps/imports', + tags: ['console'], + }) + .input(z.object({ body: zPostAppsImportsBody })) + .output(zPostAppsImportsResponse) + +export const imports = { + post: post2, + byAppId, + byImportId, +} + +/** + * Get workflow online users + */ +export const get2 = oc + .route({ + description: 'Get workflow online users', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsWorkflowsOnlineUsers', + path: '/apps/workflows/online-users', + tags: ['console'], + }) + .input(z.object({ query: zGetAppsWorkflowsOnlineUsersQuery })) + .output(zGetAppsWorkflowsOnlineUsersResponse) + +export const onlineUsers = { + get: get2, +} + +export const workflows = { + onlineUsers, +} + +/** + * Get advanced chat workflow runs count statistics + * + * Get advanced chat workflow runs count statistics + */ +export const get3 = oc + .route({ + description: 'Get advanced chat workflow runs count statistics', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdAdvancedChatWorkflowRunsCount', + path: '/apps/{app_id}/advanced-chat/workflow-runs/count', + summary: 'Get advanced chat workflow runs count statistics', + tags: ['console'], + }) + .input( + z.object({ + params: zGetAppsByAppIdAdvancedChatWorkflowRunsCountPath, + query: zGetAppsByAppIdAdvancedChatWorkflowRunsCountQuery.optional(), + }), + ) + .output(zGetAppsByAppIdAdvancedChatWorkflowRunsCountResponse) + +export const count = { + get: get3, +} + +/** + * Get advanced chat app workflow run list + * + * Get advanced chat workflow run list + */ +export const get4 = oc + .route({ + description: 'Get advanced chat workflow run list', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdAdvancedChatWorkflowRuns', + path: '/apps/{app_id}/advanced-chat/workflow-runs', + summary: 'Get advanced chat app workflow run list', + tags: ['console'], + }) + .input( + z.object({ + params: zGetAppsByAppIdAdvancedChatWorkflowRunsPath, + query: zGetAppsByAppIdAdvancedChatWorkflowRunsQuery.optional(), + }), + ) + .output(zGetAppsByAppIdAdvancedChatWorkflowRunsResponse) + +export const workflowRuns = { + get: get4, + count, +} + +/** + * Preview human input form content and placeholders + * + * Get human input form preview for advanced chat workflow + */ +export const post3 = oc + .route({ + description: 'Get human input form preview for advanced chat workflow', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormPreview', + path: '/apps/{app_id}/advanced-chat/workflows/draft/human-input/nodes/{node_id}/form/preview', + summary: 'Preview human input form content and placeholders', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormPreviewBody, + params: zPostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormPreviewPath, + }), + ) + .output(zPostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormPreviewResponse) + +export const preview = { + post: post3, +} + +/** + * Submit human input form preview + * + * Submit human input form preview for advanced chat workflow + */ +export const post4 = oc + .route({ + description: 'Submit human input form preview for advanced chat workflow', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormRun', + path: '/apps/{app_id}/advanced-chat/workflows/draft/human-input/nodes/{node_id}/form/run', + summary: 'Submit human input form preview', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormRunBody, + params: zPostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormRunPath, + }), + ) + .output(zPostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormRunResponse) + +export const run = { + post: post4, +} + +export const form = { + preview, + run, +} + +export const byNodeId = { + form, +} + +export const nodes = { + byNodeId, +} + +export const humanInput = { + nodes, +} + +/** + * Run draft workflow iteration node + * + * Run draft workflow iteration node for advanced chat + */ +export const post5 = oc + .route({ + description: 'Run draft workflow iteration node for advanced chat', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdAdvancedChatWorkflowsDraftIterationNodesByNodeIdRun', + path: '/apps/{app_id}/advanced-chat/workflows/draft/iteration/nodes/{node_id}/run', + summary: 'Run draft workflow iteration node', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAppsByAppIdAdvancedChatWorkflowsDraftIterationNodesByNodeIdRunBody, + params: zPostAppsByAppIdAdvancedChatWorkflowsDraftIterationNodesByNodeIdRunPath, + }), + ) + .output(zPostAppsByAppIdAdvancedChatWorkflowsDraftIterationNodesByNodeIdRunResponse) + +export const run2 = { + post: post5, +} + +export const byNodeId2 = { + run: run2, +} + +export const nodes2 = { + byNodeId: byNodeId2, +} + +export const iteration = { + nodes: nodes2, +} + +/** + * Run draft workflow loop node + * + * Run draft workflow loop node for advanced chat + */ +export const post6 = oc + .route({ + description: 'Run draft workflow loop node for advanced chat', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdAdvancedChatWorkflowsDraftLoopNodesByNodeIdRun', + path: '/apps/{app_id}/advanced-chat/workflows/draft/loop/nodes/{node_id}/run', + summary: 'Run draft workflow loop node', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAppsByAppIdAdvancedChatWorkflowsDraftLoopNodesByNodeIdRunBody, + params: zPostAppsByAppIdAdvancedChatWorkflowsDraftLoopNodesByNodeIdRunPath, + }), + ) + .output(zPostAppsByAppIdAdvancedChatWorkflowsDraftLoopNodesByNodeIdRunResponse) + +export const run3 = { + post: post6, +} + +export const byNodeId3 = { + run: run3, +} + +export const nodes3 = { + byNodeId: byNodeId3, +} + +export const loop = { + nodes: nodes3, +} + +/** + * Run draft workflow + * + * Run draft workflow for advanced chat application + */ +export const post7 = oc + .route({ + description: 'Run draft workflow for advanced chat application', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdAdvancedChatWorkflowsDraftRun', + path: '/apps/{app_id}/advanced-chat/workflows/draft/run', + summary: 'Run draft workflow', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAppsByAppIdAdvancedChatWorkflowsDraftRunBody, + params: zPostAppsByAppIdAdvancedChatWorkflowsDraftRunPath, + }), + ) + .output(zPostAppsByAppIdAdvancedChatWorkflowsDraftRunResponse) + +export const run4 = { + post: post7, +} + +export const draft = { + humanInput, + iteration, + loop, + run: run4, +} + +export const workflows2 = { + draft, +} + +export const advancedChat = { + workflowRuns, + workflows: workflows2, +} + +/** + * Get agent logs + * + * Get agent execution logs for an application + */ +export const get5 = oc + .route({ + description: 'Get agent execution logs for an application', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdAgentLogs', + path: '/apps/{app_id}/agent/logs', + summary: 'Get agent logs', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByAppIdAgentLogsPath, query: zGetAppsByAppIdAgentLogsQuery })) + .output(zGetAppsByAppIdAgentLogsResponse) + +export const logs = { + get: get5, +} + +export const agent = { + logs, +} + +/** + * Get status of annotation reply action job + */ +export const get6 = oc + .route({ + description: 'Get status of annotation reply action job', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdAnnotationReplyByActionStatusByJobId', + path: '/apps/{app_id}/annotation-reply/{action}/status/{job_id}', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByAppIdAnnotationReplyByActionStatusByJobIdPath })) + .output(zGetAppsByAppIdAnnotationReplyByActionStatusByJobIdResponse) + +export const byJobId = { + get: get6, +} + +export const status = { + byJobId, +} + +/** + * Enable or disable annotation reply for an app + */ +export const post8 = oc + .route({ + description: 'Enable or disable annotation reply for an app', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdAnnotationReplyByAction', + path: '/apps/{app_id}/annotation-reply/{action}', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAppsByAppIdAnnotationReplyByActionBody, + params: zPostAppsByAppIdAnnotationReplyByActionPath, + }), + ) + .output(zPostAppsByAppIdAnnotationReplyByActionResponse) + +export const byAction = { + post: post8, + status, +} + +export const annotationReply = { + byAction, +} + +/** + * Get annotation settings for an app + */ +export const get7 = oc + .route({ + description: 'Get annotation settings for an app', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdAnnotationSetting', + path: '/apps/{app_id}/annotation-setting', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByAppIdAnnotationSettingPath })) + .output(zGetAppsByAppIdAnnotationSettingResponse) + +export const annotationSetting = { + get: get7, +} + +/** + * Update annotation settings for an app + */ +export const post9 = oc + .route({ + description: 'Update annotation settings for an app', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdAnnotationSettingsByAnnotationSettingId', + path: '/apps/{app_id}/annotation-settings/{annotation_setting_id}', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAppsByAppIdAnnotationSettingsByAnnotationSettingIdBody, + params: zPostAppsByAppIdAnnotationSettingsByAnnotationSettingIdPath, + }), + ) + .output(zPostAppsByAppIdAnnotationSettingsByAnnotationSettingIdResponse) + +export const byAnnotationSettingId = { + post: post9, +} + +export const annotationSettings = { + byAnnotationSettingId, +} + +/** + * Batch import annotations from CSV file with rate limiting and security checks + */ +export const post10 = oc + .route({ + description: 'Batch import annotations from CSV file with rate limiting and security checks', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdAnnotationsBatchImport', + path: '/apps/{app_id}/annotations/batch-import', + tags: ['console'], + }) + .input(z.object({ params: zPostAppsByAppIdAnnotationsBatchImportPath })) + .output(zPostAppsByAppIdAnnotationsBatchImportResponse) + +export const batchImport = { + post: post10, +} + +/** + * Get status of batch import job + */ +export const get8 = oc + .route({ + description: 'Get status of batch import job', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdAnnotationsBatchImportStatusByJobId', + path: '/apps/{app_id}/annotations/batch-import-status/{job_id}', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByAppIdAnnotationsBatchImportStatusByJobIdPath })) + .output(zGetAppsByAppIdAnnotationsBatchImportStatusByJobIdResponse) + +export const byJobId2 = { + get: get8, +} + +export const batchImportStatus = { + byJobId: byJobId2, +} + +/** + * Get count of message annotations for the app + */ +export const get9 = oc + .route({ + description: 'Get count of message annotations for the app', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdAnnotationsCount', + path: '/apps/{app_id}/annotations/count', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByAppIdAnnotationsCountPath })) + .output(zGetAppsByAppIdAnnotationsCountResponse) + +export const count2 = { + get: get9, +} + +/** + * Export all annotations for an app with CSV injection protection + */ +export const get10 = oc + .route({ + description: 'Export all annotations for an app with CSV injection protection', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdAnnotationsExport', + path: '/apps/{app_id}/annotations/export', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByAppIdAnnotationsExportPath })) + .output(zGetAppsByAppIdAnnotationsExportResponse) + +export const export_ = { + get: get10, +} + +/** + * Get hit histories for an annotation + */ +export const get11 = oc + .route({ + description: 'Get hit histories for an annotation', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdAnnotationsByAnnotationIdHitHistories', + path: '/apps/{app_id}/annotations/{annotation_id}/hit-histories', + tags: ['console'], + }) + .input( + z.object({ + params: zGetAppsByAppIdAnnotationsByAnnotationIdHitHistoriesPath, + query: zGetAppsByAppIdAnnotationsByAnnotationIdHitHistoriesQuery.optional(), + }), + ) + .output(zGetAppsByAppIdAnnotationsByAnnotationIdHitHistoriesResponse) + +export const hitHistories = { + get: get11, +} + +export const delete_ = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteAppsByAppIdAnnotationsByAnnotationId', + path: '/apps/{app_id}/annotations/{annotation_id}', + tags: ['console'], + }) + .input(z.object({ params: zDeleteAppsByAppIdAnnotationsByAnnotationIdPath })) + .output(zDeleteAppsByAppIdAnnotationsByAnnotationIdResponse) + +/** + * Update or delete an annotation + */ +export const post11 = oc + .route({ + description: 'Update or delete an annotation', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdAnnotationsByAnnotationId', + path: '/apps/{app_id}/annotations/{annotation_id}', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAppsByAppIdAnnotationsByAnnotationIdBody, + params: zPostAppsByAppIdAnnotationsByAnnotationIdPath, + }), + ) + .output(zPostAppsByAppIdAnnotationsByAnnotationIdResponse) + +export const byAnnotationId = { + delete: delete_, + post: post11, + hitHistories, +} + +export const delete2 = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteAppsByAppIdAnnotations', + path: '/apps/{app_id}/annotations', + tags: ['console'], + }) + .input(z.object({ params: zDeleteAppsByAppIdAnnotationsPath })) + .output(zDeleteAppsByAppIdAnnotationsResponse) + +/** + * Get annotations for an app with pagination + */ +export const get12 = oc + .route({ + description: 'Get annotations for an app with pagination', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdAnnotations', + path: '/apps/{app_id}/annotations', + tags: ['console'], + }) + .input( + z.object({ + params: zGetAppsByAppIdAnnotationsPath, + query: zGetAppsByAppIdAnnotationsQuery.optional(), + }), + ) + .output(zGetAppsByAppIdAnnotationsResponse) + +/** + * Create a new annotation for an app + */ +export const post12 = oc + .route({ + description: 'Create a new annotation for an app', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdAnnotations', + path: '/apps/{app_id}/annotations', + successStatus: 201, + tags: ['console'], + }) + .input( + z.object({ body: zPostAppsByAppIdAnnotationsBody, params: zPostAppsByAppIdAnnotationsPath }), + ) + .output(zPostAppsByAppIdAnnotationsResponse) + +export const annotations = { + delete: delete2, + get: get12, + post: post12, + batchImport, + batchImportStatus, + count: count2, + export: export_, + byAnnotationId, +} + +/** + * Enable or disable app API + */ +export const post13 = oc + .route({ + description: 'Enable or disable app API', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdApiEnable', + path: '/apps/{app_id}/api-enable', + tags: ['console'], + }) + .input(z.object({ body: zPostAppsByAppIdApiEnableBody, params: zPostAppsByAppIdApiEnablePath })) + .output(zPostAppsByAppIdApiEnableResponse) + +export const apiEnable = { + post: post13, +} + +/** + * Transcript audio to text for chat messages + */ +export const post14 = oc + .route({ + description: 'Transcript audio to text for chat messages', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdAudioToText', + path: '/apps/{app_id}/audio-to-text', + tags: ['console'], + }) + .input(z.object({ params: zPostAppsByAppIdAudioToTextPath })) + .output(zPostAppsByAppIdAudioToTextResponse) + +export const audioToText = { + post: post14, +} + +/** + * Delete a chat conversation + */ +export const delete3 = oc + .route({ + description: 'Delete a chat conversation', + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteAppsByAppIdChatConversationsByConversationId', + path: '/apps/{app_id}/chat-conversations/{conversation_id}', + successStatus: 204, + tags: ['console'], + }) + .input(z.object({ params: zDeleteAppsByAppIdChatConversationsByConversationIdPath })) + .output(zDeleteAppsByAppIdChatConversationsByConversationIdResponse) + +/** + * Get chat conversation details + */ +export const get13 = oc + .route({ + description: 'Get chat conversation details', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdChatConversationsByConversationId', + path: '/apps/{app_id}/chat-conversations/{conversation_id}', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByAppIdChatConversationsByConversationIdPath })) + .output(zGetAppsByAppIdChatConversationsByConversationIdResponse) + +export const byConversationId = { + delete: delete3, + get: get13, +} + +/** + * Get chat conversations with pagination, filtering and summary + */ +export const get14 = oc + .route({ + description: 'Get chat conversations with pagination, filtering and summary', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdChatConversations', + path: '/apps/{app_id}/chat-conversations', + tags: ['console'], + }) + .input( + z.object({ + params: zGetAppsByAppIdChatConversationsPath, + query: zGetAppsByAppIdChatConversationsQuery.optional(), + }), + ) + .output(zGetAppsByAppIdChatConversationsResponse) + +export const chatConversations = { + get: get14, + byConversationId, +} + +/** + * Get suggested questions for a message + */ +export const get15 = oc + .route({ + description: 'Get suggested questions for a message', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdChatMessagesByMessageIdSuggestedQuestions', + path: '/apps/{app_id}/chat-messages/{message_id}/suggested-questions', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByAppIdChatMessagesByMessageIdSuggestedQuestionsPath })) + .output(zGetAppsByAppIdChatMessagesByMessageIdSuggestedQuestionsResponse) + +export const suggestedQuestions = { + get: get15, +} + +export const byMessageId = { + suggestedQuestions, +} + +/** + * Stop a running chat message generation + */ +export const post15 = oc + .route({ + description: 'Stop a running chat message generation', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdChatMessagesByTaskIdStop', + path: '/apps/{app_id}/chat-messages/{task_id}/stop', + tags: ['console'], + }) + .input(z.object({ params: zPostAppsByAppIdChatMessagesByTaskIdStopPath })) + .output(zPostAppsByAppIdChatMessagesByTaskIdStopResponse) + +export const stop = { + post: post15, +} + +export const byTaskId = { + stop, +} + +/** + * Get chat messages for a conversation with pagination + */ +export const get16 = oc + .route({ + description: 'Get chat messages for a conversation with pagination', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdChatMessages', + path: '/apps/{app_id}/chat-messages', + tags: ['console'], + }) + .input( + z.object({ params: zGetAppsByAppIdChatMessagesPath, query: zGetAppsByAppIdChatMessagesQuery }), + ) + .output(zGetAppsByAppIdChatMessagesResponse) + +export const chatMessages = { + get: get16, + byMessageId, + byTaskId, +} + +/** + * Delete a completion conversation + */ +export const delete4 = oc + .route({ + description: 'Delete a completion conversation', + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteAppsByAppIdCompletionConversationsByConversationId', + path: '/apps/{app_id}/completion-conversations/{conversation_id}', + successStatus: 204, + tags: ['console'], + }) + .input(z.object({ params: zDeleteAppsByAppIdCompletionConversationsByConversationIdPath })) + .output(zDeleteAppsByAppIdCompletionConversationsByConversationIdResponse) + +/** + * Get completion conversation details with messages + */ +export const get17 = oc + .route({ + description: 'Get completion conversation details with messages', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdCompletionConversationsByConversationId', + path: '/apps/{app_id}/completion-conversations/{conversation_id}', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByAppIdCompletionConversationsByConversationIdPath })) + .output(zGetAppsByAppIdCompletionConversationsByConversationIdResponse) + +export const byConversationId2 = { + delete: delete4, + get: get17, +} + +/** + * Get completion conversations with pagination and filtering + */ +export const get18 = oc + .route({ + description: 'Get completion conversations with pagination and filtering', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdCompletionConversations', + path: '/apps/{app_id}/completion-conversations', + tags: ['console'], + }) + .input( + z.object({ + params: zGetAppsByAppIdCompletionConversationsPath, + query: zGetAppsByAppIdCompletionConversationsQuery.optional(), + }), + ) + .output(zGetAppsByAppIdCompletionConversationsResponse) + +export const completionConversations = { + get: get18, + byConversationId: byConversationId2, +} + +/** + * Stop a running completion message generation + */ +export const post16 = oc + .route({ + description: 'Stop a running completion message generation', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdCompletionMessagesByTaskIdStop', + path: '/apps/{app_id}/completion-messages/{task_id}/stop', + tags: ['console'], + }) + .input(z.object({ params: zPostAppsByAppIdCompletionMessagesByTaskIdStopPath })) + .output(zPostAppsByAppIdCompletionMessagesByTaskIdStopResponse) + +export const stop2 = { + post: post16, +} + +export const byTaskId2 = { + stop: stop2, +} + +/** + * Generate completion message for debugging + */ +export const post17 = oc + .route({ + description: 'Generate completion message for debugging', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdCompletionMessages', + path: '/apps/{app_id}/completion-messages', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAppsByAppIdCompletionMessagesBody, + params: zPostAppsByAppIdCompletionMessagesPath, + }), + ) + .output(zPostAppsByAppIdCompletionMessagesResponse) + +export const completionMessages = { + post: post17, + byTaskId: byTaskId2, +} + +/** + * Get conversation variables for an application + */ +export const get19 = oc + .route({ + description: 'Get conversation variables for an application', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdConversationVariables', + path: '/apps/{app_id}/conversation-variables', + tags: ['console'], + }) + .input( + z.object({ + params: zGetAppsByAppIdConversationVariablesPath, + query: zGetAppsByAppIdConversationVariablesQuery, + }), + ) + .output(zGetAppsByAppIdConversationVariablesResponse) + +export const conversationVariables = { + get: get19, +} + +/** + * Convert basic mode of chatbot app to workflow mode + * + * Convert application to workflow mode + * Convert expert mode of chatbot app to workflow mode + * Convert Completion App to Workflow App + */ +export const post18 = oc + .route({ + description: + 'Convert application to workflow mode\nConvert expert mode of chatbot app to workflow mode\nConvert Completion App to Workflow App', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdConvertToWorkflow', + path: '/apps/{app_id}/convert-to-workflow', + summary: 'Convert basic mode of chatbot app to workflow mode', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAppsByAppIdConvertToWorkflowBody, + params: zPostAppsByAppIdConvertToWorkflowPath, + }), + ) + .output(zPostAppsByAppIdConvertToWorkflowResponse) + +export const convertToWorkflow = { + post: post18, +} + +/** + * Copy app + * + * Create a copy of an existing application + */ +export const post19 = oc + .route({ + description: 'Create a copy of an existing application', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdCopy', + path: '/apps/{app_id}/copy', + successStatus: 201, + summary: 'Copy app', + tags: ['console'], + }) + .input(z.object({ body: zPostAppsByAppIdCopyBody, params: zPostAppsByAppIdCopyPath })) + .output(zPostAppsByAppIdCopyResponse) + +export const copy = { + post: post19, +} + +/** + * Export app + * + * Export application configuration as DSL + */ +export const get20 = oc + .route({ + description: 'Export application configuration as DSL', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdExport', + path: '/apps/{app_id}/export', + summary: 'Export app', + tags: ['console'], + }) + .input( + z.object({ params: zGetAppsByAppIdExportPath, query: zGetAppsByAppIdExportQuery.optional() }), + ) + .output(zGetAppsByAppIdExportResponse) + +export const export2 = { + get: get20, +} + +/** + * Export user feedback data for Google Sheets + */ +export const get21 = oc + .route({ + description: 'Export user feedback data for Google Sheets', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdFeedbacksExport', + path: '/apps/{app_id}/feedbacks/export', + tags: ['console'], + }) + .input( + z.object({ + params: zGetAppsByAppIdFeedbacksExportPath, + query: zGetAppsByAppIdFeedbacksExportQuery.optional(), + }), + ) + .output(zGetAppsByAppIdFeedbacksExportResponse) + +export const export3 = { + get: get21, +} + +/** + * Create or update message feedback (like/dislike) + */ +export const post20 = oc + .route({ + description: 'Create or update message feedback (like/dislike)', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdFeedbacks', + path: '/apps/{app_id}/feedbacks', + tags: ['console'], + }) + .input(z.object({ body: zPostAppsByAppIdFeedbacksBody, params: zPostAppsByAppIdFeedbacksPath })) + .output(zPostAppsByAppIdFeedbacksResponse) + +export const feedbacks = { + post: post20, + export: export3, +} + +/** + * Update application icon + */ +export const post21 = oc + .route({ + description: 'Update application icon', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdIcon', + path: '/apps/{app_id}/icon', + tags: ['console'], + }) + .input(z.object({ body: zPostAppsByAppIdIconBody, params: zPostAppsByAppIdIconPath })) + .output(zPostAppsByAppIdIconResponse) + +export const icon = { + post: post21, +} + +/** + * Get message details by ID + */ +export const get22 = oc + .route({ + description: 'Get message details by ID', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdMessagesByMessageId', + path: '/apps/{app_id}/messages/{message_id}', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByAppIdMessagesByMessageIdPath })) + .output(zGetAppsByAppIdMessagesByMessageIdResponse) + +export const byMessageId2 = { + get: get22, +} + +export const messages = { + byMessageId: byMessageId2, +} + +/** + * Modify app model config + * + * Update application model configuration + */ +export const post22 = oc + .route({ + description: 'Update application model configuration', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdModelConfig', + path: '/apps/{app_id}/model-config', + summary: 'Modify app model config', + tags: ['console'], + }) + .input( + z.object({ body: zPostAppsByAppIdModelConfigBody, params: zPostAppsByAppIdModelConfigPath }), + ) + .output(zPostAppsByAppIdModelConfigResponse) + +export const modelConfig = { + post: post22, +} + +/** + * Check if app name is available + */ +export const post23 = oc + .route({ + description: 'Check if app name is available', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdName', + path: '/apps/{app_id}/name', + tags: ['console'], + }) + .input(z.object({ body: zPostAppsByAppIdNameBody, params: zPostAppsByAppIdNamePath })) + .output(zPostAppsByAppIdNameResponse) + +export const name = { + post: post23, +} + +/** + * Publish app to Creators Platform + */ +export const post24 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdPublishToCreatorsPlatform', + path: '/apps/{app_id}/publish-to-creators-platform', + summary: 'Publish app to Creators Platform', + tags: ['console'], + }) + .input(z.object({ params: zPostAppsByAppIdPublishToCreatorsPlatformPath })) + .output(zPostAppsByAppIdPublishToCreatorsPlatformResponse) + +export const publishToCreatorsPlatform = { + post: post24, +} + +/** + * Get MCP server configuration for an application + */ +export const get23 = oc + .route({ + description: 'Get MCP server configuration for an application', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdServer', + path: '/apps/{app_id}/server', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByAppIdServerPath })) + .output(zGetAppsByAppIdServerResponse) + +/** + * Create MCP server configuration for an application + */ +export const post25 = oc + .route({ + description: 'Create MCP server configuration for an application', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdServer', + path: '/apps/{app_id}/server', + successStatus: 201, + tags: ['console'], + }) + .input(z.object({ body: zPostAppsByAppIdServerBody, params: zPostAppsByAppIdServerPath })) + .output(zPostAppsByAppIdServerResponse) + +/** + * Update MCP server configuration for an application + */ +export const put = oc + .route({ + description: 'Update MCP server configuration for an application', + inputStructure: 'detailed', + method: 'PUT', + operationId: 'putAppsByAppIdServer', + path: '/apps/{app_id}/server', + tags: ['console'], + }) + .input(z.object({ body: zPutAppsByAppIdServerBody, params: zPutAppsByAppIdServerPath })) + .output(zPutAppsByAppIdServerResponse) + +export const server = { + get: get23, + post: post25, + put, +} + +/** + * Reset access token for application site + */ +export const post26 = oc + .route({ + description: 'Reset access token for application site', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdSiteAccessTokenReset', + path: '/apps/{app_id}/site/access-token-reset', + tags: ['console'], + }) + .input(z.object({ params: zPostAppsByAppIdSiteAccessTokenResetPath })) + .output(zPostAppsByAppIdSiteAccessTokenResetResponse) + +export const accessTokenReset = { + post: post26, +} + +/** + * Update application site configuration + */ +export const post27 = oc + .route({ + description: 'Update application site configuration', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdSite', + path: '/apps/{app_id}/site', + tags: ['console'], + }) + .input(z.object({ body: zPostAppsByAppIdSiteBody, params: zPostAppsByAppIdSitePath })) + .output(zPostAppsByAppIdSiteResponse) + +export const site = { + post: post27, + accessTokenReset, +} + +/** + * Enable or disable app site + */ +export const post28 = oc + .route({ + description: 'Enable or disable app site', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdSiteEnable', + path: '/apps/{app_id}/site-enable', + tags: ['console'], + }) + .input(z.object({ body: zPostAppsByAppIdSiteEnableBody, params: zPostAppsByAppIdSiteEnablePath })) + .output(zPostAppsByAppIdSiteEnableResponse) + +export const siteEnable = { + post: post28, +} + +/** + * Get average response time statistics for an application + */ +export const get24 = oc + .route({ + description: 'Get average response time statistics for an application', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdStatisticsAverageResponseTime', + path: '/apps/{app_id}/statistics/average-response-time', + tags: ['console'], + }) + .input( + z.object({ + params: zGetAppsByAppIdStatisticsAverageResponseTimePath, + query: zGetAppsByAppIdStatisticsAverageResponseTimeQuery.optional(), + }), + ) + .output(zGetAppsByAppIdStatisticsAverageResponseTimeResponse) + +export const averageResponseTime = { + get: get24, +} + +/** + * Get average session interaction statistics for an application + */ +export const get25 = oc + .route({ + description: 'Get average session interaction statistics for an application', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdStatisticsAverageSessionInteractions', + path: '/apps/{app_id}/statistics/average-session-interactions', + tags: ['console'], + }) + .input( + z.object({ + params: zGetAppsByAppIdStatisticsAverageSessionInteractionsPath, + query: zGetAppsByAppIdStatisticsAverageSessionInteractionsQuery.optional(), + }), + ) + .output(zGetAppsByAppIdStatisticsAverageSessionInteractionsResponse) + +export const averageSessionInteractions = { + get: get25, +} + +/** + * Get daily conversation statistics for an application + */ +export const get26 = oc + .route({ + description: 'Get daily conversation statistics for an application', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdStatisticsDailyConversations', + path: '/apps/{app_id}/statistics/daily-conversations', + tags: ['console'], + }) + .input( + z.object({ + params: zGetAppsByAppIdStatisticsDailyConversationsPath, + query: zGetAppsByAppIdStatisticsDailyConversationsQuery.optional(), + }), + ) + .output(zGetAppsByAppIdStatisticsDailyConversationsResponse) + +export const dailyConversations = { + get: get26, +} + +/** + * Get daily terminal/end-user statistics for an application + */ +export const get27 = oc + .route({ + description: 'Get daily terminal/end-user statistics for an application', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdStatisticsDailyEndUsers', + path: '/apps/{app_id}/statistics/daily-end-users', + tags: ['console'], + }) + .input( + z.object({ + params: zGetAppsByAppIdStatisticsDailyEndUsersPath, + query: zGetAppsByAppIdStatisticsDailyEndUsersQuery.optional(), + }), + ) + .output(zGetAppsByAppIdStatisticsDailyEndUsersResponse) + +export const dailyEndUsers = { + get: get27, +} + +/** + * Get daily message statistics for an application + */ +export const get28 = oc + .route({ + description: 'Get daily message statistics for an application', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdStatisticsDailyMessages', + path: '/apps/{app_id}/statistics/daily-messages', + tags: ['console'], + }) + .input( + z.object({ + params: zGetAppsByAppIdStatisticsDailyMessagesPath, + query: zGetAppsByAppIdStatisticsDailyMessagesQuery.optional(), + }), + ) + .output(zGetAppsByAppIdStatisticsDailyMessagesResponse) + +export const dailyMessages = { + get: get28, +} + +/** + * Get daily token cost statistics for an application + */ +export const get29 = oc + .route({ + description: 'Get daily token cost statistics for an application', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdStatisticsTokenCosts', + path: '/apps/{app_id}/statistics/token-costs', + tags: ['console'], + }) + .input( + z.object({ + params: zGetAppsByAppIdStatisticsTokenCostsPath, + query: zGetAppsByAppIdStatisticsTokenCostsQuery.optional(), + }), + ) + .output(zGetAppsByAppIdStatisticsTokenCostsResponse) + +export const tokenCosts = { + get: get29, +} + +/** + * Get tokens per second statistics for an application + */ +export const get30 = oc + .route({ + description: 'Get tokens per second statistics for an application', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdStatisticsTokensPerSecond', + path: '/apps/{app_id}/statistics/tokens-per-second', + tags: ['console'], + }) + .input( + z.object({ + params: zGetAppsByAppIdStatisticsTokensPerSecondPath, + query: zGetAppsByAppIdStatisticsTokensPerSecondQuery.optional(), + }), + ) + .output(zGetAppsByAppIdStatisticsTokensPerSecondResponse) + +export const tokensPerSecond = { + get: get30, +} + +/** + * Get user satisfaction rate statistics for an application + */ +export const get31 = oc + .route({ + description: 'Get user satisfaction rate statistics for an application', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdStatisticsUserSatisfactionRate', + path: '/apps/{app_id}/statistics/user-satisfaction-rate', + tags: ['console'], + }) + .input( + z.object({ + params: zGetAppsByAppIdStatisticsUserSatisfactionRatePath, + query: zGetAppsByAppIdStatisticsUserSatisfactionRateQuery.optional(), + }), + ) + .output(zGetAppsByAppIdStatisticsUserSatisfactionRateResponse) + +export const userSatisfactionRate = { + get: get31, +} + +export const statistics = { + averageResponseTime, + averageSessionInteractions, + dailyConversations, + dailyEndUsers, + dailyMessages, + tokenCosts, + tokensPerSecond, + userSatisfactionRate, +} + +/** + * Get available TTS voices for a specific language + */ +export const get32 = oc + .route({ + description: 'Get available TTS voices for a specific language', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdTextToAudioVoices', + path: '/apps/{app_id}/text-to-audio/voices', + tags: ['console'], + }) + .input( + z.object({ + params: zGetAppsByAppIdTextToAudioVoicesPath, + query: zGetAppsByAppIdTextToAudioVoicesQuery, + }), + ) + .output(zGetAppsByAppIdTextToAudioVoicesResponse) + +export const voices = { + get: get32, +} + +/** + * Convert text to speech for chat messages + */ +export const post29 = oc + .route({ + description: 'Convert text to speech for chat messages', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdTextToAudio', + path: '/apps/{app_id}/text-to-audio', + tags: ['console'], + }) + .input( + z.object({ body: zPostAppsByAppIdTextToAudioBody, params: zPostAppsByAppIdTextToAudioPath }), + ) + .output(zPostAppsByAppIdTextToAudioResponse) + +export const textToAudio = { + post: post29, + voices, +} + +/** + * Get app trace + * + * Get app tracing configuration + */ +export const get33 = oc + .route({ + description: 'Get app tracing configuration', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdTrace', + path: '/apps/{app_id}/trace', + summary: 'Get app trace', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByAppIdTracePath })) + .output(zGetAppsByAppIdTraceResponse) + +/** + * Update app tracing configuration + */ +export const post30 = oc + .route({ + description: 'Update app tracing configuration', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdTrace', + path: '/apps/{app_id}/trace', + tags: ['console'], + }) + .input(z.object({ body: zPostAppsByAppIdTraceBody, params: zPostAppsByAppIdTracePath })) + .output(zPostAppsByAppIdTraceResponse) + +export const trace = { + get: get33, + post: post30, +} + +/** + * Delete an existing trace app configuration + * + * Delete an existing tracing configuration for an application + */ +export const delete5 = oc + .route({ + description: 'Delete an existing tracing configuration for an application', + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteAppsByAppIdTraceConfig', + path: '/apps/{app_id}/trace-config', + successStatus: 204, + summary: 'Delete an existing trace app configuration', + tags: ['console'], + }) + .input( + z.object({ + body: zDeleteAppsByAppIdTraceConfigBody, + params: zDeleteAppsByAppIdTraceConfigPath, + }), + ) + .output(zDeleteAppsByAppIdTraceConfigResponse) + +/** + * Get tracing configuration for an application + */ +export const get34 = oc + .route({ + description: 'Get tracing configuration for an application', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdTraceConfig', + path: '/apps/{app_id}/trace-config', + tags: ['console'], + }) + .input( + z.object({ params: zGetAppsByAppIdTraceConfigPath, query: zGetAppsByAppIdTraceConfigQuery }), + ) + .output(zGetAppsByAppIdTraceConfigResponse) + +/** + * Update an existing trace app configuration + * + * Update an existing tracing configuration for an application + */ +export const patch = oc + .route({ + description: 'Update an existing tracing configuration for an application', + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchAppsByAppIdTraceConfig', + path: '/apps/{app_id}/trace-config', + summary: 'Update an existing trace app configuration', + tags: ['console'], + }) + .input( + z.object({ body: zPatchAppsByAppIdTraceConfigBody, params: zPatchAppsByAppIdTraceConfigPath }), + ) + .output(zPatchAppsByAppIdTraceConfigResponse) + +/** + * Create a new trace app configuration + * + * Create a new tracing configuration for an application + */ +export const post31 = oc + .route({ + description: 'Create a new tracing configuration for an application', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdTraceConfig', + path: '/apps/{app_id}/trace-config', + successStatus: 201, + summary: 'Create a new trace app configuration', + tags: ['console'], + }) + .input( + z.object({ body: zPostAppsByAppIdTraceConfigBody, params: zPostAppsByAppIdTraceConfigPath }), + ) + .output(zPostAppsByAppIdTraceConfigResponse) + +export const traceConfig = { + delete: delete5, + get: get34, + patch, + post: post31, +} + +/** + * Update app trigger (enable/disable) + */ +export const post32 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdTriggerEnable', + path: '/apps/{app_id}/trigger-enable', + summary: 'Update app trigger (enable/disable)', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAppsByAppIdTriggerEnableBody, + params: zPostAppsByAppIdTriggerEnablePath, + }), + ) + .output(zPostAppsByAppIdTriggerEnableResponse) + +export const triggerEnable = { + post: post32, +} + +/** + * Get app triggers list + */ +export const get35 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdTriggers', + path: '/apps/{app_id}/triggers', + summary: 'Get app triggers list', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByAppIdTriggersPath })) + .output(zGetAppsByAppIdTriggersResponse) + +export const triggers = { + get: get35, +} + +/** + * Get workflow app logs + * + * Get workflow application execution logs + */ +export const get36 = oc + .route({ + description: 'Get workflow application execution logs', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdWorkflowAppLogs', + path: '/apps/{app_id}/workflow-app-logs', + summary: 'Get workflow app logs', + tags: ['console'], + }) + .input( + z.object({ + params: zGetAppsByAppIdWorkflowAppLogsPath, + query: zGetAppsByAppIdWorkflowAppLogsQuery.optional(), + }), + ) + .output(zGetAppsByAppIdWorkflowAppLogsResponse) + +export const workflowAppLogs = { + get: get36, +} + +/** + * Get workflow archived logs + * + * Get workflow archived execution logs + */ +export const get37 = oc + .route({ + description: 'Get workflow archived execution logs', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdWorkflowArchivedLogs', + path: '/apps/{app_id}/workflow-archived-logs', + summary: 'Get workflow archived logs', + tags: ['console'], + }) + .input( + z.object({ + params: zGetAppsByAppIdWorkflowArchivedLogsPath, + query: zGetAppsByAppIdWorkflowArchivedLogsQuery.optional(), + }), + ) + .output(zGetAppsByAppIdWorkflowArchivedLogsResponse) + +export const workflowArchivedLogs = { + get: get37, +} + +/** + * Get workflow runs count statistics + * + * Get workflow runs count statistics + */ +export const get38 = oc + .route({ + description: 'Get workflow runs count statistics', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdWorkflowRunsCount', + path: '/apps/{app_id}/workflow-runs/count', + summary: 'Get workflow runs count statistics', + tags: ['console'], + }) + .input( + z.object({ + params: zGetAppsByAppIdWorkflowRunsCountPath, + query: zGetAppsByAppIdWorkflowRunsCountQuery.optional(), + }), + ) + .output(zGetAppsByAppIdWorkflowRunsCountResponse) + +export const count3 = { + get: get38, +} + +/** + * Stop workflow task + * + * Stop running workflow task + */ +export const post33 = oc + .route({ + description: 'Stop running workflow task', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdWorkflowRunsTasksByTaskIdStop', + path: '/apps/{app_id}/workflow-runs/tasks/{task_id}/stop', + summary: 'Stop workflow task', + tags: ['console'], + }) + .input(z.object({ params: zPostAppsByAppIdWorkflowRunsTasksByTaskIdStopPath })) + .output(zPostAppsByAppIdWorkflowRunsTasksByTaskIdStopResponse) + +export const stop3 = { + post: post33, +} + +export const byTaskId3 = { + stop: stop3, +} + +export const tasks = { + byTaskId: byTaskId3, +} + +/** + * Generate a download URL for an archived workflow run. + */ +export const get39 = oc + .route({ + description: 'Generate a download URL for an archived workflow run.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdWorkflowRunsByRunIdExport', + path: '/apps/{app_id}/workflow-runs/{run_id}/export', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByAppIdWorkflowRunsByRunIdExportPath })) + .output(zGetAppsByAppIdWorkflowRunsByRunIdExportResponse) + +export const export4 = { + get: get39, +} + +/** + * Get workflow run node execution list + * + * Get workflow run node execution list + */ +export const get40 = oc + .route({ + description: 'Get workflow run node execution list', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdWorkflowRunsByRunIdNodeExecutions', + path: '/apps/{app_id}/workflow-runs/{run_id}/node-executions', + summary: 'Get workflow run node execution list', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByAppIdWorkflowRunsByRunIdNodeExecutionsPath })) + .output(zGetAppsByAppIdWorkflowRunsByRunIdNodeExecutionsResponse) + +export const nodeExecutions = { + get: get40, +} + +/** + * Get workflow run detail + * + * Get workflow run detail + */ +export const get41 = oc + .route({ + description: 'Get workflow run detail', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdWorkflowRunsByRunId', + path: '/apps/{app_id}/workflow-runs/{run_id}', + summary: 'Get workflow run detail', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByAppIdWorkflowRunsByRunIdPath })) + .output(zGetAppsByAppIdWorkflowRunsByRunIdResponse) + +export const byRunId = { + get: get41, + export: export4, + nodeExecutions, +} + +/** + * Get workflow run list + * + * Get workflow run list + */ +export const get42 = oc + .route({ + description: 'Get workflow run list', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdWorkflowRuns', + path: '/apps/{app_id}/workflow-runs', + summary: 'Get workflow run list', + tags: ['console'], + }) + .input( + z.object({ + params: zGetAppsByAppIdWorkflowRunsPath, + query: zGetAppsByAppIdWorkflowRunsQuery.optional(), + }), + ) + .output(zGetAppsByAppIdWorkflowRunsResponse) + +export const workflowRuns2 = { + get: get42, + count: count3, + tasks, + byRunId, +} + +/** + * Get all users in current tenant for mentions + * + * Get all users in current tenant for mentions + */ +export const get43 = oc + .route({ + description: 'Get all users in current tenant for mentions', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdWorkflowCommentsMentionUsers', + path: '/apps/{app_id}/workflow/comments/mention-users', + summary: 'Get all users in current tenant for mentions', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByAppIdWorkflowCommentsMentionUsersPath })) + .output(zGetAppsByAppIdWorkflowCommentsMentionUsersResponse) + +export const mentionUsers = { + get: get43, +} + +/** + * Delete a comment reply + * + * Delete a comment reply + */ +export const delete6 = oc + .route({ + description: 'Delete a comment reply', + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteAppsByAppIdWorkflowCommentsByCommentIdRepliesByReplyId', + path: '/apps/{app_id}/workflow/comments/{comment_id}/replies/{reply_id}', + successStatus: 204, + summary: 'Delete a comment reply', + tags: ['console'], + }) + .input(z.object({ params: zDeleteAppsByAppIdWorkflowCommentsByCommentIdRepliesByReplyIdPath })) + .output(zDeleteAppsByAppIdWorkflowCommentsByCommentIdRepliesByReplyIdResponse) + +/** + * Update a comment reply + * + * Update a comment reply + */ +export const put2 = oc + .route({ + description: 'Update a comment reply', + inputStructure: 'detailed', + method: 'PUT', + operationId: 'putAppsByAppIdWorkflowCommentsByCommentIdRepliesByReplyId', + path: '/apps/{app_id}/workflow/comments/{comment_id}/replies/{reply_id}', + summary: 'Update a comment reply', + tags: ['console'], + }) + .input( + z.object({ + body: zPutAppsByAppIdWorkflowCommentsByCommentIdRepliesByReplyIdBody, + params: zPutAppsByAppIdWorkflowCommentsByCommentIdRepliesByReplyIdPath, + }), + ) + .output(zPutAppsByAppIdWorkflowCommentsByCommentIdRepliesByReplyIdResponse) + +export const byReplyId = { + delete: delete6, + put: put2, +} + +/** + * Add a reply to a workflow comment + * + * Add a reply to a workflow comment + */ +export const post34 = oc + .route({ + description: 'Add a reply to a workflow comment', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdWorkflowCommentsByCommentIdReplies', + path: '/apps/{app_id}/workflow/comments/{comment_id}/replies', + successStatus: 201, + summary: 'Add a reply to a workflow comment', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAppsByAppIdWorkflowCommentsByCommentIdRepliesBody, + params: zPostAppsByAppIdWorkflowCommentsByCommentIdRepliesPath, + }), + ) + .output(zPostAppsByAppIdWorkflowCommentsByCommentIdRepliesResponse) + +export const replies = { + post: post34, + byReplyId, +} + +/** + * Resolve a workflow comment + * + * Resolve a workflow comment + */ +export const post35 = oc + .route({ + description: 'Resolve a workflow comment', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdWorkflowCommentsByCommentIdResolve', + path: '/apps/{app_id}/workflow/comments/{comment_id}/resolve', + summary: 'Resolve a workflow comment', + tags: ['console'], + }) + .input(z.object({ params: zPostAppsByAppIdWorkflowCommentsByCommentIdResolvePath })) + .output(zPostAppsByAppIdWorkflowCommentsByCommentIdResolveResponse) + +export const resolve = { + post: post35, +} + +/** + * Delete a workflow comment + * + * Delete a workflow comment + */ +export const delete7 = oc + .route({ + description: 'Delete a workflow comment', + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteAppsByAppIdWorkflowCommentsByCommentId', + path: '/apps/{app_id}/workflow/comments/{comment_id}', + successStatus: 204, + summary: 'Delete a workflow comment', + tags: ['console'], + }) + .input(z.object({ params: zDeleteAppsByAppIdWorkflowCommentsByCommentIdPath })) + .output(zDeleteAppsByAppIdWorkflowCommentsByCommentIdResponse) + +/** + * Get a specific workflow comment + * + * Get a specific workflow comment + */ +export const get44 = oc + .route({ + description: 'Get a specific workflow comment', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdWorkflowCommentsByCommentId', + path: '/apps/{app_id}/workflow/comments/{comment_id}', + summary: 'Get a specific workflow comment', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByAppIdWorkflowCommentsByCommentIdPath })) + .output(zGetAppsByAppIdWorkflowCommentsByCommentIdResponse) + +/** + * Update a workflow comment + * + * Update a workflow comment + */ +export const put3 = oc + .route({ + description: 'Update a workflow comment', + inputStructure: 'detailed', + method: 'PUT', + operationId: 'putAppsByAppIdWorkflowCommentsByCommentId', + path: '/apps/{app_id}/workflow/comments/{comment_id}', + summary: 'Update a workflow comment', + tags: ['console'], + }) + .input( + z.object({ + body: zPutAppsByAppIdWorkflowCommentsByCommentIdBody, + params: zPutAppsByAppIdWorkflowCommentsByCommentIdPath, + }), + ) + .output(zPutAppsByAppIdWorkflowCommentsByCommentIdResponse) + +export const byCommentId = { + delete: delete7, + get: get44, + put: put3, + replies, + resolve, +} + +/** + * Get all comments for a workflow + * + * Get all comments for a workflow + */ +export const get45 = oc + .route({ + description: 'Get all comments for a workflow', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdWorkflowComments', + path: '/apps/{app_id}/workflow/comments', + summary: 'Get all comments for a workflow', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByAppIdWorkflowCommentsPath })) + .output(zGetAppsByAppIdWorkflowCommentsResponse) + +/** + * Create a new workflow comment + * + * Create a new workflow comment + */ +export const post36 = oc + .route({ + description: 'Create a new workflow comment', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdWorkflowComments', + path: '/apps/{app_id}/workflow/comments', + successStatus: 201, + summary: 'Create a new workflow comment', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAppsByAppIdWorkflowCommentsBody, + params: zPostAppsByAppIdWorkflowCommentsPath, + }), + ) + .output(zPostAppsByAppIdWorkflowCommentsResponse) + +export const comments = { + get: get45, + post: post36, + mentionUsers, + byCommentId, +} + +/** + * Get workflow average app interaction statistics + */ +export const get46 = oc + .route({ + description: 'Get workflow average app interaction statistics', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdWorkflowStatisticsAverageAppInteractions', + path: '/apps/{app_id}/workflow/statistics/average-app-interactions', + tags: ['console'], + }) + .input( + z.object({ + params: zGetAppsByAppIdWorkflowStatisticsAverageAppInteractionsPath, + query: zGetAppsByAppIdWorkflowStatisticsAverageAppInteractionsQuery.optional(), + }), + ) + .output(zGetAppsByAppIdWorkflowStatisticsAverageAppInteractionsResponse) + +export const averageAppInteractions = { + get: get46, +} + +/** + * Get workflow daily runs statistics + */ +export const get47 = oc + .route({ + description: 'Get workflow daily runs statistics', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdWorkflowStatisticsDailyConversations', + path: '/apps/{app_id}/workflow/statistics/daily-conversations', + tags: ['console'], + }) + .input( + z.object({ + params: zGetAppsByAppIdWorkflowStatisticsDailyConversationsPath, + query: zGetAppsByAppIdWorkflowStatisticsDailyConversationsQuery.optional(), + }), + ) + .output(zGetAppsByAppIdWorkflowStatisticsDailyConversationsResponse) + +export const dailyConversations2 = { + get: get47, +} + +/** + * Get workflow daily terminals statistics + */ +export const get48 = oc + .route({ + description: 'Get workflow daily terminals statistics', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdWorkflowStatisticsDailyTerminals', + path: '/apps/{app_id}/workflow/statistics/daily-terminals', + tags: ['console'], + }) + .input( + z.object({ + params: zGetAppsByAppIdWorkflowStatisticsDailyTerminalsPath, + query: zGetAppsByAppIdWorkflowStatisticsDailyTerminalsQuery.optional(), + }), + ) + .output(zGetAppsByAppIdWorkflowStatisticsDailyTerminalsResponse) + +export const dailyTerminals = { + get: get48, +} + +/** + * Get workflow daily token cost statistics + */ +export const get49 = oc + .route({ + description: 'Get workflow daily token cost statistics', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdWorkflowStatisticsTokenCosts', + path: '/apps/{app_id}/workflow/statistics/token-costs', + tags: ['console'], + }) + .input( + z.object({ + params: zGetAppsByAppIdWorkflowStatisticsTokenCostsPath, + query: zGetAppsByAppIdWorkflowStatisticsTokenCostsQuery.optional(), + }), + ) + .output(zGetAppsByAppIdWorkflowStatisticsTokenCostsResponse) + +export const tokenCosts2 = { + get: get49, +} + +export const statistics2 = { + averageAppInteractions, + dailyConversations: dailyConversations2, + dailyTerminals, + tokenCosts: tokenCosts2, +} + +export const workflow = { + comments, + statistics: statistics2, +} + +/** + * Get default block config + * + * Get default block configuration by type + */ +export const get50 = oc + .route({ + description: 'Get default block configuration by type', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsByBlockType', + path: '/apps/{app_id}/workflows/default-workflow-block-configs/{block_type}', + summary: 'Get default block config', + tags: ['console'], + }) + .input( + z.object({ + params: zGetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypePath, + query: zGetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypeQuery.optional(), + }), + ) + .output(zGetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypeResponse) + +export const byBlockType = { + get: get50, +} + +/** + * Get default block config + * + * Get default block configurations for workflow + */ +export const get51 = oc + .route({ + description: 'Get default block configurations for workflow', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdWorkflowsDefaultWorkflowBlockConfigs', + path: '/apps/{app_id}/workflows/default-workflow-block-configs', + summary: 'Get default block config', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsPath })) + .output(zGetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsResponse) + +export const defaultWorkflowBlockConfigs = { + get: get51, + byBlockType, +} + +/** + * Get conversation variables for workflow + */ +export const get52 = oc + .route({ + description: 'Get conversation variables for workflow', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdWorkflowsDraftConversationVariables', + path: '/apps/{app_id}/workflows/draft/conversation-variables', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByAppIdWorkflowsDraftConversationVariablesPath })) + .output(zGetAppsByAppIdWorkflowsDraftConversationVariablesResponse) + +/** + * Update conversation variables for workflow draft + */ +export const post37 = oc + .route({ + description: 'Update conversation variables for workflow draft', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdWorkflowsDraftConversationVariables', + path: '/apps/{app_id}/workflows/draft/conversation-variables', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAppsByAppIdWorkflowsDraftConversationVariablesBody, + params: zPostAppsByAppIdWorkflowsDraftConversationVariablesPath, + }), + ) + .output(zPostAppsByAppIdWorkflowsDraftConversationVariablesResponse) + +export const conversationVariables2 = { + get: get52, + post: post37, +} + +/** + * Get draft workflow + * + * Get environment variables for workflow + */ +export const get53 = oc + .route({ + description: 'Get environment variables for workflow', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdWorkflowsDraftEnvironmentVariables', + path: '/apps/{app_id}/workflows/draft/environment-variables', + summary: 'Get draft workflow', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByAppIdWorkflowsDraftEnvironmentVariablesPath })) + .output(zGetAppsByAppIdWorkflowsDraftEnvironmentVariablesResponse) + +/** + * Update environment variables for workflow draft + */ +export const post38 = oc + .route({ + description: 'Update environment variables for workflow draft', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdWorkflowsDraftEnvironmentVariables', + path: '/apps/{app_id}/workflows/draft/environment-variables', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAppsByAppIdWorkflowsDraftEnvironmentVariablesBody, + params: zPostAppsByAppIdWorkflowsDraftEnvironmentVariablesPath, + }), + ) + .output(zPostAppsByAppIdWorkflowsDraftEnvironmentVariablesResponse) + +export const environmentVariables = { + get: get53, + post: post38, +} + +/** + * Update draft workflow features + */ +export const post39 = oc + .route({ + description: 'Update draft workflow features', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdWorkflowsDraftFeatures', + path: '/apps/{app_id}/workflows/draft/features', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAppsByAppIdWorkflowsDraftFeaturesBody, + params: zPostAppsByAppIdWorkflowsDraftFeaturesPath, + }), + ) + .output(zPostAppsByAppIdWorkflowsDraftFeaturesResponse) + +export const features = { + post: post39, +} + +/** + * Test human input delivery + * + * Test human input delivery for workflow + */ +export const post40 = oc + .route({ + description: 'Test human input delivery for workflow', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdDeliveryTest', + path: '/apps/{app_id}/workflows/draft/human-input/nodes/{node_id}/delivery-test', + summary: 'Test human input delivery', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdDeliveryTestBody, + params: zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdDeliveryTestPath, + }), + ) + .output(zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdDeliveryTestResponse) + +export const deliveryTest = { + post: post40, +} + +/** + * Preview human input form content and placeholders + * + * Get human input form preview for workflow + */ +export const post41 = oc + .route({ + description: 'Get human input form preview for workflow', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormPreview', + path: '/apps/{app_id}/workflows/draft/human-input/nodes/{node_id}/form/preview', + summary: 'Preview human input form content and placeholders', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormPreviewBody, + params: zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormPreviewPath, + }), + ) + .output(zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormPreviewResponse) + +export const preview2 = { + post: post41, +} + +/** + * Submit human input form preview + * + * Submit human input form preview for workflow + */ +export const post42 = oc + .route({ + description: 'Submit human input form preview for workflow', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormRun', + path: '/apps/{app_id}/workflows/draft/human-input/nodes/{node_id}/form/run', + summary: 'Submit human input form preview', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormRunBody, + params: zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormRunPath, + }), + ) + .output(zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormRunResponse) + +export const run5 = { + post: post42, +} + +export const form2 = { + preview: preview2, + run: run5, +} + +export const byNodeId4 = { + deliveryTest, + form: form2, +} + +export const nodes4 = { + byNodeId: byNodeId4, +} + +export const humanInput2 = { + nodes: nodes4, +} + +/** + * Run draft workflow iteration node + * + * Run draft workflow iteration node + */ +export const post43 = oc + .route({ + description: 'Run draft workflow iteration node', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdWorkflowsDraftIterationNodesByNodeIdRun', + path: '/apps/{app_id}/workflows/draft/iteration/nodes/{node_id}/run', + summary: 'Run draft workflow iteration node', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAppsByAppIdWorkflowsDraftIterationNodesByNodeIdRunBody, + params: zPostAppsByAppIdWorkflowsDraftIterationNodesByNodeIdRunPath, + }), + ) + .output(zPostAppsByAppIdWorkflowsDraftIterationNodesByNodeIdRunResponse) + +export const run6 = { + post: post43, +} + +export const byNodeId5 = { + run: run6, +} + +export const nodes5 = { + byNodeId: byNodeId5, +} + +export const iteration2 = { + nodes: nodes5, +} + +/** + * Run draft workflow loop node + * + * Run draft workflow loop node + */ +export const post44 = oc + .route({ + description: 'Run draft workflow loop node', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdWorkflowsDraftLoopNodesByNodeIdRun', + path: '/apps/{app_id}/workflows/draft/loop/nodes/{node_id}/run', + summary: 'Run draft workflow loop node', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAppsByAppIdWorkflowsDraftLoopNodesByNodeIdRunBody, + params: zPostAppsByAppIdWorkflowsDraftLoopNodesByNodeIdRunPath, + }), + ) + .output(zPostAppsByAppIdWorkflowsDraftLoopNodesByNodeIdRunResponse) + +export const run7 = { + post: post44, +} + +export const byNodeId6 = { + run: run7, +} + +export const nodes6 = { + byNodeId: byNodeId6, +} + +export const loop2 = { + nodes: nodes6, +} + +/** + * Get last run result for draft workflow node + */ +export const get54 = oc + .route({ + description: 'Get last run result for draft workflow node', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdWorkflowsDraftNodesByNodeIdLastRun', + path: '/apps/{app_id}/workflows/draft/nodes/{node_id}/last-run', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByAppIdWorkflowsDraftNodesByNodeIdLastRunPath })) + .output(zGetAppsByAppIdWorkflowsDraftNodesByNodeIdLastRunResponse) + +export const lastRun = { + get: get54, +} + +/** + * Run draft workflow node + * + * Run draft workflow node + */ +export const post45 = oc + .route({ + description: 'Run draft workflow node', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdWorkflowsDraftNodesByNodeIdRun', + path: '/apps/{app_id}/workflows/draft/nodes/{node_id}/run', + summary: 'Run draft workflow node', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAppsByAppIdWorkflowsDraftNodesByNodeIdRunBody, + params: zPostAppsByAppIdWorkflowsDraftNodesByNodeIdRunPath, + }), + ) + .output(zPostAppsByAppIdWorkflowsDraftNodesByNodeIdRunResponse) + +export const run8 = { + post: post45, +} + +/** + * Poll for trigger events and execute single node when event arrives + * + * Poll for trigger events and execute single node when event arrives + */ +export const post46 = oc + .route({ + description: 'Poll for trigger events and execute single node when event arrives', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdWorkflowsDraftNodesByNodeIdTriggerRun', + path: '/apps/{app_id}/workflows/draft/nodes/{node_id}/trigger/run', + summary: 'Poll for trigger events and execute single node when event arrives', + tags: ['console'], + }) + .input(z.object({ params: zPostAppsByAppIdWorkflowsDraftNodesByNodeIdTriggerRunPath })) + .output(zPostAppsByAppIdWorkflowsDraftNodesByNodeIdTriggerRunResponse) + +export const run9 = { + post: post46, +} + +export const trigger = { + run: run9, +} + +/** + * Delete all variables for a specific node + */ +export const delete8 = oc + .route({ + description: 'Delete all variables for a specific node', + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteAppsByAppIdWorkflowsDraftNodesByNodeIdVariables', + path: '/apps/{app_id}/workflows/draft/nodes/{node_id}/variables', + successStatus: 204, + tags: ['console'], + }) + .input(z.object({ params: zDeleteAppsByAppIdWorkflowsDraftNodesByNodeIdVariablesPath })) + .output(zDeleteAppsByAppIdWorkflowsDraftNodesByNodeIdVariablesResponse) + +/** + * Get variables for a specific node + */ +export const get55 = oc + .route({ + description: 'Get variables for a specific node', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdWorkflowsDraftNodesByNodeIdVariables', + path: '/apps/{app_id}/workflows/draft/nodes/{node_id}/variables', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByAppIdWorkflowsDraftNodesByNodeIdVariablesPath })) + .output(zGetAppsByAppIdWorkflowsDraftNodesByNodeIdVariablesResponse) + +export const variables = { + delete: delete8, + get: get55, +} + +export const byNodeId7 = { + lastRun, + run: run8, + trigger, + variables, +} + +export const nodes7 = { + byNodeId: byNodeId7, +} + +/** + * Run draft workflow + * + * Run draft workflow + */ +export const post47 = oc + .route({ + description: 'Run draft workflow', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdWorkflowsDraftRun', + path: '/apps/{app_id}/workflows/draft/run', + summary: 'Run draft workflow', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAppsByAppIdWorkflowsDraftRunBody, + params: zPostAppsByAppIdWorkflowsDraftRunPath, + }), + ) + .output(zPostAppsByAppIdWorkflowsDraftRunResponse) + +export const run10 = { + post: post47, +} + +/** + * Get system variables for workflow + */ +export const get56 = oc + .route({ + description: 'Get system variables for workflow', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdWorkflowsDraftSystemVariables', + path: '/apps/{app_id}/workflows/draft/system-variables', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByAppIdWorkflowsDraftSystemVariablesPath })) + .output(zGetAppsByAppIdWorkflowsDraftSystemVariablesResponse) + +export const systemVariables = { + get: get56, +} + +/** + * Poll for trigger events and execute full workflow when event arrives + * + * Poll for trigger events and execute full workflow when event arrives + */ +export const post48 = oc + .route({ + description: 'Poll for trigger events and execute full workflow when event arrives', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdWorkflowsDraftTriggerRun', + path: '/apps/{app_id}/workflows/draft/trigger/run', + summary: 'Poll for trigger events and execute full workflow when event arrives', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAppsByAppIdWorkflowsDraftTriggerRunBody, + params: zPostAppsByAppIdWorkflowsDraftTriggerRunPath, + }), + ) + .output(zPostAppsByAppIdWorkflowsDraftTriggerRunResponse) + +export const run11 = { + post: post48, +} + +/** + * Full workflow debug when the start node is a trigger + * + * Full workflow debug when the start node is a trigger + */ +export const post49 = oc + .route({ + description: 'Full workflow debug when the start node is a trigger', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdWorkflowsDraftTriggerRunAll', + path: '/apps/{app_id}/workflows/draft/trigger/run-all', + summary: 'Full workflow debug when the start node is a trigger', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAppsByAppIdWorkflowsDraftTriggerRunAllBody, + params: zPostAppsByAppIdWorkflowsDraftTriggerRunAllPath, + }), + ) + .output(zPostAppsByAppIdWorkflowsDraftTriggerRunAllResponse) + +export const runAll = { + post: post49, +} + +export const trigger2 = { + run: run11, + runAll, +} + +/** + * Reset a workflow variable to its default value + */ +export const put4 = oc + .route({ + description: 'Reset a workflow variable to its default value', + inputStructure: 'detailed', + method: 'PUT', + operationId: 'putAppsByAppIdWorkflowsDraftVariablesByVariableIdReset', + path: '/apps/{app_id}/workflows/draft/variables/{variable_id}/reset', + tags: ['console'], + }) + .input(z.object({ params: zPutAppsByAppIdWorkflowsDraftVariablesByVariableIdResetPath })) + .output(zPutAppsByAppIdWorkflowsDraftVariablesByVariableIdResetResponse) + +export const reset = { + put: put4, +} + +/** + * Delete a workflow variable + */ +export const delete9 = oc + .route({ + description: 'Delete a workflow variable', + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteAppsByAppIdWorkflowsDraftVariablesByVariableId', + path: '/apps/{app_id}/workflows/draft/variables/{variable_id}', + successStatus: 204, + tags: ['console'], + }) + .input(z.object({ params: zDeleteAppsByAppIdWorkflowsDraftVariablesByVariableIdPath })) + .output(zDeleteAppsByAppIdWorkflowsDraftVariablesByVariableIdResponse) + +/** + * Get a specific workflow variable + */ +export const get57 = oc + .route({ + description: 'Get a specific workflow variable', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdWorkflowsDraftVariablesByVariableId', + path: '/apps/{app_id}/workflows/draft/variables/{variable_id}', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByAppIdWorkflowsDraftVariablesByVariableIdPath })) + .output(zGetAppsByAppIdWorkflowsDraftVariablesByVariableIdResponse) + +/** + * Update a workflow variable + */ +export const patch2 = oc + .route({ + description: 'Update a workflow variable', + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchAppsByAppIdWorkflowsDraftVariablesByVariableId', + path: '/apps/{app_id}/workflows/draft/variables/{variable_id}', + tags: ['console'], + }) + .input( + z.object({ + body: zPatchAppsByAppIdWorkflowsDraftVariablesByVariableIdBody, + params: zPatchAppsByAppIdWorkflowsDraftVariablesByVariableIdPath, + }), + ) + .output(zPatchAppsByAppIdWorkflowsDraftVariablesByVariableIdResponse) + +export const byVariableId = { + delete: delete9, + get: get57, + patch: patch2, + reset, +} + +/** + * Delete all draft workflow variables + */ +export const delete10 = oc + .route({ + description: 'Delete all draft workflow variables', + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteAppsByAppIdWorkflowsDraftVariables', + path: '/apps/{app_id}/workflows/draft/variables', + successStatus: 204, + tags: ['console'], + }) + .input(z.object({ params: zDeleteAppsByAppIdWorkflowsDraftVariablesPath })) + .output(zDeleteAppsByAppIdWorkflowsDraftVariablesResponse) + +/** + * Get draft workflow + * + * Get draft workflow variables + */ +export const get58 = oc + .route({ + description: 'Get draft workflow variables', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdWorkflowsDraftVariables', + path: '/apps/{app_id}/workflows/draft/variables', + summary: 'Get draft workflow', + tags: ['console'], + }) + .input( + z.object({ + params: zGetAppsByAppIdWorkflowsDraftVariablesPath, + query: zGetAppsByAppIdWorkflowsDraftVariablesQuery.optional(), + }), + ) + .output(zGetAppsByAppIdWorkflowsDraftVariablesResponse) + +export const variables2 = { + delete: delete10, + get: get58, + byVariableId, +} + +/** + * Get draft workflow + * + * Get draft workflow for an application + */ +export const get59 = oc + .route({ + description: 'Get draft workflow for an application', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdWorkflowsDraft', + path: '/apps/{app_id}/workflows/draft', + summary: 'Get draft workflow', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByAppIdWorkflowsDraftPath })) + .output(zGetAppsByAppIdWorkflowsDraftResponse) + +/** + * Sync draft workflow + * + * Sync draft workflow configuration + */ +export const post50 = oc + .route({ + description: 'Sync draft workflow configuration', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdWorkflowsDraft', + path: '/apps/{app_id}/workflows/draft', + summary: 'Sync draft workflow', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAppsByAppIdWorkflowsDraftBody, + params: zPostAppsByAppIdWorkflowsDraftPath, + }), + ) + .output(zPostAppsByAppIdWorkflowsDraftResponse) + +export const draft2 = { + get: get59, + post: post50, + conversationVariables: conversationVariables2, + environmentVariables, + features, + humanInput: humanInput2, + iteration: iteration2, + loop: loop2, + nodes: nodes7, + run: run10, + systemVariables, + trigger: trigger2, + variables: variables2, +} + +/** + * Get published workflow + * + * Get published workflow for an application + */ +export const get60 = oc + .route({ + description: 'Get published workflow for an application', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdWorkflowsPublish', + path: '/apps/{app_id}/workflows/publish', + summary: 'Get published workflow', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByAppIdWorkflowsPublishPath })) + .output(zGetAppsByAppIdWorkflowsPublishResponse) + +/** + * Publish workflow + */ +export const post51 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdWorkflowsPublish', + path: '/apps/{app_id}/workflows/publish', + summary: 'Publish workflow', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAppsByAppIdWorkflowsPublishBody, + params: zPostAppsByAppIdWorkflowsPublishPath, + }), + ) + .output(zPostAppsByAppIdWorkflowsPublishResponse) + +export const publish = { + get: get60, + post: post51, +} + +/** + * Get webhook trigger for a node + */ +export const get61 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdWorkflowsTriggersWebhook', + path: '/apps/{app_id}/workflows/triggers/webhook', + summary: 'Get webhook trigger for a node', + tags: ['console'], + }) + .input( + z.object({ + params: zGetAppsByAppIdWorkflowsTriggersWebhookPath, + query: zGetAppsByAppIdWorkflowsTriggersWebhookQuery, + }), + ) + .output(zGetAppsByAppIdWorkflowsTriggersWebhookResponse) + +export const webhook = { + get: get61, +} + +export const triggers2 = { + webhook, +} + +/** + * Restore a published workflow version into the draft workflow + */ +export const post52 = oc + .route({ + description: 'Restore a published workflow version into the draft workflow', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByAppIdWorkflowsByWorkflowIdRestore', + path: '/apps/{app_id}/workflows/{workflow_id}/restore', + tags: ['console'], + }) + .input(z.object({ params: zPostAppsByAppIdWorkflowsByWorkflowIdRestorePath })) + .output(zPostAppsByAppIdWorkflowsByWorkflowIdRestoreResponse) + +export const restore = { + post: post52, +} + +/** + * Delete workflow + */ +export const delete11 = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteAppsByAppIdWorkflowsByWorkflowId', + path: '/apps/{app_id}/workflows/{workflow_id}', + summary: 'Delete workflow', + tags: ['console'], + }) + .input(z.object({ params: zDeleteAppsByAppIdWorkflowsByWorkflowIdPath })) + .output(zDeleteAppsByAppIdWorkflowsByWorkflowIdResponse) + +/** + * Update workflow attributes + * + * Update workflow by ID + */ +export const patch3 = oc + .route({ + description: 'Update workflow by ID', + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchAppsByAppIdWorkflowsByWorkflowId', + path: '/apps/{app_id}/workflows/{workflow_id}', + summary: 'Update workflow attributes', + tags: ['console'], + }) + .input( + z.object({ + body: zPatchAppsByAppIdWorkflowsByWorkflowIdBody, + params: zPatchAppsByAppIdWorkflowsByWorkflowIdPath, + }), + ) + .output(zPatchAppsByAppIdWorkflowsByWorkflowIdResponse) + +export const byWorkflowId = { + delete: delete11, + patch: patch3, + restore, +} + +/** + * Get published workflows + * + * Get all published workflows for an application + */ +export const get62 = oc + .route({ + description: 'Get all published workflows for an application', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppIdWorkflows', + path: '/apps/{app_id}/workflows', + summary: 'Get published workflows', + tags: ['console'], + }) + .input( + z.object({ + params: zGetAppsByAppIdWorkflowsPath, + query: zGetAppsByAppIdWorkflowsQuery.optional(), + }), + ) + .output(zGetAppsByAppIdWorkflowsResponse) + +export const workflows3 = { + get: get62, + defaultWorkflowBlockConfigs, + draft: draft2, + publish, + triggers: triggers2, + byWorkflowId, +} + +/** + * Delete app + * + * Delete application + */ +export const delete12 = oc + .route({ + description: 'Delete application', + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteAppsByAppId', + path: '/apps/{app_id}', + successStatus: 204, + summary: 'Delete app', + tags: ['console'], + }) + .input(z.object({ params: zDeleteAppsByAppIdPath })) + .output(zDeleteAppsByAppIdResponse) + +/** + * Get app detail + * + * Get application details + */ +export const get63 = oc + .route({ + description: 'Get application details', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByAppId', + path: '/apps/{app_id}', + summary: 'Get app detail', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByAppIdPath })) + .output(zGetAppsByAppIdResponse) + +/** + * Update app + * + * Update application details + */ +export const put5 = oc + .route({ + description: 'Update application details', + inputStructure: 'detailed', + method: 'PUT', + operationId: 'putAppsByAppId', + path: '/apps/{app_id}', + summary: 'Update app', + tags: ['console'], + }) + .input(z.object({ body: zPutAppsByAppIdBody, params: zPutAppsByAppIdPath })) + .output(zPutAppsByAppIdResponse) + +export const byAppId2 = { + delete: delete12, + get: get63, + put: put5, + advancedChat, + agent, + annotationReply, + annotationSetting, + annotationSettings, + annotations, + apiEnable, + audioToText, + chatConversations, + chatMessages, + completionConversations, + completionMessages, + conversationVariables, + convertToWorkflow, + copy, + export: export2, + feedbacks, + icon, + messages, + modelConfig, + name, + publishToCreatorsPlatform, + server, + site, + siteEnable, + statistics, + textToAudio, + trace, + traceConfig, + triggerEnable, + triggers, + workflowAppLogs, + workflowArchivedLogs, + workflowRuns: workflowRuns2, + workflow, + workflows: workflows3, +} + +/** + * Delete an API key for an app + * + * Delete an API key for an app + */ +export const delete13 = oc + .route({ + description: 'Delete an API key for an app', + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteAppsByResourceIdApiKeysByApiKeyId', + path: '/apps/{resource_id}/api-keys/{api_key_id}', + successStatus: 204, + summary: 'Delete an API key for an app', + tags: ['console'], + }) + .input(z.object({ params: zDeleteAppsByResourceIdApiKeysByApiKeyIdPath })) + .output(zDeleteAppsByResourceIdApiKeysByApiKeyIdResponse) + +export const byApiKeyId = { + delete: delete13, +} + +/** + * Get all API keys for an app + * + * Get all API keys for an app + */ +export const get64 = oc + .route({ + description: 'Get all API keys for an app', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByResourceIdApiKeys', + path: '/apps/{resource_id}/api-keys', + summary: 'Get all API keys for an app', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByResourceIdApiKeysPath })) + .output(zGetAppsByResourceIdApiKeysResponse) + +/** + * Create a new API key for an app + * + * Create a new API key for an app + */ +export const post53 = oc + .route({ + description: 'Create a new API key for an app', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsByResourceIdApiKeys', + path: '/apps/{resource_id}/api-keys', + successStatus: 201, + summary: 'Create a new API key for an app', + tags: ['console'], + }) + .input(z.object({ params: zPostAppsByResourceIdApiKeysPath })) + .output(zPostAppsByResourceIdApiKeysResponse) + +export const apiKeys = { + get: get64, + post: post53, + byApiKeyId, +} + +export const byResourceId = { + apiKeys, +} + +/** + * Refresh MCP server configuration and regenerate server code + */ +export const get65 = oc + .route({ + description: 'Refresh MCP server configuration and regenerate server code', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsByServerIdServerRefresh', + path: '/apps/{server_id}/server/refresh', + tags: ['console'], + }) + .input(z.object({ params: zGetAppsByServerIdServerRefreshPath })) + .output(zGetAppsByServerIdServerRefreshResponse) + +export const refresh = { + get: get65, +} + +export const server2 = { + refresh, +} + +export const byServerId = { + server: server2, +} + +/** + * Get app list + * + * Get list of applications with pagination and filtering + */ +export const get66 = oc + .route({ + description: 'Get list of applications with pagination and filtering', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getApps', + path: '/apps', + summary: 'Get app list', + tags: ['console'], + }) + .input(z.object({ query: zGetAppsQuery.optional() })) + .output(zGetAppsResponse) + +/** + * Create app + * + * Create a new application + */ +export const post54 = oc + .route({ + description: 'Create a new application', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postApps', + path: '/apps', + successStatus: 201, + summary: 'Create app', + tags: ['console'], + }) + .input(z.object({ body: zPostAppsBody })) + .output(zPostAppsResponse) + +export const apps = { + get: get66, + post: post54, + imports, + workflows, + byAppId: byAppId2, + byResourceId, + byServerId, +} + +export const contract = { + apps, +} diff --git a/packages/contracts/generated/api/console/apps/types.gen.ts b/packages/contracts/generated/api/console/apps/types.gen.ts new file mode 100644 index 0000000000..fe4c10329e --- /dev/null +++ b/packages/contracts/generated/api/console/apps/types.gen.ts @@ -0,0 +1,4493 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type AppPagination = { + has_next: boolean + items: Array + page: number + per_page: number + total: number +} + +export type CreateAppPayload = { + description?: string | null + icon?: string | null + icon_background?: string | null + icon_type?: IconType + mode: 'chat' | 'agent-chat' | 'advanced-chat' | 'workflow' | 'completion' + name: string +} + +export type AppDetail = { + access_mode?: string | null + app_model_config?: ModelConfig + created_at?: number | null + created_by?: string | null + description?: string | null + enable_api: boolean + enable_site: boolean + icon?: string | null + icon_background?: string | null + id: string + mode_compatible_with_agent: string + name: string + tags?: Array + tracing?: JsonValue + updated_at?: number | null + updated_by?: string | null + use_icon_as_answer_icon?: boolean | null + workflow?: WorkflowPartial +} + +export type AppImportPayload = { + app_id?: string | null + description?: string | null + icon?: string | null + icon_background?: string | null + icon_type?: string | null + mode: string + name?: string | null + yaml_content?: string | null + yaml_url?: string | null +} + +export type Import = { + app_id?: string | null + app_mode?: string | null + current_dsl_version?: string + error?: string + id: string + imported_dsl_version?: string + status: ImportStatus +} + +export type CheckDependenciesResult = { + leaked_dependencies?: Array +} + +export type AppDetailWithSite = { + access_mode?: string | null + api_base_url?: string | null + app_model_config?: ModelConfig + created_at?: number | null + created_by?: string | null + deleted_tools?: Array + description?: string | null + enable_api: boolean + enable_site: boolean + icon?: string | null + icon_background?: string | null + icon_type?: string | null + id: string + max_active_requests?: number | null + mode_compatible_with_agent: string + name: string + site?: Site + tags?: Array + tracing?: JsonValue + updated_at?: number | null + updated_by?: string | null + use_icon_as_answer_icon?: boolean | null + workflow?: WorkflowPartial +} + +export type UpdateAppPayload = { + description?: string | null + icon?: string | null + icon_background?: string | null + icon_type?: IconType + max_active_requests?: number | null + name: string + use_icon_as_answer_icon?: boolean | null +} + +export type AdvancedChatWorkflowRunPagination = { + [key: string]: unknown +} + +export type WorkflowRunCount = { + [key: string]: unknown +} + +export type HumanInputFormPreviewPayload = { + inputs?: { + [key: string]: unknown + } +} + +export type HumanInputFormSubmitPayload = { + action: string + form_inputs: { + [key: string]: unknown + } + inputs: { + [key: string]: unknown + } +} + +export type IterationNodeRunPayload = { + inputs?: { + [key: string]: unknown + } | null +} + +export type LoopNodeRunPayload = { + inputs?: { + [key: string]: unknown + } | null +} + +export type AdvancedChatWorkflowRunPayload = { + conversation_id?: string | null + files?: Array<{ + [key: string]: unknown + }> | null + inputs?: { + [key: string]: unknown + } | null + parent_message_id?: string | null + query?: string +} + +export type AnnotationReplyPayload = { + embedding_model_name: string + embedding_provider_name: string + score_threshold: number +} + +export type AnnotationSettingUpdatePayload = { + score_threshold: number +} + +export type CreateAnnotationPayload = { + annotation_reply?: { + [key: string]: unknown + } | null + answer?: string | null + content?: string | null + message_id?: string | null + question?: string | null +} + +export type Annotation = { + content?: string | null + created_at?: number | null + hit_count?: number | null + id: string + question?: string | null +} + +export type AnnotationCountResponse = { + count: number +} + +export type AnnotationExportList = { + data: Array +} + +export type UpdateAnnotationPayload = { + annotation_reply?: { + [key: string]: unknown + } | null + answer?: string | null + content?: string | null + question?: string | null +} + +export type AnnotationHitHistoryList = { + data: Array + has_more: boolean + limit: number + page: number + total: number +} + +export type AppApiStatusPayload = { + enable_api: boolean +} + +export type AudioTranscriptResponse = { + text: string +} + +export type ConversationWithSummaryPagination = { + has_next: boolean + items: Array + page: number + per_page: number + total: number +} + +export type ConversationDetail = { + admin_feedback_stats?: FeedbackStat + annotated: boolean + created_at?: number | null + from_account_id?: string | null + from_end_user_id?: string | null + from_source: string + id: string + introduction?: string | null + message_count: number + model_config?: ModelConfig + status: string + updated_at?: number | null + user_feedback_stats?: FeedbackStat +} + +export type MessageInfiniteScrollPaginationResponse = { + data: Array + has_more: boolean + limit: number +} + +export type SuggestedQuestionsResponse = { + data: Array +} + +export type ConversationPagination = { + has_next: boolean + items: Array + page: number + per_page: number + total: number +} + +export type ConversationMessageDetail = { + created_at?: number | null + first_message?: MessageDetail + from_account_id?: string | null + from_end_user_id?: string | null + from_source: string + id: string + model_config?: ModelConfig + status: string +} + +export type CompletionMessagePayload = { + files?: Array | null + inputs: { + [key: string]: unknown + } + model_config: { + [key: string]: unknown + } + query?: string + response_mode?: 'blocking' | 'streaming' + retriever_from?: string +} + +export type PaginatedConversationVariableResponse = { + data: Array + has_more: boolean + limit: number + page: number + total: number +} + +export type ConvertToWorkflowPayload = { + icon?: string | null + icon_background?: string | null + icon_type?: string | null + name?: string | null +} + +export type CopyAppPayload = { + description?: string | null + icon?: string | null + icon_background?: string | null + icon_type?: IconType + name?: string | null +} + +export type AppExportResponse = { + data: string +} + +export type MessageFeedbackPayload = { + content?: string | null + message_id: string + rating?: 'like' | 'dislike' | null +} + +export type AppIconPayload = { + icon?: string | null + icon_background?: string | null + icon_type?: IconType +} + +export type MessageDetailResponse = { + agent_thoughts?: Array + annotation?: ConversationAnnotation + annotation_hit_history?: ConversationAnnotationHitHistory + answer_tokens?: number | null + conversation_id: string + created_at?: number | null + error?: string | null + extra_contents?: Array + feedbacks?: Array + from_account_id?: string | null + from_end_user_id?: string | null + from_source: string + id: string + inputs: { + [key: string]: JsonValue + } + message?: JsonValue + message_files?: Array + message_metadata_dict?: JsonValue + message_tokens?: number | null + parent_message_id?: string | null + provider_response_latency?: number | null + query: string + re_sign_file_url_answer: string + status: string + workflow_run_id?: string | null +} + +export type ModelConfigRequest = { + agent_mode?: { + [key: string]: unknown + } | null + configs?: { + [key: string]: unknown + } | null + dataset_configs?: { + [key: string]: unknown + } | null + model?: string | null + more_like_this?: { + [key: string]: unknown + } | null + opening_statement?: string | null + provider?: string | null + retrieval_model?: { + [key: string]: unknown + } | null + speech_to_text?: { + [key: string]: unknown + } | null + suggested_questions?: Array | null + text_to_speech?: { + [key: string]: unknown + } | null + tools?: Array<{ + [key: string]: unknown + }> | null +} + +export type AppNamePayload = { + name: string +} + +export type AppMcpServerResponse = { + created_at?: number | null + description: string + id: string + name: string + parameters: unknown + server_code: string + status: AppMcpServerStatus + updated_at?: number | null +} + +export type McpServerCreatePayload = { + description?: string | null + parameters: { + [key: string]: unknown + } +} + +export type McpServerUpdatePayload = { + description?: string | null + id: string + parameters: { + [key: string]: unknown + } + status?: string | null +} + +export type AppSiteUpdatePayload = { + chat_color_theme?: string | null + chat_color_theme_inverted?: boolean | null + copyright?: string | null + custom_disclaimer?: string | null + customize_domain?: string | null + customize_token_strategy?: 'must' | 'allow' | 'not_allow' | null + default_language?: string | null + description?: string | null + icon?: string | null + icon_background?: string | null + icon_type?: string | null + privacy_policy?: string | null + prompt_public?: boolean | null + show_workflow_steps?: boolean | null + title?: string | null + use_icon_as_answer_icon?: boolean | null +} + +export type AppSiteResponse = { + app_id: string + code?: string | null + copyright?: string | null + custom_disclaimer?: string | null + customize_domain?: string | null + customize_token_strategy: string + default_language: string + description?: string | null + icon?: string | null + icon_background?: string | null + privacy_policy?: string | null + prompt_public: boolean + show_workflow_steps: boolean + title: string + use_icon_as_answer_icon: boolean +} + +export type AppSiteStatusPayload = { + enable_site: boolean +} + +export type TextToSpeechPayload = { + message_id?: string | null + streaming?: boolean | null + text: string + voice?: string | null +} + +export type AppTracePayload = { + enabled: boolean + tracing_provider?: string | null +} + +export type TraceProviderQuery = { + tracing_provider: string +} + +export type TraceConfigPayload = { + tracing_config: { + [key: string]: unknown + } + tracing_provider: string +} + +export type ParserEnable = { + enable_trigger: boolean + trigger_id: string +} + +export type WorkflowTriggerResponse = { + created_at?: string | null + icon: string + id: string + node_id: string + provider_name: string + status: string + title: string + trigger_type: string + updated_at?: string | null +} + +export type WorkflowTriggerListResponse = { + data: Array +} + +export type WorkflowAppLogPaginationResponse = { + data: Array + has_more: boolean + limit: number + page: number + total: number +} + +export type WorkflowArchivedLogPaginationResponse = { + data: Array + has_more: boolean + limit: number + page: number + total: number +} + +export type WorkflowRunPagination = { + [key: string]: unknown +} + +export type WorkflowRunDetail = { + [key: string]: unknown +} + +export type WorkflowRunExport = { + [key: string]: unknown +} + +export type WorkflowRunNodeExecutionList = { + [key: string]: unknown +} + +export type WorkflowCommentBasic = { + [key: string]: unknown +} + +export type WorkflowCommentCreatePayload = { + content: string + mentioned_user_ids?: Array + position_x: number + position_y: number +} + +export type WorkflowCommentCreate = { + [key: string]: unknown +} + +export type WorkflowCommentMentionUsersPayload = { + users: Array +} + +export type WorkflowCommentDetail = { + [key: string]: unknown +} + +export type WorkflowCommentUpdatePayload = { + content: string + mentioned_user_ids?: Array | null + position_x?: number | null + position_y?: number | null +} + +export type WorkflowCommentUpdate = { + [key: string]: unknown +} + +export type WorkflowCommentReplyPayload = { + content: string + mentioned_user_ids?: Array +} + +export type WorkflowCommentReplyCreate = { + [key: string]: unknown +} + +export type WorkflowCommentReplyUpdate = { + [key: string]: unknown +} + +export type WorkflowCommentResolve = { + [key: string]: unknown +} + +export type WorkflowPagination = { + [key: string]: unknown +} + +export type Workflow = { + [key: string]: unknown +} + +export type SyncDraftWorkflowPayload = { + conversation_variables?: Array<{ + [key: string]: unknown + }> + environment_variables?: Array<{ + [key: string]: unknown + }> + features: { + [key: string]: unknown + } + graph: { + [key: string]: unknown + } + hash?: string | null +} + +export type SyncDraftWorkflowResponse = { + [key: string]: unknown +} + +export type WorkflowDraftVariableList = { + [key: string]: unknown +} + +export type ConversationVariableUpdatePayload = { + conversation_variables: Array<{ + [key: string]: unknown + }> +} + +export type EnvironmentVariableUpdatePayload = { + environment_variables: Array<{ + [key: string]: unknown + }> +} + +export type WorkflowFeaturesPayload = { + features: { + [key: string]: unknown + } +} + +export type HumanInputDeliveryTestPayload = { + delivery_method_id: string + inputs?: { + [key: string]: unknown + } +} + +export type WorkflowRunNodeExecution = { + [key: string]: unknown +} + +export type DraftWorkflowNodeRunPayload = { + files?: Array<{ + [key: string]: unknown + }> | null + inputs: { + [key: string]: unknown + } + query?: string +} + +export type DraftWorkflowRunPayload = { + datasource_info_list: Array<{ + [key: string]: unknown + }> + datasource_type: string + inputs: { + [key: string]: unknown + } + start_node_id: string +} + +export type DraftWorkflowTriggerRunRequest = { + [key: string]: unknown +} + +export type DraftWorkflowTriggerRunAllPayload = { + node_ids: Array +} + +export type WorkflowDraftVariableListWithoutValue = { + [key: string]: unknown +} + +export type WorkflowDraftVariable = { + [key: string]: unknown +} + +export type WorkflowDraftVariableUpdatePayload = { + name?: string | null + value?: unknown +} + +export type PublishWorkflowPayload = { + marked_comment?: string | null + marked_name?: string | null +} + +export type WebhookTriggerResponse = { + created_at?: string | null + id: string + node_id: string + webhook_debug_url: string + webhook_id: string + webhook_url: string +} + +export type WorkflowUpdatePayload = { + marked_comment?: string | null + marked_name?: string | null +} + +export type ApiKeyList = { + data: Array +} + +export type ApiKeyItem = { + created_at?: number | null + id: string + last_used_at?: number | null + token: string + type: string +} + +export type AppPartial = { + access_mode?: string | null + app_model_config?: ModelConfigPartial + author_name?: string | null + create_user_name?: string | null + created_at?: number | null + created_by?: string | null + desc_or_prompt?: string | null + has_draft_trigger?: boolean | null + icon?: string | null + icon_background?: string | null + icon_type?: string | null + id: string + max_active_requests?: number | null + mode_compatible_with_agent: string + name: string + tags?: Array + updated_at?: number | null + updated_by?: string | null + use_icon_as_answer_icon?: boolean | null + workflow?: WorkflowPartial +} + +export type IconType = 'image' | 'emoji' | '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 +} + +export type Tag = { + id: string + name: string + type: string +} + +export type JsonValue = unknown + +export type WorkflowPartial = { + created_at?: number | null + created_by?: string | null + id: string + updated_at?: number | null + updated_by?: string | null +} + +export type ImportStatus = 'completed' | 'completed-with-warnings' | 'pending' | 'failed' + +export type PluginDependency = { + current_identifier?: string | null + type: Type + value: unknown +} + +export type DeletedTool = { + provider_id: string + tool_name: string + type: string +} + +export type Site = { + app_base_url?: string | null + chat_color_theme?: string | null + chat_color_theme_inverted?: boolean | null + code?: string | null + copyright?: string | null + created_at?: number | null + created_by?: string | null + custom_disclaimer?: string | null + customize_domain?: string | null + customize_token_strategy?: string | null + default_language?: string | null + description?: string | null + icon?: string | null + icon_background?: string | null + icon_type?: unknown + privacy_policy?: string | null + prompt_public?: boolean | null + show_workflow_steps?: boolean | null + title?: string | null + updated_at?: number | null + updated_by?: string | null + use_icon_as_answer_icon?: boolean | null +} + +export type AnnotationHitHistory = { + annotation_content?: string | null + annotation_question?: string | null + created_at?: number | null + id: string + question?: string | null + score?: number | null + source?: string | null +} + +export type ConversationWithSummary = { + admin_feedback_stats?: FeedbackStat + annotated: boolean + created_at?: number | null + from_account_id?: string | null + from_account_name?: string | null + from_end_user_id?: string | null + from_end_user_session_id?: string | null + from_source: string + id: string + message_count: number + model_config?: SimpleModelConfig + name: string + read_at?: number | null + status: string + status_count?: StatusCount + summary_or_query: string + updated_at?: number | null + user_feedback_stats?: FeedbackStat +} + +export type FeedbackStat = { + dislike: number + like: number +} + +export type Conversation = { + admin_feedback_stats?: FeedbackStat + annotation?: ConversationAnnotation + created_at?: number | null + first_message?: SimpleMessageDetail + from_account_id?: string | null + from_account_name?: string | null + from_end_user_id?: string | null + from_end_user_session_id?: string | null + from_source: string + id: string + model_config?: SimpleModelConfig + read_at?: number | null + status: string + updated_at?: number | null + user_feedback_stats?: FeedbackStat +} + +export type MessageDetail = { + agent_thoughts: Array + annotation?: ConversationAnnotation + annotation_hit_history?: ConversationAnnotationHitHistory + answer_tokens: number + conversation_id: string + created_at?: number | null + error?: string | null + feedbacks: Array + from_account_id?: string | null + from_end_user_id?: string | null + from_source: string + id: string + inputs: { + [key: string]: JsonValue + } + message: JsonValue + message_files: Array + message_metadata_dict: JsonValue + message_tokens: number + parent_message_id?: string | null + provider_response_latency: number + query: string + re_sign_file_url_answer: string + status: string + workflow_run_id?: string | null +} + +export type ConversationVariableResponse = { + created_at?: number | null + description?: string | null + id: string + name: string + updated_at?: number | null + value?: string | null + value_type: string +} + +export type AgentThought = { + chain_id?: string | null + created_at?: number | null + files: Array + id: string + message_chain_id?: string | null + message_id: string + observation?: string | null + position: number + thought?: string | null + tool?: string | null + tool_input?: string | null + tool_labels: JsonValue +} + +export type ConversationAnnotation = { + account?: SimpleAccount + content: string + created_at?: number | null + id: string + question?: string | null +} + +export type ConversationAnnotationHitHistory = { + annotation_create_account?: SimpleAccount + created_at?: number | null + id: string +} + +export type HumanInputContent = { + form_definition?: HumanInputFormDefinition + form_submission_data?: HumanInputFormSubmissionData + submitted: boolean + type?: ExecutionContentType + workflow_run_id: string +} + +export type Feedback = { + content?: string | null + from_account?: SimpleAccount + from_end_user_id?: string | null + from_source: string + rating: string +} + +export type MessageFile = { + belongs_to?: string | null + filename: string + id: string + mime_type?: string | null + size?: number | null + transfer_method: string + type: string + upload_file_id?: string | null + url?: string | null +} + +export type AppMcpServerStatus = 'normal' | 'active' | 'inactive' + +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 WorkflowArchivedLogPartialResponse = { + created_at?: number | null + created_by_account?: SimpleAccount + created_by_end_user?: SimpleEndUser + id: string + trigger_metadata?: unknown + workflow_run?: WorkflowRunForArchivedLogResponse +} + +export type AccountWithRole = { + avatar?: string | null + created_at?: number | null + email: string + id: string + last_active_at?: number | null + last_login_at?: number | null + name: string + role: string + status: string +} + +export type ModelConfigPartial = { + created_at?: number | null + created_by?: string | null + model_dict?: JsonValue + pre_prompt?: string | null + updated_at?: number | null + updated_by?: string | null +} + +export type Type = 'github' | 'marketplace' | 'package' + +export type Github = { + github_plugin_unique_identifier: string + package: string + repo: string + version: string +} + +export type Marketplace = { + marketplace_plugin_unique_identifier: string + version?: string | null +} + +export type Package = { + plugin_unique_identifier: string + version?: string | null +} + +export type SimpleModelConfig = { + model_dict?: JsonValue + pre_prompt?: string | null +} + +export type StatusCount = { + failed: number + partial_success: number + paused: number + success: number +} + +export type SimpleMessageDetail = { + answer: string + inputs: { + [key: string]: JsonValue + } + message: string + query: string +} + +export type SimpleAccount = { + email: string + id: string + name: string +} + +export type HumanInputFormDefinition = { + actions?: Array + display_in_ui?: boolean + expiration_time: number + form_content: string + form_id: string + form_token?: string | null + inputs?: Array + node_id: string + node_title: string + resolved_default_values?: { + [key: string]: unknown + } +} + +export type HumanInputFormSubmissionData = { + action_id: string + action_text: string + node_id: string + node_title: string + rendered_content: string +} + +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 + 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 WorkflowRunForArchivedLogResponse = { + elapsed_time?: number | null + id: string + status?: string | null + total_tokens?: number | null + triggered_from?: string | null +} + +export type UserAction = { + button_style?: ButtonStyle + id: string + title: string +} + +export type FormInput = { + default?: FormInputDefault + output_variable_name: string + type: FormInputType +} + +export type ButtonStyle = 'primary' | 'default' | 'accent' | 'ghost' + +export type FormInputDefault = { + selector?: Array + type: PlaceholderType + value?: string +} + +export type FormInputType = 'text_input' | 'paragraph' + +export type PlaceholderType = 'variable' | 'constant' + +export type GetAppsData = { + body?: never + path?: never + query?: { + is_created_by_me?: boolean | null + limit?: number + mode?: 'completion' | 'chat' | 'advanced-chat' | 'workflow' | 'agent-chat' | 'channel' | 'all' + name?: string | null + page?: number + tag_ids?: Array | null + } + url: '/apps' +} + +export type GetAppsResponses = { + 200: AppPagination +} + +export type GetAppsResponse = GetAppsResponses[keyof GetAppsResponses] + +export type PostAppsData = { + body: CreateAppPayload + path?: never + query?: never + url: '/apps' +} + +export type PostAppsErrors = { + 400: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } +} + +export type PostAppsError = PostAppsErrors[keyof PostAppsErrors] + +export type PostAppsResponses = { + 201: AppDetail +} + +export type PostAppsResponse = PostAppsResponses[keyof PostAppsResponses] + +export type PostAppsImportsData = { + body: AppImportPayload + path?: never + query?: never + url: '/apps/imports' +} + +export type PostAppsImportsErrors = { + 400: Import +} + +export type PostAppsImportsError = PostAppsImportsErrors[keyof PostAppsImportsErrors] + +export type PostAppsImportsResponses = { + 200: Import + 202: Import +} + +export type PostAppsImportsResponse = PostAppsImportsResponses[keyof PostAppsImportsResponses] + +export type GetAppsImportsByAppIdCheckDependenciesData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/apps/imports/{app_id}/check-dependencies' +} + +export type GetAppsImportsByAppIdCheckDependenciesResponses = { + 200: CheckDependenciesResult +} + +export type GetAppsImportsByAppIdCheckDependenciesResponse + = GetAppsImportsByAppIdCheckDependenciesResponses[keyof GetAppsImportsByAppIdCheckDependenciesResponses] + +export type PostAppsImportsByImportIdConfirmData = { + body?: never + path: { + import_id: string + } + query?: never + url: '/apps/imports/{import_id}/confirm' +} + +export type PostAppsImportsByImportIdConfirmErrors = { + 400: Import +} + +export type PostAppsImportsByImportIdConfirmError + = PostAppsImportsByImportIdConfirmErrors[keyof PostAppsImportsByImportIdConfirmErrors] + +export type PostAppsImportsByImportIdConfirmResponses = { + 200: Import +} + +export type PostAppsImportsByImportIdConfirmResponse + = PostAppsImportsByImportIdConfirmResponses[keyof PostAppsImportsByImportIdConfirmResponses] + +export type GetAppsWorkflowsOnlineUsersData = { + body?: never + path?: never + query: { + app_ids: string + } + url: '/apps/workflows/online-users' +} + +export type GetAppsWorkflowsOnlineUsersResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetAppsWorkflowsOnlineUsersResponse + = GetAppsWorkflowsOnlineUsersResponses[keyof GetAppsWorkflowsOnlineUsersResponses] + +export type DeleteAppsByAppIdData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}' +} + +export type DeleteAppsByAppIdErrors = { + 403: { + [key: string]: unknown + } +} + +export type DeleteAppsByAppIdError = DeleteAppsByAppIdErrors[keyof DeleteAppsByAppIdErrors] + +export type DeleteAppsByAppIdResponses = { + 204: { + [key: string]: unknown + } +} + +export type DeleteAppsByAppIdResponse = DeleteAppsByAppIdResponses[keyof DeleteAppsByAppIdResponses] + +export type GetAppsByAppIdData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}' +} + +export type GetAppsByAppIdResponses = { + 200: AppDetailWithSite +} + +export type GetAppsByAppIdResponse = GetAppsByAppIdResponses[keyof GetAppsByAppIdResponses] + +export type PutAppsByAppIdData = { + body: UpdateAppPayload + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}' +} + +export type PutAppsByAppIdErrors = { + 400: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } +} + +export type PutAppsByAppIdError = PutAppsByAppIdErrors[keyof PutAppsByAppIdErrors] + +export type PutAppsByAppIdResponses = { + 200: AppDetailWithSite +} + +export type PutAppsByAppIdResponse = PutAppsByAppIdResponses[keyof PutAppsByAppIdResponses] + +export type GetAppsByAppIdAdvancedChatWorkflowRunsData = { + body?: never + path: { + app_id: string + } + query?: { + triggered_from?: 'debugging' | 'app-run' | null + status?: 'running' | 'succeeded' | 'failed' | 'stopped' | 'partial-succeeded' | null + last_id?: string | null + limit?: number + } + url: '/apps/{app_id}/advanced-chat/workflow-runs' +} + +export type GetAppsByAppIdAdvancedChatWorkflowRunsResponses = { + 200: AdvancedChatWorkflowRunPagination +} + +export type GetAppsByAppIdAdvancedChatWorkflowRunsResponse + = GetAppsByAppIdAdvancedChatWorkflowRunsResponses[keyof GetAppsByAppIdAdvancedChatWorkflowRunsResponses] + +export type GetAppsByAppIdAdvancedChatWorkflowRunsCountData = { + body?: never + path: { + app_id: string + } + query?: { + triggered_from?: 'debugging' | 'app-run' | null + time_range?: string | null + status?: 'running' | 'succeeded' | 'failed' | 'stopped' | 'partial-succeeded' | null + } + url: '/apps/{app_id}/advanced-chat/workflow-runs/count' +} + +export type GetAppsByAppIdAdvancedChatWorkflowRunsCountResponses = { + 200: WorkflowRunCount +} + +export type GetAppsByAppIdAdvancedChatWorkflowRunsCountResponse + = GetAppsByAppIdAdvancedChatWorkflowRunsCountResponses[keyof GetAppsByAppIdAdvancedChatWorkflowRunsCountResponses] + +export type PostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormPreviewData = { + body: HumanInputFormPreviewPayload + path: { + app_id: string + node_id: string + } + query?: never + url: '/apps/{app_id}/advanced-chat/workflows/draft/human-input/nodes/{node_id}/form/preview' +} + +export type PostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormPreviewResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormPreviewResponse + = PostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormPreviewResponses[keyof PostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormPreviewResponses] + +export type PostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormRunData = { + body: HumanInputFormSubmitPayload + path: { + app_id: string + node_id: string + } + query?: never + url: '/apps/{app_id}/advanced-chat/workflows/draft/human-input/nodes/{node_id}/form/run' +} + +export type PostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormRunResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormRunResponse + = PostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormRunResponses[keyof PostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormRunResponses] + +export type PostAppsByAppIdAdvancedChatWorkflowsDraftIterationNodesByNodeIdRunData = { + body: IterationNodeRunPayload + path: { + app_id: string + node_id: string + } + query?: never + url: '/apps/{app_id}/advanced-chat/workflows/draft/iteration/nodes/{node_id}/run' +} + +export type PostAppsByAppIdAdvancedChatWorkflowsDraftIterationNodesByNodeIdRunErrors = { + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdAdvancedChatWorkflowsDraftIterationNodesByNodeIdRunError + = PostAppsByAppIdAdvancedChatWorkflowsDraftIterationNodesByNodeIdRunErrors[keyof PostAppsByAppIdAdvancedChatWorkflowsDraftIterationNodesByNodeIdRunErrors] + +export type PostAppsByAppIdAdvancedChatWorkflowsDraftIterationNodesByNodeIdRunResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdAdvancedChatWorkflowsDraftIterationNodesByNodeIdRunResponse + = PostAppsByAppIdAdvancedChatWorkflowsDraftIterationNodesByNodeIdRunResponses[keyof PostAppsByAppIdAdvancedChatWorkflowsDraftIterationNodesByNodeIdRunResponses] + +export type PostAppsByAppIdAdvancedChatWorkflowsDraftLoopNodesByNodeIdRunData = { + body: LoopNodeRunPayload + path: { + app_id: string + node_id: string + } + query?: never + url: '/apps/{app_id}/advanced-chat/workflows/draft/loop/nodes/{node_id}/run' +} + +export type PostAppsByAppIdAdvancedChatWorkflowsDraftLoopNodesByNodeIdRunErrors = { + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdAdvancedChatWorkflowsDraftLoopNodesByNodeIdRunError + = PostAppsByAppIdAdvancedChatWorkflowsDraftLoopNodesByNodeIdRunErrors[keyof PostAppsByAppIdAdvancedChatWorkflowsDraftLoopNodesByNodeIdRunErrors] + +export type PostAppsByAppIdAdvancedChatWorkflowsDraftLoopNodesByNodeIdRunResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdAdvancedChatWorkflowsDraftLoopNodesByNodeIdRunResponse + = PostAppsByAppIdAdvancedChatWorkflowsDraftLoopNodesByNodeIdRunResponses[keyof PostAppsByAppIdAdvancedChatWorkflowsDraftLoopNodesByNodeIdRunResponses] + +export type PostAppsByAppIdAdvancedChatWorkflowsDraftRunData = { + body: AdvancedChatWorkflowRunPayload + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/advanced-chat/workflows/draft/run' +} + +export type PostAppsByAppIdAdvancedChatWorkflowsDraftRunErrors = { + 400: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdAdvancedChatWorkflowsDraftRunError + = PostAppsByAppIdAdvancedChatWorkflowsDraftRunErrors[keyof PostAppsByAppIdAdvancedChatWorkflowsDraftRunErrors] + +export type PostAppsByAppIdAdvancedChatWorkflowsDraftRunResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdAdvancedChatWorkflowsDraftRunResponse + = PostAppsByAppIdAdvancedChatWorkflowsDraftRunResponses[keyof PostAppsByAppIdAdvancedChatWorkflowsDraftRunResponses] + +export type GetAppsByAppIdAgentLogsData = { + body?: never + path: { + app_id: string + } + query: { + conversation_id: string + message_id: string + } + url: '/apps/{app_id}/agent/logs' +} + +export type GetAppsByAppIdAgentLogsErrors = { + 400: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdAgentLogsError + = GetAppsByAppIdAgentLogsErrors[keyof GetAppsByAppIdAgentLogsErrors] + +export type GetAppsByAppIdAgentLogsResponses = { + 200: Array<{ + [key: string]: unknown + }> +} + +export type GetAppsByAppIdAgentLogsResponse + = GetAppsByAppIdAgentLogsResponses[keyof GetAppsByAppIdAgentLogsResponses] + +export type PostAppsByAppIdAnnotationReplyByActionData = { + body: AnnotationReplyPayload + path: { + app_id: string + action: string + } + query?: never + url: '/apps/{app_id}/annotation-reply/{action}' +} + +export type PostAppsByAppIdAnnotationReplyByActionErrors = { + 403: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdAnnotationReplyByActionError + = PostAppsByAppIdAnnotationReplyByActionErrors[keyof PostAppsByAppIdAnnotationReplyByActionErrors] + +export type PostAppsByAppIdAnnotationReplyByActionResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdAnnotationReplyByActionResponse + = PostAppsByAppIdAnnotationReplyByActionResponses[keyof PostAppsByAppIdAnnotationReplyByActionResponses] + +export type GetAppsByAppIdAnnotationReplyByActionStatusByJobIdData = { + body?: never + path: { + app_id: string + action: string + job_id: string + } + query?: never + url: '/apps/{app_id}/annotation-reply/{action}/status/{job_id}' +} + +export type GetAppsByAppIdAnnotationReplyByActionStatusByJobIdErrors = { + 403: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdAnnotationReplyByActionStatusByJobIdError + = GetAppsByAppIdAnnotationReplyByActionStatusByJobIdErrors[keyof GetAppsByAppIdAnnotationReplyByActionStatusByJobIdErrors] + +export type GetAppsByAppIdAnnotationReplyByActionStatusByJobIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdAnnotationReplyByActionStatusByJobIdResponse + = GetAppsByAppIdAnnotationReplyByActionStatusByJobIdResponses[keyof GetAppsByAppIdAnnotationReplyByActionStatusByJobIdResponses] + +export type GetAppsByAppIdAnnotationSettingData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/annotation-setting' +} + +export type GetAppsByAppIdAnnotationSettingErrors = { + 403: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdAnnotationSettingError + = GetAppsByAppIdAnnotationSettingErrors[keyof GetAppsByAppIdAnnotationSettingErrors] + +export type GetAppsByAppIdAnnotationSettingResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdAnnotationSettingResponse + = GetAppsByAppIdAnnotationSettingResponses[keyof GetAppsByAppIdAnnotationSettingResponses] + +export type PostAppsByAppIdAnnotationSettingsByAnnotationSettingIdData = { + body: AnnotationSettingUpdatePayload + path: { + app_id: string + annotation_setting_id: string + } + query?: never + url: '/apps/{app_id}/annotation-settings/{annotation_setting_id}' +} + +export type PostAppsByAppIdAnnotationSettingsByAnnotationSettingIdErrors = { + 403: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdAnnotationSettingsByAnnotationSettingIdError + = PostAppsByAppIdAnnotationSettingsByAnnotationSettingIdErrors[keyof PostAppsByAppIdAnnotationSettingsByAnnotationSettingIdErrors] + +export type PostAppsByAppIdAnnotationSettingsByAnnotationSettingIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdAnnotationSettingsByAnnotationSettingIdResponse + = PostAppsByAppIdAnnotationSettingsByAnnotationSettingIdResponses[keyof PostAppsByAppIdAnnotationSettingsByAnnotationSettingIdResponses] + +export type DeleteAppsByAppIdAnnotationsData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/annotations' +} + +export type DeleteAppsByAppIdAnnotationsResponses = { + 200: { + [key: string]: unknown + } +} + +export type DeleteAppsByAppIdAnnotationsResponse + = DeleteAppsByAppIdAnnotationsResponses[keyof DeleteAppsByAppIdAnnotationsResponses] + +export type GetAppsByAppIdAnnotationsData = { + body?: never + path: { + app_id: string + } + query?: { + keyword?: string + limit?: number + page?: number + } + url: '/apps/{app_id}/annotations' +} + +export type GetAppsByAppIdAnnotationsErrors = { + 403: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdAnnotationsError + = GetAppsByAppIdAnnotationsErrors[keyof GetAppsByAppIdAnnotationsErrors] + +export type GetAppsByAppIdAnnotationsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdAnnotationsResponse + = GetAppsByAppIdAnnotationsResponses[keyof GetAppsByAppIdAnnotationsResponses] + +export type PostAppsByAppIdAnnotationsData = { + body: CreateAnnotationPayload + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/annotations' +} + +export type PostAppsByAppIdAnnotationsErrors = { + 403: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdAnnotationsError + = PostAppsByAppIdAnnotationsErrors[keyof PostAppsByAppIdAnnotationsErrors] + +export type PostAppsByAppIdAnnotationsResponses = { + 201: Annotation +} + +export type PostAppsByAppIdAnnotationsResponse + = PostAppsByAppIdAnnotationsResponses[keyof PostAppsByAppIdAnnotationsResponses] + +export type PostAppsByAppIdAnnotationsBatchImportData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/annotations/batch-import' +} + +export type PostAppsByAppIdAnnotationsBatchImportErrors = { + 400: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 413: { + [key: string]: unknown + } + 429: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdAnnotationsBatchImportError + = PostAppsByAppIdAnnotationsBatchImportErrors[keyof PostAppsByAppIdAnnotationsBatchImportErrors] + +export type PostAppsByAppIdAnnotationsBatchImportResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdAnnotationsBatchImportResponse + = PostAppsByAppIdAnnotationsBatchImportResponses[keyof PostAppsByAppIdAnnotationsBatchImportResponses] + +export type GetAppsByAppIdAnnotationsBatchImportStatusByJobIdData = { + body?: never + path: { + app_id: string + job_id: string + } + query?: never + url: '/apps/{app_id}/annotations/batch-import-status/{job_id}' +} + +export type GetAppsByAppIdAnnotationsBatchImportStatusByJobIdErrors = { + 403: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdAnnotationsBatchImportStatusByJobIdError + = GetAppsByAppIdAnnotationsBatchImportStatusByJobIdErrors[keyof GetAppsByAppIdAnnotationsBatchImportStatusByJobIdErrors] + +export type GetAppsByAppIdAnnotationsBatchImportStatusByJobIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdAnnotationsBatchImportStatusByJobIdResponse + = GetAppsByAppIdAnnotationsBatchImportStatusByJobIdResponses[keyof GetAppsByAppIdAnnotationsBatchImportStatusByJobIdResponses] + +export type GetAppsByAppIdAnnotationsCountData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/annotations/count' +} + +export type GetAppsByAppIdAnnotationsCountResponses = { + 200: AnnotationCountResponse +} + +export type GetAppsByAppIdAnnotationsCountResponse + = GetAppsByAppIdAnnotationsCountResponses[keyof GetAppsByAppIdAnnotationsCountResponses] + +export type GetAppsByAppIdAnnotationsExportData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/annotations/export' +} + +export type GetAppsByAppIdAnnotationsExportErrors = { + 403: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdAnnotationsExportError + = GetAppsByAppIdAnnotationsExportErrors[keyof GetAppsByAppIdAnnotationsExportErrors] + +export type GetAppsByAppIdAnnotationsExportResponses = { + 200: AnnotationExportList +} + +export type GetAppsByAppIdAnnotationsExportResponse + = GetAppsByAppIdAnnotationsExportResponses[keyof GetAppsByAppIdAnnotationsExportResponses] + +export type DeleteAppsByAppIdAnnotationsByAnnotationIdData = { + body?: never + path: { + annotation_id: string + app_id: string + } + query?: never + url: '/apps/{app_id}/annotations/{annotation_id}' +} + +export type DeleteAppsByAppIdAnnotationsByAnnotationIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type DeleteAppsByAppIdAnnotationsByAnnotationIdResponse + = DeleteAppsByAppIdAnnotationsByAnnotationIdResponses[keyof DeleteAppsByAppIdAnnotationsByAnnotationIdResponses] + +export type PostAppsByAppIdAnnotationsByAnnotationIdData = { + body: UpdateAnnotationPayload + path: { + app_id: string + annotation_id: string + } + query?: never + url: '/apps/{app_id}/annotations/{annotation_id}' +} + +export type PostAppsByAppIdAnnotationsByAnnotationIdErrors = { + 403: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdAnnotationsByAnnotationIdError + = PostAppsByAppIdAnnotationsByAnnotationIdErrors[keyof PostAppsByAppIdAnnotationsByAnnotationIdErrors] + +export type PostAppsByAppIdAnnotationsByAnnotationIdResponses = { + 200: Annotation + 204: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdAnnotationsByAnnotationIdResponse + = PostAppsByAppIdAnnotationsByAnnotationIdResponses[keyof PostAppsByAppIdAnnotationsByAnnotationIdResponses] + +export type GetAppsByAppIdAnnotationsByAnnotationIdHitHistoriesData = { + body?: never + path: { + app_id: string + annotation_id: string + } + query?: { + page?: number + limit?: number + } + url: '/apps/{app_id}/annotations/{annotation_id}/hit-histories' +} + +export type GetAppsByAppIdAnnotationsByAnnotationIdHitHistoriesErrors = { + 403: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdAnnotationsByAnnotationIdHitHistoriesError + = GetAppsByAppIdAnnotationsByAnnotationIdHitHistoriesErrors[keyof GetAppsByAppIdAnnotationsByAnnotationIdHitHistoriesErrors] + +export type GetAppsByAppIdAnnotationsByAnnotationIdHitHistoriesResponses = { + 200: AnnotationHitHistoryList +} + +export type GetAppsByAppIdAnnotationsByAnnotationIdHitHistoriesResponse + = GetAppsByAppIdAnnotationsByAnnotationIdHitHistoriesResponses[keyof GetAppsByAppIdAnnotationsByAnnotationIdHitHistoriesResponses] + +export type PostAppsByAppIdApiEnableData = { + body: AppApiStatusPayload + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/api-enable' +} + +export type PostAppsByAppIdApiEnableErrors = { + 403: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdApiEnableError + = PostAppsByAppIdApiEnableErrors[keyof PostAppsByAppIdApiEnableErrors] + +export type PostAppsByAppIdApiEnableResponses = { + 200: AppDetail +} + +export type PostAppsByAppIdApiEnableResponse + = PostAppsByAppIdApiEnableResponses[keyof PostAppsByAppIdApiEnableResponses] + +export type PostAppsByAppIdAudioToTextData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/audio-to-text' +} + +export type PostAppsByAppIdAudioToTextErrors = { + 400: { + [key: string]: unknown + } + 413: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdAudioToTextError + = PostAppsByAppIdAudioToTextErrors[keyof PostAppsByAppIdAudioToTextErrors] + +export type PostAppsByAppIdAudioToTextResponses = { + 200: AudioTranscriptResponse +} + +export type PostAppsByAppIdAudioToTextResponse + = PostAppsByAppIdAudioToTextResponses[keyof PostAppsByAppIdAudioToTextResponses] + +export type GetAppsByAppIdChatConversationsData = { + body?: never + path: { + app_id: string + } + query?: { + annotation_status?: 'annotated' | 'not_annotated' | 'all' + end?: string | null + keyword?: string | null + limit?: number + page?: number + sort_by?: 'created_at' | '-created_at' | 'updated_at' | '-updated_at' + start?: string | null + } + url: '/apps/{app_id}/chat-conversations' +} + +export type GetAppsByAppIdChatConversationsErrors = { + 403: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdChatConversationsError + = GetAppsByAppIdChatConversationsErrors[keyof GetAppsByAppIdChatConversationsErrors] + +export type GetAppsByAppIdChatConversationsResponses = { + 200: ConversationWithSummaryPagination +} + +export type GetAppsByAppIdChatConversationsResponse + = GetAppsByAppIdChatConversationsResponses[keyof GetAppsByAppIdChatConversationsResponses] + +export type DeleteAppsByAppIdChatConversationsByConversationIdData = { + body?: never + path: { + app_id: string + conversation_id: string + } + query?: never + url: '/apps/{app_id}/chat-conversations/{conversation_id}' +} + +export type DeleteAppsByAppIdChatConversationsByConversationIdErrors = { + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type DeleteAppsByAppIdChatConversationsByConversationIdError + = DeleteAppsByAppIdChatConversationsByConversationIdErrors[keyof DeleteAppsByAppIdChatConversationsByConversationIdErrors] + +export type DeleteAppsByAppIdChatConversationsByConversationIdResponses = { + 204: { + [key: string]: unknown + } +} + +export type DeleteAppsByAppIdChatConversationsByConversationIdResponse + = DeleteAppsByAppIdChatConversationsByConversationIdResponses[keyof DeleteAppsByAppIdChatConversationsByConversationIdResponses] + +export type GetAppsByAppIdChatConversationsByConversationIdData = { + body?: never + path: { + app_id: string + conversation_id: string + } + query?: never + url: '/apps/{app_id}/chat-conversations/{conversation_id}' +} + +export type GetAppsByAppIdChatConversationsByConversationIdErrors = { + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdChatConversationsByConversationIdError + = GetAppsByAppIdChatConversationsByConversationIdErrors[keyof GetAppsByAppIdChatConversationsByConversationIdErrors] + +export type GetAppsByAppIdChatConversationsByConversationIdResponses = { + 200: ConversationDetail +} + +export type GetAppsByAppIdChatConversationsByConversationIdResponse + = GetAppsByAppIdChatConversationsByConversationIdResponses[keyof GetAppsByAppIdChatConversationsByConversationIdResponses] + +export type GetAppsByAppIdChatMessagesData = { + body?: never + path: { + app_id: string + } + query: { + conversation_id: string + first_id?: string | null + limit?: number + } + url: '/apps/{app_id}/chat-messages' +} + +export type GetAppsByAppIdChatMessagesErrors = { + 404: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdChatMessagesError + = GetAppsByAppIdChatMessagesErrors[keyof GetAppsByAppIdChatMessagesErrors] + +export type GetAppsByAppIdChatMessagesResponses = { + 200: MessageInfiniteScrollPaginationResponse +} + +export type GetAppsByAppIdChatMessagesResponse + = GetAppsByAppIdChatMessagesResponses[keyof GetAppsByAppIdChatMessagesResponses] + +export type GetAppsByAppIdChatMessagesByMessageIdSuggestedQuestionsData = { + body?: never + path: { + app_id: string + message_id: string + } + query?: never + url: '/apps/{app_id}/chat-messages/{message_id}/suggested-questions' +} + +export type GetAppsByAppIdChatMessagesByMessageIdSuggestedQuestionsErrors = { + 404: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdChatMessagesByMessageIdSuggestedQuestionsError + = GetAppsByAppIdChatMessagesByMessageIdSuggestedQuestionsErrors[keyof GetAppsByAppIdChatMessagesByMessageIdSuggestedQuestionsErrors] + +export type GetAppsByAppIdChatMessagesByMessageIdSuggestedQuestionsResponses = { + 200: SuggestedQuestionsResponse +} + +export type GetAppsByAppIdChatMessagesByMessageIdSuggestedQuestionsResponse + = GetAppsByAppIdChatMessagesByMessageIdSuggestedQuestionsResponses[keyof GetAppsByAppIdChatMessagesByMessageIdSuggestedQuestionsResponses] + +export type PostAppsByAppIdChatMessagesByTaskIdStopData = { + body?: never + path: { + app_id: string + task_id: string + } + query?: never + url: '/apps/{app_id}/chat-messages/{task_id}/stop' +} + +export type PostAppsByAppIdChatMessagesByTaskIdStopResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdChatMessagesByTaskIdStopResponse + = PostAppsByAppIdChatMessagesByTaskIdStopResponses[keyof PostAppsByAppIdChatMessagesByTaskIdStopResponses] + +export type GetAppsByAppIdCompletionConversationsData = { + body?: never + path: { + app_id: string + } + query?: { + annotation_status?: 'annotated' | 'not_annotated' | 'all' + end?: string | null + keyword?: string | null + limit?: number + page?: number + start?: string | null + } + url: '/apps/{app_id}/completion-conversations' +} + +export type GetAppsByAppIdCompletionConversationsErrors = { + 403: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdCompletionConversationsError + = GetAppsByAppIdCompletionConversationsErrors[keyof GetAppsByAppIdCompletionConversationsErrors] + +export type GetAppsByAppIdCompletionConversationsResponses = { + 200: ConversationPagination +} + +export type GetAppsByAppIdCompletionConversationsResponse + = GetAppsByAppIdCompletionConversationsResponses[keyof GetAppsByAppIdCompletionConversationsResponses] + +export type DeleteAppsByAppIdCompletionConversationsByConversationIdData = { + body?: never + path: { + app_id: string + conversation_id: string + } + query?: never + url: '/apps/{app_id}/completion-conversations/{conversation_id}' +} + +export type DeleteAppsByAppIdCompletionConversationsByConversationIdErrors = { + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type DeleteAppsByAppIdCompletionConversationsByConversationIdError + = DeleteAppsByAppIdCompletionConversationsByConversationIdErrors[keyof DeleteAppsByAppIdCompletionConversationsByConversationIdErrors] + +export type DeleteAppsByAppIdCompletionConversationsByConversationIdResponses = { + 204: { + [key: string]: unknown + } +} + +export type DeleteAppsByAppIdCompletionConversationsByConversationIdResponse + = DeleteAppsByAppIdCompletionConversationsByConversationIdResponses[keyof DeleteAppsByAppIdCompletionConversationsByConversationIdResponses] + +export type GetAppsByAppIdCompletionConversationsByConversationIdData = { + body?: never + path: { + app_id: string + conversation_id: string + } + query?: never + url: '/apps/{app_id}/completion-conversations/{conversation_id}' +} + +export type GetAppsByAppIdCompletionConversationsByConversationIdErrors = { + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdCompletionConversationsByConversationIdError + = GetAppsByAppIdCompletionConversationsByConversationIdErrors[keyof GetAppsByAppIdCompletionConversationsByConversationIdErrors] + +export type GetAppsByAppIdCompletionConversationsByConversationIdResponses = { + 200: ConversationMessageDetail +} + +export type GetAppsByAppIdCompletionConversationsByConversationIdResponse + = GetAppsByAppIdCompletionConversationsByConversationIdResponses[keyof GetAppsByAppIdCompletionConversationsByConversationIdResponses] + +export type PostAppsByAppIdCompletionMessagesData = { + body: CompletionMessagePayload + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/completion-messages' +} + +export type PostAppsByAppIdCompletionMessagesErrors = { + 400: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdCompletionMessagesError + = PostAppsByAppIdCompletionMessagesErrors[keyof PostAppsByAppIdCompletionMessagesErrors] + +export type PostAppsByAppIdCompletionMessagesResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdCompletionMessagesResponse + = PostAppsByAppIdCompletionMessagesResponses[keyof PostAppsByAppIdCompletionMessagesResponses] + +export type PostAppsByAppIdCompletionMessagesByTaskIdStopData = { + body?: never + path: { + app_id: string + task_id: string + } + query?: never + url: '/apps/{app_id}/completion-messages/{task_id}/stop' +} + +export type PostAppsByAppIdCompletionMessagesByTaskIdStopResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdCompletionMessagesByTaskIdStopResponse + = PostAppsByAppIdCompletionMessagesByTaskIdStopResponses[keyof PostAppsByAppIdCompletionMessagesByTaskIdStopResponses] + +export type GetAppsByAppIdConversationVariablesData = { + body?: never + path: { + app_id: string + } + query: { + conversation_id: string + } + url: '/apps/{app_id}/conversation-variables' +} + +export type GetAppsByAppIdConversationVariablesResponses = { + 200: PaginatedConversationVariableResponse +} + +export type GetAppsByAppIdConversationVariablesResponse + = GetAppsByAppIdConversationVariablesResponses[keyof GetAppsByAppIdConversationVariablesResponses] + +export type PostAppsByAppIdConvertToWorkflowData = { + body: ConvertToWorkflowPayload + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/convert-to-workflow' +} + +export type PostAppsByAppIdConvertToWorkflowErrors = { + 400: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdConvertToWorkflowError + = PostAppsByAppIdConvertToWorkflowErrors[keyof PostAppsByAppIdConvertToWorkflowErrors] + +export type PostAppsByAppIdConvertToWorkflowResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdConvertToWorkflowResponse + = PostAppsByAppIdConvertToWorkflowResponses[keyof PostAppsByAppIdConvertToWorkflowResponses] + +export type PostAppsByAppIdCopyData = { + body: CopyAppPayload + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/copy' +} + +export type PostAppsByAppIdCopyErrors = { + 403: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdCopyError = PostAppsByAppIdCopyErrors[keyof PostAppsByAppIdCopyErrors] + +export type PostAppsByAppIdCopyResponses = { + 201: AppDetailWithSite +} + +export type PostAppsByAppIdCopyResponse + = PostAppsByAppIdCopyResponses[keyof PostAppsByAppIdCopyResponses] + +export type GetAppsByAppIdExportData = { + body?: never + path: { + app_id: string + } + query?: { + include_secret?: boolean + workflow_id?: string | null + } + url: '/apps/{app_id}/export' +} + +export type GetAppsByAppIdExportErrors = { + 403: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdExportError = GetAppsByAppIdExportErrors[keyof GetAppsByAppIdExportErrors] + +export type GetAppsByAppIdExportResponses = { + 200: AppExportResponse +} + +export type GetAppsByAppIdExportResponse + = GetAppsByAppIdExportResponses[keyof GetAppsByAppIdExportResponses] + +export type PostAppsByAppIdFeedbacksData = { + body: MessageFeedbackPayload + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/feedbacks' +} + +export type PostAppsByAppIdFeedbacksErrors = { + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdFeedbacksError + = PostAppsByAppIdFeedbacksErrors[keyof PostAppsByAppIdFeedbacksErrors] + +export type PostAppsByAppIdFeedbacksResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdFeedbacksResponse + = PostAppsByAppIdFeedbacksResponses[keyof PostAppsByAppIdFeedbacksResponses] + +export type GetAppsByAppIdFeedbacksExportData = { + body?: never + path: { + app_id: string + } + query?: { + end_date?: string | null + format?: 'csv' | 'json' + from_source?: 'user' | 'admin' | null + has_comment?: boolean | null + rating?: 'like' | 'dislike' | null + start_date?: string | null + } + url: '/apps/{app_id}/feedbacks/export' +} + +export type GetAppsByAppIdFeedbacksExportErrors = { + 400: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdFeedbacksExportError + = GetAppsByAppIdFeedbacksExportErrors[keyof GetAppsByAppIdFeedbacksExportErrors] + +export type GetAppsByAppIdFeedbacksExportResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdFeedbacksExportResponse + = GetAppsByAppIdFeedbacksExportResponses[keyof GetAppsByAppIdFeedbacksExportResponses] + +export type PostAppsByAppIdIconData = { + body: AppIconPayload + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/icon' +} + +export type PostAppsByAppIdIconErrors = { + 403: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdIconError = PostAppsByAppIdIconErrors[keyof PostAppsByAppIdIconErrors] + +export type PostAppsByAppIdIconResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdIconResponse + = PostAppsByAppIdIconResponses[keyof PostAppsByAppIdIconResponses] + +export type GetAppsByAppIdMessagesByMessageIdData = { + body?: never + path: { + app_id: string + message_id: string + } + query?: never + url: '/apps/{app_id}/messages/{message_id}' +} + +export type GetAppsByAppIdMessagesByMessageIdErrors = { + 404: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdMessagesByMessageIdError + = GetAppsByAppIdMessagesByMessageIdErrors[keyof GetAppsByAppIdMessagesByMessageIdErrors] + +export type GetAppsByAppIdMessagesByMessageIdResponses = { + 200: MessageDetailResponse +} + +export type GetAppsByAppIdMessagesByMessageIdResponse + = GetAppsByAppIdMessagesByMessageIdResponses[keyof GetAppsByAppIdMessagesByMessageIdResponses] + +export type PostAppsByAppIdModelConfigData = { + body: ModelConfigRequest + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/model-config' +} + +export type PostAppsByAppIdModelConfigErrors = { + 400: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdModelConfigError + = PostAppsByAppIdModelConfigErrors[keyof PostAppsByAppIdModelConfigErrors] + +export type PostAppsByAppIdModelConfigResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdModelConfigResponse + = PostAppsByAppIdModelConfigResponses[keyof PostAppsByAppIdModelConfigResponses] + +export type PostAppsByAppIdNameData = { + body: AppNamePayload + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/name' +} + +export type PostAppsByAppIdNameResponses = { + 200: AppDetail +} + +export type PostAppsByAppIdNameResponse + = PostAppsByAppIdNameResponses[keyof PostAppsByAppIdNameResponses] + +export type PostAppsByAppIdPublishToCreatorsPlatformData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/publish-to-creators-platform' +} + +export type PostAppsByAppIdPublishToCreatorsPlatformResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdPublishToCreatorsPlatformResponse + = PostAppsByAppIdPublishToCreatorsPlatformResponses[keyof PostAppsByAppIdPublishToCreatorsPlatformResponses] + +export type GetAppsByAppIdServerData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/server' +} + +export type GetAppsByAppIdServerResponses = { + 200: AppMcpServerResponse +} + +export type GetAppsByAppIdServerResponse + = GetAppsByAppIdServerResponses[keyof GetAppsByAppIdServerResponses] + +export type PostAppsByAppIdServerData = { + body: McpServerCreatePayload + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/server' +} + +export type PostAppsByAppIdServerErrors = { + 403: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdServerError + = PostAppsByAppIdServerErrors[keyof PostAppsByAppIdServerErrors] + +export type PostAppsByAppIdServerResponses = { + 201: AppMcpServerResponse +} + +export type PostAppsByAppIdServerResponse + = PostAppsByAppIdServerResponses[keyof PostAppsByAppIdServerResponses] + +export type PutAppsByAppIdServerData = { + body: McpServerUpdatePayload + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/server' +} + +export type PutAppsByAppIdServerErrors = { + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PutAppsByAppIdServerError = PutAppsByAppIdServerErrors[keyof PutAppsByAppIdServerErrors] + +export type PutAppsByAppIdServerResponses = { + 200: AppMcpServerResponse +} + +export type PutAppsByAppIdServerResponse + = PutAppsByAppIdServerResponses[keyof PutAppsByAppIdServerResponses] + +export type PostAppsByAppIdSiteData = { + body: AppSiteUpdatePayload + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/site' +} + +export type PostAppsByAppIdSiteErrors = { + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdSiteError = PostAppsByAppIdSiteErrors[keyof PostAppsByAppIdSiteErrors] + +export type PostAppsByAppIdSiteResponses = { + 200: AppSiteResponse +} + +export type PostAppsByAppIdSiteResponse + = PostAppsByAppIdSiteResponses[keyof PostAppsByAppIdSiteResponses] + +export type PostAppsByAppIdSiteEnableData = { + body: AppSiteStatusPayload + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/site-enable' +} + +export type PostAppsByAppIdSiteEnableErrors = { + 403: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdSiteEnableError + = PostAppsByAppIdSiteEnableErrors[keyof PostAppsByAppIdSiteEnableErrors] + +export type PostAppsByAppIdSiteEnableResponses = { + 200: AppDetail +} + +export type PostAppsByAppIdSiteEnableResponse + = PostAppsByAppIdSiteEnableResponses[keyof PostAppsByAppIdSiteEnableResponses] + +export type PostAppsByAppIdSiteAccessTokenResetData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/site/access-token-reset' +} + +export type PostAppsByAppIdSiteAccessTokenResetErrors = { + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdSiteAccessTokenResetError + = PostAppsByAppIdSiteAccessTokenResetErrors[keyof PostAppsByAppIdSiteAccessTokenResetErrors] + +export type PostAppsByAppIdSiteAccessTokenResetResponses = { + 200: AppSiteResponse +} + +export type PostAppsByAppIdSiteAccessTokenResetResponse + = PostAppsByAppIdSiteAccessTokenResetResponses[keyof PostAppsByAppIdSiteAccessTokenResetResponses] + +export type GetAppsByAppIdStatisticsAverageResponseTimeData = { + body?: never + path: { + app_id: string + } + query?: { + end?: string | null + start?: string | null + } + url: '/apps/{app_id}/statistics/average-response-time' +} + +export type GetAppsByAppIdStatisticsAverageResponseTimeResponses = { + 200: Array<{ + [key: string]: unknown + }> +} + +export type GetAppsByAppIdStatisticsAverageResponseTimeResponse + = GetAppsByAppIdStatisticsAverageResponseTimeResponses[keyof GetAppsByAppIdStatisticsAverageResponseTimeResponses] + +export type GetAppsByAppIdStatisticsAverageSessionInteractionsData = { + body?: never + path: { + app_id: string + } + query?: { + end?: string | null + start?: string | null + } + url: '/apps/{app_id}/statistics/average-session-interactions' +} + +export type GetAppsByAppIdStatisticsAverageSessionInteractionsResponses = { + 200: Array<{ + [key: string]: unknown + }> +} + +export type GetAppsByAppIdStatisticsAverageSessionInteractionsResponse + = GetAppsByAppIdStatisticsAverageSessionInteractionsResponses[keyof GetAppsByAppIdStatisticsAverageSessionInteractionsResponses] + +export type GetAppsByAppIdStatisticsDailyConversationsData = { + body?: never + path: { + app_id: string + } + query?: { + end?: string | null + start?: string | null + } + url: '/apps/{app_id}/statistics/daily-conversations' +} + +export type GetAppsByAppIdStatisticsDailyConversationsResponses = { + 200: Array<{ + [key: string]: unknown + }> +} + +export type GetAppsByAppIdStatisticsDailyConversationsResponse + = GetAppsByAppIdStatisticsDailyConversationsResponses[keyof GetAppsByAppIdStatisticsDailyConversationsResponses] + +export type GetAppsByAppIdStatisticsDailyEndUsersData = { + body?: never + path: { + app_id: string + } + query?: { + end?: string | null + start?: string | null + } + url: '/apps/{app_id}/statistics/daily-end-users' +} + +export type GetAppsByAppIdStatisticsDailyEndUsersResponses = { + 200: Array<{ + [key: string]: unknown + }> +} + +export type GetAppsByAppIdStatisticsDailyEndUsersResponse + = GetAppsByAppIdStatisticsDailyEndUsersResponses[keyof GetAppsByAppIdStatisticsDailyEndUsersResponses] + +export type GetAppsByAppIdStatisticsDailyMessagesData = { + body?: never + path: { + app_id: string + } + query?: { + end?: string | null + start?: string | null + } + url: '/apps/{app_id}/statistics/daily-messages' +} + +export type GetAppsByAppIdStatisticsDailyMessagesResponses = { + 200: Array<{ + [key: string]: unknown + }> +} + +export type GetAppsByAppIdStatisticsDailyMessagesResponse + = GetAppsByAppIdStatisticsDailyMessagesResponses[keyof GetAppsByAppIdStatisticsDailyMessagesResponses] + +export type GetAppsByAppIdStatisticsTokenCostsData = { + body?: never + path: { + app_id: string + } + query?: { + end?: string | null + start?: string | null + } + url: '/apps/{app_id}/statistics/token-costs' +} + +export type GetAppsByAppIdStatisticsTokenCostsResponses = { + 200: Array<{ + [key: string]: unknown + }> +} + +export type GetAppsByAppIdStatisticsTokenCostsResponse + = GetAppsByAppIdStatisticsTokenCostsResponses[keyof GetAppsByAppIdStatisticsTokenCostsResponses] + +export type GetAppsByAppIdStatisticsTokensPerSecondData = { + body?: never + path: { + app_id: string + } + query?: { + end?: string | null + start?: string | null + } + url: '/apps/{app_id}/statistics/tokens-per-second' +} + +export type GetAppsByAppIdStatisticsTokensPerSecondResponses = { + 200: Array<{ + [key: string]: unknown + }> +} + +export type GetAppsByAppIdStatisticsTokensPerSecondResponse + = GetAppsByAppIdStatisticsTokensPerSecondResponses[keyof GetAppsByAppIdStatisticsTokensPerSecondResponses] + +export type GetAppsByAppIdStatisticsUserSatisfactionRateData = { + body?: never + path: { + app_id: string + } + query?: { + end?: string | null + start?: string | null + } + url: '/apps/{app_id}/statistics/user-satisfaction-rate' +} + +export type GetAppsByAppIdStatisticsUserSatisfactionRateResponses = { + 200: Array<{ + [key: string]: unknown + }> +} + +export type GetAppsByAppIdStatisticsUserSatisfactionRateResponse + = GetAppsByAppIdStatisticsUserSatisfactionRateResponses[keyof GetAppsByAppIdStatisticsUserSatisfactionRateResponses] + +export type PostAppsByAppIdTextToAudioData = { + body: TextToSpeechPayload + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/text-to-audio' +} + +export type PostAppsByAppIdTextToAudioErrors = { + 400: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdTextToAudioError + = PostAppsByAppIdTextToAudioErrors[keyof PostAppsByAppIdTextToAudioErrors] + +export type PostAppsByAppIdTextToAudioResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdTextToAudioResponse + = PostAppsByAppIdTextToAudioResponses[keyof PostAppsByAppIdTextToAudioResponses] + +export type GetAppsByAppIdTextToAudioVoicesData = { + body?: never + path: { + app_id: string + } + query: { + language: string + } + url: '/apps/{app_id}/text-to-audio/voices' +} + +export type GetAppsByAppIdTextToAudioVoicesErrors = { + 400: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdTextToAudioVoicesError + = GetAppsByAppIdTextToAudioVoicesErrors[keyof GetAppsByAppIdTextToAudioVoicesErrors] + +export type GetAppsByAppIdTextToAudioVoicesResponses = { + 200: Array<{ + [key: string]: unknown + }> +} + +export type GetAppsByAppIdTextToAudioVoicesResponse + = GetAppsByAppIdTextToAudioVoicesResponses[keyof GetAppsByAppIdTextToAudioVoicesResponses] + +export type GetAppsByAppIdTraceData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/trace' +} + +export type GetAppsByAppIdTraceResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdTraceResponse + = GetAppsByAppIdTraceResponses[keyof GetAppsByAppIdTraceResponses] + +export type PostAppsByAppIdTraceData = { + body: AppTracePayload + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/trace' +} + +export type PostAppsByAppIdTraceErrors = { + 403: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdTraceError = PostAppsByAppIdTraceErrors[keyof PostAppsByAppIdTraceErrors] + +export type PostAppsByAppIdTraceResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdTraceResponse + = PostAppsByAppIdTraceResponses[keyof PostAppsByAppIdTraceResponses] + +export type DeleteAppsByAppIdTraceConfigData = { + body: TraceProviderQuery + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/trace-config' +} + +export type DeleteAppsByAppIdTraceConfigErrors = { + 400: { + [key: string]: unknown + } +} + +export type DeleteAppsByAppIdTraceConfigError + = DeleteAppsByAppIdTraceConfigErrors[keyof DeleteAppsByAppIdTraceConfigErrors] + +export type DeleteAppsByAppIdTraceConfigResponses = { + 204: { + [key: string]: unknown + } +} + +export type DeleteAppsByAppIdTraceConfigResponse + = DeleteAppsByAppIdTraceConfigResponses[keyof DeleteAppsByAppIdTraceConfigResponses] + +export type GetAppsByAppIdTraceConfigData = { + body?: never + path: { + app_id: string + } + query: { + tracing_provider: string + } + url: '/apps/{app_id}/trace-config' +} + +export type GetAppsByAppIdTraceConfigErrors = { + 400: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdTraceConfigError + = GetAppsByAppIdTraceConfigErrors[keyof GetAppsByAppIdTraceConfigErrors] + +export type GetAppsByAppIdTraceConfigResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdTraceConfigResponse + = GetAppsByAppIdTraceConfigResponses[keyof GetAppsByAppIdTraceConfigResponses] + +export type PatchAppsByAppIdTraceConfigData = { + body: TraceConfigPayload + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/trace-config' +} + +export type PatchAppsByAppIdTraceConfigErrors = { + 400: { + [key: string]: unknown + } +} + +export type PatchAppsByAppIdTraceConfigError + = PatchAppsByAppIdTraceConfigErrors[keyof PatchAppsByAppIdTraceConfigErrors] + +export type PatchAppsByAppIdTraceConfigResponses = { + 200: { + [key: string]: unknown + } +} + +export type PatchAppsByAppIdTraceConfigResponse + = PatchAppsByAppIdTraceConfigResponses[keyof PatchAppsByAppIdTraceConfigResponses] + +export type PostAppsByAppIdTraceConfigData = { + body: TraceConfigPayload + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/trace-config' +} + +export type PostAppsByAppIdTraceConfigErrors = { + 400: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdTraceConfigError + = PostAppsByAppIdTraceConfigErrors[keyof PostAppsByAppIdTraceConfigErrors] + +export type PostAppsByAppIdTraceConfigResponses = { + 201: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdTraceConfigResponse + = PostAppsByAppIdTraceConfigResponses[keyof PostAppsByAppIdTraceConfigResponses] + +export type PostAppsByAppIdTriggerEnableData = { + body: ParserEnable + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/trigger-enable' +} + +export type PostAppsByAppIdTriggerEnableResponses = { + 200: WorkflowTriggerResponse +} + +export type PostAppsByAppIdTriggerEnableResponse + = PostAppsByAppIdTriggerEnableResponses[keyof PostAppsByAppIdTriggerEnableResponses] + +export type GetAppsByAppIdTriggersData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/triggers' +} + +export type GetAppsByAppIdTriggersResponses = { + 200: WorkflowTriggerListResponse +} + +export type GetAppsByAppIdTriggersResponse + = GetAppsByAppIdTriggersResponses[keyof GetAppsByAppIdTriggersResponses] + +export type GetAppsByAppIdWorkflowAppLogsData = { + body?: never + path: { + app_id: string + } + query?: { + created_at__after?: string | null + created_at__before?: string | null + created_by_account?: string | null + created_by_end_user_session_id?: string | null + detail?: boolean + keyword?: string | null + limit?: number + page?: number + status?: string | null + } + url: '/apps/{app_id}/workflow-app-logs' +} + +export type GetAppsByAppIdWorkflowAppLogsResponses = { + 200: WorkflowAppLogPaginationResponse +} + +export type GetAppsByAppIdWorkflowAppLogsResponse + = GetAppsByAppIdWorkflowAppLogsResponses[keyof GetAppsByAppIdWorkflowAppLogsResponses] + +export type GetAppsByAppIdWorkflowArchivedLogsData = { + body?: never + path: { + app_id: string + } + query?: { + created_at__after?: string | null + created_at__before?: string | null + created_by_account?: string | null + created_by_end_user_session_id?: string | null + detail?: boolean + keyword?: string | null + limit?: number + page?: number + status?: string | null + } + url: '/apps/{app_id}/workflow-archived-logs' +} + +export type GetAppsByAppIdWorkflowArchivedLogsResponses = { + 200: WorkflowArchivedLogPaginationResponse +} + +export type GetAppsByAppIdWorkflowArchivedLogsResponse + = GetAppsByAppIdWorkflowArchivedLogsResponses[keyof GetAppsByAppIdWorkflowArchivedLogsResponses] + +export type GetAppsByAppIdWorkflowRunsData = { + body?: never + path: { + app_id: string + } + query?: { + triggered_from?: 'debugging' | 'app-run' | null + status?: 'running' | 'succeeded' | 'failed' | 'stopped' | 'partial-succeeded' | null + last_id?: string | null + limit?: number + } + url: '/apps/{app_id}/workflow-runs' +} + +export type GetAppsByAppIdWorkflowRunsResponses = { + 200: WorkflowRunPagination +} + +export type GetAppsByAppIdWorkflowRunsResponse + = GetAppsByAppIdWorkflowRunsResponses[keyof GetAppsByAppIdWorkflowRunsResponses] + +export type GetAppsByAppIdWorkflowRunsCountData = { + body?: never + path: { + app_id: string + } + query?: { + triggered_from?: 'debugging' | 'app-run' | null + time_range?: string | null + status?: 'running' | 'succeeded' | 'failed' | 'stopped' | 'partial-succeeded' | null + } + url: '/apps/{app_id}/workflow-runs/count' +} + +export type GetAppsByAppIdWorkflowRunsCountResponses = { + 200: WorkflowRunCount +} + +export type GetAppsByAppIdWorkflowRunsCountResponse + = GetAppsByAppIdWorkflowRunsCountResponses[keyof GetAppsByAppIdWorkflowRunsCountResponses] + +export type PostAppsByAppIdWorkflowRunsTasksByTaskIdStopData = { + body?: never + path: { + app_id: string + task_id: string + } + query?: never + url: '/apps/{app_id}/workflow-runs/tasks/{task_id}/stop' +} + +export type PostAppsByAppIdWorkflowRunsTasksByTaskIdStopErrors = { + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdWorkflowRunsTasksByTaskIdStopError + = PostAppsByAppIdWorkflowRunsTasksByTaskIdStopErrors[keyof PostAppsByAppIdWorkflowRunsTasksByTaskIdStopErrors] + +export type PostAppsByAppIdWorkflowRunsTasksByTaskIdStopResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdWorkflowRunsTasksByTaskIdStopResponse + = PostAppsByAppIdWorkflowRunsTasksByTaskIdStopResponses[keyof PostAppsByAppIdWorkflowRunsTasksByTaskIdStopResponses] + +export type GetAppsByAppIdWorkflowRunsByRunIdData = { + body?: never + path: { + app_id: string + run_id: string + } + query?: never + url: '/apps/{app_id}/workflow-runs/{run_id}' +} + +export type GetAppsByAppIdWorkflowRunsByRunIdErrors = { + 404: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdWorkflowRunsByRunIdError + = GetAppsByAppIdWorkflowRunsByRunIdErrors[keyof GetAppsByAppIdWorkflowRunsByRunIdErrors] + +export type GetAppsByAppIdWorkflowRunsByRunIdResponses = { + 200: WorkflowRunDetail +} + +export type GetAppsByAppIdWorkflowRunsByRunIdResponse + = GetAppsByAppIdWorkflowRunsByRunIdResponses[keyof GetAppsByAppIdWorkflowRunsByRunIdResponses] + +export type GetAppsByAppIdWorkflowRunsByRunIdExportData = { + body?: never + path: { + app_id: string + run_id: string + } + query?: never + url: '/apps/{app_id}/workflow-runs/{run_id}/export' +} + +export type GetAppsByAppIdWorkflowRunsByRunIdExportResponses = { + 200: WorkflowRunExport +} + +export type GetAppsByAppIdWorkflowRunsByRunIdExportResponse + = GetAppsByAppIdWorkflowRunsByRunIdExportResponses[keyof GetAppsByAppIdWorkflowRunsByRunIdExportResponses] + +export type GetAppsByAppIdWorkflowRunsByRunIdNodeExecutionsData = { + body?: never + path: { + app_id: string + run_id: string + } + query?: never + url: '/apps/{app_id}/workflow-runs/{run_id}/node-executions' +} + +export type GetAppsByAppIdWorkflowRunsByRunIdNodeExecutionsErrors = { + 404: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdWorkflowRunsByRunIdNodeExecutionsError + = GetAppsByAppIdWorkflowRunsByRunIdNodeExecutionsErrors[keyof GetAppsByAppIdWorkflowRunsByRunIdNodeExecutionsErrors] + +export type GetAppsByAppIdWorkflowRunsByRunIdNodeExecutionsResponses = { + 200: WorkflowRunNodeExecutionList +} + +export type GetAppsByAppIdWorkflowRunsByRunIdNodeExecutionsResponse + = GetAppsByAppIdWorkflowRunsByRunIdNodeExecutionsResponses[keyof GetAppsByAppIdWorkflowRunsByRunIdNodeExecutionsResponses] + +export type GetAppsByAppIdWorkflowCommentsData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/workflow/comments' +} + +export type GetAppsByAppIdWorkflowCommentsResponses = { + 200: WorkflowCommentBasic +} + +export type GetAppsByAppIdWorkflowCommentsResponse + = GetAppsByAppIdWorkflowCommentsResponses[keyof GetAppsByAppIdWorkflowCommentsResponses] + +export type PostAppsByAppIdWorkflowCommentsData = { + body: WorkflowCommentCreatePayload + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/workflow/comments' +} + +export type PostAppsByAppIdWorkflowCommentsResponses = { + 201: WorkflowCommentCreate +} + +export type PostAppsByAppIdWorkflowCommentsResponse + = PostAppsByAppIdWorkflowCommentsResponses[keyof PostAppsByAppIdWorkflowCommentsResponses] + +export type GetAppsByAppIdWorkflowCommentsMentionUsersData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/workflow/comments/mention-users' +} + +export type GetAppsByAppIdWorkflowCommentsMentionUsersResponses = { + 200: WorkflowCommentMentionUsersPayload +} + +export type GetAppsByAppIdWorkflowCommentsMentionUsersResponse + = GetAppsByAppIdWorkflowCommentsMentionUsersResponses[keyof GetAppsByAppIdWorkflowCommentsMentionUsersResponses] + +export type DeleteAppsByAppIdWorkflowCommentsByCommentIdData = { + body?: never + path: { + app_id: string + comment_id: string + } + query?: never + url: '/apps/{app_id}/workflow/comments/{comment_id}' +} + +export type DeleteAppsByAppIdWorkflowCommentsByCommentIdResponses = { + 204: { + [key: string]: unknown + } +} + +export type DeleteAppsByAppIdWorkflowCommentsByCommentIdResponse + = DeleteAppsByAppIdWorkflowCommentsByCommentIdResponses[keyof DeleteAppsByAppIdWorkflowCommentsByCommentIdResponses] + +export type GetAppsByAppIdWorkflowCommentsByCommentIdData = { + body?: never + path: { + app_id: string + comment_id: string + } + query?: never + url: '/apps/{app_id}/workflow/comments/{comment_id}' +} + +export type GetAppsByAppIdWorkflowCommentsByCommentIdResponses = { + 200: WorkflowCommentDetail +} + +export type GetAppsByAppIdWorkflowCommentsByCommentIdResponse + = GetAppsByAppIdWorkflowCommentsByCommentIdResponses[keyof GetAppsByAppIdWorkflowCommentsByCommentIdResponses] + +export type PutAppsByAppIdWorkflowCommentsByCommentIdData = { + body: WorkflowCommentUpdatePayload + path: { + app_id: string + comment_id: string + } + query?: never + url: '/apps/{app_id}/workflow/comments/{comment_id}' +} + +export type PutAppsByAppIdWorkflowCommentsByCommentIdResponses = { + 200: WorkflowCommentUpdate +} + +export type PutAppsByAppIdWorkflowCommentsByCommentIdResponse + = PutAppsByAppIdWorkflowCommentsByCommentIdResponses[keyof PutAppsByAppIdWorkflowCommentsByCommentIdResponses] + +export type PostAppsByAppIdWorkflowCommentsByCommentIdRepliesData = { + body: WorkflowCommentReplyPayload + path: { + app_id: string + comment_id: string + } + query?: never + url: '/apps/{app_id}/workflow/comments/{comment_id}/replies' +} + +export type PostAppsByAppIdWorkflowCommentsByCommentIdRepliesResponses = { + 201: WorkflowCommentReplyCreate +} + +export type PostAppsByAppIdWorkflowCommentsByCommentIdRepliesResponse + = PostAppsByAppIdWorkflowCommentsByCommentIdRepliesResponses[keyof PostAppsByAppIdWorkflowCommentsByCommentIdRepliesResponses] + +export type DeleteAppsByAppIdWorkflowCommentsByCommentIdRepliesByReplyIdData = { + body?: never + path: { + app_id: string + comment_id: string + reply_id: string + } + query?: never + url: '/apps/{app_id}/workflow/comments/{comment_id}/replies/{reply_id}' +} + +export type DeleteAppsByAppIdWorkflowCommentsByCommentIdRepliesByReplyIdResponses = { + 204: { + [key: string]: unknown + } +} + +export type DeleteAppsByAppIdWorkflowCommentsByCommentIdRepliesByReplyIdResponse + = DeleteAppsByAppIdWorkflowCommentsByCommentIdRepliesByReplyIdResponses[keyof DeleteAppsByAppIdWorkflowCommentsByCommentIdRepliesByReplyIdResponses] + +export type PutAppsByAppIdWorkflowCommentsByCommentIdRepliesByReplyIdData = { + body: WorkflowCommentReplyPayload + path: { + app_id: string + comment_id: string + reply_id: string + } + query?: never + url: '/apps/{app_id}/workflow/comments/{comment_id}/replies/{reply_id}' +} + +export type PutAppsByAppIdWorkflowCommentsByCommentIdRepliesByReplyIdResponses = { + 200: WorkflowCommentReplyUpdate +} + +export type PutAppsByAppIdWorkflowCommentsByCommentIdRepliesByReplyIdResponse + = PutAppsByAppIdWorkflowCommentsByCommentIdRepliesByReplyIdResponses[keyof PutAppsByAppIdWorkflowCommentsByCommentIdRepliesByReplyIdResponses] + +export type PostAppsByAppIdWorkflowCommentsByCommentIdResolveData = { + body?: never + path: { + app_id: string + comment_id: string + } + query?: never + url: '/apps/{app_id}/workflow/comments/{comment_id}/resolve' +} + +export type PostAppsByAppIdWorkflowCommentsByCommentIdResolveResponses = { + 200: WorkflowCommentResolve +} + +export type PostAppsByAppIdWorkflowCommentsByCommentIdResolveResponse + = PostAppsByAppIdWorkflowCommentsByCommentIdResolveResponses[keyof PostAppsByAppIdWorkflowCommentsByCommentIdResolveResponses] + +export type GetAppsByAppIdWorkflowStatisticsAverageAppInteractionsData = { + body?: never + path: { + app_id: string + } + query?: { + end?: string | null + start?: string | null + } + url: '/apps/{app_id}/workflow/statistics/average-app-interactions' +} + +export type GetAppsByAppIdWorkflowStatisticsAverageAppInteractionsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdWorkflowStatisticsAverageAppInteractionsResponse + = GetAppsByAppIdWorkflowStatisticsAverageAppInteractionsResponses[keyof GetAppsByAppIdWorkflowStatisticsAverageAppInteractionsResponses] + +export type GetAppsByAppIdWorkflowStatisticsDailyConversationsData = { + body?: never + path: { + app_id: string + } + query?: { + end?: string | null + start?: string | null + } + url: '/apps/{app_id}/workflow/statistics/daily-conversations' +} + +export type GetAppsByAppIdWorkflowStatisticsDailyConversationsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdWorkflowStatisticsDailyConversationsResponse + = GetAppsByAppIdWorkflowStatisticsDailyConversationsResponses[keyof GetAppsByAppIdWorkflowStatisticsDailyConversationsResponses] + +export type GetAppsByAppIdWorkflowStatisticsDailyTerminalsData = { + body?: never + path: { + app_id: string + } + query?: { + end?: string | null + start?: string | null + } + url: '/apps/{app_id}/workflow/statistics/daily-terminals' +} + +export type GetAppsByAppIdWorkflowStatisticsDailyTerminalsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdWorkflowStatisticsDailyTerminalsResponse + = GetAppsByAppIdWorkflowStatisticsDailyTerminalsResponses[keyof GetAppsByAppIdWorkflowStatisticsDailyTerminalsResponses] + +export type GetAppsByAppIdWorkflowStatisticsTokenCostsData = { + body?: never + path: { + app_id: string + } + query?: { + end?: string | null + start?: string | null + } + url: '/apps/{app_id}/workflow/statistics/token-costs' +} + +export type GetAppsByAppIdWorkflowStatisticsTokenCostsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdWorkflowStatisticsTokenCostsResponse + = GetAppsByAppIdWorkflowStatisticsTokenCostsResponses[keyof GetAppsByAppIdWorkflowStatisticsTokenCostsResponses] + +export type GetAppsByAppIdWorkflowsData = { + body?: never + path: { + app_id: string + } + query?: { + limit?: number + named_only?: boolean + page?: number + user_id?: string | null + } + url: '/apps/{app_id}/workflows' +} + +export type GetAppsByAppIdWorkflowsResponses = { + 200: WorkflowPagination +} + +export type GetAppsByAppIdWorkflowsResponse + = GetAppsByAppIdWorkflowsResponses[keyof GetAppsByAppIdWorkflowsResponses] + +export type GetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/workflows/default-workflow-block-configs' +} + +export type GetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsResponse + = GetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsResponses[keyof GetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsResponses] + +export type GetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypeData = { + body?: never + path: { + app_id: string + block_type: string + } + query?: { + q?: string | null + } + url: '/apps/{app_id}/workflows/default-workflow-block-configs/{block_type}' +} + +export type GetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypeErrors = { + 404: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypeError + = GetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypeErrors[keyof GetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypeErrors] + +export type GetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypeResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypeResponse + = GetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypeResponses[keyof GetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypeResponses] + +export type GetAppsByAppIdWorkflowsDraftData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/workflows/draft' +} + +export type GetAppsByAppIdWorkflowsDraftErrors = { + 404: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdWorkflowsDraftError + = GetAppsByAppIdWorkflowsDraftErrors[keyof GetAppsByAppIdWorkflowsDraftErrors] + +export type GetAppsByAppIdWorkflowsDraftResponses = { + 200: Workflow +} + +export type GetAppsByAppIdWorkflowsDraftResponse + = GetAppsByAppIdWorkflowsDraftResponses[keyof GetAppsByAppIdWorkflowsDraftResponses] + +export type PostAppsByAppIdWorkflowsDraftData = { + body: SyncDraftWorkflowPayload + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/workflows/draft' +} + +export type PostAppsByAppIdWorkflowsDraftErrors = { + 400: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdWorkflowsDraftError + = PostAppsByAppIdWorkflowsDraftErrors[keyof PostAppsByAppIdWorkflowsDraftErrors] + +export type PostAppsByAppIdWorkflowsDraftResponses = { + 200: SyncDraftWorkflowResponse +} + +export type PostAppsByAppIdWorkflowsDraftResponse + = PostAppsByAppIdWorkflowsDraftResponses[keyof PostAppsByAppIdWorkflowsDraftResponses] + +export type GetAppsByAppIdWorkflowsDraftConversationVariablesData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/workflows/draft/conversation-variables' +} + +export type GetAppsByAppIdWorkflowsDraftConversationVariablesErrors = { + 404: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdWorkflowsDraftConversationVariablesError + = GetAppsByAppIdWorkflowsDraftConversationVariablesErrors[keyof GetAppsByAppIdWorkflowsDraftConversationVariablesErrors] + +export type GetAppsByAppIdWorkflowsDraftConversationVariablesResponses = { + 200: WorkflowDraftVariableList +} + +export type GetAppsByAppIdWorkflowsDraftConversationVariablesResponse + = GetAppsByAppIdWorkflowsDraftConversationVariablesResponses[keyof GetAppsByAppIdWorkflowsDraftConversationVariablesResponses] + +export type PostAppsByAppIdWorkflowsDraftConversationVariablesData = { + body: ConversationVariableUpdatePayload + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/workflows/draft/conversation-variables' +} + +export type PostAppsByAppIdWorkflowsDraftConversationVariablesResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdWorkflowsDraftConversationVariablesResponse + = PostAppsByAppIdWorkflowsDraftConversationVariablesResponses[keyof PostAppsByAppIdWorkflowsDraftConversationVariablesResponses] + +export type GetAppsByAppIdWorkflowsDraftEnvironmentVariablesData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/workflows/draft/environment-variables' +} + +export type GetAppsByAppIdWorkflowsDraftEnvironmentVariablesErrors = { + 404: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdWorkflowsDraftEnvironmentVariablesError + = GetAppsByAppIdWorkflowsDraftEnvironmentVariablesErrors[keyof GetAppsByAppIdWorkflowsDraftEnvironmentVariablesErrors] + +export type GetAppsByAppIdWorkflowsDraftEnvironmentVariablesResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdWorkflowsDraftEnvironmentVariablesResponse + = GetAppsByAppIdWorkflowsDraftEnvironmentVariablesResponses[keyof GetAppsByAppIdWorkflowsDraftEnvironmentVariablesResponses] + +export type PostAppsByAppIdWorkflowsDraftEnvironmentVariablesData = { + body: EnvironmentVariableUpdatePayload + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/workflows/draft/environment-variables' +} + +export type PostAppsByAppIdWorkflowsDraftEnvironmentVariablesResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdWorkflowsDraftEnvironmentVariablesResponse + = PostAppsByAppIdWorkflowsDraftEnvironmentVariablesResponses[keyof PostAppsByAppIdWorkflowsDraftEnvironmentVariablesResponses] + +export type PostAppsByAppIdWorkflowsDraftFeaturesData = { + body: WorkflowFeaturesPayload + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/workflows/draft/features' +} + +export type PostAppsByAppIdWorkflowsDraftFeaturesResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdWorkflowsDraftFeaturesResponse + = PostAppsByAppIdWorkflowsDraftFeaturesResponses[keyof PostAppsByAppIdWorkflowsDraftFeaturesResponses] + +export type PostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdDeliveryTestData = { + body: HumanInputDeliveryTestPayload + path: { + app_id: string + node_id: string + } + query?: never + url: '/apps/{app_id}/workflows/draft/human-input/nodes/{node_id}/delivery-test' +} + +export type PostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdDeliveryTestResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdDeliveryTestResponse + = PostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdDeliveryTestResponses[keyof PostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdDeliveryTestResponses] + +export type PostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormPreviewData = { + body: HumanInputFormPreviewPayload + path: { + app_id: string + node_id: string + } + query?: never + url: '/apps/{app_id}/workflows/draft/human-input/nodes/{node_id}/form/preview' +} + +export type PostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormPreviewResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormPreviewResponse + = PostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormPreviewResponses[keyof PostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormPreviewResponses] + +export type PostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormRunData = { + body: HumanInputFormSubmitPayload + path: { + app_id: string + node_id: string + } + query?: never + url: '/apps/{app_id}/workflows/draft/human-input/nodes/{node_id}/form/run' +} + +export type PostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormRunResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormRunResponse + = PostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormRunResponses[keyof PostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormRunResponses] + +export type PostAppsByAppIdWorkflowsDraftIterationNodesByNodeIdRunData = { + body: IterationNodeRunPayload + path: { + app_id: string + node_id: string + } + query?: never + url: '/apps/{app_id}/workflows/draft/iteration/nodes/{node_id}/run' +} + +export type PostAppsByAppIdWorkflowsDraftIterationNodesByNodeIdRunErrors = { + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdWorkflowsDraftIterationNodesByNodeIdRunError + = PostAppsByAppIdWorkflowsDraftIterationNodesByNodeIdRunErrors[keyof PostAppsByAppIdWorkflowsDraftIterationNodesByNodeIdRunErrors] + +export type PostAppsByAppIdWorkflowsDraftIterationNodesByNodeIdRunResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdWorkflowsDraftIterationNodesByNodeIdRunResponse + = PostAppsByAppIdWorkflowsDraftIterationNodesByNodeIdRunResponses[keyof PostAppsByAppIdWorkflowsDraftIterationNodesByNodeIdRunResponses] + +export type PostAppsByAppIdWorkflowsDraftLoopNodesByNodeIdRunData = { + body: LoopNodeRunPayload + path: { + app_id: string + node_id: string + } + query?: never + url: '/apps/{app_id}/workflows/draft/loop/nodes/{node_id}/run' +} + +export type PostAppsByAppIdWorkflowsDraftLoopNodesByNodeIdRunErrors = { + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdWorkflowsDraftLoopNodesByNodeIdRunError + = PostAppsByAppIdWorkflowsDraftLoopNodesByNodeIdRunErrors[keyof PostAppsByAppIdWorkflowsDraftLoopNodesByNodeIdRunErrors] + +export type PostAppsByAppIdWorkflowsDraftLoopNodesByNodeIdRunResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdWorkflowsDraftLoopNodesByNodeIdRunResponse + = PostAppsByAppIdWorkflowsDraftLoopNodesByNodeIdRunResponses[keyof PostAppsByAppIdWorkflowsDraftLoopNodesByNodeIdRunResponses] + +export type GetAppsByAppIdWorkflowsDraftNodesByNodeIdLastRunData = { + body?: never + path: { + app_id: string + node_id: string + } + query?: never + url: '/apps/{app_id}/workflows/draft/nodes/{node_id}/last-run' +} + +export type GetAppsByAppIdWorkflowsDraftNodesByNodeIdLastRunErrors = { + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdWorkflowsDraftNodesByNodeIdLastRunError + = GetAppsByAppIdWorkflowsDraftNodesByNodeIdLastRunErrors[keyof GetAppsByAppIdWorkflowsDraftNodesByNodeIdLastRunErrors] + +export type GetAppsByAppIdWorkflowsDraftNodesByNodeIdLastRunResponses = { + 200: WorkflowRunNodeExecution +} + +export type GetAppsByAppIdWorkflowsDraftNodesByNodeIdLastRunResponse + = GetAppsByAppIdWorkflowsDraftNodesByNodeIdLastRunResponses[keyof GetAppsByAppIdWorkflowsDraftNodesByNodeIdLastRunResponses] + +export type PostAppsByAppIdWorkflowsDraftNodesByNodeIdRunData = { + body: DraftWorkflowNodeRunPayload + path: { + app_id: string + node_id: string + } + query?: never + url: '/apps/{app_id}/workflows/draft/nodes/{node_id}/run' +} + +export type PostAppsByAppIdWorkflowsDraftNodesByNodeIdRunErrors = { + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdWorkflowsDraftNodesByNodeIdRunError + = PostAppsByAppIdWorkflowsDraftNodesByNodeIdRunErrors[keyof PostAppsByAppIdWorkflowsDraftNodesByNodeIdRunErrors] + +export type PostAppsByAppIdWorkflowsDraftNodesByNodeIdRunResponses = { + 200: WorkflowRunNodeExecution +} + +export type PostAppsByAppIdWorkflowsDraftNodesByNodeIdRunResponse + = PostAppsByAppIdWorkflowsDraftNodesByNodeIdRunResponses[keyof PostAppsByAppIdWorkflowsDraftNodesByNodeIdRunResponses] + +export type PostAppsByAppIdWorkflowsDraftNodesByNodeIdTriggerRunData = { + body?: never + path: { + app_id: string + node_id: string + } + query?: never + url: '/apps/{app_id}/workflows/draft/nodes/{node_id}/trigger/run' +} + +export type PostAppsByAppIdWorkflowsDraftNodesByNodeIdTriggerRunErrors = { + 403: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdWorkflowsDraftNodesByNodeIdTriggerRunError + = PostAppsByAppIdWorkflowsDraftNodesByNodeIdTriggerRunErrors[keyof PostAppsByAppIdWorkflowsDraftNodesByNodeIdTriggerRunErrors] + +export type PostAppsByAppIdWorkflowsDraftNodesByNodeIdTriggerRunResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdWorkflowsDraftNodesByNodeIdTriggerRunResponse + = PostAppsByAppIdWorkflowsDraftNodesByNodeIdTriggerRunResponses[keyof PostAppsByAppIdWorkflowsDraftNodesByNodeIdTriggerRunResponses] + +export type DeleteAppsByAppIdWorkflowsDraftNodesByNodeIdVariablesData = { + body?: never + path: { + node_id: string + app_id: string + } + query?: never + url: '/apps/{app_id}/workflows/draft/nodes/{node_id}/variables' +} + +export type DeleteAppsByAppIdWorkflowsDraftNodesByNodeIdVariablesResponses = { + 204: { + [key: string]: unknown + } +} + +export type DeleteAppsByAppIdWorkflowsDraftNodesByNodeIdVariablesResponse + = DeleteAppsByAppIdWorkflowsDraftNodesByNodeIdVariablesResponses[keyof DeleteAppsByAppIdWorkflowsDraftNodesByNodeIdVariablesResponses] + +export type GetAppsByAppIdWorkflowsDraftNodesByNodeIdVariablesData = { + body?: never + path: { + app_id: string + node_id: string + } + query?: never + url: '/apps/{app_id}/workflows/draft/nodes/{node_id}/variables' +} + +export type GetAppsByAppIdWorkflowsDraftNodesByNodeIdVariablesResponses = { + 200: WorkflowDraftVariableList +} + +export type GetAppsByAppIdWorkflowsDraftNodesByNodeIdVariablesResponse + = GetAppsByAppIdWorkflowsDraftNodesByNodeIdVariablesResponses[keyof GetAppsByAppIdWorkflowsDraftNodesByNodeIdVariablesResponses] + +export type PostAppsByAppIdWorkflowsDraftRunData = { + body: DraftWorkflowRunPayload + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/workflows/draft/run' +} + +export type PostAppsByAppIdWorkflowsDraftRunErrors = { + 403: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdWorkflowsDraftRunError + = PostAppsByAppIdWorkflowsDraftRunErrors[keyof PostAppsByAppIdWorkflowsDraftRunErrors] + +export type PostAppsByAppIdWorkflowsDraftRunResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdWorkflowsDraftRunResponse + = PostAppsByAppIdWorkflowsDraftRunResponses[keyof PostAppsByAppIdWorkflowsDraftRunResponses] + +export type GetAppsByAppIdWorkflowsDraftSystemVariablesData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/workflows/draft/system-variables' +} + +export type GetAppsByAppIdWorkflowsDraftSystemVariablesResponses = { + 200: WorkflowDraftVariableList +} + +export type GetAppsByAppIdWorkflowsDraftSystemVariablesResponse + = GetAppsByAppIdWorkflowsDraftSystemVariablesResponses[keyof GetAppsByAppIdWorkflowsDraftSystemVariablesResponses] + +export type PostAppsByAppIdWorkflowsDraftTriggerRunData = { + body: DraftWorkflowTriggerRunRequest + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/workflows/draft/trigger/run' +} + +export type PostAppsByAppIdWorkflowsDraftTriggerRunErrors = { + 403: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdWorkflowsDraftTriggerRunError + = PostAppsByAppIdWorkflowsDraftTriggerRunErrors[keyof PostAppsByAppIdWorkflowsDraftTriggerRunErrors] + +export type PostAppsByAppIdWorkflowsDraftTriggerRunResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdWorkflowsDraftTriggerRunResponse + = PostAppsByAppIdWorkflowsDraftTriggerRunResponses[keyof PostAppsByAppIdWorkflowsDraftTriggerRunResponses] + +export type PostAppsByAppIdWorkflowsDraftTriggerRunAllData = { + body: DraftWorkflowTriggerRunAllPayload + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/workflows/draft/trigger/run-all' +} + +export type PostAppsByAppIdWorkflowsDraftTriggerRunAllErrors = { + 403: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdWorkflowsDraftTriggerRunAllError + = PostAppsByAppIdWorkflowsDraftTriggerRunAllErrors[keyof PostAppsByAppIdWorkflowsDraftTriggerRunAllErrors] + +export type PostAppsByAppIdWorkflowsDraftTriggerRunAllResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdWorkflowsDraftTriggerRunAllResponse + = PostAppsByAppIdWorkflowsDraftTriggerRunAllResponses[keyof PostAppsByAppIdWorkflowsDraftTriggerRunAllResponses] + +export type DeleteAppsByAppIdWorkflowsDraftVariablesData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/workflows/draft/variables' +} + +export type DeleteAppsByAppIdWorkflowsDraftVariablesResponses = { + 204: { + [key: string]: unknown + } +} + +export type DeleteAppsByAppIdWorkflowsDraftVariablesResponse + = DeleteAppsByAppIdWorkflowsDraftVariablesResponses[keyof DeleteAppsByAppIdWorkflowsDraftVariablesResponses] + +export type GetAppsByAppIdWorkflowsDraftVariablesData = { + body?: never + path: { + app_id: string + } + query?: { + page?: number + limit?: number + } + url: '/apps/{app_id}/workflows/draft/variables' +} + +export type GetAppsByAppIdWorkflowsDraftVariablesResponses = { + 200: WorkflowDraftVariableListWithoutValue +} + +export type GetAppsByAppIdWorkflowsDraftVariablesResponse + = GetAppsByAppIdWorkflowsDraftVariablesResponses[keyof GetAppsByAppIdWorkflowsDraftVariablesResponses] + +export type DeleteAppsByAppIdWorkflowsDraftVariablesByVariableIdData = { + body?: never + path: { + app_id: string + variable_id: string + } + query?: never + url: '/apps/{app_id}/workflows/draft/variables/{variable_id}' +} + +export type DeleteAppsByAppIdWorkflowsDraftVariablesByVariableIdErrors = { + 404: { + [key: string]: unknown + } +} + +export type DeleteAppsByAppIdWorkflowsDraftVariablesByVariableIdError + = DeleteAppsByAppIdWorkflowsDraftVariablesByVariableIdErrors[keyof DeleteAppsByAppIdWorkflowsDraftVariablesByVariableIdErrors] + +export type DeleteAppsByAppIdWorkflowsDraftVariablesByVariableIdResponses = { + 204: { + [key: string]: unknown + } +} + +export type DeleteAppsByAppIdWorkflowsDraftVariablesByVariableIdResponse + = DeleteAppsByAppIdWorkflowsDraftVariablesByVariableIdResponses[keyof DeleteAppsByAppIdWorkflowsDraftVariablesByVariableIdResponses] + +export type GetAppsByAppIdWorkflowsDraftVariablesByVariableIdData = { + body?: never + path: { + app_id: string + variable_id: string + } + query?: never + url: '/apps/{app_id}/workflows/draft/variables/{variable_id}' +} + +export type GetAppsByAppIdWorkflowsDraftVariablesByVariableIdErrors = { + 404: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdWorkflowsDraftVariablesByVariableIdError + = GetAppsByAppIdWorkflowsDraftVariablesByVariableIdErrors[keyof GetAppsByAppIdWorkflowsDraftVariablesByVariableIdErrors] + +export type GetAppsByAppIdWorkflowsDraftVariablesByVariableIdResponses = { + 200: WorkflowDraftVariable +} + +export type GetAppsByAppIdWorkflowsDraftVariablesByVariableIdResponse + = GetAppsByAppIdWorkflowsDraftVariablesByVariableIdResponses[keyof GetAppsByAppIdWorkflowsDraftVariablesByVariableIdResponses] + +export type PatchAppsByAppIdWorkflowsDraftVariablesByVariableIdData = { + body: WorkflowDraftVariableUpdatePayload + path: { + app_id: string + variable_id: string + } + query?: never + url: '/apps/{app_id}/workflows/draft/variables/{variable_id}' +} + +export type PatchAppsByAppIdWorkflowsDraftVariablesByVariableIdErrors = { + 404: { + [key: string]: unknown + } +} + +export type PatchAppsByAppIdWorkflowsDraftVariablesByVariableIdError + = PatchAppsByAppIdWorkflowsDraftVariablesByVariableIdErrors[keyof PatchAppsByAppIdWorkflowsDraftVariablesByVariableIdErrors] + +export type PatchAppsByAppIdWorkflowsDraftVariablesByVariableIdResponses = { + 200: WorkflowDraftVariable +} + +export type PatchAppsByAppIdWorkflowsDraftVariablesByVariableIdResponse + = PatchAppsByAppIdWorkflowsDraftVariablesByVariableIdResponses[keyof PatchAppsByAppIdWorkflowsDraftVariablesByVariableIdResponses] + +export type PutAppsByAppIdWorkflowsDraftVariablesByVariableIdResetData = { + body?: never + path: { + app_id: string + variable_id: string + } + query?: never + url: '/apps/{app_id}/workflows/draft/variables/{variable_id}/reset' +} + +export type PutAppsByAppIdWorkflowsDraftVariablesByVariableIdResetErrors = { + 404: { + [key: string]: unknown + } +} + +export type PutAppsByAppIdWorkflowsDraftVariablesByVariableIdResetError + = PutAppsByAppIdWorkflowsDraftVariablesByVariableIdResetErrors[keyof PutAppsByAppIdWorkflowsDraftVariablesByVariableIdResetErrors] + +export type PutAppsByAppIdWorkflowsDraftVariablesByVariableIdResetResponses = { + 200: WorkflowDraftVariable + 204: { + [key: string]: unknown + } +} + +export type PutAppsByAppIdWorkflowsDraftVariablesByVariableIdResetResponse + = PutAppsByAppIdWorkflowsDraftVariablesByVariableIdResetResponses[keyof PutAppsByAppIdWorkflowsDraftVariablesByVariableIdResetResponses] + +export type GetAppsByAppIdWorkflowsPublishData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/workflows/publish' +} + +export type GetAppsByAppIdWorkflowsPublishErrors = { + 404: { + [key: string]: unknown + } +} + +export type GetAppsByAppIdWorkflowsPublishError + = GetAppsByAppIdWorkflowsPublishErrors[keyof GetAppsByAppIdWorkflowsPublishErrors] + +export type GetAppsByAppIdWorkflowsPublishResponses = { + 200: Workflow +} + +export type GetAppsByAppIdWorkflowsPublishResponse + = GetAppsByAppIdWorkflowsPublishResponses[keyof GetAppsByAppIdWorkflowsPublishResponses] + +export type PostAppsByAppIdWorkflowsPublishData = { + body: PublishWorkflowPayload + path: { + app_id: string + } + query?: never + url: '/apps/{app_id}/workflows/publish' +} + +export type PostAppsByAppIdWorkflowsPublishResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdWorkflowsPublishResponse + = PostAppsByAppIdWorkflowsPublishResponses[keyof PostAppsByAppIdWorkflowsPublishResponses] + +export type GetAppsByAppIdWorkflowsTriggersWebhookData = { + body?: never + path: { + app_id: string + } + query: { + credential_id?: string | null + datasource_type: string + inputs: string + } + url: '/apps/{app_id}/workflows/triggers/webhook' +} + +export type GetAppsByAppIdWorkflowsTriggersWebhookResponses = { + 200: WebhookTriggerResponse +} + +export type GetAppsByAppIdWorkflowsTriggersWebhookResponse + = GetAppsByAppIdWorkflowsTriggersWebhookResponses[keyof GetAppsByAppIdWorkflowsTriggersWebhookResponses] + +export type DeleteAppsByAppIdWorkflowsByWorkflowIdData = { + body?: never + path: { + workflow_id: string + app_id: string + } + query?: never + url: '/apps/{app_id}/workflows/{workflow_id}' +} + +export type DeleteAppsByAppIdWorkflowsByWorkflowIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type DeleteAppsByAppIdWorkflowsByWorkflowIdResponse + = DeleteAppsByAppIdWorkflowsByWorkflowIdResponses[keyof DeleteAppsByAppIdWorkflowsByWorkflowIdResponses] + +export type PatchAppsByAppIdWorkflowsByWorkflowIdData = { + body: WorkflowUpdatePayload + path: { + app_id: string + workflow_id: string + } + query?: never + url: '/apps/{app_id}/workflows/{workflow_id}' +} + +export type PatchAppsByAppIdWorkflowsByWorkflowIdErrors = { + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PatchAppsByAppIdWorkflowsByWorkflowIdError + = PatchAppsByAppIdWorkflowsByWorkflowIdErrors[keyof PatchAppsByAppIdWorkflowsByWorkflowIdErrors] + +export type PatchAppsByAppIdWorkflowsByWorkflowIdResponses = { + 200: Workflow +} + +export type PatchAppsByAppIdWorkflowsByWorkflowIdResponse + = PatchAppsByAppIdWorkflowsByWorkflowIdResponses[keyof PatchAppsByAppIdWorkflowsByWorkflowIdResponses] + +export type PostAppsByAppIdWorkflowsByWorkflowIdRestoreData = { + body?: never + path: { + app_id: string + workflow_id: string + } + query?: never + url: '/apps/{app_id}/workflows/{workflow_id}/restore' +} + +export type PostAppsByAppIdWorkflowsByWorkflowIdRestoreErrors = { + 400: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdWorkflowsByWorkflowIdRestoreError + = PostAppsByAppIdWorkflowsByWorkflowIdRestoreErrors[keyof PostAppsByAppIdWorkflowsByWorkflowIdRestoreErrors] + +export type PostAppsByAppIdWorkflowsByWorkflowIdRestoreResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsByAppIdWorkflowsByWorkflowIdRestoreResponse + = PostAppsByAppIdWorkflowsByWorkflowIdRestoreResponses[keyof PostAppsByAppIdWorkflowsByWorkflowIdRestoreResponses] + +export type GetAppsByResourceIdApiKeysData = { + body?: never + path: { + resource_id: string + } + query?: never + url: '/apps/{resource_id}/api-keys' +} + +export type GetAppsByResourceIdApiKeysResponses = { + 200: ApiKeyList +} + +export type GetAppsByResourceIdApiKeysResponse + = GetAppsByResourceIdApiKeysResponses[keyof GetAppsByResourceIdApiKeysResponses] + +export type PostAppsByResourceIdApiKeysData = { + body?: never + path: { + resource_id: string + } + query?: never + url: '/apps/{resource_id}/api-keys' +} + +export type PostAppsByResourceIdApiKeysErrors = { + 400: { + [key: string]: unknown + } +} + +export type PostAppsByResourceIdApiKeysError + = PostAppsByResourceIdApiKeysErrors[keyof PostAppsByResourceIdApiKeysErrors] + +export type PostAppsByResourceIdApiKeysResponses = { + 201: ApiKeyItem +} + +export type PostAppsByResourceIdApiKeysResponse + = PostAppsByResourceIdApiKeysResponses[keyof PostAppsByResourceIdApiKeysResponses] + +export type DeleteAppsByResourceIdApiKeysByApiKeyIdData = { + body?: never + path: { + resource_id: string + api_key_id: string + } + query?: never + url: '/apps/{resource_id}/api-keys/{api_key_id}' +} + +export type DeleteAppsByResourceIdApiKeysByApiKeyIdResponses = { + 204: { + [key: string]: unknown + } +} + +export type DeleteAppsByResourceIdApiKeysByApiKeyIdResponse + = DeleteAppsByResourceIdApiKeysByApiKeyIdResponses[keyof DeleteAppsByResourceIdApiKeysByApiKeyIdResponses] + +export type GetAppsByServerIdServerRefreshData = { + body?: never + path: { + server_id: string + } + query?: never + url: '/apps/{server_id}/server/refresh' +} + +export type GetAppsByServerIdServerRefreshErrors = { + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type GetAppsByServerIdServerRefreshError + = GetAppsByServerIdServerRefreshErrors[keyof GetAppsByServerIdServerRefreshErrors] + +export type GetAppsByServerIdServerRefreshResponses = { + 200: AppMcpServerResponse +} + +export type GetAppsByServerIdServerRefreshResponse + = GetAppsByServerIdServerRefreshResponses[keyof GetAppsByServerIdServerRefreshResponses] diff --git a/packages/contracts/generated/api/console/apps/zod.gen.ts b/packages/contracts/generated/api/console/apps/zod.gen.ts new file mode 100644 index 0000000000..dcaeaed246 --- /dev/null +++ b/packages/contracts/generated/api/console/apps/zod.gen.ts @@ -0,0 +1,3133 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * AppImportPayload + */ +export const zAppImportPayload = z.object({ + app_id: z.string().nullish(), + description: z.string().nullish(), + icon: z.string().nullish(), + icon_background: z.string().nullish(), + icon_type: z.string().nullish(), + mode: z.string(), + name: z.string().nullish(), + yaml_content: z.string().nullish(), + yaml_url: z.string().nullish(), +}) + +export const zAdvancedChatWorkflowRunPagination = z.record(z.string(), z.unknown()) + +export const zWorkflowRunCount = z.record(z.string(), z.unknown()) + +/** + * HumanInputFormPreviewPayload + */ +export const zHumanInputFormPreviewPayload = z.object({ + inputs: z.record(z.string(), z.unknown()).optional(), +}) + +/** + * HumanInputFormSubmitPayload + */ +export const zHumanInputFormSubmitPayload = z.object({ + action: z.string(), + form_inputs: z.record(z.string(), z.unknown()), + inputs: z.record(z.string(), z.unknown()), +}) + +/** + * IterationNodeRunPayload + */ +export const zIterationNodeRunPayload = z.object({ + inputs: z.record(z.string(), z.unknown()).nullish(), +}) + +/** + * LoopNodeRunPayload + */ +export const zLoopNodeRunPayload = z.object({ + inputs: z.record(z.string(), z.unknown()).nullish(), +}) + +/** + * AdvancedChatWorkflowRunPayload + */ +export const zAdvancedChatWorkflowRunPayload = z.object({ + conversation_id: z.string().nullish(), + files: z.array(z.record(z.string(), z.unknown())).nullish(), + inputs: z.record(z.string(), z.unknown()).nullish(), + parent_message_id: z.string().nullish(), + query: z.string().optional().default(''), +}) + +/** + * AnnotationReplyPayload + */ +export const zAnnotationReplyPayload = z.object({ + embedding_model_name: z.string(), + embedding_provider_name: z.string(), + score_threshold: z.number(), +}) + +/** + * AnnotationSettingUpdatePayload + */ +export const zAnnotationSettingUpdatePayload = z.object({ + score_threshold: z.number(), +}) + +/** + * CreateAnnotationPayload + */ +export const zCreateAnnotationPayload = z.object({ + annotation_reply: z.record(z.string(), z.unknown()).nullish(), + answer: z.string().nullish(), + content: z.string().nullish(), + message_id: z.string().nullish(), + question: z.string().nullish(), +}) + +/** + * Annotation + */ +export const zAnnotation = z.object({ + content: z.string().nullish(), + created_at: z.int().nullish(), + hit_count: z.int().nullish(), + id: z.string(), + question: z.string().nullish(), +}) + +/** + * AnnotationCountResponse + */ +export const zAnnotationCountResponse = z.object({ + count: z.int(), +}) + +/** + * AnnotationExportList + */ +export const zAnnotationExportList = z.object({ + data: z.array(zAnnotation), +}) + +/** + * UpdateAnnotationPayload + */ +export const zUpdateAnnotationPayload = z.object({ + annotation_reply: z.record(z.string(), z.unknown()).nullish(), + answer: z.string().nullish(), + content: z.string().nullish(), + question: z.string().nullish(), +}) + +/** + * AppApiStatusPayload + */ +export const zAppApiStatusPayload = z.object({ + enable_api: z.boolean(), +}) + +/** + * AudioTranscriptResponse + */ +export const zAudioTranscriptResponse = z.object({ + text: z.string(), +}) + +/** + * SuggestedQuestionsResponse + */ +export const zSuggestedQuestionsResponse = z.object({ + data: z.array(z.string()), +}) + +/** + * CompletionMessagePayload + */ +export const zCompletionMessagePayload = z.object({ + files: z.array(z.unknown()).nullish(), + inputs: z.record(z.string(), z.unknown()), + model_config: z.record(z.string(), z.unknown()), + query: z.string().optional().default(''), + response_mode: z.enum(['blocking', 'streaming']).optional().default('blocking'), + retriever_from: z.string().optional().default('dev'), +}) + +/** + * ConvertToWorkflowPayload + */ +export const zConvertToWorkflowPayload = z.object({ + icon: z.string().nullish(), + icon_background: z.string().nullish(), + icon_type: z.string().nullish(), + name: z.string().nullish(), +}) + +/** + * AppExportResponse + */ +export const zAppExportResponse = z.object({ + data: z.string(), +}) + +/** + * MessageFeedbackPayload + */ +export const zMessageFeedbackPayload = z.object({ + content: z.string().nullish(), + message_id: z.string(), + rating: z.enum(['like', 'dislike']).nullish(), +}) + +/** + * ModelConfigRequest + */ +export const zModelConfigRequest = z.object({ + agent_mode: z.record(z.string(), z.unknown()).nullish(), + configs: z.record(z.string(), z.unknown()).nullish(), + dataset_configs: z.record(z.string(), z.unknown()).nullish(), + model: z.string().nullish(), + more_like_this: z.record(z.string(), z.unknown()).nullish(), + opening_statement: z.string().nullish(), + provider: z.string().nullish(), + retrieval_model: z.record(z.string(), z.unknown()).nullish(), + speech_to_text: z.record(z.string(), z.unknown()).nullish(), + suggested_questions: z.array(z.string()).nullish(), + text_to_speech: z.record(z.string(), z.unknown()).nullish(), + tools: z.array(z.record(z.string(), z.unknown())).nullish(), +}) + +/** + * AppNamePayload + */ +export const zAppNamePayload = z.object({ + name: z.string().min(1), +}) + +/** + * MCPServerCreatePayload + */ +export const zMcpServerCreatePayload = z.object({ + description: z.string().nullish(), + parameters: z.record(z.string(), z.unknown()), +}) + +/** + * MCPServerUpdatePayload + */ +export const zMcpServerUpdatePayload = z.object({ + description: z.string().nullish(), + id: z.string(), + parameters: z.record(z.string(), z.unknown()), + status: z.string().nullish(), +}) + +/** + * AppSiteUpdatePayload + */ +export const zAppSiteUpdatePayload = z.object({ + chat_color_theme: z.string().nullish(), + chat_color_theme_inverted: z.boolean().nullish(), + copyright: z.string().nullish(), + custom_disclaimer: z.string().nullish(), + customize_domain: z.string().nullish(), + customize_token_strategy: z.enum(['must', 'allow', 'not_allow']).nullish(), + default_language: z.string().nullish(), + description: z.string().nullish(), + icon: z.string().nullish(), + icon_background: z.string().nullish(), + icon_type: z.string().nullish(), + privacy_policy: z.string().nullish(), + prompt_public: z.boolean().nullish(), + show_workflow_steps: z.boolean().nullish(), + title: z.string().nullish(), + use_icon_as_answer_icon: z.boolean().nullish(), +}) + +/** + * AppSiteResponse + */ +export const zAppSiteResponse = z.object({ + app_id: z.string(), + code: z.string().nullish(), + copyright: z.string().nullish(), + custom_disclaimer: z.string().nullish(), + customize_domain: z.string().nullish(), + customize_token_strategy: z.string(), + default_language: z.string(), + description: z.string().nullish(), + icon: z.string().nullish(), + icon_background: z.string().nullish(), + privacy_policy: z.string().nullish(), + prompt_public: z.boolean(), + show_workflow_steps: z.boolean(), + title: z.string(), + use_icon_as_answer_icon: z.boolean(), +}) + +/** + * AppSiteStatusPayload + */ +export const zAppSiteStatusPayload = z.object({ + enable_site: z.boolean(), +}) + +/** + * TextToSpeechPayload + */ +export const zTextToSpeechPayload = z.object({ + message_id: z.string().nullish(), + streaming: z.boolean().nullish(), + text: z.string(), + voice: z.string().nullish(), +}) + +/** + * AppTracePayload + */ +export const zAppTracePayload = z.object({ + enabled: z.boolean(), + tracing_provider: z.string().nullish(), +}) + +/** + * TraceProviderQuery + */ +export const zTraceProviderQuery = z.object({ + tracing_provider: z.string(), +}) + +/** + * TraceConfigPayload + */ +export const zTraceConfigPayload = z.object({ + tracing_config: z.record(z.string(), z.unknown()), + tracing_provider: z.string(), +}) + +/** + * ParserEnable + */ +export const zParserEnable = z.object({ + enable_trigger: z.boolean(), + trigger_id: z.string(), +}) + +/** + * WorkflowTriggerResponse + */ +export const zWorkflowTriggerResponse = z.object({ + created_at: z.iso.datetime().nullish(), + icon: z.string(), + id: z.string(), + node_id: z.string(), + provider_name: z.string(), + status: z.string(), + title: z.string(), + trigger_type: z.string(), + updated_at: z.iso.datetime().nullish(), +}) + +/** + * WorkflowTriggerListResponse + */ +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()) + +/** + * WorkflowCommentCreatePayload + */ +export const zWorkflowCommentCreatePayload = z.object({ + content: z.string(), + mentioned_user_ids: z.array(z.string()).optional(), + position_x: z.number(), + position_y: z.number(), +}) + +export const zWorkflowCommentCreate = z.record(z.string(), z.unknown()) + +export const zWorkflowCommentDetail = z.record(z.string(), z.unknown()) + +/** + * WorkflowCommentUpdatePayload + */ +export const zWorkflowCommentUpdatePayload = z.object({ + content: z.string(), + mentioned_user_ids: z.array(z.string()).nullish(), + position_x: z.number().nullish(), + position_y: z.number().nullish(), +}) + +export const zWorkflowCommentUpdate = z.record(z.string(), z.unknown()) + +/** + * WorkflowCommentReplyPayload + */ +export const zWorkflowCommentReplyPayload = z.object({ + content: z.string(), + mentioned_user_ids: z.array(z.string()).optional(), +}) + +export const zWorkflowCommentReplyCreate = z.record(z.string(), z.unknown()) + +export const zWorkflowCommentReplyUpdate = z.record(z.string(), z.unknown()) + +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()) + +/** + * SyncDraftWorkflowPayload + */ +export const zSyncDraftWorkflowPayload = z.object({ + conversation_variables: z.array(z.record(z.string(), z.unknown())).optional(), + environment_variables: z.array(z.record(z.string(), z.unknown())).optional(), + features: z.record(z.string(), z.unknown()), + graph: z.record(z.string(), z.unknown()), + hash: z.string().nullish(), +}) + +export const zSyncDraftWorkflowResponse = z.record(z.string(), z.unknown()) + +export const zWorkflowDraftVariableList = z.record(z.string(), z.unknown()) + +/** + * ConversationVariableUpdatePayload + */ +export const zConversationVariableUpdatePayload = z.object({ + conversation_variables: z.array(z.record(z.string(), z.unknown())), +}) + +/** + * EnvironmentVariableUpdatePayload + */ +export const zEnvironmentVariableUpdatePayload = z.object({ + environment_variables: z.array(z.record(z.string(), z.unknown())), +}) + +/** + * WorkflowFeaturesPayload + */ +export const zWorkflowFeaturesPayload = z.object({ + features: z.record(z.string(), z.unknown()), +}) + +/** + * HumanInputDeliveryTestPayload + */ +export const zHumanInputDeliveryTestPayload = z.object({ + delivery_method_id: z.string(), + inputs: z.record(z.string(), z.unknown()).optional(), +}) + +export const zWorkflowRunNodeExecution = z.record(z.string(), z.unknown()) + +/** + * DraftWorkflowNodeRunPayload + */ +export const zDraftWorkflowNodeRunPayload = z.object({ + files: z.array(z.record(z.string(), z.unknown())).nullish(), + inputs: z.record(z.string(), z.unknown()), + query: z.string().optional().default(''), +}) + +/** + * DraftWorkflowRunPayload + */ +export const zDraftWorkflowRunPayload = z.object({ + datasource_info_list: z.array(z.record(z.string(), z.unknown())), + datasource_type: z.string(), + inputs: z.record(z.string(), z.unknown()), + start_node_id: z.string(), +}) + +export const zDraftWorkflowTriggerRunRequest = z.record(z.string(), z.unknown()) + +/** + * DraftWorkflowTriggerRunAllPayload + */ +export const zDraftWorkflowTriggerRunAllPayload = z.object({ + node_ids: z.array(z.string()), +}) + +export const zWorkflowDraftVariableListWithoutValue = z.record(z.string(), z.unknown()) + +export const zWorkflowDraftVariable = z.record(z.string(), z.unknown()) + +/** + * WorkflowDraftVariableUpdatePayload + */ +export const zWorkflowDraftVariableUpdatePayload = z.object({ + name: z.string().nullish(), + value: z.unknown().optional(), +}) + +/** + * PublishWorkflowPayload + */ +export const zPublishWorkflowPayload = z.object({ + marked_comment: z.string().max(100).nullish(), + marked_name: z.string().max(20).nullish(), +}) + +/** + * WebhookTriggerResponse + */ +export const zWebhookTriggerResponse = z.object({ + created_at: z.iso.datetime().nullish(), + id: z.string(), + node_id: z.string(), + webhook_debug_url: z.string(), + webhook_id: z.string(), + webhook_url: z.string(), +}) + +/** + * WorkflowUpdatePayload + */ +export const zWorkflowUpdatePayload = z.object({ + marked_comment: z.string().max(100).nullish(), + marked_name: z.string().max(20).nullish(), +}) + +/** + * ApiKeyItem + */ +export const zApiKeyItem = z.object({ + created_at: z.int().nullish(), + id: z.string(), + last_used_at: z.int().nullish(), + token: z.string(), + type: z.string(), +}) + +/** + * ApiKeyList + */ +export const zApiKeyList = z.object({ + data: z.array(zApiKeyItem), +}) + +/** + * IconType + */ +export const zIconType = z.enum(['image', 'emoji', 'link']) + +/** + * CreateAppPayload + */ +export const zCreateAppPayload = z.object({ + description: z.string().max(400).nullish(), + icon: z.string().nullish(), + icon_background: z.string().nullish(), + icon_type: zIconType.optional(), + mode: z.enum(['chat', 'agent-chat', 'advanced-chat', 'workflow', 'completion']), + name: z.string().min(1), +}) + +/** + * UpdateAppPayload + */ +export const zUpdateAppPayload = z.object({ + description: z.string().max(400).nullish(), + icon: z.string().nullish(), + icon_background: z.string().nullish(), + icon_type: zIconType.optional(), + max_active_requests: z.int().nullish(), + name: z.string().min(1), + use_icon_as_answer_icon: z.boolean().nullish(), +}) + +/** + * CopyAppPayload + */ +export const zCopyAppPayload = z.object({ + description: z.string().max(400).nullish(), + icon: z.string().nullish(), + icon_background: z.string().nullish(), + icon_type: zIconType.optional(), + name: z.string().nullish(), +}) + +/** + * AppIconPayload + */ +export const zAppIconPayload = z.object({ + icon: z.string().nullish(), + icon_background: z.string().nullish(), + icon_type: zIconType.optional(), +}) + +/** + * Tag + */ +export const zTag = z.object({ + id: z.string(), + name: z.string(), + type: z.string(), +}) + +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 + */ +export const zWorkflowPartial = z.object({ + created_at: z.int().nullish(), + created_by: z.string().nullish(), + id: z.string(), + updated_at: z.int().nullish(), + 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']) + +/** + * Import + */ +export const zImport = z.object({ + app_id: z.string().nullish(), + app_mode: z.string().nullish(), + current_dsl_version: z.string().optional().default('0.6.0'), + error: z.string().optional().default(''), + id: z.string(), + imported_dsl_version: z.string().optional().default(''), + status: zImportStatus, +}) + +/** + * DeletedTool + */ +export const zDeletedTool = z.object({ + provider_id: z.string(), + tool_name: z.string(), + type: z.string(), +}) + +/** + * Site + */ +export const zSite = z.object({ + app_base_url: z.string().nullish(), + chat_color_theme: z.string().nullish(), + chat_color_theme_inverted: z.boolean().nullish(), + code: z.string().nullish(), + copyright: z.string().nullish(), + created_at: z.int().nullish(), + created_by: z.string().nullish(), + custom_disclaimer: z.string().nullish(), + customize_domain: z.string().nullish(), + customize_token_strategy: z.string().nullish(), + default_language: z.string().nullish(), + description: z.string().nullish(), + icon: z.string().nullish(), + icon_background: z.string().nullish(), + icon_type: z.unknown().optional(), + privacy_policy: z.string().nullish(), + prompt_public: z.boolean().nullish(), + show_workflow_steps: z.boolean().nullish(), + title: z.string().nullish(), + updated_at: z.int().nullish(), + updated_by: z.string().nullish(), + 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 + */ +export const zAnnotationHitHistory = z.object({ + annotation_content: z.string().nullish(), + annotation_question: z.string().nullish(), + created_at: z.int().nullish(), + id: z.string(), + question: z.string().nullish(), + score: z.number().nullish(), + source: z.string().nullish(), +}) + +/** + * AnnotationHitHistoryList + */ +export const zAnnotationHitHistoryList = z.object({ + data: z.array(zAnnotationHitHistory), + has_more: z.boolean(), + limit: z.int(), + page: z.int(), + total: z.int(), +}) + +/** + * FeedbackStat + */ +export const zFeedbackStat = z.object({ + dislike: z.int(), + 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 + */ +export const zConversationVariableResponse = z.object({ + created_at: z.int().nullish(), + description: z.string().nullish(), + id: z.string(), + name: z.string(), + updated_at: z.int().nullish(), + value: z.string().nullish(), + value_type: z.string(), +}) + +/** + * PaginatedConversationVariableResponse + */ +export const zPaginatedConversationVariableResponse = z.object({ + data: z.array(zConversationVariableResponse), + has_more: z.boolean(), + limit: z.int(), + page: z.int(), + total: z.int(), +}) + +/** + * AgentThought + */ +export const zAgentThought = z.object({ + chain_id: z.string().nullish(), + created_at: z.int().nullish(), + files: z.array(z.string()), + id: z.string(), + message_chain_id: z.string().nullish(), + message_id: z.string(), + observation: z.string().nullish(), + position: z.int(), + thought: z.string().nullish(), + tool: z.string().nullish(), + tool_input: z.string().nullish(), + tool_labels: zJsonValue, +}) + +/** + * MessageFile + */ +export const zMessageFile = z.object({ + belongs_to: z.string().nullish(), + filename: z.string(), + id: z.string(), + mime_type: z.string().nullish(), + size: z.int().nullish(), + transfer_method: z.string(), + type: z.string(), + upload_file_id: z.string().nullish(), + url: z.string().nullish(), +}) + +/** + * AppMCPServerStatus + * + * AppMCPServer Status Enum + */ +export const zAppMcpServerStatus = z.enum(['normal', 'active', 'inactive']) + +/** + * AppMCPServerResponse + */ +export const zAppMcpServerResponse = z.object({ + created_at: z.int().nullish(), + description: z.string(), + id: z.string(), + name: z.string(), + parameters: z.unknown(), + server_code: z.string(), + status: zAppMcpServerStatus, + updated_at: z.int().nullish(), +}) + +/** + * AccountWithRole + */ +export const zAccountWithRole = z.object({ + avatar: z.string().nullish(), + created_at: z.int().nullish(), + email: z.string(), + id: z.string(), + last_active_at: z.int().nullish(), + last_login_at: z.int().nullish(), + name: z.string(), + role: z.string(), + status: z.string(), +}) + +/** + * WorkflowCommentMentionUsersPayload + */ +export const zWorkflowCommentMentionUsersPayload = z.object({ + users: z.array(zAccountWithRole), +}) + +/** + * ModelConfigPartial + */ +export const zModelConfigPartial = z.object({ + created_at: z.int().nullish(), + created_by: z.string().nullish(), + model_dict: zJsonValue.optional(), + pre_prompt: z.string().nullish(), + updated_at: z.int().nullish(), + updated_by: z.string().nullish(), +}) + +/** + * AppPartial + */ +export const zAppPartial = z.object({ + access_mode: z.string().nullish(), + app_model_config: zModelConfigPartial.optional(), + author_name: z.string().nullish(), + create_user_name: z.string().nullish(), + created_at: z.int().nullish(), + created_by: z.string().nullish(), + desc_or_prompt: z.string().nullish(), + has_draft_trigger: z.boolean().nullish(), + 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(), + tags: z.array(zTag).optional(), + updated_at: z.int().nullish(), + updated_by: z.string().nullish(), + use_icon_as_answer_icon: z.boolean().nullish(), + workflow: zWorkflowPartial.optional(), +}) + +/** + * AppPagination + */ +export const zAppPagination = z.object({ + has_next: z.boolean(), + items: z.array(zAppPartial), + page: z.int(), + per_page: z.int(), + total: z.int(), +}) + +/** + * Type + */ +export const zType = z.enum(['github', 'marketplace', 'package']) + +/** + * PluginDependency + */ +export const zPluginDependency = z.object({ + current_identifier: z.string().nullish(), + type: zType, + value: z.unknown(), +}) + +/** + * CheckDependenciesResult + */ +export const zCheckDependenciesResult = z.object({ + leaked_dependencies: z.array(zPluginDependency).optional(), +}) + +/** + * Github + */ +export const zGithub = z.object({ + github_plugin_unique_identifier: z.string(), + package: z.string(), + repo: z.string(), + version: z.string(), +}) + +/** + * Marketplace + */ +export const zMarketplace = z.object({ + marketplace_plugin_unique_identifier: z.string(), + version: z.string().nullish(), +}) + +/** + * Package + */ +export const zPackage = z.object({ + plugin_unique_identifier: z.string(), + version: z.string().nullish(), +}) + +/** + * SimpleModelConfig + */ +export const zSimpleModelConfig = z.object({ + model_dict: zJsonValue.optional(), + pre_prompt: z.string().nullish(), +}) + +/** + * StatusCount + */ +export const zStatusCount = z.object({ + failed: z.int(), + partial_success: z.int(), + paused: z.int(), + success: z.int(), +}) + +/** + * ConversationWithSummary + */ +export const zConversationWithSummary = z.object({ + admin_feedback_stats: zFeedbackStat.optional(), + annotated: z.boolean(), + created_at: z.int().nullish(), + from_account_id: z.string().nullish(), + from_account_name: z.string().nullish(), + from_end_user_id: z.string().nullish(), + from_end_user_session_id: z.string().nullish(), + from_source: z.string(), + id: z.string(), + message_count: z.int(), + model_config: zSimpleModelConfig.optional(), + name: z.string(), + read_at: z.int().nullish(), + status: z.string(), + status_count: zStatusCount.optional(), + summary_or_query: z.string(), + updated_at: z.int().nullish(), + user_feedback_stats: zFeedbackStat.optional(), +}) + +/** + * ConversationWithSummaryPagination + */ +export const zConversationWithSummaryPagination = z.object({ + has_next: z.boolean(), + items: z.array(zConversationWithSummary), + page: z.int(), + per_page: z.int(), + total: z.int(), +}) + +/** + * SimpleMessageDetail + */ +export const zSimpleMessageDetail = z.object({ + answer: z.string(), + inputs: z.record(z.string(), zJsonValue), + message: z.string(), + 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 + */ +export const zConversation = z.object({ + admin_feedback_stats: zFeedbackStat.optional(), + annotation: zConversationAnnotation.optional(), + created_at: z.int().nullish(), + first_message: zSimpleMessageDetail.optional(), + from_account_id: z.string().nullish(), + from_account_name: z.string().nullish(), + from_end_user_id: z.string().nullish(), + from_end_user_session_id: z.string().nullish(), + from_source: z.string(), + id: z.string(), + model_config: zSimpleModelConfig.optional(), + read_at: z.int().nullish(), + status: z.string(), + updated_at: z.int().nullish(), + user_feedback_stats: zFeedbackStat.optional(), +}) + +/** + * ConversationPagination + */ +export const zConversationPagination = z.object({ + has_next: z.boolean(), + items: z.array(zConversation), + page: z.int(), + per_page: z.int(), + 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 + */ +export const zHumanInputFormSubmissionData = z.object({ + action_id: z.string(), + action_text: z.string(), + node_id: z.string(), + node_title: z.string(), + rendered_content: z.string(), +}) + +/** + * ExecutionContentType + */ +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 + */ +export const zWorkflowRunForLogResponse = z.object({ + created_at: z.int().nullish(), + elapsed_time: z.number().nullish(), + error: z.string().nullish(), + exceptions_count: z.int().nullish(), + finished_at: z.int().nullish(), + id: z.string(), + status: z.string().nullish(), + total_steps: z.int().nullish(), + total_tokens: z.int().nullish(), + triggered_from: z.string().nullish(), + version: z.string().nullish(), +}) + +/** + * WorkflowAppLogPartialResponse + */ +export const zWorkflowAppLogPartialResponse = z.object({ + created_at: z.int().nullish(), + created_by_account: zSimpleAccount.optional(), + created_by_end_user: zSimpleEndUser.optional(), + created_by_role: z.string().nullish(), + created_from: z.string().nullish(), + details: z.unknown().optional(), + id: z.string(), + workflow_run: zWorkflowRunForLogResponse.optional(), +}) + +/** + * WorkflowAppLogPaginationResponse + */ +export const zWorkflowAppLogPaginationResponse = z.object({ + data: z.array(zWorkflowAppLogPartialResponse), + has_more: z.boolean(), + limit: z.int(), + page: z.int(), + total: z.int(), +}) + +/** + * WorkflowRunForArchivedLogResponse + */ +export const zWorkflowRunForArchivedLogResponse = z.object({ + elapsed_time: z.number().nullish(), + id: z.string(), + status: z.string().nullish(), + total_tokens: z.int().nullish(), + triggered_from: z.string().nullish(), +}) + +/** + * WorkflowArchivedLogPartialResponse + */ +export const zWorkflowArchivedLogPartialResponse = z.object({ + created_at: z.int().nullish(), + created_by_account: zSimpleAccount.optional(), + created_by_end_user: zSimpleEndUser.optional(), + id: z.string(), + trigger_metadata: z.unknown().optional(), + workflow_run: zWorkflowRunForArchivedLogResponse.optional(), +}) + +/** + * WorkflowArchivedLogPaginationResponse + */ +export const zWorkflowArchivedLogPaginationResponse = z.object({ + data: z.array(zWorkflowArchivedLogPartialResponse), + has_more: z.boolean(), + limit: z.int(), + page: z.int(), + total: z.int(), +}) + +/** + * ButtonStyle + * + * Button styles for user actions. + */ +export const zButtonStyle = z.enum(['primary', 'default', 'accent', 'ghost']) + +/** + * UserAction + * + * User action configuration. + */ +export const zUserAction = 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, +}) + +/** + * HumanInputFormDefinition + */ +export const zHumanInputFormDefinition = z.object({ + actions: z.array(zUserAction).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(), + node_id: z.string(), + node_title: z.string(), + resolved_default_values: z.record(z.string(), z.unknown()).optional(), +}) + +/** + * HumanInputContent + */ +export const zHumanInputContent = z.object({ + form_definition: zHumanInputFormDefinition.optional(), + form_submission_data: zHumanInputFormSubmissionData.optional(), + submitted: z.boolean(), + type: zExecutionContentType.optional(), + workflow_run_id: z.string(), +}) + +/** + * MessageDetailResponse + */ +export const zMessageDetailResponse = z.object({ + agent_thoughts: z.array(zAgentThought).optional(), + annotation: zConversationAnnotation.optional(), + annotation_hit_history: zConversationAnnotationHitHistory.optional(), + answer_tokens: z.int().nullish(), + conversation_id: z.string(), + created_at: z.int().nullish(), + error: z.string().nullish(), + extra_contents: z.array(zHumanInputContent).optional(), + feedbacks: z.array(zFeedback).optional(), + 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.optional(), + message_files: z.array(zMessageFile).optional(), + message_metadata_dict: zJsonValue.optional(), + message_tokens: z.int().nullish(), + parent_message_id: z.string().nullish(), + provider_response_latency: z.number().nullish(), + query: z.string(), + re_sign_file_url_answer: z.string(), + status: z.string(), + workflow_run_id: z.string().nullish(), +}) + +/** + * MessageInfiniteScrollPaginationResponse + */ +export const zMessageInfiniteScrollPaginationResponse = z.object({ + data: z.array(zMessageDetailResponse), + has_more: z.boolean(), + limit: z.int(), +}) + +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']) + .optional() + .default('all'), + name: z.string().nullish(), + page: z.int().gte(1).lte(99999).optional().default(1), + tag_ids: z.array(z.string()).nullish(), +}) + +/** + * Success + */ +export const zGetAppsResponse = zAppPagination + +export const zPostAppsBody = zCreateAppPayload + +/** + * App created successfully + */ +export const zPostAppsResponse = zAppDetail + +export const zPostAppsImportsBody = zAppImportPayload + +/** + * Import completed + */ +export const zPostAppsImportsResponse = zImport + +export const zGetAppsImportsByAppIdCheckDependenciesPath = z.object({ + app_id: z.string(), +}) + +/** + * Dependencies checked + */ +export const zGetAppsImportsByAppIdCheckDependenciesResponse = zCheckDependenciesResult + +export const zPostAppsImportsByImportIdConfirmPath = z.object({ + import_id: z.string(), +}) + +/** + * Import confirmed + */ +export const zPostAppsImportsByImportIdConfirmResponse = zImport + +export const zGetAppsWorkflowsOnlineUsersQuery = z.object({ + app_ids: z.string(), +}) + +/** + * Success + */ +export const zGetAppsWorkflowsOnlineUsersResponse = z.record(z.string(), z.unknown()) + +export const zDeleteAppsByAppIdPath = z.object({ + app_id: z.string(), +}) + +/** + * App deleted successfully + */ +export const zDeleteAppsByAppIdResponse = z.record(z.string(), z.unknown()) + +export const zGetAppsByAppIdPath = z.object({ + app_id: z.string(), +}) + +/** + * Success + */ +export const zGetAppsByAppIdResponse = zAppDetailWithSite + +export const zPutAppsByAppIdBody = zUpdateAppPayload + +export const zPutAppsByAppIdPath = z.object({ + app_id: z.string(), +}) + +/** + * App updated successfully + */ +export const zPutAppsByAppIdResponse = zAppDetailWithSite + +export const zGetAppsByAppIdAdvancedChatWorkflowRunsPath = z.object({ + app_id: z.string(), +}) + +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(), + limit: z.int().gte(1).lte(100).optional().default(20), +}) + +/** + * Workflow runs retrieved successfully + */ +export const zGetAppsByAppIdAdvancedChatWorkflowRunsResponse = zAdvancedChatWorkflowRunPagination + +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(), +}) + +/** + * Workflow runs count retrieved successfully + */ +export const zGetAppsByAppIdAdvancedChatWorkflowRunsCountResponse = zWorkflowRunCount + +export const zPostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormPreviewBody + = zHumanInputFormPreviewPayload + +export const zPostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormPreviewPath + = z.object({ + app_id: z.string(), + node_id: z.string(), + }) + +/** + * Success + */ +export const zPostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormPreviewResponse + = z.record(z.string(), z.unknown()) + +export const zPostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormRunBody + = zHumanInputFormSubmitPayload + +export const zPostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormRunPath + = z.object({ + app_id: z.string(), + node_id: z.string(), + }) + +/** + * Success + */ +export const zPostAppsByAppIdAdvancedChatWorkflowsDraftHumanInputNodesByNodeIdFormRunResponse + = z.record(z.string(), z.unknown()) + +export const zPostAppsByAppIdAdvancedChatWorkflowsDraftIterationNodesByNodeIdRunBody + = zIterationNodeRunPayload + +export const zPostAppsByAppIdAdvancedChatWorkflowsDraftIterationNodesByNodeIdRunPath = z.object({ + app_id: z.string(), + node_id: z.string(), +}) + +/** + * Iteration node run started successfully + */ +export const zPostAppsByAppIdAdvancedChatWorkflowsDraftIterationNodesByNodeIdRunResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostAppsByAppIdAdvancedChatWorkflowsDraftLoopNodesByNodeIdRunBody + = zLoopNodeRunPayload + +export const zPostAppsByAppIdAdvancedChatWorkflowsDraftLoopNodesByNodeIdRunPath = z.object({ + app_id: z.string(), + node_id: z.string(), +}) + +/** + * Loop node run started successfully + */ +export const zPostAppsByAppIdAdvancedChatWorkflowsDraftLoopNodesByNodeIdRunResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostAppsByAppIdAdvancedChatWorkflowsDraftRunBody = zAdvancedChatWorkflowRunPayload + +export const zPostAppsByAppIdAdvancedChatWorkflowsDraftRunPath = z.object({ + app_id: z.string(), +}) + +/** + * Workflow run started successfully + */ +export const zPostAppsByAppIdAdvancedChatWorkflowsDraftRunResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetAppsByAppIdAgentLogsPath = z.object({ + app_id: z.string(), +}) + +export const zGetAppsByAppIdAgentLogsQuery = z.object({ + conversation_id: z.string(), + message_id: z.string(), +}) + +/** + * Agent logs retrieved successfully + */ +export const zGetAppsByAppIdAgentLogsResponse = z.array(z.record(z.string(), z.unknown())) + +export const zPostAppsByAppIdAnnotationReplyByActionBody = zAnnotationReplyPayload + +export const zPostAppsByAppIdAnnotationReplyByActionPath = z.object({ + app_id: z.string(), + action: z.string(), +}) + +/** + * Action completed successfully + */ +export const zPostAppsByAppIdAnnotationReplyByActionResponse = z.record(z.string(), z.unknown()) + +export const zGetAppsByAppIdAnnotationReplyByActionStatusByJobIdPath = z.object({ + app_id: z.string(), + action: z.string(), + job_id: z.string(), +}) + +/** + * Job status retrieved successfully + */ +export const zGetAppsByAppIdAnnotationReplyByActionStatusByJobIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetAppsByAppIdAnnotationSettingPath = z.object({ + app_id: z.string(), +}) + +/** + * Annotation settings retrieved successfully + */ +export const zGetAppsByAppIdAnnotationSettingResponse = z.record(z.string(), z.unknown()) + +export const zPostAppsByAppIdAnnotationSettingsByAnnotationSettingIdBody + = zAnnotationSettingUpdatePayload + +export const zPostAppsByAppIdAnnotationSettingsByAnnotationSettingIdPath = z.object({ + app_id: z.string(), + annotation_setting_id: z.string(), +}) + +/** + * Settings updated successfully + */ +export const zPostAppsByAppIdAnnotationSettingsByAnnotationSettingIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zDeleteAppsByAppIdAnnotationsPath = z.object({ + app_id: z.string(), +}) + +/** + * Success + */ +export const zDeleteAppsByAppIdAnnotationsResponse = z.record(z.string(), z.unknown()) + +export const zGetAppsByAppIdAnnotationsPath = z.object({ + app_id: z.string(), +}) + +export const zGetAppsByAppIdAnnotationsQuery = z.object({ + keyword: z.string().optional().default(''), + limit: z.int().gte(1).optional().default(20), + page: z.int().gte(1).optional().default(1), +}) + +/** + * Annotations retrieved successfully + */ +export const zGetAppsByAppIdAnnotationsResponse = z.record(z.string(), z.unknown()) + +export const zPostAppsByAppIdAnnotationsBody = zCreateAnnotationPayload + +export const zPostAppsByAppIdAnnotationsPath = z.object({ + app_id: z.string(), +}) + +/** + * Annotation created successfully + */ +export const zPostAppsByAppIdAnnotationsResponse = zAnnotation + +export const zPostAppsByAppIdAnnotationsBatchImportPath = z.object({ + app_id: z.string(), +}) + +/** + * Batch import started successfully + */ +export const zPostAppsByAppIdAnnotationsBatchImportResponse = z.record(z.string(), z.unknown()) + +export const zGetAppsByAppIdAnnotationsBatchImportStatusByJobIdPath = z.object({ + app_id: z.string(), + job_id: z.string(), +}) + +/** + * Job status retrieved successfully + */ +export const zGetAppsByAppIdAnnotationsBatchImportStatusByJobIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetAppsByAppIdAnnotationsCountPath = z.object({ + app_id: z.string(), +}) + +/** + * Annotation count retrieved successfully + */ +export const zGetAppsByAppIdAnnotationsCountResponse = zAnnotationCountResponse + +export const zGetAppsByAppIdAnnotationsExportPath = z.object({ + app_id: z.string(), +}) + +/** + * Annotations exported successfully + */ +export const zGetAppsByAppIdAnnotationsExportResponse = zAnnotationExportList + +export const zDeleteAppsByAppIdAnnotationsByAnnotationIdPath = z.object({ + annotation_id: z.string(), + app_id: z.string(), +}) + +/** + * Success + */ +export const zDeleteAppsByAppIdAnnotationsByAnnotationIdResponse = z.record(z.string(), z.unknown()) + +export const zPostAppsByAppIdAnnotationsByAnnotationIdBody = zUpdateAnnotationPayload + +export const zPostAppsByAppIdAnnotationsByAnnotationIdPath = z.object({ + app_id: z.string(), + annotation_id: z.string(), +}) + +export const zPostAppsByAppIdAnnotationsByAnnotationIdResponse = z.union([ + zAnnotation, + z.record(z.string(), z.unknown()), +]) + +export const zGetAppsByAppIdAnnotationsByAnnotationIdHitHistoriesPath = z.object({ + app_id: z.string(), + annotation_id: z.string(), +}) + +export const zGetAppsByAppIdAnnotationsByAnnotationIdHitHistoriesQuery = z.object({ + page: z.int().optional().default(1), + limit: z.int().optional().default(20), +}) + +/** + * Hit histories retrieved successfully + */ +export const zGetAppsByAppIdAnnotationsByAnnotationIdHitHistoriesResponse + = zAnnotationHitHistoryList + +export const zPostAppsByAppIdApiEnableBody = zAppApiStatusPayload + +export const zPostAppsByAppIdApiEnablePath = z.object({ + app_id: z.string(), +}) + +/** + * API status updated successfully + */ +export const zPostAppsByAppIdApiEnableResponse = zAppDetail + +export const zPostAppsByAppIdAudioToTextPath = z.object({ + app_id: z.string(), +}) + +/** + * Audio transcription successful + */ +export const zPostAppsByAppIdAudioToTextResponse = zAudioTranscriptResponse + +export const zGetAppsByAppIdChatConversationsPath = z.object({ + app_id: z.string(), +}) + +export const zGetAppsByAppIdChatConversationsQuery = z.object({ + annotation_status: z.enum(['annotated', 'not_annotated', 'all']).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']) + .optional() + .default('-updated_at'), + start: z.string().nullish(), +}) + +/** + * Success + */ +export const zGetAppsByAppIdChatConversationsResponse = zConversationWithSummaryPagination + +export const zDeleteAppsByAppIdChatConversationsByConversationIdPath = z.object({ + app_id: z.string(), + conversation_id: z.string(), +}) + +/** + * Conversation deleted successfully + */ +export const zDeleteAppsByAppIdChatConversationsByConversationIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetAppsByAppIdChatConversationsByConversationIdPath = z.object({ + app_id: z.string(), + conversation_id: z.string(), +}) + +/** + * Success + */ +export const zGetAppsByAppIdChatConversationsByConversationIdResponse = zConversationDetail + +export const zGetAppsByAppIdChatMessagesPath = z.object({ + app_id: z.string(), +}) + +export const zGetAppsByAppIdChatMessagesQuery = z.object({ + conversation_id: z.string(), + first_id: z.string().nullish(), + limit: z.int().gte(1).lte(100).optional().default(20), +}) + +/** + * Success + */ +export const zGetAppsByAppIdChatMessagesResponse = zMessageInfiniteScrollPaginationResponse + +export const zGetAppsByAppIdChatMessagesByMessageIdSuggestedQuestionsPath = z.object({ + app_id: z.string(), + message_id: z.string(), +}) + +/** + * Suggested questions retrieved successfully + */ +export const zGetAppsByAppIdChatMessagesByMessageIdSuggestedQuestionsResponse + = zSuggestedQuestionsResponse + +export const zPostAppsByAppIdChatMessagesByTaskIdStopPath = z.object({ + app_id: z.string(), + task_id: z.string(), +}) + +/** + * Task stopped successfully + */ +export const zPostAppsByAppIdChatMessagesByTaskIdStopResponse = z.record(z.string(), z.unknown()) + +export const zGetAppsByAppIdCompletionConversationsPath = z.object({ + app_id: z.string(), +}) + +export const zGetAppsByAppIdCompletionConversationsQuery = z.object({ + annotation_status: z.enum(['annotated', 'not_annotated', 'all']).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), + start: z.string().nullish(), +}) + +/** + * Success + */ +export const zGetAppsByAppIdCompletionConversationsResponse = zConversationPagination + +export const zDeleteAppsByAppIdCompletionConversationsByConversationIdPath = z.object({ + app_id: z.string(), + conversation_id: z.string(), +}) + +/** + * Conversation deleted successfully + */ +export const zDeleteAppsByAppIdCompletionConversationsByConversationIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetAppsByAppIdCompletionConversationsByConversationIdPath = z.object({ + app_id: z.string(), + conversation_id: z.string(), +}) + +/** + * Success + */ +export const zGetAppsByAppIdCompletionConversationsByConversationIdResponse + = zConversationMessageDetail + +export const zPostAppsByAppIdCompletionMessagesBody = zCompletionMessagePayload + +export const zPostAppsByAppIdCompletionMessagesPath = z.object({ + app_id: z.string(), +}) + +/** + * Completion generated successfully + */ +export const zPostAppsByAppIdCompletionMessagesResponse = z.record(z.string(), z.unknown()) + +export const zPostAppsByAppIdCompletionMessagesByTaskIdStopPath = z.object({ + app_id: z.string(), + task_id: z.string(), +}) + +/** + * Task stopped successfully + */ +export const zPostAppsByAppIdCompletionMessagesByTaskIdStopResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetAppsByAppIdConversationVariablesPath = z.object({ + app_id: z.string(), +}) + +export const zGetAppsByAppIdConversationVariablesQuery = z.object({ + conversation_id: z.string(), +}) + +/** + * Conversation variables retrieved successfully + */ +export const zGetAppsByAppIdConversationVariablesResponse = zPaginatedConversationVariableResponse + +export const zPostAppsByAppIdConvertToWorkflowBody = zConvertToWorkflowPayload + +export const zPostAppsByAppIdConvertToWorkflowPath = z.object({ + app_id: z.string(), +}) + +/** + * Application converted to workflow successfully + */ +export const zPostAppsByAppIdConvertToWorkflowResponse = z.record(z.string(), z.unknown()) + +export const zPostAppsByAppIdCopyBody = zCopyAppPayload + +export const zPostAppsByAppIdCopyPath = z.object({ + app_id: z.string(), +}) + +/** + * App copied successfully + */ +export const zPostAppsByAppIdCopyResponse = zAppDetailWithSite + +export const zGetAppsByAppIdExportPath = z.object({ + app_id: z.string(), +}) + +export const zGetAppsByAppIdExportQuery = z.object({ + include_secret: z.boolean().optional().default(false), + workflow_id: z.string().nullish(), +}) + +/** + * App exported successfully + */ +export const zGetAppsByAppIdExportResponse = zAppExportResponse + +export const zPostAppsByAppIdFeedbacksBody = zMessageFeedbackPayload + +export const zPostAppsByAppIdFeedbacksPath = z.object({ + app_id: z.string(), +}) + +/** + * Feedback updated successfully + */ +export const zPostAppsByAppIdFeedbacksResponse = z.record(z.string(), z.unknown()) + +export const zGetAppsByAppIdFeedbacksExportPath = z.object({ + app_id: z.string(), +}) + +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(), + has_comment: z.boolean().nullish(), + rating: z.enum(['like', 'dislike']).nullish(), + start_date: z.string().nullish(), +}) + +/** + * Feedback data exported successfully + */ +export const zGetAppsByAppIdFeedbacksExportResponse = z.record(z.string(), z.unknown()) + +export const zPostAppsByAppIdIconBody = zAppIconPayload + +export const zPostAppsByAppIdIconPath = z.object({ + app_id: z.string(), +}) + +/** + * Icon updated successfully + */ +export const zPostAppsByAppIdIconResponse = z.record(z.string(), z.unknown()) + +export const zGetAppsByAppIdMessagesByMessageIdPath = z.object({ + app_id: z.string(), + message_id: z.string(), +}) + +/** + * Message retrieved successfully + */ +export const zGetAppsByAppIdMessagesByMessageIdResponse = zMessageDetailResponse + +export const zPostAppsByAppIdModelConfigBody = zModelConfigRequest + +export const zPostAppsByAppIdModelConfigPath = z.object({ + app_id: z.string(), +}) + +/** + * Model configuration updated successfully + */ +export const zPostAppsByAppIdModelConfigResponse = z.record(z.string(), z.unknown()) + +export const zPostAppsByAppIdNameBody = zAppNamePayload + +export const zPostAppsByAppIdNamePath = z.object({ + app_id: z.string(), +}) + +/** + * Name availability checked + */ +export const zPostAppsByAppIdNameResponse = zAppDetail + +export const zPostAppsByAppIdPublishToCreatorsPlatformPath = z.object({ + app_id: z.string(), +}) + +/** + * Success + */ +export const zPostAppsByAppIdPublishToCreatorsPlatformResponse = z.record(z.string(), z.unknown()) + +export const zGetAppsByAppIdServerPath = z.object({ + app_id: z.string(), +}) + +/** + * MCP server configuration retrieved successfully + */ +export const zGetAppsByAppIdServerResponse = zAppMcpServerResponse + +export const zPostAppsByAppIdServerBody = zMcpServerCreatePayload + +export const zPostAppsByAppIdServerPath = z.object({ + app_id: z.string(), +}) + +/** + * MCP server configuration created successfully + */ +export const zPostAppsByAppIdServerResponse = zAppMcpServerResponse + +export const zPutAppsByAppIdServerBody = zMcpServerUpdatePayload + +export const zPutAppsByAppIdServerPath = z.object({ + app_id: z.string(), +}) + +/** + * MCP server configuration updated successfully + */ +export const zPutAppsByAppIdServerResponse = zAppMcpServerResponse + +export const zPostAppsByAppIdSiteBody = zAppSiteUpdatePayload + +export const zPostAppsByAppIdSitePath = z.object({ + app_id: z.string(), +}) + +/** + * Site configuration updated successfully + */ +export const zPostAppsByAppIdSiteResponse = zAppSiteResponse + +export const zPostAppsByAppIdSiteEnableBody = zAppSiteStatusPayload + +export const zPostAppsByAppIdSiteEnablePath = z.object({ + app_id: z.string(), +}) + +/** + * Site status updated successfully + */ +export const zPostAppsByAppIdSiteEnableResponse = zAppDetail + +export const zPostAppsByAppIdSiteAccessTokenResetPath = z.object({ + app_id: z.string(), +}) + +/** + * Access token reset successfully + */ +export const zPostAppsByAppIdSiteAccessTokenResetResponse = zAppSiteResponse + +export const zGetAppsByAppIdStatisticsAverageResponseTimePath = z.object({ + app_id: z.string(), +}) + +export const zGetAppsByAppIdStatisticsAverageResponseTimeQuery = z.object({ + end: z.string().nullish(), + start: z.string().nullish(), +}) + +/** + * Average response time statistics retrieved successfully + */ +export const zGetAppsByAppIdStatisticsAverageResponseTimeResponse = z.array( + z.record(z.string(), z.unknown()), +) + +export const zGetAppsByAppIdStatisticsAverageSessionInteractionsPath = z.object({ + app_id: z.string(), +}) + +export const zGetAppsByAppIdStatisticsAverageSessionInteractionsQuery = z.object({ + end: z.string().nullish(), + start: z.string().nullish(), +}) + +/** + * Average session interaction statistics retrieved successfully + */ +export const zGetAppsByAppIdStatisticsAverageSessionInteractionsResponse = z.array( + z.record(z.string(), z.unknown()), +) + +export const zGetAppsByAppIdStatisticsDailyConversationsPath = z.object({ + app_id: z.string(), +}) + +export const zGetAppsByAppIdStatisticsDailyConversationsQuery = z.object({ + end: z.string().nullish(), + start: z.string().nullish(), +}) + +/** + * Daily conversation statistics retrieved successfully + */ +export const zGetAppsByAppIdStatisticsDailyConversationsResponse = z.array( + z.record(z.string(), z.unknown()), +) + +export const zGetAppsByAppIdStatisticsDailyEndUsersPath = z.object({ + app_id: z.string(), +}) + +export const zGetAppsByAppIdStatisticsDailyEndUsersQuery = z.object({ + end: z.string().nullish(), + start: z.string().nullish(), +}) + +/** + * Daily terminal statistics retrieved successfully + */ +export const zGetAppsByAppIdStatisticsDailyEndUsersResponse = z.array( + z.record(z.string(), z.unknown()), +) + +export const zGetAppsByAppIdStatisticsDailyMessagesPath = z.object({ + app_id: z.string(), +}) + +export const zGetAppsByAppIdStatisticsDailyMessagesQuery = z.object({ + end: z.string().nullish(), + start: z.string().nullish(), +}) + +/** + * Daily message statistics retrieved successfully + */ +export const zGetAppsByAppIdStatisticsDailyMessagesResponse = z.array( + z.record(z.string(), z.unknown()), +) + +export const zGetAppsByAppIdStatisticsTokenCostsPath = z.object({ + app_id: z.string(), +}) + +export const zGetAppsByAppIdStatisticsTokenCostsQuery = z.object({ + end: z.string().nullish(), + start: z.string().nullish(), +}) + +/** + * Daily token cost statistics retrieved successfully + */ +export const zGetAppsByAppIdStatisticsTokenCostsResponse = z.array( + z.record(z.string(), z.unknown()), +) + +export const zGetAppsByAppIdStatisticsTokensPerSecondPath = z.object({ + app_id: z.string(), +}) + +export const zGetAppsByAppIdStatisticsTokensPerSecondQuery = z.object({ + end: z.string().nullish(), + start: z.string().nullish(), +}) + +/** + * Tokens per second statistics retrieved successfully + */ +export const zGetAppsByAppIdStatisticsTokensPerSecondResponse = z.array( + z.record(z.string(), z.unknown()), +) + +export const zGetAppsByAppIdStatisticsUserSatisfactionRatePath = z.object({ + app_id: z.string(), +}) + +export const zGetAppsByAppIdStatisticsUserSatisfactionRateQuery = z.object({ + end: z.string().nullish(), + start: z.string().nullish(), +}) + +/** + * User satisfaction rate statistics retrieved successfully + */ +export const zGetAppsByAppIdStatisticsUserSatisfactionRateResponse = z.array( + z.record(z.string(), z.unknown()), +) + +export const zPostAppsByAppIdTextToAudioBody = zTextToSpeechPayload + +export const zPostAppsByAppIdTextToAudioPath = z.object({ + app_id: z.string(), +}) + +/** + * Text to speech conversion successful + */ +export const zPostAppsByAppIdTextToAudioResponse = z.record(z.string(), z.unknown()) + +export const zGetAppsByAppIdTextToAudioVoicesPath = z.object({ + app_id: z.string(), +}) + +export const zGetAppsByAppIdTextToAudioVoicesQuery = z.object({ + language: z.string(), +}) + +/** + * TTS voices retrieved successfully + */ +export const zGetAppsByAppIdTextToAudioVoicesResponse = z.array(z.record(z.string(), z.unknown())) + +export const zGetAppsByAppIdTracePath = z.object({ + app_id: z.string(), +}) + +/** + * Trace configuration retrieved successfully + */ +export const zGetAppsByAppIdTraceResponse = z.record(z.string(), z.unknown()) + +export const zPostAppsByAppIdTraceBody = zAppTracePayload + +export const zPostAppsByAppIdTracePath = z.object({ + app_id: z.string(), +}) + +/** + * Trace configuration updated successfully + */ +export const zPostAppsByAppIdTraceResponse = z.record(z.string(), z.unknown()) + +export const zDeleteAppsByAppIdTraceConfigBody = zTraceProviderQuery + +export const zDeleteAppsByAppIdTraceConfigPath = z.object({ + app_id: z.string(), +}) + +/** + * Tracing configuration deleted successfully + */ +export const zDeleteAppsByAppIdTraceConfigResponse = z.record(z.string(), z.unknown()) + +export const zGetAppsByAppIdTraceConfigPath = z.object({ + app_id: z.string(), +}) + +export const zGetAppsByAppIdTraceConfigQuery = z.object({ + tracing_provider: z.string(), +}) + +/** + * Tracing configuration data + */ +export const zGetAppsByAppIdTraceConfigResponse = z.record(z.string(), z.unknown()) + +export const zPatchAppsByAppIdTraceConfigBody = zTraceConfigPayload + +export const zPatchAppsByAppIdTraceConfigPath = z.object({ + app_id: z.string(), +}) + +/** + * Success response + */ +export const zPatchAppsByAppIdTraceConfigResponse = z.record(z.string(), z.unknown()) + +export const zPostAppsByAppIdTraceConfigBody = zTraceConfigPayload + +export const zPostAppsByAppIdTraceConfigPath = z.object({ + app_id: z.string(), +}) + +/** + * Created configuration data + */ +export const zPostAppsByAppIdTraceConfigResponse = z.record(z.string(), z.unknown()) + +export const zPostAppsByAppIdTriggerEnableBody = zParserEnable + +export const zPostAppsByAppIdTriggerEnablePath = z.object({ + app_id: z.string(), +}) + +/** + * Success + */ +export const zPostAppsByAppIdTriggerEnableResponse = zWorkflowTriggerResponse + +export const zGetAppsByAppIdTriggersPath = z.object({ + app_id: z.string(), +}) + +/** + * Success + */ +export const zGetAppsByAppIdTriggersResponse = zWorkflowTriggerListResponse + +export const zGetAppsByAppIdWorkflowAppLogsPath = z.object({ + app_id: z.string(), +}) + +export const zGetAppsByAppIdWorkflowAppLogsQuery = z.object({ + created_at__after: z.iso.datetime().nullish(), + created_at__before: z.iso.datetime().nullish(), + created_by_account: z.string().nullish(), + created_by_end_user_session_id: z.string().nullish(), + detail: z.boolean().optional().default(false), + 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.string().nullish(), +}) + +/** + * Workflow app logs retrieved successfully + */ +export const zGetAppsByAppIdWorkflowAppLogsResponse = zWorkflowAppLogPaginationResponse + +export const zGetAppsByAppIdWorkflowArchivedLogsPath = z.object({ + app_id: z.string(), +}) + +export const zGetAppsByAppIdWorkflowArchivedLogsQuery = z.object({ + created_at__after: z.iso.datetime().nullish(), + created_at__before: z.iso.datetime().nullish(), + created_by_account: z.string().nullish(), + created_by_end_user_session_id: z.string().nullish(), + detail: z.boolean().optional().default(false), + 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.string().nullish(), +}) + +/** + * Workflow archived logs retrieved successfully + */ +export const zGetAppsByAppIdWorkflowArchivedLogsResponse = zWorkflowArchivedLogPaginationResponse + +export const zGetAppsByAppIdWorkflowRunsPath = z.object({ + app_id: z.string(), +}) + +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(), + limit: z.int().gte(1).lte(100).optional().default(20), +}) + +/** + * Workflow runs retrieved successfully + */ +export const zGetAppsByAppIdWorkflowRunsResponse = zWorkflowRunPagination + +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(), +}) + +/** + * Workflow runs count retrieved successfully + */ +export const zGetAppsByAppIdWorkflowRunsCountResponse = zWorkflowRunCount + +export const zPostAppsByAppIdWorkflowRunsTasksByTaskIdStopPath = z.object({ + app_id: z.string(), + task_id: z.string(), +}) + +/** + * Task stopped successfully + */ +export const zPostAppsByAppIdWorkflowRunsTasksByTaskIdStopResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetAppsByAppIdWorkflowRunsByRunIdPath = z.object({ + app_id: z.string(), + run_id: z.string(), +}) + +/** + * Workflow run detail retrieved successfully + */ +export const zGetAppsByAppIdWorkflowRunsByRunIdResponse = zWorkflowRunDetail + +export const zGetAppsByAppIdWorkflowRunsByRunIdExportPath = z.object({ + app_id: z.string(), + run_id: z.string(), +}) + +/** + * Export URL generated + */ +export const zGetAppsByAppIdWorkflowRunsByRunIdExportResponse = zWorkflowRunExport + +export const zGetAppsByAppIdWorkflowRunsByRunIdNodeExecutionsPath = z.object({ + app_id: z.string(), + run_id: z.string(), +}) + +/** + * Node executions retrieved successfully + */ +export const zGetAppsByAppIdWorkflowRunsByRunIdNodeExecutionsResponse + = zWorkflowRunNodeExecutionList + +export const zGetAppsByAppIdWorkflowCommentsPath = z.object({ + app_id: z.string(), +}) + +/** + * Comments retrieved successfully + */ +export const zGetAppsByAppIdWorkflowCommentsResponse = zWorkflowCommentBasic + +export const zPostAppsByAppIdWorkflowCommentsBody = zWorkflowCommentCreatePayload + +export const zPostAppsByAppIdWorkflowCommentsPath = z.object({ + app_id: z.string(), +}) + +/** + * Comment created successfully + */ +export const zPostAppsByAppIdWorkflowCommentsResponse = zWorkflowCommentCreate + +export const zGetAppsByAppIdWorkflowCommentsMentionUsersPath = z.object({ + app_id: z.string(), +}) + +/** + * Mentionable users retrieved successfully + */ +export const zGetAppsByAppIdWorkflowCommentsMentionUsersResponse + = zWorkflowCommentMentionUsersPayload + +export const zDeleteAppsByAppIdWorkflowCommentsByCommentIdPath = z.object({ + app_id: z.string(), + comment_id: z.string(), +}) + +/** + * Comment deleted successfully + */ +export const zDeleteAppsByAppIdWorkflowCommentsByCommentIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetAppsByAppIdWorkflowCommentsByCommentIdPath = z.object({ + app_id: z.string(), + comment_id: z.string(), +}) + +/** + * Comment retrieved successfully + */ +export const zGetAppsByAppIdWorkflowCommentsByCommentIdResponse = zWorkflowCommentDetail + +export const zPutAppsByAppIdWorkflowCommentsByCommentIdBody = zWorkflowCommentUpdatePayload + +export const zPutAppsByAppIdWorkflowCommentsByCommentIdPath = z.object({ + app_id: z.string(), + comment_id: z.string(), +}) + +/** + * Comment updated successfully + */ +export const zPutAppsByAppIdWorkflowCommentsByCommentIdResponse = zWorkflowCommentUpdate + +export const zPostAppsByAppIdWorkflowCommentsByCommentIdRepliesBody = zWorkflowCommentReplyPayload + +export const zPostAppsByAppIdWorkflowCommentsByCommentIdRepliesPath = z.object({ + app_id: z.string(), + comment_id: z.string(), +}) + +/** + * Reply created successfully + */ +export const zPostAppsByAppIdWorkflowCommentsByCommentIdRepliesResponse + = zWorkflowCommentReplyCreate + +export const zDeleteAppsByAppIdWorkflowCommentsByCommentIdRepliesByReplyIdPath = z.object({ + app_id: z.string(), + comment_id: z.string(), + reply_id: z.string(), +}) + +/** + * Reply deleted successfully + */ +export const zDeleteAppsByAppIdWorkflowCommentsByCommentIdRepliesByReplyIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPutAppsByAppIdWorkflowCommentsByCommentIdRepliesByReplyIdBody + = zWorkflowCommentReplyPayload + +export const zPutAppsByAppIdWorkflowCommentsByCommentIdRepliesByReplyIdPath = z.object({ + app_id: z.string(), + comment_id: z.string(), + reply_id: z.string(), +}) + +/** + * Reply updated successfully + */ +export const zPutAppsByAppIdWorkflowCommentsByCommentIdRepliesByReplyIdResponse + = zWorkflowCommentReplyUpdate + +export const zPostAppsByAppIdWorkflowCommentsByCommentIdResolvePath = z.object({ + app_id: z.string(), + comment_id: z.string(), +}) + +/** + * Comment resolved successfully + */ +export const zPostAppsByAppIdWorkflowCommentsByCommentIdResolveResponse = zWorkflowCommentResolve + +export const zGetAppsByAppIdWorkflowStatisticsAverageAppInteractionsPath = z.object({ + app_id: z.string(), +}) + +export const zGetAppsByAppIdWorkflowStatisticsAverageAppInteractionsQuery = z.object({ + end: z.string().nullish(), + start: z.string().nullish(), +}) + +/** + * Average app interaction statistics retrieved successfully + */ +export const zGetAppsByAppIdWorkflowStatisticsAverageAppInteractionsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetAppsByAppIdWorkflowStatisticsDailyConversationsPath = z.object({ + app_id: z.string(), +}) + +export const zGetAppsByAppIdWorkflowStatisticsDailyConversationsQuery = z.object({ + end: z.string().nullish(), + start: z.string().nullish(), +}) + +/** + * Daily runs statistics retrieved successfully + */ +export const zGetAppsByAppIdWorkflowStatisticsDailyConversationsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetAppsByAppIdWorkflowStatisticsDailyTerminalsPath = z.object({ + app_id: z.string(), +}) + +export const zGetAppsByAppIdWorkflowStatisticsDailyTerminalsQuery = z.object({ + end: z.string().nullish(), + start: z.string().nullish(), +}) + +/** + * Daily terminals statistics retrieved successfully + */ +export const zGetAppsByAppIdWorkflowStatisticsDailyTerminalsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetAppsByAppIdWorkflowStatisticsTokenCostsPath = z.object({ + app_id: z.string(), +}) + +export const zGetAppsByAppIdWorkflowStatisticsTokenCostsQuery = z.object({ + end: z.string().nullish(), + start: z.string().nullish(), +}) + +/** + * Daily token cost statistics retrieved successfully + */ +export const zGetAppsByAppIdWorkflowStatisticsTokenCostsResponse = z.record(z.string(), z.unknown()) + +export const zGetAppsByAppIdWorkflowsPath = z.object({ + app_id: z.string(), +}) + +export const zGetAppsByAppIdWorkflowsQuery = z.object({ + limit: z.int().gte(1).lte(100).optional().default(10), + named_only: z.boolean().optional().default(false), + page: z.int().gte(1).lte(99999).optional().default(1), + user_id: z.string().nullish(), +}) + +/** + * Published workflows retrieved successfully + */ +export const zGetAppsByAppIdWorkflowsResponse = zWorkflowPagination + +export const zGetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsPath = z.object({ + app_id: z.string(), +}) + +/** + * Default block configurations retrieved successfully + */ +export const zGetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypePath = z.object({ + app_id: z.string(), + block_type: z.string(), +}) + +export const zGetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypeQuery = z.object({ + q: z.string().nullish(), +}) + +/** + * Default block configuration retrieved successfully + */ +export const zGetAppsByAppIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypeResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetAppsByAppIdWorkflowsDraftPath = z.object({ + app_id: z.string(), +}) + +/** + * Draft workflow retrieved successfully + */ +export const zGetAppsByAppIdWorkflowsDraftResponse = zWorkflow + +export const zPostAppsByAppIdWorkflowsDraftBody = zSyncDraftWorkflowPayload + +export const zPostAppsByAppIdWorkflowsDraftPath = z.object({ + app_id: z.string(), +}) + +/** + * Draft workflow synced successfully + */ +export const zPostAppsByAppIdWorkflowsDraftResponse = zSyncDraftWorkflowResponse + +export const zGetAppsByAppIdWorkflowsDraftConversationVariablesPath = z.object({ + app_id: z.string(), +}) + +/** + * Conversation variables retrieved successfully + */ +export const zGetAppsByAppIdWorkflowsDraftConversationVariablesResponse = zWorkflowDraftVariableList + +export const zPostAppsByAppIdWorkflowsDraftConversationVariablesBody + = zConversationVariableUpdatePayload + +export const zPostAppsByAppIdWorkflowsDraftConversationVariablesPath = z.object({ + app_id: z.string(), +}) + +/** + * Conversation variables updated successfully + */ +export const zPostAppsByAppIdWorkflowsDraftConversationVariablesResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetAppsByAppIdWorkflowsDraftEnvironmentVariablesPath = z.object({ + app_id: z.string(), +}) + +/** + * Environment variables retrieved successfully + */ +export const zGetAppsByAppIdWorkflowsDraftEnvironmentVariablesResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostAppsByAppIdWorkflowsDraftEnvironmentVariablesBody + = zEnvironmentVariableUpdatePayload + +export const zPostAppsByAppIdWorkflowsDraftEnvironmentVariablesPath = z.object({ + app_id: z.string(), +}) + +/** + * Environment variables updated successfully + */ +export const zPostAppsByAppIdWorkflowsDraftEnvironmentVariablesResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostAppsByAppIdWorkflowsDraftFeaturesBody = zWorkflowFeaturesPayload + +export const zPostAppsByAppIdWorkflowsDraftFeaturesPath = z.object({ + app_id: z.string(), +}) + +/** + * Workflow features updated successfully + */ +export const zPostAppsByAppIdWorkflowsDraftFeaturesResponse = z.record(z.string(), z.unknown()) + +export const zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdDeliveryTestBody + = zHumanInputDeliveryTestPayload + +export const zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdDeliveryTestPath = z.object({ + app_id: z.string(), + node_id: z.string(), +}) + +/** + * Success + */ +export const zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdDeliveryTestResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormPreviewBody + = zHumanInputFormPreviewPayload + +export const zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormPreviewPath = z.object({ + app_id: z.string(), + node_id: z.string(), +}) + +/** + * Success + */ +export const zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormPreviewResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormRunBody + = zHumanInputFormSubmitPayload + +export const zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormRunPath = z.object({ + app_id: z.string(), + node_id: z.string(), +}) + +/** + * Success + */ +export const zPostAppsByAppIdWorkflowsDraftHumanInputNodesByNodeIdFormRunResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostAppsByAppIdWorkflowsDraftIterationNodesByNodeIdRunBody = zIterationNodeRunPayload + +export const zPostAppsByAppIdWorkflowsDraftIterationNodesByNodeIdRunPath = z.object({ + app_id: z.string(), + node_id: z.string(), +}) + +/** + * Workflow iteration node run started successfully + */ +export const zPostAppsByAppIdWorkflowsDraftIterationNodesByNodeIdRunResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostAppsByAppIdWorkflowsDraftLoopNodesByNodeIdRunBody = zLoopNodeRunPayload + +export const zPostAppsByAppIdWorkflowsDraftLoopNodesByNodeIdRunPath = z.object({ + app_id: z.string(), + node_id: z.string(), +}) + +/** + * Workflow loop node run started successfully + */ +export const zPostAppsByAppIdWorkflowsDraftLoopNodesByNodeIdRunResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetAppsByAppIdWorkflowsDraftNodesByNodeIdLastRunPath = z.object({ + app_id: z.string(), + node_id: z.string(), +}) + +/** + * Node last run retrieved successfully + */ +export const zGetAppsByAppIdWorkflowsDraftNodesByNodeIdLastRunResponse = zWorkflowRunNodeExecution + +export const zPostAppsByAppIdWorkflowsDraftNodesByNodeIdRunBody = zDraftWorkflowNodeRunPayload + +export const zPostAppsByAppIdWorkflowsDraftNodesByNodeIdRunPath = z.object({ + app_id: z.string(), + node_id: z.string(), +}) + +/** + * Node run started successfully + */ +export const zPostAppsByAppIdWorkflowsDraftNodesByNodeIdRunResponse = zWorkflowRunNodeExecution + +export const zPostAppsByAppIdWorkflowsDraftNodesByNodeIdTriggerRunPath = z.object({ + app_id: z.string(), + node_id: z.string(), +}) + +/** + * Trigger event received and node executed successfully + */ +export const zPostAppsByAppIdWorkflowsDraftNodesByNodeIdTriggerRunResponse = z.record( + z.string(), + z.unknown(), +) + +export const zDeleteAppsByAppIdWorkflowsDraftNodesByNodeIdVariablesPath = z.object({ + node_id: z.string(), + app_id: z.string(), +}) + +/** + * Node variables deleted successfully + */ +export const zDeleteAppsByAppIdWorkflowsDraftNodesByNodeIdVariablesResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetAppsByAppIdWorkflowsDraftNodesByNodeIdVariablesPath = z.object({ + app_id: z.string(), + node_id: z.string(), +}) + +/** + * Node variables retrieved successfully + */ +export const zGetAppsByAppIdWorkflowsDraftNodesByNodeIdVariablesResponse + = zWorkflowDraftVariableList + +export const zPostAppsByAppIdWorkflowsDraftRunBody = zDraftWorkflowRunPayload + +export const zPostAppsByAppIdWorkflowsDraftRunPath = z.object({ + app_id: z.string(), +}) + +/** + * Draft workflow run started successfully + */ +export const zPostAppsByAppIdWorkflowsDraftRunResponse = z.record(z.string(), z.unknown()) + +export const zGetAppsByAppIdWorkflowsDraftSystemVariablesPath = z.object({ + app_id: z.string(), +}) + +/** + * System variables retrieved successfully + */ +export const zGetAppsByAppIdWorkflowsDraftSystemVariablesResponse = zWorkflowDraftVariableList + +export const zPostAppsByAppIdWorkflowsDraftTriggerRunBody = zDraftWorkflowTriggerRunRequest + +export const zPostAppsByAppIdWorkflowsDraftTriggerRunPath = z.object({ + app_id: z.string(), +}) + +/** + * Trigger event received and workflow executed successfully + */ +export const zPostAppsByAppIdWorkflowsDraftTriggerRunResponse = z.record(z.string(), z.unknown()) + +export const zPostAppsByAppIdWorkflowsDraftTriggerRunAllBody = zDraftWorkflowTriggerRunAllPayload + +export const zPostAppsByAppIdWorkflowsDraftTriggerRunAllPath = z.object({ + app_id: z.string(), +}) + +/** + * Workflow executed successfully + */ +export const zPostAppsByAppIdWorkflowsDraftTriggerRunAllResponse = z.record(z.string(), z.unknown()) + +export const zDeleteAppsByAppIdWorkflowsDraftVariablesPath = z.object({ + app_id: z.string(), +}) + +/** + * Workflow variables deleted successfully + */ +export const zDeleteAppsByAppIdWorkflowsDraftVariablesResponse = z.record(z.string(), z.unknown()) + +export const zGetAppsByAppIdWorkflowsDraftVariablesPath = z.object({ + app_id: z.string(), +}) + +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), +}) + +/** + * Workflow variables retrieved successfully + */ +export const zGetAppsByAppIdWorkflowsDraftVariablesResponse = zWorkflowDraftVariableListWithoutValue + +export const zDeleteAppsByAppIdWorkflowsDraftVariablesByVariableIdPath = z.object({ + app_id: z.string(), + variable_id: z.string(), +}) + +/** + * Variable deleted successfully + */ +export const zDeleteAppsByAppIdWorkflowsDraftVariablesByVariableIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetAppsByAppIdWorkflowsDraftVariablesByVariableIdPath = z.object({ + app_id: z.string(), + variable_id: z.string(), +}) + +/** + * Variable retrieved successfully + */ +export const zGetAppsByAppIdWorkflowsDraftVariablesByVariableIdResponse = zWorkflowDraftVariable + +export const zPatchAppsByAppIdWorkflowsDraftVariablesByVariableIdBody + = zWorkflowDraftVariableUpdatePayload + +export const zPatchAppsByAppIdWorkflowsDraftVariablesByVariableIdPath = z.object({ + app_id: z.string(), + variable_id: z.string(), +}) + +/** + * Variable updated successfully + */ +export const zPatchAppsByAppIdWorkflowsDraftVariablesByVariableIdResponse = zWorkflowDraftVariable + +export const zPutAppsByAppIdWorkflowsDraftVariablesByVariableIdResetPath = z.object({ + app_id: z.string(), + variable_id: z.string(), +}) + +export const zPutAppsByAppIdWorkflowsDraftVariablesByVariableIdResetResponse = z.union([ + zWorkflowDraftVariable, + z.record(z.string(), z.unknown()), +]) + +export const zGetAppsByAppIdWorkflowsPublishPath = z.object({ + app_id: z.string(), +}) + +/** + * Published workflow retrieved successfully + */ +export const zGetAppsByAppIdWorkflowsPublishResponse = zWorkflow + +export const zPostAppsByAppIdWorkflowsPublishBody = zPublishWorkflowPayload + +export const zPostAppsByAppIdWorkflowsPublishPath = z.object({ + app_id: z.string(), +}) + +/** + * Success + */ +export const zPostAppsByAppIdWorkflowsPublishResponse = z.record(z.string(), z.unknown()) + +export const zGetAppsByAppIdWorkflowsTriggersWebhookPath = z.object({ + app_id: z.string(), +}) + +export const zGetAppsByAppIdWorkflowsTriggersWebhookQuery = z.object({ + credential_id: z.string().nullish(), + datasource_type: z.string(), + inputs: z.string(), +}) + +/** + * Success + */ +export const zGetAppsByAppIdWorkflowsTriggersWebhookResponse = zWebhookTriggerResponse + +export const zDeleteAppsByAppIdWorkflowsByWorkflowIdPath = z.object({ + workflow_id: z.string(), + app_id: z.string(), +}) + +/** + * Success + */ +export const zDeleteAppsByAppIdWorkflowsByWorkflowIdResponse = z.record(z.string(), z.unknown()) + +export const zPatchAppsByAppIdWorkflowsByWorkflowIdBody = zWorkflowUpdatePayload + +export const zPatchAppsByAppIdWorkflowsByWorkflowIdPath = z.object({ + app_id: z.string(), + workflow_id: z.string(), +}) + +/** + * Workflow updated successfully + */ +export const zPatchAppsByAppIdWorkflowsByWorkflowIdResponse = zWorkflow + +export const zPostAppsByAppIdWorkflowsByWorkflowIdRestorePath = z.object({ + app_id: z.string(), + workflow_id: z.string(), +}) + +/** + * Workflow restored successfully + */ +export const zPostAppsByAppIdWorkflowsByWorkflowIdRestoreResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetAppsByResourceIdApiKeysPath = z.object({ + resource_id: z.string(), +}) + +/** + * API keys retrieved successfully + */ +export const zGetAppsByResourceIdApiKeysResponse = zApiKeyList + +export const zPostAppsByResourceIdApiKeysPath = z.object({ + resource_id: z.string(), +}) + +/** + * API key created successfully + */ +export const zPostAppsByResourceIdApiKeysResponse = zApiKeyItem + +export const zDeleteAppsByResourceIdApiKeysByApiKeyIdPath = z.object({ + resource_id: z.string(), + api_key_id: z.string(), +}) + +/** + * API key deleted successfully + */ +export const zDeleteAppsByResourceIdApiKeysByApiKeyIdResponse = z.record(z.string(), z.unknown()) + +export const zGetAppsByServerIdServerRefreshPath = z.object({ + server_id: z.string(), +}) + +/** + * MCP server refreshed successfully + */ +export const zGetAppsByServerIdServerRefreshResponse = zAppMcpServerResponse diff --git a/packages/contracts/generated/api/console/auth/orpc.gen.ts b/packages/contracts/generated/api/console/auth/orpc.gen.ts new file mode 100644 index 0000000000..7a95a96f10 --- /dev/null +++ b/packages/contracts/generated/api/console/auth/orpc.gen.ts @@ -0,0 +1,226 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zDeleteAuthPluginDatasourceByProviderIdCustomClientPath, + zDeleteAuthPluginDatasourceByProviderIdCustomClientResponse, + zGetAuthPluginDatasourceByProviderIdPath, + zGetAuthPluginDatasourceByProviderIdResponse, + zGetAuthPluginDatasourceDefaultListResponse, + zGetAuthPluginDatasourceListResponse, + zPostAuthPluginDatasourceByProviderIdBody, + zPostAuthPluginDatasourceByProviderIdCustomClientBody, + zPostAuthPluginDatasourceByProviderIdCustomClientPath, + zPostAuthPluginDatasourceByProviderIdCustomClientResponse, + zPostAuthPluginDatasourceByProviderIdDefaultBody, + zPostAuthPluginDatasourceByProviderIdDefaultPath, + zPostAuthPluginDatasourceByProviderIdDefaultResponse, + zPostAuthPluginDatasourceByProviderIdDeleteBody, + zPostAuthPluginDatasourceByProviderIdDeletePath, + zPostAuthPluginDatasourceByProviderIdDeleteResponse, + zPostAuthPluginDatasourceByProviderIdPath, + zPostAuthPluginDatasourceByProviderIdResponse, + zPostAuthPluginDatasourceByProviderIdUpdateBody, + zPostAuthPluginDatasourceByProviderIdUpdateNameBody, + zPostAuthPluginDatasourceByProviderIdUpdateNamePath, + zPostAuthPluginDatasourceByProviderIdUpdateNameResponse, + zPostAuthPluginDatasourceByProviderIdUpdatePath, + zPostAuthPluginDatasourceByProviderIdUpdateResponse, +} from './zod.gen' + +export const get = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAuthPluginDatasourceDefaultList', + path: '/auth/plugin/datasource/default-list', + tags: ['console'], + }) + .output(zGetAuthPluginDatasourceDefaultListResponse) + +export const defaultList = { + get, +} + +export const get2 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAuthPluginDatasourceList', + path: '/auth/plugin/datasource/list', + tags: ['console'], + }) + .output(zGetAuthPluginDatasourceListResponse) + +export const list = { + get: get2, +} + +export const delete_ = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteAuthPluginDatasourceByProviderIdCustomClient', + path: '/auth/plugin/datasource/{provider_id}/custom-client', + tags: ['console'], + }) + .input(z.object({ params: zDeleteAuthPluginDatasourceByProviderIdCustomClientPath })) + .output(zDeleteAuthPluginDatasourceByProviderIdCustomClientResponse) + +export const post = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAuthPluginDatasourceByProviderIdCustomClient', + path: '/auth/plugin/datasource/{provider_id}/custom-client', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAuthPluginDatasourceByProviderIdCustomClientBody, + params: zPostAuthPluginDatasourceByProviderIdCustomClientPath, + }), + ) + .output(zPostAuthPluginDatasourceByProviderIdCustomClientResponse) + +export const customClient = { + delete: delete_, + post, +} + +export const post2 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAuthPluginDatasourceByProviderIdDefault', + path: '/auth/plugin/datasource/{provider_id}/default', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAuthPluginDatasourceByProviderIdDefaultBody, + params: zPostAuthPluginDatasourceByProviderIdDefaultPath, + }), + ) + .output(zPostAuthPluginDatasourceByProviderIdDefaultResponse) + +export const default_ = { + post: post2, +} + +export const post3 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAuthPluginDatasourceByProviderIdDelete', + path: '/auth/plugin/datasource/{provider_id}/delete', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAuthPluginDatasourceByProviderIdDeleteBody, + params: zPostAuthPluginDatasourceByProviderIdDeletePath, + }), + ) + .output(zPostAuthPluginDatasourceByProviderIdDeleteResponse) + +export const delete2 = { + post: post3, +} + +export const post4 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAuthPluginDatasourceByProviderIdUpdate', + path: '/auth/plugin/datasource/{provider_id}/update', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAuthPluginDatasourceByProviderIdUpdateBody, + params: zPostAuthPluginDatasourceByProviderIdUpdatePath, + }), + ) + .output(zPostAuthPluginDatasourceByProviderIdUpdateResponse) + +export const update = { + post: post4, +} + +export const post5 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAuthPluginDatasourceByProviderIdUpdateName', + path: '/auth/plugin/datasource/{provider_id}/update-name', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAuthPluginDatasourceByProviderIdUpdateNameBody, + params: zPostAuthPluginDatasourceByProviderIdUpdateNamePath, + }), + ) + .output(zPostAuthPluginDatasourceByProviderIdUpdateNameResponse) + +export const updateName = { + post: post5, +} + +export const get3 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAuthPluginDatasourceByProviderId', + path: '/auth/plugin/datasource/{provider_id}', + tags: ['console'], + }) + .input(z.object({ params: zGetAuthPluginDatasourceByProviderIdPath })) + .output(zGetAuthPluginDatasourceByProviderIdResponse) + +export const post6 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAuthPluginDatasourceByProviderId', + path: '/auth/plugin/datasource/{provider_id}', + tags: ['console'], + }) + .input( + z.object({ + body: zPostAuthPluginDatasourceByProviderIdBody, + params: zPostAuthPluginDatasourceByProviderIdPath, + }), + ) + .output(zPostAuthPluginDatasourceByProviderIdResponse) + +export const byProviderId = { + get: get3, + post: post6, + customClient, + default: default_, + delete: delete2, + update, + updateName, +} + +export const datasource = { + defaultList, + list, + byProviderId, +} + +export const plugin = { + datasource, +} + +export const auth = { + plugin, +} + +export const contract = { + auth, +} diff --git a/packages/contracts/generated/api/console/auth/types.gen.ts b/packages/contracts/generated/api/console/auth/types.gen.ts new file mode 100644 index 0000000000..1a974f626b --- /dev/null +++ b/packages/contracts/generated/api/console/auth/types.gen.ts @@ -0,0 +1,216 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type DatasourceCredentialPayload = { + credentials: { + [key: string]: unknown + } + name?: string | null +} + +export type DatasourceCustomClientPayload = { + client_params?: { + [key: string]: unknown + } | null + enable_oauth_custom_client?: boolean | null +} + +export type DatasourceDefaultPayload = { + id: string +} + +export type DatasourceCredentialDeletePayload = { + credential_id: string +} + +export type DatasourceCredentialUpdatePayload = { + credential_id: string + credentials?: { + [key: string]: unknown + } | null + name?: string | null +} + +export type DatasourceUpdateNamePayload = { + credential_id: string + name: string +} + +export type GetAuthPluginDatasourceDefaultListData = { + body?: never + path?: never + query?: never + url: '/auth/plugin/datasource/default-list' +} + +export type GetAuthPluginDatasourceDefaultListResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetAuthPluginDatasourceDefaultListResponse + = GetAuthPluginDatasourceDefaultListResponses[keyof GetAuthPluginDatasourceDefaultListResponses] + +export type GetAuthPluginDatasourceListData = { + body?: never + path?: never + query?: never + url: '/auth/plugin/datasource/list' +} + +export type GetAuthPluginDatasourceListResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetAuthPluginDatasourceListResponse + = GetAuthPluginDatasourceListResponses[keyof GetAuthPluginDatasourceListResponses] + +export type GetAuthPluginDatasourceByProviderIdData = { + body?: never + path: { + provider_id: string + } + query?: never + url: '/auth/plugin/datasource/{provider_id}' +} + +export type GetAuthPluginDatasourceByProviderIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetAuthPluginDatasourceByProviderIdResponse + = GetAuthPluginDatasourceByProviderIdResponses[keyof GetAuthPluginDatasourceByProviderIdResponses] + +export type PostAuthPluginDatasourceByProviderIdData = { + body: DatasourceCredentialPayload + path: { + provider_id: string + } + query?: never + url: '/auth/plugin/datasource/{provider_id}' +} + +export type PostAuthPluginDatasourceByProviderIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAuthPluginDatasourceByProviderIdResponse + = PostAuthPluginDatasourceByProviderIdResponses[keyof PostAuthPluginDatasourceByProviderIdResponses] + +export type DeleteAuthPluginDatasourceByProviderIdCustomClientData = { + body?: never + path: { + provider_id: string + } + query?: never + url: '/auth/plugin/datasource/{provider_id}/custom-client' +} + +export type DeleteAuthPluginDatasourceByProviderIdCustomClientResponses = { + 200: { + [key: string]: unknown + } +} + +export type DeleteAuthPluginDatasourceByProviderIdCustomClientResponse + = DeleteAuthPluginDatasourceByProviderIdCustomClientResponses[keyof DeleteAuthPluginDatasourceByProviderIdCustomClientResponses] + +export type PostAuthPluginDatasourceByProviderIdCustomClientData = { + body: DatasourceCustomClientPayload + path: { + provider_id: string + } + query?: never + url: '/auth/plugin/datasource/{provider_id}/custom-client' +} + +export type PostAuthPluginDatasourceByProviderIdCustomClientResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAuthPluginDatasourceByProviderIdCustomClientResponse + = PostAuthPluginDatasourceByProviderIdCustomClientResponses[keyof PostAuthPluginDatasourceByProviderIdCustomClientResponses] + +export type PostAuthPluginDatasourceByProviderIdDefaultData = { + body: DatasourceDefaultPayload + path: { + provider_id: string + } + query?: never + url: '/auth/plugin/datasource/{provider_id}/default' +} + +export type PostAuthPluginDatasourceByProviderIdDefaultResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAuthPluginDatasourceByProviderIdDefaultResponse + = PostAuthPluginDatasourceByProviderIdDefaultResponses[keyof PostAuthPluginDatasourceByProviderIdDefaultResponses] + +export type PostAuthPluginDatasourceByProviderIdDeleteData = { + body: DatasourceCredentialDeletePayload + path: { + provider_id: string + } + query?: never + url: '/auth/plugin/datasource/{provider_id}/delete' +} + +export type PostAuthPluginDatasourceByProviderIdDeleteResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAuthPluginDatasourceByProviderIdDeleteResponse + = PostAuthPluginDatasourceByProviderIdDeleteResponses[keyof PostAuthPluginDatasourceByProviderIdDeleteResponses] + +export type PostAuthPluginDatasourceByProviderIdUpdateData = { + body: DatasourceCredentialUpdatePayload + path: { + provider_id: string + } + query?: never + url: '/auth/plugin/datasource/{provider_id}/update' +} + +export type PostAuthPluginDatasourceByProviderIdUpdateResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAuthPluginDatasourceByProviderIdUpdateResponse + = PostAuthPluginDatasourceByProviderIdUpdateResponses[keyof PostAuthPluginDatasourceByProviderIdUpdateResponses] + +export type PostAuthPluginDatasourceByProviderIdUpdateNameData = { + body: DatasourceUpdateNamePayload + path: { + provider_id: string + } + query?: never + url: '/auth/plugin/datasource/{provider_id}/update-name' +} + +export type PostAuthPluginDatasourceByProviderIdUpdateNameResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAuthPluginDatasourceByProviderIdUpdateNameResponse + = PostAuthPluginDatasourceByProviderIdUpdateNameResponses[keyof PostAuthPluginDatasourceByProviderIdUpdateNameResponses] diff --git a/packages/contracts/generated/api/console/auth/zod.gen.ts b/packages/contracts/generated/api/console/auth/zod.gen.ts new file mode 100644 index 0000000000..3d183e09cd --- /dev/null +++ b/packages/contracts/generated/api/console/auth/zod.gen.ts @@ -0,0 +1,156 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * DatasourceCredentialPayload + */ +export const zDatasourceCredentialPayload = z.object({ + credentials: z.record(z.string(), z.unknown()), + name: z.string().max(100).nullish(), +}) + +/** + * DatasourceCustomClientPayload + */ +export const zDatasourceCustomClientPayload = z.object({ + client_params: z.record(z.string(), z.unknown()).nullish(), + enable_oauth_custom_client: z.boolean().nullish(), +}) + +/** + * DatasourceDefaultPayload + */ +export const zDatasourceDefaultPayload = z.object({ + id: z.string(), +}) + +/** + * DatasourceCredentialDeletePayload + */ +export const zDatasourceCredentialDeletePayload = z.object({ + credential_id: z.string(), +}) + +/** + * DatasourceCredentialUpdatePayload + */ +export const zDatasourceCredentialUpdatePayload = z.object({ + credential_id: z.string(), + credentials: z.record(z.string(), z.unknown()).nullish(), + name: z.string().max(100).nullish(), +}) + +/** + * DatasourceUpdateNamePayload + */ +export const zDatasourceUpdateNamePayload = z.object({ + credential_id: z.string(), + name: z.string().max(100), +}) + +/** + * Success + */ +export const zGetAuthPluginDatasourceDefaultListResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zGetAuthPluginDatasourceListResponse = z.record(z.string(), z.unknown()) + +export const zGetAuthPluginDatasourceByProviderIdPath = z.object({ + provider_id: z.string(), +}) + +/** + * Success + */ +export const zGetAuthPluginDatasourceByProviderIdResponse = z.record(z.string(), z.unknown()) + +export const zPostAuthPluginDatasourceByProviderIdBody = zDatasourceCredentialPayload + +export const zPostAuthPluginDatasourceByProviderIdPath = z.object({ + provider_id: z.string(), +}) + +/** + * Success + */ +export const zPostAuthPluginDatasourceByProviderIdResponse = z.record(z.string(), z.unknown()) + +export const zDeleteAuthPluginDatasourceByProviderIdCustomClientPath = z.object({ + provider_id: z.string(), +}) + +/** + * Success + */ +export const zDeleteAuthPluginDatasourceByProviderIdCustomClientResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostAuthPluginDatasourceByProviderIdCustomClientBody = zDatasourceCustomClientPayload + +export const zPostAuthPluginDatasourceByProviderIdCustomClientPath = z.object({ + provider_id: z.string(), +}) + +/** + * Success + */ +export const zPostAuthPluginDatasourceByProviderIdCustomClientResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostAuthPluginDatasourceByProviderIdDefaultBody = zDatasourceDefaultPayload + +export const zPostAuthPluginDatasourceByProviderIdDefaultPath = z.object({ + provider_id: z.string(), +}) + +/** + * Success + */ +export const zPostAuthPluginDatasourceByProviderIdDefaultResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostAuthPluginDatasourceByProviderIdDeleteBody = zDatasourceCredentialDeletePayload + +export const zPostAuthPluginDatasourceByProviderIdDeletePath = z.object({ + provider_id: z.string(), +}) + +/** + * Success + */ +export const zPostAuthPluginDatasourceByProviderIdDeleteResponse = z.record(z.string(), z.unknown()) + +export const zPostAuthPluginDatasourceByProviderIdUpdateBody = zDatasourceCredentialUpdatePayload + +export const zPostAuthPluginDatasourceByProviderIdUpdatePath = z.object({ + provider_id: z.string(), +}) + +/** + * Success + */ +export const zPostAuthPluginDatasourceByProviderIdUpdateResponse = z.record(z.string(), z.unknown()) + +export const zPostAuthPluginDatasourceByProviderIdUpdateNameBody = zDatasourceUpdateNamePayload + +export const zPostAuthPluginDatasourceByProviderIdUpdateNamePath = z.object({ + provider_id: z.string(), +}) + +/** + * Success + */ +export const zPostAuthPluginDatasourceByProviderIdUpdateNameResponse = z.record( + z.string(), + z.unknown(), +) diff --git a/packages/contracts/generated/api/console/billing/orpc.gen.ts b/packages/contracts/generated/api/console/billing/orpc.gen.ts new file mode 100644 index 0000000000..09d25c072e --- /dev/null +++ b/packages/contracts/generated/api/console/billing/orpc.gen.ts @@ -0,0 +1,82 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zGetBillingInvoicesResponse, + zGetBillingSubscriptionResponse, + zPutBillingPartnersByPartnerKeyTenantsBody, + zPutBillingPartnersByPartnerKeyTenantsPath, + zPutBillingPartnersByPartnerKeyTenantsResponse, +} from './zod.gen' + +export const get = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getBillingInvoices', + path: '/billing/invoices', + tags: ['console'], + }) + .output(zGetBillingInvoicesResponse) + +export const invoices = { + get, +} + +/** + * Sync partner tenants bindings + */ +export const put = oc + .route({ + description: 'Sync partner tenants bindings', + inputStructure: 'detailed', + method: 'PUT', + operationId: 'putBillingPartnersByPartnerKeyTenants', + path: '/billing/partners/{partner_key}/tenants', + tags: ['console'], + }) + .input( + z.object({ + body: zPutBillingPartnersByPartnerKeyTenantsBody, + params: zPutBillingPartnersByPartnerKeyTenantsPath, + }), + ) + .output(zPutBillingPartnersByPartnerKeyTenantsResponse) + +export const tenants = { + put, +} + +export const byPartnerKey = { + tenants, +} + +export const partners = { + byPartnerKey, +} + +export const get2 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getBillingSubscription', + path: '/billing/subscription', + tags: ['console'], + }) + .output(zGetBillingSubscriptionResponse) + +export const subscription = { + get: get2, +} + +export const billing = { + invoices, + partners, + subscription, +} + +export const contract = { + billing, +} diff --git a/packages/contracts/generated/api/console/billing/types.gen.ts b/packages/contracts/generated/api/console/billing/types.gen.ts new file mode 100644 index 0000000000..7a9880c03e --- /dev/null +++ b/packages/contracts/generated/api/console/billing/types.gen.ts @@ -0,0 +1,68 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type PartnerTenantsPayload = { + click_id: string +} + +export type GetBillingInvoicesData = { + body?: never + path?: never + query?: never + url: '/billing/invoices' +} + +export type GetBillingInvoicesResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetBillingInvoicesResponse + = GetBillingInvoicesResponses[keyof GetBillingInvoicesResponses] + +export type PutBillingPartnersByPartnerKeyTenantsData = { + body: PartnerTenantsPayload + path: { + partner_key: string + } + query?: never + url: '/billing/partners/{partner_key}/tenants' +} + +export type PutBillingPartnersByPartnerKeyTenantsErrors = { + 400: { + [key: string]: unknown + } +} + +export type PutBillingPartnersByPartnerKeyTenantsError + = PutBillingPartnersByPartnerKeyTenantsErrors[keyof PutBillingPartnersByPartnerKeyTenantsErrors] + +export type PutBillingPartnersByPartnerKeyTenantsResponses = { + 200: { + [key: string]: unknown + } +} + +export type PutBillingPartnersByPartnerKeyTenantsResponse + = PutBillingPartnersByPartnerKeyTenantsResponses[keyof PutBillingPartnersByPartnerKeyTenantsResponses] + +export type GetBillingSubscriptionData = { + body?: never + path?: never + query?: never + url: '/billing/subscription' +} + +export type GetBillingSubscriptionResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetBillingSubscriptionResponse + = GetBillingSubscriptionResponses[keyof GetBillingSubscriptionResponses] diff --git a/packages/contracts/generated/api/console/billing/zod.gen.ts b/packages/contracts/generated/api/console/billing/zod.gen.ts new file mode 100644 index 0000000000..7b5412c7f4 --- /dev/null +++ b/packages/contracts/generated/api/console/billing/zod.gen.ts @@ -0,0 +1,31 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * PartnerTenantsPayload + */ +export const zPartnerTenantsPayload = z.object({ + click_id: z.string(), +}) + +/** + * Success + */ +export const zGetBillingInvoicesResponse = z.record(z.string(), z.unknown()) + +export const zPutBillingPartnersByPartnerKeyTenantsBody = zPartnerTenantsPayload + +export const zPutBillingPartnersByPartnerKeyTenantsPath = z.object({ + partner_key: z.string(), +}) + +/** + * Tenants synced to partner successfully + */ +export const zPutBillingPartnersByPartnerKeyTenantsResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zGetBillingSubscriptionResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/api/console/code-based-extension/orpc.gen.ts b/packages/contracts/generated/api/console/code-based-extension/orpc.gen.ts new file mode 100644 index 0000000000..b3baddafd4 --- /dev/null +++ b/packages/contracts/generated/api/console/code-based-extension/orpc.gen.ts @@ -0,0 +1,29 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { zGetCodeBasedExtensionQuery, zGetCodeBasedExtensionResponse } from './zod.gen' + +/** + * Get code-based extension data by module name + */ +export const get = oc + .route({ + description: 'Get code-based extension data by module name', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getCodeBasedExtension', + path: '/code-based-extension', + tags: ['console'], + }) + .input(z.object({ query: zGetCodeBasedExtensionQuery.optional() })) + .output(zGetCodeBasedExtensionResponse) + +export const codeBasedExtension = { + get, +} + +export const contract = { + codeBasedExtension, +} diff --git a/packages/contracts/generated/api/console/code-based-extension/types.gen.ts b/packages/contracts/generated/api/console/code-based-extension/types.gen.ts new file mode 100644 index 0000000000..85d224f8d1 --- /dev/null +++ b/packages/contracts/generated/api/console/code-based-extension/types.gen.ts @@ -0,0 +1,26 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type CodeBasedExtensionResponse = { + data: unknown + module: string +} + +export type GetCodeBasedExtensionData = { + body?: never + path?: never + query?: { + module?: string + } + url: '/code-based-extension' +} + +export type GetCodeBasedExtensionResponses = { + 200: CodeBasedExtensionResponse +} + +export type GetCodeBasedExtensionResponse + = GetCodeBasedExtensionResponses[keyof GetCodeBasedExtensionResponses] diff --git a/packages/contracts/generated/api/console/code-based-extension/zod.gen.ts b/packages/contracts/generated/api/console/code-based-extension/zod.gen.ts new file mode 100644 index 0000000000..3cd520cb97 --- /dev/null +++ b/packages/contracts/generated/api/console/code-based-extension/zod.gen.ts @@ -0,0 +1,20 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * CodeBasedExtensionResponse + */ +export const zCodeBasedExtensionResponse = z.object({ + data: z.unknown(), + module: z.string(), +}) + +export const zGetCodeBasedExtensionQuery = z.object({ + module: z.string().optional(), +}) + +/** + * Success + */ +export const zGetCodeBasedExtensionResponse = zCodeBasedExtensionResponse diff --git a/packages/contracts/generated/api/console/compliance/orpc.gen.ts b/packages/contracts/generated/api/console/compliance/orpc.gen.ts new file mode 100644 index 0000000000..e68c87e7eb --- /dev/null +++ b/packages/contracts/generated/api/console/compliance/orpc.gen.ts @@ -0,0 +1,33 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { zGetComplianceDownloadQuery, zGetComplianceDownloadResponse } from './zod.gen' + +/** + * Get compliance document download link + */ +export const get = oc + .route({ + description: 'Get compliance document download link', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getComplianceDownload', + path: '/compliance/download', + tags: ['console'], + }) + .input(z.object({ query: zGetComplianceDownloadQuery })) + .output(zGetComplianceDownloadResponse) + +export const download = { + get, +} + +export const compliance = { + download, +} + +export const contract = { + compliance, +} diff --git a/packages/contracts/generated/api/console/compliance/types.gen.ts b/packages/contracts/generated/api/console/compliance/types.gen.ts new file mode 100644 index 0000000000..12ab2a82a8 --- /dev/null +++ b/packages/contracts/generated/api/console/compliance/types.gen.ts @@ -0,0 +1,23 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type GetComplianceDownloadData = { + body?: never + path?: never + query: { + doc_name: string + } + url: '/compliance/download' +} + +export type GetComplianceDownloadResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetComplianceDownloadResponse + = GetComplianceDownloadResponses[keyof GetComplianceDownloadResponses] diff --git a/packages/contracts/generated/api/console/compliance/zod.gen.ts b/packages/contracts/generated/api/console/compliance/zod.gen.ts new file mode 100644 index 0000000000..2d42e75fbc --- /dev/null +++ b/packages/contracts/generated/api/console/compliance/zod.gen.ts @@ -0,0 +1,12 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +export const zGetComplianceDownloadQuery = z.object({ + doc_name: z.string(), +}) + +/** + * Success + */ +export const zGetComplianceDownloadResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/api/console/data-source/orpc.gen.ts b/packages/contracts/generated/api/console/data-source/orpc.gen.ts new file mode 100644 index 0000000000..209447236a --- /dev/null +++ b/packages/contracts/generated/api/console/data-source/orpc.gen.ts @@ -0,0 +1,78 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zGetDataSourceIntegratesByBindingIdByActionPath, + zGetDataSourceIntegratesByBindingIdByActionResponse, + zGetDataSourceIntegratesResponse, + zPatchDataSourceIntegratesByBindingIdByActionPath, + zPatchDataSourceIntegratesByBindingIdByActionResponse, + zPatchDataSourceIntegratesResponse, +} from './zod.gen' + +export const get = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDataSourceIntegratesByBindingIdByAction', + path: '/data-source/integrates/{binding_id}/{action}', + tags: ['console'], + }) + .input(z.object({ params: zGetDataSourceIntegratesByBindingIdByActionPath })) + .output(zGetDataSourceIntegratesByBindingIdByActionResponse) + +export const patch = oc + .route({ + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchDataSourceIntegratesByBindingIdByAction', + path: '/data-source/integrates/{binding_id}/{action}', + tags: ['console'], + }) + .input(z.object({ params: zPatchDataSourceIntegratesByBindingIdByActionPath })) + .output(zPatchDataSourceIntegratesByBindingIdByActionResponse) + +export const byAction = { + get, + patch, +} + +export const byBindingId = { + byAction, +} + +export const get2 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDataSourceIntegrates', + path: '/data-source/integrates', + tags: ['console'], + }) + .output(zGetDataSourceIntegratesResponse) + +export const patch2 = oc + .route({ + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchDataSourceIntegrates', + path: '/data-source/integrates', + tags: ['console'], + }) + .output(zPatchDataSourceIntegratesResponse) + +export const integrates = { + get: get2, + patch: patch2, + byBindingId, +} + +export const dataSource = { + integrates, +} + +export const contract = { + dataSource, +} diff --git a/packages/contracts/generated/api/console/data-source/types.gen.ts b/packages/contracts/generated/api/console/data-source/types.gen.ts new file mode 100644 index 0000000000..db83d81ec1 --- /dev/null +++ b/packages/contracts/generated/api/console/data-source/types.gen.ts @@ -0,0 +1,75 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type GetDataSourceIntegratesData = { + body?: never + path?: never + query?: never + url: '/data-source/integrates' +} + +export type GetDataSourceIntegratesResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDataSourceIntegratesResponse + = GetDataSourceIntegratesResponses[keyof GetDataSourceIntegratesResponses] + +export type PatchDataSourceIntegratesData = { + body?: never + path?: never + query?: never + url: '/data-source/integrates' +} + +export type PatchDataSourceIntegratesResponses = { + 200: { + [key: string]: unknown + } +} + +export type PatchDataSourceIntegratesResponse + = PatchDataSourceIntegratesResponses[keyof PatchDataSourceIntegratesResponses] + +export type GetDataSourceIntegratesByBindingIdByActionData = { + body?: never + path: { + binding_id: string + action: string + } + query?: never + url: '/data-source/integrates/{binding_id}/{action}' +} + +export type GetDataSourceIntegratesByBindingIdByActionResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDataSourceIntegratesByBindingIdByActionResponse + = GetDataSourceIntegratesByBindingIdByActionResponses[keyof GetDataSourceIntegratesByBindingIdByActionResponses] + +export type PatchDataSourceIntegratesByBindingIdByActionData = { + body?: never + path: { + binding_id: string + action: string + } + query?: never + url: '/data-source/integrates/{binding_id}/{action}' +} + +export type PatchDataSourceIntegratesByBindingIdByActionResponses = { + 200: { + [key: string]: unknown + } +} + +export type PatchDataSourceIntegratesByBindingIdByActionResponse + = PatchDataSourceIntegratesByBindingIdByActionResponses[keyof PatchDataSourceIntegratesByBindingIdByActionResponses] diff --git a/packages/contracts/generated/api/console/data-source/zod.gen.ts b/packages/contracts/generated/api/console/data-source/zod.gen.ts new file mode 100644 index 0000000000..1684b7e637 --- /dev/null +++ b/packages/contracts/generated/api/console/data-source/zod.gen.ts @@ -0,0 +1,36 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * Success + */ +export const zGetDataSourceIntegratesResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zPatchDataSourceIntegratesResponse = z.record(z.string(), z.unknown()) + +export const zGetDataSourceIntegratesByBindingIdByActionPath = z.object({ + binding_id: z.string(), + action: z.string(), +}) + +/** + * Success + */ +export const zGetDataSourceIntegratesByBindingIdByActionResponse = z.record(z.string(), z.unknown()) + +export const zPatchDataSourceIntegratesByBindingIdByActionPath = z.object({ + binding_id: z.string(), + action: z.string(), +}) + +/** + * Success + */ +export const zPatchDataSourceIntegratesByBindingIdByActionResponse = z.record( + z.string(), + z.unknown(), +) diff --git a/packages/contracts/generated/api/console/datasets/orpc.gen.ts b/packages/contracts/generated/api/console/datasets/orpc.gen.ts new file mode 100644 index 0000000000..37a0b7cb8c --- /dev/null +++ b/packages/contracts/generated/api/console/datasets/orpc.gen.ts @@ -0,0 +1,1786 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zDeleteDatasetsApiKeysByApiKeyIdPath, + zDeleteDatasetsApiKeysByApiKeyIdResponse, + zDeleteDatasetsByDatasetIdDocumentsByDocumentIdPath, + zDeleteDatasetsByDatasetIdDocumentsByDocumentIdResponse, + zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdPath, + zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdResponse, + zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdPath, + zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponse, + zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsPath, + zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsResponse, + zDeleteDatasetsByDatasetIdDocumentsPath, + zDeleteDatasetsByDatasetIdDocumentsResponse, + zDeleteDatasetsByDatasetIdMetadataByMetadataIdPath, + zDeleteDatasetsByDatasetIdMetadataByMetadataIdResponse, + zDeleteDatasetsByDatasetIdPath, + zDeleteDatasetsByDatasetIdResponse, + zDeleteDatasetsByResourceIdApiKeysByApiKeyIdPath, + zDeleteDatasetsByResourceIdApiKeysByApiKeyIdResponse, + zDeleteDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdPath, + zDeleteDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdResponse, + zGetDatasetsApiBaseInfoResponse, + zGetDatasetsApiKeysResponse, + zGetDatasetsBatchImportStatusByJobIdPath, + zGetDatasetsBatchImportStatusByJobIdResponse, + zGetDatasetsByDatasetIdAutoDisableLogsPath, + zGetDatasetsByDatasetIdAutoDisableLogsResponse, + zGetDatasetsByDatasetIdBatchByBatchIndexingEstimatePath, + zGetDatasetsByDatasetIdBatchByBatchIndexingEstimateResponse, + zGetDatasetsByDatasetIdBatchByBatchIndexingStatusPath, + zGetDatasetsByDatasetIdBatchByBatchIndexingStatusResponse, + zGetDatasetsByDatasetIdDocumentsByDocumentIdDownloadPath, + zGetDatasetsByDatasetIdDocumentsByDocumentIdDownloadResponse, + zGetDatasetsByDatasetIdDocumentsByDocumentIdIndexingEstimatePath, + zGetDatasetsByDatasetIdDocumentsByDocumentIdIndexingEstimateResponse, + zGetDatasetsByDatasetIdDocumentsByDocumentIdIndexingStatusPath, + zGetDatasetsByDatasetIdDocumentsByDocumentIdIndexingStatusResponse, + zGetDatasetsByDatasetIdDocumentsByDocumentIdNotionSyncPath, + zGetDatasetsByDatasetIdDocumentsByDocumentIdNotionSyncResponse, + zGetDatasetsByDatasetIdDocumentsByDocumentIdPath, + zGetDatasetsByDatasetIdDocumentsByDocumentIdPipelineExecutionLogPath, + zGetDatasetsByDatasetIdDocumentsByDocumentIdPipelineExecutionLogResponse, + zGetDatasetsByDatasetIdDocumentsByDocumentIdQuery, + zGetDatasetsByDatasetIdDocumentsByDocumentIdResponse, + zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBatchImportPath, + zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBatchImportResponse, + zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksPath, + zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponse, + zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsPath, + zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsResponse, + zGetDatasetsByDatasetIdDocumentsByDocumentIdSummaryStatusPath, + zGetDatasetsByDatasetIdDocumentsByDocumentIdSummaryStatusResponse, + zGetDatasetsByDatasetIdDocumentsByDocumentIdWebsiteSyncPath, + zGetDatasetsByDatasetIdDocumentsByDocumentIdWebsiteSyncResponse, + zGetDatasetsByDatasetIdDocumentsPath, + zGetDatasetsByDatasetIdDocumentsQuery, + zGetDatasetsByDatasetIdDocumentsResponse, + zGetDatasetsByDatasetIdErrorDocsPath, + zGetDatasetsByDatasetIdErrorDocsResponse, + zGetDatasetsByDatasetIdIndexingStatusPath, + zGetDatasetsByDatasetIdIndexingStatusResponse, + zGetDatasetsByDatasetIdMetadataPath, + zGetDatasetsByDatasetIdMetadataResponse, + zGetDatasetsByDatasetIdNotionSyncPath, + zGetDatasetsByDatasetIdNotionSyncResponse, + zGetDatasetsByDatasetIdPath, + zGetDatasetsByDatasetIdPermissionPartUsersPath, + zGetDatasetsByDatasetIdPermissionPartUsersResponse, + zGetDatasetsByDatasetIdQueriesPath, + zGetDatasetsByDatasetIdQueriesResponse, + zGetDatasetsByDatasetIdRelatedAppsPath, + zGetDatasetsByDatasetIdRelatedAppsResponse, + zGetDatasetsByDatasetIdResponse, + zGetDatasetsByDatasetIdUseCheckPath, + zGetDatasetsByDatasetIdUseCheckResponse, + zGetDatasetsByResourceIdApiKeysPath, + zGetDatasetsByResourceIdApiKeysResponse, + zGetDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdPath, + zGetDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdResponse, + zGetDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdUseCheckPath, + zGetDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdUseCheckResponse, + zGetDatasetsExternalKnowledgeApiQuery, + zGetDatasetsExternalKnowledgeApiResponse, + zGetDatasetsMetadataBuiltInResponse, + zGetDatasetsNotionIndexingEstimateResponse, + zGetDatasetsProcessRuleQuery, + zGetDatasetsProcessRuleResponse, + zGetDatasetsQuery, + zGetDatasetsResponse, + zGetDatasetsRetrievalSettingByVectorTypePath, + zGetDatasetsRetrievalSettingByVectorTypeResponse, + zGetDatasetsRetrievalSettingResponse, + zPatchDatasetsByDatasetIdBody, + zPatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingByActionPath, + zPatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingByActionResponse, + zPatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingPausePath, + zPatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingPauseResponse, + zPatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingResumePath, + zPatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingResumeResponse, + zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentByActionPath, + zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentByActionResponse, + zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdBody, + zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdBody, + zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdPath, + zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdResponse, + zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksPath, + zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponse, + zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdPath, + zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponse, + zPatchDatasetsByDatasetIdDocumentsStatusByActionBatchPath, + zPatchDatasetsByDatasetIdDocumentsStatusByActionBatchResponse, + zPatchDatasetsByDatasetIdMetadataByMetadataIdBody, + zPatchDatasetsByDatasetIdMetadataByMetadataIdPath, + zPatchDatasetsByDatasetIdMetadataByMetadataIdResponse, + zPatchDatasetsByDatasetIdPath, + zPatchDatasetsByDatasetIdResponse, + zPatchDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdBody, + zPatchDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdPath, + zPatchDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdResponse, + zPostDatasetsApiKeysResponse, + zPostDatasetsBatchImportStatusByJobIdBody, + zPostDatasetsBatchImportStatusByJobIdPath, + zPostDatasetsBatchImportStatusByJobIdResponse, + zPostDatasetsBody, + zPostDatasetsByDatasetIdApiKeysByStatusPath, + zPostDatasetsByDatasetIdApiKeysByStatusResponse, + zPostDatasetsByDatasetIdDocumentsBody, + zPostDatasetsByDatasetIdDocumentsByDocumentIdRenameBody, + zPostDatasetsByDatasetIdDocumentsByDocumentIdRenamePath, + zPostDatasetsByDatasetIdDocumentsByDocumentIdRenameResponse, + zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentBody, + zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentPath, + zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentResponse, + zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBatchImportBody, + zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBatchImportPath, + zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBatchImportResponse, + zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksBody, + zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksPath, + zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponse, + zPostDatasetsByDatasetIdDocumentsDownloadZipBody, + zPostDatasetsByDatasetIdDocumentsDownloadZipPath, + zPostDatasetsByDatasetIdDocumentsDownloadZipResponse, + zPostDatasetsByDatasetIdDocumentsGenerateSummaryBody, + zPostDatasetsByDatasetIdDocumentsGenerateSummaryPath, + zPostDatasetsByDatasetIdDocumentsGenerateSummaryResponse, + zPostDatasetsByDatasetIdDocumentsMetadataBody, + zPostDatasetsByDatasetIdDocumentsMetadataPath, + zPostDatasetsByDatasetIdDocumentsMetadataResponse, + zPostDatasetsByDatasetIdDocumentsPath, + zPostDatasetsByDatasetIdDocumentsResponse, + zPostDatasetsByDatasetIdExternalHitTestingBody, + zPostDatasetsByDatasetIdExternalHitTestingPath, + zPostDatasetsByDatasetIdExternalHitTestingResponse, + zPostDatasetsByDatasetIdHitTestingBody, + zPostDatasetsByDatasetIdHitTestingPath, + zPostDatasetsByDatasetIdHitTestingResponse, + zPostDatasetsByDatasetIdMetadataBody, + zPostDatasetsByDatasetIdMetadataBuiltInByActionPath, + zPostDatasetsByDatasetIdMetadataBuiltInByActionResponse, + zPostDatasetsByDatasetIdMetadataPath, + zPostDatasetsByDatasetIdMetadataResponse, + zPostDatasetsByDatasetIdRetryBody, + zPostDatasetsByDatasetIdRetryPath, + zPostDatasetsByDatasetIdRetryResponse, + zPostDatasetsByResourceIdApiKeysPath, + zPostDatasetsByResourceIdApiKeysResponse, + zPostDatasetsExternalBody, + zPostDatasetsExternalKnowledgeApiBody, + zPostDatasetsExternalKnowledgeApiResponse, + zPostDatasetsExternalResponse, + zPostDatasetsIndexingEstimateBody, + zPostDatasetsIndexingEstimateResponse, + zPostDatasetsInitBody, + zPostDatasetsInitResponse, + zPostDatasetsNotionIndexingEstimateBody, + zPostDatasetsNotionIndexingEstimateResponse, + zPostDatasetsResponse, + zPutDatasetsByDatasetIdDocumentsByDocumentIdMetadataBody, + zPutDatasetsByDatasetIdDocumentsByDocumentIdMetadataPath, + zPutDatasetsByDatasetIdDocumentsByDocumentIdMetadataResponse, +} from './zod.gen' + +/** + * Get dataset API base information + */ +export const get = oc + .route({ + description: 'Get dataset API base information', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsApiBaseInfo', + path: '/datasets/api-base-info', + tags: ['console'], + }) + .output(zGetDatasetsApiBaseInfoResponse) + +export const apiBaseInfo = { + get, +} + +/** + * Delete dataset API key + */ +export const delete_ = oc + .route({ + description: 'Delete dataset API key', + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteDatasetsApiKeysByApiKeyId', + path: '/datasets/api-keys/{api_key_id}', + successStatus: 204, + tags: ['console'], + }) + .input(z.object({ params: zDeleteDatasetsApiKeysByApiKeyIdPath })) + .output(zDeleteDatasetsApiKeysByApiKeyIdResponse) + +export const byApiKeyId = { + delete: delete_, +} + +/** + * Get dataset API keys + */ +export const get2 = oc + .route({ + description: 'Get dataset API keys', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsApiKeys', + path: '/datasets/api-keys', + tags: ['console'], + }) + .output(zGetDatasetsApiKeysResponse) + +export const post = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsApiKeys', + path: '/datasets/api-keys', + tags: ['console'], + }) + .output(zPostDatasetsApiKeysResponse) + +export const apiKeys = { + get: get2, + post, + byApiKeyId, +} + +export const get3 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsBatchImportStatusByJobId', + path: '/datasets/batch_import_status/{job_id}', + tags: ['console'], + }) + .input(z.object({ params: zGetDatasetsBatchImportStatusByJobIdPath })) + .output(zGetDatasetsBatchImportStatusByJobIdResponse) + +export const post2 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsBatchImportStatusByJobId', + path: '/datasets/batch_import_status/{job_id}', + tags: ['console'], + }) + .input( + z.object({ + body: zPostDatasetsBatchImportStatusByJobIdBody, + params: zPostDatasetsBatchImportStatusByJobIdPath, + }), + ) + .output(zPostDatasetsBatchImportStatusByJobIdResponse) + +export const byJobId = { + get: get3, + post: post2, +} + +export const batchImportStatus = { + byJobId, +} + +/** + * Create external knowledge dataset + */ +export const post3 = oc + .route({ + description: 'Create external knowledge dataset', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsExternal', + path: '/datasets/external', + successStatus: 201, + tags: ['console'], + }) + .input(z.object({ body: zPostDatasetsExternalBody })) + .output(zPostDatasetsExternalResponse) + +export const external = { + post: post3, +} + +/** + * Check if external knowledge API is being used + */ +export const get4 = oc + .route({ + description: 'Check if external knowledge API is being used', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdUseCheck', + path: '/datasets/external-knowledge-api/{external_knowledge_api_id}/use-check', + tags: ['console'], + }) + .input(z.object({ params: zGetDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdUseCheckPath })) + .output(zGetDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdUseCheckResponse) + +export const useCheck = { + get: get4, +} + +export const delete2 = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteDatasetsExternalKnowledgeApiByExternalKnowledgeApiId', + path: '/datasets/external-knowledge-api/{external_knowledge_api_id}', + tags: ['console'], + }) + .input(z.object({ params: zDeleteDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdPath })) + .output(zDeleteDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdResponse) + +/** + * Get external knowledge API template details + */ +export const get5 = oc + .route({ + description: 'Get external knowledge API template details', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsExternalKnowledgeApiByExternalKnowledgeApiId', + path: '/datasets/external-knowledge-api/{external_knowledge_api_id}', + tags: ['console'], + }) + .input(z.object({ params: zGetDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdPath })) + .output(zGetDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdResponse) + +export const patch = oc + .route({ + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchDatasetsExternalKnowledgeApiByExternalKnowledgeApiId', + path: '/datasets/external-knowledge-api/{external_knowledge_api_id}', + tags: ['console'], + }) + .input( + z.object({ + body: zPatchDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdBody, + params: zPatchDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdPath, + }), + ) + .output(zPatchDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdResponse) + +export const byExternalKnowledgeApiId = { + delete: delete2, + get: get5, + patch, + useCheck, +} + +/** + * Get external knowledge API templates + */ +export const get6 = oc + .route({ + description: 'Get external knowledge API templates', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsExternalKnowledgeApi', + path: '/datasets/external-knowledge-api', + tags: ['console'], + }) + .input(z.object({ query: zGetDatasetsExternalKnowledgeApiQuery.optional() })) + .output(zGetDatasetsExternalKnowledgeApiResponse) + +export const post4 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsExternalKnowledgeApi', + path: '/datasets/external-knowledge-api', + tags: ['console'], + }) + .input(z.object({ body: zPostDatasetsExternalKnowledgeApiBody })) + .output(zPostDatasetsExternalKnowledgeApiResponse) + +export const externalKnowledgeApi = { + get: get6, + post: post4, + byExternalKnowledgeApiId, +} + +/** + * Estimate dataset indexing cost + */ +export const post5 = oc + .route({ + description: 'Estimate dataset indexing cost', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsIndexingEstimate', + path: '/datasets/indexing-estimate', + tags: ['console'], + }) + .input(z.object({ body: zPostDatasetsIndexingEstimateBody })) + .output(zPostDatasetsIndexingEstimateResponse) + +export const indexingEstimate = { + post: post5, +} + +/** + * Initialize dataset with documents + */ +export const post6 = oc + .route({ + description: 'Initialize dataset with documents', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsInit', + path: '/datasets/init', + successStatus: 201, + tags: ['console'], + }) + .input(z.object({ body: zPostDatasetsInitBody })) + .output(zPostDatasetsInitResponse) + +export const init = { + post: post6, +} + +export const get7 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsMetadataBuiltIn', + path: '/datasets/metadata/built-in', + tags: ['console'], + }) + .output(zGetDatasetsMetadataBuiltInResponse) + +export const builtIn = { + get: get7, +} + +export const metadata = { + builtIn, +} + +export const get8 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsNotionIndexingEstimate', + path: '/datasets/notion-indexing-estimate', + tags: ['console'], + }) + .output(zGetDatasetsNotionIndexingEstimateResponse) + +export const post7 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsNotionIndexingEstimate', + path: '/datasets/notion-indexing-estimate', + tags: ['console'], + }) + .input(z.object({ body: zPostDatasetsNotionIndexingEstimateBody })) + .output(zPostDatasetsNotionIndexingEstimateResponse) + +export const notionIndexingEstimate = { + get: get8, + post: post7, +} + +/** + * Get dataset document processing rules + */ +export const get9 = oc + .route({ + description: 'Get dataset document processing rules', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsProcessRule', + path: '/datasets/process-rule', + tags: ['console'], + }) + .input(z.object({ query: zGetDatasetsProcessRuleQuery.optional() })) + .output(zGetDatasetsProcessRuleResponse) + +export const processRule = { + get: get9, +} + +/** + * Get mock dataset retrieval settings by vector type + */ +export const get10 = oc + .route({ + description: 'Get mock dataset retrieval settings by vector type', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsRetrievalSettingByVectorType', + path: '/datasets/retrieval-setting/{vector_type}', + tags: ['console'], + }) + .input(z.object({ params: zGetDatasetsRetrievalSettingByVectorTypePath })) + .output(zGetDatasetsRetrievalSettingByVectorTypeResponse) + +export const byVectorType = { + get: get10, +} + +/** + * Get dataset retrieval settings + */ +export const get11 = oc + .route({ + description: 'Get dataset retrieval settings', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsRetrievalSetting', + path: '/datasets/retrieval-setting', + tags: ['console'], + }) + .output(zGetDatasetsRetrievalSettingResponse) + +export const retrievalSetting = { + get: get11, + byVectorType, +} + +export const post8 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdApiKeysByStatus', + path: '/datasets/{dataset_id}/api-keys/{status}', + tags: ['console'], + }) + .input(z.object({ params: zPostDatasetsByDatasetIdApiKeysByStatusPath })) + .output(zPostDatasetsByDatasetIdApiKeysByStatusResponse) + +export const byStatus = { + post: post8, +} + +export const apiKeys2 = { + byStatus, +} + +/** + * Get dataset auto disable logs + */ +export const get12 = oc + .route({ + description: 'Get dataset auto disable logs', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdAutoDisableLogs', + path: '/datasets/{dataset_id}/auto-disable-logs', + tags: ['console'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdAutoDisableLogsPath })) + .output(zGetDatasetsByDatasetIdAutoDisableLogsResponse) + +export const autoDisableLogs = { + get: get12, +} + +export const get13 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdBatchByBatchIndexingEstimate', + path: '/datasets/{dataset_id}/batch/{batch}/indexing-estimate', + tags: ['console'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdBatchByBatchIndexingEstimatePath })) + .output(zGetDatasetsByDatasetIdBatchByBatchIndexingEstimateResponse) + +export const indexingEstimate2 = { + get: get13, +} + +export const get14 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdBatchByBatchIndexingStatus', + path: '/datasets/{dataset_id}/batch/{batch}/indexing-status', + tags: ['console'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdBatchByBatchIndexingStatusPath })) + .output(zGetDatasetsByDatasetIdBatchByBatchIndexingStatusResponse) + +export const indexingStatus = { + get: get14, +} + +export const byBatch = { + indexingEstimate: indexingEstimate2, + indexingStatus, +} + +export const batch = { + byBatch, +} + +/** + * Stream a ZIP archive containing the requested uploaded documents + * + * Download selected dataset documents as a single ZIP archive (upload-file only) + */ +export const post9 = oc + .route({ + description: 'Download selected dataset documents as a single ZIP archive (upload-file only)', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdDocumentsDownloadZip', + path: '/datasets/{dataset_id}/documents/download-zip', + summary: 'Stream a ZIP archive containing the requested uploaded documents', + tags: ['console'], + }) + .input( + z.object({ + body: zPostDatasetsByDatasetIdDocumentsDownloadZipBody, + params: zPostDatasetsByDatasetIdDocumentsDownloadZipPath, + }), + ) + .output(zPostDatasetsByDatasetIdDocumentsDownloadZipResponse) + +export const downloadZip = { + post: post9, +} + +/** + * Generate summary index for specified documents + * + * Generate summary index for documents + * This endpoint checks if the dataset configuration supports summary generation + * (indexing_technique must be 'high_quality' and summary_index_setting.enable must be true), + * then asynchronously generates summary indexes for the provided documents. + */ +export const post10 = oc + .route({ + description: + 'Generate summary index for documents\nThis endpoint checks if the dataset configuration supports summary generation\n(indexing_technique must be \'high_quality\' and summary_index_setting.enable must be true),\nthen asynchronously generates summary indexes for the provided documents.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdDocumentsGenerateSummary', + path: '/datasets/{dataset_id}/documents/generate-summary', + summary: 'Generate summary index for specified documents', + tags: ['console'], + }) + .input( + z.object({ + body: zPostDatasetsByDatasetIdDocumentsGenerateSummaryBody, + params: zPostDatasetsByDatasetIdDocumentsGenerateSummaryPath, + }), + ) + .output(zPostDatasetsByDatasetIdDocumentsGenerateSummaryResponse) + +export const generateSummary = { + post: post10, +} + +export const post11 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdDocumentsMetadata', + path: '/datasets/{dataset_id}/documents/metadata', + tags: ['console'], + }) + .input( + z.object({ + body: zPostDatasetsByDatasetIdDocumentsMetadataBody, + params: zPostDatasetsByDatasetIdDocumentsMetadataPath, + }), + ) + .output(zPostDatasetsByDatasetIdDocumentsMetadataResponse) + +export const metadata2 = { + post: post11, +} + +export const patch2 = oc + .route({ + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchDatasetsByDatasetIdDocumentsStatusByActionBatch', + path: '/datasets/{dataset_id}/documents/status/{action}/batch', + tags: ['console'], + }) + .input(z.object({ params: zPatchDatasetsByDatasetIdDocumentsStatusByActionBatchPath })) + .output(zPatchDatasetsByDatasetIdDocumentsStatusByActionBatchResponse) + +export const batch2 = { + patch: patch2, +} + +export const byAction = { + batch: batch2, +} + +export const status = { + byAction, +} + +/** + * Get a signed download URL for a dataset document's original uploaded file + */ +export const get15 = oc + .route({ + description: 'Get a signed download URL for a dataset document\'s original uploaded file', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdDocumentsByDocumentIdDownload', + path: '/datasets/{dataset_id}/documents/{document_id}/download', + tags: ['console'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdDocumentsByDocumentIdDownloadPath })) + .output(zGetDatasetsByDatasetIdDocumentsByDocumentIdDownloadResponse) + +export const download = { + get: get15, +} + +/** + * Estimate document indexing cost + */ +export const get16 = oc + .route({ + description: 'Estimate document indexing cost', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdDocumentsByDocumentIdIndexingEstimate', + path: '/datasets/{dataset_id}/documents/{document_id}/indexing-estimate', + tags: ['console'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdDocumentsByDocumentIdIndexingEstimatePath })) + .output(zGetDatasetsByDatasetIdDocumentsByDocumentIdIndexingEstimateResponse) + +export const indexingEstimate3 = { + get: get16, +} + +/** + * Get document indexing status + */ +export const get17 = oc + .route({ + description: 'Get document indexing status', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdDocumentsByDocumentIdIndexingStatus', + path: '/datasets/{dataset_id}/documents/{document_id}/indexing-status', + tags: ['console'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdDocumentsByDocumentIdIndexingStatusPath })) + .output(zGetDatasetsByDatasetIdDocumentsByDocumentIdIndexingStatusResponse) + +export const indexingStatus2 = { + get: get17, +} + +/** + * Update document metadata + */ +export const put = oc + .route({ + description: 'Update document metadata', + inputStructure: 'detailed', + method: 'PUT', + operationId: 'putDatasetsByDatasetIdDocumentsByDocumentIdMetadata', + path: '/datasets/{dataset_id}/documents/{document_id}/metadata', + tags: ['console'], + }) + .input( + z.object({ + body: zPutDatasetsByDatasetIdDocumentsByDocumentIdMetadataBody, + params: zPutDatasetsByDatasetIdDocumentsByDocumentIdMetadataPath, + }), + ) + .output(zPutDatasetsByDatasetIdDocumentsByDocumentIdMetadataResponse) + +export const metadata3 = { + put, +} + +export const get18 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdDocumentsByDocumentIdNotionSync', + path: '/datasets/{dataset_id}/documents/{document_id}/notion/sync', + tags: ['console'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdDocumentsByDocumentIdNotionSyncPath })) + .output(zGetDatasetsByDatasetIdDocumentsByDocumentIdNotionSyncResponse) + +export const sync = { + get: get18, +} + +export const notion = { + sync, +} + +export const get19 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdDocumentsByDocumentIdPipelineExecutionLog', + path: '/datasets/{dataset_id}/documents/{document_id}/pipeline-execution-log', + tags: ['console'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdDocumentsByDocumentIdPipelineExecutionLogPath })) + .output(zGetDatasetsByDatasetIdDocumentsByDocumentIdPipelineExecutionLogResponse) + +export const pipelineExecutionLog = { + get: get19, +} + +/** + * pause document + */ +export const patch3 = oc + .route({ + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchDatasetsByDatasetIdDocumentsByDocumentIdProcessingPause', + path: '/datasets/{dataset_id}/documents/{document_id}/processing/pause', + summary: 'pause document', + tags: ['console'], + }) + .input(z.object({ params: zPatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingPausePath })) + .output(zPatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingPauseResponse) + +export const pause = { + patch: patch3, +} + +/** + * recover document + */ +export const patch4 = oc + .route({ + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchDatasetsByDatasetIdDocumentsByDocumentIdProcessingResume', + path: '/datasets/{dataset_id}/documents/{document_id}/processing/resume', + summary: 'recover document', + tags: ['console'], + }) + .input(z.object({ params: zPatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingResumePath })) + .output(zPatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingResumeResponse) + +export const resume = { + patch: patch4, +} + +/** + * Update document processing status (pause/resume) + */ +export const patch5 = oc + .route({ + description: 'Update document processing status (pause/resume)', + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchDatasetsByDatasetIdDocumentsByDocumentIdProcessingByAction', + path: '/datasets/{dataset_id}/documents/{document_id}/processing/{action}', + tags: ['console'], + }) + .input(z.object({ params: zPatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingByActionPath })) + .output(zPatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingByActionResponse) + +export const byAction2 = { + patch: patch5, +} + +export const processing = { + pause, + resume, + byAction: byAction2, +} + +export const post12 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdDocumentsByDocumentIdRename', + path: '/datasets/{dataset_id}/documents/{document_id}/rename', + tags: ['console'], + }) + .input( + z.object({ + body: zPostDatasetsByDatasetIdDocumentsByDocumentIdRenameBody, + params: zPostDatasetsByDatasetIdDocumentsByDocumentIdRenamePath, + }), + ) + .output(zPostDatasetsByDatasetIdDocumentsByDocumentIdRenameResponse) + +export const rename = { + post: post12, +} + +export const patch6 = oc + .route({ + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchDatasetsByDatasetIdDocumentsByDocumentIdSegmentByAction', + path: '/datasets/{dataset_id}/documents/{document_id}/segment/{action}', + tags: ['console'], + }) + .input(z.object({ params: zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentByActionPath })) + .output(zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentByActionResponse) + +export const byAction3 = { + patch: patch6, +} + +export const post13 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdDocumentsByDocumentIdSegment', + path: '/datasets/{dataset_id}/documents/{document_id}/segment', + tags: ['console'], + }) + .input( + z.object({ + body: zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentBody, + params: zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentPath, + }), + ) + .output(zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentResponse) + +export const segment = { + post: post13, + byAction: byAction3, +} + +export const get20 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBatchImport', + path: '/datasets/{dataset_id}/documents/{document_id}/segments/batch_import', + tags: ['console'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBatchImportPath })) + .output(zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBatchImportResponse) + +export const post14 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBatchImport', + path: '/datasets/{dataset_id}/documents/{document_id}/segments/batch_import', + tags: ['console'], + }) + .input( + z.object({ + body: zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBatchImportBody, + params: zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBatchImportPath, + }), + ) + .output(zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBatchImportResponse) + +export const batchImport = { + get: get20, + post: post14, +} + +export const delete3 = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: + 'deleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkId', + path: '/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}/child_chunks/{child_chunk_id}', + tags: ['console'], + }) + .input( + z.object({ + params: + zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdPath, + }), + ) + .output( + zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdResponse, + ) + +export const patch7 = oc + .route({ + inputStructure: 'detailed', + method: 'PATCH', + operationId: + 'patchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkId', + path: '/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}/child_chunks/{child_chunk_id}', + tags: ['console'], + }) + .input( + z.object({ + body: zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdBody, + params: + zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdPath, + }), + ) + .output( + zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdResponse, + ) + +export const byChildChunkId = { + delete: delete3, + patch: patch7, +} + +export const get21 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunks', + path: '/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}/child_chunks', + tags: ['console'], + }) + .input( + z.object({ + params: zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksPath, + }), + ) + .output(zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponse) + +export const patch8 = oc + .route({ + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunks', + path: '/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}/child_chunks', + tags: ['console'], + }) + .input( + z.object({ + params: zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksPath, + }), + ) + .output(zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponse) + +export const post15 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunks', + path: '/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}/child_chunks', + tags: ['console'], + }) + .input( + z.object({ + body: zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksBody, + params: zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksPath, + }), + ) + .output(zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponse) + +export const childChunks = { + get: get21, + patch: patch8, + post: post15, + byChildChunkId, +} + +export const delete4 = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentId', + path: '/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}', + tags: ['console'], + }) + .input( + z.object({ params: zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdPath }), + ) + .output(zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponse) + +export const patch9 = oc + .route({ + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentId', + path: '/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}', + tags: ['console'], + }) + .input( + z.object({ + body: zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdBody, + params: zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdPath, + }), + ) + .output(zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponse) + +export const bySegmentId = { + delete: delete4, + patch: patch9, + childChunks, +} + +export const delete5 = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteDatasetsByDatasetIdDocumentsByDocumentIdSegments', + path: '/datasets/{dataset_id}/documents/{document_id}/segments', + tags: ['console'], + }) + .input(z.object({ params: zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsPath })) + .output(zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsResponse) + +export const get22 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdDocumentsByDocumentIdSegments', + path: '/datasets/{dataset_id}/documents/{document_id}/segments', + tags: ['console'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsPath })) + .output(zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsResponse) + +export const segments = { + delete: delete5, + get: get22, + batchImport, + bySegmentId, +} + +/** + * Get summary index generation status for a document + * + * Get summary index generation status for a document + * Returns: + * - total_segments: Total number of segments in the document + * - summary_status: Dictionary with status counts + * - completed: Number of summaries completed + * - generating: Number of summaries being generated + * - error: Number of summaries with errors + * - not_started: Number of segments without summary records + * - summaries: List of summary records with status and content preview + */ +export const get23 = oc + .route({ + description: + 'Get summary index generation status for a document\nReturns:\n- total_segments: Total number of segments in the document\n- summary_status: Dictionary with status counts\n - completed: Number of summaries completed\n - generating: Number of summaries being generated\n - error: Number of summaries with errors\n - not_started: Number of segments without summary records\n- summaries: List of summary records with status and content preview', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdDocumentsByDocumentIdSummaryStatus', + path: '/datasets/{dataset_id}/documents/{document_id}/summary-status', + summary: 'Get summary index generation status for a document', + tags: ['console'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdDocumentsByDocumentIdSummaryStatusPath })) + .output(zGetDatasetsByDatasetIdDocumentsByDocumentIdSummaryStatusResponse) + +export const summaryStatus = { + get: get23, +} + +/** + * sync website document + */ +export const get24 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdDocumentsByDocumentIdWebsiteSync', + path: '/datasets/{dataset_id}/documents/{document_id}/website-sync', + summary: 'sync website document', + tags: ['console'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdDocumentsByDocumentIdWebsiteSyncPath })) + .output(zGetDatasetsByDatasetIdDocumentsByDocumentIdWebsiteSyncResponse) + +export const websiteSync = { + get: get24, +} + +export const delete6 = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteDatasetsByDatasetIdDocumentsByDocumentId', + path: '/datasets/{dataset_id}/documents/{document_id}', + tags: ['console'], + }) + .input(z.object({ params: zDeleteDatasetsByDatasetIdDocumentsByDocumentIdPath })) + .output(zDeleteDatasetsByDatasetIdDocumentsByDocumentIdResponse) + +/** + * Get document details + */ +export const get25 = oc + .route({ + description: 'Get document details', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdDocumentsByDocumentId', + path: '/datasets/{dataset_id}/documents/{document_id}', + tags: ['console'], + }) + .input( + z.object({ + params: zGetDatasetsByDatasetIdDocumentsByDocumentIdPath, + query: zGetDatasetsByDatasetIdDocumentsByDocumentIdQuery.optional(), + }), + ) + .output(zGetDatasetsByDatasetIdDocumentsByDocumentIdResponse) + +export const byDocumentId = { + delete: delete6, + get: get25, + download, + indexingEstimate: indexingEstimate3, + indexingStatus: indexingStatus2, + metadata: metadata3, + notion, + pipelineExecutionLog, + processing, + rename, + segment, + segments, + summaryStatus, + websiteSync, +} + +export const delete7 = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteDatasetsByDatasetIdDocuments', + path: '/datasets/{dataset_id}/documents', + tags: ['console'], + }) + .input(z.object({ params: zDeleteDatasetsByDatasetIdDocumentsPath })) + .output(zDeleteDatasetsByDatasetIdDocumentsResponse) + +/** + * Get documents in a dataset + */ +export const get26 = oc + .route({ + description: 'Get documents in a dataset', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdDocuments', + path: '/datasets/{dataset_id}/documents', + tags: ['console'], + }) + .input( + z.object({ + params: zGetDatasetsByDatasetIdDocumentsPath, + query: zGetDatasetsByDatasetIdDocumentsQuery.optional(), + }), + ) + .output(zGetDatasetsByDatasetIdDocumentsResponse) + +export const post16 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdDocuments', + path: '/datasets/{dataset_id}/documents', + tags: ['console'], + }) + .input( + z.object({ + body: zPostDatasetsByDatasetIdDocumentsBody, + params: zPostDatasetsByDatasetIdDocumentsPath, + }), + ) + .output(zPostDatasetsByDatasetIdDocumentsResponse) + +export const documents = { + delete: delete7, + get: get26, + post: post16, + downloadZip, + generateSummary, + metadata: metadata2, + status, + byDocumentId, +} + +/** + * Get dataset error documents + */ +export const get27 = oc + .route({ + description: 'Get dataset error documents', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdErrorDocs', + path: '/datasets/{dataset_id}/error-docs', + tags: ['console'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdErrorDocsPath })) + .output(zGetDatasetsByDatasetIdErrorDocsResponse) + +export const errorDocs = { + get: get27, +} + +/** + * Test external knowledge retrieval for dataset + */ +export const post17 = oc + .route({ + description: 'Test external knowledge retrieval for dataset', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdExternalHitTesting', + path: '/datasets/{dataset_id}/external-hit-testing', + tags: ['console'], + }) + .input( + z.object({ + body: zPostDatasetsByDatasetIdExternalHitTestingBody, + params: zPostDatasetsByDatasetIdExternalHitTestingPath, + }), + ) + .output(zPostDatasetsByDatasetIdExternalHitTestingResponse) + +export const externalHitTesting = { + post: post17, +} + +/** + * Test dataset knowledge retrieval + */ +export const post18 = oc + .route({ + description: 'Test dataset knowledge retrieval', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdHitTesting', + path: '/datasets/{dataset_id}/hit-testing', + tags: ['console'], + }) + .input( + z.object({ + body: zPostDatasetsByDatasetIdHitTestingBody, + params: zPostDatasetsByDatasetIdHitTestingPath, + }), + ) + .output(zPostDatasetsByDatasetIdHitTestingResponse) + +export const hitTesting = { + post: post18, +} + +/** + * Get dataset indexing status + */ +export const get28 = oc + .route({ + description: 'Get dataset indexing status', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdIndexingStatus', + path: '/datasets/{dataset_id}/indexing-status', + tags: ['console'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdIndexingStatusPath })) + .output(zGetDatasetsByDatasetIdIndexingStatusResponse) + +export const indexingStatus3 = { + get: get28, +} + +export const post19 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdMetadataBuiltInByAction', + path: '/datasets/{dataset_id}/metadata/built-in/{action}', + tags: ['console'], + }) + .input(z.object({ params: zPostDatasetsByDatasetIdMetadataBuiltInByActionPath })) + .output(zPostDatasetsByDatasetIdMetadataBuiltInByActionResponse) + +export const byAction4 = { + post: post19, +} + +export const builtIn2 = { + byAction: byAction4, +} + +export const delete8 = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteDatasetsByDatasetIdMetadataByMetadataId', + path: '/datasets/{dataset_id}/metadata/{metadata_id}', + tags: ['console'], + }) + .input(z.object({ params: zDeleteDatasetsByDatasetIdMetadataByMetadataIdPath })) + .output(zDeleteDatasetsByDatasetIdMetadataByMetadataIdResponse) + +export const patch10 = oc + .route({ + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchDatasetsByDatasetIdMetadataByMetadataId', + path: '/datasets/{dataset_id}/metadata/{metadata_id}', + tags: ['console'], + }) + .input( + z.object({ + body: zPatchDatasetsByDatasetIdMetadataByMetadataIdBody, + params: zPatchDatasetsByDatasetIdMetadataByMetadataIdPath, + }), + ) + .output(zPatchDatasetsByDatasetIdMetadataByMetadataIdResponse) + +export const byMetadataId = { + delete: delete8, + patch: patch10, +} + +export const get29 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdMetadata', + path: '/datasets/{dataset_id}/metadata', + tags: ['console'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdMetadataPath })) + .output(zGetDatasetsByDatasetIdMetadataResponse) + +export const post20 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdMetadata', + path: '/datasets/{dataset_id}/metadata', + tags: ['console'], + }) + .input( + z.object({ + body: zPostDatasetsByDatasetIdMetadataBody, + params: zPostDatasetsByDatasetIdMetadataPath, + }), + ) + .output(zPostDatasetsByDatasetIdMetadataResponse) + +export const metadata4 = { + get: get29, + post: post20, + builtIn: builtIn2, + byMetadataId, +} + +export const get30 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdNotionSync', + path: '/datasets/{dataset_id}/notion/sync', + tags: ['console'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdNotionSyncPath })) + .output(zGetDatasetsByDatasetIdNotionSyncResponse) + +export const sync2 = { + get: get30, +} + +export const notion2 = { + sync: sync2, +} + +/** + * Get dataset permission user list + */ +export const get31 = oc + .route({ + description: 'Get dataset permission user list', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdPermissionPartUsers', + path: '/datasets/{dataset_id}/permission-part-users', + tags: ['console'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdPermissionPartUsersPath })) + .output(zGetDatasetsByDatasetIdPermissionPartUsersResponse) + +export const permissionPartUsers = { + get: get31, +} + +/** + * Get dataset query history + */ +export const get32 = oc + .route({ + description: 'Get dataset query history', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdQueries', + path: '/datasets/{dataset_id}/queries', + tags: ['console'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdQueriesPath })) + .output(zGetDatasetsByDatasetIdQueriesResponse) + +export const queries = { + get: get32, +} + +/** + * Get applications related to dataset + */ +export const get33 = oc + .route({ + description: 'Get applications related to dataset', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdRelatedApps', + path: '/datasets/{dataset_id}/related-apps', + tags: ['console'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdRelatedAppsPath })) + .output(zGetDatasetsByDatasetIdRelatedAppsResponse) + +export const relatedApps = { + get: get33, +} + +/** + * retry document + */ +export const post21 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdRetry', + path: '/datasets/{dataset_id}/retry', + summary: 'retry document', + tags: ['console'], + }) + .input( + z.object({ + body: zPostDatasetsByDatasetIdRetryBody, + params: zPostDatasetsByDatasetIdRetryPath, + }), + ) + .output(zPostDatasetsByDatasetIdRetryResponse) + +export const retry = { + post: post21, +} + +/** + * Check if dataset is in use + */ +export const get34 = oc + .route({ + description: 'Check if dataset is in use', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdUseCheck', + path: '/datasets/{dataset_id}/use-check', + tags: ['console'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdUseCheckPath })) + .output(zGetDatasetsByDatasetIdUseCheckResponse) + +export const useCheck2 = { + get: get34, +} + +export const delete9 = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteDatasetsByDatasetId', + path: '/datasets/{dataset_id}', + tags: ['console'], + }) + .input(z.object({ params: zDeleteDatasetsByDatasetIdPath })) + .output(zDeleteDatasetsByDatasetIdResponse) + +/** + * Get dataset details + */ +export const get35 = oc + .route({ + description: 'Get dataset details', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetId', + path: '/datasets/{dataset_id}', + tags: ['console'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdPath })) + .output(zGetDatasetsByDatasetIdResponse) + +/** + * Update dataset details + */ +export const patch11 = oc + .route({ + description: 'Update dataset details', + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchDatasetsByDatasetId', + path: '/datasets/{dataset_id}', + tags: ['console'], + }) + .input(z.object({ body: zPatchDatasetsByDatasetIdBody, params: zPatchDatasetsByDatasetIdPath })) + .output(zPatchDatasetsByDatasetIdResponse) + +export const byDatasetId = { + delete: delete9, + get: get35, + patch: patch11, + apiKeys: apiKeys2, + autoDisableLogs, + batch, + documents, + errorDocs, + externalHitTesting, + hitTesting, + indexingStatus: indexingStatus3, + metadata: metadata4, + notion: notion2, + permissionPartUsers, + queries, + relatedApps, + retry, + useCheck: useCheck2, +} + +/** + * Delete an API key for a dataset + * + * Delete an API key for a dataset + */ +export const delete10 = oc + .route({ + description: 'Delete an API key for a dataset', + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteDatasetsByResourceIdApiKeysByApiKeyId', + path: '/datasets/{resource_id}/api-keys/{api_key_id}', + successStatus: 204, + summary: 'Delete an API key for a dataset', + tags: ['console'], + }) + .input(z.object({ params: zDeleteDatasetsByResourceIdApiKeysByApiKeyIdPath })) + .output(zDeleteDatasetsByResourceIdApiKeysByApiKeyIdResponse) + +export const byApiKeyId2 = { + delete: delete10, +} + +/** + * Get all API keys for a dataset + * + * Get all API keys for a dataset + */ +export const get36 = oc + .route({ + description: 'Get all API keys for a dataset', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByResourceIdApiKeys', + path: '/datasets/{resource_id}/api-keys', + summary: 'Get all API keys for a dataset', + tags: ['console'], + }) + .input(z.object({ params: zGetDatasetsByResourceIdApiKeysPath })) + .output(zGetDatasetsByResourceIdApiKeysResponse) + +/** + * Create a new API key for a dataset + * + * Create a new API key for a dataset + */ +export const post22 = oc + .route({ + description: 'Create a new API key for a dataset', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByResourceIdApiKeys', + path: '/datasets/{resource_id}/api-keys', + successStatus: 201, + summary: 'Create a new API key for a dataset', + tags: ['console'], + }) + .input(z.object({ params: zPostDatasetsByResourceIdApiKeysPath })) + .output(zPostDatasetsByResourceIdApiKeysResponse) + +export const apiKeys3 = { + get: get36, + post: post22, + byApiKeyId: byApiKeyId2, +} + +export const byResourceId = { + apiKeys: apiKeys3, +} + +/** + * Get list of datasets + */ +export const get37 = oc + .route({ + description: 'Get list of datasets', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasets', + path: '/datasets', + tags: ['console'], + }) + .input(z.object({ query: zGetDatasetsQuery.optional() })) + .output(zGetDatasetsResponse) + +/** + * Create a new dataset + */ +export const post23 = oc + .route({ + description: 'Create a new dataset', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasets', + path: '/datasets', + successStatus: 201, + tags: ['console'], + }) + .input(z.object({ body: zPostDatasetsBody })) + .output(zPostDatasetsResponse) + +export const datasets = { + get: get37, + post: post23, + apiBaseInfo, + apiKeys, + batchImportStatus, + external, + externalKnowledgeApi, + indexingEstimate, + init, + metadata, + notionIndexingEstimate, + processRule, + retrievalSetting, + byDatasetId, + byResourceId, +} + +export const contract = { + datasets, +} diff --git a/packages/contracts/generated/api/console/datasets/types.gen.ts b/packages/contracts/generated/api/console/datasets/types.gen.ts new file mode 100644 index 0000000000..89a68593b7 --- /dev/null +++ b/packages/contracts/generated/api/console/datasets/types.gen.ts @@ -0,0 +1,2135 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type DatasetCreatePayload = { + description?: string + external_knowledge_api_id?: string | null + external_knowledge_id?: string | null + indexing_technique?: string | null + name: string + permission?: DatasetPermissionEnum + provider?: string +} + +export type ApiKeyList = { + data: Array +} + +export type ApiKeyItem = { + created_at?: number | null + id: string + last_used_at?: number | null + token: string + type: string +} + +export type BatchImportPayload = { + upload_file_id: string +} + +export type ExternalDatasetCreatePayload = { + description?: string | null + external_knowledge_api_id: string + external_knowledge_id: string + external_retrieval_model?: { + [key: string]: unknown + } | null + name: string +} + +export type DatasetDetail = { + [key: string]: unknown +} + +export type ExternalKnowledgeApiPayload = { + name: string + settings: { + [key: string]: unknown + } +} + +export type IndexingEstimatePayload = { + dataset_id?: string | null + doc_form?: string + doc_language?: string + indexing_technique: string + info_list: { + [key: string]: unknown + } + process_rule: { + [key: string]: unknown + } +} + +export type KnowledgeConfig = { + data_source?: DataSource + doc_form?: string + doc_language?: string + duplicate?: boolean + embedding_model?: string | null + embedding_model_provider?: string | null + indexing_technique: 'high_quality' | 'economy' + is_multimodal?: boolean + name?: string | null + original_document_id?: string | null + process_rule?: ProcessRule + retrieval_model?: RetrievalModel + summary_index_setting?: { + [key: string]: unknown + } | null +} + +export type DatasetAndDocumentResponse = { + batch: string + dataset: DatasetResponse + documents: Array +} + +export type NotionEstimatePayload = { + doc_form?: string + doc_language?: string + notion_info_list: Array<{ + [key: string]: unknown + }> + process_rule: { + [key: string]: unknown + } +} + +export type DatasetUpdatePayload = { + description?: string | null + embedding_model?: string | null + embedding_model_provider?: string | null + external_knowledge_api_id?: string | null + external_knowledge_id?: string | null + external_retrieval_model?: { + [key: string]: unknown + } | null + icon_info?: { + [key: string]: unknown + } | null + indexing_technique?: string | null + is_multimodal?: boolean | null + name?: string | null + partial_member_list?: Array<{ + [key: string]: string + }> | null + permission?: DatasetPermissionEnum + retrieval_model?: { + [key: string]: unknown + } | null + summary_index_setting?: { + [key: string]: unknown + } | null +} + +export type DocumentBatchDownloadZipPayload = { + document_ids: Array +} + +export type GenerateSummaryPayload = { + document_list: Array +} + +export type MetadataOperationData = { + operation_data: Array +} + +export type DocumentMetadataUpdatePayload = { + doc_metadata?: unknown + doc_type?: string | null +} + +export type DocumentRenamePayload = { + name: string +} + +export type DocumentResponse = { + archived?: boolean | null + created_at?: number | null + created_by?: string | null + created_from?: string | null + data_source_detail_dict?: unknown + data_source_info_dict?: unknown + data_source_type?: string | null + dataset_process_rule_id?: string | null + disabled_at?: number | null + disabled_by?: string | null + display_status?: string | null + doc_form?: string | null + doc_metadata_details?: Array + enabled?: boolean | null + error?: string | null + hit_count?: number | null + id: string + indexing_status?: string | null + name: string + need_summary?: boolean | null + position?: number | null + summary_index_status?: string | null + tokens?: number | null + word_count?: number | null +} + +export type SegmentCreatePayload = { + answer?: string | null + attachment_ids?: Array | null + content: string + keywords?: Array | null +} + +export type SegmentUpdatePayload = { + answer?: string | null + attachment_ids?: Array | null + content: string + keywords?: Array | null + regenerate_child_chunks?: boolean + summary?: string | null +} + +export type ChildChunkCreatePayload = { + content: string +} + +export type ChildChunkUpdatePayload = { + content: string +} + +export type ExternalHitTestingPayload = { + external_retrieval_model?: { + [key: string]: unknown + } | null + metadata_filtering_conditions?: { + [key: string]: unknown + } | null + query: string +} + +export type HitTestingPayload = { + attachment_ids?: Array | null + external_retrieval_model?: { + [key: string]: unknown + } | null + query: string + retrieval_model?: RetrievalModel +} + +export type HitTestingResponse = { + query: string + records?: Array +} + +export type MetadataArgs = { + name: string + type: 'string' | 'number' | 'time' +} + +export type MetadataUpdatePayload = { + name: string +} + +export type DatasetQueryDetail = { + [key: string]: unknown +} + +export type RelatedAppList = { + [key: string]: unknown +} + +export type DocumentRetryPayload = { + document_ids: Array +} + +export type DatasetPermissionEnum = 'only_me' | 'all_team_members' | 'partial_members' + +export type DataSource = { + info_list: InfoList +} + +export type ProcessRule = { + mode: 'automatic' | 'custom' | 'hierarchical' + rules?: Rule +} + +export type RetrievalModel = { + 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 DatasetResponse = { + created_at?: number | null + created_by?: string | null + data_source_type?: string | null + description?: string | null + id: string + indexing_technique?: string | null + name: string + permission?: string | null +} + +export type DocumentMetadataOperation = { + document_id: string + metadata_list: Array + partial_update?: boolean +} + +export type DocumentMetadataResponse = { + id: string + name: string + type: string + value?: string | null +} + +export type HitTestingRecord = { + child_chunks?: Array + files?: Array + score?: number | null + segment?: HitTestingSegment + summary?: string | null + tsne_position?: unknown +} + +export type InfoList = { + data_source_type: 'upload_file' | 'notion_import' | 'website_crawl' + file_info_list?: FileInfo + notion_info_list?: Array | null + website_info_list?: WebsiteInfo +} + +export type Rule = { + parent_mode?: 'full-doc' | 'paragraph' | null + pre_processing_rules?: Array | null + segmentation?: Segmentation + subchunk_segmentation?: Segmentation +} + +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 WeightModel = { + keyword_setting?: WeightKeywordSetting + vector_setting?: WeightVectorSetting + weight_type?: 'semantic_first' | 'keyword_first' | 'customized' | null +} + +export type MetadataDetail = { + id: string + name: string + value?: unknown +} + +export type HitTestingChildChunk = { + content?: string | null + id?: string | null + position?: number | null + score?: number | null +} + +export type HitTestingFile = { + extension?: string | null + id?: string | null + mime_type?: string | null + name?: string | null + size?: number | null + source_url?: string | null +} + +export type HitTestingSegment = { + answer?: string | null + completed_at?: number | null + content?: string | null + created_at?: number | null + created_by?: string | null + disabled_at?: number | null + disabled_by?: string | null + document?: HitTestingDocument + document_id?: string | null + enabled?: boolean | null + error?: string | null + hit_count?: number | null + id?: string | null + index_node_hash?: string | null + index_node_id?: string | null + indexing_at?: number | null + keywords?: Array + position?: number | null + sign_content?: string | null + status?: string | null + stopped_at?: number | null + tokens?: number | null + word_count?: number | null +} + +export type FileInfo = { + file_ids: Array +} + +export type NotionInfo = { + credential_id: string + pages: Array + workspace_id: string +} + +export type WebsiteInfo = { + job_id: string + only_main_content?: boolean + provider: string + urls: Array +} + +export type PreProcessingRule = { + enabled: boolean + id: string +} + +export type Segmentation = { + chunk_overlap?: number + max_tokens: number + separator?: string +} + +export type WeightKeywordSetting = { + keyword_weight: number +} + +export type WeightVectorSetting = { + embedding_model_name: string + embedding_provider_name: string + vector_weight: number +} + +export type HitTestingDocument = { + data_source_type?: string | null + doc_metadata?: unknown + doc_type?: string | null + id?: string | null + name?: string | null +} + +export type NotionPage = { + page_icon?: NotionIcon + page_id: string + page_name: string + type: string +} + +export type NotionIcon = { + emoji?: string | null + type: string + url?: string | null +} + +export type GetDatasetsData = { + body?: never + path?: never + query?: { + page?: string + limit?: string + ids?: string + keyword?: string + tag_ids?: string + include_all?: string + } + url: '/datasets' +} + +export type GetDatasetsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsResponse = GetDatasetsResponses[keyof GetDatasetsResponses] + +export type PostDatasetsData = { + body: DatasetCreatePayload + path?: never + query?: never + url: '/datasets' +} + +export type PostDatasetsErrors = { + 400: { + [key: string]: unknown + } +} + +export type PostDatasetsError = PostDatasetsErrors[keyof PostDatasetsErrors] + +export type PostDatasetsResponses = { + 201: { + [key: string]: unknown + } +} + +export type PostDatasetsResponse = PostDatasetsResponses[keyof PostDatasetsResponses] + +export type GetDatasetsApiBaseInfoData = { + body?: never + path?: never + query?: never + url: '/datasets/api-base-info' +} + +export type GetDatasetsApiBaseInfoResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsApiBaseInfoResponse + = GetDatasetsApiBaseInfoResponses[keyof GetDatasetsApiBaseInfoResponses] + +export type GetDatasetsApiKeysData = { + body?: never + path?: never + query?: never + url: '/datasets/api-keys' +} + +export type GetDatasetsApiKeysResponses = { + 200: ApiKeyList +} + +export type GetDatasetsApiKeysResponse + = GetDatasetsApiKeysResponses[keyof GetDatasetsApiKeysResponses] + +export type PostDatasetsApiKeysData = { + body?: never + path?: never + query?: never + url: '/datasets/api-keys' +} + +export type PostDatasetsApiKeysErrors = { + 400: { + [key: string]: unknown + } +} + +export type PostDatasetsApiKeysError = PostDatasetsApiKeysErrors[keyof PostDatasetsApiKeysErrors] + +export type PostDatasetsApiKeysResponses = { + 200: ApiKeyItem +} + +export type PostDatasetsApiKeysResponse + = PostDatasetsApiKeysResponses[keyof PostDatasetsApiKeysResponses] + +export type DeleteDatasetsApiKeysByApiKeyIdData = { + body?: never + path: { + api_key_id: string + } + query?: never + url: '/datasets/api-keys/{api_key_id}' +} + +export type DeleteDatasetsApiKeysByApiKeyIdResponses = { + 204: { + [key: string]: unknown + } +} + +export type DeleteDatasetsApiKeysByApiKeyIdResponse + = DeleteDatasetsApiKeysByApiKeyIdResponses[keyof DeleteDatasetsApiKeysByApiKeyIdResponses] + +export type GetDatasetsBatchImportStatusByJobIdData = { + body?: never + path: { + job_id: string + } + query?: never + url: '/datasets/batch_import_status/{job_id}' +} + +export type GetDatasetsBatchImportStatusByJobIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsBatchImportStatusByJobIdResponse + = GetDatasetsBatchImportStatusByJobIdResponses[keyof GetDatasetsBatchImportStatusByJobIdResponses] + +export type PostDatasetsBatchImportStatusByJobIdData = { + body: BatchImportPayload + path: { + job_id: string + } + query?: never + url: '/datasets/batch_import_status/{job_id}' +} + +export type PostDatasetsBatchImportStatusByJobIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsBatchImportStatusByJobIdResponse + = PostDatasetsBatchImportStatusByJobIdResponses[keyof PostDatasetsBatchImportStatusByJobIdResponses] + +export type PostDatasetsExternalData = { + body: ExternalDatasetCreatePayload + path?: never + query?: never + url: '/datasets/external' +} + +export type PostDatasetsExternalErrors = { + 400: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } +} + +export type PostDatasetsExternalError = PostDatasetsExternalErrors[keyof PostDatasetsExternalErrors] + +export type PostDatasetsExternalResponses = { + 201: DatasetDetail +} + +export type PostDatasetsExternalResponse + = PostDatasetsExternalResponses[keyof PostDatasetsExternalResponses] + +export type GetDatasetsExternalKnowledgeApiData = { + body?: never + path?: never + query?: { + page?: string + limit?: string + keyword?: string + } + url: '/datasets/external-knowledge-api' +} + +export type GetDatasetsExternalKnowledgeApiResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsExternalKnowledgeApiResponse + = GetDatasetsExternalKnowledgeApiResponses[keyof GetDatasetsExternalKnowledgeApiResponses] + +export type PostDatasetsExternalKnowledgeApiData = { + body: ExternalKnowledgeApiPayload + path?: never + query?: never + url: '/datasets/external-knowledge-api' +} + +export type PostDatasetsExternalKnowledgeApiResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsExternalKnowledgeApiResponse + = PostDatasetsExternalKnowledgeApiResponses[keyof PostDatasetsExternalKnowledgeApiResponses] + +export type DeleteDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdData = { + body?: never + path: { + external_knowledge_api_id: string + } + query?: never + url: '/datasets/external-knowledge-api/{external_knowledge_api_id}' +} + +export type DeleteDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type DeleteDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdResponse + = DeleteDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdResponses[keyof DeleteDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdResponses] + +export type GetDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdData = { + body?: never + path: { + external_knowledge_api_id: string + } + query?: never + url: '/datasets/external-knowledge-api/{external_knowledge_api_id}' +} + +export type GetDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdErrors = { + 404: { + [key: string]: unknown + } +} + +export type GetDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdError + = GetDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdErrors[keyof GetDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdErrors] + +export type GetDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdResponse + = GetDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdResponses[keyof GetDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdResponses] + +export type PatchDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdData = { + body: ExternalKnowledgeApiPayload + path: { + external_knowledge_api_id: string + } + query?: never + url: '/datasets/external-knowledge-api/{external_knowledge_api_id}' +} + +export type PatchDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type PatchDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdResponse + = PatchDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdResponses[keyof PatchDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdResponses] + +export type GetDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdUseCheckData = { + body?: never + path: { + external_knowledge_api_id: string + } + query?: never + url: '/datasets/external-knowledge-api/{external_knowledge_api_id}/use-check' +} + +export type GetDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdUseCheckResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdUseCheckResponse + = GetDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdUseCheckResponses[keyof GetDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdUseCheckResponses] + +export type PostDatasetsIndexingEstimateData = { + body: IndexingEstimatePayload + path?: never + query?: never + url: '/datasets/indexing-estimate' +} + +export type PostDatasetsIndexingEstimateResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsIndexingEstimateResponse + = PostDatasetsIndexingEstimateResponses[keyof PostDatasetsIndexingEstimateResponses] + +export type PostDatasetsInitData = { + body: KnowledgeConfig + path?: never + query?: never + url: '/datasets/init' +} + +export type PostDatasetsInitErrors = { + 400: { + [key: string]: unknown + } +} + +export type PostDatasetsInitError = PostDatasetsInitErrors[keyof PostDatasetsInitErrors] + +export type PostDatasetsInitResponses = { + 201: DatasetAndDocumentResponse +} + +export type PostDatasetsInitResponse = PostDatasetsInitResponses[keyof PostDatasetsInitResponses] + +export type GetDatasetsMetadataBuiltInData = { + body?: never + path?: never + query?: never + url: '/datasets/metadata/built-in' +} + +export type GetDatasetsMetadataBuiltInResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsMetadataBuiltInResponse + = GetDatasetsMetadataBuiltInResponses[keyof GetDatasetsMetadataBuiltInResponses] + +export type GetDatasetsNotionIndexingEstimateData = { + body?: never + path?: never + query?: never + url: '/datasets/notion-indexing-estimate' +} + +export type GetDatasetsNotionIndexingEstimateResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsNotionIndexingEstimateResponse + = GetDatasetsNotionIndexingEstimateResponses[keyof GetDatasetsNotionIndexingEstimateResponses] + +export type PostDatasetsNotionIndexingEstimateData = { + body: NotionEstimatePayload + path?: never + query?: never + url: '/datasets/notion-indexing-estimate' +} + +export type PostDatasetsNotionIndexingEstimateResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsNotionIndexingEstimateResponse + = PostDatasetsNotionIndexingEstimateResponses[keyof PostDatasetsNotionIndexingEstimateResponses] + +export type GetDatasetsProcessRuleData = { + body?: never + path?: never + query?: { + document_id?: string + } + url: '/datasets/process-rule' +} + +export type GetDatasetsProcessRuleResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsProcessRuleResponse + = GetDatasetsProcessRuleResponses[keyof GetDatasetsProcessRuleResponses] + +export type GetDatasetsRetrievalSettingData = { + body?: never + path?: never + query?: never + url: '/datasets/retrieval-setting' +} + +export type GetDatasetsRetrievalSettingResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsRetrievalSettingResponse + = GetDatasetsRetrievalSettingResponses[keyof GetDatasetsRetrievalSettingResponses] + +export type GetDatasetsRetrievalSettingByVectorTypeData = { + body?: never + path: { + vector_type: string + } + query?: never + url: '/datasets/retrieval-setting/{vector_type}' +} + +export type GetDatasetsRetrievalSettingByVectorTypeResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsRetrievalSettingByVectorTypeResponse + = GetDatasetsRetrievalSettingByVectorTypeResponses[keyof GetDatasetsRetrievalSettingByVectorTypeResponses] + +export type DeleteDatasetsByDatasetIdData = { + body?: never + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}' +} + +export type DeleteDatasetsByDatasetIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type DeleteDatasetsByDatasetIdResponse + = DeleteDatasetsByDatasetIdResponses[keyof DeleteDatasetsByDatasetIdResponses] + +export type GetDatasetsByDatasetIdData = { + body?: never + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}' +} + +export type GetDatasetsByDatasetIdErrors = { + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdError + = GetDatasetsByDatasetIdErrors[keyof GetDatasetsByDatasetIdErrors] + +export type GetDatasetsByDatasetIdResponses = { + 200: DatasetDetail +} + +export type GetDatasetsByDatasetIdResponse + = GetDatasetsByDatasetIdResponses[keyof GetDatasetsByDatasetIdResponses] + +export type PatchDatasetsByDatasetIdData = { + body: DatasetUpdatePayload + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}' +} + +export type PatchDatasetsByDatasetIdErrors = { + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PatchDatasetsByDatasetIdError + = PatchDatasetsByDatasetIdErrors[keyof PatchDatasetsByDatasetIdErrors] + +export type PatchDatasetsByDatasetIdResponses = { + 200: DatasetDetail +} + +export type PatchDatasetsByDatasetIdResponse + = PatchDatasetsByDatasetIdResponses[keyof PatchDatasetsByDatasetIdResponses] + +export type PostDatasetsByDatasetIdApiKeysByStatusData = { + body?: never + path: { + dataset_id: string + status: string + } + query?: never + url: '/datasets/{dataset_id}/api-keys/{status}' +} + +export type PostDatasetsByDatasetIdApiKeysByStatusResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdApiKeysByStatusResponse + = PostDatasetsByDatasetIdApiKeysByStatusResponses[keyof PostDatasetsByDatasetIdApiKeysByStatusResponses] + +export type GetDatasetsByDatasetIdAutoDisableLogsData = { + body?: never + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/auto-disable-logs' +} + +export type GetDatasetsByDatasetIdAutoDisableLogsErrors = { + 404: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdAutoDisableLogsError + = GetDatasetsByDatasetIdAutoDisableLogsErrors[keyof GetDatasetsByDatasetIdAutoDisableLogsErrors] + +export type GetDatasetsByDatasetIdAutoDisableLogsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdAutoDisableLogsResponse + = GetDatasetsByDatasetIdAutoDisableLogsResponses[keyof GetDatasetsByDatasetIdAutoDisableLogsResponses] + +export type GetDatasetsByDatasetIdBatchByBatchIndexingEstimateData = { + body?: never + path: { + dataset_id: string + batch: string + } + query?: never + url: '/datasets/{dataset_id}/batch/{batch}/indexing-estimate' +} + +export type GetDatasetsByDatasetIdBatchByBatchIndexingEstimateResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdBatchByBatchIndexingEstimateResponse + = GetDatasetsByDatasetIdBatchByBatchIndexingEstimateResponses[keyof GetDatasetsByDatasetIdBatchByBatchIndexingEstimateResponses] + +export type GetDatasetsByDatasetIdBatchByBatchIndexingStatusData = { + body?: never + path: { + dataset_id: string + batch: string + } + query?: never + url: '/datasets/{dataset_id}/batch/{batch}/indexing-status' +} + +export type GetDatasetsByDatasetIdBatchByBatchIndexingStatusResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdBatchByBatchIndexingStatusResponse + = GetDatasetsByDatasetIdBatchByBatchIndexingStatusResponses[keyof GetDatasetsByDatasetIdBatchByBatchIndexingStatusResponses] + +export type DeleteDatasetsByDatasetIdDocumentsData = { + body?: never + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents' +} + +export type DeleteDatasetsByDatasetIdDocumentsResponses = { + 200: { + [key: string]: unknown + } +} + +export type DeleteDatasetsByDatasetIdDocumentsResponse + = DeleteDatasetsByDatasetIdDocumentsResponses[keyof DeleteDatasetsByDatasetIdDocumentsResponses] + +export type GetDatasetsByDatasetIdDocumentsData = { + body?: never + path: { + dataset_id: string + } + query?: { + page?: string + limit?: string + keyword?: string + sort?: string + fetch?: string + status?: string + } + url: '/datasets/{dataset_id}/documents' +} + +export type GetDatasetsByDatasetIdDocumentsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsResponse + = GetDatasetsByDatasetIdDocumentsResponses[keyof GetDatasetsByDatasetIdDocumentsResponses] + +export type PostDatasetsByDatasetIdDocumentsData = { + body: KnowledgeConfig + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents' +} + +export type PostDatasetsByDatasetIdDocumentsResponses = { + 200: DatasetAndDocumentResponse +} + +export type PostDatasetsByDatasetIdDocumentsResponse + = PostDatasetsByDatasetIdDocumentsResponses[keyof PostDatasetsByDatasetIdDocumentsResponses] + +export type PostDatasetsByDatasetIdDocumentsDownloadZipData = { + body: DocumentBatchDownloadZipPayload + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/download-zip' +} + +export type PostDatasetsByDatasetIdDocumentsDownloadZipResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentsDownloadZipResponse + = PostDatasetsByDatasetIdDocumentsDownloadZipResponses[keyof PostDatasetsByDatasetIdDocumentsDownloadZipResponses] + +export type PostDatasetsByDatasetIdDocumentsGenerateSummaryData = { + body: GenerateSummaryPayload + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/generate-summary' +} + +export type PostDatasetsByDatasetIdDocumentsGenerateSummaryErrors = { + 400: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentsGenerateSummaryError + = PostDatasetsByDatasetIdDocumentsGenerateSummaryErrors[keyof PostDatasetsByDatasetIdDocumentsGenerateSummaryErrors] + +export type PostDatasetsByDatasetIdDocumentsGenerateSummaryResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentsGenerateSummaryResponse + = PostDatasetsByDatasetIdDocumentsGenerateSummaryResponses[keyof PostDatasetsByDatasetIdDocumentsGenerateSummaryResponses] + +export type PostDatasetsByDatasetIdDocumentsMetadataData = { + body: MetadataOperationData + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/metadata' +} + +export type PostDatasetsByDatasetIdDocumentsMetadataResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentsMetadataResponse + = PostDatasetsByDatasetIdDocumentsMetadataResponses[keyof PostDatasetsByDatasetIdDocumentsMetadataResponses] + +export type PatchDatasetsByDatasetIdDocumentsStatusByActionBatchData = { + body?: never + path: { + dataset_id: string + action: string + } + query?: never + url: '/datasets/{dataset_id}/documents/status/{action}/batch' +} + +export type PatchDatasetsByDatasetIdDocumentsStatusByActionBatchResponses = { + 200: { + [key: string]: unknown + } +} + +export type PatchDatasetsByDatasetIdDocumentsStatusByActionBatchResponse + = PatchDatasetsByDatasetIdDocumentsStatusByActionBatchResponses[keyof PatchDatasetsByDatasetIdDocumentsStatusByActionBatchResponses] + +export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdData = { + body?: never + path: { + dataset_id: string + document_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}' +} + +export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdResponse + = DeleteDatasetsByDatasetIdDocumentsByDocumentIdResponses[keyof DeleteDatasetsByDatasetIdDocumentsByDocumentIdResponses] + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdData = { + body?: never + path: { + dataset_id: string + document_id: string + } + query?: { + metadata?: string + } + url: '/datasets/{dataset_id}/documents/{document_id}' +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdErrors = { + 404: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdError + = GetDatasetsByDatasetIdDocumentsByDocumentIdErrors[keyof GetDatasetsByDatasetIdDocumentsByDocumentIdErrors] + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdResponse + = GetDatasetsByDatasetIdDocumentsByDocumentIdResponses[keyof GetDatasetsByDatasetIdDocumentsByDocumentIdResponses] + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdDownloadData = { + body?: never + path: { + dataset_id: string + document_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/download' +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdDownloadResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdDownloadResponse + = GetDatasetsByDatasetIdDocumentsByDocumentIdDownloadResponses[keyof GetDatasetsByDatasetIdDocumentsByDocumentIdDownloadResponses] + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdIndexingEstimateData = { + body?: never + path: { + dataset_id: string + document_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/indexing-estimate' +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdIndexingEstimateErrors = { + 400: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdIndexingEstimateError + = GetDatasetsByDatasetIdDocumentsByDocumentIdIndexingEstimateErrors[keyof GetDatasetsByDatasetIdDocumentsByDocumentIdIndexingEstimateErrors] + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdIndexingEstimateResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdIndexingEstimateResponse + = GetDatasetsByDatasetIdDocumentsByDocumentIdIndexingEstimateResponses[keyof GetDatasetsByDatasetIdDocumentsByDocumentIdIndexingEstimateResponses] + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdIndexingStatusData = { + body?: never + path: { + dataset_id: string + document_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/indexing-status' +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdIndexingStatusErrors = { + 404: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdIndexingStatusError + = GetDatasetsByDatasetIdDocumentsByDocumentIdIndexingStatusErrors[keyof GetDatasetsByDatasetIdDocumentsByDocumentIdIndexingStatusErrors] + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdIndexingStatusResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdIndexingStatusResponse + = GetDatasetsByDatasetIdDocumentsByDocumentIdIndexingStatusResponses[keyof GetDatasetsByDatasetIdDocumentsByDocumentIdIndexingStatusResponses] + +export type PutDatasetsByDatasetIdDocumentsByDocumentIdMetadataData = { + body: DocumentMetadataUpdatePayload + path: { + dataset_id: string + document_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/metadata' +} + +export type PutDatasetsByDatasetIdDocumentsByDocumentIdMetadataErrors = { + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PutDatasetsByDatasetIdDocumentsByDocumentIdMetadataError + = PutDatasetsByDatasetIdDocumentsByDocumentIdMetadataErrors[keyof PutDatasetsByDatasetIdDocumentsByDocumentIdMetadataErrors] + +export type PutDatasetsByDatasetIdDocumentsByDocumentIdMetadataResponses = { + 200: { + [key: string]: unknown + } +} + +export type PutDatasetsByDatasetIdDocumentsByDocumentIdMetadataResponse + = PutDatasetsByDatasetIdDocumentsByDocumentIdMetadataResponses[keyof PutDatasetsByDatasetIdDocumentsByDocumentIdMetadataResponses] + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdNotionSyncData = { + body?: never + path: { + dataset_id: string + document_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/notion/sync' +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdNotionSyncResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdNotionSyncResponse + = GetDatasetsByDatasetIdDocumentsByDocumentIdNotionSyncResponses[keyof GetDatasetsByDatasetIdDocumentsByDocumentIdNotionSyncResponses] + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdPipelineExecutionLogData = { + body?: never + path: { + dataset_id: string + document_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/pipeline-execution-log' +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdPipelineExecutionLogResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdPipelineExecutionLogResponse + = GetDatasetsByDatasetIdDocumentsByDocumentIdPipelineExecutionLogResponses[keyof GetDatasetsByDatasetIdDocumentsByDocumentIdPipelineExecutionLogResponses] + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingPauseData = { + body?: never + path: { + dataset_id: string + document_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/processing/pause' +} + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingPauseResponses = { + 200: { + [key: string]: unknown + } +} + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingPauseResponse + = PatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingPauseResponses[keyof PatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingPauseResponses] + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingResumeData = { + body?: never + path: { + dataset_id: string + document_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/processing/resume' +} + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingResumeResponses = { + 200: { + [key: string]: unknown + } +} + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingResumeResponse + = PatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingResumeResponses[keyof PatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingResumeResponses] + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingByActionData = { + body?: never + path: { + dataset_id: string + document_id: string + action: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/processing/{action}' +} + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingByActionErrors = { + 400: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingByActionError + = PatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingByActionErrors[keyof PatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingByActionErrors] + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingByActionResponses = { + 200: { + [key: string]: unknown + } +} + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingByActionResponse + = PatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingByActionResponses[keyof PatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingByActionResponses] + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdRenameData = { + body: DocumentRenamePayload + path: { + dataset_id: string + document_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/rename' +} + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdRenameResponses = { + 200: DocumentResponse +} + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdRenameResponse + = PostDatasetsByDatasetIdDocumentsByDocumentIdRenameResponses[keyof PostDatasetsByDatasetIdDocumentsByDocumentIdRenameResponses] + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentData = { + body: SegmentCreatePayload + path: { + dataset_id: string + document_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/segment' +} + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentResponse + = PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentResponses[keyof PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentResponses] + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentByActionData = { + body?: never + path: { + dataset_id: string + document_id: string + action: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/segment/{action}' +} + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentByActionResponses = { + 200: { + [key: string]: unknown + } +} + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentByActionResponse + = PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentByActionResponses[keyof PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentByActionResponses] + +export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsData = { + body?: never + path: { + dataset_id: string + document_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/segments' +} + +export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsResponses = { + 200: { + [key: string]: unknown + } +} + +export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsResponse + = DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsResponses[keyof DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsResponses] + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsData = { + body?: never + path: { + dataset_id: string + document_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/segments' +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsResponse + = GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsResponses[keyof GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsResponses] + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBatchImportData = { + body?: never + path: { + dataset_id: string + document_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/segments/batch_import' +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBatchImportResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBatchImportResponse + = GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBatchImportResponses[keyof GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBatchImportResponses] + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBatchImportData = { + body: BatchImportPayload + path: { + dataset_id: string + document_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/segments/batch_import' +} + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBatchImportResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBatchImportResponse + = PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBatchImportResponses[keyof PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBatchImportResponses] + +export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdData = { + body?: never + path: { + dataset_id: string + document_id: string + segment_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}' +} + +export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponse + = DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponses[keyof DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponses] + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdData = { + body: SegmentUpdatePayload + path: { + dataset_id: string + document_id: string + segment_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}' +} + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponse + = PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponses[keyof PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponses] + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksData = { + body?: never + path: { + dataset_id: string + document_id: string + segment_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}/child_chunks' +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponse + = GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponses[keyof GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponses] + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksData = { + body?: never + path: { + dataset_id: string + document_id: string + segment_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}/child_chunks' +} + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponses = { + 200: { + [key: string]: unknown + } +} + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponse + = PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponses[keyof PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponses] + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksData = { + body: ChildChunkCreatePayload + path: { + dataset_id: string + document_id: string + segment_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}/child_chunks' +} + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponse + = PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponses[keyof PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponses] + +export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdData + = { + body?: never + path: { + 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}' + } + +export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdResponses + = { + 200: { + [key: string]: unknown + } + } + +export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdResponse + = DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdResponses[keyof DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdResponses] + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdData + = { + body: ChildChunkUpdatePayload + path: { + 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}' + } + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdResponses + = { + 200: { + [key: string]: unknown + } + } + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdResponse + = PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdResponses[keyof PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdResponses] + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdSummaryStatusData = { + body?: never + path: { + dataset_id: string + document_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/summary-status' +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdSummaryStatusErrors = { + 404: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdSummaryStatusError + = GetDatasetsByDatasetIdDocumentsByDocumentIdSummaryStatusErrors[keyof GetDatasetsByDatasetIdDocumentsByDocumentIdSummaryStatusErrors] + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdSummaryStatusResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdSummaryStatusResponse + = GetDatasetsByDatasetIdDocumentsByDocumentIdSummaryStatusResponses[keyof GetDatasetsByDatasetIdDocumentsByDocumentIdSummaryStatusResponses] + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdWebsiteSyncData = { + body?: never + path: { + dataset_id: string + document_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/website-sync' +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdWebsiteSyncResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdWebsiteSyncResponse + = GetDatasetsByDatasetIdDocumentsByDocumentIdWebsiteSyncResponses[keyof GetDatasetsByDatasetIdDocumentsByDocumentIdWebsiteSyncResponses] + +export type GetDatasetsByDatasetIdErrorDocsData = { + body?: never + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/error-docs' +} + +export type GetDatasetsByDatasetIdErrorDocsErrors = { + 404: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdErrorDocsError + = GetDatasetsByDatasetIdErrorDocsErrors[keyof GetDatasetsByDatasetIdErrorDocsErrors] + +export type GetDatasetsByDatasetIdErrorDocsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdErrorDocsResponse + = GetDatasetsByDatasetIdErrorDocsResponses[keyof GetDatasetsByDatasetIdErrorDocsResponses] + +export type PostDatasetsByDatasetIdExternalHitTestingData = { + body: ExternalHitTestingPayload + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/external-hit-testing' +} + +export type PostDatasetsByDatasetIdExternalHitTestingErrors = { + 400: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdExternalHitTestingError + = PostDatasetsByDatasetIdExternalHitTestingErrors[keyof PostDatasetsByDatasetIdExternalHitTestingErrors] + +export type PostDatasetsByDatasetIdExternalHitTestingResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdExternalHitTestingResponse + = PostDatasetsByDatasetIdExternalHitTestingResponses[keyof PostDatasetsByDatasetIdExternalHitTestingResponses] + +export type PostDatasetsByDatasetIdHitTestingData = { + body: HitTestingPayload + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/hit-testing' +} + +export type PostDatasetsByDatasetIdHitTestingErrors = { + 400: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdHitTestingError + = PostDatasetsByDatasetIdHitTestingErrors[keyof PostDatasetsByDatasetIdHitTestingErrors] + +export type PostDatasetsByDatasetIdHitTestingResponses = { + 200: HitTestingResponse +} + +export type PostDatasetsByDatasetIdHitTestingResponse + = PostDatasetsByDatasetIdHitTestingResponses[keyof PostDatasetsByDatasetIdHitTestingResponses] + +export type GetDatasetsByDatasetIdIndexingStatusData = { + body?: never + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/indexing-status' +} + +export type GetDatasetsByDatasetIdIndexingStatusResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdIndexingStatusResponse + = GetDatasetsByDatasetIdIndexingStatusResponses[keyof GetDatasetsByDatasetIdIndexingStatusResponses] + +export type GetDatasetsByDatasetIdMetadataData = { + body?: never + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/metadata' +} + +export type GetDatasetsByDatasetIdMetadataResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdMetadataResponse + = GetDatasetsByDatasetIdMetadataResponses[keyof GetDatasetsByDatasetIdMetadataResponses] + +export type PostDatasetsByDatasetIdMetadataData = { + body: MetadataArgs + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/metadata' +} + +export type PostDatasetsByDatasetIdMetadataResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdMetadataResponse + = PostDatasetsByDatasetIdMetadataResponses[keyof PostDatasetsByDatasetIdMetadataResponses] + +export type PostDatasetsByDatasetIdMetadataBuiltInByActionData = { + body?: never + path: { + dataset_id: string + action: string + } + query?: never + url: '/datasets/{dataset_id}/metadata/built-in/{action}' +} + +export type PostDatasetsByDatasetIdMetadataBuiltInByActionResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdMetadataBuiltInByActionResponse + = PostDatasetsByDatasetIdMetadataBuiltInByActionResponses[keyof PostDatasetsByDatasetIdMetadataBuiltInByActionResponses] + +export type DeleteDatasetsByDatasetIdMetadataByMetadataIdData = { + body?: never + path: { + dataset_id: string + metadata_id: string + } + query?: never + url: '/datasets/{dataset_id}/metadata/{metadata_id}' +} + +export type DeleteDatasetsByDatasetIdMetadataByMetadataIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type DeleteDatasetsByDatasetIdMetadataByMetadataIdResponse + = DeleteDatasetsByDatasetIdMetadataByMetadataIdResponses[keyof DeleteDatasetsByDatasetIdMetadataByMetadataIdResponses] + +export type PatchDatasetsByDatasetIdMetadataByMetadataIdData = { + body: MetadataUpdatePayload + path: { + dataset_id: string + metadata_id: string + } + query?: never + url: '/datasets/{dataset_id}/metadata/{metadata_id}' +} + +export type PatchDatasetsByDatasetIdMetadataByMetadataIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type PatchDatasetsByDatasetIdMetadataByMetadataIdResponse + = PatchDatasetsByDatasetIdMetadataByMetadataIdResponses[keyof PatchDatasetsByDatasetIdMetadataByMetadataIdResponses] + +export type GetDatasetsByDatasetIdNotionSyncData = { + body?: never + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/notion/sync' +} + +export type GetDatasetsByDatasetIdNotionSyncResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdNotionSyncResponse + = GetDatasetsByDatasetIdNotionSyncResponses[keyof GetDatasetsByDatasetIdNotionSyncResponses] + +export type GetDatasetsByDatasetIdPermissionPartUsersData = { + body?: never + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/permission-part-users' +} + +export type GetDatasetsByDatasetIdPermissionPartUsersErrors = { + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdPermissionPartUsersError + = GetDatasetsByDatasetIdPermissionPartUsersErrors[keyof GetDatasetsByDatasetIdPermissionPartUsersErrors] + +export type GetDatasetsByDatasetIdPermissionPartUsersResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdPermissionPartUsersResponse + = GetDatasetsByDatasetIdPermissionPartUsersResponses[keyof GetDatasetsByDatasetIdPermissionPartUsersResponses] + +export type GetDatasetsByDatasetIdQueriesData = { + body?: never + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/queries' +} + +export type GetDatasetsByDatasetIdQueriesResponses = { + 200: DatasetQueryDetail +} + +export type GetDatasetsByDatasetIdQueriesResponse + = GetDatasetsByDatasetIdQueriesResponses[keyof GetDatasetsByDatasetIdQueriesResponses] + +export type GetDatasetsByDatasetIdRelatedAppsData = { + body?: never + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/related-apps' +} + +export type GetDatasetsByDatasetIdRelatedAppsResponses = { + 200: RelatedAppList +} + +export type GetDatasetsByDatasetIdRelatedAppsResponse + = GetDatasetsByDatasetIdRelatedAppsResponses[keyof GetDatasetsByDatasetIdRelatedAppsResponses] + +export type PostDatasetsByDatasetIdRetryData = { + body: DocumentRetryPayload + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/retry' +} + +export type PostDatasetsByDatasetIdRetryResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdRetryResponse + = PostDatasetsByDatasetIdRetryResponses[keyof PostDatasetsByDatasetIdRetryResponses] + +export type GetDatasetsByDatasetIdUseCheckData = { + body?: never + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/use-check' +} + +export type GetDatasetsByDatasetIdUseCheckResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdUseCheckResponse + = GetDatasetsByDatasetIdUseCheckResponses[keyof GetDatasetsByDatasetIdUseCheckResponses] + +export type GetDatasetsByResourceIdApiKeysData = { + body?: never + path: { + resource_id: string + } + query?: never + url: '/datasets/{resource_id}/api-keys' +} + +export type GetDatasetsByResourceIdApiKeysResponses = { + 200: ApiKeyList +} + +export type GetDatasetsByResourceIdApiKeysResponse + = GetDatasetsByResourceIdApiKeysResponses[keyof GetDatasetsByResourceIdApiKeysResponses] + +export type PostDatasetsByResourceIdApiKeysData = { + body?: never + path: { + resource_id: string + } + query?: never + url: '/datasets/{resource_id}/api-keys' +} + +export type PostDatasetsByResourceIdApiKeysErrors = { + 400: { + [key: string]: unknown + } +} + +export type PostDatasetsByResourceIdApiKeysError + = PostDatasetsByResourceIdApiKeysErrors[keyof PostDatasetsByResourceIdApiKeysErrors] + +export type PostDatasetsByResourceIdApiKeysResponses = { + 201: ApiKeyItem +} + +export type PostDatasetsByResourceIdApiKeysResponse + = PostDatasetsByResourceIdApiKeysResponses[keyof PostDatasetsByResourceIdApiKeysResponses] + +export type DeleteDatasetsByResourceIdApiKeysByApiKeyIdData = { + body?: never + path: { + resource_id: string + api_key_id: string + } + query?: never + url: '/datasets/{resource_id}/api-keys/{api_key_id}' +} + +export type DeleteDatasetsByResourceIdApiKeysByApiKeyIdResponses = { + 204: { + [key: string]: unknown + } +} + +export type DeleteDatasetsByResourceIdApiKeysByApiKeyIdResponse + = DeleteDatasetsByResourceIdApiKeysByApiKeyIdResponses[keyof DeleteDatasetsByResourceIdApiKeysByApiKeyIdResponses] diff --git a/packages/contracts/generated/api/console/datasets/zod.gen.ts b/packages/contracts/generated/api/console/datasets/zod.gen.ts new file mode 100644 index 0000000000..2ac2cbfd1f --- /dev/null +++ b/packages/contracts/generated/api/console/datasets/zod.gen.ts @@ -0,0 +1,1490 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * ApiKeyItem + */ +export const zApiKeyItem = z.object({ + created_at: z.int().nullish(), + id: z.string(), + last_used_at: z.int().nullish(), + token: z.string(), + type: z.string(), +}) + +/** + * ApiKeyList + */ +export const zApiKeyList = z.object({ + data: z.array(zApiKeyItem), +}) + +/** + * BatchImportPayload + */ +export const zBatchImportPayload = z.object({ + upload_file_id: z.string(), +}) + +/** + * ExternalDatasetCreatePayload + */ +export const zExternalDatasetCreatePayload = z.object({ + description: z.string().max(400).nullish(), + external_knowledge_api_id: z.string(), + external_knowledge_id: z.string(), + external_retrieval_model: z.record(z.string(), z.unknown()).nullish(), + name: z.string().min(1).max(100), +}) + +export const zDatasetDetail = z.record(z.string(), z.unknown()) + +/** + * ExternalKnowledgeApiPayload + */ +export const zExternalKnowledgeApiPayload = z.object({ + name: z.string().min(1).max(40), + settings: z.record(z.string(), z.unknown()), +}) + +/** + * IndexingEstimatePayload + */ +export const zIndexingEstimatePayload = z.object({ + dataset_id: z.string().nullish(), + doc_form: z.string().optional().default('text_model'), + doc_language: z.string().optional().default('English'), + indexing_technique: z.string(), + info_list: z.record(z.string(), z.unknown()), + process_rule: z.record(z.string(), z.unknown()), +}) + +/** + * NotionEstimatePayload + */ +export const zNotionEstimatePayload = z.object({ + doc_form: z.string().optional().default('text_model'), + doc_language: z.string().optional().default('English'), + notion_info_list: z.array(z.record(z.string(), z.unknown())), + process_rule: z.record(z.string(), z.unknown()), +}) + +/** + * DocumentBatchDownloadZipPayload + * + * Request payload for bulk downloading documents as a zip archive. + */ +export const zDocumentBatchDownloadZipPayload = z.object({ + document_ids: z.array(z.uuid()).min(1).max(100), +}) + +/** + * GenerateSummaryPayload + */ +export const zGenerateSummaryPayload = z.object({ + document_list: z.array(z.string()), +}) + +/** + * DocumentMetadataUpdatePayload + */ +export const zDocumentMetadataUpdatePayload = z.object({ + doc_metadata: z.unknown().optional(), + doc_type: z.string().nullish(), +}) + +/** + * DocumentRenamePayload + */ +export const zDocumentRenamePayload = z.object({ + name: z.string(), +}) + +/** + * SegmentCreatePayload + */ +export const zSegmentCreatePayload = z.object({ + answer: z.string().nullish(), + attachment_ids: z.array(z.string()).nullish(), + content: z.string(), + keywords: z.array(z.string()).nullish(), +}) + +/** + * SegmentUpdatePayload + */ +export const zSegmentUpdatePayload = z.object({ + answer: z.string().nullish(), + attachment_ids: z.array(z.string()).nullish(), + content: z.string(), + keywords: z.array(z.string()).nullish(), + regenerate_child_chunks: z.boolean().optional().default(false), + summary: z.string().nullish(), +}) + +/** + * ChildChunkCreatePayload + */ +export const zChildChunkCreatePayload = z.object({ + content: z.string(), +}) + +/** + * ChildChunkUpdatePayload + */ +export const zChildChunkUpdatePayload = z.object({ + content: z.string(), +}) + +/** + * ExternalHitTestingPayload + */ +export const zExternalHitTestingPayload = z.object({ + external_retrieval_model: z.record(z.string(), z.unknown()).nullish(), + metadata_filtering_conditions: z.record(z.string(), z.unknown()).nullish(), + query: z.string(), +}) + +/** + * MetadataArgs + */ +export const zMetadataArgs = z.object({ + name: z.string(), + type: z.enum(['string', 'number', 'time']), +}) + +/** + * MetadataUpdatePayload + */ +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 + */ +export const zDocumentRetryPayload = z.object({ + document_ids: z.array(z.string()), +}) + +/** + * DatasetPermissionEnum + */ +export const zDatasetPermissionEnum = z.enum(['only_me', 'all_team_members', 'partial_members']) + +/** + * DatasetCreatePayload + */ +export const zDatasetCreatePayload = z.object({ + description: z.string().max(400).optional().default(''), + external_knowledge_api_id: z.string().nullish(), + external_knowledge_id: z.string().nullish(), + indexing_technique: z.string().nullish(), + name: z.string().min(1).max(40), + permission: zDatasetPermissionEnum.optional(), + provider: z.string().optional().default('vendor'), +}) + +/** + * 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(), + icon_info: z.record(z.string(), z.unknown()).nullish(), + indexing_technique: z.string().nullish(), + is_multimodal: z.boolean().nullish().default(false), + 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: z.record(z.string(), z.unknown()).nullish(), + summary_index_setting: z.record(z.string(), z.unknown()).nullish(), +}) + +/** + * DatasetResponse + */ +export const zDatasetResponse = z.object({ + created_at: z.int().nullish(), + created_by: z.string().nullish(), + data_source_type: z.string().nullish(), + description: z.string().nullish(), + id: z.string(), + indexing_technique: z.string().nullish(), + name: z.string(), + permission: z.string().nullish(), +}) + +/** + * DocumentMetadataResponse + */ +export const zDocumentMetadataResponse = z.object({ + id: z.string(), + name: z.string(), + type: z.string(), + value: z.string().nullish(), +}) + +/** + * DocumentResponse + */ +export const zDocumentResponse = z.object({ + archived: z.boolean().nullish(), + created_at: z.int().nullish(), + created_by: z.string().nullish(), + created_from: z.string().nullish(), + data_source_detail_dict: z.unknown().optional(), + data_source_info_dict: z.unknown().optional(), + data_source_type: z.string().nullish(), + dataset_process_rule_id: z.string().nullish(), + disabled_at: z.int().nullish(), + disabled_by: z.string().nullish(), + display_status: z.string().nullish(), + doc_form: z.string().nullish(), + doc_metadata_details: z.array(zDocumentMetadataResponse).optional(), + enabled: z.boolean().nullish(), + error: z.string().nullish(), + hit_count: z.int().nullish(), + id: z.string(), + indexing_status: z.string().nullish(), + name: z.string(), + need_summary: z.boolean().nullish(), + position: z.int().nullish(), + summary_index_status: z.string().nullish(), + tokens: z.int().nullish(), + word_count: z.int().nullish(), +}) + +/** + * DatasetAndDocumentResponse + */ +export const zDatasetAndDocumentResponse = z.object({ + batch: z.string(), + dataset: zDatasetResponse, + documents: z.array(zDocumentResponse), +}) + +/** + * 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', +]) + +/** + * 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), +}) + +/** + * HitTestingChildChunk + */ +export const zHitTestingChildChunk = z.object({ + content: z.string().nullish(), + id: z.string().nullish(), + position: z.int().nullish(), + score: z.number().nullish(), +}) + +/** + * HitTestingFile + */ +export const zHitTestingFile = z.object({ + extension: z.string().nullish(), + id: z.string().nullish(), + mime_type: z.string().nullish(), + name: z.string().nullish(), + size: z.int().nullish(), + source_url: z.string().nullish(), +}) + +/** + * FileInfo + */ +export const zFileInfo = z.object({ + file_ids: z.array(z.string()), +}) + +/** + * WebsiteInfo + */ +export const zWebsiteInfo = z.object({ + job_id: z.string(), + only_main_content: z.boolean().optional().default(true), + provider: z.string(), + urls: z.array(z.string()), +}) + +/** + * PreProcessingRule + */ +export const zPreProcessingRule = z.object({ + enabled: z.boolean(), + id: z.string(), +}) + +/** + * Segmentation + */ +export const zSegmentation = z.object({ + chunk_overlap: z.int().optional().default(0), + max_tokens: z.int(), + separator: z.string().optional().default('\n'), +}) + +/** + * Rule + */ +export const zRule = z.object({ + parent_mode: z.enum(['full-doc', 'paragraph']).nullish(), + pre_processing_rules: z.array(zPreProcessingRule).nullish(), + segmentation: zSegmentation.optional(), + subchunk_segmentation: zSegmentation.optional(), +}) + +/** + * ProcessRule + */ +export const zProcessRule = z.object({ + mode: z.enum(['automatic', 'custom', 'hierarchical']), + rules: zRule.optional(), +}) + +/** + * 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({ + 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(), +}) + +/** + * HitTestingPayload + */ +export const zHitTestingPayload = z.object({ + 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(), +}) + +/** + * HitTestingDocument + */ +export const zHitTestingDocument = z.object({ + data_source_type: z.string().nullish(), + doc_metadata: z.unknown().optional(), + doc_type: z.string().nullish(), + id: z.string().nullish(), + name: z.string().nullish(), +}) + +/** + * HitTestingSegment + */ +export const zHitTestingSegment = z.object({ + answer: z.string().nullish(), + completed_at: z.int().nullish(), + content: z.string().nullish(), + created_at: z.int().nullish(), + created_by: z.string().nullish(), + disabled_at: z.int().nullish(), + disabled_by: z.string().nullish(), + document: zHitTestingDocument.optional(), + document_id: z.string().nullish(), + enabled: z.boolean().nullish(), + error: z.string().nullish(), + hit_count: z.int().nullish(), + id: z.string().nullish(), + index_node_hash: z.string().nullish(), + index_node_id: z.string().nullish(), + indexing_at: z.int().nullish(), + keywords: z.array(z.string()).optional(), + position: z.int().nullish(), + sign_content: z.string().nullish(), + status: z.string().nullish(), + stopped_at: z.int().nullish(), + tokens: z.int().nullish(), + word_count: z.int().nullish(), +}) + +/** + * HitTestingRecord + */ +export const zHitTestingRecord = z.object({ + child_chunks: z.array(zHitTestingChildChunk).optional(), + files: z.array(zHitTestingFile).optional(), + score: z.number().nullish(), + segment: zHitTestingSegment.optional(), + summary: z.string().nullish(), + tsne_position: z.unknown().optional(), +}) + +/** + * HitTestingResponse + */ +export const zHitTestingResponse = z.object({ + query: z.string(), + records: z.array(zHitTestingRecord).optional(), +}) + +/** + * NotionIcon + */ +export const zNotionIcon = z.object({ + emoji: z.string().nullish(), + type: z.string(), + url: z.string().nullish(), +}) + +/** + * NotionPage + */ +export const zNotionPage = z.object({ + page_icon: zNotionIcon.optional(), + page_id: z.string(), + page_name: z.string(), + type: z.string(), +}) + +/** + * NotionInfo + */ +export const zNotionInfo = z.object({ + credential_id: z.string(), + pages: z.array(zNotionPage), + workspace_id: z.string(), +}) + +/** + * InfoList + */ +export const zInfoList = z.object({ + data_source_type: z.enum(['upload_file', 'notion_import', 'website_crawl']), + file_info_list: zFileInfo.optional(), + notion_info_list: z.array(zNotionInfo).nullish(), + website_info_list: zWebsiteInfo.optional(), +}) + +/** + * DataSource + */ +export const zDataSource = z.object({ + info_list: zInfoList, +}) + +/** + * KnowledgeConfig + */ +export const zKnowledgeConfig = z.object({ + data_source: zDataSource.optional(), + doc_form: z.string().optional().default('text_model'), + doc_language: z.string().optional().default('English'), + duplicate: z.boolean().optional().default(true), + embedding_model: z.string().nullish(), + embedding_model_provider: z.string().nullish(), + indexing_technique: z.enum(['high_quality', 'economy']), + is_multimodal: z.boolean().optional().default(false), + name: z.string().nullish(), + original_document_id: z.string().nullish(), + process_rule: zProcessRule.optional(), + retrieval_model: zRetrievalModel.optional(), + summary_index_setting: z.record(z.string(), z.unknown()).nullish(), +}) + +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(), +}) + +/** + * Datasets retrieved successfully + */ +export const zGetDatasetsResponse = z.record(z.string(), z.unknown()) + +export const zPostDatasetsBody = zDatasetCreatePayload + +/** + * Dataset created successfully + */ +export const zPostDatasetsResponse = z.record(z.string(), z.unknown()) + +/** + * API base info retrieved successfully + */ +export const zGetDatasetsApiBaseInfoResponse = z.record(z.string(), z.unknown()) + +/** + * API keys retrieved successfully + */ +export const zGetDatasetsApiKeysResponse = zApiKeyList + +/** + * API key created successfully + */ +export const zPostDatasetsApiKeysResponse = zApiKeyItem + +export const zDeleteDatasetsApiKeysByApiKeyIdPath = z.object({ + api_key_id: z.string(), +}) + +/** + * API key deleted successfully + */ +export const zDeleteDatasetsApiKeysByApiKeyIdResponse = z.record(z.string(), z.unknown()) + +export const zGetDatasetsBatchImportStatusByJobIdPath = z.object({ + job_id: z.string(), +}) + +/** + * Success + */ +export const zGetDatasetsBatchImportStatusByJobIdResponse = z.record(z.string(), z.unknown()) + +export const zPostDatasetsBatchImportStatusByJobIdBody = zBatchImportPayload + +export const zPostDatasetsBatchImportStatusByJobIdPath = z.object({ + job_id: z.string(), +}) + +/** + * Success + */ +export const zPostDatasetsBatchImportStatusByJobIdResponse = z.record(z.string(), z.unknown()) + +export const zPostDatasetsExternalBody = zExternalDatasetCreatePayload + +/** + * External dataset created successfully + */ +export const zPostDatasetsExternalResponse = zDatasetDetail + +export const zGetDatasetsExternalKnowledgeApiQuery = z.object({ + page: z.string().optional(), + limit: z.string().optional(), + keyword: z.string().optional(), +}) + +/** + * External API templates retrieved successfully + */ +export const zGetDatasetsExternalKnowledgeApiResponse = z.record(z.string(), z.unknown()) + +export const zPostDatasetsExternalKnowledgeApiBody = zExternalKnowledgeApiPayload + +/** + * Success + */ +export const zPostDatasetsExternalKnowledgeApiResponse = z.record(z.string(), z.unknown()) + +export const zDeleteDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdPath = z.object({ + external_knowledge_api_id: z.string(), +}) + +/** + * Success + */ +export const zDeleteDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdPath = z.object({ + external_knowledge_api_id: z.string(), +}) + +/** + * External API template retrieved successfully + */ +export const zGetDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPatchDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdBody + = zExternalKnowledgeApiPayload + +export const zPatchDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdPath = z.object({ + external_knowledge_api_id: z.string(), +}) + +/** + * Success + */ +export const zPatchDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdUseCheckPath = z.object({ + external_knowledge_api_id: z.string(), +}) + +/** + * Usage check completed successfully + */ +export const zGetDatasetsExternalKnowledgeApiByExternalKnowledgeApiIdUseCheckResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostDatasetsIndexingEstimateBody = zIndexingEstimatePayload + +/** + * Indexing estimate calculated successfully + */ +export const zPostDatasetsIndexingEstimateResponse = z.record(z.string(), z.unknown()) + +export const zPostDatasetsInitBody = zKnowledgeConfig + +/** + * Dataset initialized successfully + */ +export const zPostDatasetsInitResponse = zDatasetAndDocumentResponse + +/** + * Success + */ +export const zGetDatasetsMetadataBuiltInResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zGetDatasetsNotionIndexingEstimateResponse = z.record(z.string(), z.unknown()) + +export const zPostDatasetsNotionIndexingEstimateBody = zNotionEstimatePayload + +/** + * Success + */ +export const zPostDatasetsNotionIndexingEstimateResponse = z.record(z.string(), z.unknown()) + +export const zGetDatasetsProcessRuleQuery = z.object({ + document_id: z.string().optional(), +}) + +/** + * Process rules retrieved successfully + */ +export const zGetDatasetsProcessRuleResponse = z.record(z.string(), z.unknown()) + +/** + * Retrieval settings retrieved successfully + */ +export const zGetDatasetsRetrievalSettingResponse = z.record(z.string(), z.unknown()) + +export const zGetDatasetsRetrievalSettingByVectorTypePath = z.object({ + vector_type: z.string(), +}) + +/** + * Mock retrieval settings retrieved successfully + */ +export const zGetDatasetsRetrievalSettingByVectorTypeResponse = z.record(z.string(), z.unknown()) + +export const zDeleteDatasetsByDatasetIdPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Success + */ +export const zDeleteDatasetsByDatasetIdResponse = z.record(z.string(), z.unknown()) + +export const zGetDatasetsByDatasetIdPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Dataset retrieved successfully + */ +export const zGetDatasetsByDatasetIdResponse = zDatasetDetail + +export const zPatchDatasetsByDatasetIdBody = zDatasetUpdatePayload + +export const zPatchDatasetsByDatasetIdPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Dataset updated successfully + */ +export const zPatchDatasetsByDatasetIdResponse = zDatasetDetail + +export const zPostDatasetsByDatasetIdApiKeysByStatusPath = z.object({ + dataset_id: z.string(), + status: z.string(), +}) + +/** + * Success + */ +export const zPostDatasetsByDatasetIdApiKeysByStatusResponse = z.record(z.string(), z.unknown()) + +export const zGetDatasetsByDatasetIdAutoDisableLogsPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Auto disable logs retrieved successfully + */ +export const zGetDatasetsByDatasetIdAutoDisableLogsResponse = z.record(z.string(), z.unknown()) + +export const zGetDatasetsByDatasetIdBatchByBatchIndexingEstimatePath = z.object({ + dataset_id: z.string(), + batch: z.string(), +}) + +/** + * Success + */ +export const zGetDatasetsByDatasetIdBatchByBatchIndexingEstimateResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetDatasetsByDatasetIdBatchByBatchIndexingStatusPath = z.object({ + dataset_id: z.string(), + batch: z.string(), +}) + +/** + * Success + */ +export const zGetDatasetsByDatasetIdBatchByBatchIndexingStatusResponse = z.record( + z.string(), + z.unknown(), +) + +export const zDeleteDatasetsByDatasetIdDocumentsPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Success + */ +export const zDeleteDatasetsByDatasetIdDocumentsResponse = z.record(z.string(), z.unknown()) + +export const zGetDatasetsByDatasetIdDocumentsPath = z.object({ + dataset_id: z.string(), +}) + +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(), + status: z.string().optional(), +}) + +/** + * Documents retrieved successfully + */ +export const zGetDatasetsByDatasetIdDocumentsResponse = z.record(z.string(), z.unknown()) + +export const zPostDatasetsByDatasetIdDocumentsBody = zKnowledgeConfig + +export const zPostDatasetsByDatasetIdDocumentsPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Documents created successfully + */ +export const zPostDatasetsByDatasetIdDocumentsResponse = zDatasetAndDocumentResponse + +export const zPostDatasetsByDatasetIdDocumentsDownloadZipBody = zDocumentBatchDownloadZipPayload + +export const zPostDatasetsByDatasetIdDocumentsDownloadZipPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Success + */ +export const zPostDatasetsByDatasetIdDocumentsDownloadZipResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostDatasetsByDatasetIdDocumentsGenerateSummaryBody = zGenerateSummaryPayload + +export const zPostDatasetsByDatasetIdDocumentsGenerateSummaryPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Summary generation started successfully + */ +export const zPostDatasetsByDatasetIdDocumentsGenerateSummaryResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostDatasetsByDatasetIdDocumentsMetadataBody = zMetadataOperationData + +export const zPostDatasetsByDatasetIdDocumentsMetadataPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Success + */ +export const zPostDatasetsByDatasetIdDocumentsMetadataResponse = z.record(z.string(), z.unknown()) + +export const zPatchDatasetsByDatasetIdDocumentsStatusByActionBatchPath = z.object({ + dataset_id: z.string(), + action: z.string(), +}) + +/** + * Success + */ +export const zPatchDatasetsByDatasetIdDocumentsStatusByActionBatchResponse = z.record( + z.string(), + z.unknown(), +) + +export const zDeleteDatasetsByDatasetIdDocumentsByDocumentIdPath = z.object({ + dataset_id: z.string(), + document_id: z.string(), +}) + +/** + * Success + */ +export const zDeleteDatasetsByDatasetIdDocumentsByDocumentIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdPath = z.object({ + dataset_id: z.string(), + document_id: z.string(), +}) + +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdQuery = z.object({ + metadata: z.string().optional(), +}) + +/** + * Document retrieved successfully + */ +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdDownloadPath = z.object({ + dataset_id: z.string(), + document_id: z.string(), +}) + +/** + * Success + */ +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdDownloadResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdIndexingEstimatePath = z.object({ + dataset_id: z.string(), + document_id: z.string(), +}) + +/** + * Indexing estimate calculated successfully + */ +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdIndexingEstimateResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdIndexingStatusPath = z.object({ + dataset_id: z.string(), + document_id: z.string(), +}) + +/** + * Indexing status retrieved successfully + */ +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdIndexingStatusResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPutDatasetsByDatasetIdDocumentsByDocumentIdMetadataBody + = zDocumentMetadataUpdatePayload + +export const zPutDatasetsByDatasetIdDocumentsByDocumentIdMetadataPath = z.object({ + dataset_id: z.string(), + document_id: z.string(), +}) + +/** + * Document metadata updated successfully + */ +export const zPutDatasetsByDatasetIdDocumentsByDocumentIdMetadataResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdNotionSyncPath = z.object({ + dataset_id: z.string(), + document_id: z.string(), +}) + +/** + * Success + */ +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdNotionSyncResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdPipelineExecutionLogPath = z.object({ + dataset_id: z.string(), + document_id: z.string(), +}) + +/** + * Success + */ +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdPipelineExecutionLogResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingPausePath = z.object({ + dataset_id: z.string(), + document_id: z.string(), +}) + +/** + * Success + */ +export const zPatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingPauseResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingResumePath = z.object({ + dataset_id: z.string(), + document_id: z.string(), +}) + +/** + * Success + */ +export const zPatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingResumeResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingByActionPath = z.object({ + dataset_id: z.string(), + document_id: z.string(), + action: z.string(), +}) + +/** + * Processing status updated successfully + */ +export const zPatchDatasetsByDatasetIdDocumentsByDocumentIdProcessingByActionResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdRenameBody = zDocumentRenamePayload + +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdRenamePath = z.object({ + dataset_id: z.string(), + document_id: z.string(), +}) + +/** + * Document renamed successfully + */ +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdRenameResponse = zDocumentResponse + +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentBody = zSegmentCreatePayload + +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentPath = z.object({ + dataset_id: z.string(), + document_id: z.string(), +}) + +/** + * Success + */ +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentByActionPath = z.object({ + dataset_id: z.string(), + document_id: z.string(), + action: z.string(), +}) + +/** + * Success + */ +export const zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentByActionResponse = z.record( + z.string(), + z.unknown(), +) + +export const zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsPath = z.object({ + dataset_id: z.string(), + document_id: z.string(), +}) + +/** + * Success + */ +export const zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsPath = z.object({ + dataset_id: z.string(), + document_id: z.string(), +}) + +/** + * Success + */ +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBatchImportPath = z.object({ + dataset_id: z.string(), + document_id: z.string(), +}) + +/** + * Success + */ +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBatchImportResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBatchImportBody + = zBatchImportPayload + +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBatchImportPath = z.object({ + dataset_id: z.string(), + document_id: z.string(), +}) + +/** + * Success + */ +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBatchImportResponse = z.record( + z.string(), + z.unknown(), +) + +export const zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdPath = z.object({ + dataset_id: z.string(), + document_id: z.string(), + segment_id: z.string(), +}) + +/** + * Success + */ +export const zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdBody + = zSegmentUpdatePayload + +export const zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdPath = z.object({ + dataset_id: z.string(), + document_id: z.string(), + segment_id: z.string(), +}) + +/** + * Success + */ +export const zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksPath + = z.object({ + dataset_id: z.string(), + document_id: z.string(), + segment_id: z.string(), + }) + +/** + * Success + */ +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponse + = z.record(z.string(), z.unknown()) + +export const zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksPath + = z.object({ + dataset_id: z.string(), + document_id: z.string(), + segment_id: z.string(), + }) + +/** + * Success + */ +export const zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponse + = z.record(z.string(), z.unknown()) + +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksBody + = zChildChunkCreatePayload + +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksPath + = z.object({ + dataset_id: z.string(), + document_id: z.string(), + segment_id: z.string(), + }) + +/** + * Success + */ +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponse + = z.record(z.string(), z.unknown()) + +export const zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdPath + = z.object({ + dataset_id: z.string(), + document_id: z.string(), + segment_id: z.string(), + child_chunk_id: z.string(), + }) + +/** + * Success + */ +export const zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdResponse + = z.record(z.string(), z.unknown()) + +export const zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdBody + = zChildChunkUpdatePayload + +export const zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdPath + = z.object({ + dataset_id: z.string(), + document_id: z.string(), + segment_id: z.string(), + child_chunk_id: z.string(), + }) + +/** + * Success + */ +export const zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdResponse + = z.record(z.string(), z.unknown()) + +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdSummaryStatusPath = z.object({ + dataset_id: z.string(), + document_id: z.string(), +}) + +/** + * Summary status retrieved successfully + */ +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdSummaryStatusResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdWebsiteSyncPath = z.object({ + dataset_id: z.string(), + document_id: z.string(), +}) + +/** + * Success + */ +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdWebsiteSyncResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetDatasetsByDatasetIdErrorDocsPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Error documents retrieved successfully + */ +export const zGetDatasetsByDatasetIdErrorDocsResponse = z.record(z.string(), z.unknown()) + +export const zPostDatasetsByDatasetIdExternalHitTestingBody = zExternalHitTestingPayload + +export const zPostDatasetsByDatasetIdExternalHitTestingPath = z.object({ + dataset_id: z.string(), +}) + +/** + * External hit testing completed successfully + */ +export const zPostDatasetsByDatasetIdExternalHitTestingResponse = z.record(z.string(), z.unknown()) + +export const zPostDatasetsByDatasetIdHitTestingBody = zHitTestingPayload + +export const zPostDatasetsByDatasetIdHitTestingPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Hit testing completed successfully + */ +export const zPostDatasetsByDatasetIdHitTestingResponse = zHitTestingResponse + +export const zGetDatasetsByDatasetIdIndexingStatusPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Indexing status retrieved successfully + */ +export const zGetDatasetsByDatasetIdIndexingStatusResponse = z.record(z.string(), z.unknown()) + +export const zGetDatasetsByDatasetIdMetadataPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Success + */ +export const zGetDatasetsByDatasetIdMetadataResponse = z.record(z.string(), z.unknown()) + +export const zPostDatasetsByDatasetIdMetadataBody = zMetadataArgs + +export const zPostDatasetsByDatasetIdMetadataPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Success + */ +export const zPostDatasetsByDatasetIdMetadataResponse = z.record(z.string(), z.unknown()) + +export const zPostDatasetsByDatasetIdMetadataBuiltInByActionPath = z.object({ + dataset_id: z.string(), + action: z.string(), +}) + +/** + * Success + */ +export const zPostDatasetsByDatasetIdMetadataBuiltInByActionResponse = z.record( + z.string(), + z.unknown(), +) + +export const zDeleteDatasetsByDatasetIdMetadataByMetadataIdPath = z.object({ + dataset_id: z.string(), + metadata_id: z.string(), +}) + +/** + * Success + */ +export const zDeleteDatasetsByDatasetIdMetadataByMetadataIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPatchDatasetsByDatasetIdMetadataByMetadataIdBody = zMetadataUpdatePayload + +export const zPatchDatasetsByDatasetIdMetadataByMetadataIdPath = z.object({ + dataset_id: z.string(), + metadata_id: z.string(), +}) + +/** + * Success + */ +export const zPatchDatasetsByDatasetIdMetadataByMetadataIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetDatasetsByDatasetIdNotionSyncPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Success + */ +export const zGetDatasetsByDatasetIdNotionSyncResponse = z.record(z.string(), z.unknown()) + +export const zGetDatasetsByDatasetIdPermissionPartUsersPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Permission users retrieved successfully + */ +export const zGetDatasetsByDatasetIdPermissionPartUsersResponse = z.record(z.string(), z.unknown()) + +export const zGetDatasetsByDatasetIdQueriesPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Query history retrieved successfully + */ +export const zGetDatasetsByDatasetIdQueriesResponse = zDatasetQueryDetail + +export const zGetDatasetsByDatasetIdRelatedAppsPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Related apps retrieved successfully + */ +export const zGetDatasetsByDatasetIdRelatedAppsResponse = zRelatedAppList + +export const zPostDatasetsByDatasetIdRetryBody = zDocumentRetryPayload + +export const zPostDatasetsByDatasetIdRetryPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Success + */ +export const zPostDatasetsByDatasetIdRetryResponse = z.record(z.string(), z.unknown()) + +export const zGetDatasetsByDatasetIdUseCheckPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Dataset use status retrieved successfully + */ +export const zGetDatasetsByDatasetIdUseCheckResponse = z.record(z.string(), z.unknown()) + +export const zGetDatasetsByResourceIdApiKeysPath = z.object({ + resource_id: z.string(), +}) + +/** + * API keys retrieved successfully + */ +export const zGetDatasetsByResourceIdApiKeysResponse = zApiKeyList + +export const zPostDatasetsByResourceIdApiKeysPath = z.object({ + resource_id: z.string(), +}) + +/** + * API key created successfully + */ +export const zPostDatasetsByResourceIdApiKeysResponse = zApiKeyItem + +export const zDeleteDatasetsByResourceIdApiKeysByApiKeyIdPath = z.object({ + resource_id: z.string(), + api_key_id: z.string(), +}) + +/** + * API key deleted successfully + */ +export const zDeleteDatasetsByResourceIdApiKeysByApiKeyIdResponse = z.record( + z.string(), + z.unknown(), +) diff --git a/packages/contracts/generated/api/console/email-code-login/orpc.gen.ts b/packages/contracts/generated/api/console/email-code-login/orpc.gen.ts new file mode 100644 index 0000000000..54edabc29f --- /dev/null +++ b/packages/contracts/generated/api/console/email-code-login/orpc.gen.ts @@ -0,0 +1,46 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zPostEmailCodeLoginBody, + zPostEmailCodeLoginResponse, + zPostEmailCodeLoginValidityBody, + zPostEmailCodeLoginValidityResponse, +} from './zod.gen' + +export const post = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postEmailCodeLoginValidity', + path: '/email-code-login/validity', + tags: ['console'], + }) + .input(z.object({ body: zPostEmailCodeLoginValidityBody })) + .output(zPostEmailCodeLoginValidityResponse) + +export const validity = { + post, +} + +export const post2 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postEmailCodeLogin', + path: '/email-code-login', + tags: ['console'], + }) + .input(z.object({ body: zPostEmailCodeLoginBody })) + .output(zPostEmailCodeLoginResponse) + +export const emailCodeLogin = { + post: post2, + validity, +} + +export const contract = { + emailCodeLogin, +} diff --git a/packages/contracts/generated/api/console/email-code-login/types.gen.ts b/packages/contracts/generated/api/console/email-code-login/types.gen.ts new file mode 100644 index 0000000000..851a8d568d --- /dev/null +++ b/packages/contracts/generated/api/console/email-code-login/types.gen.ts @@ -0,0 +1,49 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type EmailPayload = { + email: string + language?: string | null +} + +export type EmailCodeLoginPayload = { + code: string + email: string + language?: string | null + token: string +} + +export type PostEmailCodeLoginData = { + body: EmailPayload + path?: never + query?: never + url: '/email-code-login' +} + +export type PostEmailCodeLoginResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostEmailCodeLoginResponse + = PostEmailCodeLoginResponses[keyof PostEmailCodeLoginResponses] + +export type PostEmailCodeLoginValidityData = { + body: EmailCodeLoginPayload + path?: never + query?: never + url: '/email-code-login/validity' +} + +export type PostEmailCodeLoginValidityResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostEmailCodeLoginValidityResponse + = PostEmailCodeLoginValidityResponses[keyof PostEmailCodeLoginValidityResponses] diff --git a/packages/contracts/generated/api/console/email-code-login/zod.gen.ts b/packages/contracts/generated/api/console/email-code-login/zod.gen.ts new file mode 100644 index 0000000000..0ff511c722 --- /dev/null +++ b/packages/contracts/generated/api/console/email-code-login/zod.gen.ts @@ -0,0 +1,35 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * EmailPayload + */ +export const zEmailPayload = z.object({ + email: z.string(), + language: z.string().nullish(), +}) + +/** + * EmailCodeLoginPayload + */ +export const zEmailCodeLoginPayload = z.object({ + code: z.string(), + email: z.string(), + language: z.string().nullish(), + token: z.string(), +}) + +export const zPostEmailCodeLoginBody = zEmailPayload + +/** + * Success + */ +export const zPostEmailCodeLoginResponse = z.record(z.string(), z.unknown()) + +export const zPostEmailCodeLoginValidityBody = zEmailCodeLoginPayload + +/** + * Success + */ +export const zPostEmailCodeLoginValidityResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/api/console/email-register/orpc.gen.ts b/packages/contracts/generated/api/console/email-register/orpc.gen.ts new file mode 100644 index 0000000000..0bd724aba9 --- /dev/null +++ b/packages/contracts/generated/api/console/email-register/orpc.gen.ts @@ -0,0 +1,57 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' + +import { + zPostEmailRegisterResponse, + zPostEmailRegisterSendEmailResponse, + zPostEmailRegisterValidityResponse, +} from './zod.gen' + +export const post = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postEmailRegisterSendEmail', + path: '/email-register/send-email', + tags: ['console'], + }) + .output(zPostEmailRegisterSendEmailResponse) + +export const sendEmail = { + post, +} + +export const post2 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postEmailRegisterValidity', + path: '/email-register/validity', + tags: ['console'], + }) + .output(zPostEmailRegisterValidityResponse) + +export const validity = { + post: post2, +} + +export const post3 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postEmailRegister', + path: '/email-register', + tags: ['console'], + }) + .output(zPostEmailRegisterResponse) + +export const emailRegister = { + post: post3, + sendEmail, + validity, +} + +export const contract = { + emailRegister, +} diff --git a/packages/contracts/generated/api/console/email-register/types.gen.ts b/packages/contracts/generated/api/console/email-register/types.gen.ts new file mode 100644 index 0000000000..3fe5129fbf --- /dev/null +++ b/packages/contracts/generated/api/console/email-register/types.gen.ts @@ -0,0 +1,52 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type PostEmailRegisterData = { + body?: never + path?: never + query?: never + url: '/email-register' +} + +export type PostEmailRegisterResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostEmailRegisterResponse = PostEmailRegisterResponses[keyof PostEmailRegisterResponses] + +export type PostEmailRegisterSendEmailData = { + body?: never + path?: never + query?: never + url: '/email-register/send-email' +} + +export type PostEmailRegisterSendEmailResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostEmailRegisterSendEmailResponse + = PostEmailRegisterSendEmailResponses[keyof PostEmailRegisterSendEmailResponses] + +export type PostEmailRegisterValidityData = { + body?: never + path?: never + query?: never + url: '/email-register/validity' +} + +export type PostEmailRegisterValidityResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostEmailRegisterValidityResponse + = PostEmailRegisterValidityResponses[keyof PostEmailRegisterValidityResponses] diff --git a/packages/contracts/generated/api/console/email-register/zod.gen.ts b/packages/contracts/generated/api/console/email-register/zod.gen.ts new file mode 100644 index 0000000000..11720317f2 --- /dev/null +++ b/packages/contracts/generated/api/console/email-register/zod.gen.ts @@ -0,0 +1,18 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * Success + */ +export const zPostEmailRegisterResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zPostEmailRegisterSendEmailResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zPostEmailRegisterValidityResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/api/console/explore/orpc.gen.ts b/packages/contracts/generated/api/console/explore/orpc.gen.ts new file mode 100644 index 0000000000..4b37a0a4fd --- /dev/null +++ b/packages/contracts/generated/api/console/explore/orpc.gen.ts @@ -0,0 +1,70 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zGetExploreAppsByAppIdPath, + zGetExploreAppsByAppIdResponse, + zGetExploreAppsQuery, + zGetExploreAppsResponse, + zGetExploreBannersResponse, +} from './zod.gen' + +export const get = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getExploreAppsByAppId', + path: '/explore/apps/{app_id}', + tags: ['console'], + }) + .input(z.object({ params: zGetExploreAppsByAppIdPath })) + .output(zGetExploreAppsByAppIdResponse) + +export const byAppId = { + get, +} + +export const get2 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getExploreApps', + path: '/explore/apps', + tags: ['console'], + }) + .input(z.object({ query: zGetExploreAppsQuery.optional() })) + .output(zGetExploreAppsResponse) + +export const apps = { + get: get2, + byAppId, +} + +/** + * Get banner list + */ +export const get3 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getExploreBanners', + path: '/explore/banners', + summary: 'Get banner list', + tags: ['default'], + }) + .output(zGetExploreBannersResponse) + +export const banners = { + get: get3, +} + +export const explore = { + apps, + banners, +} + +export const contract = { + explore, +} diff --git a/packages/contracts/generated/api/console/explore/types.gen.ts b/packages/contracts/generated/api/console/explore/types.gen.ts new file mode 100644 index 0000000000..db56dbdac0 --- /dev/null +++ b/packages/contracts/generated/api/console/explore/types.gen.ts @@ -0,0 +1,80 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type RecommendedAppListResponse = { + categories: Array + recommended_apps: Array +} + +export type RecommendedAppResponse = { + app?: RecommendedAppInfoResponse + app_id: string + can_trial?: boolean | null + category?: string | null + copyright?: string | null + custom_disclaimer?: string | null + description?: string | null + is_listed?: boolean | null + position?: number | null + privacy_policy?: string | null +} + +export type RecommendedAppInfoResponse = { + icon?: string | null + icon_background?: string | null + icon_type?: string | null + id: string + mode?: string | null + name?: string | null +} + +export type GetExploreAppsData = { + body?: never + path?: never + query?: { + language?: string | null + } + url: '/explore/apps' +} + +export type GetExploreAppsResponses = { + 200: RecommendedAppListResponse +} + +export type GetExploreAppsResponse = GetExploreAppsResponses[keyof GetExploreAppsResponses] + +export type GetExploreAppsByAppIdData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/explore/apps/{app_id}' +} + +export type GetExploreAppsByAppIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetExploreAppsByAppIdResponse + = GetExploreAppsByAppIdResponses[keyof GetExploreAppsByAppIdResponses] + +export type GetExploreBannersData = { + body?: never + path?: never + query?: never + url: '/explore/banners' +} + +export type GetExploreBannersResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetExploreBannersResponse = GetExploreBannersResponses[keyof GetExploreBannersResponses] diff --git a/packages/contracts/generated/api/console/explore/zod.gen.ts b/packages/contracts/generated/api/console/explore/zod.gen.ts new file mode 100644 index 0000000000..2ceb54e7bd --- /dev/null +++ b/packages/contracts/generated/api/console/explore/zod.gen.ts @@ -0,0 +1,62 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * RecommendedAppInfoResponse + */ +export const zRecommendedAppInfoResponse = z.object({ + icon: z.string().nullish(), + icon_background: z.string().nullish(), + icon_type: z.string().nullish(), + id: z.string(), + mode: z.string().nullish(), + name: z.string().nullish(), +}) + +/** + * RecommendedAppResponse + */ +export const zRecommendedAppResponse = z.object({ + app: zRecommendedAppInfoResponse.optional(), + app_id: z.string(), + can_trial: z.boolean().nullish(), + category: z.string().nullish(), + copyright: z.string().nullish(), + custom_disclaimer: z.string().nullish(), + description: z.string().nullish(), + is_listed: z.boolean().nullish(), + position: z.int().nullish(), + privacy_policy: z.string().nullish(), +}) + +/** + * RecommendedAppListResponse + */ +export const zRecommendedAppListResponse = z.object({ + categories: z.array(z.string()), + recommended_apps: z.array(zRecommendedAppResponse), +}) + +export const zGetExploreAppsQuery = z.object({ + language: z.string().nullish(), +}) + +/** + * Success + */ +export const zGetExploreAppsResponse = zRecommendedAppListResponse + +export const zGetExploreAppsByAppIdPath = z.object({ + app_id: z.string(), +}) + +/** + * Success + */ +export const zGetExploreAppsByAppIdResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zGetExploreBannersResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/api/console/features/orpc.gen.ts b/packages/contracts/generated/api/console/features/orpc.gen.ts new file mode 100644 index 0000000000..e24ec3d964 --- /dev/null +++ b/packages/contracts/generated/api/console/features/orpc.gen.ts @@ -0,0 +1,30 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' + +import { zGetFeaturesResponse } from './zod.gen' + +/** + * Get feature configuration for current tenant + * + * Get feature configuration for current tenant + */ +export const get = oc + .route({ + description: 'Get feature configuration for current tenant', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getFeatures', + path: '/features', + summary: 'Get feature configuration for current tenant', + tags: ['console'], + }) + .output(zGetFeaturesResponse) + +export const features = { + get, +} + +export const contract = { + features, +} diff --git a/packages/contracts/generated/api/console/features/types.gen.ts b/packages/contracts/generated/api/console/features/types.gen.ts new file mode 100644 index 0000000000..eed18d5344 --- /dev/null +++ b/packages/contracts/generated/api/console/features/types.gen.ts @@ -0,0 +1,22 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type FeatureResponse = { + [key: string]: unknown +} + +export type GetFeaturesData = { + body?: never + path?: never + query?: never + url: '/features' +} + +export type GetFeaturesResponses = { + 200: FeatureResponse +} + +export type GetFeaturesResponse = GetFeaturesResponses[keyof GetFeaturesResponses] diff --git a/packages/contracts/generated/api/console/features/zod.gen.ts b/packages/contracts/generated/api/console/features/zod.gen.ts new file mode 100644 index 0000000000..1e967fb879 --- /dev/null +++ b/packages/contracts/generated/api/console/features/zod.gen.ts @@ -0,0 +1,10 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +export const zFeatureResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zGetFeaturesResponse = zFeatureResponse diff --git a/packages/contracts/generated/api/console/files/orpc.gen.ts b/packages/contracts/generated/api/console/files/orpc.gen.ts new file mode 100644 index 0000000000..2ee949edc2 --- /dev/null +++ b/packages/contracts/generated/api/console/files/orpc.gen.ts @@ -0,0 +1,81 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zGetFilesByFileIdPreviewPath, + zGetFilesByFileIdPreviewResponse, + zGetFilesSupportTypeResponse, + zGetFilesUploadResponse, + zPostFilesUploadResponse, +} from './zod.gen' + +export const get = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getFilesSupportType', + path: '/files/support-type', + tags: ['console'], + }) + .output(zGetFilesSupportTypeResponse) + +export const supportType = { + get, +} + +export const get2 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getFilesUpload', + path: '/files/upload', + tags: ['console'], + }) + .output(zGetFilesUploadResponse) + +export const post = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postFilesUpload', + path: '/files/upload', + successStatus: 201, + tags: ['console'], + }) + .output(zPostFilesUploadResponse) + +export const upload = { + get: get2, + post, +} + +export const get3 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getFilesByFileIdPreview', + path: '/files/{file_id}/preview', + tags: ['console'], + }) + .input(z.object({ params: zGetFilesByFileIdPreviewPath })) + .output(zGetFilesByFileIdPreviewResponse) + +export const preview = { + get: get3, +} + +export const byFileId = { + preview, +} + +export const files = { + supportType, + upload, + byFileId, +} + +export const contract = { + files, +} diff --git a/packages/contracts/generated/api/console/files/types.gen.ts b/packages/contracts/generated/api/console/files/types.gen.ts new file mode 100644 index 0000000000..5620235461 --- /dev/null +++ b/packages/contracts/generated/api/console/files/types.gen.ts @@ -0,0 +1,95 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type UploadConfig = { + attachment_image_file_size_limit?: number | null + audio_file_size_limit: number + batch_count_limit: number + file_size_limit: number + file_upload_limit?: number | null + image_file_batch_limit: number + image_file_size_limit: number + single_chunk_attachment_limit: number + video_file_size_limit: number + workflow_file_upload_limit: number +} + +export type FileResponse = { + conversation_id?: string | null + created_at?: number | null + created_by?: string | null + extension?: string | null + file_key?: string | null + id: string + mime_type?: string | null + name: string + original_url?: string | null + preview_url?: string | null + size: number + source_url?: string | null + tenant_id?: string | null + user_id?: string | null +} + +export type GetFilesSupportTypeData = { + body?: never + path?: never + query?: never + url: '/files/support-type' +} + +export type GetFilesSupportTypeResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetFilesSupportTypeResponse + = GetFilesSupportTypeResponses[keyof GetFilesSupportTypeResponses] + +export type GetFilesUploadData = { + body?: never + path?: never + query?: never + url: '/files/upload' +} + +export type GetFilesUploadResponses = { + 200: UploadConfig +} + +export type GetFilesUploadResponse = GetFilesUploadResponses[keyof GetFilesUploadResponses] + +export type PostFilesUploadData = { + body?: never + path?: never + query?: never + url: '/files/upload' +} + +export type PostFilesUploadResponses = { + 201: FileResponse +} + +export type PostFilesUploadResponse = PostFilesUploadResponses[keyof PostFilesUploadResponses] + +export type GetFilesByFileIdPreviewData = { + body?: never + path: { + file_id: string + } + query?: never + url: '/files/{file_id}/preview' +} + +export type GetFilesByFileIdPreviewResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetFilesByFileIdPreviewResponse + = GetFilesByFileIdPreviewResponses[keyof GetFilesByFileIdPreviewResponses] diff --git a/packages/contracts/generated/api/console/files/zod.gen.ts b/packages/contracts/generated/api/console/files/zod.gen.ts new file mode 100644 index 0000000000..d61e7795ce --- /dev/null +++ b/packages/contracts/generated/api/console/files/zod.gen.ts @@ -0,0 +1,63 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * UploadConfig + */ +export const zUploadConfig = z.object({ + attachment_image_file_size_limit: z.int().nullish(), + audio_file_size_limit: z.int(), + batch_count_limit: z.int(), + file_size_limit: z.int(), + file_upload_limit: z.int().nullish(), + image_file_batch_limit: z.int(), + image_file_size_limit: z.int(), + single_chunk_attachment_limit: z.int(), + video_file_size_limit: z.int(), + workflow_file_upload_limit: z.int(), +}) + +/** + * FileResponse + */ +export const zFileResponse = z.object({ + conversation_id: z.string().nullish(), + created_at: z.int().nullish(), + created_by: z.string().nullish(), + extension: z.string().nullish(), + file_key: z.string().nullish(), + id: z.string(), + mime_type: z.string().nullish(), + name: z.string(), + original_url: z.string().nullish(), + preview_url: z.string().nullish(), + size: z.int(), + source_url: z.string().nullish(), + tenant_id: z.string().nullish(), + user_id: z.string().nullish(), +}) + +/** + * Success + */ +export const zGetFilesSupportTypeResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zGetFilesUploadResponse = zUploadConfig + +/** + * File uploaded successfully + */ +export const zPostFilesUploadResponse = zFileResponse + +export const zGetFilesByFileIdPreviewPath = z.object({ + file_id: z.string(), +}) + +/** + * Success + */ +export const zGetFilesByFileIdPreviewResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/api/console/forgot-password/orpc.gen.ts b/packages/contracts/generated/api/console/forgot-password/orpc.gen.ts new file mode 100644 index 0000000000..a5a33f407b --- /dev/null +++ b/packages/contracts/generated/api/console/forgot-password/orpc.gen.ts @@ -0,0 +1,76 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zPostForgotPasswordBody, + zPostForgotPasswordResetsBody, + zPostForgotPasswordResetsResponse, + zPostForgotPasswordResponse, + zPostForgotPasswordValidityBody, + zPostForgotPasswordValidityResponse, +} from './zod.gen' + +/** + * Reset password with verification token + */ +export const post = oc + .route({ + description: 'Reset password with verification token', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postForgotPasswordResets', + path: '/forgot-password/resets', + tags: ['console'], + }) + .input(z.object({ body: zPostForgotPasswordResetsBody })) + .output(zPostForgotPasswordResetsResponse) + +export const resets = { + post, +} + +/** + * Verify password reset code + */ +export const post2 = oc + .route({ + description: 'Verify password reset code', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postForgotPasswordValidity', + path: '/forgot-password/validity', + tags: ['console'], + }) + .input(z.object({ body: zPostForgotPasswordValidityBody })) + .output(zPostForgotPasswordValidityResponse) + +export const validity = { + post: post2, +} + +/** + * Send password reset email + */ +export const post3 = oc + .route({ + description: 'Send password reset email', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postForgotPassword', + path: '/forgot-password', + tags: ['console'], + }) + .input(z.object({ body: zPostForgotPasswordBody })) + .output(zPostForgotPasswordResponse) + +export const forgotPassword = { + post: post3, + resets, + validity, +} + +export const contract = { + forgotPassword, +} diff --git a/packages/contracts/generated/api/console/forgot-password/types.gen.ts b/packages/contracts/generated/api/console/forgot-password/types.gen.ts new file mode 100644 index 0000000000..b58165c8eb --- /dev/null +++ b/packages/contracts/generated/api/console/forgot-password/types.gen.ts @@ -0,0 +1,106 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type ForgotPasswordSendPayload = { + email: string + language?: string | null +} + +export type ForgotPasswordEmailResponse = { + code?: string | null + data?: string | null + result: string +} + +export type ForgotPasswordResetPayload = { + new_password: string + password_confirm: string + token: string +} + +export type ForgotPasswordResetResponse = { + result: string +} + +export type ForgotPasswordCheckPayload = { + code: string + email: string + token: string +} + +export type ForgotPasswordCheckResponse = { + email: string + is_valid: boolean + token: string +} + +export type PostForgotPasswordData = { + body: ForgotPasswordSendPayload + path?: never + query?: never + url: '/forgot-password' +} + +export type PostForgotPasswordErrors = { + 400: { + [key: string]: unknown + } +} + +export type PostForgotPasswordError = PostForgotPasswordErrors[keyof PostForgotPasswordErrors] + +export type PostForgotPasswordResponses = { + 200: ForgotPasswordEmailResponse +} + +export type PostForgotPasswordResponse + = PostForgotPasswordResponses[keyof PostForgotPasswordResponses] + +export type PostForgotPasswordResetsData = { + body: ForgotPasswordResetPayload + path?: never + query?: never + url: '/forgot-password/resets' +} + +export type PostForgotPasswordResetsErrors = { + 400: { + [key: string]: unknown + } +} + +export type PostForgotPasswordResetsError + = PostForgotPasswordResetsErrors[keyof PostForgotPasswordResetsErrors] + +export type PostForgotPasswordResetsResponses = { + 200: ForgotPasswordResetResponse +} + +export type PostForgotPasswordResetsResponse + = PostForgotPasswordResetsResponses[keyof PostForgotPasswordResetsResponses] + +export type PostForgotPasswordValidityData = { + body: ForgotPasswordCheckPayload + path?: never + query?: never + url: '/forgot-password/validity' +} + +export type PostForgotPasswordValidityErrors = { + 400: { + [key: string]: unknown + } +} + +export type PostForgotPasswordValidityError + = PostForgotPasswordValidityErrors[keyof PostForgotPasswordValidityErrors] + +export type PostForgotPasswordValidityResponses = { + 200: ForgotPasswordCheckResponse +} + +export type PostForgotPasswordValidityResponse + = PostForgotPasswordValidityResponses[keyof PostForgotPasswordValidityResponses] diff --git a/packages/contracts/generated/api/console/forgot-password/zod.gen.ts b/packages/contracts/generated/api/console/forgot-password/zod.gen.ts new file mode 100644 index 0000000000..fdbb7b033d --- /dev/null +++ b/packages/contracts/generated/api/console/forgot-password/zod.gen.ts @@ -0,0 +1,75 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * ForgotPasswordSendPayload + */ +export const zForgotPasswordSendPayload = z.object({ + email: z.string(), + language: z.string().nullish(), +}) + +/** + * ForgotPasswordEmailResponse + */ +export const zForgotPasswordEmailResponse = z.object({ + code: z.string().nullish(), + data: z.string().nullish(), + result: z.string(), +}) + +/** + * ForgotPasswordResetPayload + */ +export const zForgotPasswordResetPayload = z.object({ + new_password: z.string(), + password_confirm: z.string(), + token: z.string().min(1), +}) + +/** + * ForgotPasswordResetResponse + */ +export const zForgotPasswordResetResponse = z.object({ + result: z.string(), +}) + +/** + * ForgotPasswordCheckPayload + */ +export const zForgotPasswordCheckPayload = z.object({ + code: z.string(), + email: z.string(), + token: z.string().min(1), +}) + +/** + * ForgotPasswordCheckResponse + */ +export const zForgotPasswordCheckResponse = z.object({ + email: z.string(), + is_valid: z.boolean(), + token: z.string(), +}) + +export const zPostForgotPasswordBody = zForgotPasswordSendPayload + +/** + * Email sent successfully + */ +export const zPostForgotPasswordResponse = zForgotPasswordEmailResponse + +export const zPostForgotPasswordResetsBody = zForgotPasswordResetPayload + +/** + * Password reset successfully + */ +export const zPostForgotPasswordResetsResponse = zForgotPasswordResetResponse + +export const zPostForgotPasswordValidityBody = zForgotPasswordCheckPayload + +/** + * Code verified successfully + */ +export const zPostForgotPasswordValidityResponse = zForgotPasswordCheckResponse diff --git a/packages/contracts/generated/api/console/form/orpc.gen.ts b/packages/contracts/generated/api/console/form/orpc.gen.ts new file mode 100644 index 0000000000..f6d76b28c0 --- /dev/null +++ b/packages/contracts/generated/api/console/form/orpc.gen.ts @@ -0,0 +1,73 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zGetFormHumanInputByFormTokenPath, + zGetFormHumanInputByFormTokenResponse, + zPostFormHumanInputByFormTokenPath, + zPostFormHumanInputByFormTokenResponse, +} from './zod.gen' + +/** + * Get human input form definition by form token + * + * GET /console/api/form/human_input/ + */ +export const get = oc + .route({ + description: 'GET /console/api/form/human_input/', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getFormHumanInputByFormToken', + path: '/form/human_input/{form_token}', + summary: 'Get human input form definition by form token', + tags: ['console'], + }) + .input(z.object({ params: zGetFormHumanInputByFormTokenPath })) + .output(zGetFormHumanInputByFormTokenResponse) + +/** + * Submit human input form by form token + * + * POST /console/api/form/human_input/ + * + * Request body: + * { + * "inputs": { + * "content": "User input content" + * }, + * "action": "Approve" + * } + */ +export const post = oc + .route({ + description: + 'POST /console/api/form/human_input/\n\nRequest body:\n{\n "inputs": {\n "content": "User input content"\n },\n "action": "Approve"\n}', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postFormHumanInputByFormToken', + path: '/form/human_input/{form_token}', + summary: 'Submit human input form by form token', + tags: ['console'], + }) + .input(z.object({ params: zPostFormHumanInputByFormTokenPath })) + .output(zPostFormHumanInputByFormTokenResponse) + +export const byFormToken = { + get, + post, +} + +export const humanInput = { + byFormToken, +} + +export const form = { + humanInput, +} + +export const contract = { + form, +} diff --git a/packages/contracts/generated/api/console/form/types.gen.ts b/packages/contracts/generated/api/console/form/types.gen.ts new file mode 100644 index 0000000000..80c0c1a474 --- /dev/null +++ b/packages/contracts/generated/api/console/form/types.gen.ts @@ -0,0 +1,41 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type GetFormHumanInputByFormTokenData = { + body?: never + path: { + form_token: string + } + query?: never + url: '/form/human_input/{form_token}' +} + +export type GetFormHumanInputByFormTokenResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetFormHumanInputByFormTokenResponse + = GetFormHumanInputByFormTokenResponses[keyof GetFormHumanInputByFormTokenResponses] + +export type PostFormHumanInputByFormTokenData = { + body?: never + path: { + form_token: string + } + query?: never + url: '/form/human_input/{form_token}' +} + +export type PostFormHumanInputByFormTokenResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostFormHumanInputByFormTokenResponse + = PostFormHumanInputByFormTokenResponses[keyof PostFormHumanInputByFormTokenResponses] diff --git a/packages/contracts/generated/api/console/form/zod.gen.ts b/packages/contracts/generated/api/console/form/zod.gen.ts new file mode 100644 index 0000000000..840b04383e --- /dev/null +++ b/packages/contracts/generated/api/console/form/zod.gen.ts @@ -0,0 +1,21 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +export const zGetFormHumanInputByFormTokenPath = z.object({ + form_token: z.string(), +}) + +/** + * Success + */ +export const zGetFormHumanInputByFormTokenResponse = z.record(z.string(), z.unknown()) + +export const zPostFormHumanInputByFormTokenPath = z.object({ + form_token: z.string(), +}) + +/** + * Success + */ +export const zPostFormHumanInputByFormTokenResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/api/console/info/orpc.gen.ts b/packages/contracts/generated/api/console/info/orpc.gen.ts new file mode 100644 index 0000000000..4eb342e9cf --- /dev/null +++ b/packages/contracts/generated/api/console/info/orpc.gen.ts @@ -0,0 +1,23 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' + +import { zPostInfoResponse } from './zod.gen' + +export const post = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postInfo', + path: '/info', + tags: ['console'], + }) + .output(zPostInfoResponse) + +export const info = { + post, +} + +export const contract = { + info, +} diff --git a/packages/contracts/generated/api/console/info/types.gen.ts b/packages/contracts/generated/api/console/info/types.gen.ts new file mode 100644 index 0000000000..975f887a99 --- /dev/null +++ b/packages/contracts/generated/api/console/info/types.gen.ts @@ -0,0 +1,35 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type TenantInfoResponse = { + created_at?: number | null + custom_config?: { + [key: string]: unknown + } | null + id: string + in_trial?: boolean | null + name?: string | null + next_credit_reset_date?: number | null + plan?: string | null + role?: string | null + status?: string | null + trial_credits?: number | null + trial_credits_used?: number | null + trial_end_reason?: string | null +} + +export type PostInfoData = { + body?: never + path?: never + query?: never + url: '/info' +} + +export type PostInfoResponses = { + 200: TenantInfoResponse +} + +export type PostInfoResponse = PostInfoResponses[keyof PostInfoResponses] diff --git a/packages/contracts/generated/api/console/info/zod.gen.ts b/packages/contracts/generated/api/console/info/zod.gen.ts new file mode 100644 index 0000000000..adb1ea23f2 --- /dev/null +++ b/packages/contracts/generated/api/console/info/zod.gen.ts @@ -0,0 +1,26 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * TenantInfoResponse + */ +export const zTenantInfoResponse = z.object({ + created_at: z.int().nullish(), + custom_config: z.record(z.string(), z.unknown()).nullish(), + id: z.string(), + in_trial: z.boolean().nullish(), + name: z.string().nullish(), + next_credit_reset_date: z.int().nullish(), + plan: z.string().nullish(), + role: z.string().nullish(), + status: z.string().nullish(), + trial_credits: z.int().nullish(), + trial_credits_used: z.int().nullish(), + trial_end_reason: z.string().nullish(), +}) + +/** + * Success + */ +export const zPostInfoResponse = zTenantInfoResponse diff --git a/packages/contracts/generated/api/console/installed-apps/orpc.gen.ts b/packages/contracts/generated/api/console/installed-apps/orpc.gen.ts new file mode 100644 index 0000000000..c2b0b2eb37 --- /dev/null +++ b/packages/contracts/generated/api/console/installed-apps/orpc.gen.ts @@ -0,0 +1,572 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zDeleteInstalledAppsByInstalledAppIdConversationsByCIdPath, + zDeleteInstalledAppsByInstalledAppIdConversationsByCIdResponse, + zDeleteInstalledAppsByInstalledAppIdPath, + zDeleteInstalledAppsByInstalledAppIdResponse, + zDeleteInstalledAppsByInstalledAppIdSavedMessagesByMessageIdPath, + zDeleteInstalledAppsByInstalledAppIdSavedMessagesByMessageIdResponse, + zGetInstalledAppsByInstalledAppIdConversationsPath, + zGetInstalledAppsByInstalledAppIdConversationsQuery, + zGetInstalledAppsByInstalledAppIdConversationsResponse, + zGetInstalledAppsByInstalledAppIdMessagesByMessageIdMoreLikeThisPath, + zGetInstalledAppsByInstalledAppIdMessagesByMessageIdMoreLikeThisQuery, + zGetInstalledAppsByInstalledAppIdMessagesByMessageIdMoreLikeThisResponse, + zGetInstalledAppsByInstalledAppIdMessagesByMessageIdSuggestedQuestionsPath, + zGetInstalledAppsByInstalledAppIdMessagesByMessageIdSuggestedQuestionsResponse, + zGetInstalledAppsByInstalledAppIdMessagesPath, + zGetInstalledAppsByInstalledAppIdMessagesQuery, + zGetInstalledAppsByInstalledAppIdMessagesResponse, + zGetInstalledAppsByInstalledAppIdMetaPath, + zGetInstalledAppsByInstalledAppIdMetaResponse, + zGetInstalledAppsByInstalledAppIdParametersPath, + zGetInstalledAppsByInstalledAppIdParametersResponse, + zGetInstalledAppsByInstalledAppIdSavedMessagesPath, + zGetInstalledAppsByInstalledAppIdSavedMessagesQuery, + zGetInstalledAppsByInstalledAppIdSavedMessagesResponse, + zGetInstalledAppsResponse, + zPatchInstalledAppsByInstalledAppIdConversationsByCIdPinPath, + zPatchInstalledAppsByInstalledAppIdConversationsByCIdPinResponse, + zPatchInstalledAppsByInstalledAppIdConversationsByCIdUnpinPath, + zPatchInstalledAppsByInstalledAppIdConversationsByCIdUnpinResponse, + zPatchInstalledAppsByInstalledAppIdPath, + zPatchInstalledAppsByInstalledAppIdResponse, + zPostInstalledAppsByInstalledAppIdAudioToTextPath, + zPostInstalledAppsByInstalledAppIdAudioToTextResponse, + zPostInstalledAppsByInstalledAppIdChatMessagesBody, + zPostInstalledAppsByInstalledAppIdChatMessagesByTaskIdStopPath, + zPostInstalledAppsByInstalledAppIdChatMessagesByTaskIdStopResponse, + zPostInstalledAppsByInstalledAppIdChatMessagesPath, + zPostInstalledAppsByInstalledAppIdChatMessagesResponse, + zPostInstalledAppsByInstalledAppIdCompletionMessagesBody, + zPostInstalledAppsByInstalledAppIdCompletionMessagesByTaskIdStopPath, + zPostInstalledAppsByInstalledAppIdCompletionMessagesByTaskIdStopResponse, + zPostInstalledAppsByInstalledAppIdCompletionMessagesPath, + zPostInstalledAppsByInstalledAppIdCompletionMessagesResponse, + zPostInstalledAppsByInstalledAppIdConversationsByCIdNameBody, + zPostInstalledAppsByInstalledAppIdConversationsByCIdNamePath, + zPostInstalledAppsByInstalledAppIdConversationsByCIdNameResponse, + zPostInstalledAppsByInstalledAppIdMessagesByMessageIdFeedbacksBody, + zPostInstalledAppsByInstalledAppIdMessagesByMessageIdFeedbacksPath, + zPostInstalledAppsByInstalledAppIdMessagesByMessageIdFeedbacksResponse, + zPostInstalledAppsByInstalledAppIdSavedMessagesBody, + zPostInstalledAppsByInstalledAppIdSavedMessagesPath, + zPostInstalledAppsByInstalledAppIdSavedMessagesResponse, + zPostInstalledAppsByInstalledAppIdTextToAudioBody, + zPostInstalledAppsByInstalledAppIdTextToAudioPath, + zPostInstalledAppsByInstalledAppIdTextToAudioResponse, + zPostInstalledAppsByInstalledAppIdWorkflowsRunBody, + zPostInstalledAppsByInstalledAppIdWorkflowsRunPath, + zPostInstalledAppsByInstalledAppIdWorkflowsRunResponse, + zPostInstalledAppsByInstalledAppIdWorkflowsTasksByTaskIdStopPath, + zPostInstalledAppsByInstalledAppIdWorkflowsTasksByTaskIdStopResponse, + zPostInstalledAppsResponse, +} from './zod.gen' + +export const post = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postInstalledAppsByInstalledAppIdAudioToText', + path: '/installed-apps/{installed_app_id}/audio-to-text', + tags: ['console'], + }) + .input(z.object({ params: zPostInstalledAppsByInstalledAppIdAudioToTextPath })) + .output(zPostInstalledAppsByInstalledAppIdAudioToTextResponse) + +export const audioToText = { + post, +} + +export const post2 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postInstalledAppsByInstalledAppIdChatMessagesByTaskIdStop', + path: '/installed-apps/{installed_app_id}/chat-messages/{task_id}/stop', + tags: ['console'], + }) + .input(z.object({ params: zPostInstalledAppsByInstalledAppIdChatMessagesByTaskIdStopPath })) + .output(zPostInstalledAppsByInstalledAppIdChatMessagesByTaskIdStopResponse) + +export const stop = { + post: post2, +} + +export const byTaskId = { + stop, +} + +export const post3 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postInstalledAppsByInstalledAppIdChatMessages', + path: '/installed-apps/{installed_app_id}/chat-messages', + tags: ['console'], + }) + .input( + z.object({ + body: zPostInstalledAppsByInstalledAppIdChatMessagesBody, + params: zPostInstalledAppsByInstalledAppIdChatMessagesPath, + }), + ) + .output(zPostInstalledAppsByInstalledAppIdChatMessagesResponse) + +export const chatMessages = { + post: post3, + byTaskId, +} + +export const post4 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postInstalledAppsByInstalledAppIdCompletionMessagesByTaskIdStop', + path: '/installed-apps/{installed_app_id}/completion-messages/{task_id}/stop', + tags: ['console'], + }) + .input(z.object({ params: zPostInstalledAppsByInstalledAppIdCompletionMessagesByTaskIdStopPath })) + .output(zPostInstalledAppsByInstalledAppIdCompletionMessagesByTaskIdStopResponse) + +export const stop2 = { + post: post4, +} + +export const byTaskId2 = { + stop: stop2, +} + +export const post5 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postInstalledAppsByInstalledAppIdCompletionMessages', + path: '/installed-apps/{installed_app_id}/completion-messages', + tags: ['console'], + }) + .input( + z.object({ + body: zPostInstalledAppsByInstalledAppIdCompletionMessagesBody, + params: zPostInstalledAppsByInstalledAppIdCompletionMessagesPath, + }), + ) + .output(zPostInstalledAppsByInstalledAppIdCompletionMessagesResponse) + +export const completionMessages = { + post: post5, + byTaskId: byTaskId2, +} + +export const post6 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postInstalledAppsByInstalledAppIdConversationsByCIdName', + path: '/installed-apps/{installed_app_id}/conversations/{c_id}/name', + tags: ['console'], + }) + .input( + z.object({ + body: zPostInstalledAppsByInstalledAppIdConversationsByCIdNameBody, + params: zPostInstalledAppsByInstalledAppIdConversationsByCIdNamePath, + }), + ) + .output(zPostInstalledAppsByInstalledAppIdConversationsByCIdNameResponse) + +export const name = { + post: post6, +} + +export const patch = oc + .route({ + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchInstalledAppsByInstalledAppIdConversationsByCIdPin', + path: '/installed-apps/{installed_app_id}/conversations/{c_id}/pin', + tags: ['console'], + }) + .input(z.object({ params: zPatchInstalledAppsByInstalledAppIdConversationsByCIdPinPath })) + .output(zPatchInstalledAppsByInstalledAppIdConversationsByCIdPinResponse) + +export const pin = { + patch, +} + +export const patch2 = oc + .route({ + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchInstalledAppsByInstalledAppIdConversationsByCIdUnpin', + path: '/installed-apps/{installed_app_id}/conversations/{c_id}/unpin', + tags: ['console'], + }) + .input(z.object({ params: zPatchInstalledAppsByInstalledAppIdConversationsByCIdUnpinPath })) + .output(zPatchInstalledAppsByInstalledAppIdConversationsByCIdUnpinResponse) + +export const unpin = { + patch: patch2, +} + +export const delete_ = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteInstalledAppsByInstalledAppIdConversationsByCId', + path: '/installed-apps/{installed_app_id}/conversations/{c_id}', + tags: ['console'], + }) + .input(z.object({ params: zDeleteInstalledAppsByInstalledAppIdConversationsByCIdPath })) + .output(zDeleteInstalledAppsByInstalledAppIdConversationsByCIdResponse) + +export const byCId = { + delete: delete_, + name, + pin, + unpin, +} + +export const get = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getInstalledAppsByInstalledAppIdConversations', + path: '/installed-apps/{installed_app_id}/conversations', + tags: ['console'], + }) + .input( + z.object({ + params: zGetInstalledAppsByInstalledAppIdConversationsPath, + query: zGetInstalledAppsByInstalledAppIdConversationsQuery.optional(), + }), + ) + .output(zGetInstalledAppsByInstalledAppIdConversationsResponse) + +export const conversations = { + get, + byCId, +} + +export const post7 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postInstalledAppsByInstalledAppIdMessagesByMessageIdFeedbacks', + path: '/installed-apps/{installed_app_id}/messages/{message_id}/feedbacks', + tags: ['console'], + }) + .input( + z.object({ + body: zPostInstalledAppsByInstalledAppIdMessagesByMessageIdFeedbacksBody, + params: zPostInstalledAppsByInstalledAppIdMessagesByMessageIdFeedbacksPath, + }), + ) + .output(zPostInstalledAppsByInstalledAppIdMessagesByMessageIdFeedbacksResponse) + +export const feedbacks = { + post: post7, +} + +export const get2 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getInstalledAppsByInstalledAppIdMessagesByMessageIdMoreLikeThis', + path: '/installed-apps/{installed_app_id}/messages/{message_id}/more-like-this', + tags: ['console'], + }) + .input( + z.object({ + params: zGetInstalledAppsByInstalledAppIdMessagesByMessageIdMoreLikeThisPath, + query: zGetInstalledAppsByInstalledAppIdMessagesByMessageIdMoreLikeThisQuery, + }), + ) + .output(zGetInstalledAppsByInstalledAppIdMessagesByMessageIdMoreLikeThisResponse) + +export const moreLikeThis = { + get: get2, +} + +export const get3 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getInstalledAppsByInstalledAppIdMessagesByMessageIdSuggestedQuestions', + path: '/installed-apps/{installed_app_id}/messages/{message_id}/suggested-questions', + tags: ['console'], + }) + .input( + z.object({ + params: zGetInstalledAppsByInstalledAppIdMessagesByMessageIdSuggestedQuestionsPath, + }), + ) + .output(zGetInstalledAppsByInstalledAppIdMessagesByMessageIdSuggestedQuestionsResponse) + +export const suggestedQuestions = { + get: get3, +} + +export const byMessageId = { + feedbacks, + moreLikeThis, + suggestedQuestions, +} + +export const get4 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getInstalledAppsByInstalledAppIdMessages', + path: '/installed-apps/{installed_app_id}/messages', + tags: ['console'], + }) + .input( + z.object({ + params: zGetInstalledAppsByInstalledAppIdMessagesPath, + query: zGetInstalledAppsByInstalledAppIdMessagesQuery, + }), + ) + .output(zGetInstalledAppsByInstalledAppIdMessagesResponse) + +export const messages = { + get: get4, + byMessageId, +} + +/** + * Get app meta + */ +export const get5 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getInstalledAppsByInstalledAppIdMeta', + path: '/installed-apps/{installed_app_id}/meta', + summary: 'Get app meta', + tags: ['console'], + }) + .input(z.object({ params: zGetInstalledAppsByInstalledAppIdMetaPath })) + .output(zGetInstalledAppsByInstalledAppIdMetaResponse) + +export const meta = { + get: get5, +} + +/** + * Retrieve app parameters + */ +export const get6 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getInstalledAppsByInstalledAppIdParameters', + path: '/installed-apps/{installed_app_id}/parameters', + summary: 'Retrieve app parameters', + tags: ['console'], + }) + .input(z.object({ params: zGetInstalledAppsByInstalledAppIdParametersPath })) + .output(zGetInstalledAppsByInstalledAppIdParametersResponse) + +export const parameters = { + get: get6, +} + +export const delete2 = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteInstalledAppsByInstalledAppIdSavedMessagesByMessageId', + path: '/installed-apps/{installed_app_id}/saved-messages/{message_id}', + tags: ['console'], + }) + .input(z.object({ params: zDeleteInstalledAppsByInstalledAppIdSavedMessagesByMessageIdPath })) + .output(zDeleteInstalledAppsByInstalledAppIdSavedMessagesByMessageIdResponse) + +export const byMessageId2 = { + delete: delete2, +} + +export const get7 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getInstalledAppsByInstalledAppIdSavedMessages', + path: '/installed-apps/{installed_app_id}/saved-messages', + tags: ['console'], + }) + .input( + z.object({ + params: zGetInstalledAppsByInstalledAppIdSavedMessagesPath, + query: zGetInstalledAppsByInstalledAppIdSavedMessagesQuery.optional(), + }), + ) + .output(zGetInstalledAppsByInstalledAppIdSavedMessagesResponse) + +export const post8 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postInstalledAppsByInstalledAppIdSavedMessages', + path: '/installed-apps/{installed_app_id}/saved-messages', + tags: ['console'], + }) + .input( + z.object({ + body: zPostInstalledAppsByInstalledAppIdSavedMessagesBody, + params: zPostInstalledAppsByInstalledAppIdSavedMessagesPath, + }), + ) + .output(zPostInstalledAppsByInstalledAppIdSavedMessagesResponse) + +export const savedMessages = { + get: get7, + post: post8, + byMessageId: byMessageId2, +} + +export const post9 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postInstalledAppsByInstalledAppIdTextToAudio', + path: '/installed-apps/{installed_app_id}/text-to-audio', + tags: ['console'], + }) + .input( + z.object({ + body: zPostInstalledAppsByInstalledAppIdTextToAudioBody, + params: zPostInstalledAppsByInstalledAppIdTextToAudioPath, + }), + ) + .output(zPostInstalledAppsByInstalledAppIdTextToAudioResponse) + +export const textToAudio = { + post: post9, +} + +/** + * Run workflow + */ +export const post10 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postInstalledAppsByInstalledAppIdWorkflowsRun', + path: '/installed-apps/{installed_app_id}/workflows/run', + summary: 'Run workflow', + tags: ['console'], + }) + .input( + z.object({ + body: zPostInstalledAppsByInstalledAppIdWorkflowsRunBody, + params: zPostInstalledAppsByInstalledAppIdWorkflowsRunPath, + }), + ) + .output(zPostInstalledAppsByInstalledAppIdWorkflowsRunResponse) + +export const run = { + post: post10, +} + +/** + * Stop workflow task + */ +export const post11 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postInstalledAppsByInstalledAppIdWorkflowsTasksByTaskIdStop', + path: '/installed-apps/{installed_app_id}/workflows/tasks/{task_id}/stop', + summary: 'Stop workflow task', + tags: ['console'], + }) + .input(z.object({ params: zPostInstalledAppsByInstalledAppIdWorkflowsTasksByTaskIdStopPath })) + .output(zPostInstalledAppsByInstalledAppIdWorkflowsTasksByTaskIdStopResponse) + +export const stop3 = { + post: post11, +} + +export const byTaskId3 = { + stop: stop3, +} + +export const tasks = { + byTaskId: byTaskId3, +} + +export const workflows = { + run, + tasks, +} + +export const delete3 = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteInstalledAppsByInstalledAppId', + path: '/installed-apps/{installed_app_id}', + tags: ['console'], + }) + .input(z.object({ params: zDeleteInstalledAppsByInstalledAppIdPath })) + .output(zDeleteInstalledAppsByInstalledAppIdResponse) + +export const patch3 = oc + .route({ + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchInstalledAppsByInstalledAppId', + path: '/installed-apps/{installed_app_id}', + tags: ['console'], + }) + .input(z.object({ params: zPatchInstalledAppsByInstalledAppIdPath })) + .output(zPatchInstalledAppsByInstalledAppIdResponse) + +export const byInstalledAppId = { + delete: delete3, + patch: patch3, + audioToText, + chatMessages, + completionMessages, + conversations, + messages, + meta, + parameters, + savedMessages, + textToAudio, + workflows, +} + +export const get8 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getInstalledApps', + path: '/installed-apps', + tags: ['console'], + }) + .output(zGetInstalledAppsResponse) + +export const post12 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postInstalledApps', + path: '/installed-apps', + tags: ['console'], + }) + .output(zPostInstalledAppsResponse) + +export const installedApps = { + get: get8, + post: post12, + byInstalledAppId, +} + +export const contract = { + installedApps, +} diff --git a/packages/contracts/generated/api/console/installed-apps/types.gen.ts b/packages/contracts/generated/api/console/installed-apps/types.gen.ts new file mode 100644 index 0000000000..897fc29b8b --- /dev/null +++ b/packages/contracts/generated/api/console/installed-apps/types.gen.ts @@ -0,0 +1,571 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type InstalledAppListResponse = { + installed_apps: Array +} + +export type ChatMessagePayload = { + conversation_id?: string | null + files?: Array | null + inputs: { + [key: string]: unknown + } + model_config: { + [key: string]: unknown + } + parent_message_id?: string | null + query: string + response_mode?: 'blocking' | 'streaming' + retriever_from?: string +} + +export type CompletionMessageExplorePayload = { + files?: Array<{ + [key: string]: unknown + }> | null + inputs: { + [key: string]: unknown + } + query?: string + response_mode?: 'blocking' | 'streaming' | null + retriever_from?: string +} + +export type ConversationRenamePayload = { + auto_generate?: boolean + name?: string | null +} + +export type MessageFeedbackPayload = { + content?: string | null + message_id: string + rating?: 'like' | 'dislike' | null +} + +export type SavedMessageCreatePayload = { + message_id: string +} + +export type TextToAudioPayload = { + message_id?: string | null + streaming?: boolean | null + text?: string | null + voice?: string | null +} + +export type WorkflowRunPayload = { + files?: Array<{ + [key: string]: unknown + }> | null + inputs: { + [key: string]: unknown + } +} + +export type InstalledAppResponse = { + app: InstalledAppInfoResponse + app_owner_tenant_id: string + editable: boolean + id: string + is_pinned: boolean + last_used_at?: number | null + uninstallable: boolean +} + +export type InstalledAppInfoResponse = { + icon?: string | null + icon_background?: string | null + icon_type?: string | null + id: string + mode?: string | null + name?: string | null + use_icon_as_answer_icon?: boolean | null +} + +export type GetInstalledAppsData = { + body?: never + path?: never + query?: never + url: '/installed-apps' +} + +export type GetInstalledAppsResponses = { + 200: InstalledAppListResponse +} + +export type GetInstalledAppsResponse = GetInstalledAppsResponses[keyof GetInstalledAppsResponses] + +export type PostInstalledAppsData = { + body?: never + path?: never + query?: never + url: '/installed-apps' +} + +export type PostInstalledAppsResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostInstalledAppsResponse = PostInstalledAppsResponses[keyof PostInstalledAppsResponses] + +export type DeleteInstalledAppsByInstalledAppIdData = { + body?: never + path: { + installed_app_id: string + } + query?: never + url: '/installed-apps/{installed_app_id}' +} + +export type DeleteInstalledAppsByInstalledAppIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type DeleteInstalledAppsByInstalledAppIdResponse + = DeleteInstalledAppsByInstalledAppIdResponses[keyof DeleteInstalledAppsByInstalledAppIdResponses] + +export type PatchInstalledAppsByInstalledAppIdData = { + body?: never + path: { + installed_app_id: string + } + query?: never + url: '/installed-apps/{installed_app_id}' +} + +export type PatchInstalledAppsByInstalledAppIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type PatchInstalledAppsByInstalledAppIdResponse + = PatchInstalledAppsByInstalledAppIdResponses[keyof PatchInstalledAppsByInstalledAppIdResponses] + +export type PostInstalledAppsByInstalledAppIdAudioToTextData = { + body?: never + path: { + installed_app_id: string + } + query?: never + url: '/installed-apps/{installed_app_id}/audio-to-text' +} + +export type PostInstalledAppsByInstalledAppIdAudioToTextResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostInstalledAppsByInstalledAppIdAudioToTextResponse + = PostInstalledAppsByInstalledAppIdAudioToTextResponses[keyof PostInstalledAppsByInstalledAppIdAudioToTextResponses] + +export type PostInstalledAppsByInstalledAppIdChatMessagesData = { + body: ChatMessagePayload + path: { + installed_app_id: string + } + query?: never + url: '/installed-apps/{installed_app_id}/chat-messages' +} + +export type PostInstalledAppsByInstalledAppIdChatMessagesResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostInstalledAppsByInstalledAppIdChatMessagesResponse + = PostInstalledAppsByInstalledAppIdChatMessagesResponses[keyof PostInstalledAppsByInstalledAppIdChatMessagesResponses] + +export type PostInstalledAppsByInstalledAppIdChatMessagesByTaskIdStopData = { + body?: never + path: { + installed_app_id: string + task_id: string + } + query?: never + url: '/installed-apps/{installed_app_id}/chat-messages/{task_id}/stop' +} + +export type PostInstalledAppsByInstalledAppIdChatMessagesByTaskIdStopResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostInstalledAppsByInstalledAppIdChatMessagesByTaskIdStopResponse + = PostInstalledAppsByInstalledAppIdChatMessagesByTaskIdStopResponses[keyof PostInstalledAppsByInstalledAppIdChatMessagesByTaskIdStopResponses] + +export type PostInstalledAppsByInstalledAppIdCompletionMessagesData = { + body: CompletionMessageExplorePayload + path: { + installed_app_id: string + } + query?: never + url: '/installed-apps/{installed_app_id}/completion-messages' +} + +export type PostInstalledAppsByInstalledAppIdCompletionMessagesResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostInstalledAppsByInstalledAppIdCompletionMessagesResponse + = PostInstalledAppsByInstalledAppIdCompletionMessagesResponses[keyof PostInstalledAppsByInstalledAppIdCompletionMessagesResponses] + +export type PostInstalledAppsByInstalledAppIdCompletionMessagesByTaskIdStopData = { + body?: never + path: { + installed_app_id: string + task_id: string + } + query?: never + url: '/installed-apps/{installed_app_id}/completion-messages/{task_id}/stop' +} + +export type PostInstalledAppsByInstalledAppIdCompletionMessagesByTaskIdStopResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostInstalledAppsByInstalledAppIdCompletionMessagesByTaskIdStopResponse + = PostInstalledAppsByInstalledAppIdCompletionMessagesByTaskIdStopResponses[keyof PostInstalledAppsByInstalledAppIdCompletionMessagesByTaskIdStopResponses] + +export type GetInstalledAppsByInstalledAppIdConversationsData = { + body?: never + path: { + installed_app_id: string + } + query?: { + last_id?: string | null + limit?: number + pinned?: boolean | null + } + url: '/installed-apps/{installed_app_id}/conversations' +} + +export type GetInstalledAppsByInstalledAppIdConversationsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetInstalledAppsByInstalledAppIdConversationsResponse + = GetInstalledAppsByInstalledAppIdConversationsResponses[keyof GetInstalledAppsByInstalledAppIdConversationsResponses] + +export type DeleteInstalledAppsByInstalledAppIdConversationsByCIdData = { + body?: never + path: { + installed_app_id: string + c_id: string + } + query?: never + url: '/installed-apps/{installed_app_id}/conversations/{c_id}' +} + +export type DeleteInstalledAppsByInstalledAppIdConversationsByCIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type DeleteInstalledAppsByInstalledAppIdConversationsByCIdResponse + = DeleteInstalledAppsByInstalledAppIdConversationsByCIdResponses[keyof DeleteInstalledAppsByInstalledAppIdConversationsByCIdResponses] + +export type PostInstalledAppsByInstalledAppIdConversationsByCIdNameData = { + body: ConversationRenamePayload + path: { + installed_app_id: string + c_id: string + } + query?: never + url: '/installed-apps/{installed_app_id}/conversations/{c_id}/name' +} + +export type PostInstalledAppsByInstalledAppIdConversationsByCIdNameResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostInstalledAppsByInstalledAppIdConversationsByCIdNameResponse + = PostInstalledAppsByInstalledAppIdConversationsByCIdNameResponses[keyof PostInstalledAppsByInstalledAppIdConversationsByCIdNameResponses] + +export type PatchInstalledAppsByInstalledAppIdConversationsByCIdPinData = { + body?: never + path: { + installed_app_id: string + c_id: string + } + query?: never + url: '/installed-apps/{installed_app_id}/conversations/{c_id}/pin' +} + +export type PatchInstalledAppsByInstalledAppIdConversationsByCIdPinResponses = { + 200: { + [key: string]: unknown + } +} + +export type PatchInstalledAppsByInstalledAppIdConversationsByCIdPinResponse + = PatchInstalledAppsByInstalledAppIdConversationsByCIdPinResponses[keyof PatchInstalledAppsByInstalledAppIdConversationsByCIdPinResponses] + +export type PatchInstalledAppsByInstalledAppIdConversationsByCIdUnpinData = { + body?: never + path: { + installed_app_id: string + c_id: string + } + query?: never + url: '/installed-apps/{installed_app_id}/conversations/{c_id}/unpin' +} + +export type PatchInstalledAppsByInstalledAppIdConversationsByCIdUnpinResponses = { + 200: { + [key: string]: unknown + } +} + +export type PatchInstalledAppsByInstalledAppIdConversationsByCIdUnpinResponse + = PatchInstalledAppsByInstalledAppIdConversationsByCIdUnpinResponses[keyof PatchInstalledAppsByInstalledAppIdConversationsByCIdUnpinResponses] + +export type GetInstalledAppsByInstalledAppIdMessagesData = { + body?: never + path: { + installed_app_id: string + } + query: { + conversation_id: string + first_id?: string | null + limit?: number + } + url: '/installed-apps/{installed_app_id}/messages' +} + +export type GetInstalledAppsByInstalledAppIdMessagesResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetInstalledAppsByInstalledAppIdMessagesResponse + = GetInstalledAppsByInstalledAppIdMessagesResponses[keyof GetInstalledAppsByInstalledAppIdMessagesResponses] + +export type PostInstalledAppsByInstalledAppIdMessagesByMessageIdFeedbacksData = { + body: MessageFeedbackPayload + path: { + installed_app_id: string + message_id: string + } + query?: never + url: '/installed-apps/{installed_app_id}/messages/{message_id}/feedbacks' +} + +export type PostInstalledAppsByInstalledAppIdMessagesByMessageIdFeedbacksResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostInstalledAppsByInstalledAppIdMessagesByMessageIdFeedbacksResponse + = PostInstalledAppsByInstalledAppIdMessagesByMessageIdFeedbacksResponses[keyof PostInstalledAppsByInstalledAppIdMessagesByMessageIdFeedbacksResponses] + +export type GetInstalledAppsByInstalledAppIdMessagesByMessageIdMoreLikeThisData = { + body?: never + path: { + installed_app_id: string + message_id: string + } + query: { + response_mode: 'blocking' | 'streaming' + } + url: '/installed-apps/{installed_app_id}/messages/{message_id}/more-like-this' +} + +export type GetInstalledAppsByInstalledAppIdMessagesByMessageIdMoreLikeThisResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetInstalledAppsByInstalledAppIdMessagesByMessageIdMoreLikeThisResponse + = GetInstalledAppsByInstalledAppIdMessagesByMessageIdMoreLikeThisResponses[keyof GetInstalledAppsByInstalledAppIdMessagesByMessageIdMoreLikeThisResponses] + +export type GetInstalledAppsByInstalledAppIdMessagesByMessageIdSuggestedQuestionsData = { + body?: never + path: { + installed_app_id: string + message_id: string + } + query?: never + url: '/installed-apps/{installed_app_id}/messages/{message_id}/suggested-questions' +} + +export type GetInstalledAppsByInstalledAppIdMessagesByMessageIdSuggestedQuestionsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetInstalledAppsByInstalledAppIdMessagesByMessageIdSuggestedQuestionsResponse + = GetInstalledAppsByInstalledAppIdMessagesByMessageIdSuggestedQuestionsResponses[keyof GetInstalledAppsByInstalledAppIdMessagesByMessageIdSuggestedQuestionsResponses] + +export type GetInstalledAppsByInstalledAppIdMetaData = { + body?: never + path: { + installed_app_id: string + } + query?: never + url: '/installed-apps/{installed_app_id}/meta' +} + +export type GetInstalledAppsByInstalledAppIdMetaResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetInstalledAppsByInstalledAppIdMetaResponse + = GetInstalledAppsByInstalledAppIdMetaResponses[keyof GetInstalledAppsByInstalledAppIdMetaResponses] + +export type GetInstalledAppsByInstalledAppIdParametersData = { + body?: never + path: { + installed_app_id: string + } + query?: never + url: '/installed-apps/{installed_app_id}/parameters' +} + +export type GetInstalledAppsByInstalledAppIdParametersResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetInstalledAppsByInstalledAppIdParametersResponse + = GetInstalledAppsByInstalledAppIdParametersResponses[keyof GetInstalledAppsByInstalledAppIdParametersResponses] + +export type GetInstalledAppsByInstalledAppIdSavedMessagesData = { + body?: never + path: { + installed_app_id: string + } + query?: { + last_id?: string | null + limit?: number + } + url: '/installed-apps/{installed_app_id}/saved-messages' +} + +export type GetInstalledAppsByInstalledAppIdSavedMessagesResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetInstalledAppsByInstalledAppIdSavedMessagesResponse + = GetInstalledAppsByInstalledAppIdSavedMessagesResponses[keyof GetInstalledAppsByInstalledAppIdSavedMessagesResponses] + +export type PostInstalledAppsByInstalledAppIdSavedMessagesData = { + body: SavedMessageCreatePayload + path: { + installed_app_id: string + } + query?: never + url: '/installed-apps/{installed_app_id}/saved-messages' +} + +export type PostInstalledAppsByInstalledAppIdSavedMessagesResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostInstalledAppsByInstalledAppIdSavedMessagesResponse + = PostInstalledAppsByInstalledAppIdSavedMessagesResponses[keyof PostInstalledAppsByInstalledAppIdSavedMessagesResponses] + +export type DeleteInstalledAppsByInstalledAppIdSavedMessagesByMessageIdData = { + body?: never + path: { + installed_app_id: string + message_id: string + } + query?: never + url: '/installed-apps/{installed_app_id}/saved-messages/{message_id}' +} + +export type DeleteInstalledAppsByInstalledAppIdSavedMessagesByMessageIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type DeleteInstalledAppsByInstalledAppIdSavedMessagesByMessageIdResponse + = DeleteInstalledAppsByInstalledAppIdSavedMessagesByMessageIdResponses[keyof DeleteInstalledAppsByInstalledAppIdSavedMessagesByMessageIdResponses] + +export type PostInstalledAppsByInstalledAppIdTextToAudioData = { + body: TextToAudioPayload + path: { + installed_app_id: string + } + query?: never + url: '/installed-apps/{installed_app_id}/text-to-audio' +} + +export type PostInstalledAppsByInstalledAppIdTextToAudioResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostInstalledAppsByInstalledAppIdTextToAudioResponse + = PostInstalledAppsByInstalledAppIdTextToAudioResponses[keyof PostInstalledAppsByInstalledAppIdTextToAudioResponses] + +export type PostInstalledAppsByInstalledAppIdWorkflowsRunData = { + body: WorkflowRunPayload + path: { + installed_app_id: string + } + query?: never + url: '/installed-apps/{installed_app_id}/workflows/run' +} + +export type PostInstalledAppsByInstalledAppIdWorkflowsRunResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostInstalledAppsByInstalledAppIdWorkflowsRunResponse + = PostInstalledAppsByInstalledAppIdWorkflowsRunResponses[keyof PostInstalledAppsByInstalledAppIdWorkflowsRunResponses] + +export type PostInstalledAppsByInstalledAppIdWorkflowsTasksByTaskIdStopData = { + body?: never + path: { + installed_app_id: string + task_id: string + } + query?: never + url: '/installed-apps/{installed_app_id}/workflows/tasks/{task_id}/stop' +} + +export type PostInstalledAppsByInstalledAppIdWorkflowsTasksByTaskIdStopResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostInstalledAppsByInstalledAppIdWorkflowsTasksByTaskIdStopResponse + = PostInstalledAppsByInstalledAppIdWorkflowsTasksByTaskIdStopResponses[keyof PostInstalledAppsByInstalledAppIdWorkflowsTasksByTaskIdStopResponses] diff --git a/packages/contracts/generated/api/console/installed-apps/zod.gen.ts b/packages/contracts/generated/api/console/installed-apps/zod.gen.ts new file mode 100644 index 0000000000..c8683e092c --- /dev/null +++ b/packages/contracts/generated/api/console/installed-apps/zod.gen.ts @@ -0,0 +1,433 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * ChatMessagePayload + */ +export const zChatMessagePayload = z.object({ + conversation_id: z.string().nullish(), + files: z.array(z.unknown()).nullish(), + inputs: z.record(z.string(), z.unknown()), + model_config: z.record(z.string(), z.unknown()), + parent_message_id: z.string().nullish(), + query: z.string(), + response_mode: z.enum(['blocking', 'streaming']).optional().default('blocking'), + retriever_from: z.string().optional().default('dev'), +}) + +/** + * CompletionMessageExplorePayload + */ +export const zCompletionMessageExplorePayload = z.object({ + files: z.array(z.record(z.string(), z.unknown())).nullish(), + inputs: z.record(z.string(), z.unknown()), + query: z.string().optional().default(''), + response_mode: z.enum(['blocking', 'streaming']).nullish(), + retriever_from: z.string().optional().default('explore_app'), +}) + +/** + * ConversationRenamePayload + */ +export const zConversationRenamePayload = z.object({ + auto_generate: z.boolean().optional().default(false), + name: z.string().nullish(), +}) + +/** + * MessageFeedbackPayload + */ +export const zMessageFeedbackPayload = z.object({ + content: z.string().nullish(), + message_id: z.string(), + rating: z.enum(['like', 'dislike']).nullish(), +}) + +/** + * SavedMessageCreatePayload + */ +export const zSavedMessageCreatePayload = z.object({ + message_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(), +}) + +/** + * WorkflowRunPayload + */ +export const zWorkflowRunPayload = z.object({ + files: z.array(z.record(z.string(), z.unknown())).nullish(), + inputs: z.record(z.string(), z.unknown()), +}) + +/** + * InstalledAppInfoResponse + */ +export const zInstalledAppInfoResponse = z.object({ + icon: z.string().nullish(), + icon_background: z.string().nullish(), + icon_type: z.string().nullish(), + id: z.string(), + mode: z.string().nullish(), + name: z.string().nullish(), + use_icon_as_answer_icon: z.boolean().nullish(), +}) + +/** + * InstalledAppResponse + */ +export const zInstalledAppResponse = z.object({ + app: zInstalledAppInfoResponse, + app_owner_tenant_id: z.string(), + editable: z.boolean(), + id: z.string(), + is_pinned: z.boolean(), + last_used_at: z.int().nullish(), + uninstallable: z.boolean(), +}) + +/** + * InstalledAppListResponse + */ +export const zInstalledAppListResponse = z.object({ + installed_apps: z.array(zInstalledAppResponse), +}) + +/** + * Success + */ +export const zGetInstalledAppsResponse = zInstalledAppListResponse + +/** + * Success + */ +export const zPostInstalledAppsResponse = z.record(z.string(), z.unknown()) + +export const zDeleteInstalledAppsByInstalledAppIdPath = z.object({ + installed_app_id: z.string(), +}) + +/** + * Success + */ +export const zDeleteInstalledAppsByInstalledAppIdResponse = z.record(z.string(), z.unknown()) + +export const zPatchInstalledAppsByInstalledAppIdPath = z.object({ + installed_app_id: z.string(), +}) + +/** + * Success + */ +export const zPatchInstalledAppsByInstalledAppIdResponse = z.record(z.string(), z.unknown()) + +export const zPostInstalledAppsByInstalledAppIdAudioToTextPath = z.object({ + installed_app_id: z.string(), +}) + +/** + * Success + */ +export const zPostInstalledAppsByInstalledAppIdAudioToTextResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostInstalledAppsByInstalledAppIdChatMessagesBody = zChatMessagePayload + +export const zPostInstalledAppsByInstalledAppIdChatMessagesPath = z.object({ + installed_app_id: z.string(), +}) + +/** + * Success + */ +export const zPostInstalledAppsByInstalledAppIdChatMessagesResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostInstalledAppsByInstalledAppIdChatMessagesByTaskIdStopPath = z.object({ + installed_app_id: z.string(), + task_id: z.string(), +}) + +/** + * Success + */ +export const zPostInstalledAppsByInstalledAppIdChatMessagesByTaskIdStopResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostInstalledAppsByInstalledAppIdCompletionMessagesBody + = zCompletionMessageExplorePayload + +export const zPostInstalledAppsByInstalledAppIdCompletionMessagesPath = z.object({ + installed_app_id: z.string(), +}) + +/** + * Success + */ +export const zPostInstalledAppsByInstalledAppIdCompletionMessagesResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostInstalledAppsByInstalledAppIdCompletionMessagesByTaskIdStopPath = z.object({ + installed_app_id: z.string(), + task_id: z.string(), +}) + +/** + * Success + */ +export const zPostInstalledAppsByInstalledAppIdCompletionMessagesByTaskIdStopResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetInstalledAppsByInstalledAppIdConversationsPath = z.object({ + installed_app_id: z.string(), +}) + +export const zGetInstalledAppsByInstalledAppIdConversationsQuery = z.object({ + last_id: z.string().nullish(), + limit: z.int().gte(1).lte(100).optional().default(20), + pinned: z.boolean().nullish(), +}) + +/** + * Success + */ +export const zGetInstalledAppsByInstalledAppIdConversationsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zDeleteInstalledAppsByInstalledAppIdConversationsByCIdPath = z.object({ + installed_app_id: z.string(), + c_id: z.string(), +}) + +/** + * Success + */ +export const zDeleteInstalledAppsByInstalledAppIdConversationsByCIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostInstalledAppsByInstalledAppIdConversationsByCIdNameBody + = zConversationRenamePayload + +export const zPostInstalledAppsByInstalledAppIdConversationsByCIdNamePath = z.object({ + installed_app_id: z.string(), + c_id: z.string(), +}) + +/** + * Success + */ +export const zPostInstalledAppsByInstalledAppIdConversationsByCIdNameResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPatchInstalledAppsByInstalledAppIdConversationsByCIdPinPath = z.object({ + installed_app_id: z.string(), + c_id: z.string(), +}) + +/** + * Success + */ +export const zPatchInstalledAppsByInstalledAppIdConversationsByCIdPinResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPatchInstalledAppsByInstalledAppIdConversationsByCIdUnpinPath = z.object({ + installed_app_id: z.string(), + c_id: z.string(), +}) + +/** + * Success + */ +export const zPatchInstalledAppsByInstalledAppIdConversationsByCIdUnpinResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetInstalledAppsByInstalledAppIdMessagesPath = z.object({ + installed_app_id: z.string(), +}) + +export const zGetInstalledAppsByInstalledAppIdMessagesQuery = z.object({ + conversation_id: z.string(), + first_id: z.string().nullish(), + limit: z.int().gte(1).lte(100).optional().default(20), +}) + +/** + * Success + */ +export const zGetInstalledAppsByInstalledAppIdMessagesResponse = z.record(z.string(), z.unknown()) + +export const zPostInstalledAppsByInstalledAppIdMessagesByMessageIdFeedbacksBody + = zMessageFeedbackPayload + +export const zPostInstalledAppsByInstalledAppIdMessagesByMessageIdFeedbacksPath = z.object({ + installed_app_id: z.string(), + message_id: z.string(), +}) + +/** + * Success + */ +export const zPostInstalledAppsByInstalledAppIdMessagesByMessageIdFeedbacksResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetInstalledAppsByInstalledAppIdMessagesByMessageIdMoreLikeThisPath = z.object({ + installed_app_id: z.string(), + message_id: z.string(), +}) + +export const zGetInstalledAppsByInstalledAppIdMessagesByMessageIdMoreLikeThisQuery = z.object({ + response_mode: z.enum(['blocking', 'streaming']), +}) + +/** + * Success + */ +export const zGetInstalledAppsByInstalledAppIdMessagesByMessageIdMoreLikeThisResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetInstalledAppsByInstalledAppIdMessagesByMessageIdSuggestedQuestionsPath = z.object({ + installed_app_id: z.string(), + message_id: z.string(), +}) + +/** + * Success + */ +export const zGetInstalledAppsByInstalledAppIdMessagesByMessageIdSuggestedQuestionsResponse + = z.record(z.string(), z.unknown()) + +export const zGetInstalledAppsByInstalledAppIdMetaPath = z.object({ + installed_app_id: z.string(), +}) + +/** + * Success + */ +export const zGetInstalledAppsByInstalledAppIdMetaResponse = z.record(z.string(), z.unknown()) + +export const zGetInstalledAppsByInstalledAppIdParametersPath = z.object({ + installed_app_id: z.string(), +}) + +/** + * Success + */ +export const zGetInstalledAppsByInstalledAppIdParametersResponse = z.record(z.string(), z.unknown()) + +export const zGetInstalledAppsByInstalledAppIdSavedMessagesPath = z.object({ + installed_app_id: z.string(), +}) + +export const zGetInstalledAppsByInstalledAppIdSavedMessagesQuery = z.object({ + last_id: z.string().nullish(), + limit: z.int().gte(1).lte(100).optional().default(20), +}) + +/** + * Success + */ +export const zGetInstalledAppsByInstalledAppIdSavedMessagesResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostInstalledAppsByInstalledAppIdSavedMessagesBody = zSavedMessageCreatePayload + +export const zPostInstalledAppsByInstalledAppIdSavedMessagesPath = z.object({ + installed_app_id: z.string(), +}) + +/** + * Success + */ +export const zPostInstalledAppsByInstalledAppIdSavedMessagesResponse = z.record( + z.string(), + z.unknown(), +) + +export const zDeleteInstalledAppsByInstalledAppIdSavedMessagesByMessageIdPath = z.object({ + installed_app_id: z.string(), + message_id: z.string(), +}) + +/** + * Success + */ +export const zDeleteInstalledAppsByInstalledAppIdSavedMessagesByMessageIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostInstalledAppsByInstalledAppIdTextToAudioBody = zTextToAudioPayload + +export const zPostInstalledAppsByInstalledAppIdTextToAudioPath = z.object({ + installed_app_id: z.string(), +}) + +/** + * Success + */ +export const zPostInstalledAppsByInstalledAppIdTextToAudioResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostInstalledAppsByInstalledAppIdWorkflowsRunBody = zWorkflowRunPayload + +export const zPostInstalledAppsByInstalledAppIdWorkflowsRunPath = z.object({ + installed_app_id: z.string(), +}) + +/** + * Success + */ +export const zPostInstalledAppsByInstalledAppIdWorkflowsRunResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostInstalledAppsByInstalledAppIdWorkflowsTasksByTaskIdStopPath = z.object({ + installed_app_id: z.string(), + task_id: z.string(), +}) + +/** + * Success + */ +export const zPostInstalledAppsByInstalledAppIdWorkflowsTasksByTaskIdStopResponse = z.record( + z.string(), + z.unknown(), +) diff --git a/packages/contracts/generated/api/console/instruction-generate/orpc.gen.ts b/packages/contracts/generated/api/console/instruction-generate/orpc.gen.ts new file mode 100644 index 0000000000..3aff6a9a3b --- /dev/null +++ b/packages/contracts/generated/api/console/instruction-generate/orpc.gen.ts @@ -0,0 +1,54 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zPostInstructionGenerateBody, + zPostInstructionGenerateResponse, + zPostInstructionGenerateTemplateBody, + zPostInstructionGenerateTemplateResponse, +} from './zod.gen' + +/** + * Get instruction generation template + */ +export const post = oc + .route({ + description: 'Get instruction generation template', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postInstructionGenerateTemplate', + path: '/instruction-generate/template', + tags: ['console'], + }) + .input(z.object({ body: zPostInstructionGenerateTemplateBody })) + .output(zPostInstructionGenerateTemplateResponse) + +export const template = { + post, +} + +/** + * Generate instruction for workflow nodes or general use + */ +export const post2 = oc + .route({ + description: 'Generate instruction for workflow nodes or general use', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postInstructionGenerate', + path: '/instruction-generate', + tags: ['console'], + }) + .input(z.object({ body: zPostInstructionGenerateBody })) + .output(zPostInstructionGenerateResponse) + +export const instructionGenerate = { + post: post2, + template, +} + +export const contract = { + instructionGenerate, +} diff --git a/packages/contracts/generated/api/console/instruction-generate/types.gen.ts b/packages/contracts/generated/api/console/instruction-generate/types.gen.ts new file mode 100644 index 0000000000..1dd3530d44 --- /dev/null +++ b/packages/contracts/generated/api/console/instruction-generate/types.gen.ts @@ -0,0 +1,101 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type InstructionGeneratePayload = { + current?: string + flow_id: string + ideal_output?: string + instruction: string + language?: string + model_config: ModelConfig + node_id?: string +} + +export type InstructionTemplatePayload = { + type: string +} + +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 +} + +export type JsonValue = unknown + +export type PostInstructionGenerateData = { + body: InstructionGeneratePayload + path?: never + query?: never + url: '/instruction-generate' +} + +export type PostInstructionGenerateErrors = { + 400: { + [key: string]: unknown + } + 402: { + [key: string]: unknown + } +} + +export type PostInstructionGenerateError + = PostInstructionGenerateErrors[keyof PostInstructionGenerateErrors] + +export type PostInstructionGenerateResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostInstructionGenerateResponse + = PostInstructionGenerateResponses[keyof PostInstructionGenerateResponses] + +export type PostInstructionGenerateTemplateData = { + body: InstructionTemplatePayload + path?: never + query?: never + url: '/instruction-generate/template' +} + +export type PostInstructionGenerateTemplateErrors = { + 400: { + [key: string]: unknown + } +} + +export type PostInstructionGenerateTemplateError + = PostInstructionGenerateTemplateErrors[keyof PostInstructionGenerateTemplateErrors] + +export type PostInstructionGenerateTemplateResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostInstructionGenerateTemplateResponse + = PostInstructionGenerateTemplateResponses[keyof PostInstructionGenerateTemplateResponses] diff --git a/packages/contracts/generated/api/console/instruction-generate/zod.gen.ts b/packages/contracts/generated/api/console/instruction-generate/zod.gen.ts new file mode 100644 index 0000000000..35135fdcf7 --- /dev/null +++ b/packages/contracts/generated/api/console/instruction-generate/zod.gen.ts @@ -0,0 +1,69 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * InstructionTemplatePayload + */ +export const zInstructionTemplatePayload = z.object({ + type: z.string(), +}) + +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(), +}) + +/** + * InstructionGeneratePayload + */ +export const zInstructionGeneratePayload = z.object({ + current: z.string().optional().default(''), + flow_id: z.string(), + ideal_output: z.string().optional().default(''), + instruction: z.string(), + language: z.string().optional().default('javascript'), + model_config: zModelConfig, + node_id: z.string().optional().default(''), +}) + +export const zPostInstructionGenerateBody = zInstructionGeneratePayload + +/** + * Instruction generated successfully + */ +export const zPostInstructionGenerateResponse = z.record(z.string(), z.unknown()) + +export const zPostInstructionGenerateTemplateBody = zInstructionTemplatePayload + +/** + * Template retrieved successfully + */ +export const zPostInstructionGenerateTemplateResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/api/console/login/orpc.gen.ts b/packages/contracts/generated/api/console/login/orpc.gen.ts new file mode 100644 index 0000000000..b8e647a11d --- /dev/null +++ b/packages/contracts/generated/api/console/login/orpc.gen.ts @@ -0,0 +1,29 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { zPostLoginBody, zPostLoginResponse } from './zod.gen' + +/** + * Authenticate user and login + */ +export const post = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postLogin', + path: '/login', + summary: 'Authenticate user and login', + tags: ['console'], + }) + .input(z.object({ body: zPostLoginBody })) + .output(zPostLoginResponse) + +export const login = { + post, +} + +export const contract = { + login, +} diff --git a/packages/contracts/generated/api/console/login/types.gen.ts b/packages/contracts/generated/api/console/login/types.gen.ts new file mode 100644 index 0000000000..8646c56c2a --- /dev/null +++ b/packages/contracts/generated/api/console/login/types.gen.ts @@ -0,0 +1,27 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type LoginPayload = { + email: string + invite_token?: string | null + password: string + remember_me?: boolean +} + +export type PostLoginData = { + body: LoginPayload + path?: never + query?: never + url: '/login' +} + +export type PostLoginResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostLoginResponse = PostLoginResponses[keyof PostLoginResponses] diff --git a/packages/contracts/generated/api/console/login/zod.gen.ts b/packages/contracts/generated/api/console/login/zod.gen.ts new file mode 100644 index 0000000000..612ab8d3be --- /dev/null +++ b/packages/contracts/generated/api/console/login/zod.gen.ts @@ -0,0 +1,20 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * LoginPayload + */ +export const zLoginPayload = z.object({ + email: z.string(), + invite_token: z.string().nullish(), + password: z.string(), + remember_me: z.boolean().optional().default(false), +}) + +export const zPostLoginBody = zLoginPayload + +/** + * Success + */ +export const zPostLoginResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/api/console/logout/orpc.gen.ts b/packages/contracts/generated/api/console/logout/orpc.gen.ts new file mode 100644 index 0000000000..02ecd2c82d --- /dev/null +++ b/packages/contracts/generated/api/console/logout/orpc.gen.ts @@ -0,0 +1,23 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' + +import { zPostLogoutResponse } from './zod.gen' + +export const post = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postLogout', + path: '/logout', + tags: ['console'], + }) + .output(zPostLogoutResponse) + +export const logout = { + post, +} + +export const contract = { + logout, +} diff --git a/packages/contracts/generated/api/console/logout/types.gen.ts b/packages/contracts/generated/api/console/logout/types.gen.ts new file mode 100644 index 0000000000..9834d78dc1 --- /dev/null +++ b/packages/contracts/generated/api/console/logout/types.gen.ts @@ -0,0 +1,20 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type PostLogoutData = { + body?: never + path?: never + query?: never + url: '/logout' +} + +export type PostLogoutResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostLogoutResponse = PostLogoutResponses[keyof PostLogoutResponses] diff --git a/packages/contracts/generated/api/console/logout/zod.gen.ts b/packages/contracts/generated/api/console/logout/zod.gen.ts new file mode 100644 index 0000000000..2e2be21264 --- /dev/null +++ b/packages/contracts/generated/api/console/logout/zod.gen.ts @@ -0,0 +1,8 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * Success + */ +export const zPostLogoutResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/api/console/mcp/orpc.gen.ts b/packages/contracts/generated/api/console/mcp/orpc.gen.ts new file mode 100644 index 0000000000..211e8cb2f2 --- /dev/null +++ b/packages/contracts/generated/api/console/mcp/orpc.gen.ts @@ -0,0 +1,31 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' + +import { zGetMcpOauthCallbackResponse } from './zod.gen' + +export const get = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getMcpOauthCallback', + path: '/mcp/oauth/callback', + tags: ['console'], + }) + .output(zGetMcpOauthCallbackResponse) + +export const callback = { + get, +} + +export const oauth = { + callback, +} + +export const mcp = { + oauth, +} + +export const contract = { + mcp, +} diff --git a/packages/contracts/generated/api/console/mcp/types.gen.ts b/packages/contracts/generated/api/console/mcp/types.gen.ts new file mode 100644 index 0000000000..4e96a66393 --- /dev/null +++ b/packages/contracts/generated/api/console/mcp/types.gen.ts @@ -0,0 +1,21 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type GetMcpOauthCallbackData = { + body?: never + path?: never + query?: never + url: '/mcp/oauth/callback' +} + +export type GetMcpOauthCallbackResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetMcpOauthCallbackResponse + = GetMcpOauthCallbackResponses[keyof GetMcpOauthCallbackResponses] diff --git a/packages/contracts/generated/api/console/mcp/zod.gen.ts b/packages/contracts/generated/api/console/mcp/zod.gen.ts new file mode 100644 index 0000000000..ade0c01f7a --- /dev/null +++ b/packages/contracts/generated/api/console/mcp/zod.gen.ts @@ -0,0 +1,8 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * Success + */ +export const zGetMcpOauthCallbackResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/api/console/notification/orpc.gen.ts b/packages/contracts/generated/api/console/notification/orpc.gen.ts new file mode 100644 index 0000000000..f7125346cf --- /dev/null +++ b/packages/contracts/generated/api/console/notification/orpc.gen.ts @@ -0,0 +1,47 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' + +import { zGetNotificationResponse, zPostNotificationDismissResponse } from './zod.gen' + +/** + * Mark a notification as dismissed for the current user. + */ +export const post = oc + .route({ + description: 'Mark a notification as dismissed for the current user.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postNotificationDismiss', + path: '/notification/dismiss', + tags: ['console'], + }) + .output(zPostNotificationDismissResponse) + +export const dismiss = { + post, +} + +/** + * Return the active in-product notification for the current user in their interface language (falls back to English if unavailable). The notification is NOT marked as seen here; call POST /notification/dismiss when the user explicitly closes the modal. + */ +export const get = oc + .route({ + description: + 'Return the active in-product notification for the current user in their interface language (falls back to English if unavailable). The notification is NOT marked as seen here; call POST /notification/dismiss when the user explicitly closes the modal.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getNotification', + path: '/notification', + tags: ['console'], + }) + .output(zGetNotificationResponse) + +export const notification = { + get, + dismiss, +} + +export const contract = { + notification, +} diff --git a/packages/contracts/generated/api/console/notification/types.gen.ts b/packages/contracts/generated/api/console/notification/types.gen.ts new file mode 100644 index 0000000000..8fe661016b --- /dev/null +++ b/packages/contracts/generated/api/console/notification/types.gen.ts @@ -0,0 +1,53 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type GetNotificationData = { + body?: never + path?: never + query?: never + url: '/notification' +} + +export type GetNotificationErrors = { + 401: { + [key: string]: unknown + } +} + +export type GetNotificationError = GetNotificationErrors[keyof GetNotificationErrors] + +export type GetNotificationResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetNotificationResponse = GetNotificationResponses[keyof GetNotificationResponses] + +export type PostNotificationDismissData = { + body?: never + path?: never + query?: never + url: '/notification/dismiss' +} + +export type PostNotificationDismissErrors = { + 401: { + [key: string]: unknown + } +} + +export type PostNotificationDismissError + = PostNotificationDismissErrors[keyof PostNotificationDismissErrors] + +export type PostNotificationDismissResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostNotificationDismissResponse + = PostNotificationDismissResponses[keyof PostNotificationDismissResponses] diff --git a/packages/contracts/generated/api/console/notification/zod.gen.ts b/packages/contracts/generated/api/console/notification/zod.gen.ts new file mode 100644 index 0000000000..c17e436ed9 --- /dev/null +++ b/packages/contracts/generated/api/console/notification/zod.gen.ts @@ -0,0 +1,13 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * Success — inspect should_show to decide whether to render the modal + */ +export const zGetNotificationResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zPostNotificationDismissResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/api/console/notion/orpc.gen.ts b/packages/contracts/generated/api/console/notion/orpc.gen.ts new file mode 100644 index 0000000000..b8de9e89f2 --- /dev/null +++ b/packages/contracts/generated/api/console/notion/orpc.gen.ts @@ -0,0 +1,84 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zGetNotionPagesByPageIdByPageTypePreviewPath, + zGetNotionPagesByPageIdByPageTypePreviewResponse, + zGetNotionPreImportPagesResponse, + zPostNotionPagesByPageIdByPageTypePreviewBody, + zPostNotionPagesByPageIdByPageTypePreviewPath, + zPostNotionPagesByPageIdByPageTypePreviewResponse, +} from './zod.gen' + +export const get = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getNotionPagesByPageIdByPageTypePreview', + path: '/notion/pages/{page_id}/{page_type}/preview', + tags: ['console'], + }) + .input(z.object({ params: zGetNotionPagesByPageIdByPageTypePreviewPath })) + .output(zGetNotionPagesByPageIdByPageTypePreviewResponse) + +export const post = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postNotionPagesByPageIdByPageTypePreview', + path: '/notion/pages/{page_id}/{page_type}/preview', + tags: ['console'], + }) + .input( + z.object({ + body: zPostNotionPagesByPageIdByPageTypePreviewBody, + params: zPostNotionPagesByPageIdByPageTypePreviewPath, + }), + ) + .output(zPostNotionPagesByPageIdByPageTypePreviewResponse) + +export const preview = { + get, + post, +} + +export const byPageType = { + preview, +} + +export const byPageId = { + byPageType, +} + +export const pages = { + byPageId, +} + +export const get2 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getNotionPreImportPages', + path: '/notion/pre-import/pages', + tags: ['console'], + }) + .output(zGetNotionPreImportPagesResponse) + +export const pages2 = { + get: get2, +} + +export const preImport = { + pages: pages2, +} + +export const notion = { + pages, + preImport, +} + +export const contract = { + notion, +} diff --git a/packages/contracts/generated/api/console/notion/types.gen.ts b/packages/contracts/generated/api/console/notion/types.gen.ts new file mode 100644 index 0000000000..c616a22286 --- /dev/null +++ b/packages/contracts/generated/api/console/notion/types.gen.ts @@ -0,0 +1,70 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type NotionEstimatePayload = { + doc_form?: string + doc_language?: string + notion_info_list: Array<{ + [key: string]: unknown + }> + process_rule: { + [key: string]: unknown + } +} + +export type GetNotionPagesByPageIdByPageTypePreviewData = { + body?: never + path: { + page_id: string + page_type: string + } + query?: never + url: '/notion/pages/{page_id}/{page_type}/preview' +} + +export type GetNotionPagesByPageIdByPageTypePreviewResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetNotionPagesByPageIdByPageTypePreviewResponse + = GetNotionPagesByPageIdByPageTypePreviewResponses[keyof GetNotionPagesByPageIdByPageTypePreviewResponses] + +export type PostNotionPagesByPageIdByPageTypePreviewData = { + body: NotionEstimatePayload + path: { + page_id: string + page_type: string + } + query?: never + url: '/notion/pages/{page_id}/{page_type}/preview' +} + +export type PostNotionPagesByPageIdByPageTypePreviewResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostNotionPagesByPageIdByPageTypePreviewResponse + = PostNotionPagesByPageIdByPageTypePreviewResponses[keyof PostNotionPagesByPageIdByPageTypePreviewResponses] + +export type GetNotionPreImportPagesData = { + body?: never + path?: never + query?: never + url: '/notion/pre-import/pages' +} + +export type GetNotionPreImportPagesResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetNotionPreImportPagesResponse + = GetNotionPreImportPagesResponses[keyof GetNotionPreImportPagesResponses] diff --git a/packages/contracts/generated/api/console/notion/zod.gen.ts b/packages/contracts/generated/api/console/notion/zod.gen.ts new file mode 100644 index 0000000000..0aad7b682c --- /dev/null +++ b/packages/contracts/generated/api/console/notion/zod.gen.ts @@ -0,0 +1,40 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * NotionEstimatePayload + */ +export const zNotionEstimatePayload = z.object({ + doc_form: z.string().optional().default('text_model'), + doc_language: z.string().optional().default('English'), + notion_info_list: z.array(z.record(z.string(), z.unknown())), + process_rule: z.record(z.string(), z.unknown()), +}) + +export const zGetNotionPagesByPageIdByPageTypePreviewPath = z.object({ + page_id: z.string(), + page_type: z.string(), +}) + +/** + * Success + */ +export const zGetNotionPagesByPageIdByPageTypePreviewResponse = z.record(z.string(), z.unknown()) + +export const zPostNotionPagesByPageIdByPageTypePreviewBody = zNotionEstimatePayload + +export const zPostNotionPagesByPageIdByPageTypePreviewPath = z.object({ + page_id: z.string(), + page_type: z.string(), +}) + +/** + * Success + */ +export const zPostNotionPagesByPageIdByPageTypePreviewResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zGetNotionPreImportPagesResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/api/console/oauth/orpc.gen.ts b/packages/contracts/generated/api/console/oauth/orpc.gen.ts new file mode 100644 index 0000000000..b9a57e3e88 --- /dev/null +++ b/packages/contracts/generated/api/console/oauth/orpc.gen.ts @@ -0,0 +1,376 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zGetOauthAuthorizeByProviderPath, + zGetOauthAuthorizeByProviderQuery, + zGetOauthAuthorizeByProviderResponse, + zGetOauthDataSourceBindingByProviderPath, + zGetOauthDataSourceBindingByProviderQuery, + zGetOauthDataSourceBindingByProviderResponse, + zGetOauthDataSourceByProviderByBindingIdSyncPath, + zGetOauthDataSourceByProviderByBindingIdSyncResponse, + zGetOauthDataSourceByProviderPath, + zGetOauthDataSourceByProviderResponse, + zGetOauthDataSourceCallbackByProviderPath, + zGetOauthDataSourceCallbackByProviderQuery, + zGetOauthDataSourceCallbackByProviderResponse, + zGetOauthLoginByProviderPath, + zGetOauthLoginByProviderQuery, + zGetOauthLoginByProviderResponse, + zGetOauthPluginByProviderIdDatasourceCallbackPath, + zGetOauthPluginByProviderIdDatasourceCallbackResponse, + zGetOauthPluginByProviderIdDatasourceGetAuthorizationUrlPath, + zGetOauthPluginByProviderIdDatasourceGetAuthorizationUrlResponse, + zGetOauthPluginByProviderToolAuthorizationUrlPath, + zGetOauthPluginByProviderToolAuthorizationUrlResponse, + zGetOauthPluginByProviderToolCallbackPath, + zGetOauthPluginByProviderToolCallbackResponse, + zGetOauthPluginByProviderTriggerCallbackPath, + zGetOauthPluginByProviderTriggerCallbackResponse, + zPostOauthProviderAccountResponse, + zPostOauthProviderAuthorizeResponse, + zPostOauthProviderResponse, + zPostOauthProviderTokenResponse, +} from './zod.gen' + +/** + * Handle OAuth callback and complete login process + */ +export const get = oc + .route({ + description: 'Handle OAuth callback and complete login process', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getOauthAuthorizeByProvider', + path: '/oauth/authorize/{provider}', + tags: ['console'], + }) + .input( + z.object({ + params: zGetOauthAuthorizeByProviderPath, + query: zGetOauthAuthorizeByProviderQuery.optional(), + }), + ) + .output(zGetOauthAuthorizeByProviderResponse) + +export const byProvider = { + get, +} + +export const authorize = { + byProvider, +} + +/** + * Bind OAuth data source with authorization code + */ +export const get2 = oc + .route({ + description: 'Bind OAuth data source with authorization code', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getOauthDataSourceBindingByProvider', + path: '/oauth/data-source/binding/{provider}', + tags: ['console'], + }) + .input( + z.object({ + params: zGetOauthDataSourceBindingByProviderPath, + query: zGetOauthDataSourceBindingByProviderQuery.optional(), + }), + ) + .output(zGetOauthDataSourceBindingByProviderResponse) + +export const byProvider2 = { + get: get2, +} + +export const binding = { + byProvider: byProvider2, +} + +/** + * Handle OAuth callback from data source provider + */ +export const get3 = oc + .route({ + description: 'Handle OAuth callback from data source provider', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getOauthDataSourceCallbackByProvider', + path: '/oauth/data-source/callback/{provider}', + tags: ['console'], + }) + .input( + z.object({ + params: zGetOauthDataSourceCallbackByProviderPath, + query: zGetOauthDataSourceCallbackByProviderQuery.optional(), + }), + ) + .output(zGetOauthDataSourceCallbackByProviderResponse) + +export const byProvider3 = { + get: get3, +} + +export const callback = { + byProvider: byProvider3, +} + +/** + * Sync data from OAuth data source + */ +export const get4 = oc + .route({ + description: 'Sync data from OAuth data source', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getOauthDataSourceByProviderByBindingIdSync', + path: '/oauth/data-source/{provider}/{binding_id}/sync', + tags: ['console'], + }) + .input(z.object({ params: zGetOauthDataSourceByProviderByBindingIdSyncPath })) + .output(zGetOauthDataSourceByProviderByBindingIdSyncResponse) + +export const sync = { + get: get4, +} + +export const byBindingId = { + sync, +} + +/** + * Get OAuth authorization URL for data source provider + */ +export const get5 = oc + .route({ + description: 'Get OAuth authorization URL for data source provider', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getOauthDataSourceByProvider', + path: '/oauth/data-source/{provider}', + tags: ['console'], + }) + .input(z.object({ params: zGetOauthDataSourceByProviderPath })) + .output(zGetOauthDataSourceByProviderResponse) + +export const byProvider4 = { + get: get5, + byBindingId, +} + +export const dataSource = { + binding, + callback, + byProvider: byProvider4, +} + +/** + * Initiate OAuth login process + */ +export const get6 = oc + .route({ + description: 'Initiate OAuth login process', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getOauthLoginByProvider', + path: '/oauth/login/{provider}', + tags: ['console'], + }) + .input( + z.object({ + params: zGetOauthLoginByProviderPath, + query: zGetOauthLoginByProviderQuery.optional(), + }), + ) + .output(zGetOauthLoginByProviderResponse) + +export const byProvider5 = { + get: get6, +} + +export const login = { + byProvider: byProvider5, +} + +export const get7 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getOauthPluginByProviderIdDatasourceCallback', + path: '/oauth/plugin/{provider_id}/datasource/callback', + tags: ['console'], + }) + .input(z.object({ params: zGetOauthPluginByProviderIdDatasourceCallbackPath })) + .output(zGetOauthPluginByProviderIdDatasourceCallbackResponse) + +export const callback2 = { + get: get7, +} + +export const get8 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getOauthPluginByProviderIdDatasourceGetAuthorizationUrl', + path: '/oauth/plugin/{provider_id}/datasource/get-authorization-url', + tags: ['console'], + }) + .input(z.object({ params: zGetOauthPluginByProviderIdDatasourceGetAuthorizationUrlPath })) + .output(zGetOauthPluginByProviderIdDatasourceGetAuthorizationUrlResponse) + +export const getAuthorizationUrl = { + get: get8, +} + +export const datasource = { + callback: callback2, + getAuthorizationUrl, +} + +export const byProviderId = { + datasource, +} + +export const get9 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getOauthPluginByProviderToolAuthorizationUrl', + path: '/oauth/plugin/{provider}/tool/authorization-url', + tags: ['console'], + }) + .input(z.object({ params: zGetOauthPluginByProviderToolAuthorizationUrlPath })) + .output(zGetOauthPluginByProviderToolAuthorizationUrlResponse) + +export const authorizationUrl = { + get: get9, +} + +export const get10 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getOauthPluginByProviderToolCallback', + path: '/oauth/plugin/{provider}/tool/callback', + tags: ['console'], + }) + .input(z.object({ params: zGetOauthPluginByProviderToolCallbackPath })) + .output(zGetOauthPluginByProviderToolCallbackResponse) + +export const callback3 = { + get: get10, +} + +export const tool = { + authorizationUrl, + callback: callback3, +} + +/** + * Handle OAuth callback for trigger provider + */ +export const get11 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getOauthPluginByProviderTriggerCallback', + path: '/oauth/plugin/{provider}/trigger/callback', + summary: 'Handle OAuth callback for trigger provider', + tags: ['console'], + }) + .input(z.object({ params: zGetOauthPluginByProviderTriggerCallbackPath })) + .output(zGetOauthPluginByProviderTriggerCallbackResponse) + +export const callback4 = { + get: get11, +} + +export const trigger = { + callback: callback4, +} + +export const byProvider6 = { + tool, + trigger, +} + +export const plugin = { + byProviderId, + byProvider: byProvider6, +} + +export const post = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postOauthProviderAccount', + path: '/oauth/provider/account', + tags: ['console'], + }) + .output(zPostOauthProviderAccountResponse) + +export const account = { + post, +} + +export const post2 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postOauthProviderAuthorize', + path: '/oauth/provider/authorize', + tags: ['console'], + }) + .output(zPostOauthProviderAuthorizeResponse) + +export const authorize2 = { + post: post2, +} + +export const post3 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postOauthProviderToken', + path: '/oauth/provider/token', + tags: ['console'], + }) + .output(zPostOauthProviderTokenResponse) + +export const token = { + post: post3, +} + +export const post4 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postOauthProvider', + path: '/oauth/provider', + tags: ['console'], + }) + .output(zPostOauthProviderResponse) + +export const provider = { + post: post4, + account, + authorize: authorize2, + token, +} + +export const oauth = { + authorize, + dataSource, + login, + plugin, + provider, +} + +export const contract = { + oauth, +} diff --git a/packages/contracts/generated/api/console/oauth/types.gen.ts b/packages/contracts/generated/api/console/oauth/types.gen.ts new file mode 100644 index 0000000000..7091cdab7c --- /dev/null +++ b/packages/contracts/generated/api/console/oauth/types.gen.ts @@ -0,0 +1,340 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type OAuthDataSourceBindingResponse = { + result: string +} + +export type OAuthDataSourceResponse = { + data: string +} + +export type OAuthDataSourceSyncResponse = { + result: string +} + +export type GetOauthAuthorizeByProviderData = { + body?: never + path: { + provider: string + } + query?: { + code?: string + state?: string + } + url: '/oauth/authorize/{provider}' +} + +export type GetOauthAuthorizeByProviderErrors = { + 400: { + [key: string]: unknown + } +} + +export type GetOauthAuthorizeByProviderError + = GetOauthAuthorizeByProviderErrors[keyof GetOauthAuthorizeByProviderErrors] + +export type GetOauthAuthorizeByProviderResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetOauthAuthorizeByProviderResponse + = GetOauthAuthorizeByProviderResponses[keyof GetOauthAuthorizeByProviderResponses] + +export type GetOauthDataSourceBindingByProviderData = { + body?: never + path: { + provider: string + } + query?: { + code?: string + } + url: '/oauth/data-source/binding/{provider}' +} + +export type GetOauthDataSourceBindingByProviderErrors = { + 400: { + [key: string]: unknown + } +} + +export type GetOauthDataSourceBindingByProviderError + = GetOauthDataSourceBindingByProviderErrors[keyof GetOauthDataSourceBindingByProviderErrors] + +export type GetOauthDataSourceBindingByProviderResponses = { + 200: OAuthDataSourceBindingResponse +} + +export type GetOauthDataSourceBindingByProviderResponse + = GetOauthDataSourceBindingByProviderResponses[keyof GetOauthDataSourceBindingByProviderResponses] + +export type GetOauthDataSourceCallbackByProviderData = { + body?: never + path: { + provider: string + } + query?: { + code?: string + error?: string + } + url: '/oauth/data-source/callback/{provider}' +} + +export type GetOauthDataSourceCallbackByProviderErrors = { + 400: { + [key: string]: unknown + } +} + +export type GetOauthDataSourceCallbackByProviderError + = GetOauthDataSourceCallbackByProviderErrors[keyof GetOauthDataSourceCallbackByProviderErrors] + +export type GetOauthDataSourceCallbackByProviderResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetOauthDataSourceCallbackByProviderResponse + = GetOauthDataSourceCallbackByProviderResponses[keyof GetOauthDataSourceCallbackByProviderResponses] + +export type GetOauthDataSourceByProviderData = { + body?: never + path: { + provider: string + } + query?: never + url: '/oauth/data-source/{provider}' +} + +export type GetOauthDataSourceByProviderErrors = { + 400: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } +} + +export type GetOauthDataSourceByProviderError + = GetOauthDataSourceByProviderErrors[keyof GetOauthDataSourceByProviderErrors] + +export type GetOauthDataSourceByProviderResponses = { + 200: OAuthDataSourceResponse +} + +export type GetOauthDataSourceByProviderResponse + = GetOauthDataSourceByProviderResponses[keyof GetOauthDataSourceByProviderResponses] + +export type GetOauthDataSourceByProviderByBindingIdSyncData = { + body?: never + path: { + provider: string + binding_id: string + } + query?: never + url: '/oauth/data-source/{provider}/{binding_id}/sync' +} + +export type GetOauthDataSourceByProviderByBindingIdSyncErrors = { + 400: { + [key: string]: unknown + } +} + +export type GetOauthDataSourceByProviderByBindingIdSyncError + = GetOauthDataSourceByProviderByBindingIdSyncErrors[keyof GetOauthDataSourceByProviderByBindingIdSyncErrors] + +export type GetOauthDataSourceByProviderByBindingIdSyncResponses = { + 200: OAuthDataSourceSyncResponse +} + +export type GetOauthDataSourceByProviderByBindingIdSyncResponse + = GetOauthDataSourceByProviderByBindingIdSyncResponses[keyof GetOauthDataSourceByProviderByBindingIdSyncResponses] + +export type GetOauthLoginByProviderData = { + body?: never + path: { + provider: string + } + query?: { + invite_token?: string + } + url: '/oauth/login/{provider}' +} + +export type GetOauthLoginByProviderErrors = { + 400: { + [key: string]: unknown + } +} + +export type GetOauthLoginByProviderError + = GetOauthLoginByProviderErrors[keyof GetOauthLoginByProviderErrors] + +export type GetOauthLoginByProviderResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetOauthLoginByProviderResponse + = GetOauthLoginByProviderResponses[keyof GetOauthLoginByProviderResponses] + +export type GetOauthPluginByProviderIdDatasourceCallbackData = { + body?: never + path: { + provider_id: string + } + query?: never + url: '/oauth/plugin/{provider_id}/datasource/callback' +} + +export type GetOauthPluginByProviderIdDatasourceCallbackResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetOauthPluginByProviderIdDatasourceCallbackResponse + = GetOauthPluginByProviderIdDatasourceCallbackResponses[keyof GetOauthPluginByProviderIdDatasourceCallbackResponses] + +export type GetOauthPluginByProviderIdDatasourceGetAuthorizationUrlData = { + body?: never + path: { + provider_id: string + } + query?: never + url: '/oauth/plugin/{provider_id}/datasource/get-authorization-url' +} + +export type GetOauthPluginByProviderIdDatasourceGetAuthorizationUrlResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetOauthPluginByProviderIdDatasourceGetAuthorizationUrlResponse + = GetOauthPluginByProviderIdDatasourceGetAuthorizationUrlResponses[keyof GetOauthPluginByProviderIdDatasourceGetAuthorizationUrlResponses] + +export type GetOauthPluginByProviderToolAuthorizationUrlData = { + body?: never + path: { + provider: string + } + query?: never + url: '/oauth/plugin/{provider}/tool/authorization-url' +} + +export type GetOauthPluginByProviderToolAuthorizationUrlResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetOauthPluginByProviderToolAuthorizationUrlResponse + = GetOauthPluginByProviderToolAuthorizationUrlResponses[keyof GetOauthPluginByProviderToolAuthorizationUrlResponses] + +export type GetOauthPluginByProviderToolCallbackData = { + body?: never + path: { + provider: string + } + query?: never + url: '/oauth/plugin/{provider}/tool/callback' +} + +export type GetOauthPluginByProviderToolCallbackResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetOauthPluginByProviderToolCallbackResponse + = GetOauthPluginByProviderToolCallbackResponses[keyof GetOauthPluginByProviderToolCallbackResponses] + +export type GetOauthPluginByProviderTriggerCallbackData = { + body?: never + path: { + provider: string + } + query?: never + url: '/oauth/plugin/{provider}/trigger/callback' +} + +export type GetOauthPluginByProviderTriggerCallbackResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetOauthPluginByProviderTriggerCallbackResponse + = GetOauthPluginByProviderTriggerCallbackResponses[keyof GetOauthPluginByProviderTriggerCallbackResponses] + +export type PostOauthProviderData = { + body?: never + path?: never + query?: never + url: '/oauth/provider' +} + +export type PostOauthProviderResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostOauthProviderResponse = PostOauthProviderResponses[keyof PostOauthProviderResponses] + +export type PostOauthProviderAccountData = { + body?: never + path?: never + query?: never + url: '/oauth/provider/account' +} + +export type PostOauthProviderAccountResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostOauthProviderAccountResponse + = PostOauthProviderAccountResponses[keyof PostOauthProviderAccountResponses] + +export type PostOauthProviderAuthorizeData = { + body?: never + path?: never + query?: never + url: '/oauth/provider/authorize' +} + +export type PostOauthProviderAuthorizeResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostOauthProviderAuthorizeResponse + = PostOauthProviderAuthorizeResponses[keyof PostOauthProviderAuthorizeResponses] + +export type PostOauthProviderTokenData = { + body?: never + path?: never + query?: never + url: '/oauth/provider/token' +} + +export type PostOauthProviderTokenResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostOauthProviderTokenResponse + = PostOauthProviderTokenResponses[keyof PostOauthProviderTokenResponses] diff --git a/packages/contracts/generated/api/console/oauth/zod.gen.ts b/packages/contracts/generated/api/console/oauth/zod.gen.ts new file mode 100644 index 0000000000..22f2c4bd76 --- /dev/null +++ b/packages/contracts/generated/api/console/oauth/zod.gen.ts @@ -0,0 +1,171 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * OAuthDataSourceBindingResponse + */ +export const zOAuthDataSourceBindingResponse = z.object({ + result: z.string(), +}) + +/** + * OAuthDataSourceResponse + */ +export const zOAuthDataSourceResponse = z.object({ + data: z.string(), +}) + +/** + * OAuthDataSourceSyncResponse + */ +export const zOAuthDataSourceSyncResponse = z.object({ + result: z.string(), +}) + +export const zGetOauthAuthorizeByProviderPath = z.object({ + provider: z.string(), +}) + +export const zGetOauthAuthorizeByProviderQuery = z.object({ + code: z.string().optional(), + state: z.string().optional(), +}) + +/** + * Success + */ +export const zGetOauthAuthorizeByProviderResponse = z.record(z.string(), z.unknown()) + +export const zGetOauthDataSourceBindingByProviderPath = z.object({ + provider: z.string(), +}) + +export const zGetOauthDataSourceBindingByProviderQuery = z.object({ + code: z.string().optional(), +}) + +/** + * Data source binding success + */ +export const zGetOauthDataSourceBindingByProviderResponse = zOAuthDataSourceBindingResponse + +export const zGetOauthDataSourceCallbackByProviderPath = z.object({ + provider: z.string(), +}) + +export const zGetOauthDataSourceCallbackByProviderQuery = z.object({ + code: z.string().optional(), + error: z.string().optional(), +}) + +/** + * Success + */ +export const zGetOauthDataSourceCallbackByProviderResponse = z.record(z.string(), z.unknown()) + +export const zGetOauthDataSourceByProviderPath = z.object({ + provider: z.string(), +}) + +/** + * Authorization URL or internal setup success + */ +export const zGetOauthDataSourceByProviderResponse = zOAuthDataSourceResponse + +export const zGetOauthDataSourceByProviderByBindingIdSyncPath = z.object({ + provider: z.string(), + binding_id: z.string(), +}) + +/** + * Data source sync success + */ +export const zGetOauthDataSourceByProviderByBindingIdSyncResponse = zOAuthDataSourceSyncResponse + +export const zGetOauthLoginByProviderPath = z.object({ + provider: z.string(), +}) + +export const zGetOauthLoginByProviderQuery = z.object({ + invite_token: z.string().optional(), +}) + +/** + * Success + */ +export const zGetOauthLoginByProviderResponse = z.record(z.string(), z.unknown()) + +export const zGetOauthPluginByProviderIdDatasourceCallbackPath = z.object({ + provider_id: z.string(), +}) + +/** + * Success + */ +export const zGetOauthPluginByProviderIdDatasourceCallbackResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetOauthPluginByProviderIdDatasourceGetAuthorizationUrlPath = z.object({ + provider_id: z.string(), +}) + +/** + * Success + */ +export const zGetOauthPluginByProviderIdDatasourceGetAuthorizationUrlResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetOauthPluginByProviderToolAuthorizationUrlPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zGetOauthPluginByProviderToolAuthorizationUrlResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetOauthPluginByProviderToolCallbackPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zGetOauthPluginByProviderToolCallbackResponse = z.record(z.string(), z.unknown()) + +export const zGetOauthPluginByProviderTriggerCallbackPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zGetOauthPluginByProviderTriggerCallbackResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zPostOauthProviderResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zPostOauthProviderAccountResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zPostOauthProviderAuthorizeResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zPostOauthProviderTokenResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/api/console/rag/orpc.gen.ts b/packages/contracts/generated/api/console/rag/orpc.gen.ts new file mode 100644 index 0000000000..a642a91ba1 --- /dev/null +++ b/packages/contracts/generated/api/console/rag/orpc.gen.ts @@ -0,0 +1,1230 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zDeleteRagPipelineCustomizedTemplatesByTemplateIdPath, + zDeleteRagPipelineCustomizedTemplatesByTemplateIdResponse, + zDeleteRagPipelinesByPipelineIdWorkflowsByWorkflowIdPath, + zDeleteRagPipelinesByPipelineIdWorkflowsByWorkflowIdResponse, + zDeleteRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariablesPath, + zDeleteRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariablesResponse, + zDeleteRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdPath, + zDeleteRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResponse, + zDeleteRagPipelinesByPipelineIdWorkflowsDraftVariablesPath, + zDeleteRagPipelinesByPipelineIdWorkflowsDraftVariablesResponse, + zGetRagPipelinesByPipelineIdExportsPath, + zGetRagPipelinesByPipelineIdExportsResponse, + zGetRagPipelinesByPipelineIdWorkflowRunsByRunIdNodeExecutionsPath, + zGetRagPipelinesByPipelineIdWorkflowRunsByRunIdNodeExecutionsResponse, + zGetRagPipelinesByPipelineIdWorkflowRunsByRunIdPath, + zGetRagPipelinesByPipelineIdWorkflowRunsByRunIdResponse, + zGetRagPipelinesByPipelineIdWorkflowRunsPath, + zGetRagPipelinesByPipelineIdWorkflowRunsResponse, + zGetRagPipelinesByPipelineIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypePath, + zGetRagPipelinesByPipelineIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypeResponse, + zGetRagPipelinesByPipelineIdWorkflowsDefaultWorkflowBlockConfigsPath, + zGetRagPipelinesByPipelineIdWorkflowsDefaultWorkflowBlockConfigsResponse, + zGetRagPipelinesByPipelineIdWorkflowsDraftEnvironmentVariablesPath, + zGetRagPipelinesByPipelineIdWorkflowsDraftEnvironmentVariablesResponse, + zGetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdLastRunPath, + zGetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdLastRunResponse, + zGetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariablesPath, + zGetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariablesResponse, + zGetRagPipelinesByPipelineIdWorkflowsDraftPath, + zGetRagPipelinesByPipelineIdWorkflowsDraftPreProcessingParametersPath, + zGetRagPipelinesByPipelineIdWorkflowsDraftPreProcessingParametersResponse, + zGetRagPipelinesByPipelineIdWorkflowsDraftProcessingParametersPath, + zGetRagPipelinesByPipelineIdWorkflowsDraftProcessingParametersResponse, + zGetRagPipelinesByPipelineIdWorkflowsDraftResponse, + zGetRagPipelinesByPipelineIdWorkflowsDraftSystemVariablesPath, + zGetRagPipelinesByPipelineIdWorkflowsDraftSystemVariablesResponse, + zGetRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdPath, + zGetRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResponse, + zGetRagPipelinesByPipelineIdWorkflowsDraftVariablesPath, + zGetRagPipelinesByPipelineIdWorkflowsDraftVariablesResponse, + zGetRagPipelinesByPipelineIdWorkflowsPath, + zGetRagPipelinesByPipelineIdWorkflowsPublishedPreProcessingParametersPath, + zGetRagPipelinesByPipelineIdWorkflowsPublishedPreProcessingParametersResponse, + zGetRagPipelinesByPipelineIdWorkflowsPublishedProcessingParametersPath, + zGetRagPipelinesByPipelineIdWorkflowsPublishedProcessingParametersResponse, + zGetRagPipelinesByPipelineIdWorkflowsPublishPath, + zGetRagPipelinesByPipelineIdWorkflowsPublishResponse, + zGetRagPipelinesByPipelineIdWorkflowsResponse, + zGetRagPipelinesDatasourcePluginsResponse, + zGetRagPipelinesImportsByPipelineIdCheckDependenciesPath, + zGetRagPipelinesImportsByPipelineIdCheckDependenciesResponse, + zGetRagPipelinesRecommendedPluginsResponse, + zGetRagPipelineTemplatesByTemplateIdPath, + zGetRagPipelineTemplatesByTemplateIdResponse, + zGetRagPipelineTemplatesResponse, + zPatchRagPipelineCustomizedTemplatesByTemplateIdPath, + zPatchRagPipelineCustomizedTemplatesByTemplateIdResponse, + zPatchRagPipelinesByPipelineIdWorkflowsByWorkflowIdPath, + zPatchRagPipelinesByPipelineIdWorkflowsByWorkflowIdResponse, + zPatchRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdPath, + zPatchRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResponse, + zPostRagPipelineCustomizedTemplatesByTemplateIdPath, + zPostRagPipelineCustomizedTemplatesByTemplateIdResponse, + zPostRagPipelineDatasetBody, + zPostRagPipelineDatasetResponse, + zPostRagPipelineEmptyDatasetResponse, + zPostRagPipelinesByPipelineIdCustomizedPublishBody, + zPostRagPipelinesByPipelineIdCustomizedPublishPath, + zPostRagPipelinesByPipelineIdCustomizedPublishResponse, + zPostRagPipelinesByPipelineIdWorkflowRunsTasksByTaskIdStopPath, + zPostRagPipelinesByPipelineIdWorkflowRunsTasksByTaskIdStopResponse, + zPostRagPipelinesByPipelineIdWorkflowsByWorkflowIdRestorePath, + zPostRagPipelinesByPipelineIdWorkflowsByWorkflowIdRestoreResponse, + zPostRagPipelinesByPipelineIdWorkflowsDraftDatasourceNodesByNodeIdRunBody, + zPostRagPipelinesByPipelineIdWorkflowsDraftDatasourceNodesByNodeIdRunPath, + zPostRagPipelinesByPipelineIdWorkflowsDraftDatasourceNodesByNodeIdRunResponse, + zPostRagPipelinesByPipelineIdWorkflowsDraftDatasourceVariablesInspectBody, + zPostRagPipelinesByPipelineIdWorkflowsDraftDatasourceVariablesInspectPath, + zPostRagPipelinesByPipelineIdWorkflowsDraftDatasourceVariablesInspectResponse, + zPostRagPipelinesByPipelineIdWorkflowsDraftIterationNodesByNodeIdRunBody, + zPostRagPipelinesByPipelineIdWorkflowsDraftIterationNodesByNodeIdRunPath, + zPostRagPipelinesByPipelineIdWorkflowsDraftIterationNodesByNodeIdRunResponse, + zPostRagPipelinesByPipelineIdWorkflowsDraftLoopNodesByNodeIdRunBody, + zPostRagPipelinesByPipelineIdWorkflowsDraftLoopNodesByNodeIdRunPath, + zPostRagPipelinesByPipelineIdWorkflowsDraftLoopNodesByNodeIdRunResponse, + zPostRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdRunBody, + zPostRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdRunPath, + zPostRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdRunResponse, + zPostRagPipelinesByPipelineIdWorkflowsDraftPath, + zPostRagPipelinesByPipelineIdWorkflowsDraftResponse, + zPostRagPipelinesByPipelineIdWorkflowsDraftRunBody, + zPostRagPipelinesByPipelineIdWorkflowsDraftRunPath, + zPostRagPipelinesByPipelineIdWorkflowsDraftRunResponse, + zPostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdPreviewBody, + zPostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdPreviewPath, + zPostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdPreviewResponse, + zPostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdRunBody, + zPostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdRunPath, + zPostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdRunResponse, + zPostRagPipelinesByPipelineIdWorkflowsPublishedRunBody, + zPostRagPipelinesByPipelineIdWorkflowsPublishedRunPath, + zPostRagPipelinesByPipelineIdWorkflowsPublishedRunResponse, + zPostRagPipelinesByPipelineIdWorkflowsPublishPath, + zPostRagPipelinesByPipelineIdWorkflowsPublishResponse, + zPostRagPipelinesImportsBody, + zPostRagPipelinesImportsByImportIdConfirmPath, + zPostRagPipelinesImportsByImportIdConfirmResponse, + zPostRagPipelinesImportsResponse, + zPostRagPipelinesTransformDatasetsByDatasetIdPath, + zPostRagPipelinesTransformDatasetsByDatasetIdResponse, + zPutRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResetPath, + zPutRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResetResponse, +} from './zod.gen' + +export const delete_ = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteRagPipelineCustomizedTemplatesByTemplateId', + path: '/rag/pipeline/customized/templates/{template_id}', + tags: ['console'], + }) + .input(z.object({ params: zDeleteRagPipelineCustomizedTemplatesByTemplateIdPath })) + .output(zDeleteRagPipelineCustomizedTemplatesByTemplateIdResponse) + +export const patch = oc + .route({ + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchRagPipelineCustomizedTemplatesByTemplateId', + path: '/rag/pipeline/customized/templates/{template_id}', + tags: ['console'], + }) + .input(z.object({ params: zPatchRagPipelineCustomizedTemplatesByTemplateIdPath })) + .output(zPatchRagPipelineCustomizedTemplatesByTemplateIdResponse) + +export const post = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postRagPipelineCustomizedTemplatesByTemplateId', + path: '/rag/pipeline/customized/templates/{template_id}', + tags: ['console'], + }) + .input(z.object({ params: zPostRagPipelineCustomizedTemplatesByTemplateIdPath })) + .output(zPostRagPipelineCustomizedTemplatesByTemplateIdResponse) + +export const byTemplateId = { + delete: delete_, + patch, + post, +} + +export const templates = { + byTemplateId, +} + +export const customized = { + templates, +} + +export const post2 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postRagPipelineDataset', + path: '/rag/pipeline/dataset', + tags: ['console'], + }) + .input(z.object({ body: zPostRagPipelineDatasetBody })) + .output(zPostRagPipelineDatasetResponse) + +export const dataset = { + post: post2, +} + +export const post3 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postRagPipelineEmptyDataset', + path: '/rag/pipeline/empty-dataset', + tags: ['console'], + }) + .output(zPostRagPipelineEmptyDatasetResponse) + +export const emptyDataset = { + post: post3, +} + +export const get = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getRagPipelineTemplatesByTemplateId', + path: '/rag/pipeline/templates/{template_id}', + tags: ['console'], + }) + .input(z.object({ params: zGetRagPipelineTemplatesByTemplateIdPath })) + .output(zGetRagPipelineTemplatesByTemplateIdResponse) + +export const byTemplateId2 = { + get, +} + +export const get2 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getRagPipelineTemplates', + path: '/rag/pipeline/templates', + tags: ['console'], + }) + .output(zGetRagPipelineTemplatesResponse) + +export const templates2 = { + get: get2, + byTemplateId: byTemplateId2, +} + +export const pipeline = { + customized, + dataset, + emptyDataset, + templates: templates2, +} + +export const get3 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getRagPipelinesDatasourcePlugins', + path: '/rag/pipelines/datasource-plugins', + tags: ['console'], + }) + .output(zGetRagPipelinesDatasourcePluginsResponse) + +export const datasourcePlugins = { + get: get3, +} + +export const post4 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postRagPipelinesImportsByImportIdConfirm', + path: '/rag/pipelines/imports/{import_id}/confirm', + tags: ['console'], + }) + .input(z.object({ params: zPostRagPipelinesImportsByImportIdConfirmPath })) + .output(zPostRagPipelinesImportsByImportIdConfirmResponse) + +export const confirm = { + post: post4, +} + +export const byImportId = { + confirm, +} + +export const get4 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getRagPipelinesImportsByPipelineIdCheckDependencies', + path: '/rag/pipelines/imports/{pipeline_id}/check-dependencies', + tags: ['console'], + }) + .input(z.object({ params: zGetRagPipelinesImportsByPipelineIdCheckDependenciesPath })) + .output(zGetRagPipelinesImportsByPipelineIdCheckDependenciesResponse) + +export const checkDependencies = { + get: get4, +} + +export const byPipelineId = { + checkDependencies, +} + +export const post5 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postRagPipelinesImports', + path: '/rag/pipelines/imports', + tags: ['console'], + }) + .input(z.object({ body: zPostRagPipelinesImportsBody })) + .output(zPostRagPipelinesImportsResponse) + +export const imports = { + post: post5, + byImportId, + byPipelineId, +} + +export const get5 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getRagPipelinesRecommendedPlugins', + path: '/rag/pipelines/recommended-plugins', + tags: ['console'], + }) + .output(zGetRagPipelinesRecommendedPluginsResponse) + +export const recommendedPlugins = { + get: get5, +} + +export const post6 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postRagPipelinesTransformDatasetsByDatasetId', + path: '/rag/pipelines/transform/datasets/{dataset_id}', + tags: ['console'], + }) + .input(z.object({ params: zPostRagPipelinesTransformDatasetsByDatasetIdPath })) + .output(zPostRagPipelinesTransformDatasetsByDatasetIdResponse) + +export const byDatasetId = { + post: post6, +} + +export const datasets = { + byDatasetId, +} + +export const transform = { + datasets, +} + +export const post7 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postRagPipelinesByPipelineIdCustomizedPublish', + path: '/rag/pipelines/{pipeline_id}/customized/publish', + tags: ['console'], + }) + .input( + z.object({ + body: zPostRagPipelinesByPipelineIdCustomizedPublishBody, + params: zPostRagPipelinesByPipelineIdCustomizedPublishPath, + }), + ) + .output(zPostRagPipelinesByPipelineIdCustomizedPublishResponse) + +export const publish = { + post: post7, +} + +export const customized2 = { + publish, +} + +export const get6 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getRagPipelinesByPipelineIdExports', + path: '/rag/pipelines/{pipeline_id}/exports', + tags: ['console'], + }) + .input(z.object({ params: zGetRagPipelinesByPipelineIdExportsPath })) + .output(zGetRagPipelinesByPipelineIdExportsResponse) + +export const exports_ = { + get: get6, +} + +/** + * Stop workflow task + */ +export const post8 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postRagPipelinesByPipelineIdWorkflowRunsTasksByTaskIdStop', + path: '/rag/pipelines/{pipeline_id}/workflow-runs/tasks/{task_id}/stop', + summary: 'Stop workflow task', + tags: ['console'], + }) + .input(z.object({ params: zPostRagPipelinesByPipelineIdWorkflowRunsTasksByTaskIdStopPath })) + .output(zPostRagPipelinesByPipelineIdWorkflowRunsTasksByTaskIdStopResponse) + +export const stop = { + post: post8, +} + +export const byTaskId = { + stop, +} + +export const tasks = { + byTaskId, +} + +/** + * Get workflow run node execution list + */ +export const get7 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getRagPipelinesByPipelineIdWorkflowRunsByRunIdNodeExecutions', + path: '/rag/pipelines/{pipeline_id}/workflow-runs/{run_id}/node-executions', + summary: 'Get workflow run node execution list', + tags: ['console'], + }) + .input(z.object({ params: zGetRagPipelinesByPipelineIdWorkflowRunsByRunIdNodeExecutionsPath })) + .output(zGetRagPipelinesByPipelineIdWorkflowRunsByRunIdNodeExecutionsResponse) + +export const nodeExecutions = { + get: get7, +} + +/** + * Get workflow run detail + */ +export const get8 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getRagPipelinesByPipelineIdWorkflowRunsByRunId', + path: '/rag/pipelines/{pipeline_id}/workflow-runs/{run_id}', + summary: 'Get workflow run detail', + tags: ['console'], + }) + .input(z.object({ params: zGetRagPipelinesByPipelineIdWorkflowRunsByRunIdPath })) + .output(zGetRagPipelinesByPipelineIdWorkflowRunsByRunIdResponse) + +export const byRunId = { + get: get8, + nodeExecutions, +} + +/** + * Get workflow run list + */ +export const get9 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getRagPipelinesByPipelineIdWorkflowRuns', + path: '/rag/pipelines/{pipeline_id}/workflow-runs', + summary: 'Get workflow run list', + tags: ['console'], + }) + .input(z.object({ params: zGetRagPipelinesByPipelineIdWorkflowRunsPath })) + .output(zGetRagPipelinesByPipelineIdWorkflowRunsResponse) + +export const workflowRuns = { + get: get9, + tasks, + byRunId, +} + +/** + * Get default block config + */ +export const get10 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getRagPipelinesByPipelineIdWorkflowsDefaultWorkflowBlockConfigsByBlockType', + path: '/rag/pipelines/{pipeline_id}/workflows/default-workflow-block-configs/{block_type}', + summary: 'Get default block config', + tags: ['console'], + }) + .input( + z.object({ + params: zGetRagPipelinesByPipelineIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypePath, + }), + ) + .output(zGetRagPipelinesByPipelineIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypeResponse) + +export const byBlockType = { + get: get10, +} + +/** + * Get default block config + */ +export const get11 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getRagPipelinesByPipelineIdWorkflowsDefaultWorkflowBlockConfigs', + path: '/rag/pipelines/{pipeline_id}/workflows/default-workflow-block-configs', + summary: 'Get default block config', + tags: ['console'], + }) + .input(z.object({ params: zGetRagPipelinesByPipelineIdWorkflowsDefaultWorkflowBlockConfigsPath })) + .output(zGetRagPipelinesByPipelineIdWorkflowsDefaultWorkflowBlockConfigsResponse) + +export const defaultWorkflowBlockConfigs = { + get: get11, + byBlockType, +} + +/** + * Run rag pipeline datasource + */ +export const post9 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postRagPipelinesByPipelineIdWorkflowsDraftDatasourceNodesByNodeIdRun', + path: '/rag/pipelines/{pipeline_id}/workflows/draft/datasource/nodes/{node_id}/run', + summary: 'Run rag pipeline datasource', + tags: ['console'], + }) + .input( + z.object({ + body: zPostRagPipelinesByPipelineIdWorkflowsDraftDatasourceNodesByNodeIdRunBody, + params: zPostRagPipelinesByPipelineIdWorkflowsDraftDatasourceNodesByNodeIdRunPath, + }), + ) + .output(zPostRagPipelinesByPipelineIdWorkflowsDraftDatasourceNodesByNodeIdRunResponse) + +export const run = { + post: post9, +} + +export const byNodeId = { + run, +} + +export const nodes = { + byNodeId, +} + +/** + * Set datasource variables + */ +export const post10 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postRagPipelinesByPipelineIdWorkflowsDraftDatasourceVariablesInspect', + path: '/rag/pipelines/{pipeline_id}/workflows/draft/datasource/variables-inspect', + summary: 'Set datasource variables', + tags: ['console'], + }) + .input( + z.object({ + body: zPostRagPipelinesByPipelineIdWorkflowsDraftDatasourceVariablesInspectBody, + params: zPostRagPipelinesByPipelineIdWorkflowsDraftDatasourceVariablesInspectPath, + }), + ) + .output(zPostRagPipelinesByPipelineIdWorkflowsDraftDatasourceVariablesInspectResponse) + +export const variablesInspect = { + post: post10, +} + +export const datasource = { + nodes, + variablesInspect, +} + +export const get12 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getRagPipelinesByPipelineIdWorkflowsDraftEnvironmentVariables', + path: '/rag/pipelines/{pipeline_id}/workflows/draft/environment-variables', + tags: ['console'], + }) + .input(z.object({ params: zGetRagPipelinesByPipelineIdWorkflowsDraftEnvironmentVariablesPath })) + .output(zGetRagPipelinesByPipelineIdWorkflowsDraftEnvironmentVariablesResponse) + +export const environmentVariables = { + get: get12, +} + +/** + * Run draft workflow iteration node + */ +export const post11 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postRagPipelinesByPipelineIdWorkflowsDraftIterationNodesByNodeIdRun', + path: '/rag/pipelines/{pipeline_id}/workflows/draft/iteration/nodes/{node_id}/run', + summary: 'Run draft workflow iteration node', + tags: ['console'], + }) + .input( + z.object({ + body: zPostRagPipelinesByPipelineIdWorkflowsDraftIterationNodesByNodeIdRunBody, + params: zPostRagPipelinesByPipelineIdWorkflowsDraftIterationNodesByNodeIdRunPath, + }), + ) + .output(zPostRagPipelinesByPipelineIdWorkflowsDraftIterationNodesByNodeIdRunResponse) + +export const run2 = { + post: post11, +} + +export const byNodeId2 = { + run: run2, +} + +export const nodes2 = { + byNodeId: byNodeId2, +} + +export const iteration = { + nodes: nodes2, +} + +/** + * Run draft workflow loop node + */ +export const post12 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postRagPipelinesByPipelineIdWorkflowsDraftLoopNodesByNodeIdRun', + path: '/rag/pipelines/{pipeline_id}/workflows/draft/loop/nodes/{node_id}/run', + summary: 'Run draft workflow loop node', + tags: ['console'], + }) + .input( + z.object({ + body: zPostRagPipelinesByPipelineIdWorkflowsDraftLoopNodesByNodeIdRunBody, + params: zPostRagPipelinesByPipelineIdWorkflowsDraftLoopNodesByNodeIdRunPath, + }), + ) + .output(zPostRagPipelinesByPipelineIdWorkflowsDraftLoopNodesByNodeIdRunResponse) + +export const run3 = { + post: post12, +} + +export const byNodeId3 = { + run: run3, +} + +export const nodes3 = { + byNodeId: byNodeId3, +} + +export const loop = { + nodes: nodes3, +} + +export const get13 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdLastRun', + path: '/rag/pipelines/{pipeline_id}/workflows/draft/nodes/{node_id}/last-run', + tags: ['console'], + }) + .input(z.object({ params: zGetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdLastRunPath })) + .output(zGetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdLastRunResponse) + +export const lastRun = { + get: get13, +} + +/** + * Run draft workflow node + */ +export const post13 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdRun', + path: '/rag/pipelines/{pipeline_id}/workflows/draft/nodes/{node_id}/run', + summary: 'Run draft workflow node', + tags: ['console'], + }) + .input( + z.object({ + body: zPostRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdRunBody, + params: zPostRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdRunPath, + }), + ) + .output(zPostRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdRunResponse) + +export const run4 = { + post: post13, +} + +export const delete2 = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariables', + path: '/rag/pipelines/{pipeline_id}/workflows/draft/nodes/{node_id}/variables', + tags: ['console'], + }) + .input( + z.object({ params: zDeleteRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariablesPath }), + ) + .output(zDeleteRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariablesResponse) + +export const get14 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariables', + path: '/rag/pipelines/{pipeline_id}/workflows/draft/nodes/{node_id}/variables', + tags: ['console'], + }) + .input(z.object({ params: zGetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariablesPath })) + .output(zGetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariablesResponse) + +export const variables = { + delete: delete2, + get: get14, +} + +export const byNodeId4 = { + lastRun, + run: run4, + variables, +} + +export const nodes4 = { + byNodeId: byNodeId4, +} + +/** + * Get first step parameters of rag pipeline + */ +export const get15 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getRagPipelinesByPipelineIdWorkflowsDraftPreProcessingParameters', + path: '/rag/pipelines/{pipeline_id}/workflows/draft/pre-processing/parameters', + summary: 'Get first step parameters of rag pipeline', + tags: ['console'], + }) + .input( + z.object({ params: zGetRagPipelinesByPipelineIdWorkflowsDraftPreProcessingParametersPath }), + ) + .output(zGetRagPipelinesByPipelineIdWorkflowsDraftPreProcessingParametersResponse) + +export const parameters = { + get: get15, +} + +export const preProcessing = { + parameters, +} + +/** + * Get second step parameters of rag pipeline + */ +export const get16 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getRagPipelinesByPipelineIdWorkflowsDraftProcessingParameters', + path: '/rag/pipelines/{pipeline_id}/workflows/draft/processing/parameters', + summary: 'Get second step parameters of rag pipeline', + tags: ['console'], + }) + .input(z.object({ params: zGetRagPipelinesByPipelineIdWorkflowsDraftProcessingParametersPath })) + .output(zGetRagPipelinesByPipelineIdWorkflowsDraftProcessingParametersResponse) + +export const parameters2 = { + get: get16, +} + +export const processing = { + parameters: parameters2, +} + +/** + * Run draft workflow + */ +export const post14 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postRagPipelinesByPipelineIdWorkflowsDraftRun', + path: '/rag/pipelines/{pipeline_id}/workflows/draft/run', + summary: 'Run draft workflow', + tags: ['console'], + }) + .input( + z.object({ + body: zPostRagPipelinesByPipelineIdWorkflowsDraftRunBody, + params: zPostRagPipelinesByPipelineIdWorkflowsDraftRunPath, + }), + ) + .output(zPostRagPipelinesByPipelineIdWorkflowsDraftRunResponse) + +export const run5 = { + post: post14, +} + +export const get17 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getRagPipelinesByPipelineIdWorkflowsDraftSystemVariables', + path: '/rag/pipelines/{pipeline_id}/workflows/draft/system-variables', + tags: ['console'], + }) + .input(z.object({ params: zGetRagPipelinesByPipelineIdWorkflowsDraftSystemVariablesPath })) + .output(zGetRagPipelinesByPipelineIdWorkflowsDraftSystemVariablesResponse) + +export const systemVariables = { + get: get17, +} + +export const put = oc + .route({ + inputStructure: 'detailed', + method: 'PUT', + operationId: 'putRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdReset', + path: '/rag/pipelines/{pipeline_id}/workflows/draft/variables/{variable_id}/reset', + tags: ['console'], + }) + .input( + z.object({ params: zPutRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResetPath }), + ) + .output(zPutRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResetResponse) + +export const reset = { + put, +} + +export const delete3 = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableId', + path: '/rag/pipelines/{pipeline_id}/workflows/draft/variables/{variable_id}', + tags: ['console'], + }) + .input( + z.object({ params: zDeleteRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdPath }), + ) + .output(zDeleteRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResponse) + +export const get18 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableId', + path: '/rag/pipelines/{pipeline_id}/workflows/draft/variables/{variable_id}', + tags: ['console'], + }) + .input(z.object({ params: zGetRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdPath })) + .output(zGetRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResponse) + +export const patch2 = oc + .route({ + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableId', + path: '/rag/pipelines/{pipeline_id}/workflows/draft/variables/{variable_id}', + tags: ['console'], + }) + .input( + z.object({ params: zPatchRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdPath }), + ) + .output(zPatchRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResponse) + +export const byVariableId = { + delete: delete3, + get: get18, + patch: patch2, + reset, +} + +export const delete4 = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteRagPipelinesByPipelineIdWorkflowsDraftVariables', + path: '/rag/pipelines/{pipeline_id}/workflows/draft/variables', + tags: ['console'], + }) + .input(z.object({ params: zDeleteRagPipelinesByPipelineIdWorkflowsDraftVariablesPath })) + .output(zDeleteRagPipelinesByPipelineIdWorkflowsDraftVariablesResponse) + +export const get19 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getRagPipelinesByPipelineIdWorkflowsDraftVariables', + path: '/rag/pipelines/{pipeline_id}/workflows/draft/variables', + tags: ['console'], + }) + .input(z.object({ params: zGetRagPipelinesByPipelineIdWorkflowsDraftVariablesPath })) + .output(zGetRagPipelinesByPipelineIdWorkflowsDraftVariablesResponse) + +export const variables2 = { + delete: delete4, + get: get19, + byVariableId, +} + +/** + * Get draft rag pipeline's workflow + */ +export const get20 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getRagPipelinesByPipelineIdWorkflowsDraft', + path: '/rag/pipelines/{pipeline_id}/workflows/draft', + summary: 'Get draft rag pipeline\'s workflow', + tags: ['console'], + }) + .input(z.object({ params: zGetRagPipelinesByPipelineIdWorkflowsDraftPath })) + .output(zGetRagPipelinesByPipelineIdWorkflowsDraftResponse) + +/** + * Sync draft workflow + */ +export const post15 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postRagPipelinesByPipelineIdWorkflowsDraft', + path: '/rag/pipelines/{pipeline_id}/workflows/draft', + summary: 'Sync draft workflow', + tags: ['console'], + }) + .input(z.object({ params: zPostRagPipelinesByPipelineIdWorkflowsDraftPath })) + .output(zPostRagPipelinesByPipelineIdWorkflowsDraftResponse) + +export const draft = { + get: get20, + post: post15, + datasource, + environmentVariables, + iteration, + loop, + nodes: nodes4, + preProcessing, + processing, + run: run5, + systemVariables, + variables: variables2, +} + +/** + * Get published pipeline + */ +export const get21 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getRagPipelinesByPipelineIdWorkflowsPublish', + path: '/rag/pipelines/{pipeline_id}/workflows/publish', + summary: 'Get published pipeline', + tags: ['console'], + }) + .input(z.object({ params: zGetRagPipelinesByPipelineIdWorkflowsPublishPath })) + .output(zGetRagPipelinesByPipelineIdWorkflowsPublishResponse) + +/** + * Publish workflow + */ +export const post16 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postRagPipelinesByPipelineIdWorkflowsPublish', + path: '/rag/pipelines/{pipeline_id}/workflows/publish', + summary: 'Publish workflow', + tags: ['console'], + }) + .input(z.object({ params: zPostRagPipelinesByPipelineIdWorkflowsPublishPath })) + .output(zPostRagPipelinesByPipelineIdWorkflowsPublishResponse) + +export const publish2 = { + get: get21, + post: post16, +} + +/** + * Run datasource content preview + */ +export const post17 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdPreview', + path: '/rag/pipelines/{pipeline_id}/workflows/published/datasource/nodes/{node_id}/preview', + summary: 'Run datasource content preview', + tags: ['console'], + }) + .input( + z.object({ + body: zPostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdPreviewBody, + params: zPostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdPreviewPath, + }), + ) + .output(zPostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdPreviewResponse) + +export const preview = { + post: post17, +} + +/** + * Run rag pipeline datasource + */ +export const post18 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdRun', + path: '/rag/pipelines/{pipeline_id}/workflows/published/datasource/nodes/{node_id}/run', + summary: 'Run rag pipeline datasource', + tags: ['console'], + }) + .input( + z.object({ + body: zPostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdRunBody, + params: zPostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdRunPath, + }), + ) + .output(zPostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdRunResponse) + +export const run6 = { + post: post18, +} + +export const byNodeId5 = { + preview, + run: run6, +} + +export const nodes5 = { + byNodeId: byNodeId5, +} + +export const datasource2 = { + nodes: nodes5, +} + +/** + * Get first step parameters of rag pipeline + */ +export const get22 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getRagPipelinesByPipelineIdWorkflowsPublishedPreProcessingParameters', + path: '/rag/pipelines/{pipeline_id}/workflows/published/pre-processing/parameters', + summary: 'Get first step parameters of rag pipeline', + tags: ['console'], + }) + .input( + z.object({ params: zGetRagPipelinesByPipelineIdWorkflowsPublishedPreProcessingParametersPath }), + ) + .output(zGetRagPipelinesByPipelineIdWorkflowsPublishedPreProcessingParametersResponse) + +export const parameters3 = { + get: get22, +} + +export const preProcessing2 = { + parameters: parameters3, +} + +/** + * Get second step parameters of rag pipeline + */ +export const get23 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getRagPipelinesByPipelineIdWorkflowsPublishedProcessingParameters', + path: '/rag/pipelines/{pipeline_id}/workflows/published/processing/parameters', + summary: 'Get second step parameters of rag pipeline', + tags: ['console'], + }) + .input( + z.object({ params: zGetRagPipelinesByPipelineIdWorkflowsPublishedProcessingParametersPath }), + ) + .output(zGetRagPipelinesByPipelineIdWorkflowsPublishedProcessingParametersResponse) + +export const parameters4 = { + get: get23, +} + +export const processing2 = { + parameters: parameters4, +} + +/** + * Run published workflow + */ +export const post19 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postRagPipelinesByPipelineIdWorkflowsPublishedRun', + path: '/rag/pipelines/{pipeline_id}/workflows/published/run', + summary: 'Run published workflow', + tags: ['console'], + }) + .input( + z.object({ + body: zPostRagPipelinesByPipelineIdWorkflowsPublishedRunBody, + params: zPostRagPipelinesByPipelineIdWorkflowsPublishedRunPath, + }), + ) + .output(zPostRagPipelinesByPipelineIdWorkflowsPublishedRunResponse) + +export const run7 = { + post: post19, +} + +export const published = { + datasource: datasource2, + preProcessing: preProcessing2, + processing: processing2, + run: run7, +} + +export const post20 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postRagPipelinesByPipelineIdWorkflowsByWorkflowIdRestore', + path: '/rag/pipelines/{pipeline_id}/workflows/{workflow_id}/restore', + tags: ['console'], + }) + .input(z.object({ params: zPostRagPipelinesByPipelineIdWorkflowsByWorkflowIdRestorePath })) + .output(zPostRagPipelinesByPipelineIdWorkflowsByWorkflowIdRestoreResponse) + +export const restore = { + post: post20, +} + +/** + * Delete a published workflow version that is not currently active on the pipeline + */ +export const delete5 = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteRagPipelinesByPipelineIdWorkflowsByWorkflowId', + path: '/rag/pipelines/{pipeline_id}/workflows/{workflow_id}', + summary: 'Delete a published workflow version that is not currently active on the pipeline', + tags: ['console'], + }) + .input(z.object({ params: zDeleteRagPipelinesByPipelineIdWorkflowsByWorkflowIdPath })) + .output(zDeleteRagPipelinesByPipelineIdWorkflowsByWorkflowIdResponse) + +/** + * Update workflow attributes + */ +export const patch3 = oc + .route({ + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchRagPipelinesByPipelineIdWorkflowsByWorkflowId', + path: '/rag/pipelines/{pipeline_id}/workflows/{workflow_id}', + summary: 'Update workflow attributes', + tags: ['console'], + }) + .input(z.object({ params: zPatchRagPipelinesByPipelineIdWorkflowsByWorkflowIdPath })) + .output(zPatchRagPipelinesByPipelineIdWorkflowsByWorkflowIdResponse) + +export const byWorkflowId = { + delete: delete5, + patch: patch3, + restore, +} + +/** + * Get published workflows + */ +export const get24 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getRagPipelinesByPipelineIdWorkflows', + path: '/rag/pipelines/{pipeline_id}/workflows', + summary: 'Get published workflows', + tags: ['console'], + }) + .input(z.object({ params: zGetRagPipelinesByPipelineIdWorkflowsPath })) + .output(zGetRagPipelinesByPipelineIdWorkflowsResponse) + +export const workflows = { + get: get24, + defaultWorkflowBlockConfigs, + draft, + publish: publish2, + published, + byWorkflowId, +} + +export const byPipelineId2 = { + customized: customized2, + exports: exports_, + workflowRuns, + workflows, +} + +export const pipelines = { + datasourcePlugins, + imports, + recommendedPlugins, + transform, + byPipelineId: byPipelineId2, +} + +export const rag = { + pipeline, + pipelines, +} + +export const contract = { + rag, +} diff --git a/packages/contracts/generated/api/console/rag/types.gen.ts b/packages/contracts/generated/api/console/rag/types.gen.ts new file mode 100644 index 0000000000..e300ff443c --- /dev/null +++ b/packages/contracts/generated/api/console/rag/types.gen.ts @@ -0,0 +1,1054 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type RagPipelineDatasetImportPayload = { + yaml_content: string +} + +export type RagPipelineImportPayload = { + description?: string | null + icon?: string | null + icon_background?: string | null + icon_type?: string | null + mode: string + name?: string | null + pipeline_id?: string | null + yaml_content?: string | null + yaml_url?: string | null +} + +export type Payload = { + description?: string + icon_info?: { + [key: string]: unknown + } | null + name: string +} + +export type DatasourceNodeRunPayload = { + credential_id?: string | null + datasource_type: string + inputs: { + [key: string]: unknown + } +} + +export type DatasourceVariablesPayload = { + datasource_info: { + [key: string]: unknown + } + datasource_type: string + start_node_id: string + start_node_title: string +} + +export type NodeRunPayload = { + inputs?: { + [key: string]: unknown + } | null +} + +export type NodeRunRequiredPayload = { + inputs: { + [key: string]: unknown + } +} + +export type DraftWorkflowRunPayload = { + datasource_info_list: Array<{ + [key: string]: unknown + }> + datasource_type: string + inputs: { + [key: string]: unknown + } + start_node_id: string +} + +export type Parser = { + credential_id?: string | null + datasource_type: string + inputs: { + [key: string]: unknown + } +} + +export type PublishedWorkflowRunPayload = { + datasource_info_list: Array<{ + [key: string]: unknown + }> + datasource_type: string + inputs: { + [key: string]: unknown + } + is_preview?: boolean + original_document_id?: string | null + response_mode?: 'streaming' | 'blocking' + start_node_id: string +} + +export type DeleteRagPipelineCustomizedTemplatesByTemplateIdData = { + body?: never + path: { + template_id: string + } + query?: never + url: '/rag/pipeline/customized/templates/{template_id}' +} + +export type DeleteRagPipelineCustomizedTemplatesByTemplateIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type DeleteRagPipelineCustomizedTemplatesByTemplateIdResponse + = DeleteRagPipelineCustomizedTemplatesByTemplateIdResponses[keyof DeleteRagPipelineCustomizedTemplatesByTemplateIdResponses] + +export type PatchRagPipelineCustomizedTemplatesByTemplateIdData = { + body?: never + path: { + template_id: string + } + query?: never + url: '/rag/pipeline/customized/templates/{template_id}' +} + +export type PatchRagPipelineCustomizedTemplatesByTemplateIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type PatchRagPipelineCustomizedTemplatesByTemplateIdResponse + = PatchRagPipelineCustomizedTemplatesByTemplateIdResponses[keyof PatchRagPipelineCustomizedTemplatesByTemplateIdResponses] + +export type PostRagPipelineCustomizedTemplatesByTemplateIdData = { + body?: never + path: { + template_id: string + } + query?: never + url: '/rag/pipeline/customized/templates/{template_id}' +} + +export type PostRagPipelineCustomizedTemplatesByTemplateIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostRagPipelineCustomizedTemplatesByTemplateIdResponse + = PostRagPipelineCustomizedTemplatesByTemplateIdResponses[keyof PostRagPipelineCustomizedTemplatesByTemplateIdResponses] + +export type PostRagPipelineDatasetData = { + body: RagPipelineDatasetImportPayload + path?: never + query?: never + url: '/rag/pipeline/dataset' +} + +export type PostRagPipelineDatasetResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostRagPipelineDatasetResponse + = PostRagPipelineDatasetResponses[keyof PostRagPipelineDatasetResponses] + +export type PostRagPipelineEmptyDatasetData = { + body?: never + path?: never + query?: never + url: '/rag/pipeline/empty-dataset' +} + +export type PostRagPipelineEmptyDatasetResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostRagPipelineEmptyDatasetResponse + = PostRagPipelineEmptyDatasetResponses[keyof PostRagPipelineEmptyDatasetResponses] + +export type GetRagPipelineTemplatesData = { + body?: never + path?: never + query?: never + url: '/rag/pipeline/templates' +} + +export type GetRagPipelineTemplatesResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetRagPipelineTemplatesResponse + = GetRagPipelineTemplatesResponses[keyof GetRagPipelineTemplatesResponses] + +export type GetRagPipelineTemplatesByTemplateIdData = { + body?: never + path: { + template_id: string + } + query?: never + url: '/rag/pipeline/templates/{template_id}' +} + +export type GetRagPipelineTemplatesByTemplateIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetRagPipelineTemplatesByTemplateIdResponse + = GetRagPipelineTemplatesByTemplateIdResponses[keyof GetRagPipelineTemplatesByTemplateIdResponses] + +export type GetRagPipelinesDatasourcePluginsData = { + body?: never + path?: never + query?: never + url: '/rag/pipelines/datasource-plugins' +} + +export type GetRagPipelinesDatasourcePluginsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetRagPipelinesDatasourcePluginsResponse + = GetRagPipelinesDatasourcePluginsResponses[keyof GetRagPipelinesDatasourcePluginsResponses] + +export type PostRagPipelinesImportsData = { + body: RagPipelineImportPayload + path?: never + query?: never + url: '/rag/pipelines/imports' +} + +export type PostRagPipelinesImportsResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostRagPipelinesImportsResponse + = PostRagPipelinesImportsResponses[keyof PostRagPipelinesImportsResponses] + +export type PostRagPipelinesImportsByImportIdConfirmData = { + body?: never + path: { + import_id: string + } + query?: never + url: '/rag/pipelines/imports/{import_id}/confirm' +} + +export type PostRagPipelinesImportsByImportIdConfirmResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostRagPipelinesImportsByImportIdConfirmResponse + = PostRagPipelinesImportsByImportIdConfirmResponses[keyof PostRagPipelinesImportsByImportIdConfirmResponses] + +export type GetRagPipelinesImportsByPipelineIdCheckDependenciesData = { + body?: never + path: { + pipeline_id: string + } + query?: never + url: '/rag/pipelines/imports/{pipeline_id}/check-dependencies' +} + +export type GetRagPipelinesImportsByPipelineIdCheckDependenciesResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetRagPipelinesImportsByPipelineIdCheckDependenciesResponse + = GetRagPipelinesImportsByPipelineIdCheckDependenciesResponses[keyof GetRagPipelinesImportsByPipelineIdCheckDependenciesResponses] + +export type GetRagPipelinesRecommendedPluginsData = { + body?: never + path?: never + query?: never + url: '/rag/pipelines/recommended-plugins' +} + +export type GetRagPipelinesRecommendedPluginsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetRagPipelinesRecommendedPluginsResponse + = GetRagPipelinesRecommendedPluginsResponses[keyof GetRagPipelinesRecommendedPluginsResponses] + +export type PostRagPipelinesTransformDatasetsByDatasetIdData = { + body?: never + path: { + dataset_id: string + } + query?: never + url: '/rag/pipelines/transform/datasets/{dataset_id}' +} + +export type PostRagPipelinesTransformDatasetsByDatasetIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostRagPipelinesTransformDatasetsByDatasetIdResponse + = PostRagPipelinesTransformDatasetsByDatasetIdResponses[keyof PostRagPipelinesTransformDatasetsByDatasetIdResponses] + +export type PostRagPipelinesByPipelineIdCustomizedPublishData = { + body: Payload + path: { + pipeline_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/customized/publish' +} + +export type PostRagPipelinesByPipelineIdCustomizedPublishResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostRagPipelinesByPipelineIdCustomizedPublishResponse + = PostRagPipelinesByPipelineIdCustomizedPublishResponses[keyof PostRagPipelinesByPipelineIdCustomizedPublishResponses] + +export type GetRagPipelinesByPipelineIdExportsData = { + body?: never + path: { + pipeline_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/exports' +} + +export type GetRagPipelinesByPipelineIdExportsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetRagPipelinesByPipelineIdExportsResponse + = GetRagPipelinesByPipelineIdExportsResponses[keyof GetRagPipelinesByPipelineIdExportsResponses] + +export type GetRagPipelinesByPipelineIdWorkflowRunsData = { + body?: never + path: { + pipeline_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflow-runs' +} + +export type GetRagPipelinesByPipelineIdWorkflowRunsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetRagPipelinesByPipelineIdWorkflowRunsResponse + = GetRagPipelinesByPipelineIdWorkflowRunsResponses[keyof GetRagPipelinesByPipelineIdWorkflowRunsResponses] + +export type PostRagPipelinesByPipelineIdWorkflowRunsTasksByTaskIdStopData = { + body?: never + path: { + pipeline_id: string + task_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflow-runs/tasks/{task_id}/stop' +} + +export type PostRagPipelinesByPipelineIdWorkflowRunsTasksByTaskIdStopResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostRagPipelinesByPipelineIdWorkflowRunsTasksByTaskIdStopResponse + = PostRagPipelinesByPipelineIdWorkflowRunsTasksByTaskIdStopResponses[keyof PostRagPipelinesByPipelineIdWorkflowRunsTasksByTaskIdStopResponses] + +export type GetRagPipelinesByPipelineIdWorkflowRunsByRunIdData = { + body?: never + path: { + pipeline_id: string + run_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflow-runs/{run_id}' +} + +export type GetRagPipelinesByPipelineIdWorkflowRunsByRunIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetRagPipelinesByPipelineIdWorkflowRunsByRunIdResponse + = GetRagPipelinesByPipelineIdWorkflowRunsByRunIdResponses[keyof GetRagPipelinesByPipelineIdWorkflowRunsByRunIdResponses] + +export type GetRagPipelinesByPipelineIdWorkflowRunsByRunIdNodeExecutionsData = { + body?: never + path: { + pipeline_id: string + run_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflow-runs/{run_id}/node-executions' +} + +export type GetRagPipelinesByPipelineIdWorkflowRunsByRunIdNodeExecutionsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetRagPipelinesByPipelineIdWorkflowRunsByRunIdNodeExecutionsResponse + = GetRagPipelinesByPipelineIdWorkflowRunsByRunIdNodeExecutionsResponses[keyof GetRagPipelinesByPipelineIdWorkflowRunsByRunIdNodeExecutionsResponses] + +export type GetRagPipelinesByPipelineIdWorkflowsData = { + body?: never + path: { + pipeline_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows' +} + +export type GetRagPipelinesByPipelineIdWorkflowsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetRagPipelinesByPipelineIdWorkflowsResponse + = GetRagPipelinesByPipelineIdWorkflowsResponses[keyof GetRagPipelinesByPipelineIdWorkflowsResponses] + +export type GetRagPipelinesByPipelineIdWorkflowsDefaultWorkflowBlockConfigsData = { + body?: never + path: { + pipeline_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/default-workflow-block-configs' +} + +export type GetRagPipelinesByPipelineIdWorkflowsDefaultWorkflowBlockConfigsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetRagPipelinesByPipelineIdWorkflowsDefaultWorkflowBlockConfigsResponse + = GetRagPipelinesByPipelineIdWorkflowsDefaultWorkflowBlockConfigsResponses[keyof GetRagPipelinesByPipelineIdWorkflowsDefaultWorkflowBlockConfigsResponses] + +export type GetRagPipelinesByPipelineIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypeData = { + body?: never + path: { + pipeline_id: string + block_type: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/default-workflow-block-configs/{block_type}' +} + +export type GetRagPipelinesByPipelineIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypeResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetRagPipelinesByPipelineIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypeResponse + = GetRagPipelinesByPipelineIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypeResponses[keyof GetRagPipelinesByPipelineIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypeResponses] + +export type GetRagPipelinesByPipelineIdWorkflowsDraftData = { + body?: never + path: { + pipeline_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/draft' +} + +export type GetRagPipelinesByPipelineIdWorkflowsDraftResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetRagPipelinesByPipelineIdWorkflowsDraftResponse + = GetRagPipelinesByPipelineIdWorkflowsDraftResponses[keyof GetRagPipelinesByPipelineIdWorkflowsDraftResponses] + +export type PostRagPipelinesByPipelineIdWorkflowsDraftData = { + body?: never + path: { + pipeline_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/draft' +} + +export type PostRagPipelinesByPipelineIdWorkflowsDraftResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostRagPipelinesByPipelineIdWorkflowsDraftResponse + = PostRagPipelinesByPipelineIdWorkflowsDraftResponses[keyof PostRagPipelinesByPipelineIdWorkflowsDraftResponses] + +export type PostRagPipelinesByPipelineIdWorkflowsDraftDatasourceNodesByNodeIdRunData = { + body: DatasourceNodeRunPayload + path: { + pipeline_id: string + node_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/draft/datasource/nodes/{node_id}/run' +} + +export type PostRagPipelinesByPipelineIdWorkflowsDraftDatasourceNodesByNodeIdRunResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostRagPipelinesByPipelineIdWorkflowsDraftDatasourceNodesByNodeIdRunResponse + = PostRagPipelinesByPipelineIdWorkflowsDraftDatasourceNodesByNodeIdRunResponses[keyof PostRagPipelinesByPipelineIdWorkflowsDraftDatasourceNodesByNodeIdRunResponses] + +export type PostRagPipelinesByPipelineIdWorkflowsDraftDatasourceVariablesInspectData = { + body: DatasourceVariablesPayload + path: { + pipeline_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/draft/datasource/variables-inspect' +} + +export type PostRagPipelinesByPipelineIdWorkflowsDraftDatasourceVariablesInspectResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostRagPipelinesByPipelineIdWorkflowsDraftDatasourceVariablesInspectResponse + = PostRagPipelinesByPipelineIdWorkflowsDraftDatasourceVariablesInspectResponses[keyof PostRagPipelinesByPipelineIdWorkflowsDraftDatasourceVariablesInspectResponses] + +export type GetRagPipelinesByPipelineIdWorkflowsDraftEnvironmentVariablesData = { + body?: never + path: { + pipeline_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/draft/environment-variables' +} + +export type GetRagPipelinesByPipelineIdWorkflowsDraftEnvironmentVariablesResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetRagPipelinesByPipelineIdWorkflowsDraftEnvironmentVariablesResponse + = GetRagPipelinesByPipelineIdWorkflowsDraftEnvironmentVariablesResponses[keyof GetRagPipelinesByPipelineIdWorkflowsDraftEnvironmentVariablesResponses] + +export type PostRagPipelinesByPipelineIdWorkflowsDraftIterationNodesByNodeIdRunData = { + body: NodeRunPayload + path: { + pipeline_id: string + node_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/draft/iteration/nodes/{node_id}/run' +} + +export type PostRagPipelinesByPipelineIdWorkflowsDraftIterationNodesByNodeIdRunResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostRagPipelinesByPipelineIdWorkflowsDraftIterationNodesByNodeIdRunResponse + = PostRagPipelinesByPipelineIdWorkflowsDraftIterationNodesByNodeIdRunResponses[keyof PostRagPipelinesByPipelineIdWorkflowsDraftIterationNodesByNodeIdRunResponses] + +export type PostRagPipelinesByPipelineIdWorkflowsDraftLoopNodesByNodeIdRunData = { + body: NodeRunPayload + path: { + pipeline_id: string + node_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/draft/loop/nodes/{node_id}/run' +} + +export type PostRagPipelinesByPipelineIdWorkflowsDraftLoopNodesByNodeIdRunResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostRagPipelinesByPipelineIdWorkflowsDraftLoopNodesByNodeIdRunResponse + = PostRagPipelinesByPipelineIdWorkflowsDraftLoopNodesByNodeIdRunResponses[keyof PostRagPipelinesByPipelineIdWorkflowsDraftLoopNodesByNodeIdRunResponses] + +export type GetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdLastRunData = { + body?: never + path: { + pipeline_id: string + node_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/draft/nodes/{node_id}/last-run' +} + +export type GetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdLastRunResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdLastRunResponse + = GetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdLastRunResponses[keyof GetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdLastRunResponses] + +export type PostRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdRunData = { + body: NodeRunRequiredPayload + path: { + pipeline_id: string + node_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/draft/nodes/{node_id}/run' +} + +export type PostRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdRunResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdRunResponse + = PostRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdRunResponses[keyof PostRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdRunResponses] + +export type DeleteRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariablesData = { + body?: never + path: { + pipeline_id: string + node_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/draft/nodes/{node_id}/variables' +} + +export type DeleteRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariablesResponses = { + 200: { + [key: string]: unknown + } +} + +export type DeleteRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariablesResponse + = DeleteRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariablesResponses[keyof DeleteRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariablesResponses] + +export type GetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariablesData = { + body?: never + path: { + pipeline_id: string + node_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/draft/nodes/{node_id}/variables' +} + +export type GetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariablesResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariablesResponse + = GetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariablesResponses[keyof GetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariablesResponses] + +export type GetRagPipelinesByPipelineIdWorkflowsDraftPreProcessingParametersData = { + body?: never + path: { + pipeline_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/draft/pre-processing/parameters' +} + +export type GetRagPipelinesByPipelineIdWorkflowsDraftPreProcessingParametersResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetRagPipelinesByPipelineIdWorkflowsDraftPreProcessingParametersResponse + = GetRagPipelinesByPipelineIdWorkflowsDraftPreProcessingParametersResponses[keyof GetRagPipelinesByPipelineIdWorkflowsDraftPreProcessingParametersResponses] + +export type GetRagPipelinesByPipelineIdWorkflowsDraftProcessingParametersData = { + body?: never + path: { + pipeline_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/draft/processing/parameters' +} + +export type GetRagPipelinesByPipelineIdWorkflowsDraftProcessingParametersResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetRagPipelinesByPipelineIdWorkflowsDraftProcessingParametersResponse + = GetRagPipelinesByPipelineIdWorkflowsDraftProcessingParametersResponses[keyof GetRagPipelinesByPipelineIdWorkflowsDraftProcessingParametersResponses] + +export type PostRagPipelinesByPipelineIdWorkflowsDraftRunData = { + body: DraftWorkflowRunPayload + path: { + pipeline_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/draft/run' +} + +export type PostRagPipelinesByPipelineIdWorkflowsDraftRunResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostRagPipelinesByPipelineIdWorkflowsDraftRunResponse + = PostRagPipelinesByPipelineIdWorkflowsDraftRunResponses[keyof PostRagPipelinesByPipelineIdWorkflowsDraftRunResponses] + +export type GetRagPipelinesByPipelineIdWorkflowsDraftSystemVariablesData = { + body?: never + path: { + pipeline_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/draft/system-variables' +} + +export type GetRagPipelinesByPipelineIdWorkflowsDraftSystemVariablesResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetRagPipelinesByPipelineIdWorkflowsDraftSystemVariablesResponse + = GetRagPipelinesByPipelineIdWorkflowsDraftSystemVariablesResponses[keyof GetRagPipelinesByPipelineIdWorkflowsDraftSystemVariablesResponses] + +export type DeleteRagPipelinesByPipelineIdWorkflowsDraftVariablesData = { + body?: never + path: { + pipeline_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/draft/variables' +} + +export type DeleteRagPipelinesByPipelineIdWorkflowsDraftVariablesResponses = { + 200: { + [key: string]: unknown + } +} + +export type DeleteRagPipelinesByPipelineIdWorkflowsDraftVariablesResponse + = DeleteRagPipelinesByPipelineIdWorkflowsDraftVariablesResponses[keyof DeleteRagPipelinesByPipelineIdWorkflowsDraftVariablesResponses] + +export type GetRagPipelinesByPipelineIdWorkflowsDraftVariablesData = { + body?: never + path: { + pipeline_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/draft/variables' +} + +export type GetRagPipelinesByPipelineIdWorkflowsDraftVariablesResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetRagPipelinesByPipelineIdWorkflowsDraftVariablesResponse + = GetRagPipelinesByPipelineIdWorkflowsDraftVariablesResponses[keyof GetRagPipelinesByPipelineIdWorkflowsDraftVariablesResponses] + +export type DeleteRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdData = { + body?: never + path: { + pipeline_id: string + variable_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/draft/variables/{variable_id}' +} + +export type DeleteRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type DeleteRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResponse + = DeleteRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResponses[keyof DeleteRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResponses] + +export type GetRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdData = { + body?: never + path: { + pipeline_id: string + variable_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/draft/variables/{variable_id}' +} + +export type GetRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResponse + = GetRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResponses[keyof GetRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResponses] + +export type PatchRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdData = { + body?: never + path: { + pipeline_id: string + variable_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/draft/variables/{variable_id}' +} + +export type PatchRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type PatchRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResponse + = PatchRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResponses[keyof PatchRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResponses] + +export type PutRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResetData = { + body?: never + path: { + pipeline_id: string + variable_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/draft/variables/{variable_id}/reset' +} + +export type PutRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResetResponses = { + 200: { + [key: string]: unknown + } +} + +export type PutRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResetResponse + = PutRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResetResponses[keyof PutRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResetResponses] + +export type GetRagPipelinesByPipelineIdWorkflowsPublishData = { + body?: never + path: { + pipeline_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/publish' +} + +export type GetRagPipelinesByPipelineIdWorkflowsPublishResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetRagPipelinesByPipelineIdWorkflowsPublishResponse + = GetRagPipelinesByPipelineIdWorkflowsPublishResponses[keyof GetRagPipelinesByPipelineIdWorkflowsPublishResponses] + +export type PostRagPipelinesByPipelineIdWorkflowsPublishData = { + body?: never + path: { + pipeline_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/publish' +} + +export type PostRagPipelinesByPipelineIdWorkflowsPublishResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostRagPipelinesByPipelineIdWorkflowsPublishResponse + = PostRagPipelinesByPipelineIdWorkflowsPublishResponses[keyof PostRagPipelinesByPipelineIdWorkflowsPublishResponses] + +export type PostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdPreviewData = { + body: Parser + path: { + pipeline_id: string + node_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/published/datasource/nodes/{node_id}/preview' +} + +export type PostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdPreviewResponses + = { + 200: { + [key: string]: unknown + } + } + +export type PostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdPreviewResponse + = PostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdPreviewResponses[keyof PostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdPreviewResponses] + +export type PostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdRunData = { + body: DatasourceNodeRunPayload + path: { + pipeline_id: string + node_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/published/datasource/nodes/{node_id}/run' +} + +export type PostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdRunResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdRunResponse + = PostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdRunResponses[keyof PostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdRunResponses] + +export type GetRagPipelinesByPipelineIdWorkflowsPublishedPreProcessingParametersData = { + body?: never + path: { + pipeline_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/published/pre-processing/parameters' +} + +export type GetRagPipelinesByPipelineIdWorkflowsPublishedPreProcessingParametersResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetRagPipelinesByPipelineIdWorkflowsPublishedPreProcessingParametersResponse + = GetRagPipelinesByPipelineIdWorkflowsPublishedPreProcessingParametersResponses[keyof GetRagPipelinesByPipelineIdWorkflowsPublishedPreProcessingParametersResponses] + +export type GetRagPipelinesByPipelineIdWorkflowsPublishedProcessingParametersData = { + body?: never + path: { + pipeline_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/published/processing/parameters' +} + +export type GetRagPipelinesByPipelineIdWorkflowsPublishedProcessingParametersResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetRagPipelinesByPipelineIdWorkflowsPublishedProcessingParametersResponse + = GetRagPipelinesByPipelineIdWorkflowsPublishedProcessingParametersResponses[keyof GetRagPipelinesByPipelineIdWorkflowsPublishedProcessingParametersResponses] + +export type PostRagPipelinesByPipelineIdWorkflowsPublishedRunData = { + body: PublishedWorkflowRunPayload + path: { + pipeline_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/published/run' +} + +export type PostRagPipelinesByPipelineIdWorkflowsPublishedRunResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostRagPipelinesByPipelineIdWorkflowsPublishedRunResponse + = PostRagPipelinesByPipelineIdWorkflowsPublishedRunResponses[keyof PostRagPipelinesByPipelineIdWorkflowsPublishedRunResponses] + +export type DeleteRagPipelinesByPipelineIdWorkflowsByWorkflowIdData = { + body?: never + path: { + pipeline_id: string + workflow_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/{workflow_id}' +} + +export type DeleteRagPipelinesByPipelineIdWorkflowsByWorkflowIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type DeleteRagPipelinesByPipelineIdWorkflowsByWorkflowIdResponse + = DeleteRagPipelinesByPipelineIdWorkflowsByWorkflowIdResponses[keyof DeleteRagPipelinesByPipelineIdWorkflowsByWorkflowIdResponses] + +export type PatchRagPipelinesByPipelineIdWorkflowsByWorkflowIdData = { + body?: never + path: { + pipeline_id: string + workflow_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/{workflow_id}' +} + +export type PatchRagPipelinesByPipelineIdWorkflowsByWorkflowIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type PatchRagPipelinesByPipelineIdWorkflowsByWorkflowIdResponse + = PatchRagPipelinesByPipelineIdWorkflowsByWorkflowIdResponses[keyof PatchRagPipelinesByPipelineIdWorkflowsByWorkflowIdResponses] + +export type PostRagPipelinesByPipelineIdWorkflowsByWorkflowIdRestoreData = { + body?: never + path: { + pipeline_id: string + workflow_id: string + } + query?: never + url: '/rag/pipelines/{pipeline_id}/workflows/{workflow_id}/restore' +} + +export type PostRagPipelinesByPipelineIdWorkflowsByWorkflowIdRestoreResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostRagPipelinesByPipelineIdWorkflowsByWorkflowIdRestoreResponse + = PostRagPipelinesByPipelineIdWorkflowsByWorkflowIdRestoreResponses[keyof PostRagPipelinesByPipelineIdWorkflowsByWorkflowIdRestoreResponses] diff --git a/packages/contracts/generated/api/console/rag/zod.gen.ts b/packages/contracts/generated/api/console/rag/zod.gen.ts new file mode 100644 index 0000000000..b28d7fafc7 --- /dev/null +++ b/packages/contracts/generated/api/console/rag/zod.gen.ts @@ -0,0 +1,709 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * RagPipelineDatasetImportPayload + */ +export const zRagPipelineDatasetImportPayload = z.object({ + yaml_content: z.string(), +}) + +/** + * RagPipelineImportPayload + */ +export const zRagPipelineImportPayload = z.object({ + description: z.string().nullish(), + icon: z.string().nullish(), + icon_background: z.string().nullish(), + icon_type: z.string().nullish(), + mode: z.string(), + name: z.string().nullish(), + pipeline_id: z.string().nullish(), + yaml_content: z.string().nullish(), + yaml_url: z.string().nullish(), +}) + +/** + * Payload + */ +export const zPayload = z.object({ + description: z.string().max(400).optional().default(''), + icon_info: z.record(z.string(), z.unknown()).nullish(), + name: z.string().min(1).max(40), +}) + +/** + * DatasourceNodeRunPayload + */ +export const zDatasourceNodeRunPayload = z.object({ + credential_id: z.string().nullish(), + datasource_type: z.string(), + inputs: z.record(z.string(), z.unknown()), +}) + +/** + * DatasourceVariablesPayload + */ +export const zDatasourceVariablesPayload = z.object({ + datasource_info: z.record(z.string(), z.unknown()), + datasource_type: z.string(), + start_node_id: z.string(), + start_node_title: z.string(), +}) + +/** + * NodeRunPayload + */ +export const zNodeRunPayload = z.object({ + inputs: z.record(z.string(), z.unknown()).nullish(), +}) + +/** + * NodeRunRequiredPayload + */ +export const zNodeRunRequiredPayload = z.object({ + inputs: z.record(z.string(), z.unknown()), +}) + +/** + * DraftWorkflowRunPayload + */ +export const zDraftWorkflowRunPayload = z.object({ + datasource_info_list: z.array(z.record(z.string(), z.unknown())), + datasource_type: z.string(), + inputs: z.record(z.string(), z.unknown()), + start_node_id: z.string(), +}) + +/** + * Parser + */ +export const zParser = z.object({ + credential_id: z.string().nullish(), + datasource_type: z.string(), + inputs: z.record(z.string(), z.unknown()), +}) + +/** + * PublishedWorkflowRunPayload + */ +export const zPublishedWorkflowRunPayload = 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_preview: z.boolean().optional().default(false), + original_document_id: z.string().nullish(), + response_mode: z.enum(['streaming', 'blocking']).optional().default('streaming'), + start_node_id: z.string(), +}) + +export const zDeleteRagPipelineCustomizedTemplatesByTemplateIdPath = z.object({ + template_id: z.string(), +}) + +/** + * Success + */ +export const zDeleteRagPipelineCustomizedTemplatesByTemplateIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPatchRagPipelineCustomizedTemplatesByTemplateIdPath = z.object({ + template_id: z.string(), +}) + +/** + * Success + */ +export const zPatchRagPipelineCustomizedTemplatesByTemplateIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostRagPipelineCustomizedTemplatesByTemplateIdPath = z.object({ + template_id: z.string(), +}) + +/** + * Success + */ +export const zPostRagPipelineCustomizedTemplatesByTemplateIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostRagPipelineDatasetBody = zRagPipelineDatasetImportPayload + +/** + * Success + */ +export const zPostRagPipelineDatasetResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zPostRagPipelineEmptyDatasetResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zGetRagPipelineTemplatesResponse = z.record(z.string(), z.unknown()) + +export const zGetRagPipelineTemplatesByTemplateIdPath = z.object({ + template_id: z.string(), +}) + +/** + * Success + */ +export const zGetRagPipelineTemplatesByTemplateIdResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zGetRagPipelinesDatasourcePluginsResponse = z.record(z.string(), z.unknown()) + +export const zPostRagPipelinesImportsBody = zRagPipelineImportPayload + +/** + * Success + */ +export const zPostRagPipelinesImportsResponse = z.record(z.string(), z.unknown()) + +export const zPostRagPipelinesImportsByImportIdConfirmPath = z.object({ + import_id: z.string(), +}) + +/** + * Success + */ +export const zPostRagPipelinesImportsByImportIdConfirmResponse = z.record(z.string(), z.unknown()) + +export const zGetRagPipelinesImportsByPipelineIdCheckDependenciesPath = z.object({ + pipeline_id: z.string(), +}) + +/** + * Success + */ +export const zGetRagPipelinesImportsByPipelineIdCheckDependenciesResponse = z.record( + z.string(), + z.unknown(), +) + +/** + * Success + */ +export const zGetRagPipelinesRecommendedPluginsResponse = z.record(z.string(), z.unknown()) + +export const zPostRagPipelinesTransformDatasetsByDatasetIdPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Success + */ +export const zPostRagPipelinesTransformDatasetsByDatasetIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostRagPipelinesByPipelineIdCustomizedPublishBody = zPayload + +export const zPostRagPipelinesByPipelineIdCustomizedPublishPath = z.object({ + pipeline_id: z.string(), +}) + +/** + * Success + */ +export const zPostRagPipelinesByPipelineIdCustomizedPublishResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetRagPipelinesByPipelineIdExportsPath = z.object({ + pipeline_id: z.string(), +}) + +/** + * Success + */ +export const zGetRagPipelinesByPipelineIdExportsResponse = z.record(z.string(), z.unknown()) + +export const zGetRagPipelinesByPipelineIdWorkflowRunsPath = z.object({ + pipeline_id: z.string(), +}) + +/** + * Success + */ +export const zGetRagPipelinesByPipelineIdWorkflowRunsResponse = z.record(z.string(), z.unknown()) + +export const zPostRagPipelinesByPipelineIdWorkflowRunsTasksByTaskIdStopPath = z.object({ + pipeline_id: z.string(), + task_id: z.string(), +}) + +/** + * Success + */ +export const zPostRagPipelinesByPipelineIdWorkflowRunsTasksByTaskIdStopResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetRagPipelinesByPipelineIdWorkflowRunsByRunIdPath = z.object({ + pipeline_id: z.string(), + run_id: z.string(), +}) + +/** + * Success + */ +export const zGetRagPipelinesByPipelineIdWorkflowRunsByRunIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetRagPipelinesByPipelineIdWorkflowRunsByRunIdNodeExecutionsPath = z.object({ + pipeline_id: z.string(), + run_id: z.string(), +}) + +/** + * Success + */ +export const zGetRagPipelinesByPipelineIdWorkflowRunsByRunIdNodeExecutionsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetRagPipelinesByPipelineIdWorkflowsPath = z.object({ + pipeline_id: z.string(), +}) + +/** + * Success + */ +export const zGetRagPipelinesByPipelineIdWorkflowsResponse = z.record(z.string(), z.unknown()) + +export const zGetRagPipelinesByPipelineIdWorkflowsDefaultWorkflowBlockConfigsPath = z.object({ + pipeline_id: z.string(), +}) + +/** + * Success + */ +export const zGetRagPipelinesByPipelineIdWorkflowsDefaultWorkflowBlockConfigsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetRagPipelinesByPipelineIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypePath + = z.object({ + pipeline_id: z.string(), + block_type: z.string(), + }) + +/** + * Success + */ +export const zGetRagPipelinesByPipelineIdWorkflowsDefaultWorkflowBlockConfigsByBlockTypeResponse + = z.record(z.string(), z.unknown()) + +export const zGetRagPipelinesByPipelineIdWorkflowsDraftPath = z.object({ + pipeline_id: z.string(), +}) + +/** + * Success + */ +export const zGetRagPipelinesByPipelineIdWorkflowsDraftResponse = z.record(z.string(), z.unknown()) + +export const zPostRagPipelinesByPipelineIdWorkflowsDraftPath = z.object({ + pipeline_id: z.string(), +}) + +/** + * Success + */ +export const zPostRagPipelinesByPipelineIdWorkflowsDraftResponse = z.record(z.string(), z.unknown()) + +export const zPostRagPipelinesByPipelineIdWorkflowsDraftDatasourceNodesByNodeIdRunBody + = zDatasourceNodeRunPayload + +export const zPostRagPipelinesByPipelineIdWorkflowsDraftDatasourceNodesByNodeIdRunPath = z.object({ + pipeline_id: z.string(), + node_id: z.string(), +}) + +/** + * Success + */ +export const zPostRagPipelinesByPipelineIdWorkflowsDraftDatasourceNodesByNodeIdRunResponse + = z.record(z.string(), z.unknown()) + +export const zPostRagPipelinesByPipelineIdWorkflowsDraftDatasourceVariablesInspectBody + = zDatasourceVariablesPayload + +export const zPostRagPipelinesByPipelineIdWorkflowsDraftDatasourceVariablesInspectPath = z.object({ + pipeline_id: z.string(), +}) + +/** + * Success + */ +export const zPostRagPipelinesByPipelineIdWorkflowsDraftDatasourceVariablesInspectResponse + = z.record(z.string(), z.unknown()) + +export const zGetRagPipelinesByPipelineIdWorkflowsDraftEnvironmentVariablesPath = z.object({ + pipeline_id: z.string(), +}) + +/** + * Success + */ +export const zGetRagPipelinesByPipelineIdWorkflowsDraftEnvironmentVariablesResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostRagPipelinesByPipelineIdWorkflowsDraftIterationNodesByNodeIdRunBody + = zNodeRunPayload + +export const zPostRagPipelinesByPipelineIdWorkflowsDraftIterationNodesByNodeIdRunPath = z.object({ + pipeline_id: z.string(), + node_id: z.string(), +}) + +/** + * Success + */ +export const zPostRagPipelinesByPipelineIdWorkflowsDraftIterationNodesByNodeIdRunResponse + = z.record(z.string(), z.unknown()) + +export const zPostRagPipelinesByPipelineIdWorkflowsDraftLoopNodesByNodeIdRunBody = zNodeRunPayload + +export const zPostRagPipelinesByPipelineIdWorkflowsDraftLoopNodesByNodeIdRunPath = z.object({ + pipeline_id: z.string(), + node_id: z.string(), +}) + +/** + * Success + */ +export const zPostRagPipelinesByPipelineIdWorkflowsDraftLoopNodesByNodeIdRunResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdLastRunPath = z.object({ + pipeline_id: z.string(), + node_id: z.string(), +}) + +/** + * Success + */ +export const zGetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdLastRunResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdRunBody + = zNodeRunRequiredPayload + +export const zPostRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdRunPath = z.object({ + pipeline_id: z.string(), + node_id: z.string(), +}) + +/** + * Success + */ +export const zPostRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdRunResponse = z.record( + z.string(), + z.unknown(), +) + +export const zDeleteRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariablesPath = z.object({ + pipeline_id: z.string(), + node_id: z.string(), +}) + +/** + * Success + */ +export const zDeleteRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariablesResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariablesPath = z.object({ + pipeline_id: z.string(), + node_id: z.string(), +}) + +/** + * Success + */ +export const zGetRagPipelinesByPipelineIdWorkflowsDraftNodesByNodeIdVariablesResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetRagPipelinesByPipelineIdWorkflowsDraftPreProcessingParametersPath = z.object({ + pipeline_id: z.string(), +}) + +/** + * Success + */ +export const zGetRagPipelinesByPipelineIdWorkflowsDraftPreProcessingParametersResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetRagPipelinesByPipelineIdWorkflowsDraftProcessingParametersPath = z.object({ + pipeline_id: z.string(), +}) + +/** + * Success + */ +export const zGetRagPipelinesByPipelineIdWorkflowsDraftProcessingParametersResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostRagPipelinesByPipelineIdWorkflowsDraftRunBody = zDraftWorkflowRunPayload + +export const zPostRagPipelinesByPipelineIdWorkflowsDraftRunPath = z.object({ + pipeline_id: z.string(), +}) + +/** + * Success + */ +export const zPostRagPipelinesByPipelineIdWorkflowsDraftRunResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetRagPipelinesByPipelineIdWorkflowsDraftSystemVariablesPath = z.object({ + pipeline_id: z.string(), +}) + +/** + * Success + */ +export const zGetRagPipelinesByPipelineIdWorkflowsDraftSystemVariablesResponse = z.record( + z.string(), + z.unknown(), +) + +export const zDeleteRagPipelinesByPipelineIdWorkflowsDraftVariablesPath = z.object({ + pipeline_id: z.string(), +}) + +/** + * Success + */ +export const zDeleteRagPipelinesByPipelineIdWorkflowsDraftVariablesResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetRagPipelinesByPipelineIdWorkflowsDraftVariablesPath = z.object({ + pipeline_id: z.string(), +}) + +/** + * Success + */ +export const zGetRagPipelinesByPipelineIdWorkflowsDraftVariablesResponse = z.record( + z.string(), + z.unknown(), +) + +export const zDeleteRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdPath = z.object({ + pipeline_id: z.string(), + variable_id: z.string(), +}) + +/** + * Success + */ +export const zDeleteRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdPath = z.object({ + pipeline_id: z.string(), + variable_id: z.string(), +}) + +/** + * Success + */ +export const zGetRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPatchRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdPath = z.object({ + pipeline_id: z.string(), + variable_id: z.string(), +}) + +/** + * Success + */ +export const zPatchRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPutRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResetPath = z.object({ + pipeline_id: z.string(), + variable_id: z.string(), +}) + +/** + * Success + */ +export const zPutRagPipelinesByPipelineIdWorkflowsDraftVariablesByVariableIdResetResponse + = z.record(z.string(), z.unknown()) + +export const zGetRagPipelinesByPipelineIdWorkflowsPublishPath = z.object({ + pipeline_id: z.string(), +}) + +/** + * Success + */ +export const zGetRagPipelinesByPipelineIdWorkflowsPublishResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostRagPipelinesByPipelineIdWorkflowsPublishPath = z.object({ + pipeline_id: z.string(), +}) + +/** + * Success + */ +export const zPostRagPipelinesByPipelineIdWorkflowsPublishResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdPreviewBody + = zParser + +export const zPostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdPreviewPath + = z.object({ + pipeline_id: z.string(), + node_id: z.string(), + }) + +/** + * Success + */ +export const zPostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdPreviewResponse + = z.record(z.string(), z.unknown()) + +export const zPostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdRunBody + = zDatasourceNodeRunPayload + +export const zPostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdRunPath + = z.object({ + pipeline_id: z.string(), + node_id: z.string(), + }) + +/** + * Success + */ +export const zPostRagPipelinesByPipelineIdWorkflowsPublishedDatasourceNodesByNodeIdRunResponse + = z.record(z.string(), z.unknown()) + +export const zGetRagPipelinesByPipelineIdWorkflowsPublishedPreProcessingParametersPath = z.object({ + pipeline_id: z.string(), +}) + +/** + * Success + */ +export const zGetRagPipelinesByPipelineIdWorkflowsPublishedPreProcessingParametersResponse + = z.record(z.string(), z.unknown()) + +export const zGetRagPipelinesByPipelineIdWorkflowsPublishedProcessingParametersPath = z.object({ + pipeline_id: z.string(), +}) + +/** + * Success + */ +export const zGetRagPipelinesByPipelineIdWorkflowsPublishedProcessingParametersResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostRagPipelinesByPipelineIdWorkflowsPublishedRunBody = zPublishedWorkflowRunPayload + +export const zPostRagPipelinesByPipelineIdWorkflowsPublishedRunPath = z.object({ + pipeline_id: z.string(), +}) + +/** + * Success + */ +export const zPostRagPipelinesByPipelineIdWorkflowsPublishedRunResponse = z.record( + z.string(), + z.unknown(), +) + +export const zDeleteRagPipelinesByPipelineIdWorkflowsByWorkflowIdPath = z.object({ + pipeline_id: z.string(), + workflow_id: z.string(), +}) + +/** + * Success + */ +export const zDeleteRagPipelinesByPipelineIdWorkflowsByWorkflowIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPatchRagPipelinesByPipelineIdWorkflowsByWorkflowIdPath = z.object({ + pipeline_id: z.string(), + workflow_id: z.string(), +}) + +/** + * Success + */ +export const zPatchRagPipelinesByPipelineIdWorkflowsByWorkflowIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostRagPipelinesByPipelineIdWorkflowsByWorkflowIdRestorePath = z.object({ + pipeline_id: z.string(), + workflow_id: z.string(), +}) + +/** + * Success + */ +export const zPostRagPipelinesByPipelineIdWorkflowsByWorkflowIdRestoreResponse = z.record( + z.string(), + z.unknown(), +) diff --git a/packages/contracts/generated/api/console/refresh-token/orpc.gen.ts b/packages/contracts/generated/api/console/refresh-token/orpc.gen.ts new file mode 100644 index 0000000000..4faa4d7d23 --- /dev/null +++ b/packages/contracts/generated/api/console/refresh-token/orpc.gen.ts @@ -0,0 +1,23 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' + +import { zPostRefreshTokenResponse } from './zod.gen' + +export const post = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postRefreshToken', + path: '/refresh-token', + tags: ['console'], + }) + .output(zPostRefreshTokenResponse) + +export const refreshToken = { + post, +} + +export const contract = { + refreshToken, +} diff --git a/packages/contracts/generated/api/console/refresh-token/types.gen.ts b/packages/contracts/generated/api/console/refresh-token/types.gen.ts new file mode 100644 index 0000000000..15c939b947 --- /dev/null +++ b/packages/contracts/generated/api/console/refresh-token/types.gen.ts @@ -0,0 +1,20 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type PostRefreshTokenData = { + body?: never + path?: never + query?: never + url: '/refresh-token' +} + +export type PostRefreshTokenResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostRefreshTokenResponse = PostRefreshTokenResponses[keyof PostRefreshTokenResponses] diff --git a/packages/contracts/generated/api/console/refresh-token/zod.gen.ts b/packages/contracts/generated/api/console/refresh-token/zod.gen.ts new file mode 100644 index 0000000000..d76067552c --- /dev/null +++ b/packages/contracts/generated/api/console/refresh-token/zod.gen.ts @@ -0,0 +1,8 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * Success + */ +export const zPostRefreshTokenResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/api/console/remote-files/orpc.gen.ts b/packages/contracts/generated/api/console/remote-files/orpc.gen.ts new file mode 100644 index 0000000000..977af4a09c --- /dev/null +++ b/packages/contracts/generated/api/console/remote-files/orpc.gen.ts @@ -0,0 +1,48 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zGetRemoteFilesByUrlPath, + zGetRemoteFilesByUrlResponse, + zPostRemoteFilesUploadResponse, +} from './zod.gen' + +export const post = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postRemoteFilesUpload', + path: '/remote-files/upload', + tags: ['console'], + }) + .output(zPostRemoteFilesUploadResponse) + +export const upload = { + post, +} + +export const get = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getRemoteFilesByUrl', + path: '/remote-files/{url}', + tags: ['console'], + }) + .input(z.object({ params: zGetRemoteFilesByUrlPath })) + .output(zGetRemoteFilesByUrlResponse) + +export const byUrl = { + get, +} + +export const remoteFiles = { + upload, + byUrl, +} + +export const contract = { + remoteFiles, +} diff --git a/packages/contracts/generated/api/console/remote-files/types.gen.ts b/packages/contracts/generated/api/console/remote-files/types.gen.ts new file mode 100644 index 0000000000..ea61592a76 --- /dev/null +++ b/packages/contracts/generated/api/console/remote-files/types.gen.ts @@ -0,0 +1,39 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type PostRemoteFilesUploadData = { + body?: never + path?: never + query?: never + url: '/remote-files/upload' +} + +export type PostRemoteFilesUploadResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostRemoteFilesUploadResponse + = PostRemoteFilesUploadResponses[keyof PostRemoteFilesUploadResponses] + +export type GetRemoteFilesByUrlData = { + body?: never + path: { + url: string + } + query?: never + url: '/remote-files/{url}' +} + +export type GetRemoteFilesByUrlResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetRemoteFilesByUrlResponse + = GetRemoteFilesByUrlResponses[keyof GetRemoteFilesByUrlResponses] diff --git a/packages/contracts/generated/api/console/remote-files/zod.gen.ts b/packages/contracts/generated/api/console/remote-files/zod.gen.ts new file mode 100644 index 0000000000..cee96cf65f --- /dev/null +++ b/packages/contracts/generated/api/console/remote-files/zod.gen.ts @@ -0,0 +1,17 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * Success + */ +export const zPostRemoteFilesUploadResponse = z.record(z.string(), z.unknown()) + +export const zGetRemoteFilesByUrlPath = z.object({ + url: z.string(), +}) + +/** + * Success + */ +export const zGetRemoteFilesByUrlResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/api/console/reset-password/orpc.gen.ts b/packages/contracts/generated/api/console/reset-password/orpc.gen.ts new file mode 100644 index 0000000000..93701280db --- /dev/null +++ b/packages/contracts/generated/api/console/reset-password/orpc.gen.ts @@ -0,0 +1,25 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { zPostResetPasswordBody, zPostResetPasswordResponse } from './zod.gen' + +export const post = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postResetPassword', + path: '/reset-password', + tags: ['console'], + }) + .input(z.object({ body: zPostResetPasswordBody })) + .output(zPostResetPasswordResponse) + +export const resetPassword = { + post, +} + +export const contract = { + resetPassword, +} diff --git a/packages/contracts/generated/api/console/reset-password/types.gen.ts b/packages/contracts/generated/api/console/reset-password/types.gen.ts new file mode 100644 index 0000000000..6c2467aab4 --- /dev/null +++ b/packages/contracts/generated/api/console/reset-password/types.gen.ts @@ -0,0 +1,25 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type EmailPayload = { + email: string + language?: string | null +} + +export type PostResetPasswordData = { + body: EmailPayload + path?: never + query?: never + url: '/reset-password' +} + +export type PostResetPasswordResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostResetPasswordResponse = PostResetPasswordResponses[keyof PostResetPasswordResponses] diff --git a/packages/contracts/generated/api/console/reset-password/zod.gen.ts b/packages/contracts/generated/api/console/reset-password/zod.gen.ts new file mode 100644 index 0000000000..055ed9e127 --- /dev/null +++ b/packages/contracts/generated/api/console/reset-password/zod.gen.ts @@ -0,0 +1,18 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * EmailPayload + */ +export const zEmailPayload = z.object({ + email: z.string(), + language: z.string().nullish(), +}) + +export const zPostResetPasswordBody = zEmailPayload + +/** + * Success + */ +export const zPostResetPasswordResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/api/console/rule-code-generate/orpc.gen.ts b/packages/contracts/generated/api/console/rule-code-generate/orpc.gen.ts new file mode 100644 index 0000000000..1c5252525c --- /dev/null +++ b/packages/contracts/generated/api/console/rule-code-generate/orpc.gen.ts @@ -0,0 +1,29 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { zPostRuleCodeGenerateBody, zPostRuleCodeGenerateResponse } from './zod.gen' + +/** + * Generate code rules using LLM + */ +export const post = oc + .route({ + description: 'Generate code rules using LLM', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postRuleCodeGenerate', + path: '/rule-code-generate', + tags: ['console'], + }) + .input(z.object({ body: zPostRuleCodeGenerateBody })) + .output(zPostRuleCodeGenerateResponse) + +export const ruleCodeGenerate = { + post, +} + +export const contract = { + ruleCodeGenerate, +} 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 new file mode 100644 index 0000000000..dc1b045285 --- /dev/null +++ b/packages/contracts/generated/api/console/rule-code-generate/types.gen.ts @@ -0,0 +1,68 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type RuleCodeGeneratePayload = { + code_language?: string + instruction: string + model_config: ModelConfig + no_variable?: boolean +} + +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 +} + +export type JsonValue = unknown + +export type PostRuleCodeGenerateData = { + body: RuleCodeGeneratePayload + path?: never + query?: never + url: '/rule-code-generate' +} + +export type PostRuleCodeGenerateErrors = { + 400: { + [key: string]: unknown + } + 402: { + [key: string]: unknown + } +} + +export type PostRuleCodeGenerateError = PostRuleCodeGenerateErrors[keyof PostRuleCodeGenerateErrors] + +export type PostRuleCodeGenerateResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostRuleCodeGenerateResponse + = PostRuleCodeGenerateResponses[keyof PostRuleCodeGenerateResponses] 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 new file mode 100644 index 0000000000..40b840dc8a --- /dev/null +++ b/packages/contracts/generated/api/console/rule-code-generate/zod.gen.ts @@ -0,0 +1,52 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +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(), +}) + +/** + * RuleCodeGeneratePayload + */ +export const zRuleCodeGeneratePayload = z.object({ + code_language: z.string().optional().default('javascript'), + instruction: z.string(), + model_config: zModelConfig, + no_variable: z.boolean().optional().default(false), +}) + +export const zPostRuleCodeGenerateBody = zRuleCodeGeneratePayload + +/** + * Code rules generated successfully + */ +export const zPostRuleCodeGenerateResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/api/console/rule-generate/orpc.gen.ts b/packages/contracts/generated/api/console/rule-generate/orpc.gen.ts new file mode 100644 index 0000000000..7bd233de2b --- /dev/null +++ b/packages/contracts/generated/api/console/rule-generate/orpc.gen.ts @@ -0,0 +1,29 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { zPostRuleGenerateBody, zPostRuleGenerateResponse } from './zod.gen' + +/** + * Generate rule configuration using LLM + */ +export const post = oc + .route({ + description: 'Generate rule configuration using LLM', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postRuleGenerate', + path: '/rule-generate', + tags: ['console'], + }) + .input(z.object({ body: zPostRuleGenerateBody })) + .output(zPostRuleGenerateResponse) + +export const ruleGenerate = { + post, +} + +export const contract = { + ruleGenerate, +} diff --git a/packages/contracts/generated/api/console/rule-generate/types.gen.ts b/packages/contracts/generated/api/console/rule-generate/types.gen.ts new file mode 100644 index 0000000000..265ca5013d --- /dev/null +++ b/packages/contracts/generated/api/console/rule-generate/types.gen.ts @@ -0,0 +1,66 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type RuleGeneratePayload = { + instruction: string + model_config: ModelConfig + no_variable?: boolean +} + +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 +} + +export type JsonValue = unknown + +export type PostRuleGenerateData = { + body: RuleGeneratePayload + path?: never + query?: never + url: '/rule-generate' +} + +export type PostRuleGenerateErrors = { + 400: { + [key: string]: unknown + } + 402: { + [key: string]: unknown + } +} + +export type PostRuleGenerateError = PostRuleGenerateErrors[keyof PostRuleGenerateErrors] + +export type PostRuleGenerateResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostRuleGenerateResponse = PostRuleGenerateResponses[keyof PostRuleGenerateResponses] diff --git a/packages/contracts/generated/api/console/rule-generate/zod.gen.ts b/packages/contracts/generated/api/console/rule-generate/zod.gen.ts new file mode 100644 index 0000000000..7a346a58fc --- /dev/null +++ b/packages/contracts/generated/api/console/rule-generate/zod.gen.ts @@ -0,0 +1,51 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +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(), +}) + +/** + * RuleGeneratePayload + */ +export const zRuleGeneratePayload = z.object({ + instruction: z.string(), + model_config: zModelConfig, + no_variable: z.boolean().optional().default(false), +}) + +export const zPostRuleGenerateBody = zRuleGeneratePayload + +/** + * Rule configuration generated successfully + */ +export const zPostRuleGenerateResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/api/console/rule-structured-output-generate/orpc.gen.ts b/packages/contracts/generated/api/console/rule-structured-output-generate/orpc.gen.ts new file mode 100644 index 0000000000..276442f1c9 --- /dev/null +++ b/packages/contracts/generated/api/console/rule-structured-output-generate/orpc.gen.ts @@ -0,0 +1,32 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zPostRuleStructuredOutputGenerateBody, + zPostRuleStructuredOutputGenerateResponse, +} from './zod.gen' + +/** + * Generate structured output rules using LLM + */ +export const post = oc + .route({ + description: 'Generate structured output rules using LLM', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postRuleStructuredOutputGenerate', + path: '/rule-structured-output-generate', + tags: ['console'], + }) + .input(z.object({ body: zPostRuleStructuredOutputGenerateBody })) + .output(zPostRuleStructuredOutputGenerateResponse) + +export const ruleStructuredOutputGenerate = { + post, +} + +export const contract = { + ruleStructuredOutputGenerate, +} 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 new file mode 100644 index 0000000000..f6124c6956 --- /dev/null +++ b/packages/contracts/generated/api/console/rule-structured-output-generate/types.gen.ts @@ -0,0 +1,67 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type RuleStructuredOutputPayload = { + instruction: string + model_config: ModelConfig +} + +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 +} + +export type JsonValue = unknown + +export type PostRuleStructuredOutputGenerateData = { + body: RuleStructuredOutputPayload + path?: never + query?: never + url: '/rule-structured-output-generate' +} + +export type PostRuleStructuredOutputGenerateErrors = { + 400: { + [key: string]: unknown + } + 402: { + [key: string]: unknown + } +} + +export type PostRuleStructuredOutputGenerateError + = PostRuleStructuredOutputGenerateErrors[keyof PostRuleStructuredOutputGenerateErrors] + +export type PostRuleStructuredOutputGenerateResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostRuleStructuredOutputGenerateResponse + = PostRuleStructuredOutputGenerateResponses[keyof PostRuleStructuredOutputGenerateResponses] 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 new file mode 100644 index 0000000000..231b5a072c --- /dev/null +++ b/packages/contracts/generated/api/console/rule-structured-output-generate/zod.gen.ts @@ -0,0 +1,50 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +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(), +}) + +/** + * RuleStructuredOutputPayload + */ +export const zRuleStructuredOutputPayload = z.object({ + instruction: z.string(), + model_config: zModelConfig, +}) + +export const zPostRuleStructuredOutputGenerateBody = zRuleStructuredOutputPayload + +/** + * Structured output generated successfully + */ +export const zPostRuleStructuredOutputGenerateResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/api/console/spec/orpc.gen.ts b/packages/contracts/generated/api/console/spec/orpc.gen.ts new file mode 100644 index 0000000000..bd2e750e6d --- /dev/null +++ b/packages/contracts/generated/api/console/spec/orpc.gen.ts @@ -0,0 +1,34 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' + +import { zGetSpecSchemaDefinitionsResponse } from './zod.gen' + +/** + * Get system JSON Schema definitions specification + * + * Used for frontend component type mapping + */ +export const get = oc + .route({ + description: 'Used for frontend component type mapping', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getSpecSchemaDefinitions', + path: '/spec/schema-definitions', + summary: 'Get system JSON Schema definitions specification', + tags: ['console'], + }) + .output(zGetSpecSchemaDefinitionsResponse) + +export const schemaDefinitions = { + get, +} + +export const spec = { + schemaDefinitions, +} + +export const contract = { + spec, +} diff --git a/packages/contracts/generated/api/console/spec/types.gen.ts b/packages/contracts/generated/api/console/spec/types.gen.ts new file mode 100644 index 0000000000..eaad80aa9a --- /dev/null +++ b/packages/contracts/generated/api/console/spec/types.gen.ts @@ -0,0 +1,21 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type GetSpecSchemaDefinitionsData = { + body?: never + path?: never + query?: never + url: '/spec/schema-definitions' +} + +export type GetSpecSchemaDefinitionsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetSpecSchemaDefinitionsResponse + = GetSpecSchemaDefinitionsResponses[keyof GetSpecSchemaDefinitionsResponses] diff --git a/packages/contracts/generated/api/console/spec/zod.gen.ts b/packages/contracts/generated/api/console/spec/zod.gen.ts new file mode 100644 index 0000000000..fa057bc269 --- /dev/null +++ b/packages/contracts/generated/api/console/spec/zod.gen.ts @@ -0,0 +1,8 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * Success + */ +export const zGetSpecSchemaDefinitionsResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/api/console/system-features/orpc.gen.ts b/packages/contracts/generated/api/console/system-features/orpc.gen.ts new file mode 100644 index 0000000000..5c0a475585 --- /dev/null +++ b/packages/contracts/generated/api/console/system-features/orpc.gen.ts @@ -0,0 +1,37 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' + +import { zGetSystemFeaturesResponse } from './zod.gen' + +/** + * Get system-wide feature configuration + * + * Get system-wide feature configuration + * NOTE: This endpoint is unauthenticated by design, as it provides system features + * data required for dashboard initialization. + * + * Authentication would create circular dependency (can't login without dashboard loading). + * + * Only non-sensitive configuration data should be returned by this endpoint. + */ +export const get = oc + .route({ + description: + 'Get system-wide feature configuration\nNOTE: This endpoint is unauthenticated by design, as it provides system features\ndata required for dashboard initialization.\n\nAuthentication would create circular dependency (can\'t login without dashboard loading).\n\nOnly non-sensitive configuration data should be returned by this endpoint.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getSystemFeatures', + path: '/system-features', + summary: 'Get system-wide feature configuration', + tags: ['console'], + }) + .output(zGetSystemFeaturesResponse) + +export const systemFeatures = { + get, +} + +export const contract = { + systemFeatures, +} diff --git a/packages/contracts/generated/api/console/system-features/types.gen.ts b/packages/contracts/generated/api/console/system-features/types.gen.ts new file mode 100644 index 0000000000..0fbea39beb --- /dev/null +++ b/packages/contracts/generated/api/console/system-features/types.gen.ts @@ -0,0 +1,22 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type SystemFeatureResponse = { + [key: string]: unknown +} + +export type GetSystemFeaturesData = { + body?: never + path?: never + query?: never + url: '/system-features' +} + +export type GetSystemFeaturesResponses = { + 200: SystemFeatureResponse +} + +export type GetSystemFeaturesResponse = GetSystemFeaturesResponses[keyof GetSystemFeaturesResponses] diff --git a/packages/contracts/generated/api/console/system-features/zod.gen.ts b/packages/contracts/generated/api/console/system-features/zod.gen.ts new file mode 100644 index 0000000000..affb2a10a3 --- /dev/null +++ b/packages/contracts/generated/api/console/system-features/zod.gen.ts @@ -0,0 +1,10 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +export const zSystemFeatureResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zGetSystemFeaturesResponse = zSystemFeatureResponse diff --git a/packages/contracts/generated/api/console/tag-bindings/orpc.gen.ts b/packages/contracts/generated/api/console/tag-bindings/orpc.gen.ts new file mode 100644 index 0000000000..8b58d2c47d --- /dev/null +++ b/packages/contracts/generated/api/console/tag-bindings/orpc.gen.ts @@ -0,0 +1,97 @@ +// This file is auto-generated by @hey-api/openapi-ts + +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 + */ +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.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postTagBindingsRemove', + path: '/tag-bindings/remove', + tags: ['console'], + }) + .input(z.object({ body: zPostTagBindingsRemoveBody })) + .output(zPostTagBindingsRemoveResponse) + +export const remove = { + post: post2, +} + +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 + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postTagBindings', + path: '/tag-bindings', + tags: ['console'], + }) + .input(z.object({ body: zPostTagBindingsBody })) + .output(zPostTagBindingsResponse) + +export const tagBindings = { + post: post3, + create, + remove, + byId, +} + +export const contract = { + tagBindings, +} diff --git a/packages/contracts/generated/api/console/tag-bindings/types.gen.ts b/packages/contracts/generated/api/console/tag-bindings/types.gen.ts new file mode 100644 index 0000000000..e9426766ed --- /dev/null +++ b/packages/contracts/generated/api/console/tag-bindings/types.gen.ts @@ -0,0 +1,89 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type TagBindingPayload = { + tag_ids: Array + target_id: string + type: TagType +} + +export type TagBindingRemovePayload = { + tag_id: string + target_id: string + type: TagType +} + +export type TagBindingItemDeletePayload = { + target_id: string + type: TagType +} + +export type TagType = 'knowledge' | 'app' + +export type PostTagBindingsData = { + body: TagBindingPayload + path?: never + query?: never + url: '/tag-bindings' +} + +export type PostTagBindingsResponses = { + 200: { + [key: string]: unknown + } +} + +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 + query?: never + url: '/tag-bindings/remove' +} + +export type PostTagBindingsRemoveResponses = { + 200: { + [key: string]: unknown + } +} + +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 new file mode 100644 index 0000000000..3dead1ec1b --- /dev/null +++ b/packages/contracts/generated/api/console/tag-bindings/zod.gen.ts @@ -0,0 +1,68 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * TagType + * + * Tag type + */ +export const zTagType = z.enum(['knowledge', 'app']) + +/** + * TagBindingPayload + */ +export const zTagBindingPayload = z.object({ + tag_ids: z.array(z.string()), + target_id: z.string(), + type: zTagType, +}) + +/** + * TagBindingRemovePayload + */ +export const zTagBindingRemovePayload = z.object({ + tag_id: z.string(), + target_id: z.string(), + type: zTagType, +}) + +/** + * TagBindingItemDeletePayload + */ +export const zTagBindingItemDeletePayload = z.object({ + target_id: z.string(), + type: zTagType, +}) + +export const zPostTagBindingsBody = zTagBindingPayload + +/** + * Success + */ +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/orpc.gen.ts b/packages/contracts/generated/api/console/tags/orpc.gen.ts new file mode 100644 index 0000000000..937ccce634 --- /dev/null +++ b/packages/contracts/generated/api/console/tags/orpc.gen.ts @@ -0,0 +1,75 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zDeleteTagsByTagIdPath, + zDeleteTagsByTagIdResponse, + zGetTagsQuery, + zGetTagsResponse, + zPatchTagsByTagIdBody, + zPatchTagsByTagIdPath, + zPatchTagsByTagIdResponse, + zPostTagsBody, + zPostTagsResponse, +} from './zod.gen' + +export const delete_ = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteTagsByTagId', + path: '/tags/{tag_id}', + tags: ['console'], + }) + .input(z.object({ params: zDeleteTagsByTagIdPath })) + .output(zDeleteTagsByTagIdResponse) + +export const patch = oc + .route({ + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchTagsByTagId', + path: '/tags/{tag_id}', + tags: ['console'], + }) + .input(z.object({ body: zPatchTagsByTagIdBody, params: zPatchTagsByTagIdPath })) + .output(zPatchTagsByTagIdResponse) + +export const byTagId = { + delete: delete_, + patch, +} + +export const get = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getTags', + path: '/tags', + tags: ['console'], + }) + .input(z.object({ query: zGetTagsQuery.optional() })) + .output(zGetTagsResponse) + +export const post = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postTags', + path: '/tags', + tags: ['console'], + }) + .input(z.object({ body: zPostTagsBody })) + .output(zPostTagsResponse) + +export const tags = { + get, + post, + byTagId, +} + +export const contract = { + tags, +} diff --git a/packages/contracts/generated/api/console/tags/types.gen.ts b/packages/contracts/generated/api/console/tags/types.gen.ts new file mode 100644 index 0000000000..f3c3b1eb3f --- /dev/null +++ b/packages/contracts/generated/api/console/tags/types.gen.ts @@ -0,0 +1,84 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type TagResponse = { + binding_count?: string | null + id: string + name: string + type?: string | null +} + +export type TagBasePayload = { + name: string + type: TagType +} + +export type TagType = 'knowledge' | 'app' + +export type GetTagsData = { + body?: never + path?: never + query?: { + type?: string + keyword?: string + } + url: '/tags' +} + +export type GetTagsResponses = { + 200: Array +} + +export type GetTagsResponse = GetTagsResponses[keyof GetTagsResponses] + +export type PostTagsData = { + body: TagBasePayload + path?: never + query?: never + url: '/tags' +} + +export type PostTagsResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostTagsResponse = PostTagsResponses[keyof PostTagsResponses] + +export type DeleteTagsByTagIdData = { + body?: never + path: { + tag_id: string + } + query?: never + url: '/tags/{tag_id}' +} + +export type DeleteTagsByTagIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type DeleteTagsByTagIdResponse = DeleteTagsByTagIdResponses[keyof DeleteTagsByTagIdResponses] + +export type PatchTagsByTagIdData = { + body: TagBasePayload + path: { + tag_id: string + } + query?: never + url: '/tags/{tag_id}' +} + +export type PatchTagsByTagIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type PatchTagsByTagIdResponse = PatchTagsByTagIdResponses[keyof PatchTagsByTagIdResponses] diff --git a/packages/contracts/generated/api/console/tags/zod.gen.ts b/packages/contracts/generated/api/console/tags/zod.gen.ts new file mode 100644 index 0000000000..4bb8e1783c --- /dev/null +++ b/packages/contracts/generated/api/console/tags/zod.gen.ts @@ -0,0 +1,65 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * TagResponse + */ +export const zTagResponse = z.object({ + binding_count: z.string().nullish(), + id: z.string(), + name: z.string(), + type: z.string().nullish(), +}) + +/** + * TagType + * + * Tag type + */ +export const zTagType = z.enum(['knowledge', 'app']) + +/** + * TagBasePayload + */ +export const zTagBasePayload = z.object({ + name: z.string().min(1).max(50), + type: zTagType, +}) + +export const zGetTagsQuery = z.object({ + type: z.string().optional(), + keyword: z.string().optional(), +}) + +/** + * Success + */ +export const zGetTagsResponse = z.array(zTagResponse) + +export const zPostTagsBody = zTagBasePayload + +/** + * Success + */ +export const zPostTagsResponse = z.record(z.string(), z.unknown()) + +export const zDeleteTagsByTagIdPath = z.object({ + tag_id: z.string(), +}) + +/** + * Success + */ +export const zDeleteTagsByTagIdResponse = z.record(z.string(), z.unknown()) + +export const zPatchTagsByTagIdBody = zTagBasePayload + +export const zPatchTagsByTagIdPath = z.object({ + tag_id: z.string(), +}) + +/** + * Success + */ +export const zPatchTagsByTagIdResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/api/console/test/orpc.gen.ts b/packages/contracts/generated/api/console/test/orpc.gen.ts new file mode 100644 index 0000000000..1bdf526b70 --- /dev/null +++ b/packages/contracts/generated/api/console/test/orpc.gen.ts @@ -0,0 +1,33 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { zPostTestRetrievalBody, zPostTestRetrievalResponse } from './zod.gen' + +/** + * Bedrock retrieval test (internal use only) + */ +export const post = oc + .route({ + description: 'Bedrock retrieval test (internal use only)', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postTestRetrieval', + path: '/test/retrieval', + tags: ['console'], + }) + .input(z.object({ body: zPostTestRetrievalBody })) + .output(zPostTestRetrievalResponse) + +export const retrieval = { + post, +} + +export const test = { + retrieval, +} + +export const contract = { + test, +} diff --git a/packages/contracts/generated/api/console/test/types.gen.ts b/packages/contracts/generated/api/console/test/types.gen.ts new file mode 100644 index 0000000000..3e04b732ee --- /dev/null +++ b/packages/contracts/generated/api/console/test/types.gen.ts @@ -0,0 +1,31 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type BedrockRetrievalPayload = { + knowledge_id: string + query: string + retrieval_setting: BedrockRetrievalSetting +} + +export type BedrockRetrievalSetting = { + score_threshold?: number + top_k?: number | null +} + +export type PostTestRetrievalData = { + body: BedrockRetrievalPayload + path?: never + query?: never + url: '/test/retrieval' +} + +export type PostTestRetrievalResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostTestRetrievalResponse = PostTestRetrievalResponses[keyof PostTestRetrievalResponses] diff --git a/packages/contracts/generated/api/console/test/zod.gen.ts b/packages/contracts/generated/api/console/test/zod.gen.ts new file mode 100644 index 0000000000..9421c6c03f --- /dev/null +++ b/packages/contracts/generated/api/console/test/zod.gen.ts @@ -0,0 +1,29 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * BedrockRetrievalSetting + * + * Retrieval settings for Amazon Bedrock knowledge base queries. + */ +export const zBedrockRetrievalSetting = z.object({ + score_threshold: z.number().optional().default(0), + top_k: z.int().nullish(), +}) + +/** + * BedrockRetrievalPayload + */ +export const zBedrockRetrievalPayload = z.object({ + knowledge_id: z.string(), + query: z.string(), + retrieval_setting: zBedrockRetrievalSetting, +}) + +export const zPostTestRetrievalBody = zBedrockRetrievalPayload + +/** + * Bedrock retrieval test completed + */ +export const zPostTestRetrievalResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/api/console/trial-apps/orpc.gen.ts b/packages/contracts/generated/api/console/trial-apps/orpc.gen.ts new file mode 100644 index 0000000000..eca85c206f --- /dev/null +++ b/packages/contracts/generated/api/console/trial-apps/orpc.gen.ts @@ -0,0 +1,298 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zGetTrialAppsByAppIdDatasetsPath, + zGetTrialAppsByAppIdDatasetsResponse, + zGetTrialAppsByAppIdMessagesByMessageIdSuggestedQuestionsPath, + zGetTrialAppsByAppIdMessagesByMessageIdSuggestedQuestionsResponse, + zGetTrialAppsByAppIdParametersPath, + zGetTrialAppsByAppIdParametersResponse, + zGetTrialAppsByAppIdPath, + zGetTrialAppsByAppIdResponse, + zGetTrialAppsByAppIdSitePath, + zGetTrialAppsByAppIdSiteResponse, + zGetTrialAppsByAppIdWorkflowsPath, + zGetTrialAppsByAppIdWorkflowsResponse, + zPostTrialAppsByAppIdAudioToTextPath, + zPostTrialAppsByAppIdAudioToTextResponse, + zPostTrialAppsByAppIdChatMessagesBody, + zPostTrialAppsByAppIdChatMessagesPath, + zPostTrialAppsByAppIdChatMessagesResponse, + zPostTrialAppsByAppIdCompletionMessagesBody, + zPostTrialAppsByAppIdCompletionMessagesPath, + zPostTrialAppsByAppIdCompletionMessagesResponse, + zPostTrialAppsByAppIdTextToAudioBody, + zPostTrialAppsByAppIdTextToAudioPath, + zPostTrialAppsByAppIdTextToAudioResponse, + zPostTrialAppsByAppIdWorkflowsRunBody, + zPostTrialAppsByAppIdWorkflowsRunPath, + zPostTrialAppsByAppIdWorkflowsRunResponse, + zPostTrialAppsByAppIdWorkflowsTasksByTaskIdStopPath, + zPostTrialAppsByAppIdWorkflowsTasksByTaskIdStopResponse, +} from './zod.gen' + +export const post = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postTrialAppsByAppIdAudioToText', + path: '/trial-apps/{app_id}/audio-to-text', + tags: ['console'], + }) + .input(z.object({ params: zPostTrialAppsByAppIdAudioToTextPath })) + .output(zPostTrialAppsByAppIdAudioToTextResponse) + +export const audioToText = { + post, +} + +export const post2 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postTrialAppsByAppIdChatMessages', + path: '/trial-apps/{app_id}/chat-messages', + tags: ['console'], + }) + .input( + z.object({ + body: zPostTrialAppsByAppIdChatMessagesBody, + params: zPostTrialAppsByAppIdChatMessagesPath, + }), + ) + .output(zPostTrialAppsByAppIdChatMessagesResponse) + +export const chatMessages = { + post: post2, +} + +export const post3 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postTrialAppsByAppIdCompletionMessages', + path: '/trial-apps/{app_id}/completion-messages', + tags: ['console'], + }) + .input( + z.object({ + body: zPostTrialAppsByAppIdCompletionMessagesBody, + params: zPostTrialAppsByAppIdCompletionMessagesPath, + }), + ) + .output(zPostTrialAppsByAppIdCompletionMessagesResponse) + +export const completionMessages = { + post: post3, +} + +export const get = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getTrialAppsByAppIdDatasets', + path: '/trial-apps/{app_id}/datasets', + tags: ['console'], + }) + .input(z.object({ params: zGetTrialAppsByAppIdDatasetsPath })) + .output(zGetTrialAppsByAppIdDatasetsResponse) + +export const datasets = { + get, +} + +export const get2 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getTrialAppsByAppIdMessagesByMessageIdSuggestedQuestions', + path: '/trial-apps/{app_id}/messages/{message_id}/suggested-questions', + tags: ['console'], + }) + .input(z.object({ params: zGetTrialAppsByAppIdMessagesByMessageIdSuggestedQuestionsPath })) + .output(zGetTrialAppsByAppIdMessagesByMessageIdSuggestedQuestionsResponse) + +export const suggestedQuestions = { + get: get2, +} + +export const byMessageId = { + suggestedQuestions, +} + +export const messages = { + byMessageId, +} + +/** + * Retrieve app parameters + */ +export const get3 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getTrialAppsByAppIdParameters', + path: '/trial-apps/{app_id}/parameters', + summary: 'Retrieve app parameters', + tags: ['console'], + }) + .input(z.object({ params: zGetTrialAppsByAppIdParametersPath })) + .output(zGetTrialAppsByAppIdParametersResponse) + +export const parameters = { + get: get3, +} + +/** + * Retrieve app site info + * + * Returns the site configuration for the application including theme, icons, and text. + */ +export const get4 = oc + .route({ + description: + 'Returns the site configuration for the application including theme, icons, and text.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getTrialAppsByAppIdSite', + path: '/trial-apps/{app_id}/site', + summary: 'Retrieve app site info', + tags: ['console'], + }) + .input(z.object({ params: zGetTrialAppsByAppIdSitePath })) + .output(zGetTrialAppsByAppIdSiteResponse) + +export const site = { + get: get4, +} + +export const post4 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postTrialAppsByAppIdTextToAudio', + path: '/trial-apps/{app_id}/text-to-audio', + tags: ['console'], + }) + .input( + z.object({ + body: zPostTrialAppsByAppIdTextToAudioBody, + params: zPostTrialAppsByAppIdTextToAudioPath, + }), + ) + .output(zPostTrialAppsByAppIdTextToAudioResponse) + +export const textToAudio = { + post: post4, +} + +/** + * Run workflow + */ +export const post5 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postTrialAppsByAppIdWorkflowsRun', + path: '/trial-apps/{app_id}/workflows/run', + summary: 'Run workflow', + tags: ['console'], + }) + .input( + z.object({ + body: zPostTrialAppsByAppIdWorkflowsRunBody, + params: zPostTrialAppsByAppIdWorkflowsRunPath, + }), + ) + .output(zPostTrialAppsByAppIdWorkflowsRunResponse) + +export const run = { + post: post5, +} + +/** + * Stop workflow task + */ +export const post6 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postTrialAppsByAppIdWorkflowsTasksByTaskIdStop', + path: '/trial-apps/{app_id}/workflows/tasks/{task_id}/stop', + summary: 'Stop workflow task', + tags: ['console'], + }) + .input(z.object({ params: zPostTrialAppsByAppIdWorkflowsTasksByTaskIdStopPath })) + .output(zPostTrialAppsByAppIdWorkflowsTasksByTaskIdStopResponse) + +export const stop = { + post: post6, +} + +export const byTaskId = { + stop, +} + +export const tasks = { + byTaskId, +} + +/** + * Get workflow detail + */ +export const get5 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getTrialAppsByAppIdWorkflows', + path: '/trial-apps/{app_id}/workflows', + summary: 'Get workflow detail', + tags: ['console'], + }) + .input(z.object({ params: zGetTrialAppsByAppIdWorkflowsPath })) + .output(zGetTrialAppsByAppIdWorkflowsResponse) + +export const workflows = { + get: get5, + run, + tasks, +} + +/** + * Get app detail + */ +export const get6 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getTrialAppsByAppId', + path: '/trial-apps/{app_id}', + summary: 'Get app detail', + tags: ['console'], + }) + .input(z.object({ params: zGetTrialAppsByAppIdPath })) + .output(zGetTrialAppsByAppIdResponse) + +export const byAppId = { + get: get6, + audioToText, + chatMessages, + completionMessages, + datasets, + messages, + parameters, + site, + textToAudio, + workflows, +} + +export const trialApps = { + byAppId, +} + +export const contract = { + trialApps, +} diff --git a/packages/contracts/generated/api/console/trial-apps/types.gen.ts b/packages/contracts/generated/api/console/trial-apps/types.gen.ts new file mode 100644 index 0000000000..2965aafebf --- /dev/null +++ b/packages/contracts/generated/api/console/trial-apps/types.gen.ts @@ -0,0 +1,258 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type ChatRequest = { + conversation_id?: string | null + files?: Array | null + inputs: { + [key: string]: unknown + } + parent_message_id?: string | null + query: string + retriever_from?: string +} + +export type CompletionRequest = { + files?: Array | null + inputs: { + [key: string]: unknown + } + query?: string + response_mode?: 'blocking' | 'streaming' | null + retriever_from?: string +} + +export type TextToSpeechRequest = { + message_id?: string | null + streaming?: boolean | null + text?: string | null + voice?: string | null +} + +export type WorkflowRunRequest = { + files?: Array | null + inputs: { + [key: string]: unknown + } +} + +export type GetTrialAppsByAppIdData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/trial-apps/{app_id}' +} + +export type GetTrialAppsByAppIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetTrialAppsByAppIdResponse + = GetTrialAppsByAppIdResponses[keyof GetTrialAppsByAppIdResponses] + +export type PostTrialAppsByAppIdAudioToTextData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/trial-apps/{app_id}/audio-to-text' +} + +export type PostTrialAppsByAppIdAudioToTextResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostTrialAppsByAppIdAudioToTextResponse + = PostTrialAppsByAppIdAudioToTextResponses[keyof PostTrialAppsByAppIdAudioToTextResponses] + +export type PostTrialAppsByAppIdChatMessagesData = { + body: ChatRequest + path: { + app_id: string + } + query?: never + url: '/trial-apps/{app_id}/chat-messages' +} + +export type PostTrialAppsByAppIdChatMessagesResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostTrialAppsByAppIdChatMessagesResponse + = PostTrialAppsByAppIdChatMessagesResponses[keyof PostTrialAppsByAppIdChatMessagesResponses] + +export type PostTrialAppsByAppIdCompletionMessagesData = { + body: CompletionRequest + path: { + app_id: string + } + query?: never + url: '/trial-apps/{app_id}/completion-messages' +} + +export type PostTrialAppsByAppIdCompletionMessagesResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostTrialAppsByAppIdCompletionMessagesResponse + = PostTrialAppsByAppIdCompletionMessagesResponses[keyof PostTrialAppsByAppIdCompletionMessagesResponses] + +export type GetTrialAppsByAppIdDatasetsData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/trial-apps/{app_id}/datasets' +} + +export type GetTrialAppsByAppIdDatasetsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetTrialAppsByAppIdDatasetsResponse + = GetTrialAppsByAppIdDatasetsResponses[keyof GetTrialAppsByAppIdDatasetsResponses] + +export type GetTrialAppsByAppIdMessagesByMessageIdSuggestedQuestionsData = { + body?: never + path: { + app_id: string + message_id: string + } + query?: never + url: '/trial-apps/{app_id}/messages/{message_id}/suggested-questions' +} + +export type GetTrialAppsByAppIdMessagesByMessageIdSuggestedQuestionsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetTrialAppsByAppIdMessagesByMessageIdSuggestedQuestionsResponse + = GetTrialAppsByAppIdMessagesByMessageIdSuggestedQuestionsResponses[keyof GetTrialAppsByAppIdMessagesByMessageIdSuggestedQuestionsResponses] + +export type GetTrialAppsByAppIdParametersData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/trial-apps/{app_id}/parameters' +} + +export type GetTrialAppsByAppIdParametersResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetTrialAppsByAppIdParametersResponse + = GetTrialAppsByAppIdParametersResponses[keyof GetTrialAppsByAppIdParametersResponses] + +export type GetTrialAppsByAppIdSiteData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/trial-apps/{app_id}/site' +} + +export type GetTrialAppsByAppIdSiteResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetTrialAppsByAppIdSiteResponse + = GetTrialAppsByAppIdSiteResponses[keyof GetTrialAppsByAppIdSiteResponses] + +export type PostTrialAppsByAppIdTextToAudioData = { + body: TextToSpeechRequest + path: { + app_id: string + } + query?: never + url: '/trial-apps/{app_id}/text-to-audio' +} + +export type PostTrialAppsByAppIdTextToAudioResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostTrialAppsByAppIdTextToAudioResponse + = PostTrialAppsByAppIdTextToAudioResponses[keyof PostTrialAppsByAppIdTextToAudioResponses] + +export type GetTrialAppsByAppIdWorkflowsData = { + body?: never + path: { + app_id: string + } + query?: never + url: '/trial-apps/{app_id}/workflows' +} + +export type GetTrialAppsByAppIdWorkflowsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetTrialAppsByAppIdWorkflowsResponse + = GetTrialAppsByAppIdWorkflowsResponses[keyof GetTrialAppsByAppIdWorkflowsResponses] + +export type PostTrialAppsByAppIdWorkflowsRunData = { + body: WorkflowRunRequest + path: { + app_id: string + } + query?: never + url: '/trial-apps/{app_id}/workflows/run' +} + +export type PostTrialAppsByAppIdWorkflowsRunResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostTrialAppsByAppIdWorkflowsRunResponse + = PostTrialAppsByAppIdWorkflowsRunResponses[keyof PostTrialAppsByAppIdWorkflowsRunResponses] + +export type PostTrialAppsByAppIdWorkflowsTasksByTaskIdStopData = { + body?: never + path: { + app_id: string + task_id: string + } + query?: never + url: '/trial-apps/{app_id}/workflows/tasks/{task_id}/stop' +} + +export type PostTrialAppsByAppIdWorkflowsTasksByTaskIdStopResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostTrialAppsByAppIdWorkflowsTasksByTaskIdStopResponse + = PostTrialAppsByAppIdWorkflowsTasksByTaskIdStopResponses[keyof PostTrialAppsByAppIdWorkflowsTasksByTaskIdStopResponses] diff --git a/packages/contracts/generated/api/console/trial-apps/zod.gen.ts b/packages/contracts/generated/api/console/trial-apps/zod.gen.ts new file mode 100644 index 0000000000..f7a52425a2 --- /dev/null +++ b/packages/contracts/generated/api/console/trial-apps/zod.gen.ts @@ -0,0 +1,168 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * ChatRequest + */ +export const zChatRequest = z.object({ + conversation_id: z.string().nullish(), + files: z.array(z.unknown()).nullish(), + inputs: z.record(z.string(), z.unknown()), + parent_message_id: z.string().nullish(), + query: z.string(), + retriever_from: z.string().optional().default('explore_app'), +}) + +/** + * CompletionRequest + */ +export const zCompletionRequest = z.object({ + files: z.array(z.unknown()).nullish(), + inputs: z.record(z.string(), z.unknown()), + query: z.string().optional().default(''), + response_mode: z.enum(['blocking', 'streaming']).nullish(), + retriever_from: z.string().optional().default('explore_app'), +}) + +/** + * TextToSpeechRequest + */ +export const zTextToSpeechRequest = z.object({ + message_id: z.string().nullish(), + streaming: z.boolean().nullish(), + text: z.string().nullish(), + voice: z.string().nullish(), +}) + +/** + * WorkflowRunRequest + */ +export const zWorkflowRunRequest = z.object({ + files: z.array(z.unknown()).nullish(), + inputs: z.record(z.string(), z.unknown()), +}) + +export const zGetTrialAppsByAppIdPath = z.object({ + app_id: z.string(), +}) + +/** + * Success + */ +export const zGetTrialAppsByAppIdResponse = z.record(z.string(), z.unknown()) + +export const zPostTrialAppsByAppIdAudioToTextPath = z.object({ + app_id: z.string(), +}) + +/** + * Success + */ +export const zPostTrialAppsByAppIdAudioToTextResponse = z.record(z.string(), z.unknown()) + +export const zPostTrialAppsByAppIdChatMessagesBody = zChatRequest + +export const zPostTrialAppsByAppIdChatMessagesPath = z.object({ + app_id: z.string(), +}) + +/** + * Success + */ +export const zPostTrialAppsByAppIdChatMessagesResponse = z.record(z.string(), z.unknown()) + +export const zPostTrialAppsByAppIdCompletionMessagesBody = zCompletionRequest + +export const zPostTrialAppsByAppIdCompletionMessagesPath = z.object({ + app_id: z.string(), +}) + +/** + * Success + */ +export const zPostTrialAppsByAppIdCompletionMessagesResponse = z.record(z.string(), z.unknown()) + +export const zGetTrialAppsByAppIdDatasetsPath = z.object({ + app_id: z.string(), +}) + +/** + * Success + */ +export const zGetTrialAppsByAppIdDatasetsResponse = z.record(z.string(), z.unknown()) + +export const zGetTrialAppsByAppIdMessagesByMessageIdSuggestedQuestionsPath = z.object({ + app_id: z.string(), + message_id: z.string(), +}) + +/** + * Success + */ +export const zGetTrialAppsByAppIdMessagesByMessageIdSuggestedQuestionsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetTrialAppsByAppIdParametersPath = z.object({ + app_id: z.string(), +}) + +/** + * Success + */ +export const zGetTrialAppsByAppIdParametersResponse = z.record(z.string(), z.unknown()) + +export const zGetTrialAppsByAppIdSitePath = z.object({ + app_id: z.string(), +}) + +/** + * Success + */ +export const zGetTrialAppsByAppIdSiteResponse = z.record(z.string(), z.unknown()) + +export const zPostTrialAppsByAppIdTextToAudioBody = zTextToSpeechRequest + +export const zPostTrialAppsByAppIdTextToAudioPath = z.object({ + app_id: z.string(), +}) + +/** + * Success + */ +export const zPostTrialAppsByAppIdTextToAudioResponse = z.record(z.string(), z.unknown()) + +export const zGetTrialAppsByAppIdWorkflowsPath = z.object({ + app_id: z.string(), +}) + +/** + * Success + */ +export const zGetTrialAppsByAppIdWorkflowsResponse = z.record(z.string(), z.unknown()) + +export const zPostTrialAppsByAppIdWorkflowsRunBody = zWorkflowRunRequest + +export const zPostTrialAppsByAppIdWorkflowsRunPath = z.object({ + app_id: z.string(), +}) + +/** + * Success + */ +export const zPostTrialAppsByAppIdWorkflowsRunResponse = z.record(z.string(), z.unknown()) + +export const zPostTrialAppsByAppIdWorkflowsTasksByTaskIdStopPath = z.object({ + app_id: z.string(), + task_id: z.string(), +}) + +/** + * Success + */ +export const zPostTrialAppsByAppIdWorkflowsTasksByTaskIdStopResponse = z.record( + z.string(), + z.unknown(), +) diff --git a/packages/contracts/generated/api/console/website/orpc.gen.ts b/packages/contracts/generated/api/console/website/orpc.gen.ts new file mode 100644 index 0000000000..698f656967 --- /dev/null +++ b/packages/contracts/generated/api/console/website/orpc.gen.ts @@ -0,0 +1,68 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zGetWebsiteCrawlStatusByJobIdPath, + zGetWebsiteCrawlStatusByJobIdQuery, + zGetWebsiteCrawlStatusByJobIdResponse, + zPostWebsiteCrawlBody, + zPostWebsiteCrawlResponse, +} from './zod.gen' + +/** + * Get website crawl status + */ +export const get = oc + .route({ + description: 'Get website crawl status', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWebsiteCrawlStatusByJobId', + path: '/website/crawl/status/{job_id}', + tags: ['console'], + }) + .input( + z.object({ + params: zGetWebsiteCrawlStatusByJobIdPath, + query: zGetWebsiteCrawlStatusByJobIdQuery, + }), + ) + .output(zGetWebsiteCrawlStatusByJobIdResponse) + +export const byJobId = { + get, +} + +export const status = { + byJobId, +} + +/** + * Crawl website content + */ +export const post = oc + .route({ + description: 'Crawl website content', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWebsiteCrawl', + path: '/website/crawl', + tags: ['console'], + }) + .input(z.object({ body: zPostWebsiteCrawlBody })) + .output(zPostWebsiteCrawlResponse) + +export const crawl = { + post, + status, +} + +export const website = { + crawl, +} + +export const contract = { + website, +} diff --git a/packages/contracts/generated/api/console/website/types.gen.ts b/packages/contracts/generated/api/console/website/types.gen.ts new file mode 100644 index 0000000000..e47b11a819 --- /dev/null +++ b/packages/contracts/generated/api/console/website/types.gen.ts @@ -0,0 +1,68 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type WebsiteCrawlPayload = { + options: { + [key: string]: unknown + } + provider: 'firecrawl' | 'watercrawl' | 'jinareader' + url: string +} + +export type PostWebsiteCrawlData = { + body: WebsiteCrawlPayload + path?: never + query?: never + url: '/website/crawl' +} + +export type PostWebsiteCrawlErrors = { + 400: { + [key: string]: unknown + } +} + +export type PostWebsiteCrawlError = PostWebsiteCrawlErrors[keyof PostWebsiteCrawlErrors] + +export type PostWebsiteCrawlResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWebsiteCrawlResponse = PostWebsiteCrawlResponses[keyof PostWebsiteCrawlResponses] + +export type GetWebsiteCrawlStatusByJobIdData = { + body?: never + path: { + job_id: string + } + query: { + provider: 'firecrawl' | 'watercrawl' | 'jinareader' + } + url: '/website/crawl/status/{job_id}' +} + +export type GetWebsiteCrawlStatusByJobIdErrors = { + 400: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type GetWebsiteCrawlStatusByJobIdError + = GetWebsiteCrawlStatusByJobIdErrors[keyof GetWebsiteCrawlStatusByJobIdErrors] + +export type GetWebsiteCrawlStatusByJobIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWebsiteCrawlStatusByJobIdResponse + = GetWebsiteCrawlStatusByJobIdResponses[keyof GetWebsiteCrawlStatusByJobIdResponses] diff --git a/packages/contracts/generated/api/console/website/zod.gen.ts b/packages/contracts/generated/api/console/website/zod.gen.ts new file mode 100644 index 0000000000..a7590ec9ee --- /dev/null +++ b/packages/contracts/generated/api/console/website/zod.gen.ts @@ -0,0 +1,32 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * WebsiteCrawlPayload + */ +export const zWebsiteCrawlPayload = z.object({ + options: z.record(z.string(), z.unknown()), + provider: z.enum(['firecrawl', 'watercrawl', 'jinareader']), + url: z.string(), +}) + +export const zPostWebsiteCrawlBody = zWebsiteCrawlPayload + +/** + * Website crawl initiated successfully + */ +export const zPostWebsiteCrawlResponse = z.record(z.string(), z.unknown()) + +export const zGetWebsiteCrawlStatusByJobIdPath = z.object({ + job_id: z.string(), +}) + +export const zGetWebsiteCrawlStatusByJobIdQuery = z.object({ + provider: z.enum(['firecrawl', 'watercrawl', 'jinareader']), +}) + +/** + * Crawl status retrieved successfully + */ +export const zGetWebsiteCrawlStatusByJobIdResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/api/console/workflow/orpc.gen.ts b/packages/contracts/generated/api/console/workflow/orpc.gen.ts new file mode 100644 index 0000000000..bf139e6ac1 --- /dev/null +++ b/packages/contracts/generated/api/console/workflow/orpc.gen.ts @@ -0,0 +1,74 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zGetWorkflowByWorkflowRunIdEventsPath, + zGetWorkflowByWorkflowRunIdEventsResponse, + zGetWorkflowByWorkflowRunIdPauseDetailsPath, + zGetWorkflowByWorkflowRunIdPauseDetailsResponse, +} from './zod.gen' + +/** + * Get workflow execution events stream after resume + * + * GET /console/api/workflow//events + * + * Returns Server-Sent Events stream. + */ +export const get = oc + .route({ + description: + 'GET /console/api/workflow//events\n\nReturns Server-Sent Events stream.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkflowByWorkflowRunIdEvents', + path: '/workflow/{workflow_run_id}/events', + summary: 'Get workflow execution events stream after resume', + tags: ['console'], + }) + .input(z.object({ params: zGetWorkflowByWorkflowRunIdEventsPath })) + .output(zGetWorkflowByWorkflowRunIdEventsResponse) + +export const events = { + get, +} + +/** + * Get workflow pause details + * + * GET /console/api/workflow//pause-details + * + * Returns information about why and where the workflow is paused. + */ +export const get2 = oc + .route({ + description: + 'GET /console/api/workflow//pause-details\n\nReturns information about why and where the workflow is paused.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkflowByWorkflowRunIdPauseDetails', + path: '/workflow/{workflow_run_id}/pause-details', + summary: 'Get workflow pause details', + tags: ['console'], + }) + .input(z.object({ params: zGetWorkflowByWorkflowRunIdPauseDetailsPath })) + .output(zGetWorkflowByWorkflowRunIdPauseDetailsResponse) + +export const pauseDetails = { + get: get2, +} + +export const byWorkflowRunId = { + events, + pauseDetails, +} + +export const workflow = { + byWorkflowRunId, +} + +export const contract = { + workflow, +} diff --git a/packages/contracts/generated/api/console/workflow/types.gen.ts b/packages/contracts/generated/api/console/workflow/types.gen.ts new file mode 100644 index 0000000000..a3fae60eae --- /dev/null +++ b/packages/contracts/generated/api/console/workflow/types.gen.ts @@ -0,0 +1,41 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type GetWorkflowByWorkflowRunIdEventsData = { + body?: never + path: { + workflow_run_id: string + } + query?: never + url: '/workflow/{workflow_run_id}/events' +} + +export type GetWorkflowByWorkflowRunIdEventsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkflowByWorkflowRunIdEventsResponse + = GetWorkflowByWorkflowRunIdEventsResponses[keyof GetWorkflowByWorkflowRunIdEventsResponses] + +export type GetWorkflowByWorkflowRunIdPauseDetailsData = { + body?: never + path: { + workflow_run_id: string + } + query?: never + url: '/workflow/{workflow_run_id}/pause-details' +} + +export type GetWorkflowByWorkflowRunIdPauseDetailsResponses = { + 200: { + [key: string]: unknown + } +} + +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 new file mode 100644 index 0000000000..315085f60f --- /dev/null +++ b/packages/contracts/generated/api/console/workflow/zod.gen.ts @@ -0,0 +1,21 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +export const zGetWorkflowByWorkflowRunIdEventsPath = z.object({ + workflow_run_id: z.string(), +}) + +/** + * Success + */ +export const zGetWorkflowByWorkflowRunIdEventsResponse = z.record(z.string(), z.unknown()) + +export const zGetWorkflowByWorkflowRunIdPauseDetailsPath = z.object({ + workflow_run_id: z.string(), +}) + +/** + * Success + */ +export const zGetWorkflowByWorkflowRunIdPauseDetailsResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/api/console/workspaces/orpc.gen.ts b/packages/contracts/generated/api/console/workspaces/orpc.gen.ts new file mode 100644 index 0000000000..4d16e3120f --- /dev/null +++ b/packages/contracts/generated/api/console/workspaces/orpc.gen.ts @@ -0,0 +1,3012 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zDeleteWorkspacesCurrentEndpointsByIdPath, + zDeleteWorkspacesCurrentEndpointsByIdResponse, + zDeleteWorkspacesCurrentMembersByMemberIdPath, + zDeleteWorkspacesCurrentMembersByMemberIdResponse, + zDeleteWorkspacesCurrentModelProvidersByProviderCredentialsBody, + zDeleteWorkspacesCurrentModelProvidersByProviderCredentialsPath, + zDeleteWorkspacesCurrentModelProvidersByProviderCredentialsResponse, + zDeleteWorkspacesCurrentModelProvidersByProviderModelsBody, + zDeleteWorkspacesCurrentModelProvidersByProviderModelsCredentialsBody, + zDeleteWorkspacesCurrentModelProvidersByProviderModelsCredentialsPath, + zDeleteWorkspacesCurrentModelProvidersByProviderModelsCredentialsResponse, + zDeleteWorkspacesCurrentModelProvidersByProviderModelsPath, + zDeleteWorkspacesCurrentModelProvidersByProviderModelsResponse, + zDeleteWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientPath, + zDeleteWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientResponse, + zDeleteWorkspacesCurrentToolProviderMcpBody, + zDeleteWorkspacesCurrentToolProviderMcpResponse, + zDeleteWorkspacesCurrentTriggerProviderByProviderOauthClientPath, + zDeleteWorkspacesCurrentTriggerProviderByProviderOauthClientResponse, + zGetWorkspacesByTenantIdModelProvidersByProviderByIconTypeByLangPath, + zGetWorkspacesByTenantIdModelProvidersByProviderByIconTypeByLangResponse, + zGetWorkspacesCurrentAgentProviderByProviderNamePath, + zGetWorkspacesCurrentAgentProviderByProviderNameResponse, + zGetWorkspacesCurrentAgentProvidersResponse, + zGetWorkspacesCurrentDatasetOperatorsResponse, + zGetWorkspacesCurrentDefaultModelQuery, + zGetWorkspacesCurrentDefaultModelResponse, + zGetWorkspacesCurrentEndpointsListPluginQuery, + zGetWorkspacesCurrentEndpointsListPluginResponse, + zGetWorkspacesCurrentEndpointsListQuery, + zGetWorkspacesCurrentEndpointsListResponse, + zGetWorkspacesCurrentMembersResponse, + zGetWorkspacesCurrentModelProvidersByProviderCheckoutUrlPath, + zGetWorkspacesCurrentModelProvidersByProviderCheckoutUrlResponse, + zGetWorkspacesCurrentModelProvidersByProviderCredentialsPath, + zGetWorkspacesCurrentModelProvidersByProviderCredentialsQuery, + zGetWorkspacesCurrentModelProvidersByProviderCredentialsResponse, + zGetWorkspacesCurrentModelProvidersByProviderModelsCredentialsPath, + zGetWorkspacesCurrentModelProvidersByProviderModelsCredentialsQuery, + zGetWorkspacesCurrentModelProvidersByProviderModelsCredentialsResponse, + zGetWorkspacesCurrentModelProvidersByProviderModelsParameterRulesPath, + zGetWorkspacesCurrentModelProvidersByProviderModelsParameterRulesQuery, + zGetWorkspacesCurrentModelProvidersByProviderModelsParameterRulesResponse, + zGetWorkspacesCurrentModelProvidersByProviderModelsPath, + zGetWorkspacesCurrentModelProvidersByProviderModelsResponse, + zGetWorkspacesCurrentModelProvidersQuery, + zGetWorkspacesCurrentModelProvidersResponse, + zGetWorkspacesCurrentModelsModelTypesByModelTypePath, + zGetWorkspacesCurrentModelsModelTypesByModelTypeResponse, + zGetWorkspacesCurrentPermissionResponse, + zGetWorkspacesCurrentPluginAssetQuery, + zGetWorkspacesCurrentPluginAssetResponse, + zGetWorkspacesCurrentPluginDebuggingKeyResponse, + zGetWorkspacesCurrentPluginFetchManifestQuery, + zGetWorkspacesCurrentPluginFetchManifestResponse, + zGetWorkspacesCurrentPluginIconQuery, + zGetWorkspacesCurrentPluginIconResponse, + zGetWorkspacesCurrentPluginListQuery, + zGetWorkspacesCurrentPluginListResponse, + zGetWorkspacesCurrentPluginMarketplacePkgQuery, + zGetWorkspacesCurrentPluginMarketplacePkgResponse, + zGetWorkspacesCurrentPluginParametersDynamicOptionsQuery, + zGetWorkspacesCurrentPluginParametersDynamicOptionsResponse, + zGetWorkspacesCurrentPluginPermissionFetchResponse, + zGetWorkspacesCurrentPluginPreferencesFetchResponse, + zGetWorkspacesCurrentPluginReadmeQuery, + zGetWorkspacesCurrentPluginReadmeResponse, + zGetWorkspacesCurrentPluginTasksByTaskIdPath, + zGetWorkspacesCurrentPluginTasksByTaskIdResponse, + zGetWorkspacesCurrentPluginTasksQuery, + zGetWorkspacesCurrentPluginTasksResponse, + zGetWorkspacesCurrentToolLabelsResponse, + zGetWorkspacesCurrentToolProviderApiGetResponse, + zGetWorkspacesCurrentToolProviderApiRemoteResponse, + zGetWorkspacesCurrentToolProviderApiToolsResponse, + zGetWorkspacesCurrentToolProviderBuiltinByProviderCredentialInfoPath, + zGetWorkspacesCurrentToolProviderBuiltinByProviderCredentialInfoResponse, + zGetWorkspacesCurrentToolProviderBuiltinByProviderCredentialSchemaByCredentialTypePath, + zGetWorkspacesCurrentToolProviderBuiltinByProviderCredentialSchemaByCredentialTypeResponse, + zGetWorkspacesCurrentToolProviderBuiltinByProviderCredentialsPath, + zGetWorkspacesCurrentToolProviderBuiltinByProviderCredentialsResponse, + zGetWorkspacesCurrentToolProviderBuiltinByProviderIconPath, + zGetWorkspacesCurrentToolProviderBuiltinByProviderIconResponse, + zGetWorkspacesCurrentToolProviderBuiltinByProviderInfoPath, + zGetWorkspacesCurrentToolProviderBuiltinByProviderInfoResponse, + zGetWorkspacesCurrentToolProviderBuiltinByProviderOauthClientSchemaPath, + zGetWorkspacesCurrentToolProviderBuiltinByProviderOauthClientSchemaResponse, + zGetWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientPath, + zGetWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientResponse, + zGetWorkspacesCurrentToolProviderBuiltinByProviderToolsPath, + zGetWorkspacesCurrentToolProviderBuiltinByProviderToolsResponse, + zGetWorkspacesCurrentToolProviderMcpToolsByProviderIdPath, + zGetWorkspacesCurrentToolProviderMcpToolsByProviderIdResponse, + zGetWorkspacesCurrentToolProviderMcpUpdateByProviderIdPath, + zGetWorkspacesCurrentToolProviderMcpUpdateByProviderIdResponse, + zGetWorkspacesCurrentToolProvidersResponse, + zGetWorkspacesCurrentToolProviderWorkflowGetResponse, + zGetWorkspacesCurrentToolProviderWorkflowToolsResponse, + zGetWorkspacesCurrentToolsApiResponse, + zGetWorkspacesCurrentToolsBuiltinResponse, + zGetWorkspacesCurrentToolsMcpResponse, + zGetWorkspacesCurrentToolsWorkflowResponse, + zGetWorkspacesCurrentTriggerProviderByProviderIconPath, + zGetWorkspacesCurrentTriggerProviderByProviderIconResponse, + zGetWorkspacesCurrentTriggerProviderByProviderInfoPath, + zGetWorkspacesCurrentTriggerProviderByProviderInfoResponse, + zGetWorkspacesCurrentTriggerProviderByProviderOauthClientPath, + zGetWorkspacesCurrentTriggerProviderByProviderOauthClientResponse, + zGetWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderBySubscriptionBuilderIdPath, + zGetWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderBySubscriptionBuilderIdResponse, + zGetWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderLogsBySubscriptionBuilderIdPath, + zGetWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderLogsBySubscriptionBuilderIdResponse, + zGetWorkspacesCurrentTriggerProviderByProviderSubscriptionsListPath, + zGetWorkspacesCurrentTriggerProviderByProviderSubscriptionsListResponse, + zGetWorkspacesCurrentTriggerProviderByProviderSubscriptionsOauthAuthorizePath, + zGetWorkspacesCurrentTriggerProviderByProviderSubscriptionsOauthAuthorizeResponse, + zGetWorkspacesCurrentTriggersResponse, + zGetWorkspacesResponse, + zPatchWorkspacesCurrentEndpointsByIdBody, + zPatchWorkspacesCurrentEndpointsByIdPath, + zPatchWorkspacesCurrentEndpointsByIdResponse, + zPatchWorkspacesCurrentModelProvidersByProviderModelsDisableBody, + zPatchWorkspacesCurrentModelProvidersByProviderModelsDisablePath, + zPatchWorkspacesCurrentModelProvidersByProviderModelsDisableResponse, + zPatchWorkspacesCurrentModelProvidersByProviderModelsEnableBody, + zPatchWorkspacesCurrentModelProvidersByProviderModelsEnablePath, + zPatchWorkspacesCurrentModelProvidersByProviderModelsEnableResponse, + zPostWorkspacesCurrentDefaultModelBody, + zPostWorkspacesCurrentDefaultModelResponse, + zPostWorkspacesCurrentEndpointsBody, + zPostWorkspacesCurrentEndpointsCreateBody, + zPostWorkspacesCurrentEndpointsCreateResponse, + zPostWorkspacesCurrentEndpointsDeleteBody, + zPostWorkspacesCurrentEndpointsDeleteResponse, + zPostWorkspacesCurrentEndpointsDisableBody, + zPostWorkspacesCurrentEndpointsDisableResponse, + zPostWorkspacesCurrentEndpointsEnableBody, + zPostWorkspacesCurrentEndpointsEnableResponse, + zPostWorkspacesCurrentEndpointsResponse, + zPostWorkspacesCurrentEndpointsUpdateBody, + zPostWorkspacesCurrentEndpointsUpdateResponse, + zPostWorkspacesCurrentMembersByMemberIdOwnerTransferBody, + zPostWorkspacesCurrentMembersByMemberIdOwnerTransferPath, + zPostWorkspacesCurrentMembersByMemberIdOwnerTransferResponse, + zPostWorkspacesCurrentMembersInviteEmailBody, + zPostWorkspacesCurrentMembersInviteEmailResponse, + zPostWorkspacesCurrentMembersOwnerTransferCheckBody, + zPostWorkspacesCurrentMembersOwnerTransferCheckResponse, + zPostWorkspacesCurrentMembersSendOwnerTransferConfirmEmailBody, + zPostWorkspacesCurrentMembersSendOwnerTransferConfirmEmailResponse, + zPostWorkspacesCurrentModelProvidersByProviderCredentialsBody, + zPostWorkspacesCurrentModelProvidersByProviderCredentialsPath, + zPostWorkspacesCurrentModelProvidersByProviderCredentialsResponse, + zPostWorkspacesCurrentModelProvidersByProviderCredentialsSwitchBody, + zPostWorkspacesCurrentModelProvidersByProviderCredentialsSwitchPath, + zPostWorkspacesCurrentModelProvidersByProviderCredentialsSwitchResponse, + zPostWorkspacesCurrentModelProvidersByProviderCredentialsValidateBody, + zPostWorkspacesCurrentModelProvidersByProviderCredentialsValidatePath, + zPostWorkspacesCurrentModelProvidersByProviderCredentialsValidateResponse, + zPostWorkspacesCurrentModelProvidersByProviderModelsBody, + zPostWorkspacesCurrentModelProvidersByProviderModelsCredentialsBody, + zPostWorkspacesCurrentModelProvidersByProviderModelsCredentialsPath, + zPostWorkspacesCurrentModelProvidersByProviderModelsCredentialsResponse, + zPostWorkspacesCurrentModelProvidersByProviderModelsCredentialsSwitchBody, + zPostWorkspacesCurrentModelProvidersByProviderModelsCredentialsSwitchPath, + zPostWorkspacesCurrentModelProvidersByProviderModelsCredentialsSwitchResponse, + zPostWorkspacesCurrentModelProvidersByProviderModelsCredentialsValidateBody, + zPostWorkspacesCurrentModelProvidersByProviderModelsCredentialsValidatePath, + zPostWorkspacesCurrentModelProvidersByProviderModelsCredentialsValidateResponse, + zPostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsByConfigIdCredentialsValidateBody, + zPostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsByConfigIdCredentialsValidatePath, + zPostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsByConfigIdCredentialsValidateResponse, + zPostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsCredentialsValidateBody, + zPostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsCredentialsValidatePath, + zPostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsCredentialsValidateResponse, + zPostWorkspacesCurrentModelProvidersByProviderModelsPath, + zPostWorkspacesCurrentModelProvidersByProviderModelsResponse, + zPostWorkspacesCurrentModelProvidersByProviderPreferredProviderTypeBody, + zPostWorkspacesCurrentModelProvidersByProviderPreferredProviderTypePath, + zPostWorkspacesCurrentModelProvidersByProviderPreferredProviderTypeResponse, + zPostWorkspacesCurrentPluginInstallGithubBody, + zPostWorkspacesCurrentPluginInstallGithubResponse, + zPostWorkspacesCurrentPluginInstallMarketplaceBody, + zPostWorkspacesCurrentPluginInstallMarketplaceResponse, + zPostWorkspacesCurrentPluginInstallPkgBody, + zPostWorkspacesCurrentPluginInstallPkgResponse, + zPostWorkspacesCurrentPluginListInstallationsIdsBody, + zPostWorkspacesCurrentPluginListInstallationsIdsResponse, + zPostWorkspacesCurrentPluginListLatestVersionsBody, + zPostWorkspacesCurrentPluginListLatestVersionsResponse, + zPostWorkspacesCurrentPluginParametersDynamicOptionsWithCredentialsBody, + zPostWorkspacesCurrentPluginParametersDynamicOptionsWithCredentialsResponse, + zPostWorkspacesCurrentPluginPermissionChangeBody, + zPostWorkspacesCurrentPluginPermissionChangeResponse, + zPostWorkspacesCurrentPluginPreferencesAutoupgradeExcludeBody, + zPostWorkspacesCurrentPluginPreferencesAutoupgradeExcludeResponse, + zPostWorkspacesCurrentPluginPreferencesChangeBody, + zPostWorkspacesCurrentPluginPreferencesChangeResponse, + zPostWorkspacesCurrentPluginTasksByTaskIdDeleteByIdentifierPath, + zPostWorkspacesCurrentPluginTasksByTaskIdDeleteByIdentifierResponse, + zPostWorkspacesCurrentPluginTasksByTaskIdDeletePath, + zPostWorkspacesCurrentPluginTasksByTaskIdDeleteResponse, + zPostWorkspacesCurrentPluginTasksDeleteAllResponse, + zPostWorkspacesCurrentPluginUninstallBody, + zPostWorkspacesCurrentPluginUninstallResponse, + zPostWorkspacesCurrentPluginUpgradeGithubBody, + zPostWorkspacesCurrentPluginUpgradeGithubResponse, + zPostWorkspacesCurrentPluginUpgradeMarketplaceBody, + zPostWorkspacesCurrentPluginUpgradeMarketplaceResponse, + zPostWorkspacesCurrentPluginUploadBundleResponse, + zPostWorkspacesCurrentPluginUploadGithubBody, + zPostWorkspacesCurrentPluginUploadGithubResponse, + zPostWorkspacesCurrentPluginUploadPkgResponse, + zPostWorkspacesCurrentResponse, + zPostWorkspacesCurrentToolProviderApiAddBody, + zPostWorkspacesCurrentToolProviderApiAddResponse, + zPostWorkspacesCurrentToolProviderApiDeleteBody, + zPostWorkspacesCurrentToolProviderApiDeleteResponse, + zPostWorkspacesCurrentToolProviderApiSchemaBody, + zPostWorkspacesCurrentToolProviderApiSchemaResponse, + zPostWorkspacesCurrentToolProviderApiTestPreBody, + zPostWorkspacesCurrentToolProviderApiTestPreResponse, + zPostWorkspacesCurrentToolProviderApiUpdateBody, + zPostWorkspacesCurrentToolProviderApiUpdateResponse, + zPostWorkspacesCurrentToolProviderBuiltinByProviderAddBody, + zPostWorkspacesCurrentToolProviderBuiltinByProviderAddPath, + zPostWorkspacesCurrentToolProviderBuiltinByProviderAddResponse, + zPostWorkspacesCurrentToolProviderBuiltinByProviderDefaultCredentialBody, + zPostWorkspacesCurrentToolProviderBuiltinByProviderDefaultCredentialPath, + zPostWorkspacesCurrentToolProviderBuiltinByProviderDefaultCredentialResponse, + zPostWorkspacesCurrentToolProviderBuiltinByProviderDeleteBody, + zPostWorkspacesCurrentToolProviderBuiltinByProviderDeletePath, + zPostWorkspacesCurrentToolProviderBuiltinByProviderDeleteResponse, + zPostWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientBody, + zPostWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientPath, + zPostWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientResponse, + zPostWorkspacesCurrentToolProviderBuiltinByProviderUpdateBody, + zPostWorkspacesCurrentToolProviderBuiltinByProviderUpdatePath, + zPostWorkspacesCurrentToolProviderBuiltinByProviderUpdateResponse, + zPostWorkspacesCurrentToolProviderMcpAuthBody, + zPostWorkspacesCurrentToolProviderMcpAuthResponse, + zPostWorkspacesCurrentToolProviderMcpBody, + zPostWorkspacesCurrentToolProviderMcpResponse, + zPostWorkspacesCurrentToolProviderWorkflowCreateBody, + zPostWorkspacesCurrentToolProviderWorkflowCreateResponse, + zPostWorkspacesCurrentToolProviderWorkflowDeleteBody, + zPostWorkspacesCurrentToolProviderWorkflowDeleteResponse, + zPostWorkspacesCurrentToolProviderWorkflowUpdateBody, + zPostWorkspacesCurrentToolProviderWorkflowUpdateResponse, + zPostWorkspacesCurrentTriggerProviderByProviderOauthClientBody, + zPostWorkspacesCurrentTriggerProviderByProviderOauthClientPath, + zPostWorkspacesCurrentTriggerProviderByProviderOauthClientResponse, + zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderBuildBySubscriptionBuilderIdBody, + zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderBuildBySubscriptionBuilderIdPath, + zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderBuildBySubscriptionBuilderIdResponse, + zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderCreateBody, + zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderCreatePath, + zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderCreateResponse, + zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderUpdateBySubscriptionBuilderIdBody, + zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderUpdateBySubscriptionBuilderIdPath, + zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderUpdateBySubscriptionBuilderIdResponse, + zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderVerifyAndUpdateBySubscriptionBuilderIdBody, + zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderVerifyAndUpdateBySubscriptionBuilderIdPath, + zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderVerifyAndUpdateBySubscriptionBuilderIdResponse, + zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsVerifyBySubscriptionIdBody, + zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsVerifyBySubscriptionIdPath, + zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsVerifyBySubscriptionIdResponse, + zPostWorkspacesCurrentTriggerProviderBySubscriptionIdSubscriptionsDeletePath, + zPostWorkspacesCurrentTriggerProviderBySubscriptionIdSubscriptionsDeleteResponse, + zPostWorkspacesCurrentTriggerProviderBySubscriptionIdSubscriptionsUpdateBody, + zPostWorkspacesCurrentTriggerProviderBySubscriptionIdSubscriptionsUpdatePath, + zPostWorkspacesCurrentTriggerProviderBySubscriptionIdSubscriptionsUpdateResponse, + zPostWorkspacesCustomConfigBody, + zPostWorkspacesCustomConfigResponse, + zPostWorkspacesCustomConfigWebappLogoUploadResponse, + zPostWorkspacesInfoBody, + zPostWorkspacesInfoResponse, + zPostWorkspacesSwitchBody, + zPostWorkspacesSwitchResponse, + zPutWorkspacesCurrentMembersByMemberIdUpdateRoleBody, + zPutWorkspacesCurrentMembersByMemberIdUpdateRolePath, + zPutWorkspacesCurrentMembersByMemberIdUpdateRoleResponse, + zPutWorkspacesCurrentModelProvidersByProviderCredentialsBody, + zPutWorkspacesCurrentModelProvidersByProviderCredentialsPath, + zPutWorkspacesCurrentModelProvidersByProviderCredentialsResponse, + zPutWorkspacesCurrentModelProvidersByProviderModelsCredentialsBody, + zPutWorkspacesCurrentModelProvidersByProviderModelsCredentialsPath, + zPutWorkspacesCurrentModelProvidersByProviderModelsCredentialsResponse, + zPutWorkspacesCurrentToolProviderMcpBody, + zPutWorkspacesCurrentToolProviderMcpResponse, +} from './zod.gen' + +/** + * Get specific agent provider details + */ +export const get = oc + .route({ + description: 'Get specific agent provider details', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentAgentProviderByProviderName', + path: '/workspaces/current/agent-provider/{provider_name}', + tags: ['console'], + }) + .input(z.object({ params: zGetWorkspacesCurrentAgentProviderByProviderNamePath })) + .output(zGetWorkspacesCurrentAgentProviderByProviderNameResponse) + +export const byProviderName = { + get, +} + +export const agentProvider = { + byProviderName, +} + +/** + * Get list of available agent providers + */ +export const get2 = oc + .route({ + description: 'Get list of available agent providers', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentAgentProviders', + path: '/workspaces/current/agent-providers', + tags: ['console'], + }) + .output(zGetWorkspacesCurrentAgentProvidersResponse) + +export const agentProviders = { + get: get2, +} + +export const get3 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentDatasetOperators', + path: '/workspaces/current/dataset-operators', + tags: ['console'], + }) + .output(zGetWorkspacesCurrentDatasetOperatorsResponse) + +export const datasetOperators = { + get: get3, +} + +export const get4 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentDefaultModel', + path: '/workspaces/current/default-model', + tags: ['console'], + }) + .input(z.object({ query: zGetWorkspacesCurrentDefaultModelQuery })) + .output(zGetWorkspacesCurrentDefaultModelResponse) + +export const post = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentDefaultModel', + path: '/workspaces/current/default-model', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentDefaultModelBody })) + .output(zPostWorkspacesCurrentDefaultModelResponse) + +export const defaultModel = { + get: get4, + post, +} + +/** + * Deprecated legacy alias for creating a plugin endpoint. Use POST /workspaces/current/endpoints instead. + * + * @deprecated + */ +export const post2 = oc + .route({ + deprecated: true, + description: + 'Deprecated legacy alias for creating a plugin endpoint. Use POST /workspaces/current/endpoints instead.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentEndpointsCreate', + path: '/workspaces/current/endpoints/create', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentEndpointsCreateBody })) + .output(zPostWorkspacesCurrentEndpointsCreateResponse) + +export const create = { + post: post2, +} + +/** + * Deprecated legacy alias for deleting a plugin endpoint. Use DELETE /workspaces/current/endpoints/{id} instead. + * + * @deprecated + */ +export const post3 = oc + .route({ + deprecated: true, + description: + 'Deprecated legacy alias for deleting a plugin endpoint. Use DELETE /workspaces/current/endpoints/{id} instead.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentEndpointsDelete', + path: '/workspaces/current/endpoints/delete', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentEndpointsDeleteBody })) + .output(zPostWorkspacesCurrentEndpointsDeleteResponse) + +export const delete_ = { + post: post3, +} + +/** + * Disable a plugin endpoint + */ +export const post4 = oc + .route({ + description: 'Disable a plugin endpoint', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentEndpointsDisable', + path: '/workspaces/current/endpoints/disable', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentEndpointsDisableBody })) + .output(zPostWorkspacesCurrentEndpointsDisableResponse) + +export const disable = { + post: post4, +} + +/** + * Enable a plugin endpoint + */ +export const post5 = oc + .route({ + description: 'Enable a plugin endpoint', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentEndpointsEnable', + path: '/workspaces/current/endpoints/enable', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentEndpointsEnableBody })) + .output(zPostWorkspacesCurrentEndpointsEnableResponse) + +export const enable = { + post: post5, +} + +/** + * List endpoints for a specific plugin + */ +export const get5 = oc + .route({ + description: 'List endpoints for a specific plugin', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentEndpointsListPlugin', + path: '/workspaces/current/endpoints/list/plugin', + tags: ['console'], + }) + .input(z.object({ query: zGetWorkspacesCurrentEndpointsListPluginQuery })) + .output(zGetWorkspacesCurrentEndpointsListPluginResponse) + +export const plugin = { + get: get5, +} + +/** + * List plugin endpoints with pagination + */ +export const get6 = oc + .route({ + description: 'List plugin endpoints with pagination', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentEndpointsList', + path: '/workspaces/current/endpoints/list', + tags: ['console'], + }) + .input(z.object({ query: zGetWorkspacesCurrentEndpointsListQuery })) + .output(zGetWorkspacesCurrentEndpointsListResponse) + +export const list = { + get: get6, + plugin, +} + +/** + * Deprecated legacy alias for updating a plugin endpoint. Use PATCH /workspaces/current/endpoints/{id} instead. + * + * @deprecated + */ +export const post6 = oc + .route({ + deprecated: true, + description: + 'Deprecated legacy alias for updating a plugin endpoint. Use PATCH /workspaces/current/endpoints/{id} instead.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentEndpointsUpdate', + path: '/workspaces/current/endpoints/update', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentEndpointsUpdateBody })) + .output(zPostWorkspacesCurrentEndpointsUpdateResponse) + +export const update = { + post: post6, +} + +/** + * Delete a plugin endpoint + */ +export const delete2 = oc + .route({ + description: 'Delete a plugin endpoint', + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteWorkspacesCurrentEndpointsById', + path: '/workspaces/current/endpoints/{id}', + tags: ['console'], + }) + .input(z.object({ params: zDeleteWorkspacesCurrentEndpointsByIdPath })) + .output(zDeleteWorkspacesCurrentEndpointsByIdResponse) + +/** + * Update a plugin endpoint + */ +export const patch = oc + .route({ + description: 'Update a plugin endpoint', + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchWorkspacesCurrentEndpointsById', + path: '/workspaces/current/endpoints/{id}', + tags: ['console'], + }) + .input( + z.object({ + body: zPatchWorkspacesCurrentEndpointsByIdBody, + params: zPatchWorkspacesCurrentEndpointsByIdPath, + }), + ) + .output(zPatchWorkspacesCurrentEndpointsByIdResponse) + +export const byId = { + delete: delete2, + patch, +} + +/** + * Create a new plugin endpoint + */ +export const post7 = oc + .route({ + description: 'Create a new plugin endpoint', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentEndpoints', + path: '/workspaces/current/endpoints', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentEndpointsBody })) + .output(zPostWorkspacesCurrentEndpointsResponse) + +export const endpoints = { + post: post7, + create, + delete: delete_, + disable, + enable, + list, + update, + byId, +} + +export const post8 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentMembersInviteEmail', + path: '/workspaces/current/members/invite-email', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentMembersInviteEmailBody })) + .output(zPostWorkspacesCurrentMembersInviteEmailResponse) + +export const inviteEmail = { + post: post8, +} + +export const post9 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentMembersOwnerTransferCheck', + path: '/workspaces/current/members/owner-transfer-check', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentMembersOwnerTransferCheckBody })) + .output(zPostWorkspacesCurrentMembersOwnerTransferCheckResponse) + +export const ownerTransferCheck = { + post: post9, +} + +export const post10 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentMembersSendOwnerTransferConfirmEmail', + path: '/workspaces/current/members/send-owner-transfer-confirm-email', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentMembersSendOwnerTransferConfirmEmailBody })) + .output(zPostWorkspacesCurrentMembersSendOwnerTransferConfirmEmailResponse) + +export const sendOwnerTransferConfirmEmail = { + post: post10, +} + +export const post11 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentMembersByMemberIdOwnerTransfer', + path: '/workspaces/current/members/{member_id}/owner-transfer', + tags: ['console'], + }) + .input( + z.object({ + body: zPostWorkspacesCurrentMembersByMemberIdOwnerTransferBody, + params: zPostWorkspacesCurrentMembersByMemberIdOwnerTransferPath, + }), + ) + .output(zPostWorkspacesCurrentMembersByMemberIdOwnerTransferResponse) + +export const ownerTransfer = { + post: post11, +} + +export const put = oc + .route({ + inputStructure: 'detailed', + method: 'PUT', + operationId: 'putWorkspacesCurrentMembersByMemberIdUpdateRole', + path: '/workspaces/current/members/{member_id}/update-role', + tags: ['console'], + }) + .input( + z.object({ + body: zPutWorkspacesCurrentMembersByMemberIdUpdateRoleBody, + params: zPutWorkspacesCurrentMembersByMemberIdUpdateRolePath, + }), + ) + .output(zPutWorkspacesCurrentMembersByMemberIdUpdateRoleResponse) + +export const updateRole = { + put, +} + +export const delete3 = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteWorkspacesCurrentMembersByMemberId', + path: '/workspaces/current/members/{member_id}', + tags: ['console'], + }) + .input(z.object({ params: zDeleteWorkspacesCurrentMembersByMemberIdPath })) + .output(zDeleteWorkspacesCurrentMembersByMemberIdResponse) + +export const byMemberId = { + delete: delete3, + ownerTransfer, + updateRole, +} + +export const get7 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentMembers', + path: '/workspaces/current/members', + tags: ['console'], + }) + .output(zGetWorkspacesCurrentMembersResponse) + +export const members = { + get: get7, + inviteEmail, + ownerTransferCheck, + sendOwnerTransferConfirmEmail, + byMemberId, +} + +export const get8 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentModelProvidersByProviderCheckoutUrl', + path: '/workspaces/current/model-providers/{provider}/checkout-url', + tags: ['console'], + }) + .input(z.object({ params: zGetWorkspacesCurrentModelProvidersByProviderCheckoutUrlPath })) + .output(zGetWorkspacesCurrentModelProvidersByProviderCheckoutUrlResponse) + +export const checkoutUrl = { + get: get8, +} + +export const post12 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentModelProvidersByProviderCredentialsSwitch', + path: '/workspaces/current/model-providers/{provider}/credentials/switch', + tags: ['console'], + }) + .input( + z.object({ + body: zPostWorkspacesCurrentModelProvidersByProviderCredentialsSwitchBody, + params: zPostWorkspacesCurrentModelProvidersByProviderCredentialsSwitchPath, + }), + ) + .output(zPostWorkspacesCurrentModelProvidersByProviderCredentialsSwitchResponse) + +export const switch_ = { + post: post12, +} + +export const post13 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentModelProvidersByProviderCredentialsValidate', + path: '/workspaces/current/model-providers/{provider}/credentials/validate', + tags: ['console'], + }) + .input( + z.object({ + body: zPostWorkspacesCurrentModelProvidersByProviderCredentialsValidateBody, + params: zPostWorkspacesCurrentModelProvidersByProviderCredentialsValidatePath, + }), + ) + .output(zPostWorkspacesCurrentModelProvidersByProviderCredentialsValidateResponse) + +export const validate = { + post: post13, +} + +export const delete4 = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteWorkspacesCurrentModelProvidersByProviderCredentials', + path: '/workspaces/current/model-providers/{provider}/credentials', + tags: ['console'], + }) + .input( + z.object({ + body: zDeleteWorkspacesCurrentModelProvidersByProviderCredentialsBody, + params: zDeleteWorkspacesCurrentModelProvidersByProviderCredentialsPath, + }), + ) + .output(zDeleteWorkspacesCurrentModelProvidersByProviderCredentialsResponse) + +export const get9 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentModelProvidersByProviderCredentials', + path: '/workspaces/current/model-providers/{provider}/credentials', + tags: ['console'], + }) + .input( + z.object({ + params: zGetWorkspacesCurrentModelProvidersByProviderCredentialsPath, + query: zGetWorkspacesCurrentModelProvidersByProviderCredentialsQuery.optional(), + }), + ) + .output(zGetWorkspacesCurrentModelProvidersByProviderCredentialsResponse) + +export const post14 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentModelProvidersByProviderCredentials', + path: '/workspaces/current/model-providers/{provider}/credentials', + tags: ['console'], + }) + .input( + z.object({ + body: zPostWorkspacesCurrentModelProvidersByProviderCredentialsBody, + params: zPostWorkspacesCurrentModelProvidersByProviderCredentialsPath, + }), + ) + .output(zPostWorkspacesCurrentModelProvidersByProviderCredentialsResponse) + +export const put2 = oc + .route({ + inputStructure: 'detailed', + method: 'PUT', + operationId: 'putWorkspacesCurrentModelProvidersByProviderCredentials', + path: '/workspaces/current/model-providers/{provider}/credentials', + tags: ['console'], + }) + .input( + z.object({ + body: zPutWorkspacesCurrentModelProvidersByProviderCredentialsBody, + params: zPutWorkspacesCurrentModelProvidersByProviderCredentialsPath, + }), + ) + .output(zPutWorkspacesCurrentModelProvidersByProviderCredentialsResponse) + +export const credentials = { + delete: delete4, + get: get9, + post: post14, + put: put2, + switch: switch_, + validate, +} + +export const post15 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentModelProvidersByProviderModelsCredentialsSwitch', + path: '/workspaces/current/model-providers/{provider}/models/credentials/switch', + tags: ['console'], + }) + .input( + z.object({ + body: zPostWorkspacesCurrentModelProvidersByProviderModelsCredentialsSwitchBody, + params: zPostWorkspacesCurrentModelProvidersByProviderModelsCredentialsSwitchPath, + }), + ) + .output(zPostWorkspacesCurrentModelProvidersByProviderModelsCredentialsSwitchResponse) + +export const switch2 = { + post: post15, +} + +export const post16 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentModelProvidersByProviderModelsCredentialsValidate', + path: '/workspaces/current/model-providers/{provider}/models/credentials/validate', + tags: ['console'], + }) + .input( + z.object({ + body: zPostWorkspacesCurrentModelProvidersByProviderModelsCredentialsValidateBody, + params: zPostWorkspacesCurrentModelProvidersByProviderModelsCredentialsValidatePath, + }), + ) + .output(zPostWorkspacesCurrentModelProvidersByProviderModelsCredentialsValidateResponse) + +export const validate2 = { + post: post16, +} + +export const delete5 = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteWorkspacesCurrentModelProvidersByProviderModelsCredentials', + path: '/workspaces/current/model-providers/{provider}/models/credentials', + tags: ['console'], + }) + .input( + z.object({ + body: zDeleteWorkspacesCurrentModelProvidersByProviderModelsCredentialsBody, + params: zDeleteWorkspacesCurrentModelProvidersByProviderModelsCredentialsPath, + }), + ) + .output(zDeleteWorkspacesCurrentModelProvidersByProviderModelsCredentialsResponse) + +export const get10 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentModelProvidersByProviderModelsCredentials', + path: '/workspaces/current/model-providers/{provider}/models/credentials', + tags: ['console'], + }) + .input( + z.object({ + params: zGetWorkspacesCurrentModelProvidersByProviderModelsCredentialsPath, + query: zGetWorkspacesCurrentModelProvidersByProviderModelsCredentialsQuery, + }), + ) + .output(zGetWorkspacesCurrentModelProvidersByProviderModelsCredentialsResponse) + +export const post17 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentModelProvidersByProviderModelsCredentials', + path: '/workspaces/current/model-providers/{provider}/models/credentials', + tags: ['console'], + }) + .input( + z.object({ + body: zPostWorkspacesCurrentModelProvidersByProviderModelsCredentialsBody, + params: zPostWorkspacesCurrentModelProvidersByProviderModelsCredentialsPath, + }), + ) + .output(zPostWorkspacesCurrentModelProvidersByProviderModelsCredentialsResponse) + +export const put3 = oc + .route({ + inputStructure: 'detailed', + method: 'PUT', + operationId: 'putWorkspacesCurrentModelProvidersByProviderModelsCredentials', + path: '/workspaces/current/model-providers/{provider}/models/credentials', + tags: ['console'], + }) + .input( + z.object({ + body: zPutWorkspacesCurrentModelProvidersByProviderModelsCredentialsBody, + params: zPutWorkspacesCurrentModelProvidersByProviderModelsCredentialsPath, + }), + ) + .output(zPutWorkspacesCurrentModelProvidersByProviderModelsCredentialsResponse) + +export const credentials2 = { + delete: delete5, + get: get10, + post: post17, + put: put3, + switch: switch2, + validate: validate2, +} + +export const patch2 = oc + .route({ + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchWorkspacesCurrentModelProvidersByProviderModelsDisable', + path: '/workspaces/current/model-providers/{provider}/models/disable', + tags: ['console'], + }) + .input( + z.object({ + body: zPatchWorkspacesCurrentModelProvidersByProviderModelsDisableBody, + params: zPatchWorkspacesCurrentModelProvidersByProviderModelsDisablePath, + }), + ) + .output(zPatchWorkspacesCurrentModelProvidersByProviderModelsDisableResponse) + +export const disable2 = { + patch: patch2, +} + +export const patch3 = oc + .route({ + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchWorkspacesCurrentModelProvidersByProviderModelsEnable', + path: '/workspaces/current/model-providers/{provider}/models/enable', + tags: ['console'], + }) + .input( + z.object({ + body: zPatchWorkspacesCurrentModelProvidersByProviderModelsEnableBody, + params: zPatchWorkspacesCurrentModelProvidersByProviderModelsEnablePath, + }), + ) + .output(zPatchWorkspacesCurrentModelProvidersByProviderModelsEnableResponse) + +export const enable2 = { + patch: patch3, +} + +export const post18 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: + 'postWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsCredentialsValidate', + path: '/workspaces/current/model-providers/{provider}/models/load-balancing-configs/credentials-validate', + tags: ['console'], + }) + .input( + z.object({ + body: zPostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsCredentialsValidateBody, + params: + zPostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsCredentialsValidatePath, + }), + ) + .output( + zPostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsCredentialsValidateResponse, + ) + +export const credentialsValidate = { + post: post18, +} + +export const post19 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: + 'postWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsByConfigIdCredentialsValidate', + path: '/workspaces/current/model-providers/{provider}/models/load-balancing-configs/{config_id}/credentials-validate', + tags: ['console'], + }) + .input( + z.object({ + body: zPostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsByConfigIdCredentialsValidateBody, + params: + zPostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsByConfigIdCredentialsValidatePath, + }), + ) + .output( + zPostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsByConfigIdCredentialsValidateResponse, + ) + +export const credentialsValidate2 = { + post: post19, +} + +export const byConfigId = { + credentialsValidate: credentialsValidate2, +} + +export const loadBalancingConfigs = { + credentialsValidate, + byConfigId, +} + +export const get11 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentModelProvidersByProviderModelsParameterRules', + path: '/workspaces/current/model-providers/{provider}/models/parameter-rules', + tags: ['console'], + }) + .input( + z.object({ + params: zGetWorkspacesCurrentModelProvidersByProviderModelsParameterRulesPath, + query: zGetWorkspacesCurrentModelProvidersByProviderModelsParameterRulesQuery, + }), + ) + .output(zGetWorkspacesCurrentModelProvidersByProviderModelsParameterRulesResponse) + +export const parameterRules = { + get: get11, +} + +export const delete6 = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteWorkspacesCurrentModelProvidersByProviderModels', + path: '/workspaces/current/model-providers/{provider}/models', + tags: ['console'], + }) + .input( + z.object({ + body: zDeleteWorkspacesCurrentModelProvidersByProviderModelsBody, + params: zDeleteWorkspacesCurrentModelProvidersByProviderModelsPath, + }), + ) + .output(zDeleteWorkspacesCurrentModelProvidersByProviderModelsResponse) + +export const get12 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentModelProvidersByProviderModels', + path: '/workspaces/current/model-providers/{provider}/models', + tags: ['console'], + }) + .input(z.object({ params: zGetWorkspacesCurrentModelProvidersByProviderModelsPath })) + .output(zGetWorkspacesCurrentModelProvidersByProviderModelsResponse) + +export const post20 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentModelProvidersByProviderModels', + path: '/workspaces/current/model-providers/{provider}/models', + tags: ['console'], + }) + .input( + z.object({ + body: zPostWorkspacesCurrentModelProvidersByProviderModelsBody, + params: zPostWorkspacesCurrentModelProvidersByProviderModelsPath, + }), + ) + .output(zPostWorkspacesCurrentModelProvidersByProviderModelsResponse) + +export const models = { + delete: delete6, + get: get12, + post: post20, + credentials: credentials2, + disable: disable2, + enable: enable2, + loadBalancingConfigs, + parameterRules, +} + +export const post21 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentModelProvidersByProviderPreferredProviderType', + path: '/workspaces/current/model-providers/{provider}/preferred-provider-type', + tags: ['console'], + }) + .input( + z.object({ + body: zPostWorkspacesCurrentModelProvidersByProviderPreferredProviderTypeBody, + params: zPostWorkspacesCurrentModelProvidersByProviderPreferredProviderTypePath, + }), + ) + .output(zPostWorkspacesCurrentModelProvidersByProviderPreferredProviderTypeResponse) + +export const preferredProviderType = { + post: post21, +} + +export const byProvider = { + checkoutUrl, + credentials, + models, + preferredProviderType, +} + +export const get13 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentModelProviders', + path: '/workspaces/current/model-providers', + tags: ['console'], + }) + .input(z.object({ query: zGetWorkspacesCurrentModelProvidersQuery.optional() })) + .output(zGetWorkspacesCurrentModelProvidersResponse) + +export const modelProviders = { + get: get13, + byProvider, +} + +export const get14 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentModelsModelTypesByModelType', + path: '/workspaces/current/models/model-types/{model_type}', + tags: ['console'], + }) + .input(z.object({ params: zGetWorkspacesCurrentModelsModelTypesByModelTypePath })) + .output(zGetWorkspacesCurrentModelsModelTypesByModelTypeResponse) + +export const byModelType = { + get: get14, +} + +export const modelTypes = { + byModelType, +} + +export const models2 = { + modelTypes, +} + +/** + * Get workspace permission settings + * + * Returns permission flags that control workspace features like member invitations and owner transfer. + */ +export const get15 = oc + .route({ + description: + 'Returns permission flags that control workspace features like member invitations and owner transfer.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentPermission', + path: '/workspaces/current/permission', + summary: 'Get workspace permission settings', + tags: ['console'], + }) + .output(zGetWorkspacesCurrentPermissionResponse) + +export const permission = { + get: get15, +} + +export const get16 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentPluginAsset', + path: '/workspaces/current/plugin/asset', + tags: ['console'], + }) + .input(z.object({ query: zGetWorkspacesCurrentPluginAssetQuery })) + .output(zGetWorkspacesCurrentPluginAssetResponse) + +export const asset = { + get: get16, +} + +export const get17 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentPluginDebuggingKey', + path: '/workspaces/current/plugin/debugging-key', + tags: ['console'], + }) + .output(zGetWorkspacesCurrentPluginDebuggingKeyResponse) + +export const debuggingKey = { + get: get17, +} + +export const get18 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentPluginFetchManifest', + path: '/workspaces/current/plugin/fetch-manifest', + tags: ['console'], + }) + .input(z.object({ query: zGetWorkspacesCurrentPluginFetchManifestQuery })) + .output(zGetWorkspacesCurrentPluginFetchManifestResponse) + +export const fetchManifest = { + get: get18, +} + +export const get19 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentPluginIcon', + path: '/workspaces/current/plugin/icon', + tags: ['console'], + }) + .input(z.object({ query: zGetWorkspacesCurrentPluginIconQuery })) + .output(zGetWorkspacesCurrentPluginIconResponse) + +export const icon = { + get: get19, +} + +export const post22 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentPluginInstallGithub', + path: '/workspaces/current/plugin/install/github', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentPluginInstallGithubBody })) + .output(zPostWorkspacesCurrentPluginInstallGithubResponse) + +export const github = { + post: post22, +} + +export const post23 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentPluginInstallMarketplace', + path: '/workspaces/current/plugin/install/marketplace', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentPluginInstallMarketplaceBody })) + .output(zPostWorkspacesCurrentPluginInstallMarketplaceResponse) + +export const marketplace = { + post: post23, +} + +export const post24 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentPluginInstallPkg', + path: '/workspaces/current/plugin/install/pkg', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentPluginInstallPkgBody })) + .output(zPostWorkspacesCurrentPluginInstallPkgResponse) + +export const pkg = { + post: post24, +} + +export const install = { + github, + marketplace, + pkg, +} + +export const post25 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentPluginListInstallationsIds', + path: '/workspaces/current/plugin/list/installations/ids', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentPluginListInstallationsIdsBody })) + .output(zPostWorkspacesCurrentPluginListInstallationsIdsResponse) + +export const ids = { + post: post25, +} + +export const installations = { + ids, +} + +export const post26 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentPluginListLatestVersions', + path: '/workspaces/current/plugin/list/latest-versions', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentPluginListLatestVersionsBody })) + .output(zPostWorkspacesCurrentPluginListLatestVersionsResponse) + +export const latestVersions = { + post: post26, +} + +export const get20 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentPluginList', + path: '/workspaces/current/plugin/list', + tags: ['console'], + }) + .input(z.object({ query: zGetWorkspacesCurrentPluginListQuery.optional() })) + .output(zGetWorkspacesCurrentPluginListResponse) + +export const list2 = { + get: get20, + installations, + latestVersions, +} + +export const get21 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentPluginMarketplacePkg', + path: '/workspaces/current/plugin/marketplace/pkg', + tags: ['console'], + }) + .input(z.object({ query: zGetWorkspacesCurrentPluginMarketplacePkgQuery })) + .output(zGetWorkspacesCurrentPluginMarketplacePkgResponse) + +export const pkg2 = { + get: get21, +} + +export const marketplace2 = { + pkg: pkg2, +} + +export const get22 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentPluginParametersDynamicOptions', + path: '/workspaces/current/plugin/parameters/dynamic-options', + tags: ['console'], + }) + .input(z.object({ query: zGetWorkspacesCurrentPluginParametersDynamicOptionsQuery })) + .output(zGetWorkspacesCurrentPluginParametersDynamicOptionsResponse) + +export const dynamicOptions = { + get: get22, +} + +/** + * Fetch dynamic options using credentials directly (for edit mode) + */ +export const post27 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentPluginParametersDynamicOptionsWithCredentials', + path: '/workspaces/current/plugin/parameters/dynamic-options-with-credentials', + summary: 'Fetch dynamic options using credentials directly (for edit mode)', + tags: ['console'], + }) + .input( + z.object({ body: zPostWorkspacesCurrentPluginParametersDynamicOptionsWithCredentialsBody }), + ) + .output(zPostWorkspacesCurrentPluginParametersDynamicOptionsWithCredentialsResponse) + +export const dynamicOptionsWithCredentials = { + post: post27, +} + +export const parameters = { + dynamicOptions, + dynamicOptionsWithCredentials, +} + +export const post28 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentPluginPermissionChange', + path: '/workspaces/current/plugin/permission/change', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentPluginPermissionChangeBody })) + .output(zPostWorkspacesCurrentPluginPermissionChangeResponse) + +export const change = { + post: post28, +} + +export const get23 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentPluginPermissionFetch', + path: '/workspaces/current/plugin/permission/fetch', + tags: ['console'], + }) + .output(zGetWorkspacesCurrentPluginPermissionFetchResponse) + +export const fetch_ = { + get: get23, +} + +export const permission2 = { + change, + fetch: fetch_, +} + +export const post29 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentPluginPreferencesAutoupgradeExclude', + path: '/workspaces/current/plugin/preferences/autoupgrade/exclude', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentPluginPreferencesAutoupgradeExcludeBody })) + .output(zPostWorkspacesCurrentPluginPreferencesAutoupgradeExcludeResponse) + +export const exclude = { + post: post29, +} + +export const autoupgrade = { + exclude, +} + +export const post30 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentPluginPreferencesChange', + path: '/workspaces/current/plugin/preferences/change', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentPluginPreferencesChangeBody })) + .output(zPostWorkspacesCurrentPluginPreferencesChangeResponse) + +export const change2 = { + post: post30, +} + +export const get24 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentPluginPreferencesFetch', + path: '/workspaces/current/plugin/preferences/fetch', + tags: ['console'], + }) + .output(zGetWorkspacesCurrentPluginPreferencesFetchResponse) + +export const fetch2 = { + get: get24, +} + +export const preferences = { + autoupgrade, + change: change2, + fetch: fetch2, +} + +export const get25 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentPluginReadme', + path: '/workspaces/current/plugin/readme', + tags: ['console'], + }) + .input(z.object({ query: zGetWorkspacesCurrentPluginReadmeQuery })) + .output(zGetWorkspacesCurrentPluginReadmeResponse) + +export const readme = { + get: get25, +} + +export const post31 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentPluginTasksDeleteAll', + path: '/workspaces/current/plugin/tasks/delete_all', + tags: ['console'], + }) + .output(zPostWorkspacesCurrentPluginTasksDeleteAllResponse) + +export const deleteAll = { + post: post31, +} + +export const post32 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentPluginTasksByTaskIdDeleteByIdentifier', + path: '/workspaces/current/plugin/tasks/{task_id}/delete/{identifier}', + tags: ['console'], + }) + .input(z.object({ params: zPostWorkspacesCurrentPluginTasksByTaskIdDeleteByIdentifierPath })) + .output(zPostWorkspacesCurrentPluginTasksByTaskIdDeleteByIdentifierResponse) + +export const byIdentifier = { + post: post32, +} + +export const post33 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentPluginTasksByTaskIdDelete', + path: '/workspaces/current/plugin/tasks/{task_id}/delete', + tags: ['console'], + }) + .input(z.object({ params: zPostWorkspacesCurrentPluginTasksByTaskIdDeletePath })) + .output(zPostWorkspacesCurrentPluginTasksByTaskIdDeleteResponse) + +export const delete7 = { + post: post33, + byIdentifier, +} + +export const get26 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentPluginTasksByTaskId', + path: '/workspaces/current/plugin/tasks/{task_id}', + tags: ['console'], + }) + .input(z.object({ params: zGetWorkspacesCurrentPluginTasksByTaskIdPath })) + .output(zGetWorkspacesCurrentPluginTasksByTaskIdResponse) + +export const byTaskId = { + get: get26, + delete: delete7, +} + +export const get27 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentPluginTasks', + path: '/workspaces/current/plugin/tasks', + tags: ['console'], + }) + .input(z.object({ query: zGetWorkspacesCurrentPluginTasksQuery.optional() })) + .output(zGetWorkspacesCurrentPluginTasksResponse) + +export const tasks = { + get: get27, + deleteAll, + byTaskId, +} + +export const post34 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentPluginUninstall', + path: '/workspaces/current/plugin/uninstall', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentPluginUninstallBody })) + .output(zPostWorkspacesCurrentPluginUninstallResponse) + +export const uninstall = { + post: post34, +} + +export const post35 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentPluginUpgradeGithub', + path: '/workspaces/current/plugin/upgrade/github', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentPluginUpgradeGithubBody })) + .output(zPostWorkspacesCurrentPluginUpgradeGithubResponse) + +export const github2 = { + post: post35, +} + +export const post36 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentPluginUpgradeMarketplace', + path: '/workspaces/current/plugin/upgrade/marketplace', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentPluginUpgradeMarketplaceBody })) + .output(zPostWorkspacesCurrentPluginUpgradeMarketplaceResponse) + +export const marketplace3 = { + post: post36, +} + +export const upgrade = { + github: github2, + marketplace: marketplace3, +} + +export const post37 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentPluginUploadBundle', + path: '/workspaces/current/plugin/upload/bundle', + tags: ['console'], + }) + .output(zPostWorkspacesCurrentPluginUploadBundleResponse) + +export const bundle = { + post: post37, +} + +export const post38 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentPluginUploadGithub', + path: '/workspaces/current/plugin/upload/github', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentPluginUploadGithubBody })) + .output(zPostWorkspacesCurrentPluginUploadGithubResponse) + +export const github3 = { + post: post38, +} + +export const post39 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentPluginUploadPkg', + path: '/workspaces/current/plugin/upload/pkg', + tags: ['console'], + }) + .output(zPostWorkspacesCurrentPluginUploadPkgResponse) + +export const pkg3 = { + post: post39, +} + +export const upload = { + bundle, + github: github3, + pkg: pkg3, +} + +export const plugin2 = { + asset, + debuggingKey, + fetchManifest, + icon, + install, + list: list2, + marketplace: marketplace2, + parameters, + permission: permission2, + preferences, + readme, + tasks, + uninstall, + upgrade, + upload, +} + +export const get28 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentToolLabels', + path: '/workspaces/current/tool-labels', + tags: ['console'], + }) + .output(zGetWorkspacesCurrentToolLabelsResponse) + +export const toolLabels = { + get: get28, +} + +export const post40 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentToolProviderApiAdd', + path: '/workspaces/current/tool-provider/api/add', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentToolProviderApiAddBody })) + .output(zPostWorkspacesCurrentToolProviderApiAddResponse) + +export const add = { + post: post40, +} + +export const post41 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentToolProviderApiDelete', + path: '/workspaces/current/tool-provider/api/delete', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentToolProviderApiDeleteBody })) + .output(zPostWorkspacesCurrentToolProviderApiDeleteResponse) + +export const delete8 = { + post: post41, +} + +export const get29 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentToolProviderApiGet', + path: '/workspaces/current/tool-provider/api/get', + tags: ['console'], + }) + .output(zGetWorkspacesCurrentToolProviderApiGetResponse) + +export const get30 = { + get: get29, +} + +export const get31 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentToolProviderApiRemote', + path: '/workspaces/current/tool-provider/api/remote', + tags: ['console'], + }) + .output(zGetWorkspacesCurrentToolProviderApiRemoteResponse) + +export const remote = { + get: get31, +} + +export const post42 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentToolProviderApiSchema', + path: '/workspaces/current/tool-provider/api/schema', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentToolProviderApiSchemaBody })) + .output(zPostWorkspacesCurrentToolProviderApiSchemaResponse) + +export const schema = { + post: post42, +} + +export const post43 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentToolProviderApiTestPre', + path: '/workspaces/current/tool-provider/api/test/pre', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentToolProviderApiTestPreBody })) + .output(zPostWorkspacesCurrentToolProviderApiTestPreResponse) + +export const pre = { + post: post43, +} + +export const test = { + pre, +} + +export const get32 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentToolProviderApiTools', + path: '/workspaces/current/tool-provider/api/tools', + tags: ['console'], + }) + .output(zGetWorkspacesCurrentToolProviderApiToolsResponse) + +export const tools = { + get: get32, +} + +export const post44 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentToolProviderApiUpdate', + path: '/workspaces/current/tool-provider/api/update', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentToolProviderApiUpdateBody })) + .output(zPostWorkspacesCurrentToolProviderApiUpdateResponse) + +export const update2 = { + post: post44, +} + +export const api = { + add, + delete: delete8, + get: get30, + remote, + schema, + test, + tools, + update: update2, +} + +export const post45 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentToolProviderBuiltinByProviderAdd', + path: '/workspaces/current/tool-provider/builtin/{provider}/add', + tags: ['console'], + }) + .input( + z.object({ + body: zPostWorkspacesCurrentToolProviderBuiltinByProviderAddBody, + params: zPostWorkspacesCurrentToolProviderBuiltinByProviderAddPath, + }), + ) + .output(zPostWorkspacesCurrentToolProviderBuiltinByProviderAddResponse) + +export const add2 = { + post: post45, +} + +export const get33 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentToolProviderBuiltinByProviderCredentialInfo', + path: '/workspaces/current/tool-provider/builtin/{provider}/credential/info', + tags: ['console'], + }) + .input(z.object({ params: zGetWorkspacesCurrentToolProviderBuiltinByProviderCredentialInfoPath })) + .output(zGetWorkspacesCurrentToolProviderBuiltinByProviderCredentialInfoResponse) + +export const info = { + get: get33, +} + +export const get34 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: + 'getWorkspacesCurrentToolProviderBuiltinByProviderCredentialSchemaByCredentialType', + path: '/workspaces/current/tool-provider/builtin/{provider}/credential/schema/{credential_type}', + tags: ['console'], + }) + .input( + z.object({ + params: + zGetWorkspacesCurrentToolProviderBuiltinByProviderCredentialSchemaByCredentialTypePath, + }), + ) + .output( + zGetWorkspacesCurrentToolProviderBuiltinByProviderCredentialSchemaByCredentialTypeResponse, + ) + +export const byCredentialType = { + get: get34, +} + +export const schema2 = { + byCredentialType, +} + +export const credential = { + info, + schema: schema2, +} + +export const get35 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentToolProviderBuiltinByProviderCredentials', + path: '/workspaces/current/tool-provider/builtin/{provider}/credentials', + tags: ['console'], + }) + .input(z.object({ params: zGetWorkspacesCurrentToolProviderBuiltinByProviderCredentialsPath })) + .output(zGetWorkspacesCurrentToolProviderBuiltinByProviderCredentialsResponse) + +export const credentials3 = { + get: get35, +} + +export const post46 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentToolProviderBuiltinByProviderDefaultCredential', + path: '/workspaces/current/tool-provider/builtin/{provider}/default-credential', + tags: ['console'], + }) + .input( + z.object({ + body: zPostWorkspacesCurrentToolProviderBuiltinByProviderDefaultCredentialBody, + params: zPostWorkspacesCurrentToolProviderBuiltinByProviderDefaultCredentialPath, + }), + ) + .output(zPostWorkspacesCurrentToolProviderBuiltinByProviderDefaultCredentialResponse) + +export const defaultCredential = { + post: post46, +} + +export const post47 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentToolProviderBuiltinByProviderDelete', + path: '/workspaces/current/tool-provider/builtin/{provider}/delete', + tags: ['console'], + }) + .input( + z.object({ + body: zPostWorkspacesCurrentToolProviderBuiltinByProviderDeleteBody, + params: zPostWorkspacesCurrentToolProviderBuiltinByProviderDeletePath, + }), + ) + .output(zPostWorkspacesCurrentToolProviderBuiltinByProviderDeleteResponse) + +export const delete9 = { + post: post47, +} + +export const get36 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentToolProviderBuiltinByProviderIcon', + path: '/workspaces/current/tool-provider/builtin/{provider}/icon', + tags: ['console'], + }) + .input(z.object({ params: zGetWorkspacesCurrentToolProviderBuiltinByProviderIconPath })) + .output(zGetWorkspacesCurrentToolProviderBuiltinByProviderIconResponse) + +export const icon2 = { + get: get36, +} + +export const get37 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentToolProviderBuiltinByProviderInfo', + path: '/workspaces/current/tool-provider/builtin/{provider}/info', + tags: ['console'], + }) + .input(z.object({ params: zGetWorkspacesCurrentToolProviderBuiltinByProviderInfoPath })) + .output(zGetWorkspacesCurrentToolProviderBuiltinByProviderInfoResponse) + +export const info2 = { + get: get37, +} + +export const get38 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentToolProviderBuiltinByProviderOauthClientSchema', + path: '/workspaces/current/tool-provider/builtin/{provider}/oauth/client-schema', + tags: ['console'], + }) + .input( + z.object({ params: zGetWorkspacesCurrentToolProviderBuiltinByProviderOauthClientSchemaPath }), + ) + .output(zGetWorkspacesCurrentToolProviderBuiltinByProviderOauthClientSchemaResponse) + +export const clientSchema = { + get: get38, +} + +export const delete10 = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClient', + path: '/workspaces/current/tool-provider/builtin/{provider}/oauth/custom-client', + tags: ['console'], + }) + .input( + z.object({ + params: zDeleteWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientPath, + }), + ) + .output(zDeleteWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientResponse) + +export const get39 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClient', + path: '/workspaces/current/tool-provider/builtin/{provider}/oauth/custom-client', + tags: ['console'], + }) + .input( + z.object({ params: zGetWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientPath }), + ) + .output(zGetWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientResponse) + +export const post48 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClient', + path: '/workspaces/current/tool-provider/builtin/{provider}/oauth/custom-client', + tags: ['console'], + }) + .input( + z.object({ + body: zPostWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientBody, + params: zPostWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientPath, + }), + ) + .output(zPostWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientResponse) + +export const customClient = { + delete: delete10, + get: get39, + post: post48, +} + +export const oauth = { + clientSchema, + customClient, +} + +export const get40 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentToolProviderBuiltinByProviderTools', + path: '/workspaces/current/tool-provider/builtin/{provider}/tools', + tags: ['console'], + }) + .input(z.object({ params: zGetWorkspacesCurrentToolProviderBuiltinByProviderToolsPath })) + .output(zGetWorkspacesCurrentToolProviderBuiltinByProviderToolsResponse) + +export const tools2 = { + get: get40, +} + +export const post49 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentToolProviderBuiltinByProviderUpdate', + path: '/workspaces/current/tool-provider/builtin/{provider}/update', + tags: ['console'], + }) + .input( + z.object({ + body: zPostWorkspacesCurrentToolProviderBuiltinByProviderUpdateBody, + params: zPostWorkspacesCurrentToolProviderBuiltinByProviderUpdatePath, + }), + ) + .output(zPostWorkspacesCurrentToolProviderBuiltinByProviderUpdateResponse) + +export const update3 = { + post: post49, +} + +export const byProvider2 = { + add: add2, + credential, + credentials: credentials3, + defaultCredential, + delete: delete9, + icon: icon2, + info: info2, + oauth, + tools: tools2, + update: update3, +} + +export const builtin = { + byProvider: byProvider2, +} + +export const post50 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentToolProviderMcpAuth', + path: '/workspaces/current/tool-provider/mcp/auth', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentToolProviderMcpAuthBody })) + .output(zPostWorkspacesCurrentToolProviderMcpAuthResponse) + +export const auth = { + post: post50, +} + +export const get41 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentToolProviderMcpToolsByProviderId', + path: '/workspaces/current/tool-provider/mcp/tools/{provider_id}', + tags: ['console'], + }) + .input(z.object({ params: zGetWorkspacesCurrentToolProviderMcpToolsByProviderIdPath })) + .output(zGetWorkspacesCurrentToolProviderMcpToolsByProviderIdResponse) + +export const byProviderId = { + get: get41, +} + +export const tools3 = { + byProviderId, +} + +export const get42 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentToolProviderMcpUpdateByProviderId', + path: '/workspaces/current/tool-provider/mcp/update/{provider_id}', + tags: ['console'], + }) + .input(z.object({ params: zGetWorkspacesCurrentToolProviderMcpUpdateByProviderIdPath })) + .output(zGetWorkspacesCurrentToolProviderMcpUpdateByProviderIdResponse) + +export const byProviderId2 = { + get: get42, +} + +export const update4 = { + byProviderId: byProviderId2, +} + +export const delete11 = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteWorkspacesCurrentToolProviderMcp', + path: '/workspaces/current/tool-provider/mcp', + tags: ['console'], + }) + .input(z.object({ body: zDeleteWorkspacesCurrentToolProviderMcpBody })) + .output(zDeleteWorkspacesCurrentToolProviderMcpResponse) + +export const post51 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentToolProviderMcp', + path: '/workspaces/current/tool-provider/mcp', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentToolProviderMcpBody })) + .output(zPostWorkspacesCurrentToolProviderMcpResponse) + +export const put4 = oc + .route({ + inputStructure: 'detailed', + method: 'PUT', + operationId: 'putWorkspacesCurrentToolProviderMcp', + path: '/workspaces/current/tool-provider/mcp', + tags: ['console'], + }) + .input(z.object({ body: zPutWorkspacesCurrentToolProviderMcpBody })) + .output(zPutWorkspacesCurrentToolProviderMcpResponse) + +export const mcp = { + delete: delete11, + post: post51, + put: put4, + auth, + tools: tools3, + update: update4, +} + +export const post52 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentToolProviderWorkflowCreate', + path: '/workspaces/current/tool-provider/workflow/create', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentToolProviderWorkflowCreateBody })) + .output(zPostWorkspacesCurrentToolProviderWorkflowCreateResponse) + +export const create2 = { + post: post52, +} + +export const post53 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentToolProviderWorkflowDelete', + path: '/workspaces/current/tool-provider/workflow/delete', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentToolProviderWorkflowDeleteBody })) + .output(zPostWorkspacesCurrentToolProviderWorkflowDeleteResponse) + +export const delete12 = { + post: post53, +} + +export const get43 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentToolProviderWorkflowGet', + path: '/workspaces/current/tool-provider/workflow/get', + tags: ['console'], + }) + .output(zGetWorkspacesCurrentToolProviderWorkflowGetResponse) + +export const get44 = { + get: get43, +} + +export const get45 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentToolProviderWorkflowTools', + path: '/workspaces/current/tool-provider/workflow/tools', + tags: ['console'], + }) + .output(zGetWorkspacesCurrentToolProviderWorkflowToolsResponse) + +export const tools4 = { + get: get45, +} + +export const post54 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentToolProviderWorkflowUpdate', + path: '/workspaces/current/tool-provider/workflow/update', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCurrentToolProviderWorkflowUpdateBody })) + .output(zPostWorkspacesCurrentToolProviderWorkflowUpdateResponse) + +export const update5 = { + post: post54, +} + +export const workflow = { + create: create2, + delete: delete12, + get: get44, + tools: tools4, + update: update5, +} + +export const toolProvider = { + api, + builtin, + mcp, + workflow, +} + +export const get46 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentToolProviders', + path: '/workspaces/current/tool-providers', + tags: ['console'], + }) + .output(zGetWorkspacesCurrentToolProvidersResponse) + +export const toolProviders = { + get: get46, +} + +export const get47 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentToolsApi', + path: '/workspaces/current/tools/api', + tags: ['console'], + }) + .output(zGetWorkspacesCurrentToolsApiResponse) + +export const api2 = { + get: get47, +} + +export const get48 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentToolsBuiltin', + path: '/workspaces/current/tools/builtin', + tags: ['console'], + }) + .output(zGetWorkspacesCurrentToolsBuiltinResponse) + +export const builtin2 = { + get: get48, +} + +export const get49 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentToolsMcp', + path: '/workspaces/current/tools/mcp', + tags: ['console'], + }) + .output(zGetWorkspacesCurrentToolsMcpResponse) + +export const mcp2 = { + get: get49, +} + +export const get50 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentToolsWorkflow', + path: '/workspaces/current/tools/workflow', + tags: ['console'], + }) + .output(zGetWorkspacesCurrentToolsWorkflowResponse) + +export const workflow2 = { + get: get50, +} + +export const tools5 = { + api: api2, + builtin: builtin2, + mcp: mcp2, + workflow: workflow2, +} + +export const get51 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentTriggerProviderByProviderIcon', + path: '/workspaces/current/trigger-provider/{provider}/icon', + tags: ['console'], + }) + .input(z.object({ params: zGetWorkspacesCurrentTriggerProviderByProviderIconPath })) + .output(zGetWorkspacesCurrentTriggerProviderByProviderIconResponse) + +export const icon3 = { + get: get51, +} + +/** + * Get info for a trigger provider + */ +export const get52 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentTriggerProviderByProviderInfo', + path: '/workspaces/current/trigger-provider/{provider}/info', + summary: 'Get info for a trigger provider', + tags: ['console'], + }) + .input(z.object({ params: zGetWorkspacesCurrentTriggerProviderByProviderInfoPath })) + .output(zGetWorkspacesCurrentTriggerProviderByProviderInfoResponse) + +export const info3 = { + get: get52, +} + +/** + * Remove custom OAuth client configuration + */ +export const delete13 = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteWorkspacesCurrentTriggerProviderByProviderOauthClient', + path: '/workspaces/current/trigger-provider/{provider}/oauth/client', + summary: 'Remove custom OAuth client configuration', + tags: ['console'], + }) + .input(z.object({ params: zDeleteWorkspacesCurrentTriggerProviderByProviderOauthClientPath })) + .output(zDeleteWorkspacesCurrentTriggerProviderByProviderOauthClientResponse) + +/** + * Get OAuth client configuration for a provider + */ +export const get53 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentTriggerProviderByProviderOauthClient', + path: '/workspaces/current/trigger-provider/{provider}/oauth/client', + summary: 'Get OAuth client configuration for a provider', + tags: ['console'], + }) + .input(z.object({ params: zGetWorkspacesCurrentTriggerProviderByProviderOauthClientPath })) + .output(zGetWorkspacesCurrentTriggerProviderByProviderOauthClientResponse) + +/** + * Configure custom OAuth client for a provider + */ +export const post55 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentTriggerProviderByProviderOauthClient', + path: '/workspaces/current/trigger-provider/{provider}/oauth/client', + summary: 'Configure custom OAuth client for a provider', + tags: ['console'], + }) + .input( + z.object({ + body: zPostWorkspacesCurrentTriggerProviderByProviderOauthClientBody, + params: zPostWorkspacesCurrentTriggerProviderByProviderOauthClientPath, + }), + ) + .output(zPostWorkspacesCurrentTriggerProviderByProviderOauthClientResponse) + +export const client = { + delete: delete13, + get: get53, + post: post55, +} + +export const oauth2 = { + client, +} + +/** + * Build a subscription instance for a trigger provider + */ +export const post56 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: + 'postWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderBuildBySubscriptionBuilderId', + path: '/workspaces/current/trigger-provider/{provider}/subscriptions/builder/build/{subscription_builder_id}', + summary: 'Build a subscription instance for a trigger provider', + tags: ['console'], + }) + .input( + z.object({ + body: zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderBuildBySubscriptionBuilderIdBody, + params: + zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderBuildBySubscriptionBuilderIdPath, + }), + ) + .output( + zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderBuildBySubscriptionBuilderIdResponse, + ) + +export const bySubscriptionBuilderId = { + post: post56, +} + +export const build = { + bySubscriptionBuilderId, +} + +/** + * Add a new subscription instance for a trigger provider + */ +export const post57 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderCreate', + path: '/workspaces/current/trigger-provider/{provider}/subscriptions/builder/create', + summary: 'Add a new subscription instance for a trigger provider', + tags: ['console'], + }) + .input( + z.object({ + body: zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderCreateBody, + params: zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderCreatePath, + }), + ) + .output(zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderCreateResponse) + +export const create3 = { + post: post57, +} + +/** + * Get the request logs for a subscription instance for a trigger provider + */ +export const get54 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: + 'getWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderLogsBySubscriptionBuilderId', + path: '/workspaces/current/trigger-provider/{provider}/subscriptions/builder/logs/{subscription_builder_id}', + summary: 'Get the request logs for a subscription instance for a trigger provider', + tags: ['console'], + }) + .input( + z.object({ + params: + zGetWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderLogsBySubscriptionBuilderIdPath, + }), + ) + .output( + zGetWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderLogsBySubscriptionBuilderIdResponse, + ) + +export const bySubscriptionBuilderId2 = { + get: get54, +} + +export const logs = { + bySubscriptionBuilderId: bySubscriptionBuilderId2, +} + +/** + * Update a subscription instance for a trigger provider + */ +export const post58 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: + 'postWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderUpdateBySubscriptionBuilderId', + path: '/workspaces/current/trigger-provider/{provider}/subscriptions/builder/update/{subscription_builder_id}', + summary: 'Update a subscription instance for a trigger provider', + tags: ['console'], + }) + .input( + z.object({ + body: zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderUpdateBySubscriptionBuilderIdBody, + params: + zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderUpdateBySubscriptionBuilderIdPath, + }), + ) + .output( + zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderUpdateBySubscriptionBuilderIdResponse, + ) + +export const bySubscriptionBuilderId3 = { + post: post58, +} + +export const update6 = { + bySubscriptionBuilderId: bySubscriptionBuilderId3, +} + +/** + * Verify and update a subscription instance for a trigger provider + */ +export const post59 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: + 'postWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderVerifyAndUpdateBySubscriptionBuilderId', + path: '/workspaces/current/trigger-provider/{provider}/subscriptions/builder/verify-and-update/{subscription_builder_id}', + summary: 'Verify and update a subscription instance for a trigger provider', + tags: ['console'], + }) + .input( + z.object({ + body: zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderVerifyAndUpdateBySubscriptionBuilderIdBody, + params: + zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderVerifyAndUpdateBySubscriptionBuilderIdPath, + }), + ) + .output( + zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderVerifyAndUpdateBySubscriptionBuilderIdResponse, + ) + +export const bySubscriptionBuilderId4 = { + post: post59, +} + +export const verifyAndUpdate = { + bySubscriptionBuilderId: bySubscriptionBuilderId4, +} + +/** + * Get a subscription instance for a trigger provider + */ +export const get55 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: + 'getWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderBySubscriptionBuilderId', + path: '/workspaces/current/trigger-provider/{provider}/subscriptions/builder/{subscription_builder_id}', + summary: 'Get a subscription instance for a trigger provider', + tags: ['console'], + }) + .input( + z.object({ + params: + zGetWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderBySubscriptionBuilderIdPath, + }), + ) + .output( + zGetWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderBySubscriptionBuilderIdResponse, + ) + +export const bySubscriptionBuilderId5 = { + get: get55, +} + +export const builder = { + build, + create: create3, + logs, + update: update6, + verifyAndUpdate, + bySubscriptionBuilderId: bySubscriptionBuilderId5, +} + +/** + * List all trigger subscriptions for the current tenant's provider + */ +export const get56 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentTriggerProviderByProviderSubscriptionsList', + path: '/workspaces/current/trigger-provider/{provider}/subscriptions/list', + summary: 'List all trigger subscriptions for the current tenant\'s provider', + tags: ['console'], + }) + .input(z.object({ params: zGetWorkspacesCurrentTriggerProviderByProviderSubscriptionsListPath })) + .output(zGetWorkspacesCurrentTriggerProviderByProviderSubscriptionsListResponse) + +export const list3 = { + get: get56, +} + +/** + * Initiate OAuth authorization flow for a trigger provider + */ +export const get57 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentTriggerProviderByProviderSubscriptionsOauthAuthorize', + path: '/workspaces/current/trigger-provider/{provider}/subscriptions/oauth/authorize', + summary: 'Initiate OAuth authorization flow for a trigger provider', + tags: ['console'], + }) + .input( + z.object({ + params: zGetWorkspacesCurrentTriggerProviderByProviderSubscriptionsOauthAuthorizePath, + }), + ) + .output(zGetWorkspacesCurrentTriggerProviderByProviderSubscriptionsOauthAuthorizeResponse) + +export const authorize = { + get: get57, +} + +export const oauth3 = { + authorize, +} + +/** + * Verify credentials for an existing subscription (edit mode only) + */ +export const post60 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: + 'postWorkspacesCurrentTriggerProviderByProviderSubscriptionsVerifyBySubscriptionId', + path: '/workspaces/current/trigger-provider/{provider}/subscriptions/verify/{subscription_id}', + summary: 'Verify credentials for an existing subscription (edit mode only)', + tags: ['console'], + }) + .input( + z.object({ + body: zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsVerifyBySubscriptionIdBody, + params: + zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsVerifyBySubscriptionIdPath, + }), + ) + .output( + zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsVerifyBySubscriptionIdResponse, + ) + +export const bySubscriptionId = { + post: post60, +} + +export const verify = { + bySubscriptionId, +} + +export const subscriptions = { + builder, + list: list3, + oauth: oauth3, + verify, +} + +export const byProvider3 = { + icon: icon3, + info: info3, + oauth: oauth2, + subscriptions, +} + +/** + * Delete a subscription instance + */ +export const post61 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentTriggerProviderBySubscriptionIdSubscriptionsDelete', + path: '/workspaces/current/trigger-provider/{subscription_id}/subscriptions/delete', + summary: 'Delete a subscription instance', + tags: ['console'], + }) + .input( + z.object({ + params: zPostWorkspacesCurrentTriggerProviderBySubscriptionIdSubscriptionsDeletePath, + }), + ) + .output(zPostWorkspacesCurrentTriggerProviderBySubscriptionIdSubscriptionsDeleteResponse) + +export const delete14 = { + post: post61, +} + +/** + * Update a subscription instance + */ +export const post62 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrentTriggerProviderBySubscriptionIdSubscriptionsUpdate', + path: '/workspaces/current/trigger-provider/{subscription_id}/subscriptions/update', + summary: 'Update a subscription instance', + tags: ['console'], + }) + .input( + z.object({ + body: zPostWorkspacesCurrentTriggerProviderBySubscriptionIdSubscriptionsUpdateBody, + params: zPostWorkspacesCurrentTriggerProviderBySubscriptionIdSubscriptionsUpdatePath, + }), + ) + .output(zPostWorkspacesCurrentTriggerProviderBySubscriptionIdSubscriptionsUpdateResponse) + +export const update7 = { + post: post62, +} + +export const subscriptions2 = { + delete: delete14, + update: update7, +} + +export const bySubscriptionId2 = { + subscriptions: subscriptions2, +} + +export const triggerProvider = { + byProvider: byProvider3, + bySubscriptionId: bySubscriptionId2, +} + +/** + * List all trigger providers for the current tenant + */ +export const get58 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentTriggers', + path: '/workspaces/current/triggers', + summary: 'List all trigger providers for the current tenant', + tags: ['console'], + }) + .output(zGetWorkspacesCurrentTriggersResponse) + +export const triggers = { + get: get58, +} + +export const post63 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCurrent', + path: '/workspaces/current', + tags: ['console'], + }) + .output(zPostWorkspacesCurrentResponse) + +export const current = { + post: post63, + agentProvider, + agentProviders, + datasetOperators, + defaultModel, + endpoints, + members, + modelProviders, + models: models2, + permission, + plugin: plugin2, + toolLabels, + toolProvider, + toolProviders, + tools: tools5, + triggerProvider, + triggers, +} + +export const post64 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCustomConfigWebappLogoUpload', + path: '/workspaces/custom-config/webapp-logo/upload', + tags: ['console'], + }) + .output(zPostWorkspacesCustomConfigWebappLogoUploadResponse) + +export const upload2 = { + post: post64, +} + +export const webappLogo = { + upload: upload2, +} + +export const post65 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesCustomConfig', + path: '/workspaces/custom-config', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesCustomConfigBody })) + .output(zPostWorkspacesCustomConfigResponse) + +export const customConfig = { + post: post65, + webappLogo, +} + +export const post66 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesInfo', + path: '/workspaces/info', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesInfoBody })) + .output(zPostWorkspacesInfoResponse) + +export const info4 = { + post: post66, +} + +export const post67 = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkspacesSwitch', + path: '/workspaces/switch', + tags: ['console'], + }) + .input(z.object({ body: zPostWorkspacesSwitchBody })) + .output(zPostWorkspacesSwitchResponse) + +export const switch3 = { + post: post67, +} + +export const get59 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesByTenantIdModelProvidersByProviderByIconTypeByLang', + path: '/workspaces/{tenant_id}/model-providers/{provider}/{icon_type}/{lang}', + tags: ['console'], + }) + .input(z.object({ params: zGetWorkspacesByTenantIdModelProvidersByProviderByIconTypeByLangPath })) + .output(zGetWorkspacesByTenantIdModelProvidersByProviderByIconTypeByLangResponse) + +export const byLang = { + get: get59, +} + +export const byIconType = { + byLang, +} + +export const byProvider4 = { + byIconType, +} + +export const modelProviders2 = { + byProvider: byProvider4, +} + +export const byTenantId = { + modelProviders: modelProviders2, +} + +export const get60 = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspaces', + path: '/workspaces', + tags: ['console'], + }) + .output(zGetWorkspacesResponse) + +export const workspaces = { + get: get60, + current, + customConfig, + info: info4, + switch: switch3, + byTenantId, +} + +export const contract = { + workspaces, +} diff --git a/packages/contracts/generated/api/console/workspaces/types.gen.ts b/packages/contracts/generated/api/console/workspaces/types.gen.ts new file mode 100644 index 0000000000..a90db98f22 --- /dev/null +++ b/packages/contracts/generated/api/console/workspaces/types.gen.ts @@ -0,0 +1,3023 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/console/api` | (string & {}) +} + +export type TenantInfoResponse = { + created_at?: number | null + custom_config?: { + [key: string]: unknown + } | null + id: string + in_trial?: boolean | null + name?: string | null + next_credit_reset_date?: number | null + plan?: string | null + role?: string | null + status?: string | null + trial_credits?: number | null + trial_credits_used?: number | null + trial_end_reason?: string | null +} + +export type AccountWithRoleList = { + accounts: Array +} + +export type ParserPostDefault = { + model_settings: Array +} + +export type EndpointCreatePayload = { + name: string + plugin_unique_identifier: string + settings: { + [key: string]: unknown + } +} + +export type EndpointCreateResponse = { + success: boolean +} + +export type EndpointIdPayload = { + endpoint_id: string +} + +export type EndpointDeleteResponse = { + success: boolean +} + +export type EndpointDisableResponse = { + success: boolean +} + +export type EndpointEnableResponse = { + success: boolean +} + +export type EndpointListResponse = { + endpoints: Array<{ + [key: string]: unknown + }> +} + +export type PluginEndpointListResponse = { + endpoints: Array<{ + [key: string]: unknown + }> +} + +export type LegacyEndpointUpdatePayload = { + endpoint_id: string + name: string + settings: { + [key: string]: unknown + } +} + +export type EndpointUpdateResponse = { + success: boolean +} + +export type EndpointUpdatePayload = { + name: string + settings: { + [key: string]: unknown + } +} + +export type MemberInvitePayload = { + emails?: Array + language?: string | null + role: TenantAccountRole +} + +export type OwnerTransferCheckPayload = { + code: string + token: string +} + +export type OwnerTransferEmailPayload = { + language?: string | null +} + +export type OwnerTransferPayload = { + token: string +} + +export type MemberRoleUpdatePayload = { + role: string +} + +export type ParserCredentialDelete = { + credential_id: string +} + +export type ParserCredentialCreate = { + credentials: { + [key: string]: unknown + } + name?: string | null +} + +export type ParserCredentialUpdate = { + credential_id: string + credentials: { + [key: string]: unknown + } + name?: string | null +} + +export type ParserCredentialSwitch = { + credential_id: string +} + +export type ParserCredentialValidate = { + credentials: { + [key: string]: unknown + } +} + +export type ParserDeleteModels = { + model: string + model_type: ModelType +} + +export type ParserPostModels = { + config_from?: string | null + credential_id?: string | null + load_balancing?: LoadBalancingPayload + model: string + model_type: ModelType +} + +export type ParserDeleteCredential = { + credential_id: string + model: string + model_type: ModelType +} + +export type ParserCreateCredential = { + credentials: { + [key: string]: unknown + } + model: string + model_type: ModelType + name?: string | null +} + +export type ParserUpdateCredential = { + credential_id: string + credentials: { + [key: string]: unknown + } + model: string + model_type: ModelType + name?: string | null +} + +export type ParserSwitch = { + credential_id: string + model: string + model_type: ModelType +} + +export type ParserValidate = { + credentials: { + [key: string]: unknown + } + model: string + model_type: ModelType +} + +export type LoadBalancingCredentialPayload = { + credentials: { + [key: string]: unknown + } + model: string + model_type: ModelType +} + +export type ParserPreferredProviderType = { + preferred_provider_type: 'system' | 'custom' +} + +export type ParserGithubInstall = { + package: string + plugin_unique_identifier: string + repo: string + version: string +} + +export type ParserPluginIdentifiers = { + plugin_unique_identifiers: Array +} + +export type ParserLatest = { + plugin_ids: Array +} + +export type ParserDynamicOptionsWithCredentials = { + action: string + credential_id: string + credentials: { + [key: string]: unknown + } + parameter: string + plugin_id: string + provider: string +} + +export type ParserPermissionChange = { + debug_permission: DebugPermission + install_permission: InstallPermission +} + +export type ParserExcludePlugin = { + plugin_id: string +} + +export type ParserPreferencesChange = { + auto_upgrade: PluginAutoUpgradeSettingsPayload + permission: PluginPermissionSettingsPayload +} + +export type ParserUninstall = { + plugin_installation_id: string +} + +export type ParserGithubUpgrade = { + new_plugin_unique_identifier: string + original_plugin_unique_identifier: string + package: string + repo: string + version: string +} + +export type ParserMarketplaceUpgrade = { + new_plugin_unique_identifier: string + original_plugin_unique_identifier: string +} + +export type ParserGithubUpload = { + package: string + repo: string + version: string +} + +export type ApiToolProviderAddPayload = { + credentials: { + [key: string]: unknown + } + custom_disclaimer?: string + icon: { + [key: string]: unknown + } + labels?: Array | null + privacy_policy?: string | null + provider: string + schema: string + schema_type: ApiProviderSchemaType +} + +export type ApiToolProviderDeletePayload = { + provider: string +} + +export type ApiToolSchemaPayload = { + schema: string +} + +export type ApiToolTestPayload = { + credentials: { + [key: string]: unknown + } + parameters: { + [key: string]: unknown + } + provider_name?: string | null + schema: string + schema_type: ApiProviderSchemaType + tool_name: string +} + +export type ApiToolProviderUpdatePayload = { + credentials: { + [key: string]: unknown + } + custom_disclaimer?: string + icon: { + [key: string]: unknown + } + labels?: Array | null + original_provider: string + privacy_policy?: string | null + provider: string + schema: string + schema_type: ApiProviderSchemaType +} + +export type BuiltinToolAddPayload = { + credentials: { + [key: string]: unknown + } + name?: string | null + type: CredentialType +} + +export type BuiltinProviderDefaultCredentialPayload = { + id: string +} + +export type BuiltinToolCredentialDeletePayload = { + credential_id: string +} + +export type ToolOAuthCustomClientPayload = { + client_params?: { + [key: string]: unknown + } | null + enable_oauth_custom_client?: boolean | null +} + +export type BuiltinToolUpdatePayload = { + credential_id: string + credentials?: { + [key: string]: unknown + } | null + name?: string | null +} + +export type McpProviderDeletePayload = { + provider_id: string +} + +export type McpProviderCreatePayload = { + authentication?: { + [key: string]: unknown + } | null + configuration?: { + [key: string]: unknown + } | null + headers?: { + [key: string]: unknown + } | null + icon: string + icon_background?: string + icon_type: string + name: string + server_identifier: string + server_url: string +} + +export type McpProviderUpdatePayload = { + authentication?: { + [key: string]: unknown + } | null + configuration?: { + [key: string]: unknown + } | null + headers?: { + [key: string]: unknown + } | null + icon: string + icon_background?: string + icon_type: string + name: string + provider_id: string + server_identifier: string + server_url: string +} + +export type McpAuthPayload = { + authorization_code?: string | null + provider_id: string +} + +export type WorkflowToolCreatePayload = { + description: string + icon: { + [key: string]: unknown + } + label: string + labels?: Array | null + name: string + parameters?: Array + privacy_policy?: string | null + workflow_app_id: string +} + +export type WorkflowToolDeletePayload = { + workflow_tool_id: string +} + +export type WorkflowToolUpdatePayload = { + description: string + icon: { + [key: string]: unknown + } + label: string + labels?: Array | null + name: string + parameters?: Array + privacy_policy?: string | null + workflow_tool_id: string +} + +export type TriggerOAuthClientPayload = { + client_params?: { + [key: string]: unknown + } | null + enabled?: boolean | null +} + +export type TriggerSubscriptionBuilderUpdatePayload = { + credentials?: { + [key: string]: unknown + } | null + name?: string | null + parameters?: { + [key: string]: unknown + } | null + properties?: { + [key: string]: unknown + } | null +} + +export type TriggerSubscriptionBuilderCreatePayload = { + credential_type?: string +} + +export type TriggerSubscriptionBuilderVerifyPayload = { + credentials: { + [key: string]: unknown + } +} + +export type WorkspaceCustomConfigPayload = { + remove_webapp_brand?: boolean | null + replace_webapp_logo?: string | null +} + +export type WorkspaceInfoPayload = { + name: string +} + +export type SwitchWorkspacePayload = { + tenant_id: string +} + +export type AccountWithRole = { + avatar?: string | null + created_at?: number | null + email: string + id: string + last_active_at?: number | null + last_login_at?: number | null + name: string + role: string + status: string +} + +export type Inner = { + model?: string | null + model_type: ModelType + provider?: string | null +} + +export type TenantAccountRole = 'owner' | 'admin' | 'editor' | 'normal' | 'dataset_operator' + +export type ModelType = 'llm' | 'text-embedding' | 'rerank' | 'speech2text' | 'moderation' | 'tts' + +export type LoadBalancingPayload = { + configs?: Array<{ + [key: string]: unknown + }> | null + enabled?: boolean | null +} + +export type DebugPermission = 'everyone' | 'admins' | 'noone' + +export type InstallPermission = 'everyone' | 'admins' | 'noone' + +export type PluginAutoUpgradeSettingsPayload = { + exclude_plugins?: Array + include_plugins?: Array + strategy_setting?: StrategySetting + upgrade_mode?: UpgradeMode + upgrade_time_of_day?: number +} + +export type PluginPermissionSettingsPayload = { + debug_permission?: DebugPermission + install_permission?: InstallPermission +} + +export type ApiProviderSchemaType = 'openapi' | 'swagger' | 'openai_plugin' | 'openai_actions' + +export type CredentialType = 'api-key' | 'oauth2' | 'unauthorized' + +export type WorkflowToolParameterConfiguration = { + description: string + form: ToolParameterForm + name: string +} + +export type StrategySetting = 'disabled' | 'fix_only' | 'latest' + +export type UpgradeMode = 'all' | 'partial' | 'exclude' + +export type ToolParameterForm = 'schema' | 'form' | 'llm' + +export type GetWorkspacesData = { + body?: never + path?: never + query?: never + url: '/workspaces' +} + +export type GetWorkspacesResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesResponse = GetWorkspacesResponses[keyof GetWorkspacesResponses] + +export type PostWorkspacesCurrentData = { + body?: never + path?: never + query?: never + url: '/workspaces/current' +} + +export type PostWorkspacesCurrentResponses = { + 200: TenantInfoResponse +} + +export type PostWorkspacesCurrentResponse + = PostWorkspacesCurrentResponses[keyof PostWorkspacesCurrentResponses] + +export type GetWorkspacesCurrentAgentProviderByProviderNameData = { + body?: never + path: { + provider_name: string + } + query?: never + url: '/workspaces/current/agent-provider/{provider_name}' +} + +export type GetWorkspacesCurrentAgentProviderByProviderNameResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentAgentProviderByProviderNameResponse + = GetWorkspacesCurrentAgentProviderByProviderNameResponses[keyof GetWorkspacesCurrentAgentProviderByProviderNameResponses] + +export type GetWorkspacesCurrentAgentProvidersData = { + body?: never + path?: never + query?: never + url: '/workspaces/current/agent-providers' +} + +export type GetWorkspacesCurrentAgentProvidersResponses = { + 200: Array<{ + [key: string]: unknown + }> +} + +export type GetWorkspacesCurrentAgentProvidersResponse + = GetWorkspacesCurrentAgentProvidersResponses[keyof GetWorkspacesCurrentAgentProvidersResponses] + +export type GetWorkspacesCurrentDatasetOperatorsData = { + body?: never + path?: never + query?: never + url: '/workspaces/current/dataset-operators' +} + +export type GetWorkspacesCurrentDatasetOperatorsResponses = { + 200: AccountWithRoleList +} + +export type GetWorkspacesCurrentDatasetOperatorsResponse + = GetWorkspacesCurrentDatasetOperatorsResponses[keyof GetWorkspacesCurrentDatasetOperatorsResponses] + +export type GetWorkspacesCurrentDefaultModelData = { + body?: never + path?: never + query: { + model_type: string + } + url: '/workspaces/current/default-model' +} + +export type GetWorkspacesCurrentDefaultModelResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentDefaultModelResponse + = GetWorkspacesCurrentDefaultModelResponses[keyof GetWorkspacesCurrentDefaultModelResponses] + +export type PostWorkspacesCurrentDefaultModelData = { + body: ParserPostDefault + path?: never + query?: never + url: '/workspaces/current/default-model' +} + +export type PostWorkspacesCurrentDefaultModelResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentDefaultModelResponse + = PostWorkspacesCurrentDefaultModelResponses[keyof PostWorkspacesCurrentDefaultModelResponses] + +export type PostWorkspacesCurrentEndpointsData = { + body: EndpointCreatePayload + path?: never + query?: never + url: '/workspaces/current/endpoints' +} + +export type PostWorkspacesCurrentEndpointsErrors = { + 403: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentEndpointsError + = PostWorkspacesCurrentEndpointsErrors[keyof PostWorkspacesCurrentEndpointsErrors] + +export type PostWorkspacesCurrentEndpointsResponses = { + 200: EndpointCreateResponse +} + +export type PostWorkspacesCurrentEndpointsResponse + = PostWorkspacesCurrentEndpointsResponses[keyof PostWorkspacesCurrentEndpointsResponses] + +export type PostWorkspacesCurrentEndpointsCreateData = { + body: EndpointCreatePayload + path?: never + query?: never + url: '/workspaces/current/endpoints/create' +} + +export type PostWorkspacesCurrentEndpointsCreateErrors = { + 403: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentEndpointsCreateError + = PostWorkspacesCurrentEndpointsCreateErrors[keyof PostWorkspacesCurrentEndpointsCreateErrors] + +export type PostWorkspacesCurrentEndpointsCreateResponses = { + 200: EndpointCreateResponse +} + +export type PostWorkspacesCurrentEndpointsCreateResponse + = PostWorkspacesCurrentEndpointsCreateResponses[keyof PostWorkspacesCurrentEndpointsCreateResponses] + +export type PostWorkspacesCurrentEndpointsDeleteData = { + body: EndpointIdPayload + path?: never + query?: never + url: '/workspaces/current/endpoints/delete' +} + +export type PostWorkspacesCurrentEndpointsDeleteErrors = { + 403: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentEndpointsDeleteError + = PostWorkspacesCurrentEndpointsDeleteErrors[keyof PostWorkspacesCurrentEndpointsDeleteErrors] + +export type PostWorkspacesCurrentEndpointsDeleteResponses = { + 200: EndpointDeleteResponse +} + +export type PostWorkspacesCurrentEndpointsDeleteResponse + = PostWorkspacesCurrentEndpointsDeleteResponses[keyof PostWorkspacesCurrentEndpointsDeleteResponses] + +export type PostWorkspacesCurrentEndpointsDisableData = { + body: EndpointIdPayload + path?: never + query?: never + url: '/workspaces/current/endpoints/disable' +} + +export type PostWorkspacesCurrentEndpointsDisableErrors = { + 403: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentEndpointsDisableError + = PostWorkspacesCurrentEndpointsDisableErrors[keyof PostWorkspacesCurrentEndpointsDisableErrors] + +export type PostWorkspacesCurrentEndpointsDisableResponses = { + 200: EndpointDisableResponse +} + +export type PostWorkspacesCurrentEndpointsDisableResponse + = PostWorkspacesCurrentEndpointsDisableResponses[keyof PostWorkspacesCurrentEndpointsDisableResponses] + +export type PostWorkspacesCurrentEndpointsEnableData = { + body: EndpointIdPayload + path?: never + query?: never + url: '/workspaces/current/endpoints/enable' +} + +export type PostWorkspacesCurrentEndpointsEnableErrors = { + 403: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentEndpointsEnableError + = PostWorkspacesCurrentEndpointsEnableErrors[keyof PostWorkspacesCurrentEndpointsEnableErrors] + +export type PostWorkspacesCurrentEndpointsEnableResponses = { + 200: EndpointEnableResponse +} + +export type PostWorkspacesCurrentEndpointsEnableResponse + = PostWorkspacesCurrentEndpointsEnableResponses[keyof PostWorkspacesCurrentEndpointsEnableResponses] + +export type GetWorkspacesCurrentEndpointsListData = { + body?: never + path?: never + query: { + page: number + page_size: number + } + url: '/workspaces/current/endpoints/list' +} + +export type GetWorkspacesCurrentEndpointsListResponses = { + 200: EndpointListResponse +} + +export type GetWorkspacesCurrentEndpointsListResponse + = GetWorkspacesCurrentEndpointsListResponses[keyof GetWorkspacesCurrentEndpointsListResponses] + +export type GetWorkspacesCurrentEndpointsListPluginData = { + body?: never + path?: never + query: { + page: number + page_size: number + plugin_id: string + } + url: '/workspaces/current/endpoints/list/plugin' +} + +export type GetWorkspacesCurrentEndpointsListPluginResponses = { + 200: PluginEndpointListResponse +} + +export type GetWorkspacesCurrentEndpointsListPluginResponse + = GetWorkspacesCurrentEndpointsListPluginResponses[keyof GetWorkspacesCurrentEndpointsListPluginResponses] + +export type PostWorkspacesCurrentEndpointsUpdateData = { + body: LegacyEndpointUpdatePayload + path?: never + query?: never + url: '/workspaces/current/endpoints/update' +} + +export type PostWorkspacesCurrentEndpointsUpdateErrors = { + 403: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentEndpointsUpdateError + = PostWorkspacesCurrentEndpointsUpdateErrors[keyof PostWorkspacesCurrentEndpointsUpdateErrors] + +export type PostWorkspacesCurrentEndpointsUpdateResponses = { + 200: EndpointUpdateResponse +} + +export type PostWorkspacesCurrentEndpointsUpdateResponse + = PostWorkspacesCurrentEndpointsUpdateResponses[keyof PostWorkspacesCurrentEndpointsUpdateResponses] + +export type DeleteWorkspacesCurrentEndpointsByIdData = { + body?: never + path: { + id: string + } + query?: never + url: '/workspaces/current/endpoints/{id}' +} + +export type DeleteWorkspacesCurrentEndpointsByIdErrors = { + 403: { + [key: string]: unknown + } +} + +export type DeleteWorkspacesCurrentEndpointsByIdError + = DeleteWorkspacesCurrentEndpointsByIdErrors[keyof DeleteWorkspacesCurrentEndpointsByIdErrors] + +export type DeleteWorkspacesCurrentEndpointsByIdResponses = { + 200: EndpointDeleteResponse +} + +export type DeleteWorkspacesCurrentEndpointsByIdResponse + = DeleteWorkspacesCurrentEndpointsByIdResponses[keyof DeleteWorkspacesCurrentEndpointsByIdResponses] + +export type PatchWorkspacesCurrentEndpointsByIdData = { + body: EndpointUpdatePayload + path: { + id: string + } + query?: never + url: '/workspaces/current/endpoints/{id}' +} + +export type PatchWorkspacesCurrentEndpointsByIdErrors = { + 403: { + [key: string]: unknown + } +} + +export type PatchWorkspacesCurrentEndpointsByIdError + = PatchWorkspacesCurrentEndpointsByIdErrors[keyof PatchWorkspacesCurrentEndpointsByIdErrors] + +export type PatchWorkspacesCurrentEndpointsByIdResponses = { + 200: EndpointUpdateResponse +} + +export type PatchWorkspacesCurrentEndpointsByIdResponse + = PatchWorkspacesCurrentEndpointsByIdResponses[keyof PatchWorkspacesCurrentEndpointsByIdResponses] + +export type GetWorkspacesCurrentMembersData = { + body?: never + path?: never + query?: never + url: '/workspaces/current/members' +} + +export type GetWorkspacesCurrentMembersResponses = { + 200: AccountWithRoleList +} + +export type GetWorkspacesCurrentMembersResponse + = GetWorkspacesCurrentMembersResponses[keyof GetWorkspacesCurrentMembersResponses] + +export type PostWorkspacesCurrentMembersInviteEmailData = { + body: MemberInvitePayload + path?: never + query?: never + url: '/workspaces/current/members/invite-email' +} + +export type PostWorkspacesCurrentMembersInviteEmailResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentMembersInviteEmailResponse + = PostWorkspacesCurrentMembersInviteEmailResponses[keyof PostWorkspacesCurrentMembersInviteEmailResponses] + +export type PostWorkspacesCurrentMembersOwnerTransferCheckData = { + body: OwnerTransferCheckPayload + path?: never + query?: never + url: '/workspaces/current/members/owner-transfer-check' +} + +export type PostWorkspacesCurrentMembersOwnerTransferCheckResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentMembersOwnerTransferCheckResponse + = PostWorkspacesCurrentMembersOwnerTransferCheckResponses[keyof PostWorkspacesCurrentMembersOwnerTransferCheckResponses] + +export type PostWorkspacesCurrentMembersSendOwnerTransferConfirmEmailData = { + body: OwnerTransferEmailPayload + path?: never + query?: never + url: '/workspaces/current/members/send-owner-transfer-confirm-email' +} + +export type PostWorkspacesCurrentMembersSendOwnerTransferConfirmEmailResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentMembersSendOwnerTransferConfirmEmailResponse + = PostWorkspacesCurrentMembersSendOwnerTransferConfirmEmailResponses[keyof PostWorkspacesCurrentMembersSendOwnerTransferConfirmEmailResponses] + +export type DeleteWorkspacesCurrentMembersByMemberIdData = { + body?: never + path: { + member_id: string + } + query?: never + url: '/workspaces/current/members/{member_id}' +} + +export type DeleteWorkspacesCurrentMembersByMemberIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type DeleteWorkspacesCurrentMembersByMemberIdResponse + = DeleteWorkspacesCurrentMembersByMemberIdResponses[keyof DeleteWorkspacesCurrentMembersByMemberIdResponses] + +export type PostWorkspacesCurrentMembersByMemberIdOwnerTransferData = { + body: OwnerTransferPayload + path: { + member_id: string + } + query?: never + url: '/workspaces/current/members/{member_id}/owner-transfer' +} + +export type PostWorkspacesCurrentMembersByMemberIdOwnerTransferResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentMembersByMemberIdOwnerTransferResponse + = PostWorkspacesCurrentMembersByMemberIdOwnerTransferResponses[keyof PostWorkspacesCurrentMembersByMemberIdOwnerTransferResponses] + +export type PutWorkspacesCurrentMembersByMemberIdUpdateRoleData = { + body: MemberRoleUpdatePayload + path: { + member_id: string + } + query?: never + url: '/workspaces/current/members/{member_id}/update-role' +} + +export type PutWorkspacesCurrentMembersByMemberIdUpdateRoleResponses = { + 200: { + [key: string]: unknown + } +} + +export type PutWorkspacesCurrentMembersByMemberIdUpdateRoleResponse + = PutWorkspacesCurrentMembersByMemberIdUpdateRoleResponses[keyof PutWorkspacesCurrentMembersByMemberIdUpdateRoleResponses] + +export type GetWorkspacesCurrentModelProvidersData = { + body?: never + path?: never + query?: { + model_type?: string | null + } + url: '/workspaces/current/model-providers' +} + +export type GetWorkspacesCurrentModelProvidersResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentModelProvidersResponse + = GetWorkspacesCurrentModelProvidersResponses[keyof GetWorkspacesCurrentModelProvidersResponses] + +export type GetWorkspacesCurrentModelProvidersByProviderCheckoutUrlData = { + body?: never + path: { + provider: string + } + query?: never + url: '/workspaces/current/model-providers/{provider}/checkout-url' +} + +export type GetWorkspacesCurrentModelProvidersByProviderCheckoutUrlResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentModelProvidersByProviderCheckoutUrlResponse + = GetWorkspacesCurrentModelProvidersByProviderCheckoutUrlResponses[keyof GetWorkspacesCurrentModelProvidersByProviderCheckoutUrlResponses] + +export type DeleteWorkspacesCurrentModelProvidersByProviderCredentialsData = { + body: ParserCredentialDelete + path: { + provider: string + } + query?: never + url: '/workspaces/current/model-providers/{provider}/credentials' +} + +export type DeleteWorkspacesCurrentModelProvidersByProviderCredentialsResponses = { + 200: { + [key: string]: unknown + } +} + +export type DeleteWorkspacesCurrentModelProvidersByProviderCredentialsResponse + = DeleteWorkspacesCurrentModelProvidersByProviderCredentialsResponses[keyof DeleteWorkspacesCurrentModelProvidersByProviderCredentialsResponses] + +export type GetWorkspacesCurrentModelProvidersByProviderCredentialsData = { + body?: never + path: { + provider: string + } + query?: { + credential_id?: string | null + } + url: '/workspaces/current/model-providers/{provider}/credentials' +} + +export type GetWorkspacesCurrentModelProvidersByProviderCredentialsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentModelProvidersByProviderCredentialsResponse + = GetWorkspacesCurrentModelProvidersByProviderCredentialsResponses[keyof GetWorkspacesCurrentModelProvidersByProviderCredentialsResponses] + +export type PostWorkspacesCurrentModelProvidersByProviderCredentialsData = { + body: ParserCredentialCreate + path: { + provider: string + } + query?: never + url: '/workspaces/current/model-providers/{provider}/credentials' +} + +export type PostWorkspacesCurrentModelProvidersByProviderCredentialsResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentModelProvidersByProviderCredentialsResponse + = PostWorkspacesCurrentModelProvidersByProviderCredentialsResponses[keyof PostWorkspacesCurrentModelProvidersByProviderCredentialsResponses] + +export type PutWorkspacesCurrentModelProvidersByProviderCredentialsData = { + body: ParserCredentialUpdate + path: { + provider: string + } + query?: never + url: '/workspaces/current/model-providers/{provider}/credentials' +} + +export type PutWorkspacesCurrentModelProvidersByProviderCredentialsResponses = { + 200: { + [key: string]: unknown + } +} + +export type PutWorkspacesCurrentModelProvidersByProviderCredentialsResponse + = PutWorkspacesCurrentModelProvidersByProviderCredentialsResponses[keyof PutWorkspacesCurrentModelProvidersByProviderCredentialsResponses] + +export type PostWorkspacesCurrentModelProvidersByProviderCredentialsSwitchData = { + body: ParserCredentialSwitch + path: { + provider: string + } + query?: never + url: '/workspaces/current/model-providers/{provider}/credentials/switch' +} + +export type PostWorkspacesCurrentModelProvidersByProviderCredentialsSwitchResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentModelProvidersByProviderCredentialsSwitchResponse + = PostWorkspacesCurrentModelProvidersByProviderCredentialsSwitchResponses[keyof PostWorkspacesCurrentModelProvidersByProviderCredentialsSwitchResponses] + +export type PostWorkspacesCurrentModelProvidersByProviderCredentialsValidateData = { + body: ParserCredentialValidate + path: { + provider: string + } + query?: never + url: '/workspaces/current/model-providers/{provider}/credentials/validate' +} + +export type PostWorkspacesCurrentModelProvidersByProviderCredentialsValidateResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentModelProvidersByProviderCredentialsValidateResponse + = PostWorkspacesCurrentModelProvidersByProviderCredentialsValidateResponses[keyof PostWorkspacesCurrentModelProvidersByProviderCredentialsValidateResponses] + +export type DeleteWorkspacesCurrentModelProvidersByProviderModelsData = { + body: ParserDeleteModels + path: { + provider: string + } + query?: never + url: '/workspaces/current/model-providers/{provider}/models' +} + +export type DeleteWorkspacesCurrentModelProvidersByProviderModelsResponses = { + 200: { + [key: string]: unknown + } +} + +export type DeleteWorkspacesCurrentModelProvidersByProviderModelsResponse + = DeleteWorkspacesCurrentModelProvidersByProviderModelsResponses[keyof DeleteWorkspacesCurrentModelProvidersByProviderModelsResponses] + +export type GetWorkspacesCurrentModelProvidersByProviderModelsData = { + body?: never + path: { + provider: string + } + query?: never + url: '/workspaces/current/model-providers/{provider}/models' +} + +export type GetWorkspacesCurrentModelProvidersByProviderModelsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentModelProvidersByProviderModelsResponse + = GetWorkspacesCurrentModelProvidersByProviderModelsResponses[keyof GetWorkspacesCurrentModelProvidersByProviderModelsResponses] + +export type PostWorkspacesCurrentModelProvidersByProviderModelsData = { + body: ParserPostModels + path: { + provider: string + } + query?: never + url: '/workspaces/current/model-providers/{provider}/models' +} + +export type PostWorkspacesCurrentModelProvidersByProviderModelsResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentModelProvidersByProviderModelsResponse + = PostWorkspacesCurrentModelProvidersByProviderModelsResponses[keyof PostWorkspacesCurrentModelProvidersByProviderModelsResponses] + +export type DeleteWorkspacesCurrentModelProvidersByProviderModelsCredentialsData = { + body: ParserDeleteCredential + path: { + provider: string + } + query?: never + url: '/workspaces/current/model-providers/{provider}/models/credentials' +} + +export type DeleteWorkspacesCurrentModelProvidersByProviderModelsCredentialsResponses = { + 200: { + [key: string]: unknown + } +} + +export type DeleteWorkspacesCurrentModelProvidersByProviderModelsCredentialsResponse + = DeleteWorkspacesCurrentModelProvidersByProviderModelsCredentialsResponses[keyof DeleteWorkspacesCurrentModelProvidersByProviderModelsCredentialsResponses] + +export type GetWorkspacesCurrentModelProvidersByProviderModelsCredentialsData = { + body?: never + path: { + provider: string + } + query: { + config_from?: string | null + credential_id?: string | null + model: string + model_type: string + } + url: '/workspaces/current/model-providers/{provider}/models/credentials' +} + +export type GetWorkspacesCurrentModelProvidersByProviderModelsCredentialsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentModelProvidersByProviderModelsCredentialsResponse + = GetWorkspacesCurrentModelProvidersByProviderModelsCredentialsResponses[keyof GetWorkspacesCurrentModelProvidersByProviderModelsCredentialsResponses] + +export type PostWorkspacesCurrentModelProvidersByProviderModelsCredentialsData = { + body: ParserCreateCredential + path: { + provider: string + } + query?: never + url: '/workspaces/current/model-providers/{provider}/models/credentials' +} + +export type PostWorkspacesCurrentModelProvidersByProviderModelsCredentialsResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentModelProvidersByProviderModelsCredentialsResponse + = PostWorkspacesCurrentModelProvidersByProviderModelsCredentialsResponses[keyof PostWorkspacesCurrentModelProvidersByProviderModelsCredentialsResponses] + +export type PutWorkspacesCurrentModelProvidersByProviderModelsCredentialsData = { + body: ParserUpdateCredential + path: { + provider: string + } + query?: never + url: '/workspaces/current/model-providers/{provider}/models/credentials' +} + +export type PutWorkspacesCurrentModelProvidersByProviderModelsCredentialsResponses = { + 200: { + [key: string]: unknown + } +} + +export type PutWorkspacesCurrentModelProvidersByProviderModelsCredentialsResponse + = PutWorkspacesCurrentModelProvidersByProviderModelsCredentialsResponses[keyof PutWorkspacesCurrentModelProvidersByProviderModelsCredentialsResponses] + +export type PostWorkspacesCurrentModelProvidersByProviderModelsCredentialsSwitchData = { + body: ParserSwitch + path: { + provider: string + } + query?: never + url: '/workspaces/current/model-providers/{provider}/models/credentials/switch' +} + +export type PostWorkspacesCurrentModelProvidersByProviderModelsCredentialsSwitchResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentModelProvidersByProviderModelsCredentialsSwitchResponse + = PostWorkspacesCurrentModelProvidersByProviderModelsCredentialsSwitchResponses[keyof PostWorkspacesCurrentModelProvidersByProviderModelsCredentialsSwitchResponses] + +export type PostWorkspacesCurrentModelProvidersByProviderModelsCredentialsValidateData = { + body: ParserValidate + path: { + provider: string + } + query?: never + url: '/workspaces/current/model-providers/{provider}/models/credentials/validate' +} + +export type PostWorkspacesCurrentModelProvidersByProviderModelsCredentialsValidateResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentModelProvidersByProviderModelsCredentialsValidateResponse + = PostWorkspacesCurrentModelProvidersByProviderModelsCredentialsValidateResponses[keyof PostWorkspacesCurrentModelProvidersByProviderModelsCredentialsValidateResponses] + +export type PatchWorkspacesCurrentModelProvidersByProviderModelsDisableData = { + body: ParserDeleteModels + path: { + provider: string + } + query?: never + url: '/workspaces/current/model-providers/{provider}/models/disable' +} + +export type PatchWorkspacesCurrentModelProvidersByProviderModelsDisableResponses = { + 200: { + [key: string]: unknown + } +} + +export type PatchWorkspacesCurrentModelProvidersByProviderModelsDisableResponse + = PatchWorkspacesCurrentModelProvidersByProviderModelsDisableResponses[keyof PatchWorkspacesCurrentModelProvidersByProviderModelsDisableResponses] + +export type PatchWorkspacesCurrentModelProvidersByProviderModelsEnableData = { + body: ParserDeleteModels + path: { + provider: string + } + query?: never + url: '/workspaces/current/model-providers/{provider}/models/enable' +} + +export type PatchWorkspacesCurrentModelProvidersByProviderModelsEnableResponses = { + 200: { + [key: string]: unknown + } +} + +export type PatchWorkspacesCurrentModelProvidersByProviderModelsEnableResponse + = PatchWorkspacesCurrentModelProvidersByProviderModelsEnableResponses[keyof PatchWorkspacesCurrentModelProvidersByProviderModelsEnableResponses] + +export type PostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsCredentialsValidateData + = { + body: LoadBalancingCredentialPayload + path: { + provider: string + } + query?: never + url: '/workspaces/current/model-providers/{provider}/models/load-balancing-configs/credentials-validate' + } + +export type PostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsCredentialsValidateResponses + = { + 200: { + [key: string]: unknown + } + } + +export type PostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsCredentialsValidateResponse + = PostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsCredentialsValidateResponses[keyof PostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsCredentialsValidateResponses] + +export type PostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsByConfigIdCredentialsValidateData + = { + body: LoadBalancingCredentialPayload + path: { + provider: string + config_id: string + } + query?: never + url: '/workspaces/current/model-providers/{provider}/models/load-balancing-configs/{config_id}/credentials-validate' + } + +export type PostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsByConfigIdCredentialsValidateResponses + = { + 200: { + [key: string]: unknown + } + } + +export type PostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsByConfigIdCredentialsValidateResponse + = PostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsByConfigIdCredentialsValidateResponses[keyof PostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsByConfigIdCredentialsValidateResponses] + +export type GetWorkspacesCurrentModelProvidersByProviderModelsParameterRulesData = { + body?: never + path: { + provider: string + } + query: { + model: string + } + url: '/workspaces/current/model-providers/{provider}/models/parameter-rules' +} + +export type GetWorkspacesCurrentModelProvidersByProviderModelsParameterRulesResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentModelProvidersByProviderModelsParameterRulesResponse + = GetWorkspacesCurrentModelProvidersByProviderModelsParameterRulesResponses[keyof GetWorkspacesCurrentModelProvidersByProviderModelsParameterRulesResponses] + +export type PostWorkspacesCurrentModelProvidersByProviderPreferredProviderTypeData = { + body: ParserPreferredProviderType + path: { + provider: string + } + query?: never + url: '/workspaces/current/model-providers/{provider}/preferred-provider-type' +} + +export type PostWorkspacesCurrentModelProvidersByProviderPreferredProviderTypeResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentModelProvidersByProviderPreferredProviderTypeResponse + = PostWorkspacesCurrentModelProvidersByProviderPreferredProviderTypeResponses[keyof PostWorkspacesCurrentModelProvidersByProviderPreferredProviderTypeResponses] + +export type GetWorkspacesCurrentModelsModelTypesByModelTypeData = { + body?: never + path: { + model_type: string + } + query?: never + url: '/workspaces/current/models/model-types/{model_type}' +} + +export type GetWorkspacesCurrentModelsModelTypesByModelTypeResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentModelsModelTypesByModelTypeResponse + = GetWorkspacesCurrentModelsModelTypesByModelTypeResponses[keyof GetWorkspacesCurrentModelsModelTypesByModelTypeResponses] + +export type GetWorkspacesCurrentPermissionData = { + body?: never + path?: never + query?: never + url: '/workspaces/current/permission' +} + +export type GetWorkspacesCurrentPermissionResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentPermissionResponse + = GetWorkspacesCurrentPermissionResponses[keyof GetWorkspacesCurrentPermissionResponses] + +export type GetWorkspacesCurrentPluginAssetData = { + body?: never + path?: never + query: { + file_name: string + plugin_unique_identifier: string + } + url: '/workspaces/current/plugin/asset' +} + +export type GetWorkspacesCurrentPluginAssetResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentPluginAssetResponse + = GetWorkspacesCurrentPluginAssetResponses[keyof GetWorkspacesCurrentPluginAssetResponses] + +export type GetWorkspacesCurrentPluginDebuggingKeyData = { + body?: never + path?: never + query?: never + url: '/workspaces/current/plugin/debugging-key' +} + +export type GetWorkspacesCurrentPluginDebuggingKeyResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentPluginDebuggingKeyResponse + = GetWorkspacesCurrentPluginDebuggingKeyResponses[keyof GetWorkspacesCurrentPluginDebuggingKeyResponses] + +export type GetWorkspacesCurrentPluginFetchManifestData = { + body?: never + path?: never + query: { + plugin_unique_identifier: string + } + url: '/workspaces/current/plugin/fetch-manifest' +} + +export type GetWorkspacesCurrentPluginFetchManifestResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentPluginFetchManifestResponse + = GetWorkspacesCurrentPluginFetchManifestResponses[keyof GetWorkspacesCurrentPluginFetchManifestResponses] + +export type GetWorkspacesCurrentPluginIconData = { + body?: never + path?: never + query: { + filename: string + tenant_id: string + } + url: '/workspaces/current/plugin/icon' +} + +export type GetWorkspacesCurrentPluginIconResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentPluginIconResponse + = GetWorkspacesCurrentPluginIconResponses[keyof GetWorkspacesCurrentPluginIconResponses] + +export type PostWorkspacesCurrentPluginInstallGithubData = { + body: ParserGithubInstall + path?: never + query?: never + url: '/workspaces/current/plugin/install/github' +} + +export type PostWorkspacesCurrentPluginInstallGithubResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentPluginInstallGithubResponse + = PostWorkspacesCurrentPluginInstallGithubResponses[keyof PostWorkspacesCurrentPluginInstallGithubResponses] + +export type PostWorkspacesCurrentPluginInstallMarketplaceData = { + body: ParserPluginIdentifiers + path?: never + query?: never + url: '/workspaces/current/plugin/install/marketplace' +} + +export type PostWorkspacesCurrentPluginInstallMarketplaceResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentPluginInstallMarketplaceResponse + = PostWorkspacesCurrentPluginInstallMarketplaceResponses[keyof PostWorkspacesCurrentPluginInstallMarketplaceResponses] + +export type PostWorkspacesCurrentPluginInstallPkgData = { + body: ParserPluginIdentifiers + path?: never + query?: never + url: '/workspaces/current/plugin/install/pkg' +} + +export type PostWorkspacesCurrentPluginInstallPkgResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentPluginInstallPkgResponse + = PostWorkspacesCurrentPluginInstallPkgResponses[keyof PostWorkspacesCurrentPluginInstallPkgResponses] + +export type GetWorkspacesCurrentPluginListData = { + body?: never + path?: never + query?: { + page?: number + page_size?: number + } + url: '/workspaces/current/plugin/list' +} + +export type GetWorkspacesCurrentPluginListResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentPluginListResponse + = GetWorkspacesCurrentPluginListResponses[keyof GetWorkspacesCurrentPluginListResponses] + +export type PostWorkspacesCurrentPluginListInstallationsIdsData = { + body: ParserLatest + path?: never + query?: never + url: '/workspaces/current/plugin/list/installations/ids' +} + +export type PostWorkspacesCurrentPluginListInstallationsIdsResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentPluginListInstallationsIdsResponse + = PostWorkspacesCurrentPluginListInstallationsIdsResponses[keyof PostWorkspacesCurrentPluginListInstallationsIdsResponses] + +export type PostWorkspacesCurrentPluginListLatestVersionsData = { + body: ParserLatest + path?: never + query?: never + url: '/workspaces/current/plugin/list/latest-versions' +} + +export type PostWorkspacesCurrentPluginListLatestVersionsResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentPluginListLatestVersionsResponse + = PostWorkspacesCurrentPluginListLatestVersionsResponses[keyof PostWorkspacesCurrentPluginListLatestVersionsResponses] + +export type GetWorkspacesCurrentPluginMarketplacePkgData = { + body?: never + path?: never + query: { + plugin_unique_identifier: string + } + url: '/workspaces/current/plugin/marketplace/pkg' +} + +export type GetWorkspacesCurrentPluginMarketplacePkgResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentPluginMarketplacePkgResponse + = GetWorkspacesCurrentPluginMarketplacePkgResponses[keyof GetWorkspacesCurrentPluginMarketplacePkgResponses] + +export type GetWorkspacesCurrentPluginParametersDynamicOptionsData = { + body?: never + path?: never + query: { + action: string + credential_id?: string | null + parameter: string + plugin_id: string + provider: string + provider_type: 'tool' | 'trigger' + } + url: '/workspaces/current/plugin/parameters/dynamic-options' +} + +export type GetWorkspacesCurrentPluginParametersDynamicOptionsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentPluginParametersDynamicOptionsResponse + = GetWorkspacesCurrentPluginParametersDynamicOptionsResponses[keyof GetWorkspacesCurrentPluginParametersDynamicOptionsResponses] + +export type PostWorkspacesCurrentPluginParametersDynamicOptionsWithCredentialsData = { + body: ParserDynamicOptionsWithCredentials + path?: never + query?: never + url: '/workspaces/current/plugin/parameters/dynamic-options-with-credentials' +} + +export type PostWorkspacesCurrentPluginParametersDynamicOptionsWithCredentialsResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentPluginParametersDynamicOptionsWithCredentialsResponse + = PostWorkspacesCurrentPluginParametersDynamicOptionsWithCredentialsResponses[keyof PostWorkspacesCurrentPluginParametersDynamicOptionsWithCredentialsResponses] + +export type PostWorkspacesCurrentPluginPermissionChangeData = { + body: ParserPermissionChange + path?: never + query?: never + url: '/workspaces/current/plugin/permission/change' +} + +export type PostWorkspacesCurrentPluginPermissionChangeResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentPluginPermissionChangeResponse + = PostWorkspacesCurrentPluginPermissionChangeResponses[keyof PostWorkspacesCurrentPluginPermissionChangeResponses] + +export type GetWorkspacesCurrentPluginPermissionFetchData = { + body?: never + path?: never + query?: never + url: '/workspaces/current/plugin/permission/fetch' +} + +export type GetWorkspacesCurrentPluginPermissionFetchResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentPluginPermissionFetchResponse + = GetWorkspacesCurrentPluginPermissionFetchResponses[keyof GetWorkspacesCurrentPluginPermissionFetchResponses] + +export type PostWorkspacesCurrentPluginPreferencesAutoupgradeExcludeData = { + body: ParserExcludePlugin + path?: never + query?: never + url: '/workspaces/current/plugin/preferences/autoupgrade/exclude' +} + +export type PostWorkspacesCurrentPluginPreferencesAutoupgradeExcludeResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentPluginPreferencesAutoupgradeExcludeResponse + = PostWorkspacesCurrentPluginPreferencesAutoupgradeExcludeResponses[keyof PostWorkspacesCurrentPluginPreferencesAutoupgradeExcludeResponses] + +export type PostWorkspacesCurrentPluginPreferencesChangeData = { + body: ParserPreferencesChange + path?: never + query?: never + url: '/workspaces/current/plugin/preferences/change' +} + +export type PostWorkspacesCurrentPluginPreferencesChangeResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentPluginPreferencesChangeResponse + = PostWorkspacesCurrentPluginPreferencesChangeResponses[keyof PostWorkspacesCurrentPluginPreferencesChangeResponses] + +export type GetWorkspacesCurrentPluginPreferencesFetchData = { + body?: never + path?: never + query?: never + url: '/workspaces/current/plugin/preferences/fetch' +} + +export type GetWorkspacesCurrentPluginPreferencesFetchResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentPluginPreferencesFetchResponse + = GetWorkspacesCurrentPluginPreferencesFetchResponses[keyof GetWorkspacesCurrentPluginPreferencesFetchResponses] + +export type GetWorkspacesCurrentPluginReadmeData = { + body?: never + path?: never + query: { + language?: string + plugin_unique_identifier: string + } + url: '/workspaces/current/plugin/readme' +} + +export type GetWorkspacesCurrentPluginReadmeResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentPluginReadmeResponse + = GetWorkspacesCurrentPluginReadmeResponses[keyof GetWorkspacesCurrentPluginReadmeResponses] + +export type GetWorkspacesCurrentPluginTasksData = { + body?: never + path?: never + query?: { + page?: number + page_size?: number + } + url: '/workspaces/current/plugin/tasks' +} + +export type GetWorkspacesCurrentPluginTasksResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentPluginTasksResponse + = GetWorkspacesCurrentPluginTasksResponses[keyof GetWorkspacesCurrentPluginTasksResponses] + +export type PostWorkspacesCurrentPluginTasksDeleteAllData = { + body?: never + path?: never + query?: never + url: '/workspaces/current/plugin/tasks/delete_all' +} + +export type PostWorkspacesCurrentPluginTasksDeleteAllResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentPluginTasksDeleteAllResponse + = PostWorkspacesCurrentPluginTasksDeleteAllResponses[keyof PostWorkspacesCurrentPluginTasksDeleteAllResponses] + +export type GetWorkspacesCurrentPluginTasksByTaskIdData = { + body?: never + path: { + task_id: string + } + query?: never + url: '/workspaces/current/plugin/tasks/{task_id}' +} + +export type GetWorkspacesCurrentPluginTasksByTaskIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentPluginTasksByTaskIdResponse + = GetWorkspacesCurrentPluginTasksByTaskIdResponses[keyof GetWorkspacesCurrentPluginTasksByTaskIdResponses] + +export type PostWorkspacesCurrentPluginTasksByTaskIdDeleteData = { + body?: never + path: { + task_id: string + } + query?: never + url: '/workspaces/current/plugin/tasks/{task_id}/delete' +} + +export type PostWorkspacesCurrentPluginTasksByTaskIdDeleteResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentPluginTasksByTaskIdDeleteResponse + = PostWorkspacesCurrentPluginTasksByTaskIdDeleteResponses[keyof PostWorkspacesCurrentPluginTasksByTaskIdDeleteResponses] + +export type PostWorkspacesCurrentPluginTasksByTaskIdDeleteByIdentifierData = { + body?: never + path: { + task_id: string + identifier: string + } + query?: never + url: '/workspaces/current/plugin/tasks/{task_id}/delete/{identifier}' +} + +export type PostWorkspacesCurrentPluginTasksByTaskIdDeleteByIdentifierResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentPluginTasksByTaskIdDeleteByIdentifierResponse + = PostWorkspacesCurrentPluginTasksByTaskIdDeleteByIdentifierResponses[keyof PostWorkspacesCurrentPluginTasksByTaskIdDeleteByIdentifierResponses] + +export type PostWorkspacesCurrentPluginUninstallData = { + body: ParserUninstall + path?: never + query?: never + url: '/workspaces/current/plugin/uninstall' +} + +export type PostWorkspacesCurrentPluginUninstallResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentPluginUninstallResponse + = PostWorkspacesCurrentPluginUninstallResponses[keyof PostWorkspacesCurrentPluginUninstallResponses] + +export type PostWorkspacesCurrentPluginUpgradeGithubData = { + body: ParserGithubUpgrade + path?: never + query?: never + url: '/workspaces/current/plugin/upgrade/github' +} + +export type PostWorkspacesCurrentPluginUpgradeGithubResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentPluginUpgradeGithubResponse + = PostWorkspacesCurrentPluginUpgradeGithubResponses[keyof PostWorkspacesCurrentPluginUpgradeGithubResponses] + +export type PostWorkspacesCurrentPluginUpgradeMarketplaceData = { + body: ParserMarketplaceUpgrade + path?: never + query?: never + url: '/workspaces/current/plugin/upgrade/marketplace' +} + +export type PostWorkspacesCurrentPluginUpgradeMarketplaceResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentPluginUpgradeMarketplaceResponse + = PostWorkspacesCurrentPluginUpgradeMarketplaceResponses[keyof PostWorkspacesCurrentPluginUpgradeMarketplaceResponses] + +export type PostWorkspacesCurrentPluginUploadBundleData = { + body?: never + path?: never + query?: never + url: '/workspaces/current/plugin/upload/bundle' +} + +export type PostWorkspacesCurrentPluginUploadBundleResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentPluginUploadBundleResponse + = PostWorkspacesCurrentPluginUploadBundleResponses[keyof PostWorkspacesCurrentPluginUploadBundleResponses] + +export type PostWorkspacesCurrentPluginUploadGithubData = { + body: ParserGithubUpload + path?: never + query?: never + url: '/workspaces/current/plugin/upload/github' +} + +export type PostWorkspacesCurrentPluginUploadGithubResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentPluginUploadGithubResponse + = PostWorkspacesCurrentPluginUploadGithubResponses[keyof PostWorkspacesCurrentPluginUploadGithubResponses] + +export type PostWorkspacesCurrentPluginUploadPkgData = { + body?: never + path?: never + query?: never + url: '/workspaces/current/plugin/upload/pkg' +} + +export type PostWorkspacesCurrentPluginUploadPkgResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentPluginUploadPkgResponse + = PostWorkspacesCurrentPluginUploadPkgResponses[keyof PostWorkspacesCurrentPluginUploadPkgResponses] + +export type GetWorkspacesCurrentToolLabelsData = { + body?: never + path?: never + query?: never + url: '/workspaces/current/tool-labels' +} + +export type GetWorkspacesCurrentToolLabelsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentToolLabelsResponse + = GetWorkspacesCurrentToolLabelsResponses[keyof GetWorkspacesCurrentToolLabelsResponses] + +export type PostWorkspacesCurrentToolProviderApiAddData = { + body: ApiToolProviderAddPayload + path?: never + query?: never + url: '/workspaces/current/tool-provider/api/add' +} + +export type PostWorkspacesCurrentToolProviderApiAddResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentToolProviderApiAddResponse + = PostWorkspacesCurrentToolProviderApiAddResponses[keyof PostWorkspacesCurrentToolProviderApiAddResponses] + +export type PostWorkspacesCurrentToolProviderApiDeleteData = { + body: ApiToolProviderDeletePayload + path?: never + query?: never + url: '/workspaces/current/tool-provider/api/delete' +} + +export type PostWorkspacesCurrentToolProviderApiDeleteResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentToolProviderApiDeleteResponse + = PostWorkspacesCurrentToolProviderApiDeleteResponses[keyof PostWorkspacesCurrentToolProviderApiDeleteResponses] + +export type GetWorkspacesCurrentToolProviderApiGetData = { + body?: never + path?: never + query?: never + url: '/workspaces/current/tool-provider/api/get' +} + +export type GetWorkspacesCurrentToolProviderApiGetResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentToolProviderApiGetResponse + = GetWorkspacesCurrentToolProviderApiGetResponses[keyof GetWorkspacesCurrentToolProviderApiGetResponses] + +export type GetWorkspacesCurrentToolProviderApiRemoteData = { + body?: never + path?: never + query?: never + url: '/workspaces/current/tool-provider/api/remote' +} + +export type GetWorkspacesCurrentToolProviderApiRemoteResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentToolProviderApiRemoteResponse + = GetWorkspacesCurrentToolProviderApiRemoteResponses[keyof GetWorkspacesCurrentToolProviderApiRemoteResponses] + +export type PostWorkspacesCurrentToolProviderApiSchemaData = { + body: ApiToolSchemaPayload + path?: never + query?: never + url: '/workspaces/current/tool-provider/api/schema' +} + +export type PostWorkspacesCurrentToolProviderApiSchemaResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentToolProviderApiSchemaResponse + = PostWorkspacesCurrentToolProviderApiSchemaResponses[keyof PostWorkspacesCurrentToolProviderApiSchemaResponses] + +export type PostWorkspacesCurrentToolProviderApiTestPreData = { + body: ApiToolTestPayload + path?: never + query?: never + url: '/workspaces/current/tool-provider/api/test/pre' +} + +export type PostWorkspacesCurrentToolProviderApiTestPreResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentToolProviderApiTestPreResponse + = PostWorkspacesCurrentToolProviderApiTestPreResponses[keyof PostWorkspacesCurrentToolProviderApiTestPreResponses] + +export type GetWorkspacesCurrentToolProviderApiToolsData = { + body?: never + path?: never + query?: never + url: '/workspaces/current/tool-provider/api/tools' +} + +export type GetWorkspacesCurrentToolProviderApiToolsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentToolProviderApiToolsResponse + = GetWorkspacesCurrentToolProviderApiToolsResponses[keyof GetWorkspacesCurrentToolProviderApiToolsResponses] + +export type PostWorkspacesCurrentToolProviderApiUpdateData = { + body: ApiToolProviderUpdatePayload + path?: never + query?: never + url: '/workspaces/current/tool-provider/api/update' +} + +export type PostWorkspacesCurrentToolProviderApiUpdateResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentToolProviderApiUpdateResponse + = PostWorkspacesCurrentToolProviderApiUpdateResponses[keyof PostWorkspacesCurrentToolProviderApiUpdateResponses] + +export type PostWorkspacesCurrentToolProviderBuiltinByProviderAddData = { + body: BuiltinToolAddPayload + path: { + provider: string + } + query?: never + url: '/workspaces/current/tool-provider/builtin/{provider}/add' +} + +export type PostWorkspacesCurrentToolProviderBuiltinByProviderAddResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentToolProviderBuiltinByProviderAddResponse + = PostWorkspacesCurrentToolProviderBuiltinByProviderAddResponses[keyof PostWorkspacesCurrentToolProviderBuiltinByProviderAddResponses] + +export type GetWorkspacesCurrentToolProviderBuiltinByProviderCredentialInfoData = { + body?: never + path: { + provider: string + } + query?: never + url: '/workspaces/current/tool-provider/builtin/{provider}/credential/info' +} + +export type GetWorkspacesCurrentToolProviderBuiltinByProviderCredentialInfoResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentToolProviderBuiltinByProviderCredentialInfoResponse + = GetWorkspacesCurrentToolProviderBuiltinByProviderCredentialInfoResponses[keyof GetWorkspacesCurrentToolProviderBuiltinByProviderCredentialInfoResponses] + +export type GetWorkspacesCurrentToolProviderBuiltinByProviderCredentialSchemaByCredentialTypeData + = { + body?: never + path: { + provider: string + credential_type: string + } + query?: never + url: '/workspaces/current/tool-provider/builtin/{provider}/credential/schema/{credential_type}' + } + +export type GetWorkspacesCurrentToolProviderBuiltinByProviderCredentialSchemaByCredentialTypeResponses + = { + 200: { + [key: string]: unknown + } + } + +export type GetWorkspacesCurrentToolProviderBuiltinByProviderCredentialSchemaByCredentialTypeResponse + = GetWorkspacesCurrentToolProviderBuiltinByProviderCredentialSchemaByCredentialTypeResponses[keyof GetWorkspacesCurrentToolProviderBuiltinByProviderCredentialSchemaByCredentialTypeResponses] + +export type GetWorkspacesCurrentToolProviderBuiltinByProviderCredentialsData = { + body?: never + path: { + provider: string + } + query?: never + url: '/workspaces/current/tool-provider/builtin/{provider}/credentials' +} + +export type GetWorkspacesCurrentToolProviderBuiltinByProviderCredentialsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentToolProviderBuiltinByProviderCredentialsResponse + = GetWorkspacesCurrentToolProviderBuiltinByProviderCredentialsResponses[keyof GetWorkspacesCurrentToolProviderBuiltinByProviderCredentialsResponses] + +export type PostWorkspacesCurrentToolProviderBuiltinByProviderDefaultCredentialData = { + body: BuiltinProviderDefaultCredentialPayload + path: { + provider: string + } + query?: never + url: '/workspaces/current/tool-provider/builtin/{provider}/default-credential' +} + +export type PostWorkspacesCurrentToolProviderBuiltinByProviderDefaultCredentialResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentToolProviderBuiltinByProviderDefaultCredentialResponse + = PostWorkspacesCurrentToolProviderBuiltinByProviderDefaultCredentialResponses[keyof PostWorkspacesCurrentToolProviderBuiltinByProviderDefaultCredentialResponses] + +export type PostWorkspacesCurrentToolProviderBuiltinByProviderDeleteData = { + body: BuiltinToolCredentialDeletePayload + path: { + provider: string + } + query?: never + url: '/workspaces/current/tool-provider/builtin/{provider}/delete' +} + +export type PostWorkspacesCurrentToolProviderBuiltinByProviderDeleteResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentToolProviderBuiltinByProviderDeleteResponse + = PostWorkspacesCurrentToolProviderBuiltinByProviderDeleteResponses[keyof PostWorkspacesCurrentToolProviderBuiltinByProviderDeleteResponses] + +export type GetWorkspacesCurrentToolProviderBuiltinByProviderIconData = { + body?: never + path: { + provider: string + } + query?: never + url: '/workspaces/current/tool-provider/builtin/{provider}/icon' +} + +export type GetWorkspacesCurrentToolProviderBuiltinByProviderIconResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentToolProviderBuiltinByProviderIconResponse + = GetWorkspacesCurrentToolProviderBuiltinByProviderIconResponses[keyof GetWorkspacesCurrentToolProviderBuiltinByProviderIconResponses] + +export type GetWorkspacesCurrentToolProviderBuiltinByProviderInfoData = { + body?: never + path: { + provider: string + } + query?: never + url: '/workspaces/current/tool-provider/builtin/{provider}/info' +} + +export type GetWorkspacesCurrentToolProviderBuiltinByProviderInfoResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentToolProviderBuiltinByProviderInfoResponse + = GetWorkspacesCurrentToolProviderBuiltinByProviderInfoResponses[keyof GetWorkspacesCurrentToolProviderBuiltinByProviderInfoResponses] + +export type GetWorkspacesCurrentToolProviderBuiltinByProviderOauthClientSchemaData = { + body?: never + path: { + provider: string + } + query?: never + url: '/workspaces/current/tool-provider/builtin/{provider}/oauth/client-schema' +} + +export type GetWorkspacesCurrentToolProviderBuiltinByProviderOauthClientSchemaResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentToolProviderBuiltinByProviderOauthClientSchemaResponse + = GetWorkspacesCurrentToolProviderBuiltinByProviderOauthClientSchemaResponses[keyof GetWorkspacesCurrentToolProviderBuiltinByProviderOauthClientSchemaResponses] + +export type DeleteWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientData = { + body?: never + path: { + provider: string + } + query?: never + url: '/workspaces/current/tool-provider/builtin/{provider}/oauth/custom-client' +} + +export type DeleteWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientResponses = { + 200: { + [key: string]: unknown + } +} + +export type DeleteWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientResponse + = DeleteWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientResponses[keyof DeleteWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientResponses] + +export type GetWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientData = { + body?: never + path: { + provider: string + } + query?: never + url: '/workspaces/current/tool-provider/builtin/{provider}/oauth/custom-client' +} + +export type GetWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientResponse + = GetWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientResponses[keyof GetWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientResponses] + +export type PostWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientData = { + body: ToolOAuthCustomClientPayload + path: { + provider: string + } + query?: never + url: '/workspaces/current/tool-provider/builtin/{provider}/oauth/custom-client' +} + +export type PostWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientResponse + = PostWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientResponses[keyof PostWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientResponses] + +export type GetWorkspacesCurrentToolProviderBuiltinByProviderToolsData = { + body?: never + path: { + provider: string + } + query?: never + url: '/workspaces/current/tool-provider/builtin/{provider}/tools' +} + +export type GetWorkspacesCurrentToolProviderBuiltinByProviderToolsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentToolProviderBuiltinByProviderToolsResponse + = GetWorkspacesCurrentToolProviderBuiltinByProviderToolsResponses[keyof GetWorkspacesCurrentToolProviderBuiltinByProviderToolsResponses] + +export type PostWorkspacesCurrentToolProviderBuiltinByProviderUpdateData = { + body: BuiltinToolUpdatePayload + path: { + provider: string + } + query?: never + url: '/workspaces/current/tool-provider/builtin/{provider}/update' +} + +export type PostWorkspacesCurrentToolProviderBuiltinByProviderUpdateResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentToolProviderBuiltinByProviderUpdateResponse + = PostWorkspacesCurrentToolProviderBuiltinByProviderUpdateResponses[keyof PostWorkspacesCurrentToolProviderBuiltinByProviderUpdateResponses] + +export type DeleteWorkspacesCurrentToolProviderMcpData = { + body: McpProviderDeletePayload + path?: never + query?: never + url: '/workspaces/current/tool-provider/mcp' +} + +export type DeleteWorkspacesCurrentToolProviderMcpResponses = { + 200: { + [key: string]: unknown + } +} + +export type DeleteWorkspacesCurrentToolProviderMcpResponse + = DeleteWorkspacesCurrentToolProviderMcpResponses[keyof DeleteWorkspacesCurrentToolProviderMcpResponses] + +export type PostWorkspacesCurrentToolProviderMcpData = { + body: McpProviderCreatePayload + path?: never + query?: never + url: '/workspaces/current/tool-provider/mcp' +} + +export type PostWorkspacesCurrentToolProviderMcpResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentToolProviderMcpResponse + = PostWorkspacesCurrentToolProviderMcpResponses[keyof PostWorkspacesCurrentToolProviderMcpResponses] + +export type PutWorkspacesCurrentToolProviderMcpData = { + body: McpProviderUpdatePayload + path?: never + query?: never + url: '/workspaces/current/tool-provider/mcp' +} + +export type PutWorkspacesCurrentToolProviderMcpResponses = { + 200: { + [key: string]: unknown + } +} + +export type PutWorkspacesCurrentToolProviderMcpResponse + = PutWorkspacesCurrentToolProviderMcpResponses[keyof PutWorkspacesCurrentToolProviderMcpResponses] + +export type PostWorkspacesCurrentToolProviderMcpAuthData = { + body: McpAuthPayload + path?: never + query?: never + url: '/workspaces/current/tool-provider/mcp/auth' +} + +export type PostWorkspacesCurrentToolProviderMcpAuthResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentToolProviderMcpAuthResponse + = PostWorkspacesCurrentToolProviderMcpAuthResponses[keyof PostWorkspacesCurrentToolProviderMcpAuthResponses] + +export type GetWorkspacesCurrentToolProviderMcpToolsByProviderIdData = { + body?: never + path: { + provider_id: string + } + query?: never + url: '/workspaces/current/tool-provider/mcp/tools/{provider_id}' +} + +export type GetWorkspacesCurrentToolProviderMcpToolsByProviderIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentToolProviderMcpToolsByProviderIdResponse + = GetWorkspacesCurrentToolProviderMcpToolsByProviderIdResponses[keyof GetWorkspacesCurrentToolProviderMcpToolsByProviderIdResponses] + +export type GetWorkspacesCurrentToolProviderMcpUpdateByProviderIdData = { + body?: never + path: { + provider_id: string + } + query?: never + url: '/workspaces/current/tool-provider/mcp/update/{provider_id}' +} + +export type GetWorkspacesCurrentToolProviderMcpUpdateByProviderIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentToolProviderMcpUpdateByProviderIdResponse + = GetWorkspacesCurrentToolProviderMcpUpdateByProviderIdResponses[keyof GetWorkspacesCurrentToolProviderMcpUpdateByProviderIdResponses] + +export type PostWorkspacesCurrentToolProviderWorkflowCreateData = { + body: WorkflowToolCreatePayload + path?: never + query?: never + url: '/workspaces/current/tool-provider/workflow/create' +} + +export type PostWorkspacesCurrentToolProviderWorkflowCreateResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentToolProviderWorkflowCreateResponse + = PostWorkspacesCurrentToolProviderWorkflowCreateResponses[keyof PostWorkspacesCurrentToolProviderWorkflowCreateResponses] + +export type PostWorkspacesCurrentToolProviderWorkflowDeleteData = { + body: WorkflowToolDeletePayload + path?: never + query?: never + url: '/workspaces/current/tool-provider/workflow/delete' +} + +export type PostWorkspacesCurrentToolProviderWorkflowDeleteResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentToolProviderWorkflowDeleteResponse + = PostWorkspacesCurrentToolProviderWorkflowDeleteResponses[keyof PostWorkspacesCurrentToolProviderWorkflowDeleteResponses] + +export type GetWorkspacesCurrentToolProviderWorkflowGetData = { + body?: never + path?: never + query?: never + url: '/workspaces/current/tool-provider/workflow/get' +} + +export type GetWorkspacesCurrentToolProviderWorkflowGetResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentToolProviderWorkflowGetResponse + = GetWorkspacesCurrentToolProviderWorkflowGetResponses[keyof GetWorkspacesCurrentToolProviderWorkflowGetResponses] + +export type GetWorkspacesCurrentToolProviderWorkflowToolsData = { + body?: never + path?: never + query?: never + url: '/workspaces/current/tool-provider/workflow/tools' +} + +export type GetWorkspacesCurrentToolProviderWorkflowToolsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentToolProviderWorkflowToolsResponse + = GetWorkspacesCurrentToolProviderWorkflowToolsResponses[keyof GetWorkspacesCurrentToolProviderWorkflowToolsResponses] + +export type PostWorkspacesCurrentToolProviderWorkflowUpdateData = { + body: WorkflowToolUpdatePayload + path?: never + query?: never + url: '/workspaces/current/tool-provider/workflow/update' +} + +export type PostWorkspacesCurrentToolProviderWorkflowUpdateResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentToolProviderWorkflowUpdateResponse + = PostWorkspacesCurrentToolProviderWorkflowUpdateResponses[keyof PostWorkspacesCurrentToolProviderWorkflowUpdateResponses] + +export type GetWorkspacesCurrentToolProvidersData = { + body?: never + path?: never + query?: never + url: '/workspaces/current/tool-providers' +} + +export type GetWorkspacesCurrentToolProvidersResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentToolProvidersResponse + = GetWorkspacesCurrentToolProvidersResponses[keyof GetWorkspacesCurrentToolProvidersResponses] + +export type GetWorkspacesCurrentToolsApiData = { + body?: never + path?: never + query?: never + url: '/workspaces/current/tools/api' +} + +export type GetWorkspacesCurrentToolsApiResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentToolsApiResponse + = GetWorkspacesCurrentToolsApiResponses[keyof GetWorkspacesCurrentToolsApiResponses] + +export type GetWorkspacesCurrentToolsBuiltinData = { + body?: never + path?: never + query?: never + url: '/workspaces/current/tools/builtin' +} + +export type GetWorkspacesCurrentToolsBuiltinResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentToolsBuiltinResponse + = GetWorkspacesCurrentToolsBuiltinResponses[keyof GetWorkspacesCurrentToolsBuiltinResponses] + +export type GetWorkspacesCurrentToolsMcpData = { + body?: never + path?: never + query?: never + url: '/workspaces/current/tools/mcp' +} + +export type GetWorkspacesCurrentToolsMcpResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentToolsMcpResponse + = GetWorkspacesCurrentToolsMcpResponses[keyof GetWorkspacesCurrentToolsMcpResponses] + +export type GetWorkspacesCurrentToolsWorkflowData = { + body?: never + path?: never + query?: never + url: '/workspaces/current/tools/workflow' +} + +export type GetWorkspacesCurrentToolsWorkflowResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentToolsWorkflowResponse + = GetWorkspacesCurrentToolsWorkflowResponses[keyof GetWorkspacesCurrentToolsWorkflowResponses] + +export type GetWorkspacesCurrentTriggerProviderByProviderIconData = { + body?: never + path: { + provider: string + } + query?: never + url: '/workspaces/current/trigger-provider/{provider}/icon' +} + +export type GetWorkspacesCurrentTriggerProviderByProviderIconResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentTriggerProviderByProviderIconResponse + = GetWorkspacesCurrentTriggerProviderByProviderIconResponses[keyof GetWorkspacesCurrentTriggerProviderByProviderIconResponses] + +export type GetWorkspacesCurrentTriggerProviderByProviderInfoData = { + body?: never + path: { + provider: string + } + query?: never + url: '/workspaces/current/trigger-provider/{provider}/info' +} + +export type GetWorkspacesCurrentTriggerProviderByProviderInfoResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentTriggerProviderByProviderInfoResponse + = GetWorkspacesCurrentTriggerProviderByProviderInfoResponses[keyof GetWorkspacesCurrentTriggerProviderByProviderInfoResponses] + +export type DeleteWorkspacesCurrentTriggerProviderByProviderOauthClientData = { + body?: never + path: { + provider: string + } + query?: never + url: '/workspaces/current/trigger-provider/{provider}/oauth/client' +} + +export type DeleteWorkspacesCurrentTriggerProviderByProviderOauthClientResponses = { + 200: { + [key: string]: unknown + } +} + +export type DeleteWorkspacesCurrentTriggerProviderByProviderOauthClientResponse + = DeleteWorkspacesCurrentTriggerProviderByProviderOauthClientResponses[keyof DeleteWorkspacesCurrentTriggerProviderByProviderOauthClientResponses] + +export type GetWorkspacesCurrentTriggerProviderByProviderOauthClientData = { + body?: never + path: { + provider: string + } + query?: never + url: '/workspaces/current/trigger-provider/{provider}/oauth/client' +} + +export type GetWorkspacesCurrentTriggerProviderByProviderOauthClientResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentTriggerProviderByProviderOauthClientResponse + = GetWorkspacesCurrentTriggerProviderByProviderOauthClientResponses[keyof GetWorkspacesCurrentTriggerProviderByProviderOauthClientResponses] + +export type PostWorkspacesCurrentTriggerProviderByProviderOauthClientData = { + body: TriggerOAuthClientPayload + path: { + provider: string + } + query?: never + url: '/workspaces/current/trigger-provider/{provider}/oauth/client' +} + +export type PostWorkspacesCurrentTriggerProviderByProviderOauthClientResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentTriggerProviderByProviderOauthClientResponse + = PostWorkspacesCurrentTriggerProviderByProviderOauthClientResponses[keyof PostWorkspacesCurrentTriggerProviderByProviderOauthClientResponses] + +export type PostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderBuildBySubscriptionBuilderIdData + = { + body: TriggerSubscriptionBuilderUpdatePayload + path: { + provider: string + subscription_builder_id: string + } + query?: never + url: '/workspaces/current/trigger-provider/{provider}/subscriptions/builder/build/{subscription_builder_id}' + } + +export type PostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderBuildBySubscriptionBuilderIdResponses + = { + 200: { + [key: string]: unknown + } + } + +export type PostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderBuildBySubscriptionBuilderIdResponse + = PostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderBuildBySubscriptionBuilderIdResponses[keyof PostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderBuildBySubscriptionBuilderIdResponses] + +export type PostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderCreateData = { + body: TriggerSubscriptionBuilderCreatePayload + path: { + provider: string + } + query?: never + url: '/workspaces/current/trigger-provider/{provider}/subscriptions/builder/create' +} + +export type PostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderCreateResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderCreateResponse + = PostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderCreateResponses[keyof PostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderCreateResponses] + +export type GetWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderLogsBySubscriptionBuilderIdData + = { + body?: never + path: { + provider: string + subscription_builder_id: string + } + query?: never + url: '/workspaces/current/trigger-provider/{provider}/subscriptions/builder/logs/{subscription_builder_id}' + } + +export type GetWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderLogsBySubscriptionBuilderIdResponses + = { + 200: { + [key: string]: unknown + } + } + +export type GetWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderLogsBySubscriptionBuilderIdResponse + = GetWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderLogsBySubscriptionBuilderIdResponses[keyof GetWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderLogsBySubscriptionBuilderIdResponses] + +export type PostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderUpdateBySubscriptionBuilderIdData + = { + body: TriggerSubscriptionBuilderUpdatePayload + path: { + provider: string + subscription_builder_id: string + } + query?: never + url: '/workspaces/current/trigger-provider/{provider}/subscriptions/builder/update/{subscription_builder_id}' + } + +export type PostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderUpdateBySubscriptionBuilderIdResponses + = { + 200: { + [key: string]: unknown + } + } + +export type PostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderUpdateBySubscriptionBuilderIdResponse + = PostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderUpdateBySubscriptionBuilderIdResponses[keyof PostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderUpdateBySubscriptionBuilderIdResponses] + +export type PostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderVerifyAndUpdateBySubscriptionBuilderIdData + = { + body: TriggerSubscriptionBuilderVerifyPayload + path: { + provider: string + subscription_builder_id: string + } + query?: never + url: '/workspaces/current/trigger-provider/{provider}/subscriptions/builder/verify-and-update/{subscription_builder_id}' + } + +export type PostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderVerifyAndUpdateBySubscriptionBuilderIdResponses + = { + 200: { + [key: string]: unknown + } + } + +export type PostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderVerifyAndUpdateBySubscriptionBuilderIdResponse + = PostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderVerifyAndUpdateBySubscriptionBuilderIdResponses[keyof PostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderVerifyAndUpdateBySubscriptionBuilderIdResponses] + +export type GetWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderBySubscriptionBuilderIdData + = { + body?: never + path: { + provider: string + subscription_builder_id: string + } + query?: never + url: '/workspaces/current/trigger-provider/{provider}/subscriptions/builder/{subscription_builder_id}' + } + +export type GetWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderBySubscriptionBuilderIdResponses + = { + 200: { + [key: string]: unknown + } + } + +export type GetWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderBySubscriptionBuilderIdResponse + = GetWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderBySubscriptionBuilderIdResponses[keyof GetWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderBySubscriptionBuilderIdResponses] + +export type GetWorkspacesCurrentTriggerProviderByProviderSubscriptionsListData = { + body?: never + path: { + provider: string + } + query?: never + url: '/workspaces/current/trigger-provider/{provider}/subscriptions/list' +} + +export type GetWorkspacesCurrentTriggerProviderByProviderSubscriptionsListResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentTriggerProviderByProviderSubscriptionsListResponse + = GetWorkspacesCurrentTriggerProviderByProviderSubscriptionsListResponses[keyof GetWorkspacesCurrentTriggerProviderByProviderSubscriptionsListResponses] + +export type GetWorkspacesCurrentTriggerProviderByProviderSubscriptionsOauthAuthorizeData = { + body?: never + path: { + provider: string + } + query?: never + url: '/workspaces/current/trigger-provider/{provider}/subscriptions/oauth/authorize' +} + +export type GetWorkspacesCurrentTriggerProviderByProviderSubscriptionsOauthAuthorizeResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentTriggerProviderByProviderSubscriptionsOauthAuthorizeResponse + = GetWorkspacesCurrentTriggerProviderByProviderSubscriptionsOauthAuthorizeResponses[keyof GetWorkspacesCurrentTriggerProviderByProviderSubscriptionsOauthAuthorizeResponses] + +export type PostWorkspacesCurrentTriggerProviderByProviderSubscriptionsVerifyBySubscriptionIdData + = { + body: TriggerSubscriptionBuilderVerifyPayload + path: { + provider: string + subscription_id: string + } + query?: never + url: '/workspaces/current/trigger-provider/{provider}/subscriptions/verify/{subscription_id}' + } + +export type PostWorkspacesCurrentTriggerProviderByProviderSubscriptionsVerifyBySubscriptionIdResponses + = { + 200: { + [key: string]: unknown + } + } + +export type PostWorkspacesCurrentTriggerProviderByProviderSubscriptionsVerifyBySubscriptionIdResponse + = PostWorkspacesCurrentTriggerProviderByProviderSubscriptionsVerifyBySubscriptionIdResponses[keyof PostWorkspacesCurrentTriggerProviderByProviderSubscriptionsVerifyBySubscriptionIdResponses] + +export type PostWorkspacesCurrentTriggerProviderBySubscriptionIdSubscriptionsDeleteData = { + body?: never + path: { + subscription_id: string + } + query?: never + url: '/workspaces/current/trigger-provider/{subscription_id}/subscriptions/delete' +} + +export type PostWorkspacesCurrentTriggerProviderBySubscriptionIdSubscriptionsDeleteResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentTriggerProviderBySubscriptionIdSubscriptionsDeleteResponse + = PostWorkspacesCurrentTriggerProviderBySubscriptionIdSubscriptionsDeleteResponses[keyof PostWorkspacesCurrentTriggerProviderBySubscriptionIdSubscriptionsDeleteResponses] + +export type PostWorkspacesCurrentTriggerProviderBySubscriptionIdSubscriptionsUpdateData = { + body: TriggerSubscriptionBuilderUpdatePayload + path: { + subscription_id: string + } + query?: never + url: '/workspaces/current/trigger-provider/{subscription_id}/subscriptions/update' +} + +export type PostWorkspacesCurrentTriggerProviderBySubscriptionIdSubscriptionsUpdateResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCurrentTriggerProviderBySubscriptionIdSubscriptionsUpdateResponse + = PostWorkspacesCurrentTriggerProviderBySubscriptionIdSubscriptionsUpdateResponses[keyof PostWorkspacesCurrentTriggerProviderBySubscriptionIdSubscriptionsUpdateResponses] + +export type GetWorkspacesCurrentTriggersData = { + body?: never + path?: never + query?: never + url: '/workspaces/current/triggers' +} + +export type GetWorkspacesCurrentTriggersResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentTriggersResponse + = GetWorkspacesCurrentTriggersResponses[keyof GetWorkspacesCurrentTriggersResponses] + +export type PostWorkspacesCustomConfigData = { + body: WorkspaceCustomConfigPayload + path?: never + query?: never + url: '/workspaces/custom-config' +} + +export type PostWorkspacesCustomConfigResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCustomConfigResponse + = PostWorkspacesCustomConfigResponses[keyof PostWorkspacesCustomConfigResponses] + +export type PostWorkspacesCustomConfigWebappLogoUploadData = { + body?: never + path?: never + query?: never + url: '/workspaces/custom-config/webapp-logo/upload' +} + +export type PostWorkspacesCustomConfigWebappLogoUploadResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesCustomConfigWebappLogoUploadResponse + = PostWorkspacesCustomConfigWebappLogoUploadResponses[keyof PostWorkspacesCustomConfigWebappLogoUploadResponses] + +export type PostWorkspacesInfoData = { + body: WorkspaceInfoPayload + path?: never + query?: never + url: '/workspaces/info' +} + +export type PostWorkspacesInfoResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesInfoResponse + = PostWorkspacesInfoResponses[keyof PostWorkspacesInfoResponses] + +export type PostWorkspacesSwitchData = { + body: SwitchWorkspacePayload + path?: never + query?: never + url: '/workspaces/switch' +} + +export type PostWorkspacesSwitchResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkspacesSwitchResponse + = PostWorkspacesSwitchResponses[keyof PostWorkspacesSwitchResponses] + +export type GetWorkspacesByTenantIdModelProvidersByProviderByIconTypeByLangData = { + body?: never + path: { + tenant_id: string + provider: string + icon_type: string + lang: string + } + query?: never + url: '/workspaces/{tenant_id}/model-providers/{provider}/{icon_type}/{lang}' +} + +export type GetWorkspacesByTenantIdModelProvidersByProviderByIconTypeByLangResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesByTenantIdModelProvidersByProviderByIconTypeByLangResponse + = GetWorkspacesByTenantIdModelProvidersByProviderByIconTypeByLangResponses[keyof GetWorkspacesByTenantIdModelProvidersByProviderByIconTypeByLangResponses] diff --git a/packages/contracts/generated/api/console/workspaces/zod.gen.ts b/packages/contracts/generated/api/console/workspaces/zod.gen.ts new file mode 100644 index 0000000000..a381824da7 --- /dev/null +++ b/packages/contracts/generated/api/console/workspaces/zod.gen.ts @@ -0,0 +1,2150 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * TenantInfoResponse + */ +export const zTenantInfoResponse = z.object({ + created_at: z.int().nullish(), + custom_config: z.record(z.string(), z.unknown()).nullish(), + id: z.string(), + in_trial: z.boolean().nullish(), + name: z.string().nullish(), + next_credit_reset_date: z.int().nullish(), + plan: z.string().nullish(), + role: z.string().nullish(), + status: z.string().nullish(), + trial_credits: z.int().nullish(), + trial_credits_used: z.int().nullish(), + trial_end_reason: z.string().nullish(), +}) + +/** + * EndpointCreatePayload + */ +export const zEndpointCreatePayload = z.object({ + name: z.string().min(1), + plugin_unique_identifier: z.string(), + settings: z.record(z.string(), z.unknown()), +}) + +/** + * EndpointCreateResponse + */ +export const zEndpointCreateResponse = z.object({ + success: z.boolean(), +}) + +/** + * EndpointIdPayload + */ +export const zEndpointIdPayload = z.object({ + endpoint_id: z.string(), +}) + +/** + * EndpointDeleteResponse + */ +export const zEndpointDeleteResponse = z.object({ + success: z.boolean(), +}) + +/** + * EndpointDisableResponse + */ +export const zEndpointDisableResponse = z.object({ + success: z.boolean(), +}) + +/** + * EndpointEnableResponse + */ +export const zEndpointEnableResponse = z.object({ + success: z.boolean(), +}) + +/** + * EndpointListResponse + */ +export const zEndpointListResponse = z.object({ + endpoints: z.array(z.record(z.string(), z.unknown())), +}) + +/** + * PluginEndpointListResponse + */ +export const zPluginEndpointListResponse = z.object({ + endpoints: z.array(z.record(z.string(), z.unknown())), +}) + +/** + * LegacyEndpointUpdatePayload + */ +export const zLegacyEndpointUpdatePayload = z.object({ + endpoint_id: z.string(), + name: z.string().min(1), + settings: z.record(z.string(), z.unknown()), +}) + +/** + * EndpointUpdateResponse + */ +export const zEndpointUpdateResponse = z.object({ + success: z.boolean(), +}) + +/** + * EndpointUpdatePayload + */ +export const zEndpointUpdatePayload = z.object({ + name: z.string().min(1), + settings: z.record(z.string(), z.unknown()), +}) + +/** + * OwnerTransferCheckPayload + */ +export const zOwnerTransferCheckPayload = z.object({ + code: z.string(), + token: z.string(), +}) + +/** + * OwnerTransferEmailPayload + */ +export const zOwnerTransferEmailPayload = z.object({ + language: z.string().nullish(), +}) + +/** + * OwnerTransferPayload + */ +export const zOwnerTransferPayload = z.object({ + token: z.string(), +}) + +/** + * MemberRoleUpdatePayload + */ +export const zMemberRoleUpdatePayload = z.object({ + role: z.string(), +}) + +/** + * ParserCredentialDelete + */ +export const zParserCredentialDelete = z.object({ + credential_id: z.string(), +}) + +/** + * ParserCredentialCreate + */ +export const zParserCredentialCreate = z.object({ + credentials: z.record(z.string(), z.unknown()), + name: z.string().max(30).nullish(), +}) + +/** + * ParserCredentialUpdate + */ +export const zParserCredentialUpdate = z.object({ + credential_id: z.string(), + credentials: z.record(z.string(), z.unknown()), + name: z.string().max(30).nullish(), +}) + +/** + * ParserCredentialSwitch + */ +export const zParserCredentialSwitch = z.object({ + credential_id: z.string(), +}) + +/** + * ParserCredentialValidate + */ +export const zParserCredentialValidate = z.object({ + credentials: z.record(z.string(), z.unknown()), +}) + +/** + * ParserPreferredProviderType + */ +export const zParserPreferredProviderType = z.object({ + preferred_provider_type: z.enum(['system', 'custom']), +}) + +/** + * ParserGithubInstall + */ +export const zParserGithubInstall = z.object({ + package: z.string(), + plugin_unique_identifier: z.string(), + repo: z.string(), + version: z.string(), +}) + +/** + * ParserPluginIdentifiers + */ +export const zParserPluginIdentifiers = z.object({ + plugin_unique_identifiers: z.array(z.string()), +}) + +/** + * ParserLatest + */ +export const zParserLatest = z.object({ + plugin_ids: z.array(z.string()), +}) + +/** + * ParserDynamicOptionsWithCredentials + */ +export const zParserDynamicOptionsWithCredentials = z.object({ + action: z.string(), + credential_id: z.string(), + credentials: z.record(z.string(), z.unknown()), + parameter: z.string(), + plugin_id: z.string(), + provider: z.string(), +}) + +/** + * ParserExcludePlugin + */ +export const zParserExcludePlugin = z.object({ + plugin_id: z.string(), +}) + +/** + * ParserUninstall + */ +export const zParserUninstall = z.object({ + plugin_installation_id: z.string(), +}) + +/** + * ParserGithubUpgrade + */ +export const zParserGithubUpgrade = z.object({ + new_plugin_unique_identifier: z.string(), + original_plugin_unique_identifier: z.string(), + package: z.string(), + repo: z.string(), + version: z.string(), +}) + +/** + * ParserMarketplaceUpgrade + */ +export const zParserMarketplaceUpgrade = z.object({ + new_plugin_unique_identifier: z.string(), + original_plugin_unique_identifier: z.string(), +}) + +/** + * ParserGithubUpload + */ +export const zParserGithubUpload = z.object({ + package: z.string(), + repo: z.string(), + version: z.string(), +}) + +/** + * ApiToolProviderDeletePayload + */ +export const zApiToolProviderDeletePayload = z.object({ + provider: z.string(), +}) + +/** + * ApiToolSchemaPayload + */ +export const zApiToolSchemaPayload = z.object({ + schema: z.string(), +}) + +/** + * BuiltinProviderDefaultCredentialPayload + */ +export const zBuiltinProviderDefaultCredentialPayload = z.object({ + id: z.string(), +}) + +/** + * BuiltinToolCredentialDeletePayload + */ +export const zBuiltinToolCredentialDeletePayload = z.object({ + credential_id: z.string(), +}) + +/** + * ToolOAuthCustomClientPayload + */ +export const zToolOAuthCustomClientPayload = z.object({ + client_params: z.record(z.string(), z.unknown()).nullish(), + enable_oauth_custom_client: z.boolean().nullish().default(true), +}) + +/** + * BuiltinToolUpdatePayload + */ +export const zBuiltinToolUpdatePayload = z.object({ + credential_id: z.string(), + credentials: z.record(z.string(), z.unknown()).nullish(), + name: z.string().max(30).nullish(), +}) + +/** + * MCPProviderDeletePayload + */ +export const zMcpProviderDeletePayload = z.object({ + provider_id: z.string(), +}) + +/** + * MCPProviderCreatePayload + */ +export const zMcpProviderCreatePayload = z.object({ + authentication: z.record(z.string(), z.unknown()).nullish(), + configuration: z.record(z.string(), z.unknown()).nullish(), + headers: z.record(z.string(), z.unknown()).nullish(), + icon: z.string(), + icon_background: z.string().optional().default(''), + icon_type: z.string(), + name: z.string(), + server_identifier: z.string(), + server_url: z.string(), +}) + +/** + * MCPProviderUpdatePayload + */ +export const zMcpProviderUpdatePayload = z.object({ + authentication: z.record(z.string(), z.unknown()).nullish(), + configuration: z.record(z.string(), z.unknown()).nullish(), + headers: z.record(z.string(), z.unknown()).nullish(), + icon: z.string(), + icon_background: z.string().optional().default(''), + icon_type: z.string(), + name: z.string(), + provider_id: z.string(), + server_identifier: z.string(), + server_url: z.string(), +}) + +/** + * MCPAuthPayload + */ +export const zMcpAuthPayload = z.object({ + authorization_code: z.string().nullish(), + provider_id: z.string(), +}) + +/** + * WorkflowToolDeletePayload + */ +export const zWorkflowToolDeletePayload = z.object({ + workflow_tool_id: z.string(), +}) + +/** + * TriggerOAuthClientPayload + */ +export const zTriggerOAuthClientPayload = z.object({ + client_params: z.record(z.string(), z.unknown()).nullish(), + enabled: z.boolean().nullish(), +}) + +/** + * TriggerSubscriptionBuilderUpdatePayload + */ +export const zTriggerSubscriptionBuilderUpdatePayload = z.object({ + credentials: z.record(z.string(), z.unknown()).nullish(), + name: z.string().nullish(), + parameters: z.record(z.string(), z.unknown()).nullish(), + properties: z.record(z.string(), z.unknown()).nullish(), +}) + +/** + * TriggerSubscriptionBuilderCreatePayload + */ +export const zTriggerSubscriptionBuilderCreatePayload = z.object({ + credential_type: z.string().optional().default('unauthorized'), +}) + +/** + * TriggerSubscriptionBuilderVerifyPayload + */ +export const zTriggerSubscriptionBuilderVerifyPayload = z.object({ + credentials: z.record(z.string(), z.unknown()), +}) + +/** + * WorkspaceCustomConfigPayload + */ +export const zWorkspaceCustomConfigPayload = z.object({ + remove_webapp_brand: z.boolean().nullish(), + replace_webapp_logo: z.string().nullish(), +}) + +/** + * WorkspaceInfoPayload + */ +export const zWorkspaceInfoPayload = z.object({ + name: z.string(), +}) + +/** + * SwitchWorkspacePayload + */ +export const zSwitchWorkspacePayload = z.object({ + tenant_id: z.string(), +}) + +/** + * AccountWithRole + */ +export const zAccountWithRole = z.object({ + avatar: z.string().nullish(), + created_at: z.int().nullish(), + email: z.string(), + id: z.string(), + last_active_at: z.int().nullish(), + last_login_at: z.int().nullish(), + name: z.string(), + role: z.string(), + status: z.string(), +}) + +/** + * AccountWithRoleList + */ +export const zAccountWithRoleList = z.object({ + accounts: z.array(zAccountWithRole), +}) + +/** + * TenantAccountRole + */ +export const zTenantAccountRole = z.enum(['owner', 'admin', 'editor', 'normal', 'dataset_operator']) + +/** + * MemberInvitePayload + */ +export const zMemberInvitePayload = z.object({ + emails: z.array(z.string()).optional(), + language: z.string().nullish(), + role: zTenantAccountRole, +}) + +/** + * ModelType + * + * Enum class for model type. + */ +export const zModelType = z.enum([ + 'llm', + 'text-embedding', + 'rerank', + 'speech2text', + 'moderation', + 'tts', +]) + +/** + * ParserDeleteModels + */ +export const zParserDeleteModels = z.object({ + model: z.string(), + model_type: zModelType, +}) + +/** + * ParserDeleteCredential + */ +export const zParserDeleteCredential = z.object({ + credential_id: z.string(), + model: z.string(), + model_type: zModelType, +}) + +/** + * ParserCreateCredential + */ +export const zParserCreateCredential = z.object({ + credentials: z.record(z.string(), z.unknown()), + model: z.string(), + model_type: zModelType, + name: z.string().max(30).nullish(), +}) + +/** + * ParserUpdateCredential + */ +export const zParserUpdateCredential = z.object({ + credential_id: z.string(), + credentials: z.record(z.string(), z.unknown()), + model: z.string(), + model_type: zModelType, + name: z.string().max(30).nullish(), +}) + +/** + * ParserSwitch + */ +export const zParserSwitch = z.object({ + credential_id: z.string(), + model: z.string(), + model_type: zModelType, +}) + +/** + * ParserValidate + */ +export const zParserValidate = z.object({ + credentials: z.record(z.string(), z.unknown()), + model: z.string(), + model_type: zModelType, +}) + +/** + * LoadBalancingCredentialPayload + */ +export const zLoadBalancingCredentialPayload = z.object({ + credentials: z.record(z.string(), z.unknown()), + model: z.string(), + model_type: zModelType, +}) + +/** + * Inner + */ +export const zInner = z.object({ + model: z.string().nullish(), + model_type: zModelType, + provider: z.string().nullish(), +}) + +/** + * ParserPostDefault + */ +export const zParserPostDefault = z.object({ + model_settings: z.array(zInner), +}) + +/** + * LoadBalancingPayload + */ +export const zLoadBalancingPayload = z.object({ + configs: z.array(z.record(z.string(), z.unknown())).nullish(), + enabled: z.boolean().nullish(), +}) + +/** + * ParserPostModels + */ +export const zParserPostModels = z.object({ + config_from: z.string().nullish(), + credential_id: z.string().nullish(), + load_balancing: zLoadBalancingPayload.optional(), + model: z.string(), + model_type: zModelType, +}) + +/** + * DebugPermission + */ +export const zDebugPermission = z.enum(['everyone', 'admins', 'noone']) + +/** + * InstallPermission + */ +export const zInstallPermission = z.enum(['everyone', 'admins', 'noone']) + +/** + * ParserPermissionChange + */ +export const zParserPermissionChange = z.object({ + debug_permission: zDebugPermission, + install_permission: zInstallPermission, +}) + +/** + * PluginPermissionSettingsPayload + */ +export const zPluginPermissionSettingsPayload = z.object({ + debug_permission: zDebugPermission.optional(), + install_permission: zInstallPermission.optional(), +}) + +/** + * ApiProviderSchemaType + * + * Enum class for api provider schema type. + */ +export const zApiProviderSchemaType = z.enum([ + 'openapi', + 'swagger', + 'openai_plugin', + 'openai_actions', +]) + +/** + * ApiToolProviderAddPayload + */ +export const zApiToolProviderAddPayload = z.object({ + credentials: z.record(z.string(), z.unknown()), + custom_disclaimer: z.string().optional().default(''), + icon: z.record(z.string(), z.unknown()), + labels: z.array(z.string()).nullish(), + privacy_policy: z.string().nullish(), + provider: z.string(), + schema: z.string(), + schema_type: zApiProviderSchemaType, +}) + +/** + * ApiToolTestPayload + */ +export const zApiToolTestPayload = z.object({ + credentials: z.record(z.string(), z.unknown()), + parameters: z.record(z.string(), z.unknown()), + provider_name: z.string().nullish(), + schema: z.string(), + schema_type: zApiProviderSchemaType, + tool_name: z.string(), +}) + +/** + * ApiToolProviderUpdatePayload + */ +export const zApiToolProviderUpdatePayload = z.object({ + credentials: z.record(z.string(), z.unknown()), + custom_disclaimer: z.string().optional().default(''), + icon: z.record(z.string(), z.unknown()), + labels: z.array(z.string()).nullish(), + original_provider: z.string(), + privacy_policy: z.string().nullish(), + provider: z.string(), + schema: z.string(), + schema_type: zApiProviderSchemaType, +}) + +/** + * CredentialType + */ +export const zCredentialType = z.enum(['api-key', 'oauth2', 'unauthorized']) + +/** + * BuiltinToolAddPayload + */ +export const zBuiltinToolAddPayload = z.object({ + credentials: z.record(z.string(), z.unknown()), + name: z.string().max(30).nullish(), + type: zCredentialType, +}) + +/** + * StrategySetting + */ +export const zStrategySetting = z.enum(['disabled', 'fix_only', 'latest']) + +/** + * UpgradeMode + */ +export const zUpgradeMode = z.enum(['all', 'partial', 'exclude']) + +/** + * PluginAutoUpgradeSettingsPayload + */ +export const zPluginAutoUpgradeSettingsPayload = z.object({ + exclude_plugins: z.array(z.string()).optional(), + include_plugins: z.array(z.string()).optional(), + strategy_setting: zStrategySetting.optional(), + upgrade_mode: zUpgradeMode.optional(), + upgrade_time_of_day: z.int().optional().default(0), +}) + +/** + * ParserPreferencesChange + */ +export const zParserPreferencesChange = z.object({ + auto_upgrade: zPluginAutoUpgradeSettingsPayload, + permission: zPluginPermissionSettingsPayload, +}) + +/** + * ToolParameterForm + */ +export const zToolParameterForm = z.enum(['schema', 'form', 'llm']) + +/** + * WorkflowToolParameterConfiguration + * + * Workflow tool configuration + */ +export const zWorkflowToolParameterConfiguration = z.object({ + description: z.string(), + form: zToolParameterForm, + name: z.string(), +}) + +/** + * WorkflowToolCreatePayload + */ +export const zWorkflowToolCreatePayload = z.object({ + description: z.string(), + icon: z.record(z.string(), z.unknown()), + label: z.string(), + labels: z.array(z.string()).nullish(), + name: z.string(), + parameters: z.array(zWorkflowToolParameterConfiguration).optional(), + privacy_policy: z.string().nullish().default(''), + workflow_app_id: z.string(), +}) + +/** + * WorkflowToolUpdatePayload + */ +export const zWorkflowToolUpdatePayload = z.object({ + description: z.string(), + icon: z.record(z.string(), z.unknown()), + label: z.string(), + labels: z.array(z.string()).nullish(), + name: z.string(), + parameters: z.array(zWorkflowToolParameterConfiguration).optional(), + privacy_policy: z.string().nullish().default(''), + workflow_tool_id: z.string(), +}) + +/** + * Success + */ +export const zGetWorkspacesResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zPostWorkspacesCurrentResponse = zTenantInfoResponse + +export const zGetWorkspacesCurrentAgentProviderByProviderNamePath = z.object({ + provider_name: z.string(), +}) + +/** + * Agent provider details + */ +export const zGetWorkspacesCurrentAgentProviderByProviderNameResponse = z.record( + z.string(), + z.unknown(), +) + +/** + * Success + */ +export const zGetWorkspacesCurrentAgentProvidersResponse = z.array( + z.record(z.string(), z.unknown()), +) + +/** + * Success + */ +export const zGetWorkspacesCurrentDatasetOperatorsResponse = zAccountWithRoleList + +export const zGetWorkspacesCurrentDefaultModelQuery = z.object({ + model_type: z.string(), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentDefaultModelResponse = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCurrentDefaultModelBody = zParserPostDefault + +/** + * Success + */ +export const zPostWorkspacesCurrentDefaultModelResponse = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCurrentEndpointsBody = zEndpointCreatePayload + +/** + * Endpoint created successfully + */ +export const zPostWorkspacesCurrentEndpointsResponse = zEndpointCreateResponse + +export const zPostWorkspacesCurrentEndpointsCreateBody = zEndpointCreatePayload + +/** + * Endpoint created successfully + */ +export const zPostWorkspacesCurrentEndpointsCreateResponse = zEndpointCreateResponse + +export const zPostWorkspacesCurrentEndpointsDeleteBody = zEndpointIdPayload + +/** + * Endpoint deleted successfully + */ +export const zPostWorkspacesCurrentEndpointsDeleteResponse = zEndpointDeleteResponse + +export const zPostWorkspacesCurrentEndpointsDisableBody = zEndpointIdPayload + +/** + * Endpoint disabled successfully + */ +export const zPostWorkspacesCurrentEndpointsDisableResponse = zEndpointDisableResponse + +export const zPostWorkspacesCurrentEndpointsEnableBody = zEndpointIdPayload + +/** + * Endpoint enabled successfully + */ +export const zPostWorkspacesCurrentEndpointsEnableResponse = zEndpointEnableResponse + +export const zGetWorkspacesCurrentEndpointsListQuery = z.object({ + page: z.int().gte(1), + page_size: z.int(), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentEndpointsListResponse = zEndpointListResponse + +export const zGetWorkspacesCurrentEndpointsListPluginQuery = z.object({ + page: z.int().gte(1), + page_size: z.int(), + plugin_id: z.string(), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentEndpointsListPluginResponse = zPluginEndpointListResponse + +export const zPostWorkspacesCurrentEndpointsUpdateBody = zLegacyEndpointUpdatePayload + +/** + * Endpoint updated successfully + */ +export const zPostWorkspacesCurrentEndpointsUpdateResponse = zEndpointUpdateResponse + +export const zDeleteWorkspacesCurrentEndpointsByIdPath = z.object({ + id: z.string(), +}) + +/** + * Endpoint deleted successfully + */ +export const zDeleteWorkspacesCurrentEndpointsByIdResponse = zEndpointDeleteResponse + +export const zPatchWorkspacesCurrentEndpointsByIdBody = zEndpointUpdatePayload + +export const zPatchWorkspacesCurrentEndpointsByIdPath = z.object({ + id: z.string(), +}) + +/** + * Endpoint updated successfully + */ +export const zPatchWorkspacesCurrentEndpointsByIdResponse = zEndpointUpdateResponse + +/** + * Success + */ +export const zGetWorkspacesCurrentMembersResponse = zAccountWithRoleList + +export const zPostWorkspacesCurrentMembersInviteEmailBody = zMemberInvitePayload + +/** + * Success + */ +export const zPostWorkspacesCurrentMembersInviteEmailResponse = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCurrentMembersOwnerTransferCheckBody = zOwnerTransferCheckPayload + +/** + * Success + */ +export const zPostWorkspacesCurrentMembersOwnerTransferCheckResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostWorkspacesCurrentMembersSendOwnerTransferConfirmEmailBody + = zOwnerTransferEmailPayload + +/** + * Success + */ +export const zPostWorkspacesCurrentMembersSendOwnerTransferConfirmEmailResponse = z.record( + z.string(), + z.unknown(), +) + +export const zDeleteWorkspacesCurrentMembersByMemberIdPath = z.object({ + member_id: z.string(), +}) + +/** + * Success + */ +export const zDeleteWorkspacesCurrentMembersByMemberIdResponse = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCurrentMembersByMemberIdOwnerTransferBody = zOwnerTransferPayload + +export const zPostWorkspacesCurrentMembersByMemberIdOwnerTransferPath = z.object({ + member_id: z.string(), +}) + +/** + * Success + */ +export const zPostWorkspacesCurrentMembersByMemberIdOwnerTransferResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPutWorkspacesCurrentMembersByMemberIdUpdateRoleBody = zMemberRoleUpdatePayload + +export const zPutWorkspacesCurrentMembersByMemberIdUpdateRolePath = z.object({ + member_id: z.string(), +}) + +/** + * Success + */ +export const zPutWorkspacesCurrentMembersByMemberIdUpdateRoleResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetWorkspacesCurrentModelProvidersQuery = z.object({ + model_type: z.string().nullish(), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentModelProvidersResponse = z.record(z.string(), z.unknown()) + +export const zGetWorkspacesCurrentModelProvidersByProviderCheckoutUrlPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentModelProvidersByProviderCheckoutUrlResponse = z.record( + z.string(), + z.unknown(), +) + +export const zDeleteWorkspacesCurrentModelProvidersByProviderCredentialsBody + = zParserCredentialDelete + +export const zDeleteWorkspacesCurrentModelProvidersByProviderCredentialsPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zDeleteWorkspacesCurrentModelProvidersByProviderCredentialsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetWorkspacesCurrentModelProvidersByProviderCredentialsPath = z.object({ + provider: z.string(), +}) + +export const zGetWorkspacesCurrentModelProvidersByProviderCredentialsQuery = z.object({ + credential_id: z.string().nullish(), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentModelProvidersByProviderCredentialsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostWorkspacesCurrentModelProvidersByProviderCredentialsBody = zParserCredentialCreate + +export const zPostWorkspacesCurrentModelProvidersByProviderCredentialsPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zPostWorkspacesCurrentModelProvidersByProviderCredentialsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPutWorkspacesCurrentModelProvidersByProviderCredentialsBody = zParserCredentialUpdate + +export const zPutWorkspacesCurrentModelProvidersByProviderCredentialsPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zPutWorkspacesCurrentModelProvidersByProviderCredentialsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostWorkspacesCurrentModelProvidersByProviderCredentialsSwitchBody + = zParserCredentialSwitch + +export const zPostWorkspacesCurrentModelProvidersByProviderCredentialsSwitchPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zPostWorkspacesCurrentModelProvidersByProviderCredentialsSwitchResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostWorkspacesCurrentModelProvidersByProviderCredentialsValidateBody + = zParserCredentialValidate + +export const zPostWorkspacesCurrentModelProvidersByProviderCredentialsValidatePath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zPostWorkspacesCurrentModelProvidersByProviderCredentialsValidateResponse = z.record( + z.string(), + z.unknown(), +) + +export const zDeleteWorkspacesCurrentModelProvidersByProviderModelsBody = zParserDeleteModels + +export const zDeleteWorkspacesCurrentModelProvidersByProviderModelsPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zDeleteWorkspacesCurrentModelProvidersByProviderModelsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetWorkspacesCurrentModelProvidersByProviderModelsPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentModelProvidersByProviderModelsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostWorkspacesCurrentModelProvidersByProviderModelsBody = zParserPostModels + +export const zPostWorkspacesCurrentModelProvidersByProviderModelsPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zPostWorkspacesCurrentModelProvidersByProviderModelsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zDeleteWorkspacesCurrentModelProvidersByProviderModelsCredentialsBody + = zParserDeleteCredential + +export const zDeleteWorkspacesCurrentModelProvidersByProviderModelsCredentialsPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zDeleteWorkspacesCurrentModelProvidersByProviderModelsCredentialsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetWorkspacesCurrentModelProvidersByProviderModelsCredentialsPath = z.object({ + provider: z.string(), +}) + +export const zGetWorkspacesCurrentModelProvidersByProviderModelsCredentialsQuery = z.object({ + config_from: z.string().nullish(), + credential_id: z.string().nullish(), + model: z.string(), + model_type: z.string(), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentModelProvidersByProviderModelsCredentialsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostWorkspacesCurrentModelProvidersByProviderModelsCredentialsBody + = zParserCreateCredential + +export const zPostWorkspacesCurrentModelProvidersByProviderModelsCredentialsPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zPostWorkspacesCurrentModelProvidersByProviderModelsCredentialsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPutWorkspacesCurrentModelProvidersByProviderModelsCredentialsBody + = zParserUpdateCredential + +export const zPutWorkspacesCurrentModelProvidersByProviderModelsCredentialsPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zPutWorkspacesCurrentModelProvidersByProviderModelsCredentialsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostWorkspacesCurrentModelProvidersByProviderModelsCredentialsSwitchBody + = zParserSwitch + +export const zPostWorkspacesCurrentModelProvidersByProviderModelsCredentialsSwitchPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zPostWorkspacesCurrentModelProvidersByProviderModelsCredentialsSwitchResponse + = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCurrentModelProvidersByProviderModelsCredentialsValidateBody + = zParserValidate + +export const zPostWorkspacesCurrentModelProvidersByProviderModelsCredentialsValidatePath = z.object( + { + provider: z.string(), + }, +) + +/** + * Success + */ +export const zPostWorkspacesCurrentModelProvidersByProviderModelsCredentialsValidateResponse + = z.record(z.string(), z.unknown()) + +export const zPatchWorkspacesCurrentModelProvidersByProviderModelsDisableBody = zParserDeleteModels + +export const zPatchWorkspacesCurrentModelProvidersByProviderModelsDisablePath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zPatchWorkspacesCurrentModelProvidersByProviderModelsDisableResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPatchWorkspacesCurrentModelProvidersByProviderModelsEnableBody = zParserDeleteModels + +export const zPatchWorkspacesCurrentModelProvidersByProviderModelsEnablePath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zPatchWorkspacesCurrentModelProvidersByProviderModelsEnableResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsCredentialsValidateBody + = zLoadBalancingCredentialPayload + +export const zPostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsCredentialsValidatePath + = z.object({ + provider: z.string(), + }) + +/** + * Success + */ +export const zPostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsCredentialsValidateResponse + = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsByConfigIdCredentialsValidateBody + = zLoadBalancingCredentialPayload + +export const zPostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsByConfigIdCredentialsValidatePath + = z.object({ + provider: z.string(), + config_id: z.string(), + }) + +/** + * Success + */ +export const zPostWorkspacesCurrentModelProvidersByProviderModelsLoadBalancingConfigsByConfigIdCredentialsValidateResponse + = z.record(z.string(), z.unknown()) + +export const zGetWorkspacesCurrentModelProvidersByProviderModelsParameterRulesPath = z.object({ + provider: z.string(), +}) + +export const zGetWorkspacesCurrentModelProvidersByProviderModelsParameterRulesQuery = z.object({ + model: z.string(), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentModelProvidersByProviderModelsParameterRulesResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostWorkspacesCurrentModelProvidersByProviderPreferredProviderTypeBody + = zParserPreferredProviderType + +export const zPostWorkspacesCurrentModelProvidersByProviderPreferredProviderTypePath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zPostWorkspacesCurrentModelProvidersByProviderPreferredProviderTypeResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetWorkspacesCurrentModelsModelTypesByModelTypePath = z.object({ + model_type: z.string(), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentModelsModelTypesByModelTypeResponse = z.record( + z.string(), + z.unknown(), +) + +/** + * Success + */ +export const zGetWorkspacesCurrentPermissionResponse = z.record(z.string(), z.unknown()) + +export const zGetWorkspacesCurrentPluginAssetQuery = z.object({ + file_name: z.string(), + plugin_unique_identifier: z.string(), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentPluginAssetResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zGetWorkspacesCurrentPluginDebuggingKeyResponse = z.record(z.string(), z.unknown()) + +export const zGetWorkspacesCurrentPluginFetchManifestQuery = z.object({ + plugin_unique_identifier: z.string(), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentPluginFetchManifestResponse = z.record(z.string(), z.unknown()) + +export const zGetWorkspacesCurrentPluginIconQuery = z.object({ + filename: z.string(), + tenant_id: z.string(), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentPluginIconResponse = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCurrentPluginInstallGithubBody = zParserGithubInstall + +/** + * Success + */ +export const zPostWorkspacesCurrentPluginInstallGithubResponse = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCurrentPluginInstallMarketplaceBody = zParserPluginIdentifiers + +/** + * Success + */ +export const zPostWorkspacesCurrentPluginInstallMarketplaceResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostWorkspacesCurrentPluginInstallPkgBody = zParserPluginIdentifiers + +/** + * Success + */ +export const zPostWorkspacesCurrentPluginInstallPkgResponse = z.record(z.string(), z.unknown()) + +export const zGetWorkspacesCurrentPluginListQuery = z.object({ + page: z.int().gte(1).optional().default(1), + page_size: z.int().gte(1).lte(256).optional().default(256), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentPluginListResponse = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCurrentPluginListInstallationsIdsBody = zParserLatest + +/** + * Success + */ +export const zPostWorkspacesCurrentPluginListInstallationsIdsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostWorkspacesCurrentPluginListLatestVersionsBody = zParserLatest + +/** + * Success + */ +export const zPostWorkspacesCurrentPluginListLatestVersionsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetWorkspacesCurrentPluginMarketplacePkgQuery = z.object({ + plugin_unique_identifier: z.string(), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentPluginMarketplacePkgResponse = z.record(z.string(), z.unknown()) + +export const zGetWorkspacesCurrentPluginParametersDynamicOptionsQuery = z.object({ + action: z.string(), + credential_id: z.string().nullish(), + parameter: z.string(), + plugin_id: z.string(), + provider: z.string(), + provider_type: z.enum(['tool', 'trigger']), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentPluginParametersDynamicOptionsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostWorkspacesCurrentPluginParametersDynamicOptionsWithCredentialsBody + = zParserDynamicOptionsWithCredentials + +/** + * Success + */ +export const zPostWorkspacesCurrentPluginParametersDynamicOptionsWithCredentialsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostWorkspacesCurrentPluginPermissionChangeBody = zParserPermissionChange + +/** + * Success + */ +export const zPostWorkspacesCurrentPluginPermissionChangeResponse = z.record( + z.string(), + z.unknown(), +) + +/** + * Success + */ +export const zGetWorkspacesCurrentPluginPermissionFetchResponse = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCurrentPluginPreferencesAutoupgradeExcludeBody = zParserExcludePlugin + +/** + * Success + */ +export const zPostWorkspacesCurrentPluginPreferencesAutoupgradeExcludeResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostWorkspacesCurrentPluginPreferencesChangeBody = zParserPreferencesChange + +/** + * Success + */ +export const zPostWorkspacesCurrentPluginPreferencesChangeResponse = z.record( + z.string(), + z.unknown(), +) + +/** + * Success + */ +export const zGetWorkspacesCurrentPluginPreferencesFetchResponse = z.record(z.string(), z.unknown()) + +export const zGetWorkspacesCurrentPluginReadmeQuery = z.object({ + language: z.string().optional().default('en-US'), + plugin_unique_identifier: z.string(), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentPluginReadmeResponse = z.record(z.string(), z.unknown()) + +export const zGetWorkspacesCurrentPluginTasksQuery = z.object({ + page: z.int().gte(1).optional().default(1), + page_size: z.int().gte(1).lte(256).optional().default(256), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentPluginTasksResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zPostWorkspacesCurrentPluginTasksDeleteAllResponse = z.record(z.string(), z.unknown()) + +export const zGetWorkspacesCurrentPluginTasksByTaskIdPath = z.object({ + task_id: z.string(), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentPluginTasksByTaskIdResponse = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCurrentPluginTasksByTaskIdDeletePath = z.object({ + task_id: z.string(), +}) + +/** + * Success + */ +export const zPostWorkspacesCurrentPluginTasksByTaskIdDeleteResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostWorkspacesCurrentPluginTasksByTaskIdDeleteByIdentifierPath = z.object({ + task_id: z.string(), + identifier: z.string(), +}) + +/** + * Success + */ +export const zPostWorkspacesCurrentPluginTasksByTaskIdDeleteByIdentifierResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostWorkspacesCurrentPluginUninstallBody = zParserUninstall + +/** + * Success + */ +export const zPostWorkspacesCurrentPluginUninstallResponse = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCurrentPluginUpgradeGithubBody = zParserGithubUpgrade + +/** + * Success + */ +export const zPostWorkspacesCurrentPluginUpgradeGithubResponse = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCurrentPluginUpgradeMarketplaceBody = zParserMarketplaceUpgrade + +/** + * Success + */ +export const zPostWorkspacesCurrentPluginUpgradeMarketplaceResponse = z.record( + z.string(), + z.unknown(), +) + +/** + * Success + */ +export const zPostWorkspacesCurrentPluginUploadBundleResponse = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCurrentPluginUploadGithubBody = zParserGithubUpload + +/** + * Success + */ +export const zPostWorkspacesCurrentPluginUploadGithubResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zPostWorkspacesCurrentPluginUploadPkgResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zGetWorkspacesCurrentToolLabelsResponse = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCurrentToolProviderApiAddBody = zApiToolProviderAddPayload + +/** + * Success + */ +export const zPostWorkspacesCurrentToolProviderApiAddResponse = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCurrentToolProviderApiDeleteBody = zApiToolProviderDeletePayload + +/** + * Success + */ +export const zPostWorkspacesCurrentToolProviderApiDeleteResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zGetWorkspacesCurrentToolProviderApiGetResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zGetWorkspacesCurrentToolProviderApiRemoteResponse = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCurrentToolProviderApiSchemaBody = zApiToolSchemaPayload + +/** + * Success + */ +export const zPostWorkspacesCurrentToolProviderApiSchemaResponse = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCurrentToolProviderApiTestPreBody = zApiToolTestPayload + +/** + * Success + */ +export const zPostWorkspacesCurrentToolProviderApiTestPreResponse = z.record( + z.string(), + z.unknown(), +) + +/** + * Success + */ +export const zGetWorkspacesCurrentToolProviderApiToolsResponse = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCurrentToolProviderApiUpdateBody = zApiToolProviderUpdatePayload + +/** + * Success + */ +export const zPostWorkspacesCurrentToolProviderApiUpdateResponse = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCurrentToolProviderBuiltinByProviderAddBody = zBuiltinToolAddPayload + +export const zPostWorkspacesCurrentToolProviderBuiltinByProviderAddPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zPostWorkspacesCurrentToolProviderBuiltinByProviderAddResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetWorkspacesCurrentToolProviderBuiltinByProviderCredentialInfoPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentToolProviderBuiltinByProviderCredentialInfoResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetWorkspacesCurrentToolProviderBuiltinByProviderCredentialSchemaByCredentialTypePath + = z.object({ + provider: z.string(), + credential_type: z.string(), + }) + +/** + * Success + */ +export const zGetWorkspacesCurrentToolProviderBuiltinByProviderCredentialSchemaByCredentialTypeResponse + = z.record(z.string(), z.unknown()) + +export const zGetWorkspacesCurrentToolProviderBuiltinByProviderCredentialsPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentToolProviderBuiltinByProviderCredentialsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostWorkspacesCurrentToolProviderBuiltinByProviderDefaultCredentialBody + = zBuiltinProviderDefaultCredentialPayload + +export const zPostWorkspacesCurrentToolProviderBuiltinByProviderDefaultCredentialPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zPostWorkspacesCurrentToolProviderBuiltinByProviderDefaultCredentialResponse + = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCurrentToolProviderBuiltinByProviderDeleteBody + = zBuiltinToolCredentialDeletePayload + +export const zPostWorkspacesCurrentToolProviderBuiltinByProviderDeletePath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zPostWorkspacesCurrentToolProviderBuiltinByProviderDeleteResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetWorkspacesCurrentToolProviderBuiltinByProviderIconPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentToolProviderBuiltinByProviderIconResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetWorkspacesCurrentToolProviderBuiltinByProviderInfoPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentToolProviderBuiltinByProviderInfoResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetWorkspacesCurrentToolProviderBuiltinByProviderOauthClientSchemaPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentToolProviderBuiltinByProviderOauthClientSchemaResponse = z.record( + z.string(), + z.unknown(), +) + +export const zDeleteWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zDeleteWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientResponse + = z.record(z.string(), z.unknown()) + +export const zGetWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientBody + = zToolOAuthCustomClientPayload + +export const zPostWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zPostWorkspacesCurrentToolProviderBuiltinByProviderOauthCustomClientResponse + = z.record(z.string(), z.unknown()) + +export const zGetWorkspacesCurrentToolProviderBuiltinByProviderToolsPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentToolProviderBuiltinByProviderToolsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostWorkspacesCurrentToolProviderBuiltinByProviderUpdateBody + = zBuiltinToolUpdatePayload + +export const zPostWorkspacesCurrentToolProviderBuiltinByProviderUpdatePath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zPostWorkspacesCurrentToolProviderBuiltinByProviderUpdateResponse = z.record( + z.string(), + z.unknown(), +) + +export const zDeleteWorkspacesCurrentToolProviderMcpBody = zMcpProviderDeletePayload + +/** + * Success + */ +export const zDeleteWorkspacesCurrentToolProviderMcpResponse = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCurrentToolProviderMcpBody = zMcpProviderCreatePayload + +/** + * Success + */ +export const zPostWorkspacesCurrentToolProviderMcpResponse = z.record(z.string(), z.unknown()) + +export const zPutWorkspacesCurrentToolProviderMcpBody = zMcpProviderUpdatePayload + +/** + * Success + */ +export const zPutWorkspacesCurrentToolProviderMcpResponse = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCurrentToolProviderMcpAuthBody = zMcpAuthPayload + +/** + * Success + */ +export const zPostWorkspacesCurrentToolProviderMcpAuthResponse = z.record(z.string(), z.unknown()) + +export const zGetWorkspacesCurrentToolProviderMcpToolsByProviderIdPath = z.object({ + provider_id: z.string(), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentToolProviderMcpToolsByProviderIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetWorkspacesCurrentToolProviderMcpUpdateByProviderIdPath = z.object({ + provider_id: z.string(), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentToolProviderMcpUpdateByProviderIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostWorkspacesCurrentToolProviderWorkflowCreateBody = zWorkflowToolCreatePayload + +/** + * Success + */ +export const zPostWorkspacesCurrentToolProviderWorkflowCreateResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostWorkspacesCurrentToolProviderWorkflowDeleteBody = zWorkflowToolDeletePayload + +/** + * Success + */ +export const zPostWorkspacesCurrentToolProviderWorkflowDeleteResponse = z.record( + z.string(), + z.unknown(), +) + +/** + * Success + */ +export const zGetWorkspacesCurrentToolProviderWorkflowGetResponse = z.record( + z.string(), + z.unknown(), +) + +/** + * Success + */ +export const zGetWorkspacesCurrentToolProviderWorkflowToolsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostWorkspacesCurrentToolProviderWorkflowUpdateBody = zWorkflowToolUpdatePayload + +/** + * Success + */ +export const zPostWorkspacesCurrentToolProviderWorkflowUpdateResponse = z.record( + z.string(), + z.unknown(), +) + +/** + * Success + */ +export const zGetWorkspacesCurrentToolProvidersResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zGetWorkspacesCurrentToolsApiResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zGetWorkspacesCurrentToolsBuiltinResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zGetWorkspacesCurrentToolsMcpResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zGetWorkspacesCurrentToolsWorkflowResponse = z.record(z.string(), z.unknown()) + +export const zGetWorkspacesCurrentTriggerProviderByProviderIconPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentTriggerProviderByProviderIconResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetWorkspacesCurrentTriggerProviderByProviderInfoPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentTriggerProviderByProviderInfoResponse = z.record( + z.string(), + z.unknown(), +) + +export const zDeleteWorkspacesCurrentTriggerProviderByProviderOauthClientPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zDeleteWorkspacesCurrentTriggerProviderByProviderOauthClientResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetWorkspacesCurrentTriggerProviderByProviderOauthClientPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentTriggerProviderByProviderOauthClientResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostWorkspacesCurrentTriggerProviderByProviderOauthClientBody + = zTriggerOAuthClientPayload + +export const zPostWorkspacesCurrentTriggerProviderByProviderOauthClientPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zPostWorkspacesCurrentTriggerProviderByProviderOauthClientResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderBuildBySubscriptionBuilderIdBody + = zTriggerSubscriptionBuilderUpdatePayload + +export const zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderBuildBySubscriptionBuilderIdPath + = z.object({ + provider: z.string(), + subscription_builder_id: z.string(), + }) + +/** + * Success + */ +export const zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderBuildBySubscriptionBuilderIdResponse + = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderCreateBody + = zTriggerSubscriptionBuilderCreatePayload + +export const zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderCreatePath + = z.object({ + provider: z.string(), + }) + +/** + * Success + */ +export const zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderCreateResponse + = z.record(z.string(), z.unknown()) + +export const zGetWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderLogsBySubscriptionBuilderIdPath + = z.object({ + provider: z.string(), + subscription_builder_id: z.string(), + }) + +/** + * Success + */ +export const zGetWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderLogsBySubscriptionBuilderIdResponse + = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderUpdateBySubscriptionBuilderIdBody + = zTriggerSubscriptionBuilderUpdatePayload + +export const zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderUpdateBySubscriptionBuilderIdPath + = z.object({ + provider: z.string(), + subscription_builder_id: z.string(), + }) + +/** + * Success + */ +export const zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderUpdateBySubscriptionBuilderIdResponse + = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderVerifyAndUpdateBySubscriptionBuilderIdBody + = zTriggerSubscriptionBuilderVerifyPayload + +export const zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderVerifyAndUpdateBySubscriptionBuilderIdPath + = z.object({ + provider: z.string(), + subscription_builder_id: z.string(), + }) + +/** + * Success + */ +export const zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderVerifyAndUpdateBySubscriptionBuilderIdResponse + = z.record(z.string(), z.unknown()) + +export const zGetWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderBySubscriptionBuilderIdPath + = z.object({ + provider: z.string(), + subscription_builder_id: z.string(), + }) + +/** + * Success + */ +export const zGetWorkspacesCurrentTriggerProviderByProviderSubscriptionsBuilderBySubscriptionBuilderIdResponse + = z.record(z.string(), z.unknown()) + +export const zGetWorkspacesCurrentTriggerProviderByProviderSubscriptionsListPath = z.object({ + provider: z.string(), +}) + +/** + * Success + */ +export const zGetWorkspacesCurrentTriggerProviderByProviderSubscriptionsListResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetWorkspacesCurrentTriggerProviderByProviderSubscriptionsOauthAuthorizePath + = z.object({ + provider: z.string(), + }) + +/** + * Success + */ +export const zGetWorkspacesCurrentTriggerProviderByProviderSubscriptionsOauthAuthorizeResponse + = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsVerifyBySubscriptionIdBody + = zTriggerSubscriptionBuilderVerifyPayload + +export const zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsVerifyBySubscriptionIdPath + = z.object({ + provider: z.string(), + subscription_id: z.string(), + }) + +/** + * Success + */ +export const zPostWorkspacesCurrentTriggerProviderByProviderSubscriptionsVerifyBySubscriptionIdResponse + = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCurrentTriggerProviderBySubscriptionIdSubscriptionsDeletePath + = z.object({ + subscription_id: z.string(), + }) + +/** + * Success + */ +export const zPostWorkspacesCurrentTriggerProviderBySubscriptionIdSubscriptionsDeleteResponse + = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCurrentTriggerProviderBySubscriptionIdSubscriptionsUpdateBody + = zTriggerSubscriptionBuilderUpdatePayload + +export const zPostWorkspacesCurrentTriggerProviderBySubscriptionIdSubscriptionsUpdatePath + = z.object({ + subscription_id: z.string(), + }) + +/** + * Success + */ +export const zPostWorkspacesCurrentTriggerProviderBySubscriptionIdSubscriptionsUpdateResponse + = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zGetWorkspacesCurrentTriggersResponse = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesCustomConfigBody = zWorkspaceCustomConfigPayload + +/** + * Success + */ +export const zPostWorkspacesCustomConfigResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zPostWorkspacesCustomConfigWebappLogoUploadResponse = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesInfoBody = zWorkspaceInfoPayload + +/** + * Success + */ +export const zPostWorkspacesInfoResponse = z.record(z.string(), z.unknown()) + +export const zPostWorkspacesSwitchBody = zSwitchWorkspacePayload + +/** + * Success + */ +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(), +}) + +/** + * Success + */ +export const zGetWorkspacesByTenantIdModelProvidersByProviderByIconTypeByLangResponse = z.record( + z.string(), + z.unknown(), +) diff --git a/packages/contracts/generated/api/service/orpc.gen.ts b/packages/contracts/generated/api/service/orpc.gen.ts new file mode 100644 index 0000000000..a5a45a6452 --- /dev/null +++ b/packages/contracts/generated/api/service/orpc.gen.ts @@ -0,0 +1,2405 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zDeleteAppsAnnotationsByAnnotationIdPath, + zDeleteAppsAnnotationsByAnnotationIdResponse, + zDeleteConversationsByCIdPath, + zDeleteConversationsByCIdResponse, + zDeleteDatasetsByDatasetIdDocumentsByDocumentIdPath, + zDeleteDatasetsByDatasetIdDocumentsByDocumentIdResponse, + zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdPath, + zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdResponse, + zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdPath, + zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponse, + zDeleteDatasetsByDatasetIdMetadataByMetadataIdPath, + zDeleteDatasetsByDatasetIdMetadataByMetadataIdResponse, + zDeleteDatasetsByDatasetIdPath, + zDeleteDatasetsByDatasetIdResponse, + zDeleteDatasetsTagsBody, + zDeleteDatasetsTagsResponse, + zGetAppFeedbacksQuery, + zGetAppFeedbacksResponse, + zGetAppsAnnotationReplyByActionStatusByJobIdPath, + zGetAppsAnnotationReplyByActionStatusByJobIdResponse, + zGetAppsAnnotationsResponse, + zGetConversationsByCIdVariablesPath, + zGetConversationsByCIdVariablesQuery, + zGetConversationsByCIdVariablesResponse, + zGetConversationsQuery, + zGetConversationsResponse, + zGetDatasetsByDatasetIdDocumentsByBatchIndexingStatusPath, + zGetDatasetsByDatasetIdDocumentsByBatchIndexingStatusResponse, + zGetDatasetsByDatasetIdDocumentsByDocumentIdDownloadPath, + zGetDatasetsByDatasetIdDocumentsByDocumentIdDownloadResponse, + zGetDatasetsByDatasetIdDocumentsByDocumentIdPath, + zGetDatasetsByDatasetIdDocumentsByDocumentIdResponse, + zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksPath, + zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksQuery, + zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponse, + zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdPath, + zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponse, + zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsPath, + zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsQuery, + zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsResponse, + zGetDatasetsByDatasetIdDocumentsPath, + zGetDatasetsByDatasetIdDocumentsResponse, + zGetDatasetsByDatasetIdMetadataBuiltInPath, + zGetDatasetsByDatasetIdMetadataBuiltInResponse, + zGetDatasetsByDatasetIdMetadataPath, + zGetDatasetsByDatasetIdMetadataResponse, + zGetDatasetsByDatasetIdPath, + zGetDatasetsByDatasetIdPipelineDatasourcePluginsPath, + zGetDatasetsByDatasetIdPipelineDatasourcePluginsQuery, + zGetDatasetsByDatasetIdPipelineDatasourcePluginsResponse, + zGetDatasetsByDatasetIdResponse, + zGetDatasetsByDatasetIdTagsPath, + zGetDatasetsByDatasetIdTagsResponse, + zGetDatasetsResponse, + zGetDatasetsTagsResponse, + zGetEndUsersByEndUserIdPath, + zGetEndUsersByEndUserIdResponse, + zGetFilesByFileIdPreviewPath, + zGetFilesByFileIdPreviewQuery, + zGetFilesByFileIdPreviewResponse, + zGetFormHumanInputByFormTokenPath, + zGetFormHumanInputByFormTokenResponse, + zGetInfoResponse, + zGetMessagesByMessageIdSuggestedPath, + zGetMessagesByMessageIdSuggestedResponse, + zGetMessagesQuery, + zGetMessagesResponse, + zGetMetaResponse, + zGetParametersResponse, + zGetRootResponse, + zGetSiteResponse, + zGetWorkflowByTaskIdEventsPath, + zGetWorkflowByTaskIdEventsQuery, + zGetWorkflowByTaskIdEventsResponse, + zGetWorkflowsLogsQuery, + zGetWorkflowsLogsResponse, + zGetWorkflowsRunByWorkflowRunIdPath, + zGetWorkflowsRunByWorkflowRunIdResponse, + zGetWorkspacesCurrentModelsModelTypesByModelTypePath, + zGetWorkspacesCurrentModelsModelTypesByModelTypeResponse, + zPatchDatasetsByDatasetIdBody, + zPatchDatasetsByDatasetIdDocumentsByDocumentIdPath, + zPatchDatasetsByDatasetIdDocumentsByDocumentIdResponse, + zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdBody, + zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdPath, + zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdResponse, + zPatchDatasetsByDatasetIdDocumentsStatusByActionPath, + zPatchDatasetsByDatasetIdDocumentsStatusByActionResponse, + zPatchDatasetsByDatasetIdMetadataByMetadataIdBody, + zPatchDatasetsByDatasetIdMetadataByMetadataIdPath, + zPatchDatasetsByDatasetIdMetadataByMetadataIdResponse, + zPatchDatasetsByDatasetIdPath, + zPatchDatasetsByDatasetIdResponse, + zPatchDatasetsTagsBody, + zPatchDatasetsTagsResponse, + zPostAppsAnnotationReplyByActionBody, + zPostAppsAnnotationReplyByActionPath, + zPostAppsAnnotationReplyByActionResponse, + zPostAppsAnnotationsBody, + zPostAppsAnnotationsResponse, + zPostAudioToTextResponse, + zPostChatMessagesBody, + zPostChatMessagesByTaskIdStopPath, + zPostChatMessagesByTaskIdStopResponse, + zPostChatMessagesResponse, + zPostCompletionMessagesBody, + zPostCompletionMessagesByTaskIdStopPath, + zPostCompletionMessagesByTaskIdStopResponse, + zPostCompletionMessagesResponse, + zPostConversationsByCIdNameBody, + zPostConversationsByCIdNamePath, + zPostConversationsByCIdNameResponse, + zPostDatasetsBody, + zPostDatasetsByDatasetIdDocumentCreateByFile2Path, + zPostDatasetsByDatasetIdDocumentCreateByFile2Response, + zPostDatasetsByDatasetIdDocumentCreateByFilePath, + zPostDatasetsByDatasetIdDocumentCreateByFileResponse, + zPostDatasetsByDatasetIdDocumentCreateByText2Body, + zPostDatasetsByDatasetIdDocumentCreateByText2Path, + zPostDatasetsByDatasetIdDocumentCreateByText2Response, + zPostDatasetsByDatasetIdDocumentCreateByTextBody, + zPostDatasetsByDatasetIdDocumentCreateByTextPath, + zPostDatasetsByDatasetIdDocumentCreateByTextResponse, + zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBody, + zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdBody, + zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksBody, + zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksPath, + zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponse, + zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdPath, + zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponse, + zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsPath, + zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsResponse, + zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFile2Path, + zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFile2Response, + zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFilePath, + zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFileResponse, + zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByText2Body, + zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByText2Path, + zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByText2Response, + zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByTextBody, + zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByTextPath, + zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByTextResponse, + zPostDatasetsByDatasetIdDocumentsDownloadZipBody, + zPostDatasetsByDatasetIdDocumentsDownloadZipPath, + zPostDatasetsByDatasetIdDocumentsDownloadZipResponse, + zPostDatasetsByDatasetIdDocumentsMetadataBody, + zPostDatasetsByDatasetIdDocumentsMetadataPath, + zPostDatasetsByDatasetIdDocumentsMetadataResponse, + zPostDatasetsByDatasetIdHitTestingBody, + zPostDatasetsByDatasetIdHitTestingPath, + zPostDatasetsByDatasetIdHitTestingResponse, + zPostDatasetsByDatasetIdMetadataBody, + zPostDatasetsByDatasetIdMetadataBuiltInByActionPath, + zPostDatasetsByDatasetIdMetadataBuiltInByActionResponse, + zPostDatasetsByDatasetIdMetadataPath, + zPostDatasetsByDatasetIdMetadataResponse, + zPostDatasetsByDatasetIdPipelineDatasourceNodesByNodeIdRunPath, + zPostDatasetsByDatasetIdPipelineDatasourceNodesByNodeIdRunResponse, + zPostDatasetsByDatasetIdPipelineRunPath, + zPostDatasetsByDatasetIdPipelineRunResponse, + zPostDatasetsByDatasetIdRetrieveBody, + zPostDatasetsByDatasetIdRetrievePath, + zPostDatasetsByDatasetIdRetrieveResponse, + zPostDatasetsPipelineFileUploadResponse, + zPostDatasetsResponse, + zPostDatasetsTagsBindingBody, + zPostDatasetsTagsBindingResponse, + zPostDatasetsTagsBody, + zPostDatasetsTagsResponse, + zPostDatasetsTagsUnbindingBody, + zPostDatasetsTagsUnbindingResponse, + zPostFilesUploadResponse, + zPostFormHumanInputByFormTokenBody, + zPostFormHumanInputByFormTokenPath, + zPostFormHumanInputByFormTokenResponse, + zPostMessagesByMessageIdFeedbacksBody, + zPostMessagesByMessageIdFeedbacksPath, + zPostMessagesByMessageIdFeedbacksResponse, + zPostTextToAudioBody, + zPostTextToAudioResponse, + zPostWorkflowsByWorkflowIdRunBody, + zPostWorkflowsByWorkflowIdRunPath, + zPostWorkflowsByWorkflowIdRunResponse, + zPostWorkflowsRunBody, + zPostWorkflowsRunResponse, + zPostWorkflowsTasksByTaskIdStopPath, + zPostWorkflowsTasksByTaskIdStopResponse, + zPutAppsAnnotationsByAnnotationIdBody, + zPutAppsAnnotationsByAnnotationIdPath, + zPutAppsAnnotationsByAnnotationIdResponse, + zPutConversationsByCIdVariablesByVariableIdBody, + zPutConversationsByCIdVariablesByVariableIdPath, + zPutConversationsByCIdVariablesByVariableIdResponse, +} from './zod.gen' + +export const get = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'getRoot', + path: '/', + tags: ['service_api'], + }) + .output(zGetRootResponse) + +export const root = { + get, +} + +/** + * Get all feedbacks for the application + * + * Get all feedbacks for the application + * Returns paginated list of all feedback submitted for messages in this app. + */ +export const get2 = oc + .route({ + description: + 'Get all feedbacks for the application\nReturns paginated list of all feedback submitted for messages in this app.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppFeedbacks', + path: '/app/feedbacks', + summary: 'Get all feedbacks for the application', + tags: ['service_api'], + }) + .input(z.object({ query: zGetAppFeedbacksQuery.optional() })) + .output(zGetAppFeedbacksResponse) + +export const feedbacks = { + get: get2, +} + +export const app = { + feedbacks, +} + +/** + * Get the status of an annotation reply action job + * + * Get the status of an annotation reply action job + */ +export const get3 = oc + .route({ + description: 'Get the status of an annotation reply action job', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsAnnotationReplyByActionStatusByJobId', + path: '/apps/annotation-reply/{action}/status/{job_id}', + summary: 'Get the status of an annotation reply action job', + tags: ['service_api'], + }) + .input(z.object({ params: zGetAppsAnnotationReplyByActionStatusByJobIdPath })) + .output(zGetAppsAnnotationReplyByActionStatusByJobIdResponse) + +export const byJobId = { + get: get3, +} + +export const status = { + byJobId, +} + +/** + * Enable or disable annotation reply feature + * + * Enable or disable annotation reply feature + */ +export const post = oc + .route({ + description: 'Enable or disable annotation reply feature', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsAnnotationReplyByAction', + path: '/apps/annotation-reply/{action}', + summary: 'Enable or disable annotation reply feature', + tags: ['service_api'], + }) + .input( + z.object({ + body: zPostAppsAnnotationReplyByActionBody, + params: zPostAppsAnnotationReplyByActionPath, + }), + ) + .output(zPostAppsAnnotationReplyByActionResponse) + +export const byAction = { + post, + status, +} + +export const annotationReply = { + byAction, +} + +/** + * Delete an annotation + * + * Delete an annotation + */ +export const delete_ = oc + .route({ + description: 'Delete an annotation', + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteAppsAnnotationsByAnnotationId', + path: '/apps/annotations/{annotation_id}', + successStatus: 204, + summary: 'Delete an annotation', + tags: ['service_api'], + }) + .input(z.object({ params: zDeleteAppsAnnotationsByAnnotationIdPath })) + .output(zDeleteAppsAnnotationsByAnnotationIdResponse) + +/** + * Update an existing annotation + * + * Update an existing annotation + */ +export const put = oc + .route({ + description: 'Update an existing annotation', + inputStructure: 'detailed', + method: 'PUT', + operationId: 'putAppsAnnotationsByAnnotationId', + path: '/apps/annotations/{annotation_id}', + summary: 'Update an existing annotation', + tags: ['service_api'], + }) + .input( + z.object({ + body: zPutAppsAnnotationsByAnnotationIdBody, + params: zPutAppsAnnotationsByAnnotationIdPath, + }), + ) + .output(zPutAppsAnnotationsByAnnotationIdResponse) + +export const byAnnotationId = { + delete: delete_, + put, +} + +/** + * List annotations for the application + * + * List annotations for the application + */ +export const get4 = oc + .route({ + description: 'List annotations for the application', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getAppsAnnotations', + path: '/apps/annotations', + summary: 'List annotations for the application', + tags: ['service_api'], + }) + .output(zGetAppsAnnotationsResponse) + +/** + * Create a new annotation + * + * Create a new annotation + */ +export const post2 = oc + .route({ + description: 'Create a new annotation', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAppsAnnotations', + path: '/apps/annotations', + successStatus: 201, + summary: 'Create a new annotation', + tags: ['service_api'], + }) + .input(z.object({ body: zPostAppsAnnotationsBody })) + .output(zPostAppsAnnotationsResponse) + +export const annotations = { + get: get4, + post: post2, + byAnnotationId, +} + +export const apps = { + annotationReply, + annotations, +} + +/** + * Convert audio to text using speech-to-text + * + * Convert audio to text using speech-to-text + * Accepts an audio file upload and returns the transcribed text. + */ +export const post3 = oc + .route({ + description: + 'Convert audio to text using speech-to-text\nAccepts an audio file upload and returns the transcribed text.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAudioToText', + path: '/audio-to-text', + summary: 'Convert audio to text using speech-to-text', + tags: ['service_api'], + }) + .output(zPostAudioToTextResponse) + +export const audioToText = { + post: post3, +} + +/** + * Stop a running chat message generation + * + * Stop a running chat message generation + */ +export const post4 = oc + .route({ + description: 'Stop a running chat message generation', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postChatMessagesByTaskIdStop', + path: '/chat-messages/{task_id}/stop', + summary: 'Stop a running chat message generation', + tags: ['service_api'], + }) + .input(z.object({ params: zPostChatMessagesByTaskIdStopPath })) + .output(zPostChatMessagesByTaskIdStopResponse) + +export const stop = { + post: post4, +} + +export const byTaskId = { + stop, +} + +/** + * Send a message in a chat conversation + * + * Send a message in a chat conversation + * This endpoint handles chat messages for chat, agent chat, and advanced chat applications. + * Supports conversation management and both blocking and streaming response modes. + */ +export const post5 = oc + .route({ + description: + 'Send a message in a chat conversation\nThis endpoint handles chat messages for chat, agent chat, and advanced chat applications.\nSupports conversation management and both blocking and streaming response modes.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postChatMessages', + path: '/chat-messages', + summary: 'Send a message in a chat conversation', + tags: ['service_api'], + }) + .input(z.object({ body: zPostChatMessagesBody })) + .output(zPostChatMessagesResponse) + +export const chatMessages = { + post: post5, + byTaskId, +} + +/** + * Stop a running completion task + * + * Stop a running completion task + */ +export const post6 = oc + .route({ + description: 'Stop a running completion task', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postCompletionMessagesByTaskIdStop', + path: '/completion-messages/{task_id}/stop', + summary: 'Stop a running completion task', + tags: ['service_api'], + }) + .input(z.object({ params: zPostCompletionMessagesByTaskIdStopPath })) + .output(zPostCompletionMessagesByTaskIdStopResponse) + +export const stop2 = { + post: post6, +} + +export const byTaskId2 = { + stop: stop2, +} + +/** + * Create a completion for the given prompt + * + * Create a completion for the given prompt + * This endpoint generates a completion based on the provided inputs and query. + * Supports both blocking and streaming response modes. + */ +export const post7 = oc + .route({ + description: + 'Create a completion for the given prompt\nThis endpoint generates a completion based on the provided inputs and query.\nSupports both blocking and streaming response modes.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postCompletionMessages', + path: '/completion-messages', + summary: 'Create a completion for the given prompt', + tags: ['service_api'], + }) + .input(z.object({ body: zPostCompletionMessagesBody })) + .output(zPostCompletionMessagesResponse) + +export const completionMessages = { + post: post7, + byTaskId: byTaskId2, +} + +/** + * Rename a conversation or auto-generate a name + * + * Rename a conversation or auto-generate a name + */ +export const post8 = oc + .route({ + description: 'Rename a conversation or auto-generate a name', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postConversationsByCIdName', + path: '/conversations/{c_id}/name', + summary: 'Rename a conversation or auto-generate a name', + tags: ['service_api'], + }) + .input( + z.object({ body: zPostConversationsByCIdNameBody, params: zPostConversationsByCIdNamePath }), + ) + .output(zPostConversationsByCIdNameResponse) + +export const name = { + post: post8, +} + +/** + * Update a conversation variable's value + * + * Update a conversation variable's value + * Allows updating the value of a specific conversation variable. + * The value must match the variable's expected type. + */ +export const put2 = oc + .route({ + description: + 'Update a conversation variable\'s value\nAllows updating the value of a specific conversation variable.\nThe value must match the variable\'s expected type.', + inputStructure: 'detailed', + method: 'PUT', + operationId: 'putConversationsByCIdVariablesByVariableId', + path: '/conversations/{c_id}/variables/{variable_id}', + summary: 'Update a conversation variable\'s value', + tags: ['service_api'], + }) + .input( + z.object({ + body: zPutConversationsByCIdVariablesByVariableIdBody, + params: zPutConversationsByCIdVariablesByVariableIdPath, + }), + ) + .output(zPutConversationsByCIdVariablesByVariableIdResponse) + +export const byVariableId = { + put: put2, +} + +/** + * List all variables for a conversation + * + * List all variables for a conversation + * Conversational variables are only available for chat applications. + */ +export const get5 = oc + .route({ + description: + 'List all variables for a conversation\nConversational variables are only available for chat applications.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getConversationsByCIdVariables', + path: '/conversations/{c_id}/variables', + summary: 'List all variables for a conversation', + tags: ['service_api'], + }) + .input( + z.object({ + params: zGetConversationsByCIdVariablesPath, + query: zGetConversationsByCIdVariablesQuery.optional(), + }), + ) + .output(zGetConversationsByCIdVariablesResponse) + +export const variables = { + get: get5, + byVariableId, +} + +/** + * Delete a specific conversation + * + * Delete a specific conversation + */ +export const delete2 = oc + .route({ + description: 'Delete a specific conversation', + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteConversationsByCId', + path: '/conversations/{c_id}', + successStatus: 204, + summary: 'Delete a specific conversation', + tags: ['service_api'], + }) + .input(z.object({ params: zDeleteConversationsByCIdPath })) + .output(zDeleteConversationsByCIdResponse) + +export const byCId = { + delete: delete2, + name, + variables, +} + +/** + * List all conversations for the current user + * + * List all conversations for the current user + * Supports pagination using last_id and limit parameters. + */ +export const get6 = oc + .route({ + description: + 'List all conversations for the current user\nSupports pagination using last_id and limit parameters.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getConversations', + path: '/conversations', + summary: 'List all conversations for the current user', + tags: ['service_api'], + }) + .input(z.object({ query: zGetConversationsQuery.optional() })) + .output(zGetConversationsResponse) + +export const conversations = { + get: get6, + byCId, +} + +/** + * Upload a file for use in conversations + * + * Upload a file to a knowledgebase pipeline + * Accepts a single file upload via multipart/form-data. + */ +export const post9 = oc + .route({ + description: + 'Upload a file to a knowledgebase pipeline\nAccepts a single file upload via multipart/form-data.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsPipelineFileUpload', + path: '/datasets/pipeline/file-upload', + successStatus: 201, + summary: 'Upload a file for use in conversations', + tags: ['service_api'], + }) + .output(zPostDatasetsPipelineFileUploadResponse) + +export const fileUpload = { + post: post9, +} + +export const pipeline = { + fileUpload, +} + +/** + * Bind tags to a dataset + */ +export const post10 = oc + .route({ + description: 'Bind tags to a dataset', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsTagsBinding', + path: '/datasets/tags/binding', + successStatus: 204, + tags: ['service_api'], + }) + .input(z.object({ body: zPostDatasetsTagsBindingBody })) + .output(zPostDatasetsTagsBindingResponse) + +export const binding = { + post: post10, +} + +/** + * Unbind a tag from a dataset + */ +export const post11 = oc + .route({ + description: 'Unbind a tag from a dataset', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsTagsUnbinding', + path: '/datasets/tags/unbinding', + successStatus: 204, + tags: ['service_api'], + }) + .input(z.object({ body: zPostDatasetsTagsUnbindingBody })) + .output(zPostDatasetsTagsUnbindingResponse) + +export const unbinding = { + post: post11, +} + +/** + * Delete a knowledge type tag + * + * Delete a knowledge type tag + */ +export const delete3 = oc + .route({ + description: 'Delete a knowledge type tag', + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteDatasetsTags', + path: '/datasets/tags', + successStatus: 204, + summary: 'Delete a knowledge type tag', + tags: ['service_api'], + }) + .input(z.object({ body: zDeleteDatasetsTagsBody })) + .output(zDeleteDatasetsTagsResponse) + +/** + * Get all knowledge type tags + * + * Get all knowledge type tags + */ +export const get7 = oc + .route({ + description: 'Get all knowledge type tags', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsTags', + path: '/datasets/tags', + summary: 'Get all knowledge type tags', + tags: ['service_api'], + }) + .output(zGetDatasetsTagsResponse) + +/** + * Update a knowledge type tag + */ +export const patch = oc + .route({ + description: 'Update a knowledge type tag', + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchDatasetsTags', + path: '/datasets/tags', + tags: ['service_api'], + }) + .input(z.object({ body: zPatchDatasetsTagsBody })) + .output(zPatchDatasetsTagsResponse) + +/** + * Add a knowledge type tag + * + * Add a knowledge type tag + */ +export const post12 = oc + .route({ + description: 'Add a knowledge type tag', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsTags', + path: '/datasets/tags', + summary: 'Add a knowledge type tag', + tags: ['service_api'], + }) + .input(z.object({ body: zPostDatasetsTagsBody })) + .output(zPostDatasetsTagsResponse) + +export const tags = { + delete: delete3, + get: get7, + patch, + post: post12, + binding, + unbinding, +} + +/** + * Create a new document by uploading a file + */ +export const post13 = oc + .route({ + description: 'Create a new document by uploading a file', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdDocumentCreateByFile', + path: '/datasets/{dataset_id}/document/create-by-file', + tags: ['service_api'], + }) + .input(z.object({ params: zPostDatasetsByDatasetIdDocumentCreateByFilePath })) + .output(zPostDatasetsByDatasetIdDocumentCreateByFileResponse) + +/** + * Create a new document by uploading a file + */ +export const post14 = oc + .route({ + description: 'Create a new document by uploading a file', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdDocumentCreateByFile', + path: '/datasets/{dataset_id}/document/create_by_file', + tags: ['service_api'], + }) + .input(z.object({ params: zPostDatasetsByDatasetIdDocumentCreateByFile2Path })) + .output(zPostDatasetsByDatasetIdDocumentCreateByFile2Response) + +export const createByFile = { + post: post14, +} + +/** + * Create a new document by providing text content + */ +export const post15 = oc + .route({ + description: 'Create a new document by providing text content', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdDocumentCreateByText', + path: '/datasets/{dataset_id}/document/create-by-text', + tags: ['service_api'], + }) + .input( + z.object({ + body: zPostDatasetsByDatasetIdDocumentCreateByTextBody, + params: zPostDatasetsByDatasetIdDocumentCreateByTextPath, + }), + ) + .output(zPostDatasetsByDatasetIdDocumentCreateByTextResponse) + +/** + * Deprecated legacy alias for creating a new document by providing text content. Use /datasets/{dataset_id}/document/create-by-text instead. + * + * @deprecated + */ +export const post16 = oc + .route({ + deprecated: true, + description: + 'Deprecated legacy alias for creating a new document by providing text content. Use /datasets/{dataset_id}/document/create-by-text instead.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdDocumentCreateByText', + path: '/datasets/{dataset_id}/document/create_by_text', + tags: ['service_api'], + }) + .input( + z.object({ + body: zPostDatasetsByDatasetIdDocumentCreateByText2Body, + params: zPostDatasetsByDatasetIdDocumentCreateByText2Path, + }), + ) + .output(zPostDatasetsByDatasetIdDocumentCreateByText2Response) + +export const createByText = { + post: post16, +} + +export const document_ = { + createByFile, + createByText, +} + +/** + * Download selected uploaded documents as a single ZIP archive + */ +export const post17 = oc + .route({ + description: 'Download selected uploaded documents as a single ZIP archive', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdDocumentsDownloadZip', + path: '/datasets/{dataset_id}/documents/download-zip', + tags: ['service_api'], + }) + .input( + z.object({ + body: zPostDatasetsByDatasetIdDocumentsDownloadZipBody, + params: zPostDatasetsByDatasetIdDocumentsDownloadZipPath, + }), + ) + .output(zPostDatasetsByDatasetIdDocumentsDownloadZipResponse) + +export const downloadZip = { + post: post17, +} + +/** + * Update metadata for multiple documents + * + * Update metadata for multiple documents + */ +export const post18 = oc + .route({ + description: 'Update metadata for multiple documents', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdDocumentsMetadata', + path: '/datasets/{dataset_id}/documents/metadata', + summary: 'Update metadata for multiple documents', + tags: ['service_api'], + }) + .input( + z.object({ + body: zPostDatasetsByDatasetIdDocumentsMetadataBody, + params: zPostDatasetsByDatasetIdDocumentsMetadataPath, + }), + ) + .output(zPostDatasetsByDatasetIdDocumentsMetadataResponse) + +export const metadata = { + post: post18, +} + +/** + * Batch update document status + * + * Batch update document status + * Args: + * tenant_id: tenant id + * dataset_id: dataset id + * action: action to perform (Literal["enable", "disable", "archive", "un_archive"]) + * + * Returns: + * dict: A dictionary with a key 'result' and a value 'success' + * int: HTTP status code 200 indicating that the operation was successful. + * + * Raises: + * NotFound: If the dataset with the given ID does not exist. + * Forbidden: If the user does not have permission. + * InvalidActionError: If the action is invalid or cannot be performed. + */ +export const patch2 = oc + .route({ + description: + 'Batch update document status\nArgs:\n tenant_id: tenant id\n dataset_id: dataset id\n action: action to perform (Literal["enable", "disable", "archive", "un_archive"])\n\nReturns:\n dict: A dictionary with a key \'result\' and a value \'success\'\n int: HTTP status code 200 indicating that the operation was successful.\n\nRaises:\n NotFound: If the dataset with the given ID does not exist.\n Forbidden: If the user does not have permission.\n InvalidActionError: If the action is invalid or cannot be performed.', + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchDatasetsByDatasetIdDocumentsStatusByAction', + path: '/datasets/{dataset_id}/documents/status/{action}', + summary: 'Batch update document status', + tags: ['service_api'], + }) + .input(z.object({ params: zPatchDatasetsByDatasetIdDocumentsStatusByActionPath })) + .output(zPatchDatasetsByDatasetIdDocumentsStatusByActionResponse) + +export const byAction2 = { + patch: patch2, +} + +export const status2 = { + byAction: byAction2, +} + +/** + * Get indexing status for documents in a batch + */ +export const get8 = oc + .route({ + description: 'Get indexing status for documents in a batch', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdDocumentsByBatchIndexingStatus', + path: '/datasets/{dataset_id}/documents/{batch}/indexing-status', + tags: ['service_api'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdDocumentsByBatchIndexingStatusPath })) + .output(zGetDatasetsByDatasetIdDocumentsByBatchIndexingStatusResponse) + +export const indexingStatus = { + get: get8, +} + +export const byBatch = { + indexingStatus, +} + +/** + * Get a signed download URL for a document's original uploaded file + */ +export const get9 = oc + .route({ + description: 'Get a signed download URL for a document\'s original uploaded file', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdDocumentsByDocumentIdDownload', + path: '/datasets/{dataset_id}/documents/{document_id}/download', + tags: ['service_api'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdDocumentsByDocumentIdDownloadPath })) + .output(zGetDatasetsByDatasetIdDocumentsByDocumentIdDownloadResponse) + +export const download = { + get: get9, +} + +/** + * Delete a specific child chunk + */ +export const delete4 = oc + .route({ + description: 'Delete a specific child chunk', + inputStructure: 'detailed', + method: 'DELETE', + operationId: + 'deleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkId', + path: '/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}/child_chunks/{child_chunk_id}', + successStatus: 204, + tags: ['service_api'], + }) + .input( + z.object({ + params: + zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdPath, + }), + ) + .output( + zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdResponse, + ) + +/** + * Update a specific child chunk + */ +export const patch3 = oc + .route({ + description: 'Update a specific child chunk', + inputStructure: 'detailed', + method: 'PATCH', + operationId: + 'patchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkId', + path: '/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}/child_chunks/{child_chunk_id}', + tags: ['service_api'], + }) + .input( + z.object({ + body: zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdBody, + params: + zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdPath, + }), + ) + .output( + zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdResponse, + ) + +export const byChildChunkId = { + delete: delete4, + patch: patch3, +} + +/** + * List child chunks for a segment + */ +export const get10 = oc + .route({ + description: 'List child chunks for a segment', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunks', + path: '/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}/child_chunks', + tags: ['service_api'], + }) + .input( + z.object({ + params: zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksPath, + query: + zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksQuery.optional(), + }), + ) + .output(zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponse) + +/** + * Create a new child chunk for a segment + */ +export const post19 = oc + .route({ + description: 'Create a new child chunk for a segment', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunks', + path: '/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}/child_chunks', + tags: ['service_api'], + }) + .input( + z.object({ + body: zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksBody, + params: zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksPath, + }), + ) + .output(zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponse) + +export const childChunks = { + get: get10, + post: post19, + byChildChunkId, +} + +/** + * Delete a specific segment + */ +export const delete5 = oc + .route({ + description: 'Delete a specific segment', + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentId', + path: '/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}', + successStatus: 204, + tags: ['service_api'], + }) + .input( + z.object({ params: zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdPath }), + ) + .output(zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponse) + +/** + * Get a specific segment by ID + */ +export const get11 = oc + .route({ + description: 'Get a specific segment by ID', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentId', + path: '/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}', + tags: ['service_api'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdPath })) + .output(zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponse) + +/** + * Update a specific segment + */ +export const post20 = oc + .route({ + description: 'Update a specific segment', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentId', + path: '/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}', + tags: ['service_api'], + }) + .input( + z.object({ + body: zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdBody, + params: zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdPath, + }), + ) + .output(zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponse) + +export const bySegmentId = { + delete: delete5, + get: get11, + post: post20, + childChunks, +} + +/** + * List segments in a document + */ +export const get12 = oc + .route({ + description: 'List segments in a document', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdDocumentsByDocumentIdSegments', + path: '/datasets/{dataset_id}/documents/{document_id}/segments', + tags: ['service_api'], + }) + .input( + z.object({ + params: zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsPath, + query: zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsQuery.optional(), + }), + ) + .output(zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsResponse) + +/** + * Create segments in a document + */ +export const post21 = oc + .route({ + description: 'Create segments in a document', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdDocumentsByDocumentIdSegments', + path: '/datasets/{dataset_id}/documents/{document_id}/segments', + tags: ['service_api'], + }) + .input( + z.object({ + body: zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBody, + params: zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsPath, + }), + ) + .output(zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsResponse) + +export const segments = { + get: get12, + post: post21, + bySegmentId, +} + +/** + * Deprecated legacy alias for updating an existing document by uploading a file. Use PATCH /datasets/{dataset_id}/documents/{document_id} instead. + * + * @deprecated + */ +export const post22 = oc + .route({ + deprecated: true, + description: + 'Deprecated legacy alias for updating an existing document by uploading a file. Use PATCH /datasets/{dataset_id}/documents/{document_id} instead.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFile', + path: '/datasets/{dataset_id}/documents/{document_id}/update-by-file', + tags: ['service_api'], + }) + .input(z.object({ params: zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFilePath })) + .output(zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFileResponse) + +/** + * Deprecated legacy alias for updating an existing document by uploading a file. Use PATCH /datasets/{dataset_id}/documents/{document_id} instead. + * + * @deprecated + */ +export const post23 = oc + .route({ + deprecated: true, + description: + 'Deprecated legacy alias for updating an existing document by uploading a file. Use PATCH /datasets/{dataset_id}/documents/{document_id} instead.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFile', + path: '/datasets/{dataset_id}/documents/{document_id}/update_by_file', + tags: ['service_api'], + }) + .input(z.object({ params: zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFile2Path })) + .output(zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFile2Response) + +export const updateByFile = { + post: post23, +} + +/** + * Update an existing document by providing text content + */ +export const post24 = oc + .route({ + description: 'Update an existing document by providing text content', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdDocumentsByDocumentIdUpdateByText', + path: '/datasets/{dataset_id}/documents/{document_id}/update-by-text', + tags: ['service_api'], + }) + .input( + z.object({ + body: zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByTextBody, + params: zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByTextPath, + }), + ) + .output(zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByTextResponse) + +/** + * Deprecated legacy alias for updating an existing document by providing text content. Use /datasets/{dataset_id}/documents/{document_id}/update-by-text instead. + * + * @deprecated + */ +export const post25 = oc + .route({ + deprecated: true, + description: + 'Deprecated legacy alias for updating an existing document by providing text content. Use /datasets/{dataset_id}/documents/{document_id}/update-by-text instead.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdDocumentsByDocumentIdUpdateByText', + path: '/datasets/{dataset_id}/documents/{document_id}/update_by_text', + tags: ['service_api'], + }) + .input( + z.object({ + body: zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByText2Body, + params: zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByText2Path, + }), + ) + .output(zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByText2Response) + +export const updateByText = { + post: post25, +} + +/** + * Delete document + * + * Delete a document + */ +export const delete6 = oc + .route({ + description: 'Delete a document', + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteDatasetsByDatasetIdDocumentsByDocumentId', + path: '/datasets/{dataset_id}/documents/{document_id}', + successStatus: 204, + summary: 'Delete document', + tags: ['service_api'], + }) + .input(z.object({ params: zDeleteDatasetsByDatasetIdDocumentsByDocumentIdPath })) + .output(zDeleteDatasetsByDatasetIdDocumentsByDocumentIdResponse) + +/** + * Get a specific document by ID + */ +export const get13 = oc + .route({ + description: 'Get a specific document by ID', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdDocumentsByDocumentId', + path: '/datasets/{dataset_id}/documents/{document_id}', + tags: ['service_api'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdDocumentsByDocumentIdPath })) + .output(zGetDatasetsByDatasetIdDocumentsByDocumentIdResponse) + +/** + * Update an existing document by uploading a file + */ +export const patch4 = oc + .route({ + description: 'Update an existing document by uploading a file', + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchDatasetsByDatasetIdDocumentsByDocumentId', + path: '/datasets/{dataset_id}/documents/{document_id}', + tags: ['service_api'], + }) + .input(z.object({ params: zPatchDatasetsByDatasetIdDocumentsByDocumentIdPath })) + .output(zPatchDatasetsByDatasetIdDocumentsByDocumentIdResponse) + +export const byDocumentId = { + delete: delete6, + get: get13, + patch: patch4, + download, + segments, + updateByFile, + updateByText, +} + +/** + * List all documents in a dataset + */ +export const get14 = oc + .route({ + description: 'List all documents in a dataset', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdDocuments', + path: '/datasets/{dataset_id}/documents', + tags: ['service_api'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdDocumentsPath })) + .output(zGetDatasetsByDatasetIdDocumentsResponse) + +export const documents = { + get: get14, + downloadZip, + metadata, + status: status2, + byBatch, + byDocumentId, +} + +/** + * Perform hit testing on a dataset + * + * Perform hit testing on a dataset + * Tests retrieval performance for the specified dataset. + */ +export const post26 = oc + .route({ + description: + 'Perform hit testing on a dataset\nTests retrieval performance for the specified dataset.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdHitTesting', + path: '/datasets/{dataset_id}/hit-testing', + summary: 'Perform hit testing on a dataset', + tags: ['service_api'], + }) + .input( + z.object({ + body: zPostDatasetsByDatasetIdHitTestingBody, + params: zPostDatasetsByDatasetIdHitTestingPath, + }), + ) + .output(zPostDatasetsByDatasetIdHitTestingResponse) + +export const hitTesting = { + post: post26, +} + +/** + * Enable or disable built-in metadata field + * + * Enable or disable built-in metadata field + */ +export const post27 = oc + .route({ + description: 'Enable or disable built-in metadata field', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdMetadataBuiltInByAction', + path: '/datasets/{dataset_id}/metadata/built-in/{action}', + summary: 'Enable or disable built-in metadata field', + tags: ['service_api'], + }) + .input(z.object({ params: zPostDatasetsByDatasetIdMetadataBuiltInByActionPath })) + .output(zPostDatasetsByDatasetIdMetadataBuiltInByActionResponse) + +export const byAction3 = { + post: post27, +} + +/** + * Get all built-in metadata fields + * + * Get all built-in metadata fields + */ +export const get15 = oc + .route({ + description: 'Get all built-in metadata fields', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdMetadataBuiltIn', + path: '/datasets/{dataset_id}/metadata/built-in', + summary: 'Get all built-in metadata fields', + tags: ['service_api'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdMetadataBuiltInPath })) + .output(zGetDatasetsByDatasetIdMetadataBuiltInResponse) + +export const builtIn = { + get: get15, + byAction: byAction3, +} + +/** + * Delete metadata + * + * Delete metadata + */ +export const delete7 = oc + .route({ + description: 'Delete metadata', + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteDatasetsByDatasetIdMetadataByMetadataId', + path: '/datasets/{dataset_id}/metadata/{metadata_id}', + successStatus: 204, + summary: 'Delete metadata', + tags: ['service_api'], + }) + .input(z.object({ params: zDeleteDatasetsByDatasetIdMetadataByMetadataIdPath })) + .output(zDeleteDatasetsByDatasetIdMetadataByMetadataIdResponse) + +/** + * Update metadata name + * + * Update metadata name + */ +export const patch5 = oc + .route({ + description: 'Update metadata name', + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchDatasetsByDatasetIdMetadataByMetadataId', + path: '/datasets/{dataset_id}/metadata/{metadata_id}', + summary: 'Update metadata name', + tags: ['service_api'], + }) + .input( + z.object({ + body: zPatchDatasetsByDatasetIdMetadataByMetadataIdBody, + params: zPatchDatasetsByDatasetIdMetadataByMetadataIdPath, + }), + ) + .output(zPatchDatasetsByDatasetIdMetadataByMetadataIdResponse) + +export const byMetadataId = { + delete: delete7, + patch: patch5, +} + +/** + * Get all metadata for a dataset + * + * Get all metadata for a dataset + */ +export const get16 = oc + .route({ + description: 'Get all metadata for a dataset', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdMetadata', + path: '/datasets/{dataset_id}/metadata', + summary: 'Get all metadata for a dataset', + tags: ['service_api'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdMetadataPath })) + .output(zGetDatasetsByDatasetIdMetadataResponse) + +/** + * Create metadata for a dataset + * + * Create metadata for a dataset + */ +export const post28 = oc + .route({ + description: 'Create metadata for a dataset', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdMetadata', + path: '/datasets/{dataset_id}/metadata', + successStatus: 201, + summary: 'Create metadata for a dataset', + tags: ['service_api'], + }) + .input( + z.object({ + body: zPostDatasetsByDatasetIdMetadataBody, + params: zPostDatasetsByDatasetIdMetadataPath, + }), + ) + .output(zPostDatasetsByDatasetIdMetadataResponse) + +export const metadata2 = { + get: get16, + post: post28, + builtIn, + byMetadataId, +} + +/** + * Resource for getting datasource plugins + * + * List all datasource plugins for a rag pipeline + */ +export const get17 = oc + .route({ + description: 'List all datasource plugins for a rag pipeline', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdPipelineDatasourcePlugins', + path: '/datasets/{dataset_id}/pipeline/datasource-plugins', + summary: 'Resource for getting datasource plugins', + tags: ['service_api'], + }) + .input( + z.object({ + params: zGetDatasetsByDatasetIdPipelineDatasourcePluginsPath, + query: zGetDatasetsByDatasetIdPipelineDatasourcePluginsQuery.optional(), + }), + ) + .output(zGetDatasetsByDatasetIdPipelineDatasourcePluginsResponse) + +export const datasourcePlugins = { + get: get17, +} + +/** + * Resource for getting datasource plugins + * + * Run a datasource node for a rag pipeline + */ +export const post29 = oc + .route({ + description: 'Run a datasource node for a rag pipeline', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdPipelineDatasourceNodesByNodeIdRun', + path: '/datasets/{dataset_id}/pipeline/datasource/nodes/{node_id}/run', + summary: 'Resource for getting datasource plugins', + tags: ['service_api'], + }) + .input(z.object({ params: zPostDatasetsByDatasetIdPipelineDatasourceNodesByNodeIdRunPath })) + .output(zPostDatasetsByDatasetIdPipelineDatasourceNodesByNodeIdRunResponse) + +export const run = { + post: post29, +} + +export const byNodeId = { + run, +} + +export const nodes = { + byNodeId, +} + +export const datasource = { + nodes, +} + +/** + * Resource for running a rag pipeline + * + * Run a datasource node for a rag pipeline + */ +export const post30 = oc + .route({ + description: 'Run a datasource node for a rag pipeline', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdPipelineRun', + path: '/datasets/{dataset_id}/pipeline/run', + summary: 'Resource for running a rag pipeline', + tags: ['service_api'], + }) + .input(z.object({ params: zPostDatasetsByDatasetIdPipelineRunPath })) + .output(zPostDatasetsByDatasetIdPipelineRunResponse) + +export const run2 = { + post: post30, +} + +export const pipeline2 = { + datasourcePlugins, + datasource, + run: run2, +} + +/** + * Perform hit testing on a dataset + * + * Perform hit testing on a dataset + * Tests retrieval performance for the specified dataset. + */ +export const post31 = oc + .route({ + description: + 'Perform hit testing on a dataset\nTests retrieval performance for the specified dataset.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasetsByDatasetIdRetrieve', + path: '/datasets/{dataset_id}/retrieve', + summary: 'Perform hit testing on a dataset', + tags: ['service_api'], + }) + .input( + z.object({ + body: zPostDatasetsByDatasetIdRetrieveBody, + params: zPostDatasetsByDatasetIdRetrievePath, + }), + ) + .output(zPostDatasetsByDatasetIdRetrieveResponse) + +export const retrieve = { + post: post31, +} + +/** + * Get all knowledge type tags + * + * Get tags bound to a specific dataset + */ +export const get18 = oc + .route({ + description: 'Get tags bound to a specific dataset', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetIdTags', + path: '/datasets/{dataset_id}/tags', + summary: 'Get all knowledge type tags', + tags: ['service_api'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdTagsPath })) + .output(zGetDatasetsByDatasetIdTagsResponse) + +export const tags2 = { + get: get18, +} + +/** + * Deletes a dataset given its ID + * + * Delete a dataset + * Args: + * _: ignore + * dataset_id (UUID): The ID of the dataset to be deleted. + * + * Returns: + * dict: A dictionary with a key 'result' and a value 'success' + * if the dataset was successfully deleted. Omitted in HTTP response. + * int: HTTP status code 204 indicating that the operation was successful. + * + * Raises: + * NotFound: If the dataset with the given ID does not exist. + */ +export const delete8 = oc + .route({ + description: + 'Delete a dataset\nArgs:\n _: ignore\n dataset_id (UUID): The ID of the dataset to be deleted.\n\nReturns:\n dict: A dictionary with a key \'result\' and a value \'success\'\n if the dataset was successfully deleted. Omitted in HTTP response.\n int: HTTP status code 204 indicating that the operation was successful.\n\nRaises:\n NotFound: If the dataset with the given ID does not exist.', + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteDatasetsByDatasetId', + path: '/datasets/{dataset_id}', + successStatus: 204, + summary: 'Deletes a dataset given its ID', + tags: ['service_api'], + }) + .input(z.object({ params: zDeleteDatasetsByDatasetIdPath })) + .output(zDeleteDatasetsByDatasetIdResponse) + +/** + * Get a specific dataset by ID + */ +export const get19 = oc + .route({ + description: 'Get a specific dataset by ID', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasetsByDatasetId', + path: '/datasets/{dataset_id}', + tags: ['service_api'], + }) + .input(z.object({ params: zGetDatasetsByDatasetIdPath })) + .output(zGetDatasetsByDatasetIdResponse) + +/** + * Update an existing dataset + */ +export const patch6 = oc + .route({ + description: 'Update an existing dataset', + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchDatasetsByDatasetId', + path: '/datasets/{dataset_id}', + tags: ['service_api'], + }) + .input(z.object({ body: zPatchDatasetsByDatasetIdBody, params: zPatchDatasetsByDatasetIdPath })) + .output(zPatchDatasetsByDatasetIdResponse) + +export const byDatasetId = { + delete: delete8, + get: get19, + patch: patch6, + document: document_, + documents, + hitTesting, + metadata: metadata2, + pipeline: pipeline2, + retrieve, + tags: tags2, +} + +/** + * Resource for getting datasets + * + * List all datasets + */ +export const get20 = oc + .route({ + description: 'List all datasets', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getDatasets', + path: '/datasets', + summary: 'Resource for getting datasets', + tags: ['service_api'], + }) + .output(zGetDatasetsResponse) + +/** + * Resource for creating datasets + * + * Create a new dataset + */ +export const post32 = oc + .route({ + description: 'Create a new dataset', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postDatasets', + path: '/datasets', + summary: 'Resource for creating datasets', + tags: ['service_api'], + }) + .input(z.object({ body: zPostDatasetsBody })) + .output(zPostDatasetsResponse) + +export const datasets = { + get: get20, + post: post32, + pipeline, + tags, + byDatasetId, +} + +/** + * Get end user detail + * + * Get an end user by ID + * This endpoint is scoped to the current app token's tenant/app to prevent + * cross-tenant/app access when an end-user ID is known. + */ +export const get21 = oc + .route({ + description: + 'Get an end user by ID\nThis endpoint is scoped to the current app token\'s tenant/app to prevent\ncross-tenant/app access when an end-user ID is known.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getEndUsersByEndUserId', + path: '/end-users/{end_user_id}', + summary: 'Get end user detail', + tags: ['service_api'], + }) + .input(z.object({ params: zGetEndUsersByEndUserIdPath })) + .output(zGetEndUsersByEndUserIdResponse) + +export const byEndUserId = { + get: get21, +} + +export const endUsers = { + byEndUserId, +} + +/** + * Upload a file for use in conversations + * + * Upload a file for use in conversations + * Accepts a single file upload via multipart/form-data. + */ +export const post33 = oc + .route({ + description: + 'Upload a file for use in conversations\nAccepts a single file upload via multipart/form-data.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postFilesUpload', + path: '/files/upload', + successStatus: 201, + summary: 'Upload a file for use in conversations', + tags: ['service_api'], + }) + .output(zPostFilesUploadResponse) + +export const upload = { + post: post33, +} + +/** + * Preview/Download a file that was uploaded via Service API + * + * Preview or download a file uploaded via Service API + * Provides secure file preview/download functionality. + * Files can only be accessed if they belong to messages within the requesting app's context. + */ +export const get22 = oc + .route({ + description: + 'Preview or download a file uploaded via Service API\nProvides secure file preview/download functionality.\nFiles can only be accessed if they belong to messages within the requesting app\'s context.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getFilesByFileIdPreview', + path: '/files/{file_id}/preview', + summary: 'Preview/Download a file that was uploaded via Service API', + tags: ['service_api'], + }) + .input( + z.object({ + params: zGetFilesByFileIdPreviewPath, + query: zGetFilesByFileIdPreviewQuery.optional(), + }), + ) + .output(zGetFilesByFileIdPreviewResponse) + +export const preview = { + get: get22, +} + +export const byFileId = { + preview, +} + +export const files = { + upload, + byFileId, +} + +/** + * Get a paused human input form by token + */ +export const get23 = oc + .route({ + description: 'Get a paused human input form by token', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getFormHumanInputByFormToken', + path: '/form/human_input/{form_token}', + tags: ['service_api'], + }) + .input(z.object({ params: zGetFormHumanInputByFormTokenPath })) + .output(zGetFormHumanInputByFormTokenResponse) + +/** + * Submit a paused human input form by token + */ +export const post34 = oc + .route({ + description: 'Submit a paused human input form by token', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postFormHumanInputByFormToken', + path: '/form/human_input/{form_token}', + tags: ['service_api'], + }) + .input( + z.object({ + body: zPostFormHumanInputByFormTokenBody, + params: zPostFormHumanInputByFormTokenPath, + }), + ) + .output(zPostFormHumanInputByFormTokenResponse) + +export const byFormToken = { + get: get23, + post: post34, +} + +export const humanInput = { + byFormToken, +} + +export const form = { + humanInput, +} + +/** + * Get app information + * + * Get basic application information + * Returns basic information about the application including name, description, tags, and mode. + */ +export const get24 = oc + .route({ + description: + 'Get basic application information\nReturns basic information about the application including name, description, tags, and mode.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getInfo', + path: '/info', + summary: 'Get app information', + tags: ['service_api'], + }) + .output(zGetInfoResponse) + +export const info = { + get: get24, +} + +/** + * Submit feedback for a message + * + * Submit feedback for a message + * Allows users to rate messages as like/dislike and provide optional feedback content. + */ +export const post35 = oc + .route({ + description: + 'Submit feedback for a message\nAllows users to rate messages as like/dislike and provide optional feedback content.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postMessagesByMessageIdFeedbacks', + path: '/messages/{message_id}/feedbacks', + summary: 'Submit feedback for a message', + tags: ['service_api'], + }) + .input( + z.object({ + body: zPostMessagesByMessageIdFeedbacksBody, + params: zPostMessagesByMessageIdFeedbacksPath, + }), + ) + .output(zPostMessagesByMessageIdFeedbacksResponse) + +export const feedbacks2 = { + post: post35, +} + +/** + * Get suggested follow-up questions for a message + * + * Get suggested follow-up questions for a message + * Returns AI-generated follow-up questions based on the message content. + */ +export const get25 = oc + .route({ + description: + 'Get suggested follow-up questions for a message\nReturns AI-generated follow-up questions based on the message content.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getMessagesByMessageIdSuggested', + path: '/messages/{message_id}/suggested', + summary: 'Get suggested follow-up questions for a message', + tags: ['service_api'], + }) + .input(z.object({ params: zGetMessagesByMessageIdSuggestedPath })) + .output(zGetMessagesByMessageIdSuggestedResponse) + +export const suggested = { + get: get25, +} + +export const byMessageId = { + feedbacks: feedbacks2, + suggested, +} + +/** + * List messages in a conversation + * + * List messages in a conversation + * Retrieves messages with pagination support using first_id. + */ +export const get26 = oc + .route({ + description: + 'List messages in a conversation\nRetrieves messages with pagination support using first_id.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getMessages', + path: '/messages', + summary: 'List messages in a conversation', + tags: ['service_api'], + }) + .input(z.object({ query: zGetMessagesQuery })) + .output(zGetMessagesResponse) + +export const messages = { + get: get26, + byMessageId, +} + +/** + * Get app metadata + * + * Get application metadata + * Returns metadata about the application including configuration and settings. + */ +export const get27 = oc + .route({ + description: + 'Get application metadata\nReturns metadata about the application including configuration and settings.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getMeta', + path: '/meta', + summary: 'Get app metadata', + tags: ['service_api'], + }) + .output(zGetMetaResponse) + +export const meta = { + get: get27, +} + +/** + * Retrieve app parameters + * + * Retrieve application input parameters and configuration + * Returns the input form parameters and configuration for the application. + */ +export const get28 = oc + .route({ + description: + 'Retrieve application input parameters and configuration\nReturns the input form parameters and configuration for the application.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getParameters', + path: '/parameters', + summary: 'Retrieve app parameters', + tags: ['service_api'], + }) + .output(zGetParametersResponse) + +export const parameters = { + get: get28, +} + +/** + * Retrieve app site info + * + * Get application site configuration + * Returns the site configuration for the application including theme, icons, and text. + */ +export const get29 = oc + .route({ + description: + 'Get application site configuration\nReturns the site configuration for the application including theme, icons, and text.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getSite', + path: '/site', + summary: 'Retrieve app site info', + tags: ['service_api'], + }) + .output(zGetSiteResponse) + +export const site = { + get: get29, +} + +/** + * Convert text to audio using text-to-speech + * + * Convert text to audio using text-to-speech + * Converts the provided text to audio using the specified voice. + */ +export const post36 = oc + .route({ + description: + 'Convert text to audio using text-to-speech\nConverts the provided text to audio using the specified voice.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postTextToAudio', + path: '/text-to-audio', + summary: 'Convert text to audio using text-to-speech', + tags: ['service_api'], + }) + .input(z.object({ body: zPostTextToAudioBody })) + .output(zPostTextToAudioResponse) + +export const textToAudio = { + post: post36, +} + +/** + * Get workflow execution events stream after resume + */ +export const get30 = oc + .route({ + description: 'Get workflow execution events stream after resume', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkflowByTaskIdEvents', + path: '/workflow/{task_id}/events', + tags: ['service_api'], + }) + .input( + z.object({ + params: zGetWorkflowByTaskIdEventsPath, + query: zGetWorkflowByTaskIdEventsQuery.optional(), + }), + ) + .output(zGetWorkflowByTaskIdEventsResponse) + +export const events = { + get: get30, +} + +export const byTaskId3 = { + events, +} + +export const workflow = { + byTaskId: byTaskId3, +} + +/** + * Get workflow app logs + * + * Get workflow execution logs + * Returns paginated workflow execution logs with filtering options. + */ +export const get31 = oc + .route({ + description: + 'Get workflow execution logs\nReturns paginated workflow execution logs with filtering options.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkflowsLogs', + path: '/workflows/logs', + summary: 'Get workflow app logs', + tags: ['service_api'], + }) + .input(z.object({ query: zGetWorkflowsLogsQuery.optional() })) + .output(zGetWorkflowsLogsResponse) + +export const logs = { + get: get31, +} + +/** + * Get a workflow task running detail + * + * Get workflow run details + * Returns detailed information about a specific workflow run. + */ +export const get32 = oc + .route({ + description: + 'Get workflow run details\nReturns detailed information about a specific workflow run.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkflowsRunByWorkflowRunId', + path: '/workflows/run/{workflow_run_id}', + summary: 'Get a workflow task running detail', + tags: ['service_api'], + }) + .input(z.object({ params: zGetWorkflowsRunByWorkflowRunIdPath })) + .output(zGetWorkflowsRunByWorkflowRunIdResponse) + +export const byWorkflowRunId = { + get: get32, +} + +/** + * Execute a workflow + * + * Execute a workflow + * Runs a workflow with the provided inputs and returns the results. + * Supports both blocking and streaming response modes. + */ +export const post37 = oc + .route({ + description: + 'Execute a workflow\nRuns a workflow with the provided inputs and returns the results.\nSupports both blocking and streaming response modes.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkflowsRun', + path: '/workflows/run', + summary: 'Execute a workflow', + tags: ['service_api'], + }) + .input(z.object({ body: zPostWorkflowsRunBody })) + .output(zPostWorkflowsRunResponse) + +export const run3 = { + post: post37, + byWorkflowRunId, +} + +/** + * Stop a running workflow task + * + * Stop a running workflow task + */ +export const post38 = oc + .route({ + description: 'Stop a running workflow task', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkflowsTasksByTaskIdStop', + path: '/workflows/tasks/{task_id}/stop', + summary: 'Stop a running workflow task', + tags: ['service_api'], + }) + .input(z.object({ params: zPostWorkflowsTasksByTaskIdStopPath })) + .output(zPostWorkflowsTasksByTaskIdStopResponse) + +export const stop3 = { + post: post38, +} + +export const byTaskId4 = { + stop: stop3, +} + +export const tasks = { + byTaskId: byTaskId4, +} + +/** + * Run specific workflow by ID + * + * Execute a specific workflow by ID + * Executes a specific workflow version identified by its ID. + */ +export const post39 = oc + .route({ + description: + 'Execute a specific workflow by ID\nExecutes a specific workflow version identified by its ID.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkflowsByWorkflowIdRun', + path: '/workflows/{workflow_id}/run', + summary: 'Run specific workflow by ID', + tags: ['service_api'], + }) + .input( + z.object({ + body: zPostWorkflowsByWorkflowIdRunBody, + params: zPostWorkflowsByWorkflowIdRunPath, + }), + ) + .output(zPostWorkflowsByWorkflowIdRunResponse) + +export const run4 = { + post: post39, +} + +export const byWorkflowId = { + run: run4, +} + +export const workflows = { + logs, + run: run3, + tasks, + byWorkflowId, +} + +/** + * Get available models by model type + * + * Get available models by model type + * Returns a list of available models for the specified model type. + */ +export const get33 = oc + .route({ + description: + 'Get available models by model type\nReturns a list of available models for the specified model type.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkspacesCurrentModelsModelTypesByModelType', + path: '/workspaces/current/models/model-types/{model_type}', + summary: 'Get available models by model type', + tags: ['service_api'], + }) + .input(z.object({ params: zGetWorkspacesCurrentModelsModelTypesByModelTypePath })) + .output(zGetWorkspacesCurrentModelsModelTypesByModelTypeResponse) + +export const byModelType = { + get: get33, +} + +export const modelTypes = { + byModelType, +} + +export const models = { + modelTypes, +} + +export const current = { + models, +} + +export const workspaces = { + current, +} + +export const contract = { + root, + app, + apps, + audioToText, + chatMessages, + completionMessages, + conversations, + datasets, + endUsers, + files, + form, + info, + messages, + meta, + parameters, + site, + textToAudio, + workflow, + workflows, + workspaces, +} diff --git a/packages/contracts/generated/api/service/types.gen.ts b/packages/contracts/generated/api/service/types.gen.ts new file mode 100644 index 0000000000..f491c1e3f9 --- /dev/null +++ b/packages/contracts/generated/api/service/types.gen.ts @@ -0,0 +1,3125 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/v1` | (string & {}) +} + +export type Annotation = { + content?: string | null + created_at?: number | null + hit_count?: number | null + id: string + question?: string | null +} + +export type AnnotationCreatePayload = { + answer: string + question: string +} + +export type AnnotationList = { + data: Array + has_more: boolean + limit: number + page: number + total: number +} + +export type AnnotationReplyActionPayload = { + embedding_model_name: string + embedding_provider_name: string + score_threshold: number +} + +export type ChatRequestPayload = { + auto_generate_name?: boolean + conversation_id?: string | null + files?: Array<{ + [key: string]: unknown + }> | null + inputs: { + [key: string]: unknown + } + query: string + response_mode?: 'blocking' | 'streaming' | null + retriever_from?: string + workflow_id?: string | null +} + +export type ChildChunkCreatePayload = { + content: string +} + +export type ChildChunkListQuery = { + keyword?: string | null + limit?: number + page?: number +} + +export type ChildChunkUpdatePayload = { + content: string +} + +export type CompletionRequestPayload = { + files?: Array<{ + [key: string]: unknown + }> | null + inputs: { + [key: string]: unknown + } + query?: string + response_mode?: 'blocking' | 'streaming' | null + retriever_from?: string +} + +export type ConversationListQuery = { + last_id?: string | null + limit?: number + sort_by?: 'created_at' | '-created_at' | 'updated_at' | '-updated_at' +} + +export type ConversationRenamePayload = { + auto_generate?: boolean + name?: string | null +} + +export type ConversationVariableInfiniteScrollPaginationResponse = { + data: Array + has_more: boolean + limit: number +} + +export type ConversationVariableResponse = { + created_at?: number | null + description?: string | null + id: string + name: string + updated_at?: number | null + value?: string | null + value_type: string +} + +export type ConversationVariableUpdatePayload = { + value: unknown +} + +export type ConversationVariablesQuery = { + last_id?: string | null + limit?: number + variable_name?: string | null +} + +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 + name: string + permission?: DatasetPermissionEnum + provider?: string + retrieval_model?: RetrievalModel + summary_index_setting?: { + [key: string]: unknown + } | null +} + +export type DatasetUpdatePayload = { + description?: string | null + embedding_model?: string | null + embedding_model_provider?: string | null + external_knowledge_api_id?: string | null + external_knowledge_id?: string | null + external_retrieval_model?: { + [key: string]: unknown + } | null + indexing_technique?: 'high_quality' | 'economy' | null + name?: string | null + partial_member_list?: Array<{ + [key: string]: string + }> | null + permission?: DatasetPermissionEnum + retrieval_model?: RetrievalModel +} + +export type DocumentBatchDownloadZipPayload = { + document_ids: Array +} + +export type DocumentTextCreatePayload = { + doc_form?: string + doc_language?: string + embedding_model?: string | null + embedding_model_provider?: string | null + indexing_technique?: string | null + name: string + original_document_id?: string | null + process_rule?: ProcessRule + retrieval_model?: RetrievalModel + text: string +} + +export type DocumentTextUpdate = { + doc_form?: string + doc_language?: string + name?: string | null + process_rule?: ProcessRule + retrieval_model?: RetrievalModel + text?: string | null +} + +export type FeedbackListQuery = { + limit?: number + page?: number +} + +export type FilePreviewQuery = { + as_attachment?: boolean +} + +export type FileResponse = { + conversation_id?: string | null + created_at?: number | null + created_by?: string | null + extension?: string | null + file_key?: string | null + id: string + mime_type?: string | null + name: string + original_url?: string | null + preview_url?: string | null + size: number + source_url?: string | null + tenant_id?: string | null + user_id?: string | null +} + +export type HitTestingPayload = { + attachment_ids?: Array | null + external_retrieval_model?: { + [key: string]: unknown + } | null + query: string + retrieval_model?: RetrievalModel +} + +export type HumanInputFormSubmitPayload = { + action: string + inputs: { + [key: string]: JsonValue + } +} + +export type MessageFeedbackPayload = { + content?: string | null + rating?: 'like' | 'dislike' | null +} + +export type MessageListQuery = { + conversation_id: string + first_id?: string | null + limit?: number +} + +export type MetadataArgs = { + name: string + type: 'string' | 'number' | 'time' +} + +export type MetadataOperationData = { + operation_data: Array +} + +export type MetadataUpdatePayload = { + name: string +} + +export type SegmentCreatePayload = { + segments?: Array<{ + [key: string]: unknown + }> | null +} + +export type SegmentListQuery = { + keyword?: string | null + status?: Array +} + +export type SegmentUpdatePayload = { + segment: SegmentUpdateArgs +} + +export type TagBindingPayload = { + tag_ids: Array + target_id: string +} + +export type TagCreatePayload = { + name: string +} + +export type TagDeletePayload = { + tag_id: string +} + +export type TagUnbindingPayload = { + tag_id: string + target_id: string +} + +export type TagUpdatePayload = { + name: string + tag_id: string +} + +export type TextToAudioPayload = { + message_id?: string | null + streaming?: boolean | null + text?: string | null + voice?: string | null +} + +export type WorkflowAppLogPaginationResponse = { + data: Array + has_more: boolean + limit: number + page: number + total: number +} + +export type WorkflowLogQuery = { + created_at__after?: string | null + created_at__before?: string | null + created_by_account?: string | null + created_by_end_user_session_id?: string | null + keyword?: string | null + limit?: number + page?: number + status?: 'succeeded' | 'failed' | 'stopped' | null +} + +export type WorkflowRunPayload = { + files?: Array<{ + [key: string]: unknown + }> | null + inputs: { + [key: string]: unknown + } + response_mode?: 'blocking' | 'streaming' | null +} + +export type WorkflowRunResponse = { + created_at?: number | null + elapsed_time?: unknown + error?: string | null + finished_at?: number | null + id: string + inputs?: unknown + outputs?: { + [key: string]: unknown + } + status: string + total_steps?: number | null + total_tokens?: number | null + workflow_id: string +} + +export type DatasetPermissionEnum = 'only_me' | 'all_team_members' | 'partial_members' + +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 = { + 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 + query?: never + url: '/' +} + +export type GetRootResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetRootResponse = GetRootResponses[keyof GetRootResponses] + +export type GetAppFeedbacksData = { + body?: never + path?: never + query?: { + limit?: number + page?: number + } + url: '/app/feedbacks' +} + +export type GetAppFeedbacksErrors = { + 401: { + [key: string]: unknown + } +} + +export type GetAppFeedbacksError = GetAppFeedbacksErrors[keyof GetAppFeedbacksErrors] + +export type GetAppFeedbacksResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetAppFeedbacksResponse = GetAppFeedbacksResponses[keyof GetAppFeedbacksResponses] + +export type PostAppsAnnotationReplyByActionData = { + body: AnnotationReplyActionPayload + path: { + action: string + } + query?: never + url: '/apps/annotation-reply/{action}' +} + +export type PostAppsAnnotationReplyByActionErrors = { + 401: { + [key: string]: unknown + } +} + +export type PostAppsAnnotationReplyByActionError + = PostAppsAnnotationReplyByActionErrors[keyof PostAppsAnnotationReplyByActionErrors] + +export type PostAppsAnnotationReplyByActionResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAppsAnnotationReplyByActionResponse + = PostAppsAnnotationReplyByActionResponses[keyof PostAppsAnnotationReplyByActionResponses] + +export type GetAppsAnnotationReplyByActionStatusByJobIdData = { + body?: never + path: { + action: string + job_id: string + } + query?: never + url: '/apps/annotation-reply/{action}/status/{job_id}' +} + +export type GetAppsAnnotationReplyByActionStatusByJobIdErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type GetAppsAnnotationReplyByActionStatusByJobIdError + = GetAppsAnnotationReplyByActionStatusByJobIdErrors[keyof GetAppsAnnotationReplyByActionStatusByJobIdErrors] + +export type GetAppsAnnotationReplyByActionStatusByJobIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetAppsAnnotationReplyByActionStatusByJobIdResponse + = GetAppsAnnotationReplyByActionStatusByJobIdResponses[keyof GetAppsAnnotationReplyByActionStatusByJobIdResponses] + +export type GetAppsAnnotationsData = { + body?: never + path?: never + query?: never + url: '/apps/annotations' +} + +export type GetAppsAnnotationsErrors = { + 401: { + [key: string]: unknown + } +} + +export type GetAppsAnnotationsError = GetAppsAnnotationsErrors[keyof GetAppsAnnotationsErrors] + +export type GetAppsAnnotationsResponses = { + 200: AnnotationList +} + +export type GetAppsAnnotationsResponse + = GetAppsAnnotationsResponses[keyof GetAppsAnnotationsResponses] + +export type PostAppsAnnotationsData = { + body: AnnotationCreatePayload + path?: never + query?: never + url: '/apps/annotations' +} + +export type PostAppsAnnotationsErrors = { + 401: { + [key: string]: unknown + } +} + +export type PostAppsAnnotationsError = PostAppsAnnotationsErrors[keyof PostAppsAnnotationsErrors] + +export type PostAppsAnnotationsResponses = { + 201: Annotation +} + +export type PostAppsAnnotationsResponse + = PostAppsAnnotationsResponses[keyof PostAppsAnnotationsResponses] + +export type DeleteAppsAnnotationsByAnnotationIdData = { + body?: never + path: { + annotation_id: string + } + query?: never + url: '/apps/annotations/{annotation_id}' +} + +export type DeleteAppsAnnotationsByAnnotationIdErrors = { + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type DeleteAppsAnnotationsByAnnotationIdError + = DeleteAppsAnnotationsByAnnotationIdErrors[keyof DeleteAppsAnnotationsByAnnotationIdErrors] + +export type DeleteAppsAnnotationsByAnnotationIdResponses = { + 204: { + [key: string]: unknown + } +} + +export type DeleteAppsAnnotationsByAnnotationIdResponse + = DeleteAppsAnnotationsByAnnotationIdResponses[keyof DeleteAppsAnnotationsByAnnotationIdResponses] + +export type PutAppsAnnotationsByAnnotationIdData = { + body: AnnotationCreatePayload + path: { + annotation_id: string + } + query?: never + url: '/apps/annotations/{annotation_id}' +} + +export type PutAppsAnnotationsByAnnotationIdErrors = { + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PutAppsAnnotationsByAnnotationIdError + = PutAppsAnnotationsByAnnotationIdErrors[keyof PutAppsAnnotationsByAnnotationIdErrors] + +export type PutAppsAnnotationsByAnnotationIdResponses = { + 200: Annotation +} + +export type PutAppsAnnotationsByAnnotationIdResponse + = PutAppsAnnotationsByAnnotationIdResponses[keyof PutAppsAnnotationsByAnnotationIdResponses] + +export type PostAudioToTextData = { + body?: never + path?: never + query?: never + url: '/audio-to-text' +} + +export type PostAudioToTextErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 413: { + [key: string]: unknown + } + 415: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type PostAudioToTextError = PostAudioToTextErrors[keyof PostAudioToTextErrors] + +export type PostAudioToTextResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAudioToTextResponse = PostAudioToTextResponses[keyof PostAudioToTextResponses] + +export type PostChatMessagesData = { + body: ChatRequestPayload + path?: never + query?: never + url: '/chat-messages' +} + +export type PostChatMessagesErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 429: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type PostChatMessagesError = PostChatMessagesErrors[keyof PostChatMessagesErrors] + +export type PostChatMessagesResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostChatMessagesResponse = PostChatMessagesResponses[keyof PostChatMessagesResponses] + +export type PostChatMessagesByTaskIdStopData = { + body?: never + path: { + task_id: string + } + query?: never + url: '/chat-messages/{task_id}/stop' +} + +export type PostChatMessagesByTaskIdStopErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostChatMessagesByTaskIdStopError + = PostChatMessagesByTaskIdStopErrors[keyof PostChatMessagesByTaskIdStopErrors] + +export type PostChatMessagesByTaskIdStopResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostChatMessagesByTaskIdStopResponse + = PostChatMessagesByTaskIdStopResponses[keyof PostChatMessagesByTaskIdStopResponses] + +export type PostCompletionMessagesData = { + body: CompletionRequestPayload + path?: never + query?: never + url: '/completion-messages' +} + +export type PostCompletionMessagesErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type PostCompletionMessagesError + = PostCompletionMessagesErrors[keyof PostCompletionMessagesErrors] + +export type PostCompletionMessagesResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostCompletionMessagesResponse + = PostCompletionMessagesResponses[keyof PostCompletionMessagesResponses] + +export type PostCompletionMessagesByTaskIdStopData = { + body?: never + path: { + task_id: string + } + query?: never + url: '/completion-messages/{task_id}/stop' +} + +export type PostCompletionMessagesByTaskIdStopErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostCompletionMessagesByTaskIdStopError + = PostCompletionMessagesByTaskIdStopErrors[keyof PostCompletionMessagesByTaskIdStopErrors] + +export type PostCompletionMessagesByTaskIdStopResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostCompletionMessagesByTaskIdStopResponse + = PostCompletionMessagesByTaskIdStopResponses[keyof PostCompletionMessagesByTaskIdStopResponses] + +export type GetConversationsData = { + body?: never + path?: never + query?: { + last_id?: string | null + limit?: number + sort_by?: 'created_at' | '-created_at' | 'updated_at' | '-updated_at' + } + url: '/conversations' +} + +export type GetConversationsErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type GetConversationsError = GetConversationsErrors[keyof GetConversationsErrors] + +export type GetConversationsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetConversationsResponse = GetConversationsResponses[keyof GetConversationsResponses] + +export type DeleteConversationsByCIdData = { + body?: never + path: { + c_id: string + } + query?: never + url: '/conversations/{c_id}' +} + +export type DeleteConversationsByCIdErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type DeleteConversationsByCIdError + = DeleteConversationsByCIdErrors[keyof DeleteConversationsByCIdErrors] + +export type DeleteConversationsByCIdResponses = { + 204: { + [key: string]: unknown + } +} + +export type DeleteConversationsByCIdResponse + = DeleteConversationsByCIdResponses[keyof DeleteConversationsByCIdResponses] + +export type PostConversationsByCIdNameData = { + body: ConversationRenamePayload + path: { + c_id: string + } + query?: never + url: '/conversations/{c_id}/name' +} + +export type PostConversationsByCIdNameErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostConversationsByCIdNameError + = PostConversationsByCIdNameErrors[keyof PostConversationsByCIdNameErrors] + +export type PostConversationsByCIdNameResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostConversationsByCIdNameResponse + = PostConversationsByCIdNameResponses[keyof PostConversationsByCIdNameResponses] + +export type GetConversationsByCIdVariablesData = { + body?: never + path: { + c_id: string + } + query?: { + last_id?: string | null + limit?: number + variable_name?: string | null + } + url: '/conversations/{c_id}/variables' +} + +export type GetConversationsByCIdVariablesErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type GetConversationsByCIdVariablesError + = GetConversationsByCIdVariablesErrors[keyof GetConversationsByCIdVariablesErrors] + +export type GetConversationsByCIdVariablesResponses = { + 200: ConversationVariableInfiniteScrollPaginationResponse +} + +export type GetConversationsByCIdVariablesResponse + = GetConversationsByCIdVariablesResponses[keyof GetConversationsByCIdVariablesResponses] + +export type PutConversationsByCIdVariablesByVariableIdData = { + body: ConversationVariableUpdatePayload + path: { + c_id: string + variable_id: string + } + query?: never + url: '/conversations/{c_id}/variables/{variable_id}' +} + +export type PutConversationsByCIdVariablesByVariableIdErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PutConversationsByCIdVariablesByVariableIdError + = PutConversationsByCIdVariablesByVariableIdErrors[keyof PutConversationsByCIdVariablesByVariableIdErrors] + +export type PutConversationsByCIdVariablesByVariableIdResponses = { + 200: ConversationVariableResponse +} + +export type PutConversationsByCIdVariablesByVariableIdResponse + = PutConversationsByCIdVariablesByVariableIdResponses[keyof PutConversationsByCIdVariablesByVariableIdResponses] + +export type GetDatasetsData = { + body?: never + path?: never + query?: never + url: '/datasets' +} + +export type GetDatasetsErrors = { + 401: { + [key: string]: unknown + } +} + +export type GetDatasetsError = GetDatasetsErrors[keyof GetDatasetsErrors] + +export type GetDatasetsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsResponse = GetDatasetsResponses[keyof GetDatasetsResponses] + +export type PostDatasetsData = { + body: DatasetCreatePayload + path?: never + query?: never + url: '/datasets' +} + +export type PostDatasetsErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } +} + +export type PostDatasetsError = PostDatasetsErrors[keyof PostDatasetsErrors] + +export type PostDatasetsResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsResponse = PostDatasetsResponses[keyof PostDatasetsResponses] + +export type PostDatasetsPipelineFileUploadData = { + body?: never + path?: never + query?: never + url: '/datasets/pipeline/file-upload' +} + +export type PostDatasetsPipelineFileUploadErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 413: { + [key: string]: unknown + } + 415: { + [key: string]: unknown + } +} + +export type PostDatasetsPipelineFileUploadError + = PostDatasetsPipelineFileUploadErrors[keyof PostDatasetsPipelineFileUploadErrors] + +export type PostDatasetsPipelineFileUploadResponses = { + 201: { + [key: string]: unknown + } +} + +export type PostDatasetsPipelineFileUploadResponse + = PostDatasetsPipelineFileUploadResponses[keyof PostDatasetsPipelineFileUploadResponses] + +export type DeleteDatasetsTagsData = { + body: TagDeletePayload + path?: never + query?: never + url: '/datasets/tags' +} + +export type DeleteDatasetsTagsErrors = { + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } +} + +export type DeleteDatasetsTagsError = DeleteDatasetsTagsErrors[keyof DeleteDatasetsTagsErrors] + +export type DeleteDatasetsTagsResponses = { + 204: { + [key: string]: unknown + } +} + +export type DeleteDatasetsTagsResponse + = DeleteDatasetsTagsResponses[keyof DeleteDatasetsTagsResponses] + +export type GetDatasetsTagsData = { + body?: never + path?: never + query?: never + url: '/datasets/tags' +} + +export type GetDatasetsTagsErrors = { + 401: { + [key: string]: unknown + } +} + +export type GetDatasetsTagsError = GetDatasetsTagsErrors[keyof GetDatasetsTagsErrors] + +export type GetDatasetsTagsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsTagsResponse = GetDatasetsTagsResponses[keyof GetDatasetsTagsResponses] + +export type PatchDatasetsTagsData = { + body: TagUpdatePayload + path?: never + query?: never + url: '/datasets/tags' +} + +export type PatchDatasetsTagsErrors = { + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } +} + +export type PatchDatasetsTagsError = PatchDatasetsTagsErrors[keyof PatchDatasetsTagsErrors] + +export type PatchDatasetsTagsResponses = { + 200: { + [key: string]: unknown + } +} + +export type PatchDatasetsTagsResponse = PatchDatasetsTagsResponses[keyof PatchDatasetsTagsResponses] + +export type PostDatasetsTagsData = { + body: TagCreatePayload + path?: never + query?: never + url: '/datasets/tags' +} + +export type PostDatasetsTagsErrors = { + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } +} + +export type PostDatasetsTagsError = PostDatasetsTagsErrors[keyof PostDatasetsTagsErrors] + +export type PostDatasetsTagsResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsTagsResponse = PostDatasetsTagsResponses[keyof PostDatasetsTagsResponses] + +export type PostDatasetsTagsBindingData = { + body: TagBindingPayload + path?: never + query?: never + url: '/datasets/tags/binding' +} + +export type PostDatasetsTagsBindingErrors = { + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } +} + +export type PostDatasetsTagsBindingError + = PostDatasetsTagsBindingErrors[keyof PostDatasetsTagsBindingErrors] + +export type PostDatasetsTagsBindingResponses = { + 204: { + [key: string]: unknown + } +} + +export type PostDatasetsTagsBindingResponse + = PostDatasetsTagsBindingResponses[keyof PostDatasetsTagsBindingResponses] + +export type PostDatasetsTagsUnbindingData = { + body: TagUnbindingPayload + path?: never + query?: never + url: '/datasets/tags/unbinding' +} + +export type PostDatasetsTagsUnbindingErrors = { + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } +} + +export type PostDatasetsTagsUnbindingError + = PostDatasetsTagsUnbindingErrors[keyof PostDatasetsTagsUnbindingErrors] + +export type PostDatasetsTagsUnbindingResponses = { + 204: { + [key: string]: unknown + } +} + +export type PostDatasetsTagsUnbindingResponse + = PostDatasetsTagsUnbindingResponses[keyof PostDatasetsTagsUnbindingResponses] + +export type DeleteDatasetsByDatasetIdData = { + body?: never + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}' +} + +export type DeleteDatasetsByDatasetIdErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 409: { + [key: string]: unknown + } +} + +export type DeleteDatasetsByDatasetIdError + = DeleteDatasetsByDatasetIdErrors[keyof DeleteDatasetsByDatasetIdErrors] + +export type DeleteDatasetsByDatasetIdResponses = { + 204: { + [key: string]: unknown + } +} + +export type DeleteDatasetsByDatasetIdResponse + = DeleteDatasetsByDatasetIdResponses[keyof DeleteDatasetsByDatasetIdResponses] + +export type GetDatasetsByDatasetIdData = { + body?: never + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}' +} + +export type GetDatasetsByDatasetIdErrors = { + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdError + = GetDatasetsByDatasetIdErrors[keyof GetDatasetsByDatasetIdErrors] + +export type GetDatasetsByDatasetIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdResponse + = GetDatasetsByDatasetIdResponses[keyof GetDatasetsByDatasetIdResponses] + +export type PatchDatasetsByDatasetIdData = { + body: DatasetUpdatePayload + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}' +} + +export type PatchDatasetsByDatasetIdErrors = { + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PatchDatasetsByDatasetIdError + = PatchDatasetsByDatasetIdErrors[keyof PatchDatasetsByDatasetIdErrors] + +export type PatchDatasetsByDatasetIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type PatchDatasetsByDatasetIdResponse + = PatchDatasetsByDatasetIdResponses[keyof PatchDatasetsByDatasetIdResponses] + +export type PostDatasetsByDatasetIdDocumentCreateByFileData = { + body?: never + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/document/create-by-file' +} + +export type PostDatasetsByDatasetIdDocumentCreateByFileErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentCreateByFileError + = PostDatasetsByDatasetIdDocumentCreateByFileErrors[keyof PostDatasetsByDatasetIdDocumentCreateByFileErrors] + +export type PostDatasetsByDatasetIdDocumentCreateByFileResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentCreateByFileResponse + = PostDatasetsByDatasetIdDocumentCreateByFileResponses[keyof PostDatasetsByDatasetIdDocumentCreateByFileResponses] + +export type PostDatasetsByDatasetIdDocumentCreateByTextData = { + body: DocumentTextCreatePayload + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/document/create-by-text' +} + +export type PostDatasetsByDatasetIdDocumentCreateByTextErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentCreateByTextError + = PostDatasetsByDatasetIdDocumentCreateByTextErrors[keyof PostDatasetsByDatasetIdDocumentCreateByTextErrors] + +export type PostDatasetsByDatasetIdDocumentCreateByTextResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentCreateByTextResponse + = PostDatasetsByDatasetIdDocumentCreateByTextResponses[keyof PostDatasetsByDatasetIdDocumentCreateByTextResponses] + +export type PostDatasetsByDatasetIdDocumentCreateByFile2Data = { + body?: never + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/document/create_by_file' +} + +export type PostDatasetsByDatasetIdDocumentCreateByFile2Errors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentCreateByFile2Error + = PostDatasetsByDatasetIdDocumentCreateByFile2Errors[keyof PostDatasetsByDatasetIdDocumentCreateByFile2Errors] + +export type PostDatasetsByDatasetIdDocumentCreateByFile2Responses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentCreateByFile2Response + = PostDatasetsByDatasetIdDocumentCreateByFile2Responses[keyof PostDatasetsByDatasetIdDocumentCreateByFile2Responses] + +export type PostDatasetsByDatasetIdDocumentCreateByText2Data = { + body: DocumentTextCreatePayload + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/document/create_by_text' +} + +export type PostDatasetsByDatasetIdDocumentCreateByText2Errors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentCreateByText2Error + = PostDatasetsByDatasetIdDocumentCreateByText2Errors[keyof PostDatasetsByDatasetIdDocumentCreateByText2Errors] + +export type PostDatasetsByDatasetIdDocumentCreateByText2Responses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentCreateByText2Response + = PostDatasetsByDatasetIdDocumentCreateByText2Responses[keyof PostDatasetsByDatasetIdDocumentCreateByText2Responses] + +export type GetDatasetsByDatasetIdDocumentsData = { + body?: never + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents' +} + +export type GetDatasetsByDatasetIdDocumentsErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsError + = GetDatasetsByDatasetIdDocumentsErrors[keyof GetDatasetsByDatasetIdDocumentsErrors] + +export type GetDatasetsByDatasetIdDocumentsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsResponse + = GetDatasetsByDatasetIdDocumentsResponses[keyof GetDatasetsByDatasetIdDocumentsResponses] + +export type PostDatasetsByDatasetIdDocumentsDownloadZipData = { + body: DocumentBatchDownloadZipPayload + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/download-zip' +} + +export type PostDatasetsByDatasetIdDocumentsDownloadZipErrors = { + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentsDownloadZipError + = PostDatasetsByDatasetIdDocumentsDownloadZipErrors[keyof PostDatasetsByDatasetIdDocumentsDownloadZipErrors] + +export type PostDatasetsByDatasetIdDocumentsDownloadZipResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentsDownloadZipResponse + = PostDatasetsByDatasetIdDocumentsDownloadZipResponses[keyof PostDatasetsByDatasetIdDocumentsDownloadZipResponses] + +export type PostDatasetsByDatasetIdDocumentsMetadataData = { + body: MetadataOperationData + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/metadata' +} + +export type PostDatasetsByDatasetIdDocumentsMetadataErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentsMetadataError + = PostDatasetsByDatasetIdDocumentsMetadataErrors[keyof PostDatasetsByDatasetIdDocumentsMetadataErrors] + +export type PostDatasetsByDatasetIdDocumentsMetadataResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentsMetadataResponse + = PostDatasetsByDatasetIdDocumentsMetadataResponses[keyof PostDatasetsByDatasetIdDocumentsMetadataResponses] + +export type PatchDatasetsByDatasetIdDocumentsStatusByActionData = { + body?: never + path: { + dataset_id: string + action: string + } + query?: never + url: '/datasets/{dataset_id}/documents/status/{action}' +} + +export type PatchDatasetsByDatasetIdDocumentsStatusByActionErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PatchDatasetsByDatasetIdDocumentsStatusByActionError + = PatchDatasetsByDatasetIdDocumentsStatusByActionErrors[keyof PatchDatasetsByDatasetIdDocumentsStatusByActionErrors] + +export type PatchDatasetsByDatasetIdDocumentsStatusByActionResponses = { + 200: { + [key: string]: unknown + } +} + +export type PatchDatasetsByDatasetIdDocumentsStatusByActionResponse + = PatchDatasetsByDatasetIdDocumentsStatusByActionResponses[keyof PatchDatasetsByDatasetIdDocumentsStatusByActionResponses] + +export type GetDatasetsByDatasetIdDocumentsByBatchIndexingStatusData = { + body?: never + path: { + dataset_id: string + batch: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{batch}/indexing-status' +} + +export type GetDatasetsByDatasetIdDocumentsByBatchIndexingStatusErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsByBatchIndexingStatusError + = GetDatasetsByDatasetIdDocumentsByBatchIndexingStatusErrors[keyof GetDatasetsByDatasetIdDocumentsByBatchIndexingStatusErrors] + +export type GetDatasetsByDatasetIdDocumentsByBatchIndexingStatusResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsByBatchIndexingStatusResponse + = GetDatasetsByDatasetIdDocumentsByBatchIndexingStatusResponses[keyof GetDatasetsByDatasetIdDocumentsByBatchIndexingStatusResponses] + +export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdData = { + body?: never + path: { + dataset_id: string + document_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}' +} + +export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdErrors = { + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdError + = DeleteDatasetsByDatasetIdDocumentsByDocumentIdErrors[keyof DeleteDatasetsByDatasetIdDocumentsByDocumentIdErrors] + +export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdResponses = { + 204: { + [key: string]: unknown + } +} + +export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdResponse + = DeleteDatasetsByDatasetIdDocumentsByDocumentIdResponses[keyof DeleteDatasetsByDatasetIdDocumentsByDocumentIdResponses] + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdData = { + body?: never + path: { + dataset_id: string + document_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}' +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdErrors = { + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdError + = GetDatasetsByDatasetIdDocumentsByDocumentIdErrors[keyof GetDatasetsByDatasetIdDocumentsByDocumentIdErrors] + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdResponse + = GetDatasetsByDatasetIdDocumentsByDocumentIdResponses[keyof GetDatasetsByDatasetIdDocumentsByDocumentIdResponses] + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdData = { + body?: never + path: { + dataset_id: string + document_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}' +} + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdError + = PatchDatasetsByDatasetIdDocumentsByDocumentIdErrors[keyof PatchDatasetsByDatasetIdDocumentsByDocumentIdErrors] + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdResponse + = PatchDatasetsByDatasetIdDocumentsByDocumentIdResponses[keyof PatchDatasetsByDatasetIdDocumentsByDocumentIdResponses] + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdDownloadData = { + body?: never + path: { + dataset_id: string + document_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/download' +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdDownloadErrors = { + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdDownloadError + = GetDatasetsByDatasetIdDocumentsByDocumentIdDownloadErrors[keyof GetDatasetsByDatasetIdDocumentsByDocumentIdDownloadErrors] + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdDownloadResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdDownloadResponse + = GetDatasetsByDatasetIdDocumentsByDocumentIdDownloadResponses[keyof GetDatasetsByDatasetIdDocumentsByDocumentIdDownloadResponses] + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsData = { + body?: never + path: { + dataset_id: string + document_id: string + } + query?: { + keyword?: string | null + status?: Array + } + url: '/datasets/{dataset_id}/documents/{document_id}/segments' +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsError + = GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsErrors[keyof GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsErrors] + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsResponse + = GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsResponses[keyof GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsResponses] + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsData = { + body: SegmentCreatePayload + path: { + dataset_id: string + document_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/segments' +} + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsError + = PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsErrors[keyof PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsErrors] + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsResponse + = PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsResponses[keyof PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsResponses] + +export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdData = { + body?: never + path: { + dataset_id: string + document_id: string + segment_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}' +} + +export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdError + = DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdErrors[keyof DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdErrors] + +export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponses = { + 204: { + [key: string]: unknown + } +} + +export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponse + = DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponses[keyof DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponses] + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdData = { + body?: never + path: { + segment_id: string + dataset_id: string + document_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}' +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdError + = GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdErrors[keyof GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdErrors] + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponse + = GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponses[keyof GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponses] + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdData = { + body: SegmentUpdatePayload + path: { + dataset_id: string + document_id: string + segment_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}' +} + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdError + = PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdErrors[keyof PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdErrors] + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponse + = PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponses[keyof PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponses] + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksData = { + body?: never + path: { + dataset_id: string + document_id: string + segment_id: string + } + query?: { + keyword?: string | null + limit?: number + page?: number + } + url: '/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}/child_chunks' +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksError + = GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksErrors[keyof GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksErrors] + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponse + = GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponses[keyof GetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponses] + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksData = { + body: ChildChunkCreatePayload + path: { + dataset_id: string + document_id: string + segment_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}/child_chunks' +} + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksError + = PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksErrors[keyof PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksErrors] + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponse + = PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponses[keyof PostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponses] + +export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdData + = { + body?: never + path: { + 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}' + } + +export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdErrors + = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + } + +export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdError + = DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdErrors[keyof DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdErrors] + +export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdResponses + = { + 204: { + [key: string]: unknown + } + } + +export type DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdResponse + = DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdResponses[keyof DeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdResponses] + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdData + = { + body: ChildChunkUpdatePayload + path: { + 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}' + } + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdErrors + = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + } + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdError + = PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdErrors[keyof PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdErrors] + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdResponses + = { + 200: { + [key: string]: unknown + } + } + +export type PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdResponse + = PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdResponses[keyof PatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdResponses] + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFileData = { + body?: never + path: { + dataset_id: string + document_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/update-by-file' +} + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFileErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFileError + = PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFileErrors[keyof PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFileErrors] + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFileResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFileResponse + = PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFileResponses[keyof PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFileResponses] + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByTextData = { + body: DocumentTextUpdate + path: { + dataset_id: string + document_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/update-by-text' +} + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByTextErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByTextError + = PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByTextErrors[keyof PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByTextErrors] + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByTextResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByTextResponse + = PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByTextResponses[keyof PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByTextResponses] + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFile2Data = { + body?: never + path: { + dataset_id: string + document_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/update_by_file' +} + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFile2Errors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFile2Error + = PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFile2Errors[keyof PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFile2Errors] + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFile2Responses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFile2Response + = PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFile2Responses[keyof PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFile2Responses] + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByText2Data = { + body: DocumentTextUpdate + path: { + dataset_id: string + document_id: string + } + query?: never + url: '/datasets/{dataset_id}/documents/{document_id}/update_by_text' +} + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByText2Errors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByText2Error + = PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByText2Errors[keyof PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByText2Errors] + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByText2Responses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByText2Response + = PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByText2Responses[keyof PostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByText2Responses] + +export type PostDatasetsByDatasetIdHitTestingData = { + body: HitTestingPayload + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/hit-testing' +} + +export type PostDatasetsByDatasetIdHitTestingErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdHitTestingError + = PostDatasetsByDatasetIdHitTestingErrors[keyof PostDatasetsByDatasetIdHitTestingErrors] + +export type PostDatasetsByDatasetIdHitTestingResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdHitTestingResponse + = PostDatasetsByDatasetIdHitTestingResponses[keyof PostDatasetsByDatasetIdHitTestingResponses] + +export type GetDatasetsByDatasetIdMetadataData = { + body?: never + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/metadata' +} + +export type GetDatasetsByDatasetIdMetadataErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdMetadataError + = GetDatasetsByDatasetIdMetadataErrors[keyof GetDatasetsByDatasetIdMetadataErrors] + +export type GetDatasetsByDatasetIdMetadataResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdMetadataResponse + = GetDatasetsByDatasetIdMetadataResponses[keyof GetDatasetsByDatasetIdMetadataResponses] + +export type PostDatasetsByDatasetIdMetadataData = { + body: MetadataArgs + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/metadata' +} + +export type PostDatasetsByDatasetIdMetadataErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdMetadataError + = PostDatasetsByDatasetIdMetadataErrors[keyof PostDatasetsByDatasetIdMetadataErrors] + +export type PostDatasetsByDatasetIdMetadataResponses = { + 201: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdMetadataResponse + = PostDatasetsByDatasetIdMetadataResponses[keyof PostDatasetsByDatasetIdMetadataResponses] + +export type GetDatasetsByDatasetIdMetadataBuiltInData = { + body?: never + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/metadata/built-in' +} + +export type GetDatasetsByDatasetIdMetadataBuiltInErrors = { + 401: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdMetadataBuiltInError + = GetDatasetsByDatasetIdMetadataBuiltInErrors[keyof GetDatasetsByDatasetIdMetadataBuiltInErrors] + +export type GetDatasetsByDatasetIdMetadataBuiltInResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdMetadataBuiltInResponse + = GetDatasetsByDatasetIdMetadataBuiltInResponses[keyof GetDatasetsByDatasetIdMetadataBuiltInResponses] + +export type PostDatasetsByDatasetIdMetadataBuiltInByActionData = { + body?: never + path: { + dataset_id: string + action: string + } + query?: never + url: '/datasets/{dataset_id}/metadata/built-in/{action}' +} + +export type PostDatasetsByDatasetIdMetadataBuiltInByActionErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdMetadataBuiltInByActionError + = PostDatasetsByDatasetIdMetadataBuiltInByActionErrors[keyof PostDatasetsByDatasetIdMetadataBuiltInByActionErrors] + +export type PostDatasetsByDatasetIdMetadataBuiltInByActionResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdMetadataBuiltInByActionResponse + = PostDatasetsByDatasetIdMetadataBuiltInByActionResponses[keyof PostDatasetsByDatasetIdMetadataBuiltInByActionResponses] + +export type DeleteDatasetsByDatasetIdMetadataByMetadataIdData = { + body?: never + path: { + dataset_id: string + metadata_id: string + } + query?: never + url: '/datasets/{dataset_id}/metadata/{metadata_id}' +} + +export type DeleteDatasetsByDatasetIdMetadataByMetadataIdErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type DeleteDatasetsByDatasetIdMetadataByMetadataIdError + = DeleteDatasetsByDatasetIdMetadataByMetadataIdErrors[keyof DeleteDatasetsByDatasetIdMetadataByMetadataIdErrors] + +export type DeleteDatasetsByDatasetIdMetadataByMetadataIdResponses = { + 204: { + [key: string]: unknown + } +} + +export type DeleteDatasetsByDatasetIdMetadataByMetadataIdResponse + = DeleteDatasetsByDatasetIdMetadataByMetadataIdResponses[keyof DeleteDatasetsByDatasetIdMetadataByMetadataIdResponses] + +export type PatchDatasetsByDatasetIdMetadataByMetadataIdData = { + body: MetadataUpdatePayload + path: { + dataset_id: string + metadata_id: string + } + query?: never + url: '/datasets/{dataset_id}/metadata/{metadata_id}' +} + +export type PatchDatasetsByDatasetIdMetadataByMetadataIdErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PatchDatasetsByDatasetIdMetadataByMetadataIdError + = PatchDatasetsByDatasetIdMetadataByMetadataIdErrors[keyof PatchDatasetsByDatasetIdMetadataByMetadataIdErrors] + +export type PatchDatasetsByDatasetIdMetadataByMetadataIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type PatchDatasetsByDatasetIdMetadataByMetadataIdResponse + = PatchDatasetsByDatasetIdMetadataByMetadataIdResponses[keyof PatchDatasetsByDatasetIdMetadataByMetadataIdResponses] + +export type GetDatasetsByDatasetIdPipelineDatasourcePluginsData = { + body?: never + path: { + dataset_id: string + } + query?: { + is_published?: string + } + url: '/datasets/{dataset_id}/pipeline/datasource-plugins' +} + +export type GetDatasetsByDatasetIdPipelineDatasourcePluginsErrors = { + 401: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdPipelineDatasourcePluginsError + = GetDatasetsByDatasetIdPipelineDatasourcePluginsErrors[keyof GetDatasetsByDatasetIdPipelineDatasourcePluginsErrors] + +export type GetDatasetsByDatasetIdPipelineDatasourcePluginsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdPipelineDatasourcePluginsResponse + = GetDatasetsByDatasetIdPipelineDatasourcePluginsResponses[keyof GetDatasetsByDatasetIdPipelineDatasourcePluginsResponses] + +export type PostDatasetsByDatasetIdPipelineDatasourceNodesByNodeIdRunData = { + body?: never + path: { + dataset_id: string + node_id: string + } + query?: never + url: '/datasets/{dataset_id}/pipeline/datasource/nodes/{node_id}/run' +} + +export type PostDatasetsByDatasetIdPipelineDatasourceNodesByNodeIdRunErrors = { + 401: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdPipelineDatasourceNodesByNodeIdRunError + = PostDatasetsByDatasetIdPipelineDatasourceNodesByNodeIdRunErrors[keyof PostDatasetsByDatasetIdPipelineDatasourceNodesByNodeIdRunErrors] + +export type PostDatasetsByDatasetIdPipelineDatasourceNodesByNodeIdRunResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdPipelineDatasourceNodesByNodeIdRunResponse + = PostDatasetsByDatasetIdPipelineDatasourceNodesByNodeIdRunResponses[keyof PostDatasetsByDatasetIdPipelineDatasourceNodesByNodeIdRunResponses] + +export type PostDatasetsByDatasetIdPipelineRunData = { + body?: never + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/pipeline/run' +} + +export type PostDatasetsByDatasetIdPipelineRunErrors = { + 401: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdPipelineRunError + = PostDatasetsByDatasetIdPipelineRunErrors[keyof PostDatasetsByDatasetIdPipelineRunErrors] + +export type PostDatasetsByDatasetIdPipelineRunResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdPipelineRunResponse + = PostDatasetsByDatasetIdPipelineRunResponses[keyof PostDatasetsByDatasetIdPipelineRunResponses] + +export type PostDatasetsByDatasetIdRetrieveData = { + body: HitTestingPayload + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/retrieve' +} + +export type PostDatasetsByDatasetIdRetrieveErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdRetrieveError + = PostDatasetsByDatasetIdRetrieveErrors[keyof PostDatasetsByDatasetIdRetrieveErrors] + +export type PostDatasetsByDatasetIdRetrieveResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostDatasetsByDatasetIdRetrieveResponse + = PostDatasetsByDatasetIdRetrieveResponses[keyof PostDatasetsByDatasetIdRetrieveResponses] + +export type GetDatasetsByDatasetIdTagsData = { + body?: never + path: { + dataset_id: string + } + query?: never + url: '/datasets/{dataset_id}/tags' +} + +export type GetDatasetsByDatasetIdTagsErrors = { + 401: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdTagsError + = GetDatasetsByDatasetIdTagsErrors[keyof GetDatasetsByDatasetIdTagsErrors] + +export type GetDatasetsByDatasetIdTagsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetDatasetsByDatasetIdTagsResponse + = GetDatasetsByDatasetIdTagsResponses[keyof GetDatasetsByDatasetIdTagsResponses] + +export type GetEndUsersByEndUserIdData = { + body?: never + path: { + end_user_id: string + } + query?: never + url: '/end-users/{end_user_id}' +} + +export type GetEndUsersByEndUserIdErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type GetEndUsersByEndUserIdError + = GetEndUsersByEndUserIdErrors[keyof GetEndUsersByEndUserIdErrors] + +export type GetEndUsersByEndUserIdResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetEndUsersByEndUserIdResponse + = GetEndUsersByEndUserIdResponses[keyof GetEndUsersByEndUserIdResponses] + +export type PostFilesUploadData = { + body?: never + path?: never + query?: never + url: '/files/upload' +} + +export type PostFilesUploadErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 413: { + [key: string]: unknown + } + 415: { + [key: string]: unknown + } +} + +export type PostFilesUploadError = PostFilesUploadErrors[keyof PostFilesUploadErrors] + +export type PostFilesUploadResponses = { + 201: FileResponse +} + +export type PostFilesUploadResponse = PostFilesUploadResponses[keyof PostFilesUploadResponses] + +export type GetFilesByFileIdPreviewData = { + body?: never + path: { + file_id: string + } + query?: { + as_attachment?: boolean + } + url: '/files/{file_id}/preview' +} + +export type GetFilesByFileIdPreviewErrors = { + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type GetFilesByFileIdPreviewError + = GetFilesByFileIdPreviewErrors[keyof GetFilesByFileIdPreviewErrors] + +export type GetFilesByFileIdPreviewResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetFilesByFileIdPreviewResponse + = GetFilesByFileIdPreviewResponses[keyof GetFilesByFileIdPreviewResponses] + +export type GetFormHumanInputByFormTokenData = { + body?: never + path: { + form_token: string + } + query?: never + url: '/form/human_input/{form_token}' +} + +export type GetFormHumanInputByFormTokenErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 412: { + [key: string]: unknown + } +} + +export type GetFormHumanInputByFormTokenError + = GetFormHumanInputByFormTokenErrors[keyof GetFormHumanInputByFormTokenErrors] + +export type GetFormHumanInputByFormTokenResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetFormHumanInputByFormTokenResponse + = GetFormHumanInputByFormTokenResponses[keyof GetFormHumanInputByFormTokenResponses] + +export type PostFormHumanInputByFormTokenData = { + body: HumanInputFormSubmitPayload + path: { + form_token: string + } + query?: never + url: '/form/human_input/{form_token}' +} + +export type PostFormHumanInputByFormTokenErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 412: { + [key: string]: unknown + } +} + +export type PostFormHumanInputByFormTokenError + = PostFormHumanInputByFormTokenErrors[keyof PostFormHumanInputByFormTokenErrors] + +export type PostFormHumanInputByFormTokenResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostFormHumanInputByFormTokenResponse + = PostFormHumanInputByFormTokenResponses[keyof PostFormHumanInputByFormTokenResponses] + +export type GetInfoData = { + body?: never + path?: never + query?: never + url: '/info' +} + +export type GetInfoErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type GetInfoError = GetInfoErrors[keyof GetInfoErrors] + +export type GetInfoResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetInfoResponse = GetInfoResponses[keyof GetInfoResponses] + +export type GetMessagesData = { + body?: never + path?: never + query: { + conversation_id: string + first_id?: string | null + limit?: number + } + url: '/messages' +} + +export type GetMessagesErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type GetMessagesError = GetMessagesErrors[keyof GetMessagesErrors] + +export type GetMessagesResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetMessagesResponse = GetMessagesResponses[keyof GetMessagesResponses] + +export type PostMessagesByMessageIdFeedbacksData = { + body: MessageFeedbackPayload + path: { + message_id: string + } + query?: never + url: '/messages/{message_id}/feedbacks' +} + +export type PostMessagesByMessageIdFeedbacksErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostMessagesByMessageIdFeedbacksError + = PostMessagesByMessageIdFeedbacksErrors[keyof PostMessagesByMessageIdFeedbacksErrors] + +export type PostMessagesByMessageIdFeedbacksResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostMessagesByMessageIdFeedbacksResponse + = PostMessagesByMessageIdFeedbacksResponses[keyof PostMessagesByMessageIdFeedbacksResponses] + +export type GetMessagesByMessageIdSuggestedData = { + body?: never + path: { + message_id: string + } + query?: never + url: '/messages/{message_id}/suggested' +} + +export type GetMessagesByMessageIdSuggestedErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type GetMessagesByMessageIdSuggestedError + = GetMessagesByMessageIdSuggestedErrors[keyof GetMessagesByMessageIdSuggestedErrors] + +export type GetMessagesByMessageIdSuggestedResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetMessagesByMessageIdSuggestedResponse + = GetMessagesByMessageIdSuggestedResponses[keyof GetMessagesByMessageIdSuggestedResponses] + +export type GetMetaData = { + body?: never + path?: never + query?: never + url: '/meta' +} + +export type GetMetaErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type GetMetaError = GetMetaErrors[keyof GetMetaErrors] + +export type GetMetaResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetMetaResponse = GetMetaResponses[keyof GetMetaResponses] + +export type GetParametersData = { + body?: never + path?: never + query?: never + url: '/parameters' +} + +export type GetParametersErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type GetParametersError = GetParametersErrors[keyof GetParametersErrors] + +export type GetParametersResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetParametersResponse = GetParametersResponses[keyof GetParametersResponses] + +export type GetSiteData = { + body?: never + path?: never + query?: never + url: '/site' +} + +export type GetSiteErrors = { + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } +} + +export type GetSiteError = GetSiteErrors[keyof GetSiteErrors] + +export type GetSiteResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetSiteResponse = GetSiteResponses[keyof GetSiteResponses] + +export type PostTextToAudioData = { + body: TextToAudioPayload + path?: never + query?: never + url: '/text-to-audio' +} + +export type PostTextToAudioErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type PostTextToAudioError = PostTextToAudioErrors[keyof PostTextToAudioErrors] + +export type PostTextToAudioResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostTextToAudioResponse = PostTextToAudioResponses[keyof PostTextToAudioResponses] + +export type GetWorkflowByTaskIdEventsData = { + body?: never + path: { + task_id: string + } + query?: { + user?: string + include_state_snapshot?: string + continue_on_pause?: string + } + url: '/workflow/{task_id}/events' +} + +export type GetWorkflowByTaskIdEventsErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type GetWorkflowByTaskIdEventsError + = GetWorkflowByTaskIdEventsErrors[keyof GetWorkflowByTaskIdEventsErrors] + +export type GetWorkflowByTaskIdEventsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkflowByTaskIdEventsResponse + = GetWorkflowByTaskIdEventsResponses[keyof GetWorkflowByTaskIdEventsResponses] + +export type GetWorkflowsLogsData = { + body?: never + path?: never + query?: { + created_at__after?: string | null + created_at__before?: string | null + created_by_account?: string | null + created_by_end_user_session_id?: string | null + keyword?: string | null + limit?: number + page?: number + status?: 'succeeded' | 'failed' | 'stopped' | null + } + url: '/workflows/logs' +} + +export type GetWorkflowsLogsErrors = { + 401: { + [key: string]: unknown + } +} + +export type GetWorkflowsLogsError = GetWorkflowsLogsErrors[keyof GetWorkflowsLogsErrors] + +export type GetWorkflowsLogsResponses = { + 200: WorkflowAppLogPaginationResponse +} + +export type GetWorkflowsLogsResponse = GetWorkflowsLogsResponses[keyof GetWorkflowsLogsResponses] + +export type PostWorkflowsRunData = { + body: WorkflowRunPayload + path?: never + query?: never + url: '/workflows/run' +} + +export type PostWorkflowsRunErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 429: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type PostWorkflowsRunError = PostWorkflowsRunErrors[keyof PostWorkflowsRunErrors] + +export type PostWorkflowsRunResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkflowsRunResponse = PostWorkflowsRunResponses[keyof PostWorkflowsRunResponses] + +export type GetWorkflowsRunByWorkflowRunIdData = { + body?: never + path: { + workflow_run_id: string + } + query?: never + url: '/workflows/run/{workflow_run_id}' +} + +export type GetWorkflowsRunByWorkflowRunIdErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type GetWorkflowsRunByWorkflowRunIdError + = GetWorkflowsRunByWorkflowRunIdErrors[keyof GetWorkflowsRunByWorkflowRunIdErrors] + +export type GetWorkflowsRunByWorkflowRunIdResponses = { + 200: WorkflowRunResponse +} + +export type GetWorkflowsRunByWorkflowRunIdResponse + = GetWorkflowsRunByWorkflowRunIdResponses[keyof GetWorkflowsRunByWorkflowRunIdResponses] + +export type PostWorkflowsTasksByTaskIdStopData = { + body?: never + path: { + task_id: string + } + query?: never + url: '/workflows/tasks/{task_id}/stop' +} + +export type PostWorkflowsTasksByTaskIdStopErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostWorkflowsTasksByTaskIdStopError + = PostWorkflowsTasksByTaskIdStopErrors[keyof PostWorkflowsTasksByTaskIdStopErrors] + +export type PostWorkflowsTasksByTaskIdStopResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkflowsTasksByTaskIdStopResponse + = PostWorkflowsTasksByTaskIdStopResponses[keyof PostWorkflowsTasksByTaskIdStopResponses] + +export type PostWorkflowsByWorkflowIdRunData = { + body: WorkflowRunPayload + path: { + workflow_id: string + } + query?: never + url: '/workflows/{workflow_id}/run' +} + +export type PostWorkflowsByWorkflowIdRunErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 429: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type PostWorkflowsByWorkflowIdRunError + = PostWorkflowsByWorkflowIdRunErrors[keyof PostWorkflowsByWorkflowIdRunErrors] + +export type PostWorkflowsByWorkflowIdRunResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkflowsByWorkflowIdRunResponse + = PostWorkflowsByWorkflowIdRunResponses[keyof PostWorkflowsByWorkflowIdRunResponses] + +export type GetWorkspacesCurrentModelsModelTypesByModelTypeData = { + body?: never + path: { + model_type: string + } + query?: never + url: '/workspaces/current/models/model-types/{model_type}' +} + +export type GetWorkspacesCurrentModelsModelTypesByModelTypeErrors = { + 401: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentModelsModelTypesByModelTypeError + = GetWorkspacesCurrentModelsModelTypesByModelTypeErrors[keyof GetWorkspacesCurrentModelsModelTypesByModelTypeErrors] + +export type GetWorkspacesCurrentModelsModelTypesByModelTypeResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkspacesCurrentModelsModelTypesByModelTypeResponse + = GetWorkspacesCurrentModelsModelTypesByModelTypeResponses[keyof GetWorkspacesCurrentModelsModelTypesByModelTypeResponses] diff --git a/packages/contracts/generated/api/service/zod.gen.ts b/packages/contracts/generated/api/service/zod.gen.ts new file mode 100644 index 0000000000..2c2400c0cb --- /dev/null +++ b/packages/contracts/generated/api/service/zod.gen.ts @@ -0,0 +1,1558 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * Annotation + */ +export const zAnnotation = z.object({ + content: z.string().nullish(), + created_at: z.int().nullish(), + hit_count: z.int().nullish(), + id: z.string(), + question: z.string().nullish(), +}) + +/** + * AnnotationCreatePayload + */ +export const zAnnotationCreatePayload = z.object({ + answer: z.string(), + question: z.string(), +}) + +/** + * AnnotationList + */ +export const zAnnotationList = z.object({ + data: z.array(zAnnotation), + has_more: z.boolean(), + limit: z.int(), + page: z.int(), + total: z.int(), +}) + +/** + * AnnotationReplyActionPayload + */ +export const zAnnotationReplyActionPayload = z.object({ + embedding_model_name: z.string(), + embedding_provider_name: z.string(), + score_threshold: z.number(), +}) + +/** + * ChatRequestPayload + */ +export const zChatRequestPayload = z.object({ + auto_generate_name: z.boolean().optional().default(true), + conversation_id: z.string().nullish(), + files: z.array(z.record(z.string(), z.unknown())).nullish(), + inputs: z.record(z.string(), z.unknown()), + query: z.string(), + response_mode: z.enum(['blocking', 'streaming']).nullish(), + retriever_from: z.string().optional().default('dev'), + workflow_id: z.string().nullish(), +}) + +/** + * ChildChunkCreatePayload + */ +export const zChildChunkCreatePayload = z.object({ + content: z.string(), +}) + +/** + * ChildChunkListQuery + */ +export const zChildChunkListQuery = z.object({ + keyword: z.string().nullish(), + limit: z.int().gte(1).optional().default(20), + page: z.int().gte(1).optional().default(1), +}) + +/** + * ChildChunkUpdatePayload + */ +export const zChildChunkUpdatePayload = z.object({ + content: z.string(), +}) + +/** + * CompletionRequestPayload + */ +export const zCompletionRequestPayload = z.object({ + files: z.array(z.record(z.string(), z.unknown())).nullish(), + inputs: z.record(z.string(), z.unknown()), + query: z.string().optional().default(''), + response_mode: z.enum(['blocking', 'streaming']).nullish(), + retriever_from: z.string().optional().default('dev'), +}) + +/** + * ConversationListQuery + */ +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']) + .optional() + .default('-updated_at'), +}) + +/** + * ConversationRenamePayload + */ +export const zConversationRenamePayload = z.object({ + auto_generate: z.boolean().optional().default(false), + name: z.string().nullish(), +}) + +/** + * ConversationVariableResponse + */ +export const zConversationVariableResponse = z.object({ + created_at: z.int().nullish(), + description: z.string().nullish(), + id: z.string(), + name: z.string(), + updated_at: z.int().nullish(), + value: z.string().nullish(), + value_type: z.string(), +}) + +/** + * ConversationVariableInfiniteScrollPaginationResponse + */ +export const zConversationVariableInfiniteScrollPaginationResponse = z.object({ + data: z.array(zConversationVariableResponse), + has_more: z.boolean(), + limit: z.int(), +}) + +/** + * ConversationVariableUpdatePayload + */ +export const zConversationVariableUpdatePayload = z.object({ + value: z.unknown(), +}) + +/** + * ConversationVariablesQuery + */ +export const zConversationVariablesQuery = z.object({ + last_id: z.string().nullish(), + limit: z.int().gte(1).lte(100).optional().default(20), + variable_name: z.string().min(1).max(255).nullish(), +}) + +/** + * DocumentBatchDownloadZipPayload + * + * Request payload for bulk downloading documents as a zip archive. + */ +export const zDocumentBatchDownloadZipPayload = z.object({ + document_ids: z.array(z.uuid()).min(1).max(100), +}) + +/** + * FeedbackListQuery + */ +export const zFeedbackListQuery = z.object({ + limit: z.int().gte(1).lte(101).optional().default(20), + page: z.int().gte(1).optional().default(1), +}) + +/** + * FilePreviewQuery + */ +export const zFilePreviewQuery = z.object({ + as_attachment: z.boolean().optional().default(false), +}) + +/** + * FileResponse + */ +export const zFileResponse = z.object({ + conversation_id: z.string().nullish(), + created_at: z.int().nullish(), + created_by: z.string().nullish(), + extension: z.string().nullish(), + file_key: z.string().nullish(), + id: z.string(), + mime_type: z.string().nullish(), + name: z.string(), + original_url: z.string().nullish(), + preview_url: z.string().nullish(), + size: z.int(), + source_url: z.string().nullish(), + tenant_id: z.string().nullish(), + user_id: z.string().nullish(), +}) + +/** + * MessageFeedbackPayload + */ +export const zMessageFeedbackPayload = z.object({ + content: z.string().nullish(), + rating: z.enum(['like', 'dislike']).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), +}) + +/** + * MetadataArgs + */ +export const zMetadataArgs = z.object({ + name: z.string(), + type: z.enum(['string', 'number', 'time']), +}) + +/** + * MetadataUpdatePayload + */ +export const zMetadataUpdatePayload = z.object({ + name: z.string(), +}) + +/** + * SegmentCreatePayload + */ +export const zSegmentCreatePayload = z.object({ + segments: z.array(z.record(z.string(), z.unknown())).nullish(), +}) + +/** + * SegmentListQuery + */ +export const zSegmentListQuery = z.object({ + keyword: z.string().nullish(), + status: z.array(z.string()).optional(), +}) + +/** + * 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 + */ +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(), +}) + +/** + * DatasetPermissionEnum + */ +export const zDatasetPermissionEnum = z.enum(['only_me', 'all_team_members', 'partial_members']) + +/** + * 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({ + 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({ + 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(), +}) + +/** + * PreProcessingRule + */ +export const zPreProcessingRule = z.object({ + enabled: z.boolean(), + id: z.string(), +}) + +/** + * Segmentation + */ +export const zSegmentation = z.object({ + chunk_overlap: z.int().optional().default(0), + max_tokens: z.int(), + separator: z.string().optional().default('\n'), +}) + +/** + * Rule + */ +export const zRule = z.object({ + parent_mode: z.enum(['full-doc', 'paragraph']).nullish(), + pre_processing_rules: z.array(zPreProcessingRule).nullish(), + segmentation: zSegmentation.optional(), + subchunk_segmentation: zSegmentation.optional(), +}) + +/** + * ProcessRule + */ +export const zProcessRule = z.object({ + mode: z.enum(['automatic', 'custom', 'hierarchical']), + rules: zRule.optional(), +}) + +/** + * DocumentTextCreatePayload + */ +export const zDocumentTextCreatePayload = z.object({ + doc_form: z.string().optional().default('text_model'), + doc_language: z.string().optional().default('English'), + embedding_model: z.string().nullish(), + embedding_model_provider: z.string().nullish(), + indexing_technique: z.string().nullish(), + name: z.string(), + original_document_id: z.string().nullish(), + process_rule: zProcessRule.optional(), + retrieval_model: zRetrievalModel.optional(), + text: z.string(), +}) + +/** + * DocumentTextUpdate + */ +export const zDocumentTextUpdate = z.object({ + doc_form: z.string().optional().default('text_model'), + doc_language: z.string().optional().default('English'), + name: z.string().nullish(), + process_rule: zProcessRule.optional(), + retrieval_model: zRetrievalModel.optional(), + text: z.string().nullish(), +}) + +export const zJsonValue = z.unknown() + +/** + * HumanInputFormSubmitPayload + */ +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(), + 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(), +}) + +/** + * SegmentUpdatePayload + */ +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(), +}) + +/** + * WorkflowRunForLogResponse + */ +export const zWorkflowRunForLogResponse = z.object({ + created_at: z.int().nullish(), + elapsed_time: z.unknown().optional(), + error: z.string().nullish(), + exceptions_count: z.int().nullish(), + finished_at: z.int().nullish(), + id: z.string(), + status: z.string().nullish(), + total_steps: z.int().nullish(), + total_tokens: z.int().nullish(), + triggered_from: z.string().nullish(), + version: z.string().nullish(), +}) + +/** + * WorkflowAppLogPartialResponse + */ +export const zWorkflowAppLogPartialResponse = z.object({ + created_at: z.int().nullish(), + created_by_account: zSimpleAccount.optional(), + created_by_end_user: zSimpleEndUser.optional(), + created_by_role: z.string().nullish(), + created_from: z.string().nullish(), + details: z.unknown().optional(), + id: z.string(), + workflow_run: zWorkflowRunForLogResponse.optional(), +}) + +/** + * WorkflowAppLogPaginationResponse + */ +export const zWorkflowAppLogPaginationResponse = z.object({ + data: z.array(zWorkflowAppLogPartialResponse), + has_more: z.boolean(), + limit: z.int(), + page: z.int(), + total: z.int(), +}) + +/** + * Success + */ +export const zGetRootResponse = z.record(z.string(), z.unknown()) + +export const zGetAppFeedbacksQuery = z.object({ + limit: z.int().gte(1).lte(101).optional().default(20), + page: z.int().gte(1).optional().default(1), +}) + +/** + * Feedbacks retrieved successfully + */ +export const zGetAppFeedbacksResponse = z.record(z.string(), z.unknown()) + +export const zPostAppsAnnotationReplyByActionBody = zAnnotationReplyActionPayload + +export const zPostAppsAnnotationReplyByActionPath = z.object({ + action: z.string(), +}) + +/** + * Action completed successfully + */ +export const zPostAppsAnnotationReplyByActionResponse = z.record(z.string(), z.unknown()) + +export const zGetAppsAnnotationReplyByActionStatusByJobIdPath = z.object({ + action: z.string(), + job_id: z.string(), +}) + +/** + * Job status retrieved successfully + */ +export const zGetAppsAnnotationReplyByActionStatusByJobIdResponse = z.record( + z.string(), + z.unknown(), +) + +/** + * Annotations retrieved successfully + */ +export const zGetAppsAnnotationsResponse = zAnnotationList + +export const zPostAppsAnnotationsBody = zAnnotationCreatePayload + +/** + * Annotation created successfully + */ +export const zPostAppsAnnotationsResponse = zAnnotation + +export const zDeleteAppsAnnotationsByAnnotationIdPath = z.object({ + annotation_id: z.string(), +}) + +/** + * Annotation deleted successfully + */ +export const zDeleteAppsAnnotationsByAnnotationIdResponse = z.record(z.string(), z.unknown()) + +export const zPutAppsAnnotationsByAnnotationIdBody = zAnnotationCreatePayload + +export const zPutAppsAnnotationsByAnnotationIdPath = z.object({ + annotation_id: z.string(), +}) + +/** + * Annotation updated successfully + */ +export const zPutAppsAnnotationsByAnnotationIdResponse = zAnnotation + +/** + * Audio successfully transcribed + */ +export const zPostAudioToTextResponse = z.record(z.string(), z.unknown()) + +export const zPostChatMessagesBody = zChatRequestPayload + +/** + * Message sent successfully + */ +export const zPostChatMessagesResponse = z.record(z.string(), z.unknown()) + +export const zPostChatMessagesByTaskIdStopPath = z.object({ + task_id: z.string(), +}) + +/** + * Task stopped successfully + */ +export const zPostChatMessagesByTaskIdStopResponse = z.record(z.string(), z.unknown()) + +export const zPostCompletionMessagesBody = zCompletionRequestPayload + +/** + * Completion created successfully + */ +export const zPostCompletionMessagesResponse = z.record(z.string(), z.unknown()) + +export const zPostCompletionMessagesByTaskIdStopPath = z.object({ + task_id: z.string(), +}) + +/** + * Task stopped successfully + */ +export const zPostCompletionMessagesByTaskIdStopResponse = z.record(z.string(), z.unknown()) + +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']) + .optional() + .default('-updated_at'), +}) + +/** + * Conversations retrieved successfully + */ +export const zGetConversationsResponse = z.record(z.string(), z.unknown()) + +export const zDeleteConversationsByCIdPath = z.object({ + c_id: z.string(), +}) + +/** + * Conversation deleted successfully + */ +export const zDeleteConversationsByCIdResponse = z.record(z.string(), z.unknown()) + +export const zPostConversationsByCIdNameBody = zConversationRenamePayload + +export const zPostConversationsByCIdNamePath = z.object({ + c_id: z.string(), +}) + +/** + * Conversation renamed successfully + */ +export const zPostConversationsByCIdNameResponse = z.record(z.string(), z.unknown()) + +export const zGetConversationsByCIdVariablesPath = z.object({ + c_id: z.string(), +}) + +export const zGetConversationsByCIdVariablesQuery = z.object({ + last_id: z.string().nullish(), + limit: z.int().gte(1).lte(100).optional().default(20), + variable_name: z.string().min(1).max(255).nullish(), +}) + +/** + * Variables retrieved successfully + */ +export const zGetConversationsByCIdVariablesResponse + = zConversationVariableInfiniteScrollPaginationResponse + +export const zPutConversationsByCIdVariablesByVariableIdBody = zConversationVariableUpdatePayload + +export const zPutConversationsByCIdVariablesByVariableIdPath = z.object({ + c_id: z.string(), + variable_id: z.string(), +}) + +/** + * Variable updated successfully + */ +export const zPutConversationsByCIdVariablesByVariableIdResponse = zConversationVariableResponse + +/** + * Datasets retrieved successfully + */ +export const zGetDatasetsResponse = z.record(z.string(), z.unknown()) + +export const zPostDatasetsBody = zDatasetCreatePayload + +/** + * Dataset created successfully + */ +export const zPostDatasetsResponse = z.record(z.string(), z.unknown()) + +/** + * File uploaded successfully + */ +export const zPostDatasetsPipelineFileUploadResponse = z.record(z.string(), z.unknown()) + +export const zDeleteDatasetsTagsBody = zTagDeletePayload + +/** + * Tag deleted successfully + */ +export const zDeleteDatasetsTagsResponse = z.record(z.string(), z.unknown()) + +/** + * Tags retrieved successfully + */ +export const zGetDatasetsTagsResponse = z.record(z.string(), z.unknown()) + +export const zPatchDatasetsTagsBody = zTagUpdatePayload + +/** + * Tag updated successfully + */ +export const zPatchDatasetsTagsResponse = z.record(z.string(), z.unknown()) + +export const zPostDatasetsTagsBody = zTagCreatePayload + +/** + * Tag created successfully + */ +export const zPostDatasetsTagsResponse = z.record(z.string(), z.unknown()) + +export const zPostDatasetsTagsBindingBody = zTagBindingPayload + +/** + * Tags bound successfully + */ +export const zPostDatasetsTagsBindingResponse = z.record(z.string(), z.unknown()) + +export const zPostDatasetsTagsUnbindingBody = zTagUnbindingPayload + +/** + * Tag unbound successfully + */ +export const zPostDatasetsTagsUnbindingResponse = z.record(z.string(), z.unknown()) + +export const zDeleteDatasetsByDatasetIdPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Dataset deleted successfully + */ +export const zDeleteDatasetsByDatasetIdResponse = z.record(z.string(), z.unknown()) + +export const zGetDatasetsByDatasetIdPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Dataset retrieved successfully + */ +export const zGetDatasetsByDatasetIdResponse = z.record(z.string(), z.unknown()) + +export const zPatchDatasetsByDatasetIdBody = zDatasetUpdatePayload + +export const zPatchDatasetsByDatasetIdPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Dataset updated successfully + */ +export const zPatchDatasetsByDatasetIdResponse = z.record(z.string(), z.unknown()) + +export const zPostDatasetsByDatasetIdDocumentCreateByFilePath = z.object({ + dataset_id: z.string(), +}) + +/** + * Document created successfully + */ +export const zPostDatasetsByDatasetIdDocumentCreateByFileResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostDatasetsByDatasetIdDocumentCreateByTextBody = zDocumentTextCreatePayload + +export const zPostDatasetsByDatasetIdDocumentCreateByTextPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Document created successfully + */ +export const zPostDatasetsByDatasetIdDocumentCreateByTextResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostDatasetsByDatasetIdDocumentCreateByFile2Path = z.object({ + dataset_id: z.string(), +}) + +/** + * Document created successfully + */ +export const zPostDatasetsByDatasetIdDocumentCreateByFile2Response = z.record( + z.string(), + z.unknown(), +) + +export const zPostDatasetsByDatasetIdDocumentCreateByText2Body = zDocumentTextCreatePayload + +export const zPostDatasetsByDatasetIdDocumentCreateByText2Path = z.object({ + dataset_id: z.string(), +}) + +/** + * Document created successfully + */ +export const zPostDatasetsByDatasetIdDocumentCreateByText2Response = z.record( + z.string(), + z.unknown(), +) + +export const zGetDatasetsByDatasetIdDocumentsPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Documents retrieved successfully + */ +export const zGetDatasetsByDatasetIdDocumentsResponse = z.record(z.string(), z.unknown()) + +export const zPostDatasetsByDatasetIdDocumentsDownloadZipBody = zDocumentBatchDownloadZipPayload + +export const zPostDatasetsByDatasetIdDocumentsDownloadZipPath = z.object({ + dataset_id: z.string(), +}) + +/** + * ZIP archive generated successfully + */ +export const zPostDatasetsByDatasetIdDocumentsDownloadZipResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostDatasetsByDatasetIdDocumentsMetadataBody = zMetadataOperationData + +export const zPostDatasetsByDatasetIdDocumentsMetadataPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Documents metadata updated successfully + */ +export const zPostDatasetsByDatasetIdDocumentsMetadataResponse = z.record(z.string(), z.unknown()) + +export const zPatchDatasetsByDatasetIdDocumentsStatusByActionPath = z.object({ + dataset_id: z.string(), + action: z.string(), +}) + +/** + * Document status updated successfully + */ +export const zPatchDatasetsByDatasetIdDocumentsStatusByActionResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetDatasetsByDatasetIdDocumentsByBatchIndexingStatusPath = z.object({ + dataset_id: z.string(), + batch: z.string(), +}) + +/** + * Indexing status retrieved successfully + */ +export const zGetDatasetsByDatasetIdDocumentsByBatchIndexingStatusResponse = z.record( + z.string(), + z.unknown(), +) + +export const zDeleteDatasetsByDatasetIdDocumentsByDocumentIdPath = z.object({ + dataset_id: z.string(), + document_id: z.string(), +}) + +/** + * Document deleted successfully + */ +export const zDeleteDatasetsByDatasetIdDocumentsByDocumentIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdPath = z.object({ + dataset_id: z.string(), + document_id: z.string(), +}) + +/** + * Document retrieved successfully + */ +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPatchDatasetsByDatasetIdDocumentsByDocumentIdPath = z.object({ + dataset_id: z.string(), + document_id: z.string(), +}) + +/** + * Document updated successfully + */ +export const zPatchDatasetsByDatasetIdDocumentsByDocumentIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdDownloadPath = z.object({ + dataset_id: z.string(), + document_id: z.string(), +}) + +/** + * Download URL generated successfully + */ +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdDownloadResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsPath = z.object({ + dataset_id: z.string(), + document_id: z.string(), +}) + +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsQuery = z.object({ + keyword: z.string().nullish(), + status: z.array(z.string()).optional(), +}) + +/** + * Segments retrieved successfully + */ +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBody = zSegmentCreatePayload + +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsPath = z.object({ + dataset_id: z.string(), + document_id: z.string(), +}) + +/** + * Segments created successfully + */ +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdPath = z.object({ + dataset_id: z.string(), + document_id: z.string(), + segment_id: z.string(), +}) + +/** + * Segment deleted successfully + */ +export const zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdPath = z.object({ + segment_id: z.string(), + dataset_id: z.string(), + document_id: z.string(), +}) + +/** + * Segment retrieved successfully + */ +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdBody + = zSegmentUpdatePayload + +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdPath = z.object({ + dataset_id: z.string(), + document_id: z.string(), + segment_id: z.string(), +}) + +/** + * Segment updated successfully + */ +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksPath + = z.object({ + dataset_id: z.string(), + document_id: z.string(), + segment_id: z.string(), + }) + +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksQuery + = z.object({ + keyword: z.string().nullish(), + limit: z.int().gte(1).optional().default(20), + page: z.int().gte(1).optional().default(1), + }) + +/** + * Child chunks retrieved successfully + */ +export const zGetDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponse + = z.record(z.string(), z.unknown()) + +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksBody + = zChildChunkCreatePayload + +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksPath + = z.object({ + dataset_id: z.string(), + document_id: z.string(), + segment_id: z.string(), + }) + +/** + * Child chunk created successfully + */ +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksResponse + = z.record(z.string(), z.unknown()) + +export const zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdPath + = z.object({ + dataset_id: z.string(), + document_id: z.string(), + segment_id: z.string(), + child_chunk_id: z.string(), + }) + +/** + * Child chunk deleted successfully + */ +export const zDeleteDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdResponse + = z.record(z.string(), z.unknown()) + +export const zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdBody + = zChildChunkUpdatePayload + +export const zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdPath + = z.object({ + dataset_id: z.string(), + document_id: z.string(), + segment_id: z.string(), + child_chunk_id: z.string(), + }) + +/** + * Child chunk updated successfully + */ +export const zPatchDatasetsByDatasetIdDocumentsByDocumentIdSegmentsBySegmentIdChildChunksByChildChunkIdResponse + = z.record(z.string(), z.unknown()) + +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFilePath = z.object({ + dataset_id: z.string(), + document_id: z.string(), +}) + +/** + * Document updated successfully + */ +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFileResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByTextBody = zDocumentTextUpdate + +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByTextPath = z.object({ + dataset_id: z.string(), + document_id: z.string(), +}) + +/** + * Document updated successfully + */ +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByTextResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFile2Path = z.object({ + dataset_id: z.string(), + document_id: z.string(), +}) + +/** + * Document updated successfully + */ +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByFile2Response = z.record( + z.string(), + z.unknown(), +) + +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByText2Body = zDocumentTextUpdate + +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByText2Path = z.object({ + dataset_id: z.string(), + document_id: z.string(), +}) + +/** + * Document updated successfully + */ +export const zPostDatasetsByDatasetIdDocumentsByDocumentIdUpdateByText2Response = z.record( + z.string(), + z.unknown(), +) + +export const zPostDatasetsByDatasetIdHitTestingBody = zHitTestingPayload + +export const zPostDatasetsByDatasetIdHitTestingPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Hit testing results + */ +export const zPostDatasetsByDatasetIdHitTestingResponse = z.record(z.string(), z.unknown()) + +export const zGetDatasetsByDatasetIdMetadataPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Metadata retrieved successfully + */ +export const zGetDatasetsByDatasetIdMetadataResponse = z.record(z.string(), z.unknown()) + +export const zPostDatasetsByDatasetIdMetadataBody = zMetadataArgs + +export const zPostDatasetsByDatasetIdMetadataPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Metadata created successfully + */ +export const zPostDatasetsByDatasetIdMetadataResponse = z.record(z.string(), z.unknown()) + +export const zGetDatasetsByDatasetIdMetadataBuiltInPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Built-in fields retrieved successfully + */ +export const zGetDatasetsByDatasetIdMetadataBuiltInResponse = z.record(z.string(), z.unknown()) + +export const zPostDatasetsByDatasetIdMetadataBuiltInByActionPath = z.object({ + dataset_id: z.string(), + action: z.string(), +}) + +/** + * Action completed successfully + */ +export const zPostDatasetsByDatasetIdMetadataBuiltInByActionResponse = z.record( + z.string(), + z.unknown(), +) + +export const zDeleteDatasetsByDatasetIdMetadataByMetadataIdPath = z.object({ + dataset_id: z.string(), + metadata_id: z.string(), +}) + +/** + * Metadata deleted successfully + */ +export const zDeleteDatasetsByDatasetIdMetadataByMetadataIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPatchDatasetsByDatasetIdMetadataByMetadataIdBody = zMetadataUpdatePayload + +export const zPatchDatasetsByDatasetIdMetadataByMetadataIdPath = z.object({ + dataset_id: z.string(), + metadata_id: z.string(), +}) + +/** + * Metadata updated successfully + */ +export const zPatchDatasetsByDatasetIdMetadataByMetadataIdResponse = z.record( + z.string(), + z.unknown(), +) + +export const zGetDatasetsByDatasetIdPipelineDatasourcePluginsPath = z.object({ + dataset_id: z.string(), +}) + +export const zGetDatasetsByDatasetIdPipelineDatasourcePluginsQuery = z.object({ + is_published: z.string().optional(), +}) + +/** + * Datasource plugins retrieved successfully + */ +export const zGetDatasetsByDatasetIdPipelineDatasourcePluginsResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostDatasetsByDatasetIdPipelineDatasourceNodesByNodeIdRunPath = z.object({ + dataset_id: z.string(), + node_id: z.string(), +}) + +/** + * Datasource node run successfully + */ +export const zPostDatasetsByDatasetIdPipelineDatasourceNodesByNodeIdRunResponse = z.record( + z.string(), + z.unknown(), +) + +export const zPostDatasetsByDatasetIdPipelineRunPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Pipeline run successfully + */ +export const zPostDatasetsByDatasetIdPipelineRunResponse = z.record(z.string(), z.unknown()) + +export const zPostDatasetsByDatasetIdRetrieveBody = zHitTestingPayload + +export const zPostDatasetsByDatasetIdRetrievePath = z.object({ + dataset_id: z.string(), +}) + +/** + * Hit testing results + */ +export const zPostDatasetsByDatasetIdRetrieveResponse = z.record(z.string(), z.unknown()) + +export const zGetDatasetsByDatasetIdTagsPath = z.object({ + dataset_id: z.string(), +}) + +/** + * Tags retrieved successfully + */ +export const zGetDatasetsByDatasetIdTagsResponse = z.record(z.string(), z.unknown()) + +export const zGetEndUsersByEndUserIdPath = z.object({ + end_user_id: z.string(), +}) + +/** + * End user retrieved successfully + */ +export const zGetEndUsersByEndUserIdResponse = z.record(z.string(), z.unknown()) + +/** + * File uploaded successfully + */ +export const zPostFilesUploadResponse = zFileResponse + +export const zGetFilesByFileIdPreviewPath = z.object({ + file_id: z.string(), +}) + +export const zGetFilesByFileIdPreviewQuery = z.object({ + as_attachment: z.boolean().optional().default(false), +}) + +/** + * File retrieved successfully + */ +export const zGetFilesByFileIdPreviewResponse = z.record(z.string(), z.unknown()) + +export const zGetFormHumanInputByFormTokenPath = z.object({ + form_token: z.string(), +}) + +/** + * Form retrieved successfully + */ +export const zGetFormHumanInputByFormTokenResponse = z.record(z.string(), z.unknown()) + +export const zPostFormHumanInputByFormTokenBody = zHumanInputFormSubmitPayload + +export const zPostFormHumanInputByFormTokenPath = z.object({ + form_token: z.string(), +}) + +/** + * Form submitted successfully + */ +export const zPostFormHumanInputByFormTokenResponse = z.record(z.string(), z.unknown()) + +/** + * Application info retrieved successfully + */ +export const zGetInfoResponse = z.record(z.string(), z.unknown()) + +export const zGetMessagesQuery = z.object({ + conversation_id: z.string(), + first_id: z.string().nullish(), + limit: z.int().gte(1).lte(100).optional().default(20), +}) + +/** + * Messages retrieved successfully + */ +export const zGetMessagesResponse = z.record(z.string(), z.unknown()) + +export const zPostMessagesByMessageIdFeedbacksBody = zMessageFeedbackPayload + +export const zPostMessagesByMessageIdFeedbacksPath = z.object({ + message_id: z.string(), +}) + +/** + * Feedback submitted successfully + */ +export const zPostMessagesByMessageIdFeedbacksResponse = z.record(z.string(), z.unknown()) + +export const zGetMessagesByMessageIdSuggestedPath = z.object({ + message_id: z.string(), +}) + +/** + * Suggested questions retrieved successfully + */ +export const zGetMessagesByMessageIdSuggestedResponse = z.record(z.string(), z.unknown()) + +/** + * Metadata retrieved successfully + */ +export const zGetMetaResponse = z.record(z.string(), z.unknown()) + +/** + * Parameters retrieved successfully + */ +export const zGetParametersResponse = z.record(z.string(), z.unknown()) + +/** + * Site configuration retrieved successfully + */ +export const zGetSiteResponse = z.record(z.string(), z.unknown()) + +export const zPostTextToAudioBody = zTextToAudioPayload + +/** + * Text successfully converted to audio + */ +export const zPostTextToAudioResponse = z.record(z.string(), z.unknown()) + +export const zGetWorkflowByTaskIdEventsPath = z.object({ + task_id: z.string(), +}) + +export const zGetWorkflowByTaskIdEventsQuery = z.object({ + user: z.string().optional(), + include_state_snapshot: z.string().optional(), + continue_on_pause: z.string().optional(), +}) + +/** + * SSE event stream + */ +export const zGetWorkflowByTaskIdEventsResponse = z.record(z.string(), z.unknown()) + +export const zGetWorkflowsLogsQuery = 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(), +}) + +/** + * Logs retrieved successfully + */ +export const zGetWorkflowsLogsResponse = zWorkflowAppLogPaginationResponse + +export const zPostWorkflowsRunBody = zWorkflowRunPayload + +/** + * Workflow executed successfully + */ +export const zPostWorkflowsRunResponse = z.record(z.string(), z.unknown()) + +export const zGetWorkflowsRunByWorkflowRunIdPath = z.object({ + workflow_run_id: z.string(), +}) + +/** + * Workflow run details retrieved successfully + */ +export const zGetWorkflowsRunByWorkflowRunIdResponse = zWorkflowRunResponse + +export const zPostWorkflowsTasksByTaskIdStopPath = z.object({ + task_id: z.string(), +}) + +/** + * Task stopped successfully + */ +export const zPostWorkflowsTasksByTaskIdStopResponse = z.record(z.string(), z.unknown()) + +export const zPostWorkflowsByWorkflowIdRunBody = zWorkflowRunPayload + +export const zPostWorkflowsByWorkflowIdRunPath = z.object({ + workflow_id: z.string(), +}) + +/** + * Workflow executed successfully + */ +export const zPostWorkflowsByWorkflowIdRunResponse = z.record(z.string(), z.unknown()) + +export const zGetWorkspacesCurrentModelsModelTypesByModelTypePath = z.object({ + model_type: z.string(), +}) + +/** + * Models retrieved successfully + */ +export const zGetWorkspacesCurrentModelsModelTypesByModelTypeResponse = z.record( + z.string(), + z.unknown(), +) diff --git a/packages/contracts/generated/api/web/orpc.gen.ts b/packages/contracts/generated/api/web/orpc.gen.ts new file mode 100644 index 0000000000..459d556145 --- /dev/null +++ b/packages/contracts/generated/api/web/orpc.gen.ts @@ -0,0 +1,1085 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zDeleteConversationsByCIdPath, + zDeleteConversationsByCIdResponse, + zDeleteSavedMessagesByMessageIdPath, + zDeleteSavedMessagesByMessageIdResponse, + zGetConversationsQuery, + zGetConversationsResponse, + zGetFormHumanInputByFormTokenPath, + zGetFormHumanInputByFormTokenResponse, + zGetLoginStatusResponse, + zGetMessagesByMessageIdMoreLikeThisPath, + zGetMessagesByMessageIdMoreLikeThisQuery, + zGetMessagesByMessageIdMoreLikeThisResponse, + zGetMessagesByMessageIdSuggestedQuestionsPath, + zGetMessagesByMessageIdSuggestedQuestionsResponse, + zGetMessagesQuery, + zGetMessagesResponse, + zGetMetaResponse, + zGetParametersResponse, + zGetPassportResponse, + zGetRemoteFilesByUrlPath, + zGetRemoteFilesByUrlResponse, + zGetSavedMessagesQuery, + zGetSavedMessagesResponse, + zGetSiteResponse, + zGetSystemFeaturesResponse, + zGetWebappAccessModeQuery, + zGetWebappAccessModeResponse, + zGetWebappPermissionQuery, + zGetWebappPermissionResponse, + zGetWorkflowByTaskIdEventsPath, + zGetWorkflowByTaskIdEventsResponse, + zPatchConversationsByCIdPinPath, + zPatchConversationsByCIdPinResponse, + zPatchConversationsByCIdUnpinPath, + zPatchConversationsByCIdUnpinResponse, + zPostAudioToTextResponse, + zPostChatMessagesBody, + zPostChatMessagesByTaskIdStopPath, + zPostChatMessagesByTaskIdStopResponse, + zPostChatMessagesResponse, + zPostCompletionMessagesBody, + zPostCompletionMessagesByTaskIdStopPath, + zPostCompletionMessagesByTaskIdStopResponse, + zPostCompletionMessagesResponse, + zPostConversationsByCIdNamePath, + zPostConversationsByCIdNameQuery, + zPostConversationsByCIdNameResponse, + zPostEmailCodeLoginBody, + zPostEmailCodeLoginResponse, + zPostEmailCodeLoginValidityBody, + zPostEmailCodeLoginValidityResponse, + zPostFilesUploadResponse, + zPostForgotPasswordBody, + zPostForgotPasswordResetsBody, + zPostForgotPasswordResetsResponse, + zPostForgotPasswordResponse, + zPostForgotPasswordValidityBody, + zPostForgotPasswordValidityResponse, + zPostFormHumanInputByFormTokenPath, + zPostFormHumanInputByFormTokenResponse, + zPostLoginBody, + zPostLoginResponse, + zPostLogoutResponse, + zPostMessagesByMessageIdFeedbacksPath, + zPostMessagesByMessageIdFeedbacksQuery, + zPostMessagesByMessageIdFeedbacksResponse, + zPostRemoteFilesUploadResponse, + zPostSavedMessagesQuery, + zPostSavedMessagesResponse, + zPostTextToAudioBody, + zPostTextToAudioResponse, + zPostWorkflowsRunBody, + zPostWorkflowsRunResponse, + zPostWorkflowsTasksByTaskIdStopPath, + zPostWorkflowsTasksByTaskIdStopResponse, +} from './zod.gen' + +/** + * Convert audio to text + * + * Convert audio file to text using speech-to-text service. + */ +export const post = oc + .route({ + description: 'Convert audio file to text using speech-to-text service.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postAudioToText', + path: '/audio-to-text', + summary: 'Convert audio to text', + tags: ['web'], + }) + .output(zPostAudioToTextResponse) + +export const audioToText = { + post, +} + +/** + * Stop a running chat message task. + */ +export const post2 = oc + .route({ + description: 'Stop a running chat message task.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postChatMessagesByTaskIdStop', + path: '/chat-messages/{task_id}/stop', + tags: ['web'], + }) + .input(z.object({ params: zPostChatMessagesByTaskIdStopPath })) + .output(zPostChatMessagesByTaskIdStopResponse) + +export const stop = { + post: post2, +} + +export const byTaskId = { + stop, +} + +/** + * Create a chat message for conversational applications. + */ +export const post3 = oc + .route({ + description: 'Create a chat message for conversational applications.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postChatMessages', + path: '/chat-messages', + tags: ['web'], + }) + .input(z.object({ body: zPostChatMessagesBody })) + .output(zPostChatMessagesResponse) + +export const chatMessages = { + post: post3, + byTaskId, +} + +/** + * Stop a running completion message task. + */ +export const post4 = oc + .route({ + description: 'Stop a running completion message task.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postCompletionMessagesByTaskIdStop', + path: '/completion-messages/{task_id}/stop', + tags: ['web'], + }) + .input(z.object({ params: zPostCompletionMessagesByTaskIdStopPath })) + .output(zPostCompletionMessagesByTaskIdStopResponse) + +export const stop2 = { + post: post4, +} + +export const byTaskId2 = { + stop: stop2, +} + +/** + * Create a completion message for text generation applications. + */ +export const post5 = oc + .route({ + description: 'Create a completion message for text generation applications.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postCompletionMessages', + path: '/completion-messages', + tags: ['web'], + }) + .input(z.object({ body: zPostCompletionMessagesBody })) + .output(zPostCompletionMessagesResponse) + +export const completionMessages = { + post: post5, + byTaskId: byTaskId2, +} + +/** + * Rename a specific conversation with a custom name or auto-generate one. + */ +export const post6 = oc + .route({ + description: 'Rename a specific conversation with a custom name or auto-generate one.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postConversationsByCIdName', + path: '/conversations/{c_id}/name', + tags: ['web'], + }) + .input( + z.object({ + params: zPostConversationsByCIdNamePath, + query: zPostConversationsByCIdNameQuery.optional(), + }), + ) + .output(zPostConversationsByCIdNameResponse) + +export const name = { + post: post6, +} + +/** + * Pin a specific conversation to keep it at the top of the list. + */ +export const patch = oc + .route({ + description: 'Pin a specific conversation to keep it at the top of the list.', + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchConversationsByCIdPin', + path: '/conversations/{c_id}/pin', + tags: ['web'], + }) + .input(z.object({ params: zPatchConversationsByCIdPinPath })) + .output(zPatchConversationsByCIdPinResponse) + +export const pin = { + patch, +} + +/** + * Unpin a specific conversation to remove it from the top of the list. + */ +export const patch2 = oc + .route({ + description: 'Unpin a specific conversation to remove it from the top of the list.', + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'patchConversationsByCIdUnpin', + path: '/conversations/{c_id}/unpin', + tags: ['web'], + }) + .input(z.object({ params: zPatchConversationsByCIdUnpinPath })) + .output(zPatchConversationsByCIdUnpinResponse) + +export const unpin = { + patch: patch2, +} + +/** + * Delete a specific conversation. + */ +export const delete_ = oc + .route({ + description: 'Delete a specific conversation.', + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteConversationsByCId', + path: '/conversations/{c_id}', + successStatus: 204, + tags: ['web'], + }) + .input(z.object({ params: zDeleteConversationsByCIdPath })) + .output(zDeleteConversationsByCIdResponse) + +export const byCId = { + delete: delete_, + name, + pin, + unpin, +} + +/** + * Retrieve paginated list of conversations for a chat application. + */ +export const get = oc + .route({ + description: 'Retrieve paginated list of conversations for a chat application.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getConversations', + path: '/conversations', + tags: ['web'], + }) + .input(z.object({ query: zGetConversationsQuery.optional() })) + .output(zGetConversationsResponse) + +export const conversations = { + get, + byCId, +} + +/** + * Verify email code and complete login + */ +export const post7 = oc + .route({ + description: 'Verify email code and complete login', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postEmailCodeLoginValidity', + path: '/email-code-login/validity', + tags: ['web'], + }) + .input(z.object({ body: zPostEmailCodeLoginValidityBody })) + .output(zPostEmailCodeLoginValidityResponse) + +export const validity = { + post: post7, +} + +/** + * Send email verification code for login + */ +export const post8 = oc + .route({ + description: 'Send email verification code for login', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postEmailCodeLogin', + path: '/email-code-login', + tags: ['web'], + }) + .input(z.object({ body: zPostEmailCodeLoginBody })) + .output(zPostEmailCodeLoginResponse) + +export const emailCodeLogin = { + post: post8, + validity, +} + +/** + * Upload a file for use in web applications + * + * Upload a file for use in web applications + * Accepts file uploads for use within web applications, supporting + * multiple file types with automatic validation and storage. + * + * Args: + * app_model: The associated application model + * end_user: The end user uploading the file + * + * Form Parameters: + * file: The file to upload (required) + * source: Optional source type (datasets or None) + * + * Returns: + * dict: File information including ID, URL, and metadata + * int: HTTP status code 201 for success + * + * Raises: + * NoFileUploadedError: No file provided in request + * TooManyFilesError: Multiple files provided (only one allowed) + * FilenameNotExistsError: File has no filename + * FileTooLargeError: File exceeds size limit + * UnsupportedFileTypeError: File type not supported + */ +export const post9 = oc + .route({ + description: + 'Upload a file for use in web applications\nAccepts file uploads for use within web applications, supporting\nmultiple file types with automatic validation and storage.\n\nArgs:\n app_model: The associated application model\n end_user: The end user uploading the file\n\nForm Parameters:\n file: The file to upload (required)\n source: Optional source type (datasets or None)\n\nReturns:\n dict: File information including ID, URL, and metadata\n int: HTTP status code 201 for success\n\nRaises:\n NoFileUploadedError: No file provided in request\n TooManyFilesError: Multiple files provided (only one allowed)\n FilenameNotExistsError: File has no filename\n FileTooLargeError: File exceeds size limit\n UnsupportedFileTypeError: File type not supported', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postFilesUpload', + path: '/files/upload', + successStatus: 201, + summary: 'Upload a file for use in web applications', + tags: ['web'], + }) + .output(zPostFilesUploadResponse) + +export const upload = { + post: post9, +} + +export const files = { + upload, +} + +/** + * Reset user password with verification token + */ +export const post10 = oc + .route({ + description: 'Reset user password with verification token', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postForgotPasswordResets', + path: '/forgot-password/resets', + tags: ['web'], + }) + .input(z.object({ body: zPostForgotPasswordResetsBody })) + .output(zPostForgotPasswordResetsResponse) + +export const resets = { + post: post10, +} + +/** + * Verify password reset token validity + */ +export const post11 = oc + .route({ + description: 'Verify password reset token validity', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postForgotPasswordValidity', + path: '/forgot-password/validity', + tags: ['web'], + }) + .input(z.object({ body: zPostForgotPasswordValidityBody })) + .output(zPostForgotPasswordValidityResponse) + +export const validity2 = { + post: post11, +} + +/** + * Send password reset email + */ +export const post12 = oc + .route({ + description: 'Send password reset email', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postForgotPassword', + path: '/forgot-password', + tags: ['web'], + }) + .input(z.object({ body: zPostForgotPasswordBody })) + .output(zPostForgotPasswordResponse) + +export const forgotPassword = { + post: post12, + resets, + validity: validity2, +} + +/** + * Get human input form definition by token + * + * GET /api/form/human_input/ + */ +export const get2 = oc + .route({ + description: 'GET /api/form/human_input/', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getFormHumanInputByFormToken', + path: '/form/human_input/{form_token}', + summary: 'Get human input form definition by token', + tags: ['web'], + }) + .input(z.object({ params: zGetFormHumanInputByFormTokenPath })) + .output(zGetFormHumanInputByFormTokenResponse) + +/** + * Submit human input form by token + * + * POST /api/form/human_input/ + * + * Request body: + * { + * "inputs": { + * "content": "User input content" + * }, + * "action": "Approve" + * } + */ +export const post13 = oc + .route({ + description: + 'POST /api/form/human_input/\n\nRequest body:\n{\n "inputs": {\n "content": "User input content"\n },\n "action": "Approve"\n}', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postFormHumanInputByFormToken', + path: '/form/human_input/{form_token}', + summary: 'Submit human input form by token', + tags: ['web'], + }) + .input(z.object({ params: zPostFormHumanInputByFormTokenPath })) + .output(zPostFormHumanInputByFormTokenResponse) + +export const byFormToken = { + get: get2, + post: post13, +} + +export const humanInput = { + byFormToken, +} + +export const form = { + humanInput, +} + +/** + * Check login status + */ +export const get3 = oc + .route({ + description: 'Check login status', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getLoginStatus', + path: '/login/status', + tags: ['web'], + }) + .output(zGetLoginStatusResponse) + +export const status = { + get: get3, +} + +/** + * Authenticate user and login + * + * Authenticate user for web application access + */ +export const post14 = oc + .route({ + description: 'Authenticate user for web application access', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postLogin', + path: '/login', + summary: 'Authenticate user and login', + tags: ['web'], + }) + .input(z.object({ body: zPostLoginBody })) + .output(zPostLoginResponse) + +export const login = { + post: post14, + status, +} + +/** + * Logout user from web application + */ +export const post15 = oc + .route({ + description: 'Logout user from web application', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postLogout', + path: '/logout', + tags: ['web'], + }) + .output(zPostLogoutResponse) + +export const logout = { + post: post15, +} + +/** + * Submit feedback (like/dislike) for a specific message. + */ +export const post16 = oc + .route({ + description: 'Submit feedback (like/dislike) for a specific message.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postMessagesByMessageIdFeedbacks', + path: '/messages/{message_id}/feedbacks', + tags: ['web'], + }) + .input( + z.object({ + params: zPostMessagesByMessageIdFeedbacksPath, + query: zPostMessagesByMessageIdFeedbacksQuery.optional(), + }), + ) + .output(zPostMessagesByMessageIdFeedbacksResponse) + +export const feedbacks = { + post: post16, +} + +/** + * Generate a new completion similar to an existing message (completion apps only). + */ +export const get4 = oc + .route({ + description: 'Generate a new completion similar to an existing message (completion apps only).', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getMessagesByMessageIdMoreLikeThis', + path: '/messages/{message_id}/more-like-this', + tags: ['web'], + }) + .input( + z.object({ + params: zGetMessagesByMessageIdMoreLikeThisPath, + query: zGetMessagesByMessageIdMoreLikeThisQuery, + }), + ) + .output(zGetMessagesByMessageIdMoreLikeThisResponse) + +export const moreLikeThis = { + get: get4, +} + +/** + * Get suggested follow-up questions after a message (chat apps only). + */ +export const get5 = oc + .route({ + description: 'Get suggested follow-up questions after a message (chat apps only).', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getMessagesByMessageIdSuggestedQuestions', + path: '/messages/{message_id}/suggested-questions', + tags: ['web'], + }) + .input(z.object({ params: zGetMessagesByMessageIdSuggestedQuestionsPath })) + .output(zGetMessagesByMessageIdSuggestedQuestionsResponse) + +export const suggestedQuestions = { + get: get5, +} + +export const byMessageId = { + feedbacks, + moreLikeThis, + suggestedQuestions, +} + +/** + * Retrieve paginated list of messages from a conversation in a chat application. + */ +export const get6 = oc + .route({ + description: 'Retrieve paginated list of messages from a conversation in a chat application.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getMessages', + path: '/messages', + tags: ['web'], + }) + .input(z.object({ query: zGetMessagesQuery })) + .output(zGetMessagesResponse) + +export const messages = { + get: get6, + byMessageId, +} + +/** + * Get app meta + * + * Retrieve the metadata for a specific app. + */ +export const get7 = oc + .route({ + description: 'Retrieve the metadata for a specific app.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getMeta', + path: '/meta', + summary: 'Get app meta', + tags: ['web'], + }) + .output(zGetMetaResponse) + +export const meta = { + get: get7, +} + +/** + * Retrieve app parameters + * + * Retrieve the parameters for a specific app. + */ +export const get8 = oc + .route({ + description: 'Retrieve the parameters for a specific app.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getParameters', + path: '/parameters', + summary: 'Retrieve app parameters', + tags: ['web'], + }) + .output(zGetParametersResponse) + +export const parameters = { + get: get8, +} + +/** + * Get authentication passport for web application access + */ +export const get9 = oc + .route({ + description: 'Get authentication passport for web application access', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getPassport', + path: '/passport', + tags: ['web'], + }) + .output(zGetPassportResponse) + +export const passport = { + get: get9, +} + +/** + * Upload a file from a remote URL + * + * Upload a file from a remote URL + * Downloads a file from the provided remote URL and uploads it + * to the platform storage for use in web applications. + * + * Args: + * app_model: The associated application model + * end_user: The end user making the request + * + * JSON Parameters: + * url: The remote URL to download the file from (required) + * + * Returns: + * dict: File information including ID, signed URL, and metadata + * int: HTTP status code 201 for success + * + * Raises: + * RemoteFileUploadError: Failed to fetch file from remote URL + * FileTooLargeError: File exceeds size limit + * UnsupportedFileTypeError: File type not supported + */ +export const post17 = oc + .route({ + description: + 'Upload a file from a remote URL\nDownloads a file from the provided remote URL and uploads it\nto the platform storage for use in web applications.\n\nArgs:\n app_model: The associated application model\n end_user: The end user making the request\n\nJSON Parameters:\n url: The remote URL to download the file from (required)\n\nReturns:\n dict: File information including ID, signed URL, and metadata\n int: HTTP status code 201 for success\n\nRaises:\n RemoteFileUploadError: Failed to fetch file from remote URL\n FileTooLargeError: File exceeds size limit\n UnsupportedFileTypeError: File type not supported', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postRemoteFilesUpload', + path: '/remote-files/upload', + successStatus: 201, + summary: 'Upload a file from a remote URL', + tags: ['web'], + }) + .output(zPostRemoteFilesUploadResponse) + +export const upload2 = { + post: post17, +} + +/** + * Get information about a remote file + * + * Get information about a remote file + * Retrieves basic information about a file located at a remote URL, + * including content type and content length. + * + * Args: + * app_model: The associated application model + * end_user: The end user making the request + * url: URL-encoded path to the remote file + * + * Returns: + * dict: Remote file information including type and length + * + * Raises: + * HTTPException: If the remote file cannot be accessed + */ +export const get10 = oc + .route({ + description: + 'Get information about a remote file\nRetrieves basic information about a file located at a remote URL,\nincluding content type and content length.\n\nArgs:\n app_model: The associated application model\n end_user: The end user making the request\n url: URL-encoded path to the remote file\n\nReturns:\n dict: Remote file information including type and length\n\nRaises:\n HTTPException: If the remote file cannot be accessed', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getRemoteFilesByUrl', + path: '/remote-files/{url}', + summary: 'Get information about a remote file', + tags: ['web'], + }) + .input(z.object({ params: zGetRemoteFilesByUrlPath })) + .output(zGetRemoteFilesByUrlResponse) + +export const byUrl = { + get: get10, +} + +export const remoteFiles = { + upload: upload2, + byUrl, +} + +/** + * Remove a message from saved messages. + */ +export const delete2 = oc + .route({ + description: 'Remove a message from saved messages.', + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'deleteSavedMessagesByMessageId', + path: '/saved-messages/{message_id}', + successStatus: 204, + tags: ['web'], + }) + .input(z.object({ params: zDeleteSavedMessagesByMessageIdPath })) + .output(zDeleteSavedMessagesByMessageIdResponse) + +export const byMessageId2 = { + delete: delete2, +} + +/** + * Retrieve paginated list of saved messages for a completion application. + */ +export const get11 = oc + .route({ + description: 'Retrieve paginated list of saved messages for a completion application.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getSavedMessages', + path: '/saved-messages', + tags: ['web'], + }) + .input(z.object({ query: zGetSavedMessagesQuery.optional() })) + .output(zGetSavedMessagesResponse) + +/** + * Save a specific message for later reference. + */ +export const post18 = oc + .route({ + description: 'Save a specific message for later reference.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postSavedMessages', + path: '/saved-messages', + tags: ['web'], + }) + .input(z.object({ query: zPostSavedMessagesQuery })) + .output(zPostSavedMessagesResponse) + +export const savedMessages = { + get: get11, + post: post18, + byMessageId: byMessageId2, +} + +/** + * Retrieve app site info + * + * Retrieve app site information and configuration. + */ +export const get12 = oc + .route({ + description: 'Retrieve app site information and configuration.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getSite', + path: '/site', + summary: 'Retrieve app site info', + tags: ['web'], + }) + .output(zGetSiteResponse) + +export const site = { + get: get12, +} + +/** + * Get system feature flags and configuration + * + * Get system feature flags and configuration + * Returns the current system feature flags and configuration + * that control various functionalities across the platform. + * + * Returns: + * dict: System feature configuration object + * + * This endpoint is akin to the `SystemFeatureApi` endpoint in api/controllers/console/feature.py, + * except it is intended for use by the web app, instead of the console dashboard. + * + * NOTE: This endpoint is unauthenticated by design, as it provides system features + * data required for webapp initialization. + * + * Authentication would create circular dependency (can't authenticate without webapp loading). + * + * Only non-sensitive configuration data should be returned by this endpoint. + */ +export const get13 = oc + .route({ + description: + 'Get system feature flags and configuration\nReturns the current system feature flags and configuration\nthat control various functionalities across the platform.\n\nReturns:\n dict: System feature configuration object\n\nThis endpoint is akin to the `SystemFeatureApi` endpoint in api/controllers/console/feature.py,\nexcept it is intended for use by the web app, instead of the console dashboard.\n\nNOTE: This endpoint is unauthenticated by design, as it provides system features\ndata required for webapp initialization.\n\nAuthentication would create circular dependency (can\'t authenticate without webapp loading).\n\nOnly non-sensitive configuration data should be returned by this endpoint.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getSystemFeatures', + path: '/system-features', + summary: 'Get system feature flags and configuration', + tags: ['web'], + }) + .output(zGetSystemFeaturesResponse) + +export const systemFeatures = { + get: get13, +} + +/** + * Convert text to audio + * + * Convert text to audio using text-to-speech service. + */ +export const post19 = oc + .route({ + description: 'Convert text to audio using text-to-speech service.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postTextToAudio', + path: '/text-to-audio', + summary: 'Convert text to audio', + tags: ['web'], + }) + .input(z.object({ body: zPostTextToAudioBody })) + .output(zPostTextToAudioResponse) + +export const textToAudio = { + post: post19, +} + +/** + * Retrieve the access mode for a web application (public or restricted). + */ +export const get14 = oc + .route({ + description: 'Retrieve the access mode for a web application (public or restricted).', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWebappAccessMode', + path: '/webapp/access-mode', + tags: ['web'], + }) + .input(z.object({ query: zGetWebappAccessModeQuery.optional() })) + .output(zGetWebappAccessModeResponse) + +export const accessMode = { + get: get14, +} + +/** + * Check if user has permission to access a web application. + */ +export const get15 = oc + .route({ + description: 'Check if user has permission to access a web application.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWebappPermission', + path: '/webapp/permission', + tags: ['web'], + }) + .input(z.object({ query: zGetWebappPermissionQuery })) + .output(zGetWebappPermissionResponse) + +export const permission = { + get: get15, +} + +export const webapp = { + accessMode, + permission, +} + +/** + * Get workflow execution events stream after resume + * + * GET /api/workflow//events + * + * Returns Server-Sent Events stream. + */ +export const get16 = oc + .route({ + description: 'GET /api/workflow//events\n\nReturns Server-Sent Events stream.', + inputStructure: 'detailed', + method: 'GET', + operationId: 'getWorkflowByTaskIdEvents', + path: '/workflow/{task_id}/events', + summary: 'Get workflow execution events stream after resume', + tags: ['default'], + }) + .input(z.object({ params: zGetWorkflowByTaskIdEventsPath })) + .output(zGetWorkflowByTaskIdEventsResponse) + +export const events = { + get: get16, +} + +export const byTaskId3 = { + events, +} + +export const workflow = { + byTaskId: byTaskId3, +} + +/** + * Run workflow + * + * Execute a workflow with provided inputs and files. + */ +export const post20 = oc + .route({ + description: 'Execute a workflow with provided inputs and files.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkflowsRun', + path: '/workflows/run', + summary: 'Run workflow', + tags: ['web'], + }) + .input(z.object({ body: zPostWorkflowsRunBody })) + .output(zPostWorkflowsRunResponse) + +export const run = { + post: post20, +} + +/** + * Stop workflow task + * + * Stop a running workflow task. + */ +export const post21 = oc + .route({ + description: 'Stop a running workflow task.', + inputStructure: 'detailed', + method: 'POST', + operationId: 'postWorkflowsTasksByTaskIdStop', + path: '/workflows/tasks/{task_id}/stop', + summary: 'Stop workflow task', + tags: ['web'], + }) + .input(z.object({ params: zPostWorkflowsTasksByTaskIdStopPath })) + .output(zPostWorkflowsTasksByTaskIdStopResponse) + +export const stop3 = { + post: post21, +} + +export const byTaskId4 = { + stop: stop3, +} + +export const tasks = { + byTaskId: byTaskId4, +} + +export const workflows = { + run, + tasks, +} + +export const contract = { + audioToText, + chatMessages, + completionMessages, + conversations, + emailCodeLogin, + files, + forgotPassword, + form, + login, + logout, + messages, + meta, + parameters, + passport, + remoteFiles, + savedMessages, + site, + systemFeatures, + textToAudio, + webapp, + workflow, + workflows, +} diff --git a/packages/contracts/generated/api/web/types.gen.ts b/packages/contracts/generated/api/web/types.gen.ts new file mode 100644 index 0000000000..f2009b966b --- /dev/null +++ b/packages/contracts/generated/api/web/types.gen.ts @@ -0,0 +1,1461 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}/api` | (string & {}) +} + +export type ChatMessagePayload = { + conversation_id?: string | null + files?: Array<{ + [key: string]: unknown + }> | null + inputs: { + [key: string]: unknown + } + parent_message_id?: string | null + query: string + response_mode?: 'blocking' | 'streaming' | null + retriever_from?: string +} + +export type CompletionMessagePayload = { + files?: Array<{ + [key: string]: unknown + }> | null + inputs: { + [key: string]: unknown + } + query?: string + response_mode?: 'blocking' | 'streaming' | null + retriever_from?: string +} + +export type EmailCodeLoginSendPayload = { + email: string + language?: string | null +} + +export type EmailCodeLoginVerifyPayload = { + code: string + email: string + token: string +} + +export type FileResponse = { + conversation_id?: string | null + created_at?: number | null + created_by?: string | null + extension?: string | null + file_key?: string | null + id: string + mime_type?: string | null + name: string + original_url?: string | null + preview_url?: string | null + size: number + source_url?: string | null + tenant_id?: string | null + user_id?: string | null +} + +export type FileWithSignedUrl = { + created_at?: number | null + created_by?: string | null + extension?: string | null + id: string + mime_type?: string | null + name: string + size: number + url?: string | null +} + +export type ForgotPasswordCheckPayload = { + code: string + email: string + token: string +} + +export type ForgotPasswordResetPayload = { + new_password: string + password_confirm: string + token: string +} + +export type ForgotPasswordSendPayload = { + email: string + language?: string | null +} + +export type LoginPayload = { + email: string + password: string +} + +export type MessageMoreLikeThisQuery = { + response_mode: 'blocking' | 'streaming' +} + +export type RemoteFileInfo = { + file_length: number + file_type: string +} + +export type TextToAudioPayload = { + message_id?: string | null + streaming?: boolean | null + text?: string | null + voice?: string | null +} + +export type WorkflowRunPayload = { + files?: Array<{ + [key: string]: unknown + }> | null + inputs: { + [key: string]: unknown + } +} + +export type PostAudioToTextData = { + body?: never + path?: never + query?: never + url: '/audio-to-text' +} + +export type PostAudioToTextErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 413: { + [key: string]: unknown + } + 415: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type PostAudioToTextError = PostAudioToTextErrors[keyof PostAudioToTextErrors] + +export type PostAudioToTextResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostAudioToTextResponse = PostAudioToTextResponses[keyof PostAudioToTextResponses] + +export type PostChatMessagesData = { + body: ChatMessagePayload + path?: never + query?: never + url: '/chat-messages' +} + +export type PostChatMessagesErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type PostChatMessagesError = PostChatMessagesErrors[keyof PostChatMessagesErrors] + +export type PostChatMessagesResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostChatMessagesResponse = PostChatMessagesResponses[keyof PostChatMessagesResponses] + +export type PostChatMessagesByTaskIdStopData = { + body?: never + path: { + task_id: string + } + query?: never + url: '/chat-messages/{task_id}/stop' +} + +export type PostChatMessagesByTaskIdStopErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type PostChatMessagesByTaskIdStopError + = PostChatMessagesByTaskIdStopErrors[keyof PostChatMessagesByTaskIdStopErrors] + +export type PostChatMessagesByTaskIdStopResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostChatMessagesByTaskIdStopResponse + = PostChatMessagesByTaskIdStopResponses[keyof PostChatMessagesByTaskIdStopResponses] + +export type PostCompletionMessagesData = { + body: CompletionMessagePayload + path?: never + query?: never + url: '/completion-messages' +} + +export type PostCompletionMessagesErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type PostCompletionMessagesError + = PostCompletionMessagesErrors[keyof PostCompletionMessagesErrors] + +export type PostCompletionMessagesResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostCompletionMessagesResponse + = PostCompletionMessagesResponses[keyof PostCompletionMessagesResponses] + +export type PostCompletionMessagesByTaskIdStopData = { + body?: never + path: { + task_id: string + } + query?: never + url: '/completion-messages/{task_id}/stop' +} + +export type PostCompletionMessagesByTaskIdStopErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type PostCompletionMessagesByTaskIdStopError + = PostCompletionMessagesByTaskIdStopErrors[keyof PostCompletionMessagesByTaskIdStopErrors] + +export type PostCompletionMessagesByTaskIdStopResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostCompletionMessagesByTaskIdStopResponse + = PostCompletionMessagesByTaskIdStopResponses[keyof PostCompletionMessagesByTaskIdStopResponses] + +export type GetConversationsData = { + body?: never + path?: never + query?: { + last_id?: string + limit?: number + pinned?: 'true' | 'false' + sort_by?: 'created_at' | '-created_at' | 'updated_at' | '-updated_at' + } + url: '/conversations' +} + +export type GetConversationsErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type GetConversationsError = GetConversationsErrors[keyof GetConversationsErrors] + +export type GetConversationsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetConversationsResponse = GetConversationsResponses[keyof GetConversationsResponses] + +export type DeleteConversationsByCIdData = { + body?: never + path: { + c_id: string + } + query?: never + url: '/conversations/{c_id}' +} + +export type DeleteConversationsByCIdErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type DeleteConversationsByCIdError + = DeleteConversationsByCIdErrors[keyof DeleteConversationsByCIdErrors] + +export type DeleteConversationsByCIdResponses = { + 204: { + [key: string]: unknown + } +} + +export type DeleteConversationsByCIdResponse + = DeleteConversationsByCIdResponses[keyof DeleteConversationsByCIdResponses] + +export type PostConversationsByCIdNameData = { + body?: never + path: { + c_id: string + } + query?: { + name?: string + auto_generate?: boolean + } + url: '/conversations/{c_id}/name' +} + +export type PostConversationsByCIdNameErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type PostConversationsByCIdNameError + = PostConversationsByCIdNameErrors[keyof PostConversationsByCIdNameErrors] + +export type PostConversationsByCIdNameResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostConversationsByCIdNameResponse + = PostConversationsByCIdNameResponses[keyof PostConversationsByCIdNameResponses] + +export type PatchConversationsByCIdPinData = { + body?: never + path: { + c_id: string + } + query?: never + url: '/conversations/{c_id}/pin' +} + +export type PatchConversationsByCIdPinErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type PatchConversationsByCIdPinError + = PatchConversationsByCIdPinErrors[keyof PatchConversationsByCIdPinErrors] + +export type PatchConversationsByCIdPinResponses = { + 200: { + [key: string]: unknown + } +} + +export type PatchConversationsByCIdPinResponse + = PatchConversationsByCIdPinResponses[keyof PatchConversationsByCIdPinResponses] + +export type PatchConversationsByCIdUnpinData = { + body?: never + path: { + c_id: string + } + query?: never + url: '/conversations/{c_id}/unpin' +} + +export type PatchConversationsByCIdUnpinErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type PatchConversationsByCIdUnpinError + = PatchConversationsByCIdUnpinErrors[keyof PatchConversationsByCIdUnpinErrors] + +export type PatchConversationsByCIdUnpinResponses = { + 200: { + [key: string]: unknown + } +} + +export type PatchConversationsByCIdUnpinResponse + = PatchConversationsByCIdUnpinResponses[keyof PatchConversationsByCIdUnpinResponses] + +export type PostEmailCodeLoginData = { + body: EmailCodeLoginSendPayload + path?: never + query?: never + url: '/email-code-login' +} + +export type PostEmailCodeLoginErrors = { + 400: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostEmailCodeLoginError = PostEmailCodeLoginErrors[keyof PostEmailCodeLoginErrors] + +export type PostEmailCodeLoginResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostEmailCodeLoginResponse + = PostEmailCodeLoginResponses[keyof PostEmailCodeLoginResponses] + +export type PostEmailCodeLoginValidityData = { + body: EmailCodeLoginVerifyPayload + path?: never + query?: never + url: '/email-code-login/validity' +} + +export type PostEmailCodeLoginValidityErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostEmailCodeLoginValidityError + = PostEmailCodeLoginValidityErrors[keyof PostEmailCodeLoginValidityErrors] + +export type PostEmailCodeLoginValidityResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostEmailCodeLoginValidityResponse + = PostEmailCodeLoginValidityResponses[keyof PostEmailCodeLoginValidityResponses] + +export type PostFilesUploadData = { + body?: never + path?: never + query?: never + url: '/files/upload' +} + +export type PostFilesUploadErrors = { + 400: { + [key: string]: unknown + } + 413: { + [key: string]: unknown + } + 415: { + [key: string]: unknown + } +} + +export type PostFilesUploadError = PostFilesUploadErrors[keyof PostFilesUploadErrors] + +export type PostFilesUploadResponses = { + 201: FileResponse +} + +export type PostFilesUploadResponse = PostFilesUploadResponses[keyof PostFilesUploadResponses] + +export type PostForgotPasswordData = { + body: ForgotPasswordSendPayload + path?: never + query?: never + url: '/forgot-password' +} + +export type PostForgotPasswordErrors = { + 400: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 429: { + [key: string]: unknown + } +} + +export type PostForgotPasswordError = PostForgotPasswordErrors[keyof PostForgotPasswordErrors] + +export type PostForgotPasswordResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostForgotPasswordResponse + = PostForgotPasswordResponses[keyof PostForgotPasswordResponses] + +export type PostForgotPasswordResetsData = { + body: ForgotPasswordResetPayload + path?: never + query?: never + url: '/forgot-password/resets' +} + +export type PostForgotPasswordResetsErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostForgotPasswordResetsError + = PostForgotPasswordResetsErrors[keyof PostForgotPasswordResetsErrors] + +export type PostForgotPasswordResetsResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostForgotPasswordResetsResponse + = PostForgotPasswordResetsResponses[keyof PostForgotPasswordResetsResponses] + +export type PostForgotPasswordValidityData = { + body: ForgotPasswordCheckPayload + path?: never + query?: never + url: '/forgot-password/validity' +} + +export type PostForgotPasswordValidityErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } +} + +export type PostForgotPasswordValidityError + = PostForgotPasswordValidityErrors[keyof PostForgotPasswordValidityErrors] + +export type PostForgotPasswordValidityResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostForgotPasswordValidityResponse + = PostForgotPasswordValidityResponses[keyof PostForgotPasswordValidityResponses] + +export type GetFormHumanInputByFormTokenData = { + body?: never + path: { + form_token: string + } + query?: never + url: '/form/human_input/{form_token}' +} + +export type GetFormHumanInputByFormTokenResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetFormHumanInputByFormTokenResponse + = GetFormHumanInputByFormTokenResponses[keyof GetFormHumanInputByFormTokenResponses] + +export type PostFormHumanInputByFormTokenData = { + body?: never + path: { + form_token: string + } + query?: never + url: '/form/human_input/{form_token}' +} + +export type PostFormHumanInputByFormTokenResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostFormHumanInputByFormTokenResponse + = PostFormHumanInputByFormTokenResponses[keyof PostFormHumanInputByFormTokenResponses] + +export type PostLoginData = { + body: LoginPayload + path?: never + query?: never + url: '/login' +} + +export type PostLoginErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type PostLoginError = PostLoginErrors[keyof PostLoginErrors] + +export type PostLoginResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostLoginResponse = PostLoginResponses[keyof PostLoginResponses] + +export type GetLoginStatusData = { + body?: never + path?: never + query?: never + url: '/login/status' +} + +export type GetLoginStatusErrors = { + 401: { + [key: string]: unknown + } +} + +export type GetLoginStatusError = GetLoginStatusErrors[keyof GetLoginStatusErrors] + +export type GetLoginStatusResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetLoginStatusResponse = GetLoginStatusResponses[keyof GetLoginStatusResponses] + +export type PostLogoutData = { + body?: never + path?: never + query?: never + url: '/logout' +} + +export type PostLogoutResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostLogoutResponse = PostLogoutResponses[keyof PostLogoutResponses] + +export type GetMessagesData = { + body?: never + path?: never + query: { + conversation_id: string + first_id?: string + limit?: number + } + url: '/messages' +} + +export type GetMessagesErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type GetMessagesError = GetMessagesErrors[keyof GetMessagesErrors] + +export type GetMessagesResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetMessagesResponse = GetMessagesResponses[keyof GetMessagesResponses] + +export type PostMessagesByMessageIdFeedbacksData = { + body?: never + path: { + message_id: string + } + query?: { + rating?: 'like' | 'dislike' + content?: string + } + url: '/messages/{message_id}/feedbacks' +} + +export type PostMessagesByMessageIdFeedbacksErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type PostMessagesByMessageIdFeedbacksError + = PostMessagesByMessageIdFeedbacksErrors[keyof PostMessagesByMessageIdFeedbacksErrors] + +export type PostMessagesByMessageIdFeedbacksResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostMessagesByMessageIdFeedbacksResponse + = PostMessagesByMessageIdFeedbacksResponses[keyof PostMessagesByMessageIdFeedbacksResponses] + +export type GetMessagesByMessageIdMoreLikeThisData = { + body?: never + path: { + message_id: string + } + query: { + response_mode: 'blocking' | 'streaming' + } + url: '/messages/{message_id}/more-like-this' +} + +export type GetMessagesByMessageIdMoreLikeThisErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type GetMessagesByMessageIdMoreLikeThisError + = GetMessagesByMessageIdMoreLikeThisErrors[keyof GetMessagesByMessageIdMoreLikeThisErrors] + +export type GetMessagesByMessageIdMoreLikeThisResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetMessagesByMessageIdMoreLikeThisResponse + = GetMessagesByMessageIdMoreLikeThisResponses[keyof GetMessagesByMessageIdMoreLikeThisResponses] + +export type GetMessagesByMessageIdSuggestedQuestionsData = { + body?: never + path: { + message_id: string + } + query?: never + url: '/messages/{message_id}/suggested-questions' +} + +export type GetMessagesByMessageIdSuggestedQuestionsErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type GetMessagesByMessageIdSuggestedQuestionsError + = GetMessagesByMessageIdSuggestedQuestionsErrors[keyof GetMessagesByMessageIdSuggestedQuestionsErrors] + +export type GetMessagesByMessageIdSuggestedQuestionsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetMessagesByMessageIdSuggestedQuestionsResponse + = GetMessagesByMessageIdSuggestedQuestionsResponses[keyof GetMessagesByMessageIdSuggestedQuestionsResponses] + +export type GetMetaData = { + body?: never + path?: never + query?: never + url: '/meta' +} + +export type GetMetaErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type GetMetaError = GetMetaErrors[keyof GetMetaErrors] + +export type GetMetaResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetMetaResponse = GetMetaResponses[keyof GetMetaResponses] + +export type GetParametersData = { + body?: never + path?: never + query?: never + url: '/parameters' +} + +export type GetParametersErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type GetParametersError = GetParametersErrors[keyof GetParametersErrors] + +export type GetParametersResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetParametersResponse = GetParametersResponses[keyof GetParametersResponses] + +export type GetPassportData = { + body?: never + path?: never + query?: never + url: '/passport' +} + +export type GetPassportErrors = { + 401: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } +} + +export type GetPassportError = GetPassportErrors[keyof GetPassportErrors] + +export type GetPassportResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetPassportResponse = GetPassportResponses[keyof GetPassportResponses] + +export type PostRemoteFilesUploadData = { + body?: never + path?: never + query?: never + url: '/remote-files/upload' +} + +export type PostRemoteFilesUploadErrors = { + 400: { + [key: string]: unknown + } + 413: { + [key: string]: unknown + } + 415: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type PostRemoteFilesUploadError + = PostRemoteFilesUploadErrors[keyof PostRemoteFilesUploadErrors] + +export type PostRemoteFilesUploadResponses = { + 201: FileWithSignedUrl +} + +export type PostRemoteFilesUploadResponse + = PostRemoteFilesUploadResponses[keyof PostRemoteFilesUploadResponses] + +export type GetRemoteFilesByUrlData = { + body?: never + path: { + url: string + } + query?: never + url: '/remote-files/{url}' +} + +export type GetRemoteFilesByUrlErrors = { + 400: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type GetRemoteFilesByUrlError = GetRemoteFilesByUrlErrors[keyof GetRemoteFilesByUrlErrors] + +export type GetRemoteFilesByUrlResponses = { + 200: RemoteFileInfo +} + +export type GetRemoteFilesByUrlResponse + = GetRemoteFilesByUrlResponses[keyof GetRemoteFilesByUrlResponses] + +export type GetSavedMessagesData = { + body?: never + path?: never + query?: { + last_id?: string + limit?: number + } + url: '/saved-messages' +} + +export type GetSavedMessagesErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type GetSavedMessagesError = GetSavedMessagesErrors[keyof GetSavedMessagesErrors] + +export type GetSavedMessagesResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetSavedMessagesResponse = GetSavedMessagesResponses[keyof GetSavedMessagesResponses] + +export type PostSavedMessagesData = { + body?: never + path?: never + query: { + message_id: string + } + url: '/saved-messages' +} + +export type PostSavedMessagesErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type PostSavedMessagesError = PostSavedMessagesErrors[keyof PostSavedMessagesErrors] + +export type PostSavedMessagesResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostSavedMessagesResponse = PostSavedMessagesResponses[keyof PostSavedMessagesResponses] + +export type DeleteSavedMessagesByMessageIdData = { + body?: never + path: { + message_id: string + } + query?: never + url: '/saved-messages/{message_id}' +} + +export type DeleteSavedMessagesByMessageIdErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type DeleteSavedMessagesByMessageIdError + = DeleteSavedMessagesByMessageIdErrors[keyof DeleteSavedMessagesByMessageIdErrors] + +export type DeleteSavedMessagesByMessageIdResponses = { + 204: { + [key: string]: unknown + } +} + +export type DeleteSavedMessagesByMessageIdResponse + = DeleteSavedMessagesByMessageIdResponses[keyof DeleteSavedMessagesByMessageIdResponses] + +export type GetSiteData = { + body?: never + path?: never + query?: never + url: '/site' +} + +export type GetSiteErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type GetSiteError = GetSiteErrors[keyof GetSiteErrors] + +export type GetSiteResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetSiteResponse = GetSiteResponses[keyof GetSiteResponses] + +export type GetSystemFeaturesData = { + body?: never + path?: never + query?: never + url: '/system-features' +} + +export type GetSystemFeaturesErrors = { + 500: { + [key: string]: unknown + } +} + +export type GetSystemFeaturesError = GetSystemFeaturesErrors[keyof GetSystemFeaturesErrors] + +export type GetSystemFeaturesResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetSystemFeaturesResponse = GetSystemFeaturesResponses[keyof GetSystemFeaturesResponses] + +export type PostTextToAudioData = { + body: TextToAudioPayload + path?: never + query?: never + url: '/text-to-audio' +} + +export type PostTextToAudioErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type PostTextToAudioError = PostTextToAudioErrors[keyof PostTextToAudioErrors] + +export type PostTextToAudioResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostTextToAudioResponse = PostTextToAudioResponses[keyof PostTextToAudioResponses] + +export type GetWebappAccessModeData = { + body?: never + path?: never + query?: { + appId?: string + appCode?: string + } + url: '/webapp/access-mode' +} + +export type GetWebappAccessModeErrors = { + 400: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type GetWebappAccessModeError = GetWebappAccessModeErrors[keyof GetWebappAccessModeErrors] + +export type GetWebappAccessModeResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWebappAccessModeResponse + = GetWebappAccessModeResponses[keyof GetWebappAccessModeResponses] + +export type GetWebappPermissionData = { + body?: never + path?: never + query: { + appId: string + } + url: '/webapp/permission' +} + +export type GetWebappPermissionErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type GetWebappPermissionError = GetWebappPermissionErrors[keyof GetWebappPermissionErrors] + +export type GetWebappPermissionResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWebappPermissionResponse + = GetWebappPermissionResponses[keyof GetWebappPermissionResponses] + +export type GetWorkflowByTaskIdEventsData = { + body?: never + path: { + task_id: string + } + query?: never + url: '/workflow/{task_id}/events' +} + +export type GetWorkflowByTaskIdEventsResponses = { + 200: { + [key: string]: unknown + } +} + +export type GetWorkflowByTaskIdEventsResponse + = GetWorkflowByTaskIdEventsResponses[keyof GetWorkflowByTaskIdEventsResponses] + +export type PostWorkflowsRunData = { + body: WorkflowRunPayload + path?: never + query?: never + url: '/workflows/run' +} + +export type PostWorkflowsRunErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type PostWorkflowsRunError = PostWorkflowsRunErrors[keyof PostWorkflowsRunErrors] + +export type PostWorkflowsRunResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkflowsRunResponse = PostWorkflowsRunResponses[keyof PostWorkflowsRunResponses] + +export type PostWorkflowsTasksByTaskIdStopData = { + body?: never + path: { + task_id: string + } + query?: never + url: '/workflows/tasks/{task_id}/stop' +} + +export type PostWorkflowsTasksByTaskIdStopErrors = { + 400: { + [key: string]: unknown + } + 401: { + [key: string]: unknown + } + 403: { + [key: string]: unknown + } + 404: { + [key: string]: unknown + } + 500: { + [key: string]: unknown + } +} + +export type PostWorkflowsTasksByTaskIdStopError + = PostWorkflowsTasksByTaskIdStopErrors[keyof PostWorkflowsTasksByTaskIdStopErrors] + +export type PostWorkflowsTasksByTaskIdStopResponses = { + 200: { + [key: string]: unknown + } +} + +export type PostWorkflowsTasksByTaskIdStopResponse + = PostWorkflowsTasksByTaskIdStopResponses[keyof PostWorkflowsTasksByTaskIdStopResponses] diff --git a/packages/contracts/generated/api/web/zod.gen.ts b/packages/contracts/generated/api/web/zod.gen.ts new file mode 100644 index 0000000000..ec4bd19aff --- /dev/null +++ b/packages/contracts/generated/api/web/zod.gen.ts @@ -0,0 +1,478 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +/** + * ChatMessagePayload + */ +export const zChatMessagePayload = z.object({ + conversation_id: z.string().nullish(), + files: z.array(z.record(z.string(), z.unknown())).nullish(), + inputs: z.record(z.string(), z.unknown()), + parent_message_id: z.string().nullish(), + query: z.string(), + response_mode: z.enum(['blocking', 'streaming']).nullish(), + retriever_from: z.string().optional().default('web_app'), +}) + +/** + * CompletionMessagePayload + */ +export const zCompletionMessagePayload = z.object({ + files: z.array(z.record(z.string(), z.unknown())).nullish(), + inputs: z.record(z.string(), z.unknown()), + query: z.string().optional().default(''), + response_mode: z.enum(['blocking', 'streaming']).nullish(), + retriever_from: z.string().optional().default('web_app'), +}) + +/** + * EmailCodeLoginSendPayload + */ +export const zEmailCodeLoginSendPayload = z.object({ + email: z.string(), + language: z.string().nullish(), +}) + +/** + * EmailCodeLoginVerifyPayload + */ +export const zEmailCodeLoginVerifyPayload = z.object({ + code: z.string(), + email: z.string(), + token: z.string().min(1), +}) + +/** + * FileResponse + */ +export const zFileResponse = z.object({ + conversation_id: z.string().nullish(), + created_at: z.int().nullish(), + created_by: z.string().nullish(), + extension: z.string().nullish(), + file_key: z.string().nullish(), + id: z.string(), + mime_type: z.string().nullish(), + name: z.string(), + original_url: z.string().nullish(), + preview_url: z.string().nullish(), + size: z.int(), + source_url: z.string().nullish(), + tenant_id: z.string().nullish(), + user_id: z.string().nullish(), +}) + +/** + * FileWithSignedUrl + */ +export const zFileWithSignedUrl = z.object({ + created_at: z.int().nullish(), + created_by: z.string().nullish(), + extension: z.string().nullish(), + id: z.string(), + mime_type: z.string().nullish(), + name: z.string(), + size: z.int(), + url: z.string().nullish(), +}) + +/** + * ForgotPasswordCheckPayload + */ +export const zForgotPasswordCheckPayload = z.object({ + code: z.string(), + email: z.string(), + token: z.string().min(1), +}) + +/** + * ForgotPasswordResetPayload + */ +export const zForgotPasswordResetPayload = z.object({ + new_password: z.string(), + password_confirm: z.string(), + token: z.string().min(1), +}) + +/** + * ForgotPasswordSendPayload + */ +export const zForgotPasswordSendPayload = z.object({ + email: z.string(), + language: z.string().nullish(), +}) + +/** + * LoginPayload + */ +export const zLoginPayload = z.object({ + email: z.string(), + password: z.string(), +}) + +/** + * MessageMoreLikeThisQuery + */ +export const zMessageMoreLikeThisQuery = z.object({ + response_mode: z.enum(['blocking', 'streaming']), +}) + +/** + * RemoteFileInfo + */ +export const zRemoteFileInfo = z.object({ + file_length: z.int(), + file_type: 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(), +}) + +/** + * WorkflowRunPayload + */ +export const zWorkflowRunPayload = z.object({ + files: z.array(z.record(z.string(), z.unknown())).nullish(), + inputs: z.record(z.string(), z.unknown()), +}) + +/** + * Success + */ +export const zPostAudioToTextResponse = z.record(z.string(), z.unknown()) + +export const zPostChatMessagesBody = zChatMessagePayload + +/** + * Success + */ +export const zPostChatMessagesResponse = z.record(z.string(), z.unknown()) + +export const zPostChatMessagesByTaskIdStopPath = z.object({ + task_id: z.string(), +}) + +/** + * Success + */ +export const zPostChatMessagesByTaskIdStopResponse = z.record(z.string(), z.unknown()) + +export const zPostCompletionMessagesBody = zCompletionMessagePayload + +/** + * Success + */ +export const zPostCompletionMessagesResponse = z.record(z.string(), z.unknown()) + +export const zPostCompletionMessagesByTaskIdStopPath = z.object({ + task_id: z.string(), +}) + +/** + * Success + */ +export const zPostCompletionMessagesByTaskIdStopResponse = z.record(z.string(), z.unknown()) + +export const zGetConversationsQuery = z.object({ + last_id: z.string().optional(), + limit: z.int().optional().default(20), + pinned: z.enum(['true', 'false']).optional(), + sort_by: z + .enum(['created_at', '-created_at', 'updated_at', '-updated_at']) + .optional() + .default('-updated_at'), +}) + +/** + * Success + */ +export const zGetConversationsResponse = z.record(z.string(), z.unknown()) + +export const zDeleteConversationsByCIdPath = z.object({ + c_id: z.string(), +}) + +/** + * Conversation deleted successfully + */ +export const zDeleteConversationsByCIdResponse = z.record(z.string(), z.unknown()) + +export const zPostConversationsByCIdNamePath = z.object({ + c_id: z.string(), +}) + +export const zPostConversationsByCIdNameQuery = z.object({ + name: z.string().optional(), + auto_generate: z.boolean().optional().default(false), +}) + +/** + * Conversation renamed successfully + */ +export const zPostConversationsByCIdNameResponse = z.record(z.string(), z.unknown()) + +export const zPatchConversationsByCIdPinPath = z.object({ + c_id: z.string(), +}) + +/** + * Conversation pinned successfully + */ +export const zPatchConversationsByCIdPinResponse = z.record(z.string(), z.unknown()) + +export const zPatchConversationsByCIdUnpinPath = z.object({ + c_id: z.string(), +}) + +/** + * Conversation unpinned successfully + */ +export const zPatchConversationsByCIdUnpinResponse = z.record(z.string(), z.unknown()) + +export const zPostEmailCodeLoginBody = zEmailCodeLoginSendPayload + +/** + * Email code sent successfully + */ +export const zPostEmailCodeLoginResponse = z.record(z.string(), z.unknown()) + +export const zPostEmailCodeLoginValidityBody = zEmailCodeLoginVerifyPayload + +/** + * Email code verified and login successful + */ +export const zPostEmailCodeLoginValidityResponse = z.record(z.string(), z.unknown()) + +/** + * File uploaded successfully + */ +export const zPostFilesUploadResponse = zFileResponse + +export const zPostForgotPasswordBody = zForgotPasswordSendPayload + +/** + * Password reset email sent successfully + */ +export const zPostForgotPasswordResponse = z.record(z.string(), z.unknown()) + +export const zPostForgotPasswordResetsBody = zForgotPasswordResetPayload + +/** + * Password reset successfully + */ +export const zPostForgotPasswordResetsResponse = z.record(z.string(), z.unknown()) + +export const zPostForgotPasswordValidityBody = zForgotPasswordCheckPayload + +/** + * Token is valid + */ +export const zPostForgotPasswordValidityResponse = z.record(z.string(), z.unknown()) + +export const zGetFormHumanInputByFormTokenPath = z.object({ + form_token: z.string(), +}) + +/** + * Success + */ +export const zGetFormHumanInputByFormTokenResponse = z.record(z.string(), z.unknown()) + +export const zPostFormHumanInputByFormTokenPath = z.object({ + form_token: z.string(), +}) + +/** + * Success + */ +export const zPostFormHumanInputByFormTokenResponse = z.record(z.string(), z.unknown()) + +export const zPostLoginBody = zLoginPayload + +/** + * Authentication successful + */ +export const zPostLoginResponse = z.record(z.string(), z.unknown()) + +/** + * Login status + */ +export const zGetLoginStatusResponse = z.record(z.string(), z.unknown()) + +/** + * Logout successful + */ +export const zPostLogoutResponse = z.record(z.string(), z.unknown()) + +export const zGetMessagesQuery = z.object({ + conversation_id: z.string(), + first_id: z.string().optional(), + limit: z.int().optional().default(20), +}) + +/** + * Success + */ +export const zGetMessagesResponse = z.record(z.string(), z.unknown()) + +export const zPostMessagesByMessageIdFeedbacksPath = z.object({ + message_id: z.string(), +}) + +export const zPostMessagesByMessageIdFeedbacksQuery = z.object({ + rating: z.enum(['like', 'dislike']).optional(), + content: z.string().optional(), +}) + +/** + * Feedback submitted successfully + */ +export const zPostMessagesByMessageIdFeedbacksResponse = z.record(z.string(), z.unknown()) + +export const zGetMessagesByMessageIdMoreLikeThisPath = z.object({ + message_id: z.string(), +}) + +export const zGetMessagesByMessageIdMoreLikeThisQuery = z.object({ + response_mode: z.enum(['blocking', 'streaming']), +}) + +/** + * Success + */ +export const zGetMessagesByMessageIdMoreLikeThisResponse = z.record(z.string(), z.unknown()) + +export const zGetMessagesByMessageIdSuggestedQuestionsPath = z.object({ + message_id: z.string(), +}) + +/** + * Success + */ +export const zGetMessagesByMessageIdSuggestedQuestionsResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zGetMetaResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zGetParametersResponse = z.record(z.string(), z.unknown()) + +/** + * Passport retrieved successfully + */ +export const zGetPassportResponse = z.record(z.string(), z.unknown()) + +/** + * Remote file uploaded successfully + */ +export const zPostRemoteFilesUploadResponse = zFileWithSignedUrl + +export const zGetRemoteFilesByUrlPath = z.object({ + url: z.string(), +}) + +/** + * Remote file information retrieved successfully + */ +export const zGetRemoteFilesByUrlResponse = zRemoteFileInfo + +export const zGetSavedMessagesQuery = z.object({ + last_id: z.string().optional(), + limit: z.int().optional().default(20), +}) + +/** + * Success + */ +export const zGetSavedMessagesResponse = z.record(z.string(), z.unknown()) + +export const zPostSavedMessagesQuery = z.object({ + message_id: z.string(), +}) + +/** + * Message saved successfully + */ +export const zPostSavedMessagesResponse = z.record(z.string(), z.unknown()) + +export const zDeleteSavedMessagesByMessageIdPath = z.object({ + message_id: z.string(), +}) + +/** + * Message removed successfully + */ +export const zDeleteSavedMessagesByMessageIdResponse = z.record(z.string(), z.unknown()) + +/** + * Success + */ +export const zGetSiteResponse = z.record(z.string(), z.unknown()) + +/** + * System features retrieved successfully + */ +export const zGetSystemFeaturesResponse = z.record(z.string(), z.unknown()) + +export const zPostTextToAudioBody = zTextToAudioPayload + +/** + * Success + */ +export const zPostTextToAudioResponse = z.record(z.string(), z.unknown()) + +export const zGetWebappAccessModeQuery = z.object({ + appId: z.string().optional(), + appCode: z.string().optional(), +}) + +/** + * Success + */ +export const zGetWebappAccessModeResponse = z.record(z.string(), z.unknown()) + +export const zGetWebappPermissionQuery = z.object({ + appId: z.string(), +}) + +/** + * Success + */ +export const zGetWebappPermissionResponse = z.record(z.string(), z.unknown()) + +export const zGetWorkflowByTaskIdEventsPath = z.object({ + task_id: z.string(), +}) + +/** + * Success + */ +export const zGetWorkflowByTaskIdEventsResponse = z.record(z.string(), z.unknown()) + +export const zPostWorkflowsRunBody = zWorkflowRunPayload + +/** + * Success + */ +export const zPostWorkflowsRunResponse = z.record(z.string(), z.unknown()) + +export const zPostWorkflowsTasksByTaskIdStopPath = z.object({ + task_id: z.string(), +}) + +/** + * Success + */ +export const zPostWorkflowsTasksByTaskIdStopResponse = z.record(z.string(), z.unknown()) diff --git a/packages/contracts/generated/enterprise/orpc.gen.ts b/packages/contracts/generated/enterprise/orpc.gen.ts new file mode 100644 index 0000000000..73eb850001 --- /dev/null +++ b/packages/contracts/generated/enterprise/orpc.gen.ts @@ -0,0 +1,534 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { oc } from '@orpc/contract' +import * as z from 'zod' + +import { + zConsoleSsoOAuth2LoginResponse, + zConsoleSsoOidcLoginResponse, + zConsoleSsoSamlLoginResponse, + zEnterpriseAppDeployConsoleCancelRuntimeDeploymentBody, + zEnterpriseAppDeployConsoleCancelRuntimeDeploymentPath, + zEnterpriseAppDeployConsoleCancelRuntimeDeploymentResponse, + zEnterpriseAppDeployConsoleCreateAppInstanceBody, + zEnterpriseAppDeployConsoleCreateAppInstanceResponse, + zEnterpriseAppDeployConsoleCreateDeploymentBody, + zEnterpriseAppDeployConsoleCreateDeploymentPath, + zEnterpriseAppDeployConsoleCreateDeploymentResponse, + zEnterpriseAppDeployConsoleCreateDeveloperApiKeyBody, + zEnterpriseAppDeployConsoleCreateDeveloperApiKeyPath, + zEnterpriseAppDeployConsoleCreateDeveloperApiKeyResponse, + zEnterpriseAppDeployConsoleCreateReleaseBody, + zEnterpriseAppDeployConsoleCreateReleasePath, + zEnterpriseAppDeployConsoleCreateReleaseResponse, + zEnterpriseAppDeployConsoleDeleteAppInstancePath, + zEnterpriseAppDeployConsoleDeleteAppInstanceResponse, + zEnterpriseAppDeployConsoleDeleteDeveloperApiKeyPath, + zEnterpriseAppDeployConsoleDeleteDeveloperApiKeyResponse, + zEnterpriseAppDeployConsoleGetAppInstanceAccessPath, + zEnterpriseAppDeployConsoleGetAppInstanceAccessResponse, + zEnterpriseAppDeployConsoleGetAppInstanceOverviewPath, + zEnterpriseAppDeployConsoleGetAppInstanceOverviewResponse, + zEnterpriseAppDeployConsoleGetAppInstanceSettingsPath, + zEnterpriseAppDeployConsoleGetAppInstanceSettingsResponse, + zEnterpriseAppDeployConsoleGetEnvironmentAccessPolicyPath, + zEnterpriseAppDeployConsoleGetEnvironmentAccessPolicyResponse, + zEnterpriseAppDeployConsoleListAppInstancesQuery, + zEnterpriseAppDeployConsoleListAppInstancesResponse, + zEnterpriseAppDeployConsoleListDeploymentBindingOptionsPath, + zEnterpriseAppDeployConsoleListDeploymentBindingOptionsResponse, + zEnterpriseAppDeployConsoleListDeploymentEnvironmentOptionsResponse, + zEnterpriseAppDeployConsoleListReleasesPath, + zEnterpriseAppDeployConsoleListReleasesQuery, + zEnterpriseAppDeployConsoleListReleasesResponse, + zEnterpriseAppDeployConsoleListRuntimeInstancesPath, + zEnterpriseAppDeployConsoleListRuntimeInstancesResponse, + zEnterpriseAppDeployConsolePreviewReleaseBody, + zEnterpriseAppDeployConsolePreviewReleasePath, + zEnterpriseAppDeployConsolePreviewReleaseResponse, + zEnterpriseAppDeployConsoleSearchAccessSubjectsPath, + zEnterpriseAppDeployConsoleSearchAccessSubjectsQuery, + zEnterpriseAppDeployConsoleSearchAccessSubjectsResponse, + zEnterpriseAppDeployConsoleUndeployRuntimeInstanceBody, + zEnterpriseAppDeployConsoleUndeployRuntimeInstancePath, + zEnterpriseAppDeployConsoleUndeployRuntimeInstanceResponse, + zEnterpriseAppDeployConsoleUpdateAccessChannelsBody, + zEnterpriseAppDeployConsoleUpdateAccessChannelsPath, + zEnterpriseAppDeployConsoleUpdateAccessChannelsResponse, + zEnterpriseAppDeployConsoleUpdateAppInstanceBody, + zEnterpriseAppDeployConsoleUpdateAppInstancePath, + zEnterpriseAppDeployConsoleUpdateAppInstanceResponse, + zEnterpriseAppDeployConsoleUpdateDeveloperApiBody, + zEnterpriseAppDeployConsoleUpdateDeveloperApiPath, + zEnterpriseAppDeployConsoleUpdateDeveloperApiResponse, + zEnterpriseAppDeployConsoleUpdateEnvironmentAccessPolicyBody, + zEnterpriseAppDeployConsoleUpdateEnvironmentAccessPolicyPath, + zEnterpriseAppDeployConsoleUpdateEnvironmentAccessPolicyResponse, + zWebAppAuthGetGroupSubjectsQuery, + zWebAppAuthGetGroupSubjectsResponse, + zWebAppAuthGetWebAppAccessModeQuery, + zWebAppAuthGetWebAppAccessModeResponse, + zWebAppAuthGetWebAppWhitelistSubjectsQuery, + zWebAppAuthGetWebAppWhitelistSubjectsResponse, + zWebAppAuthIsUserAllowedToAccessWebAppQuery, + zWebAppAuthIsUserAllowedToAccessWebAppResponse, + zWebAppAuthSearchForWhilteListCandidatesQuery, + zWebAppAuthSearchForWhilteListCandidatesResponse, + zWebAppAuthUpdateWebAppWhitelistSubjectsBody, + zWebAppAuthUpdateWebAppWhitelistSubjectsResponse, +} from './zod.gen' + +export const listAppInstances = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'EnterpriseAppDeployConsole_ListAppInstances', + path: '/enterprise/app-instances', + tags: ['EnterpriseAppDeployConsole'], + }) + .input(z.object({ query: zEnterpriseAppDeployConsoleListAppInstancesQuery.optional() })) + .output(zEnterpriseAppDeployConsoleListAppInstancesResponse) + +export const createAppInstance = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'EnterpriseAppDeployConsole_CreateAppInstance', + path: '/enterprise/app-instances', + tags: ['EnterpriseAppDeployConsole'], + }) + .input(z.object({ body: zEnterpriseAppDeployConsoleCreateAppInstanceBody })) + .output(zEnterpriseAppDeployConsoleCreateAppInstanceResponse) + +export const deleteAppInstance = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'EnterpriseAppDeployConsole_DeleteAppInstance', + path: '/enterprise/app-instances/{appInstanceId}', + tags: ['EnterpriseAppDeployConsole'], + }) + .input(z.object({ params: zEnterpriseAppDeployConsoleDeleteAppInstancePath })) + .output(zEnterpriseAppDeployConsoleDeleteAppInstanceResponse) + +export const updateAppInstance = oc + .route({ + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'EnterpriseAppDeployConsole_UpdateAppInstance', + path: '/enterprise/app-instances/{appInstanceId}', + tags: ['EnterpriseAppDeployConsole'], + }) + .input( + z.object({ + body: zEnterpriseAppDeployConsoleUpdateAppInstanceBody, + params: zEnterpriseAppDeployConsoleUpdateAppInstancePath, + }), + ) + .output(zEnterpriseAppDeployConsoleUpdateAppInstanceResponse) + +export const getAppInstanceAccess = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'EnterpriseAppDeployConsole_GetAppInstanceAccess', + path: '/enterprise/app-instances/{appInstanceId}/access', + tags: ['EnterpriseAppDeployConsole'], + }) + .input(z.object({ params: zEnterpriseAppDeployConsoleGetAppInstanceAccessPath })) + .output(zEnterpriseAppDeployConsoleGetAppInstanceAccessResponse) + +export const updateAccessChannels = oc + .route({ + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'EnterpriseAppDeployConsole_UpdateAccessChannels', + path: '/enterprise/app-instances/{appInstanceId}/access-channels', + tags: ['EnterpriseAppDeployConsole'], + }) + .input( + z.object({ + body: zEnterpriseAppDeployConsoleUpdateAccessChannelsBody, + params: zEnterpriseAppDeployConsoleUpdateAccessChannelsPath, + }), + ) + .output(zEnterpriseAppDeployConsoleUpdateAccessChannelsResponse) + +export const searchAccessSubjects = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'EnterpriseAppDeployConsole_SearchAccessSubjects', + path: '/enterprise/app-instances/{appInstanceId}/access-subjects:search', + tags: ['EnterpriseAppDeployConsole'], + }) + .input( + z.object({ + params: zEnterpriseAppDeployConsoleSearchAccessSubjectsPath, + query: zEnterpriseAppDeployConsoleSearchAccessSubjectsQuery.optional(), + }), + ) + .output(zEnterpriseAppDeployConsoleSearchAccessSubjectsResponse) + +export const createDeveloperApiKey = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'EnterpriseAppDeployConsole_CreateDeveloperApiKey', + path: '/enterprise/app-instances/{appInstanceId}/api-keys', + tags: ['EnterpriseAppDeployConsole'], + }) + .input( + z.object({ + body: zEnterpriseAppDeployConsoleCreateDeveloperApiKeyBody, + params: zEnterpriseAppDeployConsoleCreateDeveloperApiKeyPath, + }), + ) + .output(zEnterpriseAppDeployConsoleCreateDeveloperApiKeyResponse) + +export const deleteDeveloperApiKey = oc + .route({ + inputStructure: 'detailed', + method: 'DELETE', + operationId: 'EnterpriseAppDeployConsole_DeleteDeveloperApiKey', + path: '/enterprise/app-instances/{appInstanceId}/api-keys/{apiKeyId}', + tags: ['EnterpriseAppDeployConsole'], + }) + .input(z.object({ params: zEnterpriseAppDeployConsoleDeleteDeveloperApiKeyPath })) + .output(zEnterpriseAppDeployConsoleDeleteDeveloperApiKeyResponse) + +export const listDeploymentBindingOptions = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'EnterpriseAppDeployConsole_ListDeploymentBindingOptions', + path: '/enterprise/app-instances/{appInstanceId}/deployment-binding-options', + tags: ['EnterpriseAppDeployConsole'], + }) + .input(z.object({ params: zEnterpriseAppDeployConsoleListDeploymentBindingOptionsPath })) + .output(zEnterpriseAppDeployConsoleListDeploymentBindingOptionsResponse) + +export const createDeployment = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'EnterpriseAppDeployConsole_CreateDeployment', + path: '/enterprise/app-instances/{appInstanceId}/deployments', + tags: ['EnterpriseAppDeployConsole'], + }) + .input( + z.object({ + body: zEnterpriseAppDeployConsoleCreateDeploymentBody, + params: zEnterpriseAppDeployConsoleCreateDeploymentPath, + }), + ) + .output(zEnterpriseAppDeployConsoleCreateDeploymentResponse) + +export const updateDeveloperApi = oc + .route({ + inputStructure: 'detailed', + method: 'PATCH', + operationId: 'EnterpriseAppDeployConsole_UpdateDeveloperApi', + path: '/enterprise/app-instances/{appInstanceId}/developer-api', + tags: ['EnterpriseAppDeployConsole'], + }) + .input( + z.object({ + body: zEnterpriseAppDeployConsoleUpdateDeveloperApiBody, + params: zEnterpriseAppDeployConsoleUpdateDeveloperApiPath, + }), + ) + .output(zEnterpriseAppDeployConsoleUpdateDeveloperApiResponse) + +export const getEnvironmentAccessPolicy = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'EnterpriseAppDeployConsole_GetEnvironmentAccessPolicy', + path: '/enterprise/app-instances/{appInstanceId}/environments/{environmentId}/access-policy', + tags: ['EnterpriseAppDeployConsole'], + }) + .input(z.object({ params: zEnterpriseAppDeployConsoleGetEnvironmentAccessPolicyPath })) + .output(zEnterpriseAppDeployConsoleGetEnvironmentAccessPolicyResponse) + +export const updateEnvironmentAccessPolicy = oc + .route({ + inputStructure: 'detailed', + method: 'PUT', + operationId: 'EnterpriseAppDeployConsole_UpdateEnvironmentAccessPolicy', + path: '/enterprise/app-instances/{appInstanceId}/environments/{environmentId}/access-policy', + tags: ['EnterpriseAppDeployConsole'], + }) + .input( + z.object({ + body: zEnterpriseAppDeployConsoleUpdateEnvironmentAccessPolicyBody, + params: zEnterpriseAppDeployConsoleUpdateEnvironmentAccessPolicyPath, + }), + ) + .output(zEnterpriseAppDeployConsoleUpdateEnvironmentAccessPolicyResponse) + +export const getAppInstanceOverview = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'EnterpriseAppDeployConsole_GetAppInstanceOverview', + path: '/enterprise/app-instances/{appInstanceId}/overview', + tags: ['EnterpriseAppDeployConsole'], + }) + .input(z.object({ params: zEnterpriseAppDeployConsoleGetAppInstanceOverviewPath })) + .output(zEnterpriseAppDeployConsoleGetAppInstanceOverviewResponse) + +export const listReleases = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'EnterpriseAppDeployConsole_ListReleases', + path: '/enterprise/app-instances/{appInstanceId}/releases', + tags: ['EnterpriseAppDeployConsole'], + }) + .input( + z.object({ + params: zEnterpriseAppDeployConsoleListReleasesPath, + query: zEnterpriseAppDeployConsoleListReleasesQuery.optional(), + }), + ) + .output(zEnterpriseAppDeployConsoleListReleasesResponse) + +export const createRelease = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'EnterpriseAppDeployConsole_CreateRelease', + path: '/enterprise/app-instances/{appInstanceId}/releases', + tags: ['EnterpriseAppDeployConsole'], + }) + .input( + z.object({ + body: zEnterpriseAppDeployConsoleCreateReleaseBody, + params: zEnterpriseAppDeployConsoleCreateReleasePath, + }), + ) + .output(zEnterpriseAppDeployConsoleCreateReleaseResponse) + +export const previewRelease = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'EnterpriseAppDeployConsole_PreviewRelease', + path: '/enterprise/app-instances/{appInstanceId}/releases:preview', + tags: ['EnterpriseAppDeployConsole'], + }) + .input( + z.object({ + body: zEnterpriseAppDeployConsolePreviewReleaseBody, + params: zEnterpriseAppDeployConsolePreviewReleasePath, + }), + ) + .output(zEnterpriseAppDeployConsolePreviewReleaseResponse) + +export const listRuntimeInstances = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'EnterpriseAppDeployConsole_ListRuntimeInstances', + path: '/enterprise/app-instances/{appInstanceId}/runtime-instances', + tags: ['EnterpriseAppDeployConsole'], + }) + .input(z.object({ params: zEnterpriseAppDeployConsoleListRuntimeInstancesPath })) + .output(zEnterpriseAppDeployConsoleListRuntimeInstancesResponse) + +export const cancelRuntimeDeployment = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'EnterpriseAppDeployConsole_CancelRuntimeDeployment', + path: '/enterprise/app-instances/{appInstanceId}/runtime-instances/{runtimeInstanceId}/deployment:cancel', + tags: ['EnterpriseAppDeployConsole'], + }) + .input( + z.object({ + body: zEnterpriseAppDeployConsoleCancelRuntimeDeploymentBody, + params: zEnterpriseAppDeployConsoleCancelRuntimeDeploymentPath, + }), + ) + .output(zEnterpriseAppDeployConsoleCancelRuntimeDeploymentResponse) + +export const undeployRuntimeInstance = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'EnterpriseAppDeployConsole_UndeployRuntimeInstance', + path: '/enterprise/app-instances/{appInstanceId}/runtime-instances/{runtimeInstanceId}:undeploy', + tags: ['EnterpriseAppDeployConsole'], + }) + .input( + z.object({ + body: zEnterpriseAppDeployConsoleUndeployRuntimeInstanceBody, + params: zEnterpriseAppDeployConsoleUndeployRuntimeInstancePath, + }), + ) + .output(zEnterpriseAppDeployConsoleUndeployRuntimeInstanceResponse) + +export const getAppInstanceSettings = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'EnterpriseAppDeployConsole_GetAppInstanceSettings', + path: '/enterprise/app-instances/{appInstanceId}/settings', + tags: ['EnterpriseAppDeployConsole'], + }) + .input(z.object({ params: zEnterpriseAppDeployConsoleGetAppInstanceSettingsPath })) + .output(zEnterpriseAppDeployConsoleGetAppInstanceSettingsResponse) + +export const listDeploymentEnvironmentOptions = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'EnterpriseAppDeployConsole_ListDeploymentEnvironmentOptions', + path: '/enterprise/deployment-environment-options', + tags: ['EnterpriseAppDeployConsole'], + }) + .output(zEnterpriseAppDeployConsoleListDeploymentEnvironmentOptionsResponse) + +export const enterpriseAppDeployConsole = { + listAppInstances, + createAppInstance, + deleteAppInstance, + updateAppInstance, + getAppInstanceAccess, + updateAccessChannels, + searchAccessSubjects, + createDeveloperApiKey, + deleteDeveloperApiKey, + listDeploymentBindingOptions, + createDeployment, + updateDeveloperApi, + getEnvironmentAccessPolicy, + updateEnvironmentAccessPolicy, + getAppInstanceOverview, + listReleases, + createRelease, + previewRelease, + listRuntimeInstances, + cancelRuntimeDeployment, + undeployRuntimeInstance, + getAppInstanceSettings, + listDeploymentEnvironmentOptions, +} + +export const oAuth2Login = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'ConsoleSSO_OAuth2Login', + path: '/enterprise/sso/oauth2/login', + tags: ['ConsoleSSO'], + }) + .output(zConsoleSsoOAuth2LoginResponse) + +export const oidcLogin = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'ConsoleSSO_OIDCLogin', + path: '/enterprise/sso/oidc/login', + tags: ['ConsoleSSO'], + }) + .output(zConsoleSsoOidcLoginResponse) + +export const samlLogin = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'ConsoleSSO_SAMLLogin', + path: '/enterprise/sso/saml/login', + tags: ['ConsoleSSO'], + }) + .output(zConsoleSsoSamlLoginResponse) + +export const consoleSso = { + oAuth2Login, + oidcLogin, + samlLogin, +} + +export const getWebAppAccessMode = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'WebAppAuth_GetWebAppAccessMode', + path: '/enterprise/webapp/app/access-mode', + tags: ['WebAppAuth'], + }) + .input(z.object({ query: zWebAppAuthGetWebAppAccessModeQuery.optional() })) + .output(zWebAppAuthGetWebAppAccessModeResponse) + +export const updateWebAppWhitelistSubjects = oc + .route({ + inputStructure: 'detailed', + method: 'POST', + operationId: 'WebAppAuth_UpdateWebAppWhitelistSubjects', + path: '/enterprise/webapp/app/access-mode', + tags: ['WebAppAuth'], + }) + .input(z.object({ body: zWebAppAuthUpdateWebAppWhitelistSubjectsBody })) + .output(zWebAppAuthUpdateWebAppWhitelistSubjectsResponse) + +export const searchForWhilteListCandidates = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'WebAppAuth_SearchForWhilteListCandidates', + path: '/enterprise/webapp/app/subject/search', + tags: ['WebAppAuth'], + }) + .input(z.object({ query: zWebAppAuthSearchForWhilteListCandidatesQuery.optional() })) + .output(zWebAppAuthSearchForWhilteListCandidatesResponse) + +export const getWebAppWhitelistSubjects = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'WebAppAuth_GetWebAppWhitelistSubjects', + path: '/enterprise/webapp/app/subjects', + tags: ['WebAppAuth'], + }) + .input(z.object({ query: zWebAppAuthGetWebAppWhitelistSubjectsQuery.optional() })) + .output(zWebAppAuthGetWebAppWhitelistSubjectsResponse) + +export const getGroupSubjects = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'WebAppAuth_GetGroupSubjects', + path: '/enterprise/webapp/group/subjects', + tags: ['WebAppAuth'], + }) + .input(z.object({ query: zWebAppAuthGetGroupSubjectsQuery.optional() })) + .output(zWebAppAuthGetGroupSubjectsResponse) + +export const isUserAllowedToAccessWebApp = oc + .route({ + inputStructure: 'detailed', + method: 'GET', + operationId: 'WebAppAuth_IsUserAllowedToAccessWebApp', + path: '/enterprise/webapp/permission', + tags: ['WebAppAuth'], + }) + .input(z.object({ query: zWebAppAuthIsUserAllowedToAccessWebAppQuery.optional() })) + .output(zWebAppAuthIsUserAllowedToAccessWebAppResponse) + +export const webAppAuth = { + getWebAppAccessMode, + updateWebAppWhitelistSubjects, + searchForWhilteListCandidates, + getWebAppWhitelistSubjects, + getGroupSubjects, + isUserAllowedToAccessWebApp, +} + +export const contract = { + enterpriseAppDeployConsole, + consoleSso, + webAppAuth, +} diff --git a/packages/contracts/generated/enterprise/types.gen.ts b/packages/contracts/generated/enterprise/types.gen.ts new file mode 100644 index 0000000000..56228f2738 --- /dev/null +++ b/packages/contracts/generated/enterprise/types.gen.ts @@ -0,0 +1,1978 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type ClientOptions = { + baseUrl: `${string}://${string}` | (string & {}) +} + +export type AccessChannels = { + enabled?: boolean + webappRows?: Array + cli?: CliAccess +} + +export type AccessModeOption = { + mode?: string + label?: string + disabled?: boolean + selected?: boolean +} + +export type AccessPolicyDetail = { + accessMode?: string + subjects?: Array + options?: Array +} + +export type AccessStatus = { + accessChannelsEnabled?: boolean + webappUrl?: string + cliUrl?: string + developerApiEnabled?: boolean + apiKeyCount?: number +} + +export type AccessSubject = { + subjectId?: string + subjectType?: string +} + +export type AccessSubjectDisplay = { + id?: string + subjectType?: string + name?: string + avatarUrl?: string + memberCount?: string +} + +export type Account = { + id?: string + email?: string + name?: string +} + +export type AccountDetail = { + account?: Account + status?: string + createdAt?: string + lastActiveAt?: string + workspaces?: Array + groups?: Array +} + +export type AccountDetailGroup = { + id?: string + name?: string +} + +export type AccountInWorkspace = { + workspaceId?: string + workspaceName?: string + role?: string +} + +export type AckDeploymentReply = { + accepted?: boolean + newVersion?: string +} + +export type AckDeploymentReq = { + deploymentId?: string + instanceId?: string + expectedVersion?: string + status?: string + observedReleaseId?: string + lastError?: LastError +} + +export type AppInstanceBasicInfo = { + id?: string + name?: string + description?: string + sourceAppId?: string + sourceAppName?: string + mode?: string + createdAt?: string +} + +export type AppInstanceCard = { + id?: string + name?: string + icon?: string + mode?: string + sourceAppName?: string + statuses?: Array + lastDeployedAt?: string +} + +export type AppRunnerBatchRuntimeArtifactReply = { + results?: Array +} + +export type AppRunnerBatchRuntimeArtifactRequest = { + artifacts?: Array +} + +export type AppRunnerBootstrapAssignment = { + appId?: string + environmentId?: string + workflowId?: string + instanceId?: string + workspaceId?: string + instanceVersion?: string + bindingSnapshotVersion?: string + executionTokenVersion?: string + executionToken?: string + releaseId?: string +} + +export type AppRunnerBootstrapReply = { + runnerId?: string + assignmentRevision?: string + assignments?: Array +} + +export type AppRunnerBootstrapRequest = { + runner?: AppRunnerRunnerInfo +} + +export type AppRunnerRunnerInfo = { + hostname?: string +} + +export type AppRunnerRuntimeArtifactReply = { + dslYaml?: string + bindingSnapshotVersion?: string + bindingSnapshot?: { + [key: string]: unknown + } +} + +export type AppRunnerRuntimeArtifactRequest = { + instanceId?: string + releaseId?: string + bindingSnapshotVersion?: string +} + +export type AppRunnerRuntimeArtifactResult = { + instanceId?: string + releaseId?: string + artifact?: AppRunnerRuntimeArtifactReply + errorCode?: string + errorMessage?: string +} + +export type AppRunnerTokenExchangeReply = { + accessToken?: string + expiresAt?: string +} + +export type AppRunnerTokenExchangeRequest = { + joinToken?: string +} + +export type AuthSettingsReply = { + userSsoSettings?: SsoSettings + webSsoSettings?: SsoSettings + dashboardSsoSettings?: SsoSettings + userSsoSamlAcsUrl?: string + userSsoOidcCallbackUrl?: string + userSsoOauth2CallbackUrl?: string + webSsoSamlAcsUrl?: string + webSsoOidcCallbackUrl?: string + webSsoOauth2CallbackUrl?: string + webSsoMembersSamlAcsUrl?: string + webSsoMembersOidcCallbackUrl?: string + webSsoMembersOauth2CallbackUrl?: string + dashboardSsoSamlAcsUrl?: string + dashboardSsoOidcCallbackUrl?: string + dashboardSsoOauth2CallbackUrl?: string +} + +export type AuthSettingsReq = { + ssoType?: string + ssoSettings?: SsoSettings +} + +export type BootstrapProgress = { + currentStep?: string + completedSteps?: Array + attemptCount?: number + lastAttemptAt?: string + lastErrorCode?: string + lastErrorMessage?: string +} + +export type BrandingInfo = { + enabled?: boolean + applicationTitle?: string + loginPageLogo?: string + workspaceLogo?: string + favicon?: string +} + +export type CancelRuntimeDeploymentReply = { + status?: string +} + +export type CancelRuntimeDeploymentReq = { + appInstanceId?: string + runtimeInstanceId?: string +} + +export type CheckPasswordStatusReply = { + requirePasswordChange?: boolean + changeReason?: number + daysToExpire?: number + message?: string +} + +export type ClearDefaultWorkspaceReply = { + [key: string]: unknown +} + +export type CliAccess = { + url?: string +} + +export type ConsoleEnvironment = { + id?: string + name?: string + runtime?: string + type?: string + status?: string +} + +export type ConsoleRelease = { + id?: string + name?: string + shortCommitId?: string + createdAt?: string +} + +export type ConsoleUser = { + id?: string + name?: string +} + +export type CreateAppInstanceReply = { + appInstanceId?: string + initialRelease?: ConsoleRelease +} + +export type CreateAppInstanceReq = { + sourceAppId?: string + name?: string + description?: string +} + +export type CreateBearerTokenResponse = { + token?: string +} + +export type CreateDeploymentReply = { + runtimeInstanceId?: string + deploymentId?: string + status?: string +} + +export type CreateDeploymentReq = { + appInstanceId?: string + environmentId?: string + releaseId?: string + bindings?: Array +} + +export type CreateDeveloperApiKeyReply = { + apiKey?: DeveloperApiKeyRow + token?: string +} + +export type CreateDeveloperApiKeyReq = { + appInstanceId?: string + environmentId?: string + name?: string +} + +export type CreateEnvironmentReply = { + environment?: Environment +} + +export type CreateEnvironmentReq = { + name?: string + description?: string + mode?: number + backend?: number + k8s?: K8sEnvironmentConfig + host?: HostEnvironmentConfig +} + +export type CreateMemberReply = { + id?: string + password?: string +} + +export type CreateMemberReq = { + name?: string + email?: string + status?: string +} + +export type CreateNewGroupsReq = { + groups?: Array +} + +export type CreateNewGroupsReqGroup = { + name?: string +} + +export type CreateNewGroupsRes = { + groups?: Array +} + +export type CreateReleaseReply = { + release?: ConsoleRelease +} + +export type CreateReleaseReq = { + appInstanceId?: string + name?: string + description?: string +} + +export type CreateSecretKeyReply = { + id?: string + name?: string + secretKey?: string + createdAt?: string + lastActive?: string +} + +export type CreateSecretKeyReq = { + name?: string +} + +export type CreateUserReply = { + id?: string + password?: string +} + +export type CreateUserReq = { + name?: string + email?: string + status?: string +} + +export type CreateWorkspaceReply = { + workspace?: Workspace +} + +export type CreateWorkspaceReq = { + name?: string + email?: string + status?: string +} + +export type CurrentUserReply = { + id?: string + name?: string + email?: string + interfaceLanguage?: string + timezone?: string +} + +export type DashboardSsooidcLoginReply = { + url?: string + state?: string +} + +export type DashboardSsoOauth2LoginReply = { + url?: string + state?: string +} + +export type DashboardSsosamlLoginReply = { + url?: string +} + +export type DeleteAppInstanceReply = { + [key: string]: unknown +} + +export type DeleteDeveloperApiKeyReply = { + [key: string]: unknown +} + +export type DeleteEnvironmentReply = { + [key: string]: unknown +} + +export type DeleteGroupsRes = { + message?: string +} + +export type DeleteGuard = { + canDelete?: boolean + disabledReason?: string +} + +export type DeleteMemberReply = { + account?: Account +} + +export type DeleteSecretKeyReply = { + message?: string +} + +export type DeleteUserReply = { + account?: Account +} + +export type DeleteWorkspaceReply = { + [key: string]: unknown +} + +export type DeployedEnvironment = { + environmentId?: string + environmentName?: string +} + +export type DeploymentBindingOptionSlot = { + slot?: string + kind?: string + label?: string + required?: boolean + candidates?: Array + envVarCandidates?: Array +} + +export type DeploymentCredentialOption = { + credentialId?: string + displayName?: string + pluginId?: string + pluginName?: string + pluginVersion?: string +} + +export type DeploymentEnvVarOption = { + envVarId?: string + name?: string + valueType?: string + displayValue?: string +} + +export type DeploymentEnvironmentOption = { + id?: string + name?: string + type?: string + backend?: string + status?: string + managedBy?: string + deployable?: boolean + disabledReason?: string +} + +export type DeploymentRuntimeBinding = { + slot?: string + credentialId?: string + envVarId?: string +} + +export type DeploymentStatusRow = { + environment?: ConsoleEnvironment + release?: ConsoleRelease + status?: string +} + +export type DeveloperApiAccess = { + enabled?: boolean + apiKeys?: Array +} + +export type DeveloperApiKeyRow = { + id?: string + name?: string + environment?: ConsoleEnvironment + maskedKey?: string +} + +export type EndpointReply = { + mode?: number + metricsEndpoint?: OtelExporterEndpoint + tracesEndpoint?: OtelExporterEndpoint +} + +export type EnterpriseSystemUserSettingReply = { + ssoEnforcedForSignin?: boolean + ssoEnforcedForSigninProtocol?: string + enableEmailPasswordLogin?: boolean +} + +export type Environment = { + id?: string + name?: string + description?: string + mode?: number + namespace?: string + apiServer?: string + status?: number + statusMessage?: string + bootstrapProgress?: BootstrapProgress + managedBy?: string + createdAt?: string + updatedAt?: string + backend?: number + host?: string +} + +export type EnvironmentAccessRow = { + environment?: ConsoleEnvironment + currentRelease?: ConsoleRelease + accessMode?: string + accessModeLabel?: string + hint?: string +} + +export type EnvironmentFilter = { + id?: string + name?: string + kind?: string +} + +export type GetAppInstanceAccessReply = { + permissions?: Array + accessChannels?: AccessChannels + developerApi?: DeveloperApiAccess +} + +export type GetAppInstanceOverviewReply = { + instance?: AppInstanceBasicInfo + deployments?: Array + access?: AccessStatus +} + +export type GetAppInstanceSettingsReply = { + name?: string + description?: string + deleteGuard?: DeleteGuard +} + +export type GetBearerTokenResponse = { + maskedToken?: string +} + +export type GetClusterInfoReply = { + mode?: string + clusterId?: string + verifyMode?: string +} + +export type GetDefaultWorkspaceReply = { + workspaceId?: string + workspace?: Workspace +} + +export type GetEnvironmentAccessPolicyReply = { + policy?: AccessPolicyDetail +} + +export type GetEnvironmentReply = { + environment?: Environment +} + +export type GetGroupSubjectsRes = { + subjects?: Array +} + +export type GetGroupsRes = { + groups?: Array +} + +export type GetInstanceReply = { + instanceId?: string + status?: string + desiredReleaseId?: string + observedReleaseId?: string + currentDeploymentId?: string + version?: string +} + +export type GetJoinedGroupsRes = { + groups?: Array +} + +export type GetLicenseReply = { + license?: LicenseInfo +} + +export type GetLicenseStatusReply = { + status?: string +} + +export type GetMfaInfoReply = { + userEnabled?: boolean + userSetup?: boolean + globalEnabled?: boolean +} + +export type GetMemberReply = { + account?: AccountDetail +} + +export type GetUserReply = { + account?: AccountDetail +} + +export type GetWebAppAccessModeRes = { + accessMode?: string +} + +export type GetWebAppAuthInfoRes = { + allowSso?: boolean + allowEmailCodeLogin?: boolean + allowEmailPasswordLogin?: boolean +} + +export type GetWebAppWhitelistSubjectsRes = { + groups?: Array + members?: Array +} + +export type GetWebAppWhitelistSubjectsResMember = { + id?: string + name?: string + email?: string + avatar?: string +} + +export type GetWorkspacePermissionReply = { + permission?: WorkspacePermission +} + +export type GetWorkspaceReply = { + workspace?: Workspace +} + +export type HealthzReply = { + message?: string + status?: string +} + +export type HostEnvironmentConfig = { + machineId?: string + joinTokenHash?: string +} + +export type InfoConfigReply = { + SSOEnforcedForSignin?: boolean + SSOEnforcedForSigninProtocol?: string + SSOEnforcedForWeb?: boolean + SSOEnforcedForWebProtocol?: string + EnableEmailCodeLogin?: boolean + EnableEmailPasswordLogin?: boolean + IsAllowRegister?: boolean + IsAllowCreateWorkspace?: boolean + License?: LicenseStatus + Branding?: BrandingInfo + WebAppAuth?: WebAppAuthInfo + PluginInstallationPermission?: PluginInstallationPermissionInfo +} + +export type InnerBatchGetWebAppAccessModesByIdReq = { + appIds?: Array +} + +export type InnerBatchGetWebAppAccessModesByIdRes = { + accessModes?: { + [key: string]: string + } +} + +export type InnerBatchIsUserAllowedToAccessWebAppReq = { + userId?: string + appIds?: Array +} + +export type InnerBatchIsUserAllowedToAccessWebAppRes = { + permissions?: { + [key: string]: boolean + } +} + +export type InnerCheckAppDeployAccessReply = { + allowed?: boolean + matchedPolicyId?: string + matchedScopeType?: string + reason?: string + cacheTtlSeconds?: number +} + +export type InnerCheckAppDeployAccessReq = { + appInstanceId?: string + environmentId?: string + principalType?: string + principalId?: string +} + +export type InnerCleanAppRes = { + message?: string +} + +export type InnerGetTokenRouteReply = { + environmentId?: string + namespace?: string + serviceName?: string + servicePort?: number + environmentStatus?: string + appId?: string + tenantId?: string + instanceId?: string + observedReleaseId?: string + instanceStatus?: string +} + +export type InnerGetTokenRouteReq = { + token?: string +} + +export type InnerGetWebAppAccessModeByCodeRes = { + accessMode?: string +} + +export type InnerGetWebAppAccessModeByIdRes = { + accessMode?: string +} + +export type InnerIsUserAllowedToAccessWebAppRes = { + result?: boolean +} + +export type InnerTryAddAccountToDefaultWorkspaceReply = { + workspaceId?: string + joined?: boolean + message?: string +} + +export type InnerTryAddAccountToDefaultWorkspaceReq = { + accountId?: string +} + +export type IsUserAllowedToAccessWebAppRes = { + result?: boolean +} + +export type JoinWorkspaceReply = { + message?: string +} + +export type JoinWorkspaceReq = { + id?: string + email?: string + role?: string +} + +export type K8sEnvironmentConfig = { + namespace?: string + apiServer?: string + caBundle?: string + bearerToken?: string +} + +export type LastError = { + phase?: string + code?: string + message?: string + releaseId?: string +} + +export type LicenseInfo = { + uuid?: string + expiredAt?: string + clusterId?: string + product?: string + limits?: LimitFields +} + +export type LicenseStatus = { + status?: string + expiredAt?: string + workspaces?: ResourceQuota +} + +export type LimitFields = { + workspaceMembers?: number + workspaces?: ResourceQuota +} + +export type ListAppInstancesReply = { + filters?: Array + data?: Array + pagination?: Pagination +} + +export type ListDeploymentBindingOptionsReply = { + slots?: Array +} + +export type ListDeploymentEnvironmentOptionsReply = { + environments?: Array +} + +export type ListEnvironmentsReply = { + data?: Array + pagination?: Pagination +} + +export type ListMembersReply = { + data?: Array + pagination?: Pagination +} + +export type ListReleasesReply = { + data?: Array + pagination?: Pagination +} + +export type ListRuntimeInstancesReply = { + data?: Array +} + +export type ListSecretKeysReply = { + data?: Array + pagination?: Pagination +} + +export type ListUsersReply = { + data?: Array + pagination?: Pagination +} + +export type ListWorkspacesReply = { + data?: Array + pagination?: Pagination +} + +export type LoginTypesReply = { + enabledEmailCodeLogin?: boolean + enableEmailPasswordLogin?: boolean + isAllowRegister?: boolean + isAllowCreateWorkspace?: boolean +} + +export type LoginTypesReq = { + enabledEmailCodeLogin?: boolean + enableEmailPasswordLogin?: boolean + isAllowRegister?: boolean + isAllowCreateWorkspace?: boolean +} + +export type MfaBackupCodesRes = { + codes?: Array + validCounts?: number + createdAt?: string +} + +export type MfaDeleteBackupCodesRes = { + message?: string +} + +export type MfaDeleteRes = { + token?: string +} + +export type MfaDownloadBackupCodesSummaryRes = { + content?: string +} + +export type MfaEnrollReq = { + code?: string +} + +export type MfaEnrollRes = { + token?: string +} + +export type MfaGetEnrollInfoRes = { + qrCode?: string + secret?: string +} + +export type MfaModifyRes = { + message?: string +} + +export type OAuth2Config = { + clientId?: string + clientSecret?: string + authUrl?: string + tokenUrl?: string + userinfoUrl?: string + scopes?: string + enablePkce?: boolean +} + +export type OAuth2LoginReply = { + url?: string + state?: string +} + +export type OidcConfig = { + issuerUrl?: string + clientId?: string + clientSecret?: string + enablePkce?: boolean +} + +export type OidcReply = { + url?: string + state?: string +} + +export type OtelExporterEndpoint = { + endpoint?: string + compression?: string + protocol?: number + timeout?: string + headers?: { + [key: string]: string + } + tlsCaPem?: string + tlsInsecure?: boolean + tlsClientCertPem?: string + tlsClientKeyPem?: string + enabled?: boolean + tlsInsecureSkipVerify?: boolean +} + +export type OtelExporterStatusReply = { + connectedAt?: string + bytesPushed?: string + itemsInQueue?: string + logs?: string + status?: number +} + +export type PasswordPolicyConfig = { + minLength?: number + requireDigit?: boolean + requireLowercase?: boolean + requireUppercase?: boolean + requireSpecial?: boolean + forbidRepeated?: boolean + forbidSequential?: boolean + expiryEnabled?: boolean + expiryDays?: number +} + +export type PasswordStrengthReply = { + level?: number +} + +export type PasswordStrengthReq = { + password?: string +} + +export type PluginInstallationPermissionInfo = { + pluginInstallationScope?: string + restrictToMarketplaceOnly?: boolean +} + +export type PluginInstallationSettingsReply = { + pluginInstallationScope?: number + restrictToMarketplaceOnly?: boolean +} + +export type PreviewReleaseReply = { + release?: ConsoleRelease + bindings?: Array +} + +export type PreviewReleaseReq = { + appInstanceId?: string + releaseId?: string +} + +export type ReleaseRow = { + id?: string + name?: string + createdAt?: string + createdBy?: ConsoleUser + deployedTo?: Array +} + +export type ReleaseRuntimeBinding = { + kind?: string + label?: string + displayValue?: string + valueType?: string +} + +export type ResetMemberPasswordReply = { + id?: string + password?: string +} + +export type ResetMemberPasswordReq = { + id?: string +} + +export type ResetPasswordReply = { + message?: string +} + +export type ResetPasswordReq = { + currentPassword?: string + newPassword?: string + confirmPassword?: string +} + +export type ResetUserPasswordReply = { + id?: string + password?: string +} + +export type ResetUserPasswordReq = { + id?: string +} + +export type ResolveCredentialsReply = { + resolved?: Array +} + +export type ResolveCredentialsReq = { + instanceId?: string + deploymentId?: string + slots?: Array +} + +export type ResolvedCredential = { + slot?: string + credentialId?: string + envVarId?: string + value?: string +} + +export type ResourceQuota = { + used?: number + limit?: number + enabled?: boolean +} + +export type RetryEnvironmentReply = { + environment?: Environment +} + +export type RetryEnvironmentReq = { + id?: string +} + +export type RuntimeEndpoints = { + run?: string + health?: string +} + +export type RuntimeInstanceDetail = { + deploymentName?: string + replicas?: number + runtimeMode?: string + runtimeNote?: string + endpoints?: RuntimeEndpoints + bindings?: Array +} + +export type RuntimeInstanceRow = { + id?: string + environment?: ConsoleEnvironment + status?: string + currentRelease?: ConsoleRelease + detail?: RuntimeInstanceDetail +} + +export type SamlConfig = { + idpSsoUrl?: string + certificate?: string +} + +export type SamlLoginReply = { + url?: string +} + +export type SsoIdPProvider = { + protocol?: string + provider?: string + samlConfig?: SamlConfig + oidcConfig?: OidcConfig + oauth2Config?: OAuth2Config +} + +export type SsoSettings = { + ssoEnforced?: boolean + sessionTimeout?: number + ssoIdpProvider?: SsoIdPProvider +} + +export type SsoSettingsReply = { + enabled?: boolean +} + +export type ScimSettings = { + enabled?: boolean + lastSyncTime?: string +} + +export type SearchAccessSubjectsReply = { + data?: Array +} + +export type SearchForWhilteListCandidatesRes = { + subjects?: Array + currPage?: number + hasMore?: boolean +} + +export type SecretKey = { + id?: string + name?: string + secretKeyMasked?: string + createdAt?: string + lastActive?: string +} + +export type SetDefaultWorkspaceReply = { + workspaceId?: string +} + +export type SetDefaultWorkspaceReq = { + id?: string +} + +export type StatusCount = { + status?: string + count?: number +} + +export type Subject = { + subjectId?: string + subjectType?: string + accountData?: SubjectAccountData + groupData?: SubjectGroupData +} + +export type SubjectAccountData = { + id?: string + name?: string + email?: string + avatar?: string +} + +export type SubjectGroupData = { + id?: string + name?: string + groupSize?: number +} + +export type SystemUserSettingReply = { + isAllowRegister?: boolean + enableEmailPasswordLogin?: boolean +} + +export type SystemUserSettingReq = { + isAllowRegister?: boolean + enableEmailPasswordLogin?: boolean +} + +export type TestConnectionReply = { + success?: boolean + error?: string +} + +export type TestEnvironmentConnectionReply = { + ok?: boolean + reachableServerVersion?: string + namespaceExists?: boolean + missingPermissions?: Array + error?: string + probedAt?: string +} + +export type TestEnvironmentConnectionReq = { + id?: string +} + +export type ToggleEndpointRequest = { + enabled?: boolean +} + +export type UndeployRuntimeInstanceReply = { + deploymentId?: string + status?: string +} + +export type UndeployRuntimeInstanceReq = { + appInstanceId?: string + runtimeInstanceId?: string +} + +export type UpdateAccessChannelsReply = { + accessChannels?: AccessChannels +} + +export type UpdateAccessChannelsReq = { + appInstanceId?: string + enabled?: boolean +} + +export type UpdateAccessModeReq = { + appId?: string + accessMode?: string +} + +export type UpdateAccessModeRes = { + message?: string +} + +export type UpdateAppInstanceReply = { + appInstanceId?: string +} + +export type UpdateAppInstanceReq = { + appInstanceId?: string + name?: string + description?: string +} + +export type UpdateBrandingInfoReq = { + enabled?: boolean + applicationTitle?: string + loginPageLogo?: string + workspaceLogo?: string + favicon?: string +} + +export type UpdateDeveloperApiReply = { + developerApi?: DeveloperApiAccess +} + +export type UpdateDeveloperApiReq = { + appInstanceId?: string + enabled?: boolean +} + +export type UpdateEnvironmentAccessPolicyReply = { + permission?: EnvironmentAccessRow +} + +export type UpdateEnvironmentAccessPolicyReq = { + appInstanceId?: string + environmentId?: string + accessMode?: string + subjects?: Array +} + +export type UpdateEnvironmentReply = { + environment?: Environment +} + +export type UpdateEnvironmentReq = { + id?: string + name?: string + description?: string +} + +export type UpdateGroupSubjectsReq = { + groupId?: string + subjects?: Array +} + +export type UpdateGroupSubjectsRes = { + message?: string +} + +export type UpdateGroupsReq = { + groups?: Array +} + +export type UpdateGroupsReqGroup = { + id?: string + name?: string +} + +export type UpdateGroupsRes = { + groups?: Array +} + +export type UpdateJoinedGroupsReq = { + accountId?: string + groupIds?: Array +} + +export type UpdateJoinedGroupsRes = { + message?: string +} + +export type UpdateLicenseReply = { + message?: string +} + +export type UpdateLicenseReq = { + licenseId?: string +} + +export type UpdateMfaStatusReq = { + enabled?: boolean +} + +export type UpdateMfaStatusRes = { + message?: string +} + +export type UpdateMemberReply = { + account?: Account +} + +export type UpdateMemberReq = { + id?: string + name?: string + email?: string + status?: string +} + +export type UpdateMembersInGroupsReq = { + groupId?: string + accountIds?: Array +} + +export type UpdateMembersInGroupsRes = { + message?: string +} + +export type UpdateOfflineLicenseReply = { + message?: string +} + +export type UpdateOfflineLicenseReq = { + offlineCode?: string +} + +export type UpdatePluginInstallationSettingsRequest = { + pluginInstallationScope?: number + restrictToMarketplaceOnly?: boolean +} + +export type UpdateUserReply = { + account?: AccountDetail +} + +export type UpdateUserReq = { + id?: string + name?: string + email?: string + status?: string +} + +export type UpdateWebAppAuthInfoReq = { + allowSso?: boolean + allowEmailCodeLogin?: boolean + allowEmailPasswordLogin?: boolean +} + +export type UpdateWebAppAuthInfoRes = { + message?: string +} + +export type UpdateWebAppWhitelistSubjectsReq = { + appId?: string + subjects?: Array + accessMode?: string +} + +export type UpdateWebAppWhitelistSubjectsRes = { + message?: string +} + +export type UpdateWorkspacePermissionReply = { + message?: string + permission?: WorkspacePermission +} + +export type UpdateWorkspacePermissionReq = { + id?: string + permission?: WorkspacePermission +} + +export type UpdateWorkspaceReply = { + workspace?: Workspace +} + +export type UpdateWorkspaceReq = { + id?: string + name?: string + email?: string + status?: string +} + +export type WebAppAccessRow = { + environment?: ConsoleEnvironment + url?: string +} + +export type WebAppAuthInfo = { + allowSso?: boolean + allowEmailCodeLogin?: boolean + allowEmailPasswordLogin?: boolean +} + +export type WebOAuth2LoginReply = { + url?: string + state?: string +} + +export type WebOidcLoginReply = { + url?: string +} + +export type WebSamlLoginReply = { + url?: string +} + +export type Workspace = { + id?: string + name?: string + status?: string + createdAt?: string + owner?: Account +} + +export type WorkspaceInfoReply = { + WorkspaceMembers?: ResourceQuota +} + +export type WorkspacePermission = { + workspaceId?: string + allowMemberInvite?: boolean + allowOwnerTransfer?: boolean +} + +export type Pagination = { + totalCount?: number + perPage?: number + currentPage?: number + totalPages?: number +} + +export type EnterpriseAppDeployConsoleListAppInstancesData = { + body?: never + path?: never + query?: { + environmentId?: string + notDeployed?: boolean + query?: string + pageNumber?: number + resultsPerPage?: number + } + url: '/enterprise/app-instances' +} + +export type EnterpriseAppDeployConsoleListAppInstancesResponses = { + 200: ListAppInstancesReply +} + +export type EnterpriseAppDeployConsoleListAppInstancesResponse + = EnterpriseAppDeployConsoleListAppInstancesResponses[keyof EnterpriseAppDeployConsoleListAppInstancesResponses] + +export type EnterpriseAppDeployConsoleCreateAppInstanceData = { + body: CreateAppInstanceReq + path?: never + query?: never + url: '/enterprise/app-instances' +} + +export type EnterpriseAppDeployConsoleCreateAppInstanceResponses = { + 200: CreateAppInstanceReply +} + +export type EnterpriseAppDeployConsoleCreateAppInstanceResponse + = EnterpriseAppDeployConsoleCreateAppInstanceResponses[keyof EnterpriseAppDeployConsoleCreateAppInstanceResponses] + +export type EnterpriseAppDeployConsoleDeleteAppInstanceData = { + body?: never + path: { + appInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}' +} + +export type EnterpriseAppDeployConsoleDeleteAppInstanceResponses = { + 200: DeleteAppInstanceReply +} + +export type EnterpriseAppDeployConsoleDeleteAppInstanceResponse + = EnterpriseAppDeployConsoleDeleteAppInstanceResponses[keyof EnterpriseAppDeployConsoleDeleteAppInstanceResponses] + +export type EnterpriseAppDeployConsoleUpdateAppInstanceData = { + body: UpdateAppInstanceReq + path: { + appInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}' +} + +export type EnterpriseAppDeployConsoleUpdateAppInstanceResponses = { + 200: UpdateAppInstanceReply +} + +export type EnterpriseAppDeployConsoleUpdateAppInstanceResponse + = EnterpriseAppDeployConsoleUpdateAppInstanceResponses[keyof EnterpriseAppDeployConsoleUpdateAppInstanceResponses] + +export type EnterpriseAppDeployConsoleGetAppInstanceAccessData = { + body?: never + path: { + appInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/access' +} + +export type EnterpriseAppDeployConsoleGetAppInstanceAccessResponses = { + 200: GetAppInstanceAccessReply +} + +export type EnterpriseAppDeployConsoleGetAppInstanceAccessResponse + = EnterpriseAppDeployConsoleGetAppInstanceAccessResponses[keyof EnterpriseAppDeployConsoleGetAppInstanceAccessResponses] + +export type EnterpriseAppDeployConsoleUpdateAccessChannelsData = { + body: UpdateAccessChannelsReq + path: { + appInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/access-channels' +} + +export type EnterpriseAppDeployConsoleUpdateAccessChannelsResponses = { + 200: UpdateAccessChannelsReply +} + +export type EnterpriseAppDeployConsoleUpdateAccessChannelsResponse + = EnterpriseAppDeployConsoleUpdateAccessChannelsResponses[keyof EnterpriseAppDeployConsoleUpdateAccessChannelsResponses] + +export type EnterpriseAppDeployConsoleSearchAccessSubjectsData = { + body?: never + path: { + appInstanceId: string + } + query?: { + keyword?: string + subjectTypes?: Array + } + url: '/enterprise/app-instances/{appInstanceId}/access-subjects:search' +} + +export type EnterpriseAppDeployConsoleSearchAccessSubjectsResponses = { + 200: SearchAccessSubjectsReply +} + +export type EnterpriseAppDeployConsoleSearchAccessSubjectsResponse + = EnterpriseAppDeployConsoleSearchAccessSubjectsResponses[keyof EnterpriseAppDeployConsoleSearchAccessSubjectsResponses] + +export type EnterpriseAppDeployConsoleCreateDeveloperApiKeyData = { + body: CreateDeveloperApiKeyReq + path: { + appInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/api-keys' +} + +export type EnterpriseAppDeployConsoleCreateDeveloperApiKeyResponses = { + 200: CreateDeveloperApiKeyReply +} + +export type EnterpriseAppDeployConsoleCreateDeveloperApiKeyResponse + = EnterpriseAppDeployConsoleCreateDeveloperApiKeyResponses[keyof EnterpriseAppDeployConsoleCreateDeveloperApiKeyResponses] + +export type EnterpriseAppDeployConsoleDeleteDeveloperApiKeyData = { + body?: never + path: { + appInstanceId: string + apiKeyId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/api-keys/{apiKeyId}' +} + +export type EnterpriseAppDeployConsoleDeleteDeveloperApiKeyResponses = { + 200: DeleteDeveloperApiKeyReply +} + +export type EnterpriseAppDeployConsoleDeleteDeveloperApiKeyResponse + = EnterpriseAppDeployConsoleDeleteDeveloperApiKeyResponses[keyof EnterpriseAppDeployConsoleDeleteDeveloperApiKeyResponses] + +export type EnterpriseAppDeployConsoleListDeploymentBindingOptionsData = { + body?: never + path: { + appInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/deployment-binding-options' +} + +export type EnterpriseAppDeployConsoleListDeploymentBindingOptionsResponses = { + 200: ListDeploymentBindingOptionsReply +} + +export type EnterpriseAppDeployConsoleListDeploymentBindingOptionsResponse + = EnterpriseAppDeployConsoleListDeploymentBindingOptionsResponses[keyof EnterpriseAppDeployConsoleListDeploymentBindingOptionsResponses] + +export type EnterpriseAppDeployConsoleCreateDeploymentData = { + body: CreateDeploymentReq + path: { + appInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/deployments' +} + +export type EnterpriseAppDeployConsoleCreateDeploymentResponses = { + 200: CreateDeploymentReply +} + +export type EnterpriseAppDeployConsoleCreateDeploymentResponse + = EnterpriseAppDeployConsoleCreateDeploymentResponses[keyof EnterpriseAppDeployConsoleCreateDeploymentResponses] + +export type EnterpriseAppDeployConsoleUpdateDeveloperApiData = { + body: UpdateDeveloperApiReq + path: { + appInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/developer-api' +} + +export type EnterpriseAppDeployConsoleUpdateDeveloperApiResponses = { + 200: UpdateDeveloperApiReply +} + +export type EnterpriseAppDeployConsoleUpdateDeveloperApiResponse + = EnterpriseAppDeployConsoleUpdateDeveloperApiResponses[keyof EnterpriseAppDeployConsoleUpdateDeveloperApiResponses] + +export type EnterpriseAppDeployConsoleGetEnvironmentAccessPolicyData = { + body?: never + path: { + appInstanceId: string + environmentId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/environments/{environmentId}/access-policy' +} + +export type EnterpriseAppDeployConsoleGetEnvironmentAccessPolicyResponses = { + 200: GetEnvironmentAccessPolicyReply +} + +export type EnterpriseAppDeployConsoleGetEnvironmentAccessPolicyResponse + = EnterpriseAppDeployConsoleGetEnvironmentAccessPolicyResponses[keyof EnterpriseAppDeployConsoleGetEnvironmentAccessPolicyResponses] + +export type EnterpriseAppDeployConsoleUpdateEnvironmentAccessPolicyData = { + body: UpdateEnvironmentAccessPolicyReq + path: { + appInstanceId: string + environmentId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/environments/{environmentId}/access-policy' +} + +export type EnterpriseAppDeployConsoleUpdateEnvironmentAccessPolicyResponses = { + 200: UpdateEnvironmentAccessPolicyReply +} + +export type EnterpriseAppDeployConsoleUpdateEnvironmentAccessPolicyResponse + = EnterpriseAppDeployConsoleUpdateEnvironmentAccessPolicyResponses[keyof EnterpriseAppDeployConsoleUpdateEnvironmentAccessPolicyResponses] + +export type EnterpriseAppDeployConsoleGetAppInstanceOverviewData = { + body?: never + path: { + appInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/overview' +} + +export type EnterpriseAppDeployConsoleGetAppInstanceOverviewResponses = { + 200: GetAppInstanceOverviewReply +} + +export type EnterpriseAppDeployConsoleGetAppInstanceOverviewResponse + = EnterpriseAppDeployConsoleGetAppInstanceOverviewResponses[keyof EnterpriseAppDeployConsoleGetAppInstanceOverviewResponses] + +export type EnterpriseAppDeployConsoleListReleasesData = { + body?: never + path: { + appInstanceId: string + } + query?: { + pageNumber?: number + resultsPerPage?: number + } + url: '/enterprise/app-instances/{appInstanceId}/releases' +} + +export type EnterpriseAppDeployConsoleListReleasesResponses = { + 200: ListReleasesReply +} + +export type EnterpriseAppDeployConsoleListReleasesResponse + = EnterpriseAppDeployConsoleListReleasesResponses[keyof EnterpriseAppDeployConsoleListReleasesResponses] + +export type EnterpriseAppDeployConsoleCreateReleaseData = { + body: CreateReleaseReq + path: { + appInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/releases' +} + +export type EnterpriseAppDeployConsoleCreateReleaseResponses = { + 200: CreateReleaseReply +} + +export type EnterpriseAppDeployConsoleCreateReleaseResponse + = EnterpriseAppDeployConsoleCreateReleaseResponses[keyof EnterpriseAppDeployConsoleCreateReleaseResponses] + +export type EnterpriseAppDeployConsolePreviewReleaseData = { + body: PreviewReleaseReq + path: { + appInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/releases:preview' +} + +export type EnterpriseAppDeployConsolePreviewReleaseResponses = { + 200: PreviewReleaseReply +} + +export type EnterpriseAppDeployConsolePreviewReleaseResponse + = EnterpriseAppDeployConsolePreviewReleaseResponses[keyof EnterpriseAppDeployConsolePreviewReleaseResponses] + +export type EnterpriseAppDeployConsoleListRuntimeInstancesData = { + body?: never + path: { + appInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/runtime-instances' +} + +export type EnterpriseAppDeployConsoleListRuntimeInstancesResponses = { + 200: ListRuntimeInstancesReply +} + +export type EnterpriseAppDeployConsoleListRuntimeInstancesResponse + = EnterpriseAppDeployConsoleListRuntimeInstancesResponses[keyof EnterpriseAppDeployConsoleListRuntimeInstancesResponses] + +export type EnterpriseAppDeployConsoleCancelRuntimeDeploymentData = { + body: CancelRuntimeDeploymentReq + path: { + appInstanceId: string + runtimeInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/runtime-instances/{runtimeInstanceId}/deployment:cancel' +} + +export type EnterpriseAppDeployConsoleCancelRuntimeDeploymentResponses = { + 200: CancelRuntimeDeploymentReply +} + +export type EnterpriseAppDeployConsoleCancelRuntimeDeploymentResponse + = EnterpriseAppDeployConsoleCancelRuntimeDeploymentResponses[keyof EnterpriseAppDeployConsoleCancelRuntimeDeploymentResponses] + +export type EnterpriseAppDeployConsoleUndeployRuntimeInstanceData = { + body: UndeployRuntimeInstanceReq + path: { + appInstanceId: string + runtimeInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/runtime-instances/{runtimeInstanceId}:undeploy' +} + +export type EnterpriseAppDeployConsoleUndeployRuntimeInstanceResponses = { + 200: UndeployRuntimeInstanceReply +} + +export type EnterpriseAppDeployConsoleUndeployRuntimeInstanceResponse + = EnterpriseAppDeployConsoleUndeployRuntimeInstanceResponses[keyof EnterpriseAppDeployConsoleUndeployRuntimeInstanceResponses] + +export type EnterpriseAppDeployConsoleGetAppInstanceSettingsData = { + body?: never + path: { + appInstanceId: string + } + query?: never + url: '/enterprise/app-instances/{appInstanceId}/settings' +} + +export type EnterpriseAppDeployConsoleGetAppInstanceSettingsResponses = { + 200: GetAppInstanceSettingsReply +} + +export type EnterpriseAppDeployConsoleGetAppInstanceSettingsResponse + = EnterpriseAppDeployConsoleGetAppInstanceSettingsResponses[keyof EnterpriseAppDeployConsoleGetAppInstanceSettingsResponses] + +export type EnterpriseAppDeployConsoleListDeploymentEnvironmentOptionsData = { + body?: never + path?: never + query?: never + url: '/enterprise/deployment-environment-options' +} + +export type EnterpriseAppDeployConsoleListDeploymentEnvironmentOptionsResponses = { + 200: ListDeploymentEnvironmentOptionsReply +} + +export type EnterpriseAppDeployConsoleListDeploymentEnvironmentOptionsResponse + = EnterpriseAppDeployConsoleListDeploymentEnvironmentOptionsResponses[keyof EnterpriseAppDeployConsoleListDeploymentEnvironmentOptionsResponses] + +export type ConsoleSsoOAuth2LoginData = { + body?: never + path?: never + query?: never + url: '/enterprise/sso/oauth2/login' +} + +export type ConsoleSsoOAuth2LoginResponses = { + 200: OAuth2LoginReply +} + +export type ConsoleSsoOAuth2LoginResponse + = ConsoleSsoOAuth2LoginResponses[keyof ConsoleSsoOAuth2LoginResponses] + +export type ConsoleSsoOidcLoginData = { + body?: never + path?: never + query?: never + url: '/enterprise/sso/oidc/login' +} + +export type ConsoleSsoOidcLoginResponses = { + 200: OidcReply +} + +export type ConsoleSsoOidcLoginResponse + = ConsoleSsoOidcLoginResponses[keyof ConsoleSsoOidcLoginResponses] + +export type ConsoleSsoSamlLoginData = { + body?: never + path?: never + query?: never + url: '/enterprise/sso/saml/login' +} + +export type ConsoleSsoSamlLoginResponses = { + 200: SamlLoginReply +} + +export type ConsoleSsoSamlLoginResponse + = ConsoleSsoSamlLoginResponses[keyof ConsoleSsoSamlLoginResponses] + +export type WebAppAuthGetWebAppAccessModeData = { + body?: never + path?: never + query?: { + appId?: string + } + url: '/enterprise/webapp/app/access-mode' +} + +export type WebAppAuthGetWebAppAccessModeResponses = { + 200: GetWebAppAccessModeRes +} + +export type WebAppAuthGetWebAppAccessModeResponse + = WebAppAuthGetWebAppAccessModeResponses[keyof WebAppAuthGetWebAppAccessModeResponses] + +export type WebAppAuthUpdateWebAppWhitelistSubjectsData = { + body: UpdateWebAppWhitelistSubjectsReq + path?: never + query?: never + url: '/enterprise/webapp/app/access-mode' +} + +export type WebAppAuthUpdateWebAppWhitelistSubjectsResponses = { + 200: UpdateWebAppWhitelistSubjectsRes +} + +export type WebAppAuthUpdateWebAppWhitelistSubjectsResponse + = WebAppAuthUpdateWebAppWhitelistSubjectsResponses[keyof WebAppAuthUpdateWebAppWhitelistSubjectsResponses] + +export type WebAppAuthSearchForWhilteListCandidatesData = { + body?: never + path?: never + query?: { + keyword?: string + pageNumber?: number + resultsPerPage?: number + groupId?: string + } + url: '/enterprise/webapp/app/subject/search' +} + +export type WebAppAuthSearchForWhilteListCandidatesResponses = { + 200: SearchForWhilteListCandidatesRes +} + +export type WebAppAuthSearchForWhilteListCandidatesResponse + = WebAppAuthSearchForWhilteListCandidatesResponses[keyof WebAppAuthSearchForWhilteListCandidatesResponses] + +export type WebAppAuthGetWebAppWhitelistSubjectsData = { + body?: never + path?: never + query?: { + appId?: string + } + url: '/enterprise/webapp/app/subjects' +} + +export type WebAppAuthGetWebAppWhitelistSubjectsResponses = { + 200: GetWebAppWhitelistSubjectsRes +} + +export type WebAppAuthGetWebAppWhitelistSubjectsResponse + = WebAppAuthGetWebAppWhitelistSubjectsResponses[keyof WebAppAuthGetWebAppWhitelistSubjectsResponses] + +export type WebAppAuthGetGroupSubjectsData = { + body?: never + path?: never + query?: { + groupId?: string + } + url: '/enterprise/webapp/group/subjects' +} + +export type WebAppAuthGetGroupSubjectsResponses = { + 200: GetGroupSubjectsRes +} + +export type WebAppAuthGetGroupSubjectsResponse + = WebAppAuthGetGroupSubjectsResponses[keyof WebAppAuthGetGroupSubjectsResponses] + +export type WebAppAuthIsUserAllowedToAccessWebAppData = { + body?: never + path?: never + query?: { + appId?: string + } + url: '/enterprise/webapp/permission' +} + +export type WebAppAuthIsUserAllowedToAccessWebAppResponses = { + 200: IsUserAllowedToAccessWebAppRes +} + +export type WebAppAuthIsUserAllowedToAccessWebAppResponse + = WebAppAuthIsUserAllowedToAccessWebAppResponses[keyof WebAppAuthIsUserAllowedToAccessWebAppResponses] diff --git a/packages/contracts/generated/enterprise/zod.gen.ts b/packages/contracts/generated/enterprise/zod.gen.ts new file mode 100644 index 0000000000..1e7e3d44ae --- /dev/null +++ b/packages/contracts/generated/enterprise/zod.gen.ts @@ -0,0 +1,1952 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import * as z from 'zod' + +export const zAccessModeOption = z.object({ + mode: z.string().optional(), + label: z.string().optional(), + disabled: z.boolean().optional(), + selected: z.boolean().optional(), +}) + +export const zAccessStatus = z.object({ + accessChannelsEnabled: z.boolean().optional(), + webappUrl: z.string().optional(), + cliUrl: z.string().optional(), + developerApiEnabled: z.boolean().optional(), + apiKeyCount: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), +}) + +export const zAccessSubject = z.object({ + subjectId: z.string().optional(), + subjectType: z.string().optional(), +}) + +export const zAccessSubjectDisplay = z.object({ + id: z.string().optional(), + subjectType: z.string().optional(), + name: z.string().optional(), + avatarUrl: z.string().optional(), + memberCount: z.string().optional(), +}) + +export const zAccessPolicyDetail = z.object({ + accessMode: z.string().optional(), + subjects: z.array(zAccessSubjectDisplay).optional(), + options: z.array(zAccessModeOption).optional(), +}) + +/** + * Account represents a basic user account + */ +export const zAccount = z.object({ + id: z.string().optional(), + email: z.string().optional(), + name: z.string().optional(), +}) + +export const zAccountDetailGroup = z.object({ + id: z.string().optional(), + name: z.string().optional(), +}) + +/** + * AccountInWorkspace represents account's role in a workspace + */ +export const zAccountInWorkspace = z.object({ + workspaceId: z.string().optional(), + workspaceName: z.string().optional(), + role: z.string().optional(), +}) + +/** + * AccountDetail contains detailed account information + */ +export const zAccountDetail = z.object({ + account: zAccount.optional(), + status: z.string().optional(), + createdAt: z.iso.datetime().optional(), + lastActiveAt: z.iso.datetime().optional(), + workspaces: z.array(zAccountInWorkspace).optional(), + groups: z.array(zAccountDetailGroup).optional(), +}) + +export const zAckDeploymentReply = z.object({ + accepted: z.boolean().optional(), + newVersion: z.string().optional(), +}) + +export const zAppInstanceBasicInfo = z.object({ + id: z.string().optional(), + name: z.string().optional(), + description: z.string().optional(), + sourceAppId: z.string().optional(), + sourceAppName: z.string().optional(), + mode: z.string().optional(), + createdAt: z.iso.datetime().optional(), +}) + +export const zAppRunnerBootstrapAssignment = z.object({ + appId: z.string().optional(), + environmentId: z.string().optional(), + workflowId: z.string().optional(), + instanceId: z.string().optional(), + workspaceId: z.string().optional(), + instanceVersion: z.string().optional(), + bindingSnapshotVersion: z.string().optional(), + executionTokenVersion: z.string().optional(), + executionToken: z.string().optional(), + releaseId: z.string().optional(), +}) + +export const zAppRunnerBootstrapReply = z.object({ + runnerId: z.string().optional(), + assignmentRevision: z.string().optional(), + assignments: z.array(zAppRunnerBootstrapAssignment).optional(), +}) + +export const zAppRunnerRunnerInfo = z.object({ + hostname: z.string().optional(), +}) + +export const zAppRunnerBootstrapRequest = z.object({ + runner: zAppRunnerRunnerInfo.optional(), +}) + +export const zAppRunnerRuntimeArtifactReply = z.object({ + dslYaml: z.string().optional(), + bindingSnapshotVersion: z.string().optional(), + bindingSnapshot: z.record(z.string(), z.unknown()).optional(), +}) + +export const zAppRunnerRuntimeArtifactRequest = z.object({ + instanceId: z.string().optional(), + releaseId: z.string().optional(), + bindingSnapshotVersion: z.string().optional(), +}) + +export const zAppRunnerBatchRuntimeArtifactRequest = z.object({ + artifacts: z.array(zAppRunnerRuntimeArtifactRequest).optional(), +}) + +export const zAppRunnerRuntimeArtifactResult = z.object({ + instanceId: z.string().optional(), + releaseId: z.string().optional(), + artifact: zAppRunnerRuntimeArtifactReply.optional(), + errorCode: z.string().optional(), + errorMessage: z.string().optional(), +}) + +export const zAppRunnerBatchRuntimeArtifactReply = z.object({ + results: z.array(zAppRunnerRuntimeArtifactResult).optional(), +}) + +export const zAppRunnerTokenExchangeReply = z.object({ + accessToken: z.string().optional(), + expiresAt: z.iso.datetime().optional(), +}) + +export const zAppRunnerTokenExchangeRequest = z.object({ + joinToken: z.string().optional(), +}) + +/** + * BootstrapProgress is step-list-agnostic. Reconcilers emit step names as + * strings owned by each executor (e.g. "connectivity", "namespace"), so adding + * or removing steps does not break the API. + */ +export const zBootstrapProgress = z.object({ + currentStep: z.string().optional(), + completedSteps: z.array(z.string()).optional(), + attemptCount: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + lastAttemptAt: z.iso.datetime().optional(), + lastErrorCode: z.string().optional(), + lastErrorMessage: z.string().optional(), +}) + +export const zBrandingInfo = z.object({ + enabled: z.boolean().optional(), + applicationTitle: z.string().optional(), + loginPageLogo: z.string().optional(), + workspaceLogo: z.string().optional(), + favicon: z.string().optional(), +}) + +export const zCancelRuntimeDeploymentReply = z.object({ + status: z.string().optional(), +}) + +export const zCancelRuntimeDeploymentReq = z.object({ + appInstanceId: z.string().optional(), + runtimeInstanceId: z.string().optional(), +}) + +export const zCheckPasswordStatusReply = z.object({ + requirePasswordChange: z.boolean().optional(), + changeReason: z.int().optional(), + daysToExpire: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + message: z.string().optional(), +}) + +export const zClearDefaultWorkspaceReply = z.record(z.string(), z.unknown()) + +export const zCliAccess = z.object({ + url: z.string().optional(), +}) + +export const zConsoleEnvironment = z.object({ + id: z.string().optional(), + name: z.string().optional(), + runtime: z.string().optional(), + type: z.string().optional(), + status: z.string().optional(), +}) + +export const zConsoleRelease = z.object({ + id: z.string().optional(), + name: z.string().optional(), + shortCommitId: z.string().optional(), + createdAt: z.iso.datetime().optional(), +}) + +export const zConsoleUser = z.object({ + id: z.string().optional(), + name: z.string().optional(), +}) + +export const zCreateAppInstanceReply = z.object({ + appInstanceId: z.string().optional(), + initialRelease: zConsoleRelease.optional(), +}) + +export const zCreateAppInstanceReq = z.object({ + sourceAppId: z.string().optional(), + name: z.string().optional(), + description: z.string().optional(), +}) + +export const zCreateBearerTokenResponse = z.object({ + token: z.string().optional(), +}) + +export const zCreateDeploymentReply = z.object({ + runtimeInstanceId: z.string().optional(), + deploymentId: z.string().optional(), + status: z.string().optional(), +}) + +export const zCreateDeveloperApiKeyReq = z.object({ + appInstanceId: z.string().optional(), + environmentId: z.string().optional(), + name: z.string().optional(), +}) + +export const zCreateMemberReply = z.object({ + id: z.string().optional(), + password: z.string().optional(), +}) + +/** + * Create member messages + */ +export const zCreateMemberReq = z.object({ + name: z.string().optional(), + email: z.string().optional(), + status: z.string().optional(), +}) + +export const zCreateNewGroupsReqGroup = z.object({ + name: z.string().optional(), +}) + +export const zCreateNewGroupsReq = z.object({ + groups: z.array(zCreateNewGroupsReqGroup).optional(), +}) + +export const zCreateReleaseReply = z.object({ + release: zConsoleRelease.optional(), +}) + +export const zCreateReleaseReq = z.object({ + appInstanceId: z.string().optional(), + name: z.string().optional(), + description: z.string().optional(), +}) + +export const zCreateSecretKeyReply = z.object({ + id: z.string().optional(), + name: z.string().optional(), + secretKey: z.string().optional(), + createdAt: z.iso.datetime().optional(), + lastActive: z.iso.datetime().optional(), +}) + +export const zCreateSecretKeyReq = z.object({ + name: z.string().optional(), +}) + +export const zCreateUserReply = z.object({ + id: z.string().optional(), + password: z.string().optional(), +}) + +export const zCreateUserReq = z.object({ + name: z.string().optional(), + email: z.string().optional(), + status: z.string().optional(), +}) + +/** + * Create workspace messages + */ +export const zCreateWorkspaceReq = z.object({ + name: z.string().optional(), + email: z.string().optional(), + status: z.string().optional(), +}) + +export const zCurrentUserReply = z.object({ + id: z.string().optional(), + name: z.string().optional(), + email: z.string().optional(), + interfaceLanguage: z.string().optional(), + timezone: z.string().optional(), +}) + +export const zDashboardSsooidcLoginReply = z.object({ + url: z.string().optional(), + state: z.string().optional(), +}) + +export const zDashboardSsoOauth2LoginReply = z.object({ + url: z.string().optional(), + state: z.string().optional(), +}) + +/** + * Dashboard SSO Login messages + */ +export const zDashboardSsosamlLoginReply = z.object({ + url: z.string().optional(), +}) + +export const zDeleteAppInstanceReply = z.record(z.string(), z.unknown()) + +export const zDeleteDeveloperApiKeyReply = z.record(z.string(), z.unknown()) + +export const zDeleteEnvironmentReply = z.record(z.string(), z.unknown()) + +export const zDeleteGroupsRes = z.object({ + message: z.string().optional(), +}) + +export const zDeleteGuard = z.object({ + canDelete: z.boolean().optional(), + disabledReason: z.string().optional(), +}) + +export const zDeleteMemberReply = z.object({ + account: zAccount.optional(), +}) + +export const zDeleteSecretKeyReply = z.object({ + message: z.string().optional(), +}) + +export const zDeleteUserReply = z.object({ + account: zAccount.optional(), +}) + +export const zDeleteWorkspaceReply = z.record(z.string(), z.unknown()) + +export const zDeployedEnvironment = z.object({ + environmentId: z.string().optional(), + environmentName: z.string().optional(), +}) + +export const zDeploymentCredentialOption = z.object({ + credentialId: z.string().optional(), + displayName: z.string().optional(), + pluginId: z.string().optional(), + pluginName: z.string().optional(), + pluginVersion: z.string().optional(), +}) + +export const zDeploymentEnvVarOption = z.object({ + envVarId: z.string().optional(), + name: z.string().optional(), + valueType: z.string().optional(), + displayValue: z.string().optional(), +}) + +export const zDeploymentBindingOptionSlot = z.object({ + slot: z.string().optional(), + kind: z.string().optional(), + label: z.string().optional(), + required: z.boolean().optional(), + candidates: z.array(zDeploymentCredentialOption).optional(), + envVarCandidates: z.array(zDeploymentEnvVarOption).optional(), +}) + +export const zDeploymentEnvironmentOption = z.object({ + id: z.string().optional(), + name: z.string().optional(), + type: z.string().optional(), + backend: z.string().optional(), + status: z.string().optional(), + managedBy: z.string().optional(), + deployable: z.boolean().optional(), + disabledReason: z.string().optional(), +}) + +export const zDeploymentRuntimeBinding = z.object({ + slot: z.string().optional(), + credentialId: z.string().optional(), + envVarId: z.string().optional(), +}) + +export const zCreateDeploymentReq = z.object({ + appInstanceId: z.string().optional(), + environmentId: z.string().optional(), + releaseId: z.string().optional(), + bindings: z.array(zDeploymentRuntimeBinding).optional(), +}) + +export const zDeploymentStatusRow = z.object({ + environment: zConsoleEnvironment.optional(), + release: zConsoleRelease.optional(), + status: z.string().optional(), +}) + +export const zDeveloperApiKeyRow = z.object({ + id: z.string().optional(), + name: z.string().optional(), + environment: zConsoleEnvironment.optional(), + maskedKey: z.string().optional(), +}) + +export const zCreateDeveloperApiKeyReply = z.object({ + apiKey: zDeveloperApiKeyRow.optional(), + token: z.string().optional(), +}) + +export const zDeveloperApiAccess = z.object({ + enabled: z.boolean().optional(), + apiKeys: z.array(zDeveloperApiKeyRow).optional(), +}) + +/** + * System user setting messages + */ +export const zEnterpriseSystemUserSettingReply = z.object({ + ssoEnforcedForSignin: z.boolean().optional(), + ssoEnforcedForSigninProtocol: z.string().optional(), + enableEmailPasswordLogin: z.boolean().optional(), +}) + +export const zEnvironment = z.object({ + id: z.string().optional(), + name: z.string().optional(), + description: z.string().optional(), + mode: z.int().optional(), + namespace: z.string().optional(), + apiServer: z.string().optional(), + status: z.int().optional(), + statusMessage: z.string().optional(), + bootstrapProgress: zBootstrapProgress.optional(), + managedBy: z.string().optional(), + createdAt: z.iso.datetime().optional(), + updatedAt: z.iso.datetime().optional(), + backend: z.int().optional(), + host: z.string().optional(), +}) + +export const zCreateEnvironmentReply = z.object({ + environment: zEnvironment.optional(), +}) + +export const zEnvironmentAccessRow = z.object({ + environment: zConsoleEnvironment.optional(), + currentRelease: zConsoleRelease.optional(), + accessMode: z.string().optional(), + accessModeLabel: z.string().optional(), + hint: z.string().optional(), +}) + +export const zEnvironmentFilter = z.object({ + id: z.string().optional(), + name: z.string().optional(), + kind: z.string().optional(), +}) + +export const zGetAppInstanceOverviewReply = z.object({ + instance: zAppInstanceBasicInfo.optional(), + deployments: z.array(zDeploymentStatusRow).optional(), + access: zAccessStatus.optional(), +}) + +export const zGetAppInstanceSettingsReply = z.object({ + name: z.string().optional(), + description: z.string().optional(), + deleteGuard: zDeleteGuard.optional(), +}) + +export const zGetBearerTokenResponse = z.object({ + maskedToken: z.string().optional(), +}) + +export const zGetClusterInfoReply = z.object({ + mode: z.string().optional(), + clusterId: z.string().optional(), + verifyMode: z.string().optional(), +}) + +export const zGetEnvironmentAccessPolicyReply = z.object({ + policy: zAccessPolicyDetail.optional(), +}) + +export const zGetEnvironmentReply = z.object({ + environment: zEnvironment.optional(), +}) + +export const zGetInstanceReply = z.object({ + instanceId: z.string().optional(), + status: z.string().optional(), + desiredReleaseId: z.string().optional(), + observedReleaseId: z.string().optional(), + currentDeploymentId: z.string().optional(), + version: z.string().optional(), +}) + +export const zGetLicenseStatusReply = z.object({ + status: z.string().optional(), +}) + +export const zGetMfaInfoReply = z.object({ + userEnabled: z.boolean().optional(), + userSetup: z.boolean().optional(), + globalEnabled: z.boolean().optional(), +}) + +export const zGetMemberReply = z.object({ + account: zAccountDetail.optional(), +}) + +export const zGetUserReply = z.object({ + account: zAccountDetail.optional(), +}) + +export const zGetWebAppAccessModeRes = z.object({ + accessMode: z.string().optional(), +}) + +export const zGetWebAppAuthInfoRes = z.object({ + allowSso: z.boolean().optional(), + allowEmailCodeLogin: z.boolean().optional(), + allowEmailPasswordLogin: z.boolean().optional(), +}) + +export const zGetWebAppWhitelistSubjectsResMember = z.object({ + id: z.string().optional(), + name: z.string().optional(), + email: z.string().optional(), + avatar: z.string().optional(), +}) + +export const zHealthzReply = z.object({ + message: z.string().optional(), + status: z.string().optional(), +}) + +export const zHostEnvironmentConfig = z.object({ + machineId: z.string().optional(), + joinTokenHash: z.string().optional(), +}) + +export const zInnerBatchGetWebAppAccessModesByIdReq = z.object({ + appIds: z.array(z.string()).optional(), +}) + +export const zInnerBatchGetWebAppAccessModesByIdRes = z.object({ + accessModes: z.record(z.string(), z.string()).optional(), +}) + +export const zInnerBatchIsUserAllowedToAccessWebAppReq = z.object({ + userId: z.string().optional(), + appIds: z.array(z.string()).optional(), +}) + +export const zInnerBatchIsUserAllowedToAccessWebAppRes = z.object({ + permissions: z.record(z.string(), z.boolean()).optional(), +}) + +export const zInnerCheckAppDeployAccessReply = z.object({ + allowed: z.boolean().optional(), + matchedPolicyId: z.string().optional(), + matchedScopeType: z.string().optional(), + reason: z.string().optional(), + cacheTtlSeconds: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), +}) + +export const zInnerCheckAppDeployAccessReq = z.object({ + appInstanceId: z.string().optional(), + environmentId: z.string().optional(), + principalType: z.string().optional(), + principalId: z.string().optional(), +}) + +export const zInnerCleanAppRes = z.object({ + message: z.string().optional(), +}) + +export const zInnerGetTokenRouteReply = z.object({ + environmentId: z.string().optional(), + namespace: z.string().optional(), + serviceName: z.string().optional(), + servicePort: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + environmentStatus: z.string().optional(), + appId: z.string().optional(), + tenantId: z.string().optional(), + instanceId: z.string().optional(), + observedReleaseId: z.string().optional(), + instanceStatus: z.string().optional(), +}) + +export const zInnerGetTokenRouteReq = z.object({ + token: z.string().optional(), +}) + +export const zInnerGetWebAppAccessModeByCodeRes = z.object({ + accessMode: z.string().optional(), +}) + +export const zInnerGetWebAppAccessModeByIdRes = z.object({ + accessMode: z.string().optional(), +}) + +export const zInnerIsUserAllowedToAccessWebAppRes = z.object({ + result: z.boolean().optional(), +}) + +export const zInnerTryAddAccountToDefaultWorkspaceReply = z.object({ + workspaceId: z.string().optional(), + joined: z.boolean().optional(), + message: z.string().optional(), +}) + +/** + * Inner API messages + */ +export const zInnerTryAddAccountToDefaultWorkspaceReq = z.object({ + accountId: z.string().optional(), +}) + +export const zIsUserAllowedToAccessWebAppRes = z.object({ + result: z.boolean().optional(), +}) + +export const zJoinWorkspaceReply = z.object({ + message: z.string().optional(), +}) + +/** + * Join workspace messages + */ +export const zJoinWorkspaceReq = z.object({ + id: z.string().optional(), + email: z.string().optional(), + role: z.string().optional(), +}) + +export const zK8sEnvironmentConfig = z.object({ + namespace: z.string().optional(), + apiServer: z.string().optional(), + caBundle: z.string().optional(), + bearerToken: z.string().optional(), +}) + +/** + * Field-level validation only; target (api_server) and RBAC validation happen + * in the bootstrap reconciler. + */ +export const zCreateEnvironmentReq = z.object({ + name: z.string().optional(), + description: z.string().optional(), + mode: z.int().optional(), + backend: z.int().optional(), + k8s: zK8sEnvironmentConfig.optional(), + host: zHostEnvironmentConfig.optional(), +}) + +export const zLastError = z.object({ + phase: z.string().optional(), + code: z.string().optional(), + message: z.string().optional(), + releaseId: z.string().optional(), +}) + +export const zAckDeploymentReq = z.object({ + deploymentId: z.string().optional(), + instanceId: z.string().optional(), + expectedVersion: z.string().optional(), + status: z.string().optional(), + observedReleaseId: z.string().optional(), + lastError: zLastError.optional(), +}) + +export const zListDeploymentBindingOptionsReply = z.object({ + slots: z.array(zDeploymentBindingOptionSlot).optional(), +}) + +export const zListDeploymentEnvironmentOptionsReply = z.object({ + environments: z.array(zDeploymentEnvironmentOption).optional(), +}) + +export const zLoginTypesReply = z.object({ + enabledEmailCodeLogin: z.boolean().optional(), + enableEmailPasswordLogin: z.boolean().optional(), + isAllowRegister: z.boolean().optional(), + isAllowCreateWorkspace: z.boolean().optional(), +}) + +export const zLoginTypesReq = z.object({ + enabledEmailCodeLogin: z.boolean().optional(), + enableEmailPasswordLogin: z.boolean().optional(), + isAllowRegister: z.boolean().optional(), + isAllowCreateWorkspace: z.boolean().optional(), +}) + +export const zMfaBackupCodesRes = z.object({ + codes: z.array(z.string()).optional(), + validCounts: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + createdAt: z.iso.datetime().optional(), +}) + +export const zMfaDeleteBackupCodesRes = z.object({ + message: z.string().optional(), +}) + +export const zMfaDeleteRes = z.object({ + token: z.string().optional(), +}) + +export const zMfaDownloadBackupCodesSummaryRes = z.object({ + content: z.string().optional(), +}) + +export const zMfaEnrollReq = z.object({ + code: z.string().optional(), +}) + +export const zMfaEnrollRes = z.object({ + token: z.string().optional(), +}) + +export const zMfaGetEnrollInfoRes = z.object({ + qrCode: z.string().optional(), + secret: z.string().optional(), +}) + +export const zMfaModifyRes = z.object({ + message: z.string().optional(), +}) + +export const zOAuth2Config = z.object({ + clientId: z.string().optional(), + clientSecret: z.string().optional(), + authUrl: z.string().optional(), + tokenUrl: z.string().optional(), + userinfoUrl: z.string().optional(), + scopes: z.string().optional(), + enablePkce: z.boolean().optional(), +}) + +export const zOAuth2LoginReply = z.object({ + url: z.string().optional(), + state: z.string().optional(), +}) + +export const zOidcConfig = z.object({ + issuerUrl: z.string().optional(), + clientId: z.string().optional(), + clientSecret: z.string().optional(), + enablePkce: z.boolean().optional(), +}) + +export const zOidcReply = z.object({ + url: z.string().optional(), + state: z.string().optional(), +}) + +export const zOtelExporterEndpoint = z.object({ + endpoint: z.string().optional(), + compression: z.string().optional(), + protocol: z.int().optional(), + timeout: z + .string() + .regex(/^-?(?:0|[1-9]\d{0,11})(?:\.\d{1,9})?s$/) + .optional(), + headers: z.record(z.string(), z.string()).optional(), + tlsCaPem: z.string().optional(), + tlsInsecure: z.boolean().optional(), + tlsClientCertPem: z.string().optional(), + tlsClientKeyPem: z.string().optional(), + enabled: z.boolean().optional(), + tlsInsecureSkipVerify: z.boolean().optional(), +}) + +export const zEndpointReply = z.object({ + mode: z.int().optional(), + metricsEndpoint: zOtelExporterEndpoint.optional(), + tracesEndpoint: zOtelExporterEndpoint.optional(), +}) + +export const zOtelExporterStatusReply = z.object({ + connectedAt: z.iso.datetime().optional(), + bytesPushed: z.string().optional(), + itemsInQueue: z.string().optional(), + logs: z.string().optional(), + status: z.int().optional(), +}) + +export const zPasswordPolicyConfig = z.object({ + minLength: z + .int() + .min(0, { error: 'Invalid value: Expected uint32 to be >= 0' }) + .max(4294967295, { error: 'Invalid value: Expected uint32 to be <= 4294967295' }) + .optional(), + requireDigit: z.boolean().optional(), + requireLowercase: z.boolean().optional(), + requireUppercase: z.boolean().optional(), + requireSpecial: z.boolean().optional(), + forbidRepeated: z.boolean().optional(), + forbidSequential: z.boolean().optional(), + expiryEnabled: z.boolean().optional(), + expiryDays: z + .int() + .min(0, { error: 'Invalid value: Expected uint32 to be >= 0' }) + .max(4294967295, { error: 'Invalid value: Expected uint32 to be <= 4294967295' }) + .optional(), +}) + +export const zPasswordStrengthReply = z.object({ + level: z.int().optional(), +}) + +export const zPasswordStrengthReq = z.object({ + password: z.string().optional(), +}) + +export const zPluginInstallationPermissionInfo = z.object({ + pluginInstallationScope: z.string().optional(), + restrictToMarketplaceOnly: z.boolean().optional(), +}) + +export const zPluginInstallationSettingsReply = z.object({ + pluginInstallationScope: z.int().optional(), + restrictToMarketplaceOnly: z.boolean().optional(), +}) + +export const zPreviewReleaseReq = z.object({ + appInstanceId: z.string().optional(), + releaseId: z.string().optional(), +}) + +export const zReleaseRow = z.object({ + id: z.string().optional(), + name: z.string().optional(), + createdAt: z.iso.datetime().optional(), + createdBy: zConsoleUser.optional(), + deployedTo: z.array(zDeployedEnvironment).optional(), +}) + +export const zReleaseRuntimeBinding = z.object({ + kind: z.string().optional(), + label: z.string().optional(), + displayValue: z.string().optional(), + valueType: z.string().optional(), +}) + +export const zPreviewReleaseReply = z.object({ + release: zConsoleRelease.optional(), + bindings: z.array(zReleaseRuntimeBinding).optional(), +}) + +export const zResetMemberPasswordReply = z.object({ + id: z.string().optional(), + password: z.string().optional(), +}) + +/** + * Reset member password messages + */ +export const zResetMemberPasswordReq = z.object({ + id: z.string().optional(), +}) + +export const zResetPasswordReply = z.object({ + message: z.string().optional(), +}) + +/** + * Password reset messages + */ +export const zResetPasswordReq = z.object({ + currentPassword: z.string().optional(), + newPassword: z.string().optional(), + confirmPassword: z.string().optional(), +}) + +export const zResetUserPasswordReply = z.object({ + id: z.string().optional(), + password: z.string().optional(), +}) + +export const zResetUserPasswordReq = z.object({ + id: z.string().optional(), +}) + +export const zResolveCredentialsReq = z.object({ + instanceId: z.string().optional(), + deploymentId: z.string().optional(), + slots: z.array(z.string()).optional(), +}) + +/** + * Exactly one of credential_id / env_var_id is populated; model/plugin slots + * carry credential_id (pool A), env_var slots carry env_var_id (pool B). + * See design §4.1. + */ +export const zResolvedCredential = z.object({ + slot: z.string().optional(), + credentialId: z.string().optional(), + envVarId: z.string().optional(), + value: z.string().optional(), +}) + +export const zResolveCredentialsReply = z.object({ + resolved: z.array(zResolvedCredential).optional(), +}) + +/** + * ResourceQuota represents usage quota for a resource + */ +export const zResourceQuota = z.object({ + used: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + limit: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + enabled: z.boolean().optional(), +}) + +export const zLicenseStatus = z.object({ + status: z.string().optional(), + expiredAt: z.string().optional(), + workspaces: zResourceQuota.optional(), +}) + +export const zLimitFields = z.object({ + workspaceMembers: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + workspaces: zResourceQuota.optional(), +}) + +/** + * License information + */ +export const zLicenseInfo = z.object({ + uuid: z.string().optional(), + expiredAt: z.iso.datetime().optional(), + clusterId: z.string().optional(), + product: z.string().optional(), + limits: zLimitFields.optional(), +}) + +/** + * License RPC messages + */ +export const zGetLicenseReply = z.object({ + license: zLicenseInfo.optional(), +}) + +export const zRetryEnvironmentReply = z.object({ + environment: zEnvironment.optional(), +}) + +export const zRetryEnvironmentReq = z.object({ + id: z.string().optional(), +}) + +export const zRuntimeEndpoints = z.object({ + run: z.string().optional(), + health: z.string().optional(), +}) + +export const zRuntimeInstanceDetail = z.object({ + deploymentName: z.string().optional(), + replicas: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + runtimeMode: z.string().optional(), + runtimeNote: z.string().optional(), + endpoints: zRuntimeEndpoints.optional(), + bindings: z.array(zReleaseRuntimeBinding).optional(), +}) + +export const zRuntimeInstanceRow = z.object({ + id: z.string().optional(), + environment: zConsoleEnvironment.optional(), + status: z.string().optional(), + currentRelease: zConsoleRelease.optional(), + detail: zRuntimeInstanceDetail.optional(), +}) + +export const zListRuntimeInstancesReply = z.object({ + data: z.array(zRuntimeInstanceRow).optional(), +}) + +/** + * SSO Configuration messages + */ +export const zSamlConfig = z.object({ + idpSsoUrl: z.string().optional(), + certificate: z.string().optional(), +}) + +export const zSamlLoginReply = z.object({ + url: z.string().optional(), +}) + +export const zSsoIdPProvider = z.object({ + protocol: z.string().optional(), + provider: z.string().optional(), + samlConfig: zSamlConfig.optional(), + oidcConfig: zOidcConfig.optional(), + oauth2Config: zOAuth2Config.optional(), +}) + +export const zSsoSettings = z.object({ + ssoEnforced: z.boolean().optional(), + sessionTimeout: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + ssoIdpProvider: zSsoIdPProvider.optional(), +}) + +export const zAuthSettingsReply = z.object({ + userSsoSettings: zSsoSettings.optional(), + webSsoSettings: zSsoSettings.optional(), + dashboardSsoSettings: zSsoSettings.optional(), + userSsoSamlAcsUrl: z.string().optional(), + userSsoOidcCallbackUrl: z.string().optional(), + userSsoOauth2CallbackUrl: z.string().optional(), + webSsoSamlAcsUrl: z.string().optional(), + webSsoOidcCallbackUrl: z.string().optional(), + webSsoOauth2CallbackUrl: z.string().optional(), + webSsoMembersSamlAcsUrl: z.string().optional(), + webSsoMembersOidcCallbackUrl: z.string().optional(), + webSsoMembersOauth2CallbackUrl: z.string().optional(), + dashboardSsoSamlAcsUrl: z.string().optional(), + dashboardSsoOidcCallbackUrl: z.string().optional(), + dashboardSsoOauth2CallbackUrl: z.string().optional(), +}) + +export const zAuthSettingsReq = z.object({ + ssoType: z.string().optional(), + ssoSettings: zSsoSettings.optional(), +}) + +export const zSsoSettingsReply = z.object({ + enabled: z.boolean().optional(), +}) + +export const zScimSettings = z.object({ + enabled: z.boolean().optional(), + lastSyncTime: z.iso.datetime().optional(), +}) + +export const zSearchAccessSubjectsReply = z.object({ + data: z.array(zAccessSubjectDisplay).optional(), +}) + +export const zSecretKey = z.object({ + id: z.string().optional(), + name: z.string().optional(), + secretKeyMasked: z.string().optional(), + createdAt: z.iso.datetime().optional(), + lastActive: z.iso.datetime().optional(), +}) + +export const zSetDefaultWorkspaceReply = z.object({ + workspaceId: z.string().optional(), +}) + +export const zSetDefaultWorkspaceReq = z.object({ + id: z.string().optional(), +}) + +export const zStatusCount = z.object({ + status: z.string().optional(), + count: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), +}) + +export const zAppInstanceCard = z.object({ + id: z.string().optional(), + name: z.string().optional(), + icon: z.string().optional(), + mode: z.string().optional(), + sourceAppName: z.string().optional(), + statuses: z.array(zStatusCount).optional(), + lastDeployedAt: z.iso.datetime().optional(), +}) + +export const zSubjectAccountData = z.object({ + id: z.string().optional(), + name: z.string().optional(), + email: z.string().optional(), + avatar: z.string().optional(), +}) + +export const zSubjectGroupData = z.object({ + id: z.string().optional(), + name: z.string().optional(), + groupSize: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), +}) + +export const zCreateNewGroupsRes = z.object({ + groups: z.array(zSubjectGroupData).optional(), +}) + +export const zGetGroupsRes = z.object({ + groups: z.array(zSubjectGroupData).optional(), +}) + +export const zGetJoinedGroupsRes = z.object({ + groups: z.array(zSubjectGroupData).optional(), +}) + +export const zGetWebAppWhitelistSubjectsRes = z.object({ + groups: z.array(zSubjectGroupData).optional(), + members: z.array(zGetWebAppWhitelistSubjectsResMember).optional(), +}) + +/** + * Subject represents a subject (user or group) in access control + */ +export const zSubject = z.object({ + subjectId: z.string().optional(), + subjectType: z.string().optional(), + accountData: zSubjectAccountData.optional(), + groupData: zSubjectGroupData.optional(), +}) + +export const zGetGroupSubjectsRes = z.object({ + subjects: z.array(zSubject).optional(), +}) + +export const zSearchForWhilteListCandidatesRes = z.object({ + subjects: z.array(zSubject).optional(), + currPage: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + hasMore: z.boolean().optional(), +}) + +export const zSystemUserSettingReply = z.object({ + isAllowRegister: z.boolean().optional(), + enableEmailPasswordLogin: z.boolean().optional(), +}) + +export const zSystemUserSettingReq = z.object({ + isAllowRegister: z.boolean().optional(), + enableEmailPasswordLogin: z.boolean().optional(), +}) + +export const zTestConnectionReply = z.object({ + success: z.boolean().optional(), + error: z.string().optional(), +}) + +export const zTestEnvironmentConnectionReply = z.object({ + ok: z.boolean().optional(), + reachableServerVersion: z.string().optional(), + namespaceExists: z.boolean().optional(), + missingPermissions: z.array(z.string()).optional(), + error: z.string().optional(), + probedAt: z.iso.datetime().optional(), +}) + +export const zTestEnvironmentConnectionReq = z.object({ + id: z.string().optional(), +}) + +export const zToggleEndpointRequest = z.object({ + enabled: z.boolean().optional(), +}) + +export const zUndeployRuntimeInstanceReply = z.object({ + deploymentId: z.string().optional(), + status: z.string().optional(), +}) + +export const zUndeployRuntimeInstanceReq = z.object({ + appInstanceId: z.string().optional(), + runtimeInstanceId: z.string().optional(), +}) + +export const zUpdateAccessChannelsReq = z.object({ + appInstanceId: z.string().optional(), + enabled: z.boolean().optional(), +}) + +export const zUpdateAccessModeReq = z.object({ + appId: z.string().optional(), + accessMode: z.string().optional(), +}) + +export const zUpdateAccessModeRes = z.object({ + message: z.string().optional(), +}) + +export const zUpdateAppInstanceReply = z.object({ + appInstanceId: z.string().optional(), +}) + +export const zUpdateAppInstanceReq = z.object({ + appInstanceId: z.string().optional(), + name: z.string().optional(), + description: z.string().optional(), +}) + +export const zUpdateBrandingInfoReq = z.object({ + enabled: z.boolean().optional(), + applicationTitle: z.string().optional(), + loginPageLogo: z.string().optional(), + workspaceLogo: z.string().optional(), + favicon: z.string().optional(), +}) + +export const zUpdateDeveloperApiReply = z.object({ + developerApi: zDeveloperApiAccess.optional(), +}) + +export const zUpdateDeveloperApiReq = z.object({ + appInstanceId: z.string().optional(), + enabled: z.boolean().optional(), +}) + +export const zUpdateEnvironmentAccessPolicyReply = z.object({ + permission: zEnvironmentAccessRow.optional(), +}) + +export const zUpdateEnvironmentAccessPolicyReq = z.object({ + appInstanceId: z.string().optional(), + environmentId: z.string().optional(), + accessMode: z.string().optional(), + subjects: z.array(zAccessSubject).optional(), +}) + +export const zUpdateEnvironmentReply = z.object({ + environment: zEnvironment.optional(), +}) + +export const zUpdateEnvironmentReq = z.object({ + id: z.string().optional(), + name: z.string().optional(), + description: z.string().optional(), +}) + +export const zUpdateGroupSubjectsReq = z.object({ + groupId: z.string().optional(), + subjects: z.array(zSubject).optional(), +}) + +export const zUpdateGroupSubjectsRes = z.object({ + message: z.string().optional(), +}) + +export const zUpdateGroupsReqGroup = z.object({ + id: z.string().optional(), + name: z.string().optional(), +}) + +export const zUpdateGroupsReq = z.object({ + groups: z.array(zUpdateGroupsReqGroup).optional(), +}) + +export const zUpdateGroupsRes = z.object({ + groups: z.array(zSubjectGroupData).optional(), +}) + +export const zUpdateJoinedGroupsReq = z.object({ + accountId: z.string().optional(), + groupIds: z.array(z.string()).optional(), +}) + +export const zUpdateJoinedGroupsRes = z.object({ + message: z.string().optional(), +}) + +export const zUpdateLicenseReply = z.object({ + message: z.string().optional(), +}) + +export const zUpdateLicenseReq = z.object({ + licenseId: z.string().optional(), +}) + +export const zUpdateMfaStatusReq = z.object({ + enabled: z.boolean().optional(), +}) + +export const zUpdateMfaStatusRes = z.object({ + message: z.string().optional(), +}) + +export const zUpdateMemberReply = z.object({ + account: zAccount.optional(), +}) + +/** + * Update member messages + */ +export const zUpdateMemberReq = z.object({ + id: z.string().optional(), + name: z.string().optional(), + email: z.string().optional(), + status: z.string().optional(), +}) + +export const zUpdateMembersInGroupsReq = z.object({ + groupId: z.string().optional(), + accountIds: z.array(z.string()).optional(), +}) + +export const zUpdateMembersInGroupsRes = z.object({ + message: z.string().optional(), +}) + +export const zUpdateOfflineLicenseReply = z.object({ + message: z.string().optional(), +}) + +export const zUpdateOfflineLicenseReq = z.object({ + offlineCode: z.string().optional(), +}) + +export const zUpdatePluginInstallationSettingsRequest = z.object({ + pluginInstallationScope: z.int().optional(), + restrictToMarketplaceOnly: z.boolean().optional(), +}) + +export const zUpdateUserReply = z.object({ + account: zAccountDetail.optional(), +}) + +export const zUpdateUserReq = z.object({ + id: z.string().optional(), + name: z.string().optional(), + email: z.string().optional(), + status: z.string().optional(), +}) + +/** + * Web app auth info messages + */ +export const zUpdateWebAppAuthInfoReq = z.object({ + allowSso: z.boolean().optional(), + allowEmailCodeLogin: z.boolean().optional(), + allowEmailPasswordLogin: z.boolean().optional(), +}) + +export const zUpdateWebAppAuthInfoRes = z.object({ + message: z.string().optional(), +}) + +export const zUpdateWebAppWhitelistSubjectsReq = z.object({ + appId: z.string().optional(), + subjects: z.array(zSubject).optional(), + accessMode: z.string().optional(), +}) + +export const zUpdateWebAppWhitelistSubjectsRes = z.object({ + message: z.string().optional(), +}) + +/** + * Update workspace messages + */ +export const zUpdateWorkspaceReq = z.object({ + id: z.string().optional(), + name: z.string().optional(), + email: z.string().optional(), + status: z.string().optional(), +}) + +export const zWebAppAccessRow = z.object({ + environment: zConsoleEnvironment.optional(), + url: z.string().optional(), +}) + +export const zAccessChannels = z.object({ + enabled: z.boolean().optional(), + webappRows: z.array(zWebAppAccessRow).optional(), + cli: zCliAccess.optional(), +}) + +export const zGetAppInstanceAccessReply = z.object({ + permissions: z.array(zEnvironmentAccessRow).optional(), + accessChannels: zAccessChannels.optional(), + developerApi: zDeveloperApiAccess.optional(), +}) + +export const zUpdateAccessChannelsReply = z.object({ + accessChannels: zAccessChannels.optional(), +}) + +export const zWebAppAuthInfo = z.object({ + allowSso: z.boolean().optional(), + allowEmailCodeLogin: z.boolean().optional(), + allowEmailPasswordLogin: z.boolean().optional(), +}) + +/** + * Info configuration messages + */ +export const zInfoConfigReply = z.object({ + SSOEnforcedForSignin: z.boolean().optional(), + SSOEnforcedForSigninProtocol: z.string().optional(), + SSOEnforcedForWeb: z.boolean().optional(), + SSOEnforcedForWebProtocol: z.string().optional(), + EnableEmailCodeLogin: z.boolean().optional(), + EnableEmailPasswordLogin: z.boolean().optional(), + IsAllowRegister: z.boolean().optional(), + IsAllowCreateWorkspace: z.boolean().optional(), + License: zLicenseStatus.optional(), + Branding: zBrandingInfo.optional(), + WebAppAuth: zWebAppAuthInfo.optional(), + PluginInstallationPermission: zPluginInstallationPermissionInfo.optional(), +}) + +export const zWebOAuth2LoginReply = z.object({ + url: z.string().optional(), + state: z.string().optional(), +}) + +export const zWebOidcLoginReply = z.object({ + url: z.string().optional(), +}) + +export const zWebSamlLoginReply = z.object({ + url: z.string().optional(), +}) + +/** + * Workspace represents a workspace entity + */ +export const zWorkspace = z.object({ + id: z.string().optional(), + name: z.string().optional(), + status: z.string().optional(), + createdAt: z.iso.datetime().optional(), + owner: zAccount.optional(), +}) + +export const zCreateWorkspaceReply = z.object({ + workspace: zWorkspace.optional(), +}) + +export const zGetDefaultWorkspaceReply = z.object({ + workspaceId: z.string().optional(), + workspace: zWorkspace.optional(), +}) + +export const zGetWorkspaceReply = z.object({ + workspace: zWorkspace.optional(), +}) + +export const zUpdateWorkspaceReply = z.object({ + workspace: zWorkspace.optional(), +}) + +export const zWorkspaceInfoReply = z.object({ + WorkspaceMembers: zResourceQuota.optional(), +}) + +/** + * Workspace permission + */ +export const zWorkspacePermission = z.object({ + workspaceId: z.string().optional(), + allowMemberInvite: z.boolean().optional(), + allowOwnerTransfer: z.boolean().optional(), +}) + +export const zGetWorkspacePermissionReply = z.object({ + permission: zWorkspacePermission.optional(), +}) + +export const zUpdateWorkspacePermissionReply = z.object({ + message: z.string().optional(), + permission: zWorkspacePermission.optional(), +}) + +/** + * Update workspace permission messages + */ +export const zUpdateWorkspacePermissionReq = z.object({ + id: z.string().optional(), + permission: zWorkspacePermission.optional(), +}) + +/** + * Pagination : Just for pagination by page + */ +export const zPagination = z.object({ + totalCount: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + perPage: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + currentPage: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + totalPages: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), +}) + +export const zListAppInstancesReply = z.object({ + filters: z.array(zEnvironmentFilter).optional(), + data: z.array(zAppInstanceCard).optional(), + pagination: zPagination.optional(), +}) + +export const zListEnvironmentsReply = z.object({ + data: z.array(zEnvironment).optional(), + pagination: zPagination.optional(), +}) + +export const zListMembersReply = z.object({ + data: z.array(zAccountDetail).optional(), + pagination: zPagination.optional(), +}) + +export const zListReleasesReply = z.object({ + data: z.array(zReleaseRow).optional(), + pagination: zPagination.optional(), +}) + +export const zListSecretKeysReply = z.object({ + data: z.array(zSecretKey).optional(), + pagination: zPagination.optional(), +}) + +export const zListUsersReply = z.object({ + data: z.array(zAccountDetail).optional(), + pagination: zPagination.optional(), +}) + +export const zListWorkspacesReply = z.object({ + data: z.array(zWorkspace).optional(), + pagination: zPagination.optional(), +}) + +export const zEnterpriseAppDeployConsoleListAppInstancesQuery = z.object({ + environmentId: z.string().optional(), + notDeployed: z.boolean().optional(), + query: z.string().optional(), + pageNumber: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + resultsPerPage: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleListAppInstancesResponse = zListAppInstancesReply + +export const zEnterpriseAppDeployConsoleCreateAppInstanceBody = zCreateAppInstanceReq + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleCreateAppInstanceResponse = zCreateAppInstanceReply + +export const zEnterpriseAppDeployConsoleDeleteAppInstancePath = z.object({ + appInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleDeleteAppInstanceResponse = zDeleteAppInstanceReply + +export const zEnterpriseAppDeployConsoleUpdateAppInstanceBody = zUpdateAppInstanceReq + +export const zEnterpriseAppDeployConsoleUpdateAppInstancePath = z.object({ + appInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleUpdateAppInstanceResponse = zUpdateAppInstanceReply + +export const zEnterpriseAppDeployConsoleGetAppInstanceAccessPath = z.object({ + appInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleGetAppInstanceAccessResponse = zGetAppInstanceAccessReply + +export const zEnterpriseAppDeployConsoleUpdateAccessChannelsBody = zUpdateAccessChannelsReq + +export const zEnterpriseAppDeployConsoleUpdateAccessChannelsPath = z.object({ + appInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleUpdateAccessChannelsResponse = zUpdateAccessChannelsReply + +export const zEnterpriseAppDeployConsoleSearchAccessSubjectsPath = z.object({ + appInstanceId: z.string(), +}) + +export const zEnterpriseAppDeployConsoleSearchAccessSubjectsQuery = z.object({ + keyword: z.string().optional(), + subjectTypes: z.array(z.string()).optional(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleSearchAccessSubjectsResponse = zSearchAccessSubjectsReply + +export const zEnterpriseAppDeployConsoleCreateDeveloperApiKeyBody = zCreateDeveloperApiKeyReq + +export const zEnterpriseAppDeployConsoleCreateDeveloperApiKeyPath = z.object({ + appInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleCreateDeveloperApiKeyResponse = zCreateDeveloperApiKeyReply + +export const zEnterpriseAppDeployConsoleDeleteDeveloperApiKeyPath = z.object({ + appInstanceId: z.string(), + apiKeyId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleDeleteDeveloperApiKeyResponse = zDeleteDeveloperApiKeyReply + +export const zEnterpriseAppDeployConsoleListDeploymentBindingOptionsPath = z.object({ + appInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleListDeploymentBindingOptionsResponse + = zListDeploymentBindingOptionsReply + +export const zEnterpriseAppDeployConsoleCreateDeploymentBody = zCreateDeploymentReq + +export const zEnterpriseAppDeployConsoleCreateDeploymentPath = z.object({ + appInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleCreateDeploymentResponse = zCreateDeploymentReply + +export const zEnterpriseAppDeployConsoleUpdateDeveloperApiBody = zUpdateDeveloperApiReq + +export const zEnterpriseAppDeployConsoleUpdateDeveloperApiPath = z.object({ + appInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleUpdateDeveloperApiResponse = zUpdateDeveloperApiReply + +export const zEnterpriseAppDeployConsoleGetEnvironmentAccessPolicyPath = z.object({ + appInstanceId: z.string(), + environmentId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleGetEnvironmentAccessPolicyResponse + = zGetEnvironmentAccessPolicyReply + +export const zEnterpriseAppDeployConsoleUpdateEnvironmentAccessPolicyBody + = zUpdateEnvironmentAccessPolicyReq + +export const zEnterpriseAppDeployConsoleUpdateEnvironmentAccessPolicyPath = z.object({ + appInstanceId: z.string(), + environmentId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleUpdateEnvironmentAccessPolicyResponse + = zUpdateEnvironmentAccessPolicyReply + +export const zEnterpriseAppDeployConsoleGetAppInstanceOverviewPath = z.object({ + appInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleGetAppInstanceOverviewResponse + = zGetAppInstanceOverviewReply + +export const zEnterpriseAppDeployConsoleListReleasesPath = z.object({ + appInstanceId: z.string(), +}) + +export const zEnterpriseAppDeployConsoleListReleasesQuery = z.object({ + pageNumber: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + resultsPerPage: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleListReleasesResponse = zListReleasesReply + +export const zEnterpriseAppDeployConsoleCreateReleaseBody = zCreateReleaseReq + +export const zEnterpriseAppDeployConsoleCreateReleasePath = z.object({ + appInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleCreateReleaseResponse = zCreateReleaseReply + +export const zEnterpriseAppDeployConsolePreviewReleaseBody = zPreviewReleaseReq + +export const zEnterpriseAppDeployConsolePreviewReleasePath = z.object({ + appInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsolePreviewReleaseResponse = zPreviewReleaseReply + +export const zEnterpriseAppDeployConsoleListRuntimeInstancesPath = z.object({ + appInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleListRuntimeInstancesResponse = zListRuntimeInstancesReply + +export const zEnterpriseAppDeployConsoleCancelRuntimeDeploymentBody = zCancelRuntimeDeploymentReq + +export const zEnterpriseAppDeployConsoleCancelRuntimeDeploymentPath = z.object({ + appInstanceId: z.string(), + runtimeInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleCancelRuntimeDeploymentResponse + = zCancelRuntimeDeploymentReply + +export const zEnterpriseAppDeployConsoleUndeployRuntimeInstanceBody = zUndeployRuntimeInstanceReq + +export const zEnterpriseAppDeployConsoleUndeployRuntimeInstancePath = z.object({ + appInstanceId: z.string(), + runtimeInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleUndeployRuntimeInstanceResponse + = zUndeployRuntimeInstanceReply + +export const zEnterpriseAppDeployConsoleGetAppInstanceSettingsPath = z.object({ + appInstanceId: z.string(), +}) + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleGetAppInstanceSettingsResponse + = zGetAppInstanceSettingsReply + +/** + * OK + */ +export const zEnterpriseAppDeployConsoleListDeploymentEnvironmentOptionsResponse + = zListDeploymentEnvironmentOptionsReply + +/** + * OK + */ +export const zConsoleSsoOAuth2LoginResponse = zOAuth2LoginReply + +/** + * OK + */ +export const zConsoleSsoOidcLoginResponse = zOidcReply + +/** + * OK + */ +export const zConsoleSsoSamlLoginResponse = zSamlLoginReply + +export const zWebAppAuthGetWebAppAccessModeQuery = z.object({ + appId: z.string().optional(), +}) + +/** + * OK + */ +export const zWebAppAuthGetWebAppAccessModeResponse = zGetWebAppAccessModeRes + +export const zWebAppAuthUpdateWebAppWhitelistSubjectsBody = zUpdateWebAppWhitelistSubjectsReq + +/** + * OK + */ +export const zWebAppAuthUpdateWebAppWhitelistSubjectsResponse = zUpdateWebAppWhitelistSubjectsRes + +export const zWebAppAuthSearchForWhilteListCandidatesQuery = z.object({ + keyword: z.string().optional(), + pageNumber: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + resultsPerPage: z + .int() + .min(-2147483648, { error: 'Invalid value: Expected int32 to be >= -2147483648' }) + .max(2147483647, { error: 'Invalid value: Expected int32 to be <= 2147483647' }) + .optional(), + groupId: z.string().optional(), +}) + +/** + * OK + */ +export const zWebAppAuthSearchForWhilteListCandidatesResponse = zSearchForWhilteListCandidatesRes + +export const zWebAppAuthGetWebAppWhitelistSubjectsQuery = z.object({ + appId: z.string().optional(), +}) + +/** + * OK + */ +export const zWebAppAuthGetWebAppWhitelistSubjectsResponse = zGetWebAppWhitelistSubjectsRes + +export const zWebAppAuthGetGroupSubjectsQuery = z.object({ + groupId: z.string().optional(), +}) + +/** + * OK + */ +export const zWebAppAuthGetGroupSubjectsResponse = zGetGroupSubjectsRes + +export const zWebAppAuthIsUserAllowedToAccessWebAppQuery = z.object({ + appId: z.string().optional(), +}) + +/** + * OK + */ +export const zWebAppAuthIsUserAllowedToAccessWebAppResponse = zIsUserAllowedToAccessWebAppRes diff --git a/packages/contracts/openapi-ts.api.config.ts b/packages/contracts/openapi-ts.api.config.ts new file mode 100644 index 0000000000..79c8ec8322 --- /dev/null +++ b/packages/contracts/openapi-ts.api.config.ts @@ -0,0 +1,610 @@ +import type { UserConfig } from '@hey-api/openapi-ts' +import fs from 'node:fs' +import path from 'node:path' +import { fileURLToPath } from 'node:url' +import { defineConfig } from '@hey-api/openapi-ts' + +type JsonObject = Record + +type SwaggerSchema = JsonObject & { + '$defs'?: Record + '$ref'?: string + 'x-nullable'?: boolean + 'additionalProperties'?: unknown + 'anyOf'?: SwaggerSchema[] + 'const'?: unknown + 'default'?: unknown + 'definitions'?: Record + 'description'?: string + 'enum'?: unknown[] + 'format'?: string + 'items'?: SwaggerSchema + 'properties'?: Record + 'required'?: string[] + 'type'?: string +} + +type SwaggerParameter = JsonObject & { + in?: string + name?: string + required?: boolean + schema?: SwaggerSchema + type?: string +} + +type SwaggerResponse = JsonObject & { + description?: string + schema?: SwaggerSchema +} + +type SwaggerOperation = JsonObject & { + operationId?: string + parameters?: SwaggerParameter[] + responses?: Record +} + +type SwaggerDocument = JsonObject & { + definitions?: Record + paths?: Record> +} + +type ApiSpec = { + filename: string + name: string +} + +type ApiJob = { + document: SwaggerDocument + outputPath: string +} + +type ApiContractOperation = { + method: string + path: string +} + +const currentDir = path.dirname(fileURLToPath(import.meta.url)) +const apiOpenApiDir = path.resolve(currentDir, 'openapi') + +const operationMethods = new Set(['delete', 'get', 'patch', 'post', 'put']) + +const apiSpecs: ApiSpec[] = [ + { filename: 'console-swagger.json', name: 'console' }, + { filename: 'web-swagger.json', name: 'web' }, + { filename: 'service-swagger.json', name: 'service' }, +] + +const isObject = (value: unknown): value is JsonObject => { + return !!value && typeof value === 'object' && !Array.isArray(value) +} + +const unknownObjectSchema = (): SwaggerSchema => ({ + additionalProperties: true, + type: 'object', +}) + +const toWords = (value: string) => { + return value + .replace(/[{}]/g, '') + .replace(/([a-z0-9])([A-Z])/g, '$1 $2') + .split(/[^a-z0-9]+/i) + .filter(Boolean) +} + +const toPascalCase = (words: string[]) => { + return words.map(word => `${word.charAt(0).toUpperCase()}${word.slice(1)}`).join('') +} + +const toCamelCase = (words: string[]) => { + const pascal = toPascalCase(words) + return `${pascal.charAt(0).toLowerCase()}${pascal.slice(1)}` +} + +const toKebabCase = (value: string) => { + return toWords(value).join('-').toLowerCase() +} + +const segmentWords = (segment: string) => { + if (segment.startsWith('{') && segment.endsWith('}')) + return ['by', ...toWords(segment)] + + return toWords(segment) +} + +const routeWords = (routePath: string) => { + return routePath + .split('/') + .filter(Boolean) + .flatMap(segmentWords) +} + +const operationId = (method: string, routePath: string) => { + return toCamelCase([method, ...(routeWords(routePath).length > 0 ? routeWords(routePath) : ['root'])]) +} + +const contractPathSegments = (operation: ApiContractOperation) => { + const segments = operation.path + .split('/') + .filter(Boolean) + .map(segment => toCamelCase(segmentWords(segment))) + + return [...(segments.length > 0 ? segments : ['root']), operation.method.toLowerCase()] +} + +const readApiSwagger = (filename: string): SwaggerDocument => { + const specPath = path.join(apiOpenApiDir, filename) + + if (!fs.existsSync(specPath)) { + throw new Error( + `Missing API OpenAPI spec: ${specPath}. Run "pnpm gen-api-openapi" from packages/contracts/ first.`, + ) + } + + const rawSpec = JSON.parse(fs.readFileSync(specPath, 'utf8')) + if (!isObject(rawSpec) || !isObject(rawSpec.paths)) + throw new Error(`Invalid API OpenAPI spec: ${specPath}`) + + return rawSpec as SwaggerDocument +} + +const clone = (value: T): T => { + return JSON.parse(JSON.stringify(value)) as T +} + +const collectDefinitionRefs = (value: unknown, refs: Set, visited = new WeakSet()) => { + if (!value || typeof value !== 'object') + return + + if (visited.has(value)) + return + + visited.add(value) + + if (Array.isArray(value)) { + value.forEach(item => collectDefinitionRefs(item, refs, visited)) + return + } + + const objectValue = value as JsonObject + const ref = objectValue.$ref + if (typeof ref === 'string' && ref.startsWith('#/definitions/')) + refs.add(ref.slice('#/definitions/'.length)) + + Object.values(objectValue).forEach(item => collectDefinitionRefs(item, refs, visited)) +} + +const removeNullDefaults = (value: unknown, visited = new WeakSet()) => { + if (!value || typeof value !== 'object' || visited.has(value)) + return + + visited.add(value) + + if (Array.isArray(value)) { + value.forEach(item => removeNullDefaults(item, visited)) + return + } + + const schema = value as SwaggerSchema + if (schema.default === null) + delete schema.default + + Object.values(schema).forEach(item => removeNullDefaults(item, visited)) +} + +const isNullSchema = (schema: SwaggerSchema) => { + return schema.type === 'null' +} + +const normalizeNullableAnyOf = (value: unknown, visited = new WeakSet()) => { + if (!value || typeof value !== 'object' || visited.has(value)) + return + + visited.add(value) + + if (Array.isArray(value)) { + value.forEach(item => normalizeNullableAnyOf(item, visited)) + return + } + + const schema = value as SwaggerSchema + + if (Array.isArray(schema.anyOf)) { + const nonNullSchemas = schema.anyOf.filter(item => !isNullSchema(item)) + const hasNullSchema = nonNullSchemas.length !== schema.anyOf.length + + if (hasNullSchema && nonNullSchemas.length === 1) { + const { anyOf: _anyOf, ...rest } = schema + Object.keys(schema).forEach(key => delete schema[key]) + Object.assign(schema, rest, nonNullSchemas[0], { 'x-nullable': true }) + } + } + + Object.values(schema).forEach(item => normalizeNullableAnyOf(item, visited)) +} + +const hoistNestedDefinitions = (definitions: Record) => { + const visited = new WeakSet() + + const visit = (value: unknown) => { + if (!value || typeof value !== 'object' || visited.has(value)) + return + + visited.add(value) + + if (Array.isArray(value)) { + value.forEach(visit) + return + } + + const schema = value as SwaggerSchema + for (const key of ['$defs', 'definitions'] as const) { + const nestedDefinitions = schema[key] + if (!isObject(nestedDefinitions)) + continue + + for (const [name, nestedSchema] of Object.entries(nestedDefinitions)) { + definitions[name] ??= nestedSchema + visit(nestedSchema) + } + + delete schema[key] + } + + Object.values(schema).forEach(visit) + } + + Object.values(definitions).forEach(visit) +} + +const ensureReferencedDefinitions = (document: SwaggerDocument) => { + const definitions = document.definitions ??= {} + const refs = new Set() + collectDefinitionRefs(document, refs) + + for (const refName of refs) + definitions[refName] ??= unknownObjectSchema() +} + +const resolveDefinitionRef = ( + schema: SwaggerSchema | undefined, + definitions: Record, +): SwaggerSchema | undefined => { + const ref = schema?.$ref + + if (!ref?.startsWith('#/definitions/')) + return schema + + return definitions[ref.slice('#/definitions/'.length)] ?? schema +} + +const withoutNullableWrapper = (schema: SwaggerSchema | undefined): SwaggerSchema => { + if (!schema) + return {} + + const nonNullSchema = schema.anyOf?.find(item => item.type !== 'null') + if (!nonNullSchema) + return schema + + const { anyOf: _anyOf, ...rest } = schema + return { + ...rest, + ...nonNullSchema, + } +} + +const isNullEnumItem = (item: unknown) => { + return isObject(item) && (item.type === 'null' || item.const === null) +} + +const markNullableEnumSchema = (ctx: { schema: JsonObject }): undefined => { + const items = ctx.schema.items + + if (ctx.schema['x-nullable'] !== true || !Array.isArray(items) || items.some(isNullEnumItem)) + return undefined + + // Hey API's enum visitors infer nullable from a null enum item, not x-nullable. + ctx.schema.items = [...items, { const: null, type: 'null' }] + + return undefined +} + +const queryParameterFromSchema = ( + name: string, + schema: SwaggerSchema | undefined, + required: boolean, +): SwaggerParameter => { + const querySchema = withoutNullableWrapper(schema) + const parameter: SwaggerParameter = { + in: 'query', + name, + required, + } + + if (querySchema.default !== undefined) + parameter.default = querySchema.default + + if (querySchema.description) + parameter.description = querySchema.description + + if (querySchema.enum) + parameter.enum = querySchema.enum + + if (querySchema.format) + parameter.format = querySchema.format + + if (querySchema.items) + parameter.items = querySchema.items + + for (const key of [ + 'exclusiveMaximum', + 'exclusiveMinimum', + 'maxItems', + 'maxLength', + 'maximum', + 'minItems', + 'minLength', + 'minimum', + 'multipleOf', + 'pattern', + 'uniqueItems', + 'x-nullable', + ]) { + if (querySchema[key] !== undefined) + parameter[key] = querySchema[key] + } + + parameter.type = ['array', 'boolean', 'integer', 'number', 'string'].includes(querySchema.type ?? '') + ? querySchema.type + : 'string' + + return parameter +} + +const mergeQueryParameter = ( + parameters: SwaggerParameter[], + queryParameter: SwaggerParameter, +) => { + const existingIndex = parameters.findIndex((parameter) => { + return parameter.in === 'query' && parameter.name === queryParameter.name + }) + + if (existingIndex === -1) { + parameters.push(queryParameter) + return + } + + const existingParameter = parameters[existingIndex] + if (!existingParameter) { + parameters.push(queryParameter) + return + } + + parameters[existingIndex] = { + ...existingParameter, + ...queryParameter, + description: queryParameter.description ?? existingParameter.description, + required: Boolean(existingParameter.required) || Boolean(queryParameter.required), + } +} + +const normalizeGetBodyParameters = ( + operation: SwaggerOperation, + definitions: Record, +) => { + if (!Array.isArray(operation.parameters)) + return + + const bodyParameters: SwaggerParameter[] = [] + const normalizedParameters: SwaggerParameter[] = [] + + for (const parameter of operation.parameters) { + if (parameter.in === 'body') { + bodyParameters.push(parameter) + continue + } + + normalizedParameters.push(parameter) + } + + for (const parameter of bodyParameters) { + const schema = resolveDefinitionRef(parameter.schema, definitions) + const properties = schema?.properties ?? {} + const required = new Set(schema?.required ?? []) + + for (const [name, propertySchema] of Object.entries(properties)) { + mergeQueryParameter( + normalizedParameters, + queryParameterFromSchema(name, propertySchema, required.has(name)), + ) + } + } + + operation.parameters = normalizedParameters +} + +const normalizeResponses = (operation: SwaggerOperation) => { + const responses = operation.responses ??= {} + + for (const response of Object.values(responses)) { + if (!response.schema) + response.schema = unknownObjectSchema() + } + + if (!Object.keys(responses).some(status => /^2\d\d$/.test(status))) { + responses['200'] = { + description: 'Success', + schema: unknownObjectSchema(), + } + } +} + +const normalizeOperations = (document: SwaggerDocument) => { + const definitions = document.definitions ??= {} + + for (const [routePath, pathItem] of Object.entries(document.paths ?? {})) { + for (const [method, operation] of Object.entries(pathItem)) { + if (!operationMethods.has(method) || !isObject(operation)) + continue + + const swaggerOperation = operation as SwaggerOperation + swaggerOperation.operationId = operationId(method, routePath) + + normalizeResponses(swaggerOperation) + + if (method === 'get') + normalizeGetBodyParameters(swaggerOperation, definitions) + } + } +} + +const normalizeApiSwagger = (document: SwaggerDocument) => { + document.definitions ??= {} + + // Flask-RESTX emits Pydantic nested $defs inside individual schemas while + // refs point at the root Swagger 2.0 definitions object. + hoistNestedDefinitions(document.definitions) + ensureReferencedDefinitions(document) + normalizeNullableAnyOf(document) + removeNullDefaults(document) + normalizeOperations(document) + + return document +} + +const topLevelPathSegment = (routePath: string) => { + return routePath.split('/').filter(Boolean)[0] ?? 'root' +} + +const selectReferencedDefinitions = ( + definitions: Record, + paths: Record>, +) => { + const selectedDefinitions: Record = {} + const pendingRefs = new Set() + collectDefinitionRefs(paths, pendingRefs) + + while (pendingRefs.size > 0) { + const refName = pendingRefs.values().next().value + if (!refName) + break + + pendingRefs.delete(refName) + + if (selectedDefinitions[refName]) + continue + + selectedDefinitions[refName] = definitions[refName] ?? unknownObjectSchema() + + const nestedRefs = new Set() + collectDefinitionRefs(selectedDefinitions[refName], nestedRefs) + for (const nestedRef of nestedRefs) { + if (!selectedDefinitions[nestedRef]) + pendingRefs.add(nestedRef) + } + } + + return selectedDefinitions +} + +const cloneDocumentWithPaths = ( + document: SwaggerDocument, + paths: Record>, +) => { + const { definitions: _definitions, paths: _paths, ...metadata } = document + const clonedPaths = clone(paths) + + return { + ...clone(metadata), + definitions: selectReferencedDefinitions(document.definitions ?? {}, clonedPaths), + paths: clonedPaths, + } satisfies SwaggerDocument +} + +const splitConsoleDocument = (document: SwaggerDocument) => { + const pathsBySegment = new Map>>() + + for (const [routePath, pathItem] of Object.entries(document.paths ?? {})) { + const segment = topLevelPathSegment(routePath) + const paths = pathsBySegment.get(segment) ?? {} + paths[routePath] = pathItem + pathsBySegment.set(segment, paths) + } + + return [...pathsBySegment.entries()] + .sort(([left], [right]) => left.localeCompare(right)) + .map(([segment, paths]): ApiJob => ({ + document: cloneDocumentWithPaths(document, paths), + outputPath: `generated/api/console/${toKebabCase(segment)}`, + })) +} + +const createApiJobs = (spec: ApiSpec): ApiJob[] => { + const document = normalizeApiSwagger(readApiSwagger(spec.filename)) + + if (spec.name === 'console') + return splitConsoleDocument(document) + + return [ + { + document, + outputPath: `generated/api/${spec.name}`, + }, + ] +} + +const createApiConfig = (job: ApiJob): UserConfig => ({ + input: job.document, + logs: { + file: false, + }, + output: { + entryFile: false, + fileName: { + suffix: '.gen', + }, + path: job.outputPath, + postProcess: [ + { + args: ['fmt', '{{path}}'], + command: 'vp', + }, + { + args: ['--fix', '{{path}}/*.ts'], + command: 'eslint', + }, + ], + }, + plugins: [ + { + 'comments': false, + 'name': '@hey-api/typescript', + '~resolvers': { + enum: markNullableEnumSchema, + }, + }, + { + 'name': 'zod', + '~resolvers': { + enum: markNullableEnumSchema, + }, + }, + { + contracts: { + contractName: { + casing: 'camelCase', + name: '{{name}}', + }, + nesting: contractPathSegments, + segmentName: { + casing: 'camelCase', + name: '{{name}}', + }, + strategy: 'single', + }, + name: 'orpc', + validator: 'zod', + }, + ], +}) + +export default defineConfig(apiSpecs.flatMap(createApiJobs).map(createApiConfig)) diff --git a/packages/contracts/openapi-ts.enterprise.config.ts b/packages/contracts/openapi-ts.enterprise.config.ts new file mode 100644 index 0000000000..3c9bc903ab --- /dev/null +++ b/packages/contracts/openapi-ts.enterprise.config.ts @@ -0,0 +1,119 @@ +import fs from 'node:fs' +import path from 'node:path' +import { fileURLToPath } from 'node:url' +import { defineConfig } from '@hey-api/openapi-ts' +import yaml from 'js-yaml' + +type JsonObject = Record + +type OpenApiDocument = JsonObject & { + paths?: Record +} + +type ContractOperation = { + id: string + operationId?: string + tags?: readonly string[] +} + +const currentDir = path.dirname(fileURLToPath(import.meta.url)) +const enterpriseServerDir = process.env.DIFY_ENTERPRISE_SERVER + ? path.resolve(process.env.DIFY_ENTERPRISE_SERVER) + : path.resolve(currentDir, '../../../dify-enterprise/server') +const enterpriseOpenApiPath = path.join(enterpriseServerDir, 'pkg/apis/enterprise/openapi.yaml') + +const isConsoleApiPath = (routePath: string) => routePath.startsWith('/console/api/') + +const stripConsoleApiPrefix = (routePath: string) => { + if (isConsoleApiPath(routePath)) + return routePath.replace('/console/api', '') + + return routePath +} + +const stripSchemaNamePrefix = (schemaName: string) => { + return schemaName + .replace(/^dify\.enterprise\.api\.enterprise\./, '') + .replace(/^pagination\./, '') +} + +const contractNameSegments = (operation: ContractOperation) => { + const operationId = operation.operationId || operation.id + const tag = operation.tags?.[0] + const tagPrefixPattern = tag ? new RegExp(`^${tag}[._/-]`) : undefined + const name = tagPrefixPattern ? operationId.replace(tagPrefixPattern, '') : operationId + const segments = name.split(/[._/-]+/).filter(Boolean) + + return segments.length > 0 ? segments : [operationId] +} + +const contractPathSegments = (operation: ContractOperation) => { + return [operation.tags?.[0] || 'default', ...contractNameSegments(operation)] +} + +const normalizeEnterpriseOpenApi = () => { + const openApi = yaml.load(fs.readFileSync(enterpriseOpenApiPath, 'utf8')) + + if (!openApi || typeof openApi !== 'object' || Array.isArray(openApi)) + throw new Error(`Invalid enterprise OpenAPI document: ${enterpriseOpenApiPath}`) + + const document = openApi as OpenApiDocument + const paths = document.paths ?? {} + + document.paths = Object.fromEntries( + Object.entries(paths) + .filter(([routePath]) => isConsoleApiPath(routePath)) + .map(([routePath, pathItem]) => [stripConsoleApiPrefix(routePath), pathItem]), + ) + + return document +} + +export default defineConfig({ + input: normalizeEnterpriseOpenApi(), + output: { + entryFile: false, + path: 'generated/enterprise', + fileName: { + suffix: '.gen', + }, + postProcess: [ + { + command: 'vp', + args: ['fmt', '{{path}}'], + }, + { + command: 'eslint', + args: ['--fix', '{{path}}/*.ts'], + }, + ], + }, + parser: { + transforms: { + schemaName: stripSchemaNamePrefix, + }, + }, + plugins: [ + { + name: '@hey-api/typescript', + comments: false, + }, + 'zod', + { + name: 'orpc', + contracts: { + strategy: 'single', + contractName: { + name: '{{name}}', + casing: 'camelCase', + }, + nesting: contractPathSegments, + segmentName: { + name: '{{name}}', + casing: 'camelCase', + }, + }, + validator: 'zod', + }, + ], +}) diff --git a/packages/contracts/package.json b/packages/contracts/package.json new file mode 100644 index 0000000000..5e9af5e0f1 --- /dev/null +++ b/packages/contracts/package.json @@ -0,0 +1,37 @@ +{ + "name": "@dify/contracts", + "type": "module", + "version": "0.0.0-private", + "private": true, + "exports": { + "./api/*": { + "types": "./generated/api/*.ts", + "import": "./generated/api/*.ts" + }, + "./enterprise/*": { + "types": "./generated/enterprise/*.ts", + "import": "./generated/enterprise/*.ts" + } + }, + "scripts": { + "gen-api-contract": "pnpm gen-api-openapi && node -e \"fs.rmSync('generated/api', { recursive: true, force: true })\" && openapi-ts -f openapi-ts.api.config.ts", + "gen-api-openapi": "uv run --project ../../api ../../api/dev/generate_swagger_specs.py --output-dir openapi", + "gen-enterprise-contract": "openapi-ts -f openapi-ts.enterprise.config.ts", + "type-check": "tsgo" + }, + "dependencies": { + "@orpc/contract": "catalog:", + "zod": "catalog:" + }, + "devDependencies": { + "@dify/tsconfig": "workspace:*", + "@hey-api/openapi-ts": "catalog:", + "@types/js-yaml": "catalog:", + "@types/node": "catalog:", + "@typescript/native-preview": "catalog:", + "eslint": "catalog:", + "js-yaml": "catalog:", + "typescript": "catalog:", + "vite-plus": "catalog:" + } +} diff --git a/packages/contracts/tsconfig.json b/packages/contracts/tsconfig.json new file mode 100644 index 0000000000..4ebf36d2d3 --- /dev/null +++ b/packages/contracts/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "@dify/tsconfig/node.json", + "include": [ + "*.ts", + "generated/**/*.ts" + ], + "exclude": [ + "node_modules" + ] +} diff --git a/packages/dify-ui/.storybook/storybook.css b/packages/dify-ui/.storybook/storybook.css index e9796fd046..ca76cd2968 100644 --- a/packages/dify-ui/.storybook/storybook.css +++ b/packages/dify-ui/.storybook/storybook.css @@ -1,6 +1,9 @@ @import 'tailwindcss'; -@config '../tailwind.config.ts'; +@plugin '../src/plugins/icons.ts'; + +@source '../src'; +@source '../.storybook'; @import '../src/styles/styles.css'; diff --git a/packages/dify-ui/AGENTS.md b/packages/dify-ui/AGENTS.md index 4a7fe2f22a..d8a59b7a0b 100644 --- a/packages/dify-ui/AGENTS.md +++ b/packages/dify-ui/AGENTS.md @@ -1,6 +1,6 @@ # @langgenius/dify-ui -Shared design tokens, the `cn()` utility, a Tailwind CSS preset, and headless primitive components consumed by `web/`. +Shared design tokens, the `cn()` utility, CSS-first Tailwind styles, and headless primitive components consumed by `web/`. ## Component Authoring Rules @@ -51,7 +51,7 @@ The Figma design system uses `--radius/*` tokens whose scale is **offset by one ### Rules -- **Do not** add custom `borderRadius` values to `tailwind-preset.ts`. We use Tailwind v4 defaults and arbitrary values (`rounded-[Npx]`) for sizes without a standard equivalent. +- **Do not** add custom `borderRadius` theme values. We use Tailwind v4 defaults and arbitrary values (`rounded-[Npx]`) for sizes without a standard equivalent. - **Do not** use `radius-*` as CSS class names. The old `@utility radius-*` definitions have been removed. - When the Figma MCP returns `rounded-[var(--radius/sm, 6px)]`, convert it to the standard Tailwind class from the table above (e.g. `rounded-md`). - For values without a standard Tailwind equivalent (10px, 20px, 28px), use arbitrary values like `rounded-[10px]`. diff --git a/packages/dify-ui/README.md b/packages/dify-ui/README.md index cd9485c400..cd24a0c078 100644 --- a/packages/dify-ui/README.md +++ b/packages/dify-ui/README.md @@ -1,6 +1,6 @@ # @langgenius/dify-ui -Shared UI primitives, design tokens, Tailwind preset, and the `cn()` utility consumed by Dify's `web/` app. +Shared UI primitives, design tokens, CSS-first Tailwind styles, and the `cn()` utility consumed by Dify's `web/` app. The primitives are thin, opinionated wrappers around [Base UI] headless components, styled with `cva` + `cn` and Dify design tokens. @@ -46,8 +46,22 @@ Importing from `@langgenius/dify-ui` (no subpath) is intentionally not supported Utilities: - `./cn` — `clsx` + `tailwind-merge` wrapper. Use this for conditional class composition. -- `./tailwind-preset` — Tailwind v4 preset with Dify tokens. Apps extend it from their own `tailwind.config.ts`. -- `./styles.css` — the one CSS entry that ships the design tokens, theme variables, and base reset. Import it once from the app root. +- `./styles.css` — the one CSS entry that ships the design tokens, theme variables, and project utilities/components. Import it once from the app root. + +## Tailwind CSS v4 integration + +This package uses Tailwind CSS v4's CSS-first configuration model. Consumers should import Tailwind from their own root stylesheet, then import this package's CSS entry: + +```css +@import 'tailwindcss'; +@import '@langgenius/dify-ui/styles.css'; +``` + +If a consumer uses Dify UI source files through the workspace, add an explicit source so Tailwind can detect utility classes: + +```css +@source '../packages/dify-ui/src'; +``` ## Overlay & portal contract diff --git a/packages/dify-ui/package.json b/packages/dify-ui/package.json index 483db46986..73c6c0bd22 100644 --- a/packages/dify-ui/package.json +++ b/packages/dify-ui/package.json @@ -5,10 +5,6 @@ "private": true, "exports": { "./styles.css": "./src/styles/styles.css", - "./tailwind-preset": { - "types": "./src/tailwind-preset.ts", - "import": "./src/tailwind-preset.ts" - }, "./cn": { "types": "./src/cn.ts", "import": "./src/cn.ts" diff --git a/packages/dify-ui/src/placement.ts b/packages/dify-ui/src/placement.ts index 95f233fd56..bf5534c92d 100644 --- a/packages/dify-ui/src/placement.ts +++ b/packages/dify-ui/src/placement.ts @@ -19,11 +19,21 @@ export type Placement | 'left-start' | 'left-end' -export function parsePlacement(placement: Placement): { side: Side, align: Align } { - const [side, align] = placement.split('-') as [Side, Align | undefined] +const PLACEMENT_PARTS = { + 'top': { side: 'top', align: 'center' }, + 'top-start': { side: 'top', align: 'start' }, + 'top-end': { side: 'top', align: 'end' }, + 'right': { side: 'right', align: 'center' }, + 'right-start': { side: 'right', align: 'start' }, + 'right-end': { side: 'right', align: 'end' }, + 'bottom': { side: 'bottom', align: 'center' }, + 'bottom-start': { side: 'bottom', align: 'start' }, + 'bottom-end': { side: 'bottom', align: 'end' }, + 'left': { side: 'left', align: 'center' }, + 'left-start': { side: 'left', align: 'start' }, + 'left-end': { side: 'left', align: 'end' }, +} satisfies Record - return { - side, - align: align ?? 'center', - } +export function parsePlacement(placement: Placement): { side: Side, align: Align } { + return PLACEMENT_PARTS[placement] } diff --git a/packages/dify-ui/src/plugins/icons.ts b/packages/dify-ui/src/plugins/icons.ts new file mode 100644 index 0000000000..e2d678c78f --- /dev/null +++ b/packages/dify-ui/src/plugins/icons.ts @@ -0,0 +1,10 @@ +import { getIconCollections, iconsPlugin } from '@egoist/tailwindcss-icons' + +export default iconsPlugin({ + collections: getIconCollections(['ri']), + extraProperties: { + width: '1rem', + height: '1rem', + display: 'block', + }, +}) diff --git a/packages/dify-ui/src/popover/index.tsx b/packages/dify-ui/src/popover/index.tsx index f6fcd5ed43..3fc9f98f9a 100644 --- a/packages/dify-ui/src/popover/index.tsx +++ b/packages/dify-ui/src/popover/index.tsx @@ -13,6 +13,7 @@ export const PopoverTrigger = BasePopover.Trigger export const PopoverClose = BasePopover.Close export const PopoverTitle = BasePopover.Title export const PopoverDescription = BasePopover.Description +export const createPopoverHandle = BasePopover.createHandle type PopoverContentProps = { children: ReactNode diff --git a/packages/dify-ui/src/styles/styles.css b/packages/dify-ui/src/styles/styles.css index fb410b2d5f..e2403d308a 100644 --- a/packages/dify-ui/src/styles/styles.css +++ b/packages/dify-ui/src/styles/styles.css @@ -1,4 +1,90 @@ +/* + * @langgenius/dify-ui — Tailwind CSS v4 preset (CSS-first). + * + * This is the single CSS entry point for consumers: + * @import '@langgenius/dify-ui/styles.css'; + * + * Consumers must also `@import 'tailwindcss';` (or selected layers) in their + * own root stylesheet so that the engine generates utilities. This file only + * contributes design tokens, runtime CSS variables, and project utilities. + */ + +/* ---------- Palette overrides ----------------------------------------- */ +/* Override Tailwind v4's oklch defaults with the Dify brand palette so that + * `bg-gray-500`, `text-primary-600`, etc. resolve to the design system. */ +@theme { + /* gray */ + --color-gray-25: #fcfcfd; + --color-gray-50: #f9fafb; + --color-gray-100: #f2f4f7; + --color-gray-200: #eaecf0; + --color-gray-300: #d0d5dd; + --color-gray-400: #98a2b3; + --color-gray-500: #667085; + --color-gray-600: #344054; + --color-gray-700: #475467; + --color-gray-800: #1d2939; + --color-gray-900: #101828; + + /* primary */ + --color-primary-25: #f5f8ff; + --color-primary-50: #eff4ff; + --color-primary-100: #d1e0ff; + --color-primary-200: #b2ccff; + --color-primary-300: #84adff; + --color-primary-400: #528bff; + --color-primary-500: #2970ff; + --color-primary-600: #155eef; + --color-primary-700: #004eeb; + --color-primary-800: #0040c1; + --color-primary-900: #00359e; + + /* blue / green / yellow / purple — narrow overrides used by legacy markup */ + --color-blue-500: #e1effe; + --color-green-50: #f3faf7; + --color-green-100: #def7ec; + --color-green-800: #03543f; + --color-yellow-100: #fdf6b2; + --color-yellow-800: #723b13; + --color-purple-50: #f6f5ff; + --color-purple-200: #dcd7fe; + + /* indigo */ + --color-indigo-25: #f5f8ff; + --color-indigo-50: #eef4ff; + --color-indigo-100: #e0eaff; + --color-indigo-300: #a4bcfd; + --color-indigo-400: #8098f9; + --color-indigo-600: #444ce7; + --color-indigo-800: #2d31a6; + + /* shadows */ + --shadow-xs: 0px 1px 2px 0px rgba(16, 24, 40, 0.05); + --shadow-sm: 0px 1px 2px 0px rgba(16, 24, 40, 0.06), 0px 1px 3px 0px rgba(16, 24, 40, 0.10); + --shadow-sm-no-bottom: 0px -1px 2px 0px rgba(16, 24, 40, 0.06), 0px -1px 3px 0px rgba(16, 24, 40, 0.10); + --shadow-md: 0px 2px 4px -2px rgba(16, 24, 40, 0.06), 0px 4px 8px -2px rgba(16, 24, 40, 0.10); + --shadow-lg: 0px 4px 6px -2px rgba(16, 24, 40, 0.03), 0px 12px 16px -4px rgba(16, 24, 40, 0.08); + --shadow-xl: 0px 8px 8px -4px rgba(16, 24, 40, 0.03), 0px 20px 24px -4px rgba(16, 24, 40, 0.08); + --shadow-2xl: 0px 24px 48px -12px rgba(16, 24, 40, 0.18); + --shadow-3xl: 0px 32px 64px -12px rgba(16, 24, 40, 0.14); + --shadow-status-indicator-green-shadow: 0px 2px 6px 0px var(--color-components-badge-status-light-success-halo), 0px 0px 0px 1px var(--color-components-badge-status-light-border-outer); + --shadow-status-indicator-warning-shadow: 0px 2px 6px 0px var(--color-components-badge-status-light-warning-halo), 0px 0px 0px 1px var(--color-components-badge-status-light-border-outer); + --shadow-status-indicator-red-shadow: 0px 2px 6px 0px var(--color-components-badge-status-light-error-halo), 0px 0px 0px 1px var(--color-components-badge-status-light-border-outer); + --shadow-status-indicator-blue-shadow: 0px 2px 6px 0px var(--color-components-badge-status-light-normal-halo), 0px 0px 0px 1px var(--color-components-badge-status-light-border-outer); + --shadow-status-indicator-gray-shadow: 0px 1px 2px 0px var(--color-components-badge-status-light-disabled-halo), 0px 0px 0px 1px var(--color-components-badge-status-light-border-outer); + + /* font sizes */ + --text-2xs: 0.625rem; +} + +/* ---------- Semantic design tokens (`@theme inline`) ------------------ */ +@import '../themes/theme.css'; + +/* ---------- Runtime variable values ----------------------------------- */ +/* Real values for the semantic tokens above, scoped per `html[data-theme]`. */ @import '../themes/light.css' layer(base); @import '../themes/dark.css' layer(base); + +/* ---------- Project utilities & components ---------------------------- */ @import './utilities.css'; @import './components.css'; diff --git a/packages/dify-ui/src/tailwind-preset.ts b/packages/dify-ui/src/tailwind-preset.ts deleted file mode 100644 index 2dbf4781b0..0000000000 --- a/packages/dify-ui/src/tailwind-preset.ts +++ /dev/null @@ -1,87 +0,0 @@ -import tailwindThemeVarDefine from './themes/tailwind-theme-var-define' - -const difyUIPreset = { - theme: { - extend: { - colors: { - gray: { - 25: '#fcfcfd', - 50: '#f9fafb', - 100: '#f2f4f7', - 200: '#eaecf0', - 300: '#d0d5dd', - 400: '#98a2b3', - 500: '#667085', - 600: '#344054', - 700: '#475467', - 800: '#1d2939', - 900: '#101828', - }, - primary: { - 25: '#f5f8ff', - 50: '#eff4ff', - 100: '#d1e0ff', - 200: '#b2ccff', - 300: '#84adff', - 400: '#528bff', - 500: '#2970ff', - 600: '#155eef', - 700: '#004eeb', - 800: '#0040c1', - 900: '#00359e', - }, - blue: { - 500: '#E1EFFE', - }, - green: { - 50: '#F3FAF7', - 100: '#DEF7EC', - 800: '#03543F', - }, - yellow: { - 100: '#FDF6B2', - 800: '#723B13', - }, - purple: { - 50: '#F6F5FF', - 200: '#DCD7FE', - }, - indigo: { - 25: '#F5F8FF', - 50: '#EEF4FF', - 100: '#E0EAFF', - 300: '#A4BCFD', - 400: '#8098F9', - 600: '#444CE7', - 800: '#2D31A6', - }, - ...tailwindThemeVarDefine, - }, - boxShadow: { - 'xs': '0px 1px 2px 0px rgba(16, 24, 40, 0.05)', - 'sm': '0px 1px 2px 0px rgba(16, 24, 40, 0.06), 0px 1px 3px 0px rgba(16, 24, 40, 0.10)', - 'sm-no-bottom': '0px -1px 2px 0px rgba(16, 24, 40, 0.06), 0px -1px 3px 0px rgba(16, 24, 40, 0.10)', - 'md': '0px 2px 4px -2px rgba(16, 24, 40, 0.06), 0px 4px 8px -2px rgba(16, 24, 40, 0.10)', - 'lg': '0px 4px 6px -2px rgba(16, 24, 40, 0.03), 0px 12px 16px -4px rgba(16, 24, 40, 0.08)', - 'xl': '0px 8px 8px -4px rgba(16, 24, 40, 0.03), 0px 20px 24px -4px rgba(16, 24, 40, 0.08)', - '2xl': '0px 24px 48px -12px rgba(16, 24, 40, 0.18)', - '3xl': '0px 32px 64px -12px rgba(16, 24, 40, 0.14)', - 'status-indicator-green-shadow': '0px 2px 6px 0px var(--color-components-badge-status-light-success-halo), 0px 0px 0px 1px var(--color-components-badge-status-light-border-outer)', - 'status-indicator-warning-shadow': '0px 2px 6px 0px var(--color-components-badge-status-light-warning-halo), 0px 0px 0px 1px var(--color-components-badge-status-light-border-outer)', - 'status-indicator-red-shadow': '0px 2px 6px 0px var(--color-components-badge-status-light-error-halo), 0px 0px 0px 1px var(--color-components-badge-status-light-border-outer)', - 'status-indicator-blue-shadow': '0px 2px 6px 0px var(--color-components-badge-status-light-normal-halo), 0px 0px 0px 1px var(--color-components-badge-status-light-border-outer)', - 'status-indicator-gray-shadow': '0px 1px 2px 0px var(--color-components-badge-status-light-disabled-halo), 0px 0px 0px 1px var(--color-components-badge-status-light-border-outer)', - }, - opacity: { - 2: '0.02', - 8: '0.08', - }, - fontSize: { - '2xs': '0.625rem', - }, - }, - }, - plugins: [], -} - -export default difyUIPreset diff --git a/packages/dify-ui/src/themes/dark.css b/packages/dify-ui/src/themes/dark.css index 59c9811412..ecadc76151 100644 --- a/packages/dify-ui/src/themes/dark.css +++ b/packages/dify-ui/src/themes/dark.css @@ -7,17 +7,6 @@ html[data-theme="dark"] { --color-components-input-border-active: #747481; --color-components-input-border-destructive: #f97066; - /* Sticky header / Monaco editor sticky scroll colors (dark mode) */ - /* Use solid panel background to ensure visibility when elements become sticky */ - --color-components-sticky-header-bg: var(--color-components-panel-bg); - --color-components-sticky-header-bg-hover: var(--color-components-panel-on-panel-item-bg-hover); - --color-components-sticky-header-border: var(--color-components-panel-border); - - /* Override Monaco/VSCode CSS variables for sticky scroll so the sticky header is opaque */ - --vscode-editorStickyScroll-background: var(--color-components-sticky-header-bg); - --vscode-editorStickyScrollHover-background: var(--color-components-sticky-header-bg-hover); - --vscode-editorStickyScroll-border: var(--color-components-sticky-header-border); - --vscode-editorStickyScroll-shadow: rgba(0, 0, 0, 0.6); --color-components-input-text-filled: #f4f4f5; --color-components-input-bg-destructive: rgb(255 255 255 / 0.01); --color-components-input-bg-disabled: rgb(255 255 255 / 0.03); @@ -824,4 +813,4 @@ html[data-theme="dark"] { --color-dify-logo-outline-1: #ffffff; --color-dify-logo-outline-2: #e8e8e8; -} \ No newline at end of file +} diff --git a/packages/dify-ui/src/themes/tailwind-theme-var-define.ts b/packages/dify-ui/src/themes/tailwind-theme-var-define.ts deleted file mode 100644 index 2ea617284f..0000000000 --- a/packages/dify-ui/src/themes/tailwind-theme-var-define.ts +++ /dev/null @@ -1,816 +0,0 @@ -/* Attention: Generate by code. Don't update by hand!!! */ -const vars = { - 'components-input-bg-normal': 'var(--color-components-input-bg-normal)', - 'components-input-text-placeholder': 'var(--color-components-input-text-placeholder)', - 'components-input-bg-hover': 'var(--color-components-input-bg-hover)', - 'components-input-bg-active': 'var(--color-components-input-bg-active)', - 'components-input-border-active': 'var(--color-components-input-border-active)', - 'components-input-border-destructive': 'var(--color-components-input-border-destructive)', - 'components-input-text-filled': 'var(--color-components-input-text-filled)', - 'components-input-bg-destructive': 'var(--color-components-input-bg-destructive)', - 'components-input-bg-disabled': 'var(--color-components-input-bg-disabled)', - 'components-input-text-disabled': 'var(--color-components-input-text-disabled)', - 'components-input-text-filled-disabled': 'var(--color-components-input-text-filled-disabled)', - 'components-input-border-hover': 'var(--color-components-input-border-hover)', - 'components-input-border-active-prompt-1': 'var(--color-components-input-border-active-prompt-1)', - 'components-input-border-active-prompt-2': 'var(--color-components-input-border-active-prompt-2)', - - 'components-kbd-bg-gray': 'var(--color-components-kbd-bg-gray)', - 'components-kbd-bg-white': 'var(--color-components-kbd-bg-white)', - - 'components-tooltip-bg': 'var(--color-components-tooltip-bg)', - - 'components-button-primary-text': 'var(--color-components-button-primary-text)', - 'components-button-primary-bg': 'var(--color-components-button-primary-bg)', - 'components-button-primary-border': 'var(--color-components-button-primary-border)', - 'components-button-primary-bg-hover': 'var(--color-components-button-primary-bg-hover)', - 'components-button-primary-border-hover': 'var(--color-components-button-primary-border-hover)', - 'components-button-primary-bg-disabled': 'var(--color-components-button-primary-bg-disabled)', - 'components-button-primary-border-disabled': 'var(--color-components-button-primary-border-disabled)', - 'components-button-primary-text-disabled': 'var(--color-components-button-primary-text-disabled)', - - 'components-button-secondary-text': 'var(--color-components-button-secondary-text)', - 'components-button-secondary-text-disabled': 'var(--color-components-button-secondary-text-disabled)', - 'components-button-secondary-bg': 'var(--color-components-button-secondary-bg)', - 'components-button-secondary-bg-hover': 'var(--color-components-button-secondary-bg-hover)', - 'components-button-secondary-bg-disabled': 'var(--color-components-button-secondary-bg-disabled)', - 'components-button-secondary-border': 'var(--color-components-button-secondary-border)', - 'components-button-secondary-border-hover': 'var(--color-components-button-secondary-border-hover)', - 'components-button-secondary-border-disabled': 'var(--color-components-button-secondary-border-disabled)', - - 'components-button-tertiary-text': 'var(--color-components-button-tertiary-text)', - 'components-button-tertiary-text-disabled': 'var(--color-components-button-tertiary-text-disabled)', - 'components-button-tertiary-bg': 'var(--color-components-button-tertiary-bg)', - 'components-button-tertiary-bg-hover': 'var(--color-components-button-tertiary-bg-hover)', - 'components-button-tertiary-bg-disabled': 'var(--color-components-button-tertiary-bg-disabled)', - - 'components-button-ghost-text': 'var(--color-components-button-ghost-text)', - 'components-button-ghost-text-disabled': 'var(--color-components-button-ghost-text-disabled)', - 'components-button-ghost-bg-hover': 'var(--color-components-button-ghost-bg-hover)', - - 'components-button-destructive-primary-text': 'var(--color-components-button-destructive-primary-text)', - 'components-button-destructive-primary-text-disabled': 'var(--color-components-button-destructive-primary-text-disabled)', - 'components-button-destructive-primary-bg': 'var(--color-components-button-destructive-primary-bg)', - 'components-button-destructive-primary-bg-hover': 'var(--color-components-button-destructive-primary-bg-hover)', - 'components-button-destructive-primary-bg-disabled': 'var(--color-components-button-destructive-primary-bg-disabled)', - 'components-button-destructive-primary-border': 'var(--color-components-button-destructive-primary-border)', - 'components-button-destructive-primary-border-hover': 'var(--color-components-button-destructive-primary-border-hover)', - 'components-button-destructive-primary-border-disabled': 'var(--color-components-button-destructive-primary-border-disabled)', - - 'components-button-destructive-secondary-text': 'var(--color-components-button-destructive-secondary-text)', - 'components-button-destructive-secondary-text-disabled': 'var(--color-components-button-destructive-secondary-text-disabled)', - 'components-button-destructive-secondary-bg': 'var(--color-components-button-destructive-secondary-bg)', - 'components-button-destructive-secondary-bg-hover': 'var(--color-components-button-destructive-secondary-bg-hover)', - 'components-button-destructive-secondary-bg-disabled': 'var(--color-components-button-destructive-secondary-bg-disabled)', - 'components-button-destructive-secondary-border': 'var(--color-components-button-destructive-secondary-border)', - 'components-button-destructive-secondary-border-hover': 'var(--color-components-button-destructive-secondary-border-hover)', - 'components-button-destructive-secondary-border-disabled': 'var(--color-components-button-destructive-secondary-border-disabled)', - - 'components-button-destructive-tertiary-text': 'var(--color-components-button-destructive-tertiary-text)', - 'components-button-destructive-tertiary-text-disabled': 'var(--color-components-button-destructive-tertiary-text-disabled)', - 'components-button-destructive-tertiary-bg': 'var(--color-components-button-destructive-tertiary-bg)', - 'components-button-destructive-tertiary-bg-hover': 'var(--color-components-button-destructive-tertiary-bg-hover)', - 'components-button-destructive-tertiary-bg-disabled': 'var(--color-components-button-destructive-tertiary-bg-disabled)', - - 'components-button-destructive-ghost-text': 'var(--color-components-button-destructive-ghost-text)', - 'components-button-destructive-ghost-text-disabled': 'var(--color-components-button-destructive-ghost-text-disabled)', - 'components-button-destructive-ghost-bg-hover': 'var(--color-components-button-destructive-ghost-bg-hover)', - - 'components-button-secondary-accent-text': 'var(--color-components-button-secondary-accent-text)', - 'components-button-secondary-accent-text-disabled': 'var(--color-components-button-secondary-accent-text-disabled)', - 'components-button-secondary-accent-bg': 'var(--color-components-button-secondary-accent-bg)', - 'components-button-secondary-accent-bg-hover': 'var(--color-components-button-secondary-accent-bg-hover)', - 'components-button-secondary-accent-bg-disabled': 'var(--color-components-button-secondary-accent-bg-disabled)', - 'components-button-secondary-accent-border': 'var(--color-components-button-secondary-accent-border)', - 'components-button-secondary-accent-border-hover': 'var(--color-components-button-secondary-accent-border-hover)', - 'components-button-secondary-accent-border-disabled': 'var(--color-components-button-secondary-accent-border-disabled)', - - 'components-button-indigo-bg': 'var(--color-components-button-indigo-bg)', - 'components-button-indigo-bg-hover': 'var(--color-components-button-indigo-bg-hover)', - 'components-button-indigo-bg-disabled': 'var(--color-components-button-indigo-bg-disabled)', - - 'components-button-debug-text': 'var(--color-components-button-debug-text)', - 'components-button-debug-text-disabled': 'var(--color-components-button-debug-text-disabled)', - 'components-button-debug-bg': 'var(--color-components-button-debug-bg)', - 'components-button-debug-bg-hover': 'var(--color-components-button-debug-bg-hover)', - 'components-button-debug-bg-disabled': 'var(--color-components-button-debug-bg-disabled)', - 'components-button-debug-border': 'var(--color-components-button-debug-border)', - 'components-button-debug-border-hover': 'var(--color-components-button-debug-border-hover)', - 'components-button-debug-border-disabled': 'var(--color-components-button-debug-border-disabled)', - - 'components-button-button-seam': 'var(--color-components-button-button-seam)', - - 'components-checkbox-icon': 'var(--color-components-checkbox-icon)', - 'components-checkbox-icon-disabled': 'var(--color-components-checkbox-icon-disabled)', - 'components-checkbox-bg': 'var(--color-components-checkbox-bg)', - 'components-checkbox-bg-hover': 'var(--color-components-checkbox-bg-hover)', - 'components-checkbox-bg-disabled': 'var(--color-components-checkbox-bg-disabled)', - 'components-checkbox-border': 'var(--color-components-checkbox-border)', - 'components-checkbox-border-hover': 'var(--color-components-checkbox-border-hover)', - 'components-checkbox-border-disabled': 'var(--color-components-checkbox-border-disabled)', - 'components-checkbox-bg-unchecked': 'var(--color-components-checkbox-bg-unchecked)', - 'components-checkbox-bg-unchecked-hover': 'var(--color-components-checkbox-bg-unchecked-hover)', - 'components-checkbox-bg-disabled-checked': 'var(--color-components-checkbox-bg-disabled-checked)', - - 'components-radio-border-checked': 'var(--color-components-radio-border-checked)', - 'components-radio-border-checked-hover': 'var(--color-components-radio-border-checked-hover)', - 'components-radio-border-checked-disabled': 'var(--color-components-radio-border-checked-disabled)', - 'components-radio-bg-disabled': 'var(--color-components-radio-bg-disabled)', - 'components-radio-border': 'var(--color-components-radio-border)', - 'components-radio-border-hover': 'var(--color-components-radio-border-hover)', - 'components-radio-border-disabled': 'var(--color-components-radio-border-disabled)', - 'components-radio-bg': 'var(--color-components-radio-bg)', - 'components-radio-bg-hover': 'var(--color-components-radio-bg-hover)', - - 'components-toggle-knob': 'var(--color-components-toggle-knob)', - 'components-toggle-knob-disabled': 'var(--color-components-toggle-knob-disabled)', - 'components-toggle-bg': 'var(--color-components-toggle-bg)', - 'components-toggle-bg-hover': 'var(--color-components-toggle-bg-hover)', - 'components-toggle-bg-disabled': 'var(--color-components-toggle-bg-disabled)', - 'components-toggle-bg-unchecked': 'var(--color-components-toggle-bg-unchecked)', - 'components-toggle-bg-unchecked-hover': 'var(--color-components-toggle-bg-unchecked-hover)', - 'components-toggle-bg-unchecked-disabled': 'var(--color-components-toggle-bg-unchecked-disabled)', - 'components-toggle-knob-hover': 'var(--color-components-toggle-knob-hover)', - - 'components-card-bg': 'var(--color-components-card-bg)', - 'components-card-border': 'var(--color-components-card-border)', - 'components-card-bg-alt': 'var(--color-components-card-bg-alt)', - 'components-card-bg-transparent': 'var(--color-components-card-bg-transparent)', - 'components-card-bg-alt-transparent': 'var(--color-components-card-bg-alt-transparent)', - - 'components-menu-item-text': 'var(--color-components-menu-item-text)', - 'components-menu-item-text-active': 'var(--color-components-menu-item-text-active)', - 'components-menu-item-text-hover': 'var(--color-components-menu-item-text-hover)', - 'components-menu-item-text-active-accent': 'var(--color-components-menu-item-text-active-accent)', - 'components-menu-item-bg-active': 'var(--color-components-menu-item-bg-active)', - 'components-menu-item-bg-hover': 'var(--color-components-menu-item-bg-hover)', - - 'components-panel-bg': 'var(--color-components-panel-bg)', - 'components-panel-bg-blur': 'var(--color-components-panel-bg-blur)', - 'components-panel-border': 'var(--color-components-panel-border)', - 'components-panel-border-subtle': 'var(--color-components-panel-border-subtle)', - 'components-panel-gradient-2': 'var(--color-components-panel-gradient-2)', - 'components-panel-gradient-1': 'var(--color-components-panel-gradient-1)', - 'components-panel-bg-alt': 'var(--color-components-panel-bg-alt)', - 'components-panel-on-panel-item-bg': 'var(--color-components-panel-on-panel-item-bg)', - 'components-panel-on-panel-item-bg-hover': 'var(--color-components-panel-on-panel-item-bg-hover)', - 'components-panel-on-panel-item-bg-alt': 'var(--color-components-panel-on-panel-item-bg-alt)', - 'components-panel-on-panel-item-bg-transparent': 'var(--color-components-panel-on-panel-item-bg-transparent)', - 'components-panel-on-panel-item-bg-hover-transparent': 'var(--color-components-panel-on-panel-item-bg-hover-transparent)', - 'components-panel-on-panel-item-bg-destructive-hover-transparent': 'var(--color-components-panel-on-panel-item-bg-destructive-hover-transparent)', - - 'components-panel-bg-transparent': 'var(--color-components-panel-bg-transparent)', - 'components-panel-bg-blur-burn': 'var(--color-components-panel-bg-blur-burn)', - - 'components-main-nav-nav-button-text': 'var(--color-components-main-nav-nav-button-text)', - 'components-main-nav-nav-button-text-active': 'var(--color-components-main-nav-nav-button-text-active)', - 'components-main-nav-nav-button-bg': 'var(--color-components-main-nav-nav-button-bg)', - 'components-main-nav-nav-button-bg-active': 'var(--color-components-main-nav-nav-button-bg-active)', - 'components-main-nav-nav-button-border': 'var(--color-components-main-nav-nav-button-border)', - 'components-main-nav-nav-button-bg-hover': 'var(--color-components-main-nav-nav-button-bg-hover)', - - 'components-main-nav-nav-user-border': 'var(--color-components-main-nav-nav-user-border)', - - 'components-main-nav-text': 'var(--color-components-main-nav-text)', - 'components-main-nav-text-active': 'var(--color-components-main-nav-text-active)', - 'components-main-nav-glass-edge-highlight-first': 'var(--color-components-main-nav-glass-edge-highlight-first)', - 'components-main-nav-glass-edge-highlight-middle': 'var(--color-components-main-nav-glass-edge-highlight-middle)', - 'components-main-nav-glass-edge-highlight-end': 'var(--color-components-main-nav-glass-edge-highlight-end)', - - 'components-main-nav-glass-edge-reflection-first': 'var(--color-components-main-nav-glass-edge-reflection-first)', - 'components-main-nav-glass-edge-reflection-middle': 'var(--color-components-main-nav-glass-edge-reflection-middle)', - 'components-main-nav-glass-edge-reflection-end': 'var(--color-components-main-nav-glass-edge-reflection-end)', - - 'components-main-nav-glass-surface-first': 'var(--color-components-main-nav-glass-surface-first)', - 'components-main-nav-glass-surface-middle-1': 'var(--color-components-main-nav-glass-surface-middle-1)', - 'components-main-nav-glass-surface-middle-2': 'var(--color-components-main-nav-glass-surface-middle-2)', - 'components-main-nav-glass-surface-end': 'var(--color-components-main-nav-glass-surface-end)', - - 'components-main-nav-glass-inner-glow': 'var(--color-components-main-nav-glass-inner-glow)', - 'components-main-nav-glass-shadow-reflection': 'var(--color-components-main-nav-glass-shadow-reflection)', - 'components-main-nav-glass-shadow-reflection-glow': 'var(--color-components-main-nav-glass-shadow-reflection-glow)', - 'components-main-nav-glass-text-glow': 'var(--color-components-main-nav-glass-text-glow)', - - 'components-slider-knob': 'var(--color-components-slider-knob)', - 'components-slider-knob-hover': 'var(--color-components-slider-knob-hover)', - 'components-slider-knob-disabled': 'var(--color-components-slider-knob-disabled)', - 'components-slider-range': 'var(--color-components-slider-range)', - 'components-slider-track': 'var(--color-components-slider-track)', - 'components-slider-knob-border-hover': 'var(--color-components-slider-knob-border-hover)', - 'components-slider-knob-border': 'var(--color-components-slider-knob-border)', - - 'components-segmented-control-item-active-bg': 'var(--color-components-segmented-control-item-active-bg)', - 'components-segmented-control-item-active-border': 'var(--color-components-segmented-control-item-active-border)', - 'components-segmented-control-bg-normal': 'var(--color-components-segmented-control-bg-normal)', - 'components-segmented-control-item-active-accent-bg': 'var(--color-components-segmented-control-item-active-accent-bg)', - 'components-segmented-control-item-active-accent-border': 'var(--color-components-segmented-control-item-active-accent-border)', - - 'components-option-card-option-bg': 'var(--color-components-option-card-option-bg)', - 'components-option-card-option-selected-bg': 'var(--color-components-option-card-option-selected-bg)', - 'components-option-card-option-selected-border': 'var(--color-components-option-card-option-selected-border)', - 'components-option-card-option-border': 'var(--color-components-option-card-option-border)', - 'components-option-card-option-bg-hover': 'var(--color-components-option-card-option-bg-hover)', - 'components-option-card-option-border-hover': 'var(--color-components-option-card-option-border-hover)', - - 'components-tab-active': 'var(--color-components-tab-active)', - - 'components-badge-white-to-dark': 'var(--color-components-badge-white-to-dark)', - 'components-badge-status-light-success-bg': 'var(--color-components-badge-status-light-success-bg)', - 'components-badge-status-light-success-border-inner': 'var(--color-components-badge-status-light-success-border-inner)', - 'components-badge-status-light-success-halo': 'var(--color-components-badge-status-light-success-halo)', - - 'components-badge-status-light-border-outer': 'var(--color-components-badge-status-light-border-outer)', - 'components-badge-status-light-high-light': 'var(--color-components-badge-status-light-high-light)', - 'components-badge-status-light-warning-bg': 'var(--color-components-badge-status-light-warning-bg)', - 'components-badge-status-light-warning-border-inner': 'var(--color-components-badge-status-light-warning-border-inner)', - 'components-badge-status-light-warning-halo': 'var(--color-components-badge-status-light-warning-halo)', - - 'components-badge-status-light-error-bg': 'var(--color-components-badge-status-light-error-bg)', - 'components-badge-status-light-error-border-inner': 'var(--color-components-badge-status-light-error-border-inner)', - 'components-badge-status-light-error-halo': 'var(--color-components-badge-status-light-error-halo)', - - 'components-badge-status-light-normal-bg': 'var(--color-components-badge-status-light-normal-bg)', - 'components-badge-status-light-normal-border-inner': 'var(--color-components-badge-status-light-normal-border-inner)', - 'components-badge-status-light-normal-halo': 'var(--color-components-badge-status-light-normal-halo)', - - 'components-badge-status-light-disabled-bg': 'var(--color-components-badge-status-light-disabled-bg)', - 'components-badge-status-light-disabled-border-inner': 'var(--color-components-badge-status-light-disabled-border-inner)', - 'components-badge-status-light-disabled-halo': 'var(--color-components-badge-status-light-disabled-halo)', - - 'components-badge-bg-green-soft': 'var(--color-components-badge-bg-green-soft)', - 'components-badge-bg-orange-soft': 'var(--color-components-badge-bg-orange-soft)', - 'components-badge-bg-red-soft': 'var(--color-components-badge-bg-red-soft)', - 'components-badge-bg-blue-light-soft': 'var(--color-components-badge-bg-blue-light-soft)', - 'components-badge-bg-gray-soft': 'var(--color-components-badge-bg-gray-soft)', - 'components-badge-bg-dimm': 'var(--color-components-badge-bg-dimm)', - - 'components-chart-line': 'var(--color-components-chart-line)', - 'components-chart-area-1': 'var(--color-components-chart-area-1)', - 'components-chart-area-2': 'var(--color-components-chart-area-2)', - 'components-chart-current-1': 'var(--color-components-chart-current-1)', - 'components-chart-current-2': 'var(--color-components-chart-current-2)', - 'components-chart-bg': 'var(--color-components-chart-bg)', - - 'components-actionbar-bg': 'var(--color-components-actionbar-bg)', - 'components-actionbar-border': 'var(--color-components-actionbar-border)', - 'components-actionbar-bg-accent': 'var(--color-components-actionbar-bg-accent)', - 'components-actionbar-border-accent': 'var(--color-components-actionbar-border-accent)', - - 'components-dropzone-bg-alt': 'var(--color-components-dropzone-bg-alt)', - 'components-dropzone-bg': 'var(--color-components-dropzone-bg)', - 'components-dropzone-bg-accent': 'var(--color-components-dropzone-bg-accent)', - 'components-dropzone-border': 'var(--color-components-dropzone-border)', - 'components-dropzone-border-alt': 'var(--color-components-dropzone-border-alt)', - 'components-dropzone-border-accent': 'var(--color-components-dropzone-border-accent)', - - 'components-progress-brand-progress': 'var(--color-components-progress-brand-progress)', - 'components-progress-brand-border': 'var(--color-components-progress-brand-border)', - 'components-progress-brand-bg': 'var(--color-components-progress-brand-bg)', - - 'components-progress-white-progress': 'var(--color-components-progress-white-progress)', - 'components-progress-white-border': 'var(--color-components-progress-white-border)', - 'components-progress-white-bg': 'var(--color-components-progress-white-bg)', - - 'components-progress-gray-progress': 'var(--color-components-progress-gray-progress)', - 'components-progress-gray-border': 'var(--color-components-progress-gray-border)', - 'components-progress-gray-bg': 'var(--color-components-progress-gray-bg)', - - 'components-progress-warning-progress': 'var(--color-components-progress-warning-progress)', - 'components-progress-warning-border': 'var(--color-components-progress-warning-border)', - 'components-progress-warning-bg': 'var(--color-components-progress-warning-bg)', - - 'components-progress-error-progress': 'var(--color-components-progress-error-progress)', - 'components-progress-error-border': 'var(--color-components-progress-error-border)', - 'components-progress-error-bg': 'var(--color-components-progress-error-bg)', - - 'components-chat-input-audio-bg': 'var(--color-components-chat-input-audio-bg)', - 'components-chat-input-audio-wave-default': 'var(--color-components-chat-input-audio-wave-default)', - 'components-chat-input-bg-mask-1': 'var(--color-components-chat-input-bg-mask-1)', - 'components-chat-input-bg-mask-2': 'var(--color-components-chat-input-bg-mask-2)', - 'components-chat-input-border': 'var(--color-components-chat-input-border)', - 'components-chat-input-audio-wave-active': 'var(--color-components-chat-input-audio-wave-active)', - 'components-chat-input-audio-bg-alt': 'var(--color-components-chat-input-audio-bg-alt)', - - 'components-avatar-shape-fill-stop-0': 'var(--color-components-avatar-shape-fill-stop-0)', - 'components-avatar-shape-fill-stop-100': 'var(--color-components-avatar-shape-fill-stop-100)', - - 'components-avatar-bg-mask-stop-0': 'var(--color-components-avatar-bg-mask-stop-0)', - 'components-avatar-bg-mask-stop-100': 'var(--color-components-avatar-bg-mask-stop-100)', - - 'components-avatar-default-avatar-bg': 'var(--color-components-avatar-default-avatar-bg)', - 'components-avatar-mask-darkmode-dimmed': 'var(--color-components-avatar-mask-darkmode-dimmed)', - - 'components-label-gray': 'var(--color-components-label-gray)', - - 'components-premium-badge-blue-bg-stop-0': 'var(--color-components-premium-badge-blue-bg-stop-0)', - 'components-premium-badge-blue-bg-stop-100': 'var(--color-components-premium-badge-blue-bg-stop-100)', - 'components-premium-badge-blue-stroke-stop-0': 'var(--color-components-premium-badge-blue-stroke-stop-0)', - 'components-premium-badge-blue-stroke-stop-100': 'var(--color-components-premium-badge-blue-stroke-stop-100)', - 'components-premium-badge-blue-text-stop-0': 'var(--color-components-premium-badge-blue-text-stop-0)', - 'components-premium-badge-blue-text-stop-100': 'var(--color-components-premium-badge-blue-text-stop-100)', - 'components-premium-badge-blue-glow': 'var(--color-components-premium-badge-blue-glow)', - 'components-premium-badge-blue-bg-stop-0-hover': 'var(--color-components-premium-badge-blue-bg-stop-0-hover)', - 'components-premium-badge-blue-bg-stop-100-hover': 'var(--color-components-premium-badge-blue-bg-stop-100-hover)', - 'components-premium-badge-blue-glow-hover': 'var(--color-components-premium-badge-blue-glow-hover)', - 'components-premium-badge-blue-stroke-stop-0-hover': 'var(--color-components-premium-badge-blue-stroke-stop-0-hover)', - 'components-premium-badge-blue-stroke-stop-100-hover': 'var(--color-components-premium-badge-blue-stroke-stop-100-hover)', - - 'components-premium-badge-highlight-stop-0': 'var(--color-components-premium-badge-highlight-stop-0)', - 'components-premium-badge-highlight-stop-100': 'var(--color-components-premium-badge-highlight-stop-100)', - 'components-premium-badge-indigo-bg-stop-0': 'var(--color-components-premium-badge-indigo-bg-stop-0)', - 'components-premium-badge-indigo-bg-stop-100': 'var(--color-components-premium-badge-indigo-bg-stop-100)', - 'components-premium-badge-indigo-stroke-stop-0': 'var(--color-components-premium-badge-indigo-stroke-stop-0)', - 'components-premium-badge-indigo-stroke-stop-100': 'var(--color-components-premium-badge-indigo-stroke-stop-100)', - 'components-premium-badge-indigo-text-stop-0': 'var(--color-components-premium-badge-indigo-text-stop-0)', - 'components-premium-badge-indigo-text-stop-100': 'var(--color-components-premium-badge-indigo-text-stop-100)', - 'components-premium-badge-indigo-glow': 'var(--color-components-premium-badge-indigo-glow)', - 'components-premium-badge-indigo-glow-hover': 'var(--color-components-premium-badge-indigo-glow-hover)', - 'components-premium-badge-indigo-bg-stop-0-hover': 'var(--color-components-premium-badge-indigo-bg-stop-0-hover)', - 'components-premium-badge-indigo-bg-stop-100-hover': 'var(--color-components-premium-badge-indigo-bg-stop-100-hover)', - 'components-premium-badge-indigo-stroke-stop-0-hover': 'var(--color-components-premium-badge-indigo-stroke-stop-0-hover)', - 'components-premium-badge-indigo-stroke-stop-100-hover': 'var(--color-components-premium-badge-indigo-stroke-stop-100-hover)', - - 'components-premium-badge-grey-bg-stop-0': 'var(--color-components-premium-badge-grey-bg-stop-0)', - 'components-premium-badge-grey-bg-stop-100': 'var(--color-components-premium-badge-grey-bg-stop-100)', - 'components-premium-badge-grey-stroke-stop-0': 'var(--color-components-premium-badge-grey-stroke-stop-0)', - 'components-premium-badge-grey-stroke-stop-100': 'var(--color-components-premium-badge-grey-stroke-stop-100)', - 'components-premium-badge-grey-text-stop-0': 'var(--color-components-premium-badge-grey-text-stop-0)', - 'components-premium-badge-grey-text-stop-100': 'var(--color-components-premium-badge-grey-text-stop-100)', - 'components-premium-badge-grey-glow': 'var(--color-components-premium-badge-grey-glow)', - 'components-premium-badge-grey-glow-hover': 'var(--color-components-premium-badge-grey-glow-hover)', - 'components-premium-badge-grey-bg-stop-0-hover': 'var(--color-components-premium-badge-grey-bg-stop-0-hover)', - 'components-premium-badge-grey-bg-stop-100-hover': 'var(--color-components-premium-badge-grey-bg-stop-100-hover)', - 'components-premium-badge-grey-stroke-stop-0-hover': 'var(--color-components-premium-badge-grey-stroke-stop-0-hover)', - 'components-premium-badge-grey-stroke-stop-100-hover': 'var(--color-components-premium-badge-grey-stroke-stop-100-hover)', - - 'components-premium-badge-orange-bg-stop-0': 'var(--color-components-premium-badge-orange-bg-stop-0)', - 'components-premium-badge-orange-bg-stop-100': 'var(--color-components-premium-badge-orange-bg-stop-100)', - 'components-premium-badge-orange-stroke-stop-0': 'var(--color-components-premium-badge-orange-stroke-stop-0)', - 'components-premium-badge-orange-stroke-stop-100': 'var(--color-components-premium-badge-orange-stroke-stop-100)', - 'components-premium-badge-orange-text-stop-0': 'var(--color-components-premium-badge-orange-text-stop-0)', - 'components-premium-badge-orange-text-stop-100': 'var(--color-components-premium-badge-orange-text-stop-100)', - 'components-premium-badge-orange-glow': 'var(--color-components-premium-badge-orange-glow)', - 'components-premium-badge-orange-glow-hover': 'var(--color-components-premium-badge-orange-glow-hover)', - 'components-premium-badge-orange-bg-stop-0-hover': 'var(--color-components-premium-badge-orange-bg-stop-0-hover)', - 'components-premium-badge-orange-bg-stop-100-hover': 'var(--color-components-premium-badge-orange-bg-stop-100-hover)', - 'components-premium-badge-orange-stroke-stop-0-hover': 'var(--color-components-premium-badge-orange-stroke-stop-0-hover)', - 'components-premium-badge-orange-stroke-stop-100-hover': 'var(--color-components-premium-badge-orange-stroke-stop-100-hover)', - - 'components-progress-bar-bg': 'var(--color-components-progress-bar-bg)', - 'components-progress-bar-progress': 'var(--color-components-progress-bar-progress)', - 'components-progress-bar-border': 'var(--color-components-progress-bar-border)', - 'components-progress-bar-progress-solid': 'var(--color-components-progress-bar-progress-solid)', - 'components-progress-bar-progress-highlight': 'var(--color-components-progress-bar-progress-highlight)', - - 'components-icon-bg-red-solid': 'var(--color-components-icon-bg-red-solid)', - 'components-icon-bg-rose-solid': 'var(--color-components-icon-bg-rose-solid)', - 'components-icon-bg-pink-solid': 'var(--color-components-icon-bg-pink-solid)', - 'components-icon-bg-orange-dark-solid': 'var(--color-components-icon-bg-orange-dark-solid)', - 'components-icon-bg-yellow-solid': 'var(--color-components-icon-bg-yellow-solid)', - 'components-icon-bg-green-solid': 'var(--color-components-icon-bg-green-solid)', - 'components-icon-bg-teal-solid': 'var(--color-components-icon-bg-teal-solid)', - 'components-icon-bg-blue-light-solid': 'var(--color-components-icon-bg-blue-light-solid)', - 'components-icon-bg-blue-solid': 'var(--color-components-icon-bg-blue-solid)', - 'components-icon-bg-indigo-solid': 'var(--color-components-icon-bg-indigo-solid)', - 'components-icon-bg-violet-solid': 'var(--color-components-icon-bg-violet-solid)', - 'components-icon-bg-midnight-solid': 'var(--color-components-icon-bg-midnight-solid)', - 'components-icon-bg-rose-soft': 'var(--color-components-icon-bg-rose-soft)', - 'components-icon-bg-pink-soft': 'var(--color-components-icon-bg-pink-soft)', - 'components-icon-bg-orange-dark-soft': 'var(--color-components-icon-bg-orange-dark-soft)', - 'components-icon-bg-yellow-soft': 'var(--color-components-icon-bg-yellow-soft)', - 'components-icon-bg-green-soft': 'var(--color-components-icon-bg-green-soft)', - 'components-icon-bg-teal-soft': 'var(--color-components-icon-bg-teal-soft)', - 'components-icon-bg-blue-light-soft': 'var(--color-components-icon-bg-blue-light-soft)', - 'components-icon-bg-blue-soft': 'var(--color-components-icon-bg-blue-soft)', - 'components-icon-bg-indigo-soft': 'var(--color-components-icon-bg-indigo-soft)', - 'components-icon-bg-violet-soft': 'var(--color-components-icon-bg-violet-soft)', - 'components-icon-bg-midnight-soft': 'var(--color-components-icon-bg-midnight-soft)', - 'components-icon-bg-red-soft': 'var(--color-components-icon-bg-red-soft)', - 'components-icon-bg-orange-solid': 'var(--color-components-icon-bg-orange-solid)', - 'components-icon-bg-orange-soft': 'var(--color-components-icon-bg-orange-soft)', - - 'components-marketplace-header-bg': 'var(--color-components-marketplace-header-bg)', - - 'text-primary': 'var(--color-text-primary)', - 'text-secondary': 'var(--color-text-secondary)', - 'text-tertiary': 'var(--color-text-tertiary)', - 'text-quaternary': 'var(--color-text-quaternary)', - 'text-destructive': 'var(--color-text-destructive)', - 'text-success': 'var(--color-text-success)', - 'text-warning': 'var(--color-text-warning)', - 'text-destructive-secondary': 'var(--color-text-destructive-secondary)', - 'text-success-secondary': 'var(--color-text-success-secondary)', - 'text-warning-secondary': 'var(--color-text-warning-secondary)', - 'text-accent': 'var(--color-text-accent)', - 'text-primary-on-surface': 'var(--color-text-primary-on-surface)', - 'text-placeholder': 'var(--color-text-placeholder)', - 'text-disabled': 'var(--color-text-disabled)', - 'text-accent-secondary': 'var(--color-text-accent-secondary)', - 'text-accent-light-mode-only': 'var(--color-text-accent-light-mode-only)', - 'text-text-selected': 'var(--color-text-text-selected)', - 'text-secondary-on-surface': 'var(--color-text-secondary-on-surface)', - 'text-logo-text': 'var(--color-text-logo-text)', - 'text-empty-state-icon': 'var(--color-text-empty-state-icon)', - 'text-inverted': 'var(--color-text-inverted)', - 'text-inverted-dimmed': 'var(--color-text-inverted-dimmed)', - - 'background-body': 'var(--color-background-body)', - 'background-default-subtle': 'var(--color-background-default-subtle)', - 'background-neutral-subtle': 'var(--color-background-neutral-subtle)', - 'background-sidenav-bg': 'var(--color-background-sidenav-bg)', - 'background-default': 'var(--color-background-default)', - 'background-soft': 'var(--color-background-soft)', - 'background-gradient-bg-fill-chat-bg-1': 'var(--color-background-gradient-bg-fill-chat-bg-1)', - 'background-gradient-bg-fill-chat-bg-2': 'var(--color-background-gradient-bg-fill-chat-bg-2)', - 'background-gradient-bg-fill-chat-bubble-bg-1': 'var(--color-background-gradient-bg-fill-chat-bubble-bg-1)', - 'background-gradient-bg-fill-chat-bubble-bg-2': 'var(--color-background-gradient-bg-fill-chat-bubble-bg-2)', - 'background-gradient-bg-fill-debug-bg-1': 'var(--color-background-gradient-bg-fill-debug-bg-1)', - 'background-gradient-bg-fill-debug-bg-2': 'var(--color-background-gradient-bg-fill-debug-bg-2)', - - 'background-gradient-mask-gray': 'var(--color-background-gradient-mask-gray)', - 'background-gradient-mask-transparent': 'var(--color-background-gradient-mask-transparent)', - 'background-gradient-mask-input-clear-2': 'var(--color-background-gradient-mask-input-clear-2)', - 'background-gradient-mask-input-clear-1': 'var(--color-background-gradient-mask-input-clear-1)', - 'background-gradient-mask-transparent-dark': 'var(--color-background-gradient-mask-transparent-dark)', - 'background-gradient-mask-side-panel-2': 'var(--color-background-gradient-mask-side-panel-2)', - 'background-gradient-mask-side-panel-1': 'var(--color-background-gradient-mask-side-panel-1)', - - 'background-default-burn': 'var(--color-background-default-burn)', - 'background-overlay-fullscreen': 'var(--color-background-overlay-fullscreen)', - 'background-default-lighter': 'var(--color-background-default-lighter)', - 'background-section': 'var(--color-background-section)', - 'background-interaction-from-bg-1': 'var(--color-background-interaction-from-bg-1)', - 'background-interaction-from-bg-2': 'var(--color-background-interaction-from-bg-2)', - 'background-section-burn': 'var(--color-background-section-burn)', - 'background-default-dodge': 'var(--color-background-default-dodge)', - 'background-overlay': 'var(--color-background-overlay)', - 'background-default-dimmed': 'var(--color-background-default-dimmed)', - 'background-default-hover': 'var(--color-background-default-hover)', - 'background-overlay-alt': 'var(--color-background-overlay-alt)', - 'background-surface-white': 'var(--color-background-surface-white)', - 'background-overlay-destructive': 'var(--color-background-overlay-destructive)', - 'background-overlay-backdrop': 'var(--color-background-overlay-backdrop)', - 'background-body-transparent': 'var(--color-background-body-transparent)', - 'background-section-burn-inverted': 'var(--color-background-section-burn-inverted)', - 'background-default-hover-alpha-0': 'var(--color-background-default-hover-alpha-0)', - - 'shadow-shadow-1': 'var(--color-shadow-shadow-1)', - 'shadow-shadow-3': 'var(--color-shadow-shadow-3)', - 'shadow-shadow-4': 'var(--color-shadow-shadow-4)', - 'shadow-shadow-5': 'var(--color-shadow-shadow-5)', - 'shadow-shadow-6': 'var(--color-shadow-shadow-6)', - 'shadow-shadow-7': 'var(--color-shadow-shadow-7)', - 'shadow-shadow-8': 'var(--color-shadow-shadow-8)', - 'shadow-shadow-9': 'var(--color-shadow-shadow-9)', - 'shadow-shadow-2': 'var(--color-shadow-shadow-2)', - 'shadow-shadow-10': 'var(--color-shadow-shadow-10)', - - 'workflow-block-border': 'var(--color-workflow-block-border)', - 'workflow-block-parma-bg': 'var(--color-workflow-block-parma-bg)', - 'workflow-block-bg': 'var(--color-workflow-block-bg)', - 'workflow-block-bg-transparent': 'var(--color-workflow-block-bg-transparent)', - 'workflow-block-border-highlight': 'var(--color-workflow-block-border-highlight)', - 'workflow-block-wrapper-bg-1': 'var(--color-workflow-block-wrapper-bg-1)', - 'workflow-block-wrapper-bg-2': 'var(--color-workflow-block-wrapper-bg-2)', - - 'workflow-canvas-workflow-dot-color': 'var(--color-workflow-canvas-workflow-dot-color)', - 'workflow-canvas-workflow-bg': 'var(--color-workflow-canvas-workflow-bg)', - 'workflow-canvas-workflow-top-bar-1': 'var(--color-workflow-canvas-workflow-top-bar-1)', - 'workflow-canvas-workflow-top-bar-2': 'var(--color-workflow-canvas-workflow-top-bar-2)', - 'workflow-canvas-canvas-overlay': 'var(--color-workflow-canvas-canvas-overlay)', - - 'workflow-link-line-active': 'var(--color-workflow-link-line-active)', - 'workflow-link-line-normal': 'var(--color-workflow-link-line-normal)', - 'workflow-link-line-handle': 'var(--color-workflow-link-line-handle)', - 'workflow-link-line-normal-transparent': 'var(--color-workflow-link-line-normal-transparent)', - 'workflow-link-line-failure-active': 'var(--color-workflow-link-line-failure-active)', - 'workflow-link-line-failure-handle': 'var(--color-workflow-link-line-failure-handle)', - 'workflow-link-line-failure-button-bg': 'var(--color-workflow-link-line-failure-button-bg)', - 'workflow-link-line-failure-button-hover': 'var(--color-workflow-link-line-failure-button-hover)', - - 'workflow-link-line-success-active': 'var(--color-workflow-link-line-success-active)', - 'workflow-link-line-success-handle': 'var(--color-workflow-link-line-success-handle)', - - 'workflow-link-line-error-active': 'var(--color-workflow-link-line-error-active)', - 'workflow-link-line-error-handle': 'var(--color-workflow-link-line-error-handle)', - - 'workflow-minimap-bg': 'var(--color-workflow-minimap-bg)', - 'workflow-minimap-block': 'var(--color-workflow-minimap-block)', - - 'workflow-display-success-bg': 'var(--color-workflow-display-success-bg)', - 'workflow-display-success-border-1': 'var(--color-workflow-display-success-border-1)', - 'workflow-display-success-border-2': 'var(--color-workflow-display-success-border-2)', - 'workflow-display-success-vignette-color': 'var(--color-workflow-display-success-vignette-color)', - 'workflow-display-success-bg-line-pattern': 'var(--color-workflow-display-success-bg-line-pattern)', - - 'workflow-display-glass-1': 'var(--color-workflow-display-glass-1)', - 'workflow-display-glass-2': 'var(--color-workflow-display-glass-2)', - 'workflow-display-vignette-dark': 'var(--color-workflow-display-vignette-dark)', - 'workflow-display-highlight': 'var(--color-workflow-display-highlight)', - 'workflow-display-outline': 'var(--color-workflow-display-outline)', - 'workflow-display-error-bg': 'var(--color-workflow-display-error-bg)', - 'workflow-display-error-bg-line-pattern': 'var(--color-workflow-display-error-bg-line-pattern)', - 'workflow-display-error-border-1': 'var(--color-workflow-display-error-border-1)', - 'workflow-display-error-border-2': 'var(--color-workflow-display-error-border-2)', - 'workflow-display-error-vignette-color': 'var(--color-workflow-display-error-vignette-color)', - - 'workflow-display-warning-bg': 'var(--color-workflow-display-warning-bg)', - 'workflow-display-warning-bg-line-pattern': 'var(--color-workflow-display-warning-bg-line-pattern)', - 'workflow-display-warning-border-1': 'var(--color-workflow-display-warning-border-1)', - 'workflow-display-warning-border-2': 'var(--color-workflow-display-warning-border-2)', - 'workflow-display-warning-vignette-color': 'var(--color-workflow-display-warning-vignette-color)', - - 'workflow-display-normal-bg': 'var(--color-workflow-display-normal-bg)', - 'workflow-display-normal-bg-line-pattern': 'var(--color-workflow-display-normal-bg-line-pattern)', - 'workflow-display-normal-border-1': 'var(--color-workflow-display-normal-border-1)', - 'workflow-display-normal-border-2': 'var(--color-workflow-display-normal-border-2)', - 'workflow-display-normal-vignette-color': 'var(--color-workflow-display-normal-vignette-color)', - - 'workflow-display-disabled-bg': 'var(--color-workflow-display-disabled-bg)', - 'workflow-display-disabled-bg-line-pattern': 'var(--color-workflow-display-disabled-bg-line-pattern)', - 'workflow-display-disabled-border-1': 'var(--color-workflow-display-disabled-border-1)', - 'workflow-display-disabled-border-2': 'var(--color-workflow-display-disabled-border-2)', - 'workflow-display-disabled-vignette-color': 'var(--color-workflow-display-disabled-vignette-color)', - 'workflow-display-disabled-outline': 'var(--color-workflow-display-disabled-outline)', - - 'workflow-workflow-progress-bg-1': 'var(--color-workflow-workflow-progress-bg-1)', - 'workflow-workflow-progress-bg-2': 'var(--color-workflow-workflow-progress-bg-2)', - - 'workflow-debug-run-status-bg': 'var(--color-workflow-debug-run-status-bg)', - 'workflow-debug-breakpoint': 'var(--color-workflow-debug-breakpoint)', - 'workflow-debug-text': 'var(--color-workflow-debug-text)', - 'workflow-debug-text-disabled': 'var(--color-workflow-debug-text-disabled)', - 'workflow-debug-run-status-bg-alt': 'var(--color-workflow-debug-run-status-bg-alt)', - - 'workflow-test-run-run-status-bg': 'var(--color-workflow-test-run-run-status-bg)', - 'workflow-test-run-text': 'var(--color-workflow-test-run-text)', - 'workflow-test-run-run-status-bg-alt': 'var(--color-workflow-test-run-run-status-bg-alt)', - 'workflow-test-run-paused-bg': 'var(--color-workflow-test-run-paused-bg)', - 'workflow-test-run-paused-text': 'var(--color-workflow-test-run-paused-text)', - - 'divider-subtle': 'var(--color-divider-subtle)', - 'divider-regular': 'var(--color-divider-regular)', - 'divider-deep': 'var(--color-divider-deep)', - 'divider-burn': 'var(--color-divider-burn)', - 'divider-intense': 'var(--color-divider-intense)', - 'divider-solid': 'var(--color-divider-solid)', - 'divider-solid-alt': 'var(--color-divider-solid-alt)', - 'divider-accent': 'var(--color-divider-accent)', - - 'state-base-hover': 'var(--color-state-base-hover)', - 'state-base-active': 'var(--color-state-base-active)', - 'state-base-hover-alt': 'var(--color-state-base-hover-alt)', - 'state-base-handle': 'var(--color-state-base-handle)', - 'state-base-handle-hover': 'var(--color-state-base-handle-hover)', - 'state-base-hover-subtle': 'var(--color-state-base-hover-subtle)', - - 'state-accent-hover': 'var(--color-state-accent-hover)', - 'state-accent-active': 'var(--color-state-accent-active)', - 'state-accent-hover-alt': 'var(--color-state-accent-hover-alt)', - 'state-accent-solid': 'var(--color-state-accent-solid)', - 'state-accent-active-alt': 'var(--color-state-accent-active-alt)', - - 'state-destructive-hover': 'var(--color-state-destructive-hover)', - 'state-destructive-hover-alt': 'var(--color-state-destructive-hover-alt)', - 'state-destructive-active': 'var(--color-state-destructive-active)', - 'state-destructive-solid': 'var(--color-state-destructive-solid)', - 'state-destructive-border': 'var(--color-state-destructive-border)', - 'state-destructive-hover-transparent': 'var(--color-state-destructive-hover-transparent)', - - 'state-success-hover': 'var(--color-state-success-hover)', - 'state-success-hover-alt': 'var(--color-state-success-hover-alt)', - 'state-success-active': 'var(--color-state-success-active)', - 'state-success-solid': 'var(--color-state-success-solid)', - - 'state-warning-hover': 'var(--color-state-warning-hover)', - 'state-warning-hover-alt': 'var(--color-state-warning-hover-alt)', - 'state-warning-active': 'var(--color-state-warning-active)', - 'state-warning-solid': 'var(--color-state-warning-solid)', - 'state-warning-hover-transparent': 'var(--color-state-warning-hover-transparent)', - - 'effects-highlight': 'var(--color-effects-highlight)', - 'effects-highlight-lightmode-off': 'var(--color-effects-highlight-lightmode-off)', - 'effects-image-frame': 'var(--color-effects-image-frame)', - 'effects-icon-border': 'var(--color-effects-icon-border)', - 'effects-highlight-subtle': 'var(--color-effects-highlight-subtle)', - - 'util-colors-orange-dark-orange-dark-50': 'var(--color-util-colors-orange-dark-orange-dark-50)', - 'util-colors-orange-dark-orange-dark-100': 'var(--color-util-colors-orange-dark-orange-dark-100)', - 'util-colors-orange-dark-orange-dark-200': 'var(--color-util-colors-orange-dark-orange-dark-200)', - 'util-colors-orange-dark-orange-dark-300': 'var(--color-util-colors-orange-dark-orange-dark-300)', - 'util-colors-orange-dark-orange-dark-400': 'var(--color-util-colors-orange-dark-orange-dark-400)', - 'util-colors-orange-dark-orange-dark-500': 'var(--color-util-colors-orange-dark-orange-dark-500)', - 'util-colors-orange-dark-orange-dark-600': 'var(--color-util-colors-orange-dark-orange-dark-600)', - 'util-colors-orange-dark-orange-dark-700': 'var(--color-util-colors-orange-dark-orange-dark-700)', - - 'util-colors-orange-orange-50': 'var(--color-util-colors-orange-orange-50)', - 'util-colors-orange-orange-100': 'var(--color-util-colors-orange-orange-100)', - 'util-colors-orange-orange-200': 'var(--color-util-colors-orange-orange-200)', - 'util-colors-orange-orange-300': 'var(--color-util-colors-orange-orange-300)', - 'util-colors-orange-orange-400': 'var(--color-util-colors-orange-orange-400)', - 'util-colors-orange-orange-500': 'var(--color-util-colors-orange-orange-500)', - 'util-colors-orange-orange-600': 'var(--color-util-colors-orange-orange-600)', - 'util-colors-orange-orange-700': 'var(--color-util-colors-orange-orange-700)', - 'util-colors-orange-orange-100-transparent': 'var(--color-util-colors-orange-orange-100-transparent)', - - 'util-colors-pink-pink-50': 'var(--color-util-colors-pink-pink-50)', - 'util-colors-pink-pink-100': 'var(--color-util-colors-pink-pink-100)', - 'util-colors-pink-pink-200': 'var(--color-util-colors-pink-pink-200)', - 'util-colors-pink-pink-300': 'var(--color-util-colors-pink-pink-300)', - 'util-colors-pink-pink-400': 'var(--color-util-colors-pink-pink-400)', - 'util-colors-pink-pink-500': 'var(--color-util-colors-pink-pink-500)', - 'util-colors-pink-pink-600': 'var(--color-util-colors-pink-pink-600)', - 'util-colors-pink-pink-700': 'var(--color-util-colors-pink-pink-700)', - - 'util-colors-fuchsia-fuchsia-50': 'var(--color-util-colors-fuchsia-fuchsia-50)', - 'util-colors-fuchsia-fuchsia-100': 'var(--color-util-colors-fuchsia-fuchsia-100)', - 'util-colors-fuchsia-fuchsia-200': 'var(--color-util-colors-fuchsia-fuchsia-200)', - 'util-colors-fuchsia-fuchsia-300': 'var(--color-util-colors-fuchsia-fuchsia-300)', - 'util-colors-fuchsia-fuchsia-400': 'var(--color-util-colors-fuchsia-fuchsia-400)', - 'util-colors-fuchsia-fuchsia-500': 'var(--color-util-colors-fuchsia-fuchsia-500)', - 'util-colors-fuchsia-fuchsia-600': 'var(--color-util-colors-fuchsia-fuchsia-600)', - 'util-colors-fuchsia-fuchsia-700': 'var(--color-util-colors-fuchsia-fuchsia-700)', - - 'util-colors-purple-purple-50': 'var(--color-util-colors-purple-purple-50)', - 'util-colors-purple-purple-100': 'var(--color-util-colors-purple-purple-100)', - 'util-colors-purple-purple-200': 'var(--color-util-colors-purple-purple-200)', - 'util-colors-purple-purple-300': 'var(--color-util-colors-purple-purple-300)', - 'util-colors-purple-purple-400': 'var(--color-util-colors-purple-purple-400)', - 'util-colors-purple-purple-500': 'var(--color-util-colors-purple-purple-500)', - 'util-colors-purple-purple-600': 'var(--color-util-colors-purple-purple-600)', - 'util-colors-purple-purple-700': 'var(--color-util-colors-purple-purple-700)', - - 'util-colors-indigo-indigo-50': 'var(--color-util-colors-indigo-indigo-50)', - 'util-colors-indigo-indigo-100': 'var(--color-util-colors-indigo-indigo-100)', - 'util-colors-indigo-indigo-200': 'var(--color-util-colors-indigo-indigo-200)', - 'util-colors-indigo-indigo-300': 'var(--color-util-colors-indigo-indigo-300)', - 'util-colors-indigo-indigo-400': 'var(--color-util-colors-indigo-indigo-400)', - 'util-colors-indigo-indigo-500': 'var(--color-util-colors-indigo-indigo-500)', - 'util-colors-indigo-indigo-600': 'var(--color-util-colors-indigo-indigo-600)', - 'util-colors-indigo-indigo-700': 'var(--color-util-colors-indigo-indigo-700)', - - 'util-colors-blue-blue-50': 'var(--color-util-colors-blue-blue-50)', - 'util-colors-blue-blue-100': 'var(--color-util-colors-blue-blue-100)', - 'util-colors-blue-blue-200': 'var(--color-util-colors-blue-blue-200)', - 'util-colors-blue-blue-300': 'var(--color-util-colors-blue-blue-300)', - 'util-colors-blue-blue-400': 'var(--color-util-colors-blue-blue-400)', - 'util-colors-blue-blue-500': 'var(--color-util-colors-blue-blue-500)', - 'util-colors-blue-blue-600': 'var(--color-util-colors-blue-blue-600)', - 'util-colors-blue-blue-700': 'var(--color-util-colors-blue-blue-700)', - - 'util-colors-blue-light-blue-light-50': 'var(--color-util-colors-blue-light-blue-light-50)', - 'util-colors-blue-light-blue-light-100': 'var(--color-util-colors-blue-light-blue-light-100)', - 'util-colors-blue-light-blue-light-200': 'var(--color-util-colors-blue-light-blue-light-200)', - 'util-colors-blue-light-blue-light-300': 'var(--color-util-colors-blue-light-blue-light-300)', - 'util-colors-blue-light-blue-light-400': 'var(--color-util-colors-blue-light-blue-light-400)', - 'util-colors-blue-light-blue-light-500': 'var(--color-util-colors-blue-light-blue-light-500)', - 'util-colors-blue-light-blue-light-600': 'var(--color-util-colors-blue-light-blue-light-600)', - 'util-colors-blue-light-blue-light-700': 'var(--color-util-colors-blue-light-blue-light-700)', - - 'util-colors-gray-blue-gray-blue-50': 'var(--color-util-colors-gray-blue-gray-blue-50)', - 'util-colors-gray-blue-gray-blue-100': 'var(--color-util-colors-gray-blue-gray-blue-100)', - 'util-colors-gray-blue-gray-blue-200': 'var(--color-util-colors-gray-blue-gray-blue-200)', - 'util-colors-gray-blue-gray-blue-300': 'var(--color-util-colors-gray-blue-gray-blue-300)', - 'util-colors-gray-blue-gray-blue-400': 'var(--color-util-colors-gray-blue-gray-blue-400)', - 'util-colors-gray-blue-gray-blue-500': 'var(--color-util-colors-gray-blue-gray-blue-500)', - 'util-colors-gray-blue-gray-blue-600': 'var(--color-util-colors-gray-blue-gray-blue-600)', - 'util-colors-gray-blue-gray-blue-700': 'var(--color-util-colors-gray-blue-gray-blue-700)', - - 'util-colors-blue-brand-blue-brand-50': 'var(--color-util-colors-blue-brand-blue-brand-50)', - 'util-colors-blue-brand-blue-brand-100': 'var(--color-util-colors-blue-brand-blue-brand-100)', - 'util-colors-blue-brand-blue-brand-200': 'var(--color-util-colors-blue-brand-blue-brand-200)', - 'util-colors-blue-brand-blue-brand-300': 'var(--color-util-colors-blue-brand-blue-brand-300)', - 'util-colors-blue-brand-blue-brand-400': 'var(--color-util-colors-blue-brand-blue-brand-400)', - 'util-colors-blue-brand-blue-brand-500': 'var(--color-util-colors-blue-brand-blue-brand-500)', - 'util-colors-blue-brand-blue-brand-600': 'var(--color-util-colors-blue-brand-blue-brand-600)', - 'util-colors-blue-brand-blue-brand-700': 'var(--color-util-colors-blue-brand-blue-brand-700)', - - 'util-colors-red-red-50': 'var(--color-util-colors-red-red-50)', - 'util-colors-red-red-100': 'var(--color-util-colors-red-red-100)', - 'util-colors-red-red-200': 'var(--color-util-colors-red-red-200)', - 'util-colors-red-red-300': 'var(--color-util-colors-red-red-300)', - 'util-colors-red-red-400': 'var(--color-util-colors-red-red-400)', - 'util-colors-red-red-500': 'var(--color-util-colors-red-red-500)', - 'util-colors-red-red-600': 'var(--color-util-colors-red-red-600)', - 'util-colors-red-red-700': 'var(--color-util-colors-red-red-700)', - - 'util-colors-green-green-50': 'var(--color-util-colors-green-green-50)', - 'util-colors-green-green-100': 'var(--color-util-colors-green-green-100)', - 'util-colors-green-green-200': 'var(--color-util-colors-green-green-200)', - 'util-colors-green-green-300': 'var(--color-util-colors-green-green-300)', - 'util-colors-green-green-400': 'var(--color-util-colors-green-green-400)', - 'util-colors-green-green-500': 'var(--color-util-colors-green-green-500)', - 'util-colors-green-green-600': 'var(--color-util-colors-green-green-600)', - 'util-colors-green-green-700': 'var(--color-util-colors-green-green-700)', - - 'util-colors-warning-warning-50': 'var(--color-util-colors-warning-warning-50)', - 'util-colors-warning-warning-100': 'var(--color-util-colors-warning-warning-100)', - 'util-colors-warning-warning-200': 'var(--color-util-colors-warning-warning-200)', - 'util-colors-warning-warning-300': 'var(--color-util-colors-warning-warning-300)', - 'util-colors-warning-warning-400': 'var(--color-util-colors-warning-warning-400)', - 'util-colors-warning-warning-500': 'var(--color-util-colors-warning-warning-500)', - 'util-colors-warning-warning-600': 'var(--color-util-colors-warning-warning-600)', - 'util-colors-warning-warning-700': 'var(--color-util-colors-warning-warning-700)', - - 'util-colors-yellow-yellow-50': 'var(--color-util-colors-yellow-yellow-50)', - 'util-colors-yellow-yellow-100': 'var(--color-util-colors-yellow-yellow-100)', - 'util-colors-yellow-yellow-200': 'var(--color-util-colors-yellow-yellow-200)', - 'util-colors-yellow-yellow-300': 'var(--color-util-colors-yellow-yellow-300)', - 'util-colors-yellow-yellow-400': 'var(--color-util-colors-yellow-yellow-400)', - 'util-colors-yellow-yellow-500': 'var(--color-util-colors-yellow-yellow-500)', - 'util-colors-yellow-yellow-600': 'var(--color-util-colors-yellow-yellow-600)', - 'util-colors-yellow-yellow-700': 'var(--color-util-colors-yellow-yellow-700)', - - 'util-colors-teal-teal-50': 'var(--color-util-colors-teal-teal-50)', - 'util-colors-teal-teal-100': 'var(--color-util-colors-teal-teal-100)', - 'util-colors-teal-teal-200': 'var(--color-util-colors-teal-teal-200)', - 'util-colors-teal-teal-300': 'var(--color-util-colors-teal-teal-300)', - 'util-colors-teal-teal-400': 'var(--color-util-colors-teal-teal-400)', - 'util-colors-teal-teal-500': 'var(--color-util-colors-teal-teal-500)', - 'util-colors-teal-teal-600': 'var(--color-util-colors-teal-teal-600)', - 'util-colors-teal-teal-700': 'var(--color-util-colors-teal-teal-700)', - - 'util-colors-cyan-cyan-50': 'var(--color-util-colors-cyan-cyan-50)', - 'util-colors-cyan-cyan-100': 'var(--color-util-colors-cyan-cyan-100)', - 'util-colors-cyan-cyan-200': 'var(--color-util-colors-cyan-cyan-200)', - 'util-colors-cyan-cyan-300': 'var(--color-util-colors-cyan-cyan-300)', - 'util-colors-cyan-cyan-400': 'var(--color-util-colors-cyan-cyan-400)', - 'util-colors-cyan-cyan-500': 'var(--color-util-colors-cyan-cyan-500)', - 'util-colors-cyan-cyan-600': 'var(--color-util-colors-cyan-cyan-600)', - 'util-colors-cyan-cyan-700': 'var(--color-util-colors-cyan-cyan-700)', - - 'util-colors-violet-violet-50': 'var(--color-util-colors-violet-violet-50)', - 'util-colors-violet-violet-100': 'var(--color-util-colors-violet-violet-100)', - 'util-colors-violet-violet-200': 'var(--color-util-colors-violet-violet-200)', - 'util-colors-violet-violet-300': 'var(--color-util-colors-violet-violet-300)', - 'util-colors-violet-violet-400': 'var(--color-util-colors-violet-violet-400)', - 'util-colors-violet-violet-500': 'var(--color-util-colors-violet-violet-500)', - 'util-colors-violet-violet-600': 'var(--color-util-colors-violet-violet-600)', - 'util-colors-violet-violet-700': 'var(--color-util-colors-violet-violet-700)', - - 'util-colors-gray-gray-50': 'var(--color-util-colors-gray-gray-50)', - 'util-colors-gray-gray-100': 'var(--color-util-colors-gray-gray-100)', - 'util-colors-gray-gray-200': 'var(--color-util-colors-gray-gray-200)', - 'util-colors-gray-gray-300': 'var(--color-util-colors-gray-gray-300)', - 'util-colors-gray-gray-400': 'var(--color-util-colors-gray-gray-400)', - 'util-colors-gray-gray-500': 'var(--color-util-colors-gray-gray-500)', - 'util-colors-gray-gray-600': 'var(--color-util-colors-gray-gray-600)', - 'util-colors-gray-gray-700': 'var(--color-util-colors-gray-gray-700)', - - 'util-colors-green-light-green-light-50': 'var(--color-util-colors-green-light-green-light-50)', - 'util-colors-green-light-green-light-100': 'var(--color-util-colors-green-light-green-light-100)', - 'util-colors-green-light-green-light-200': 'var(--color-util-colors-green-light-green-light-200)', - 'util-colors-green-light-green-light-300': 'var(--color-util-colors-green-light-green-light-300)', - 'util-colors-green-light-green-light-500': 'var(--color-util-colors-green-light-green-light-500)', - 'util-colors-green-light-green-light-400': 'var(--color-util-colors-green-light-green-light-400)', - 'util-colors-green-light-green-light-600': 'var(--color-util-colors-green-light-green-light-600)', - 'util-colors-green-light-green-light-700': 'var(--color-util-colors-green-light-green-light-700)', - - 'util-colors-rose-rose-50': 'var(--color-util-colors-rose-rose-50)', - 'util-colors-rose-rose-100': 'var(--color-util-colors-rose-rose-100)', - 'util-colors-rose-rose-200': 'var(--color-util-colors-rose-rose-200)', - 'util-colors-rose-rose-300': 'var(--color-util-colors-rose-rose-300)', - 'util-colors-rose-rose-400': 'var(--color-util-colors-rose-rose-400)', - 'util-colors-rose-rose-500': 'var(--color-util-colors-rose-rose-500)', - 'util-colors-rose-rose-600': 'var(--color-util-colors-rose-rose-600)', - 'util-colors-rose-rose-700': 'var(--color-util-colors-rose-rose-700)', - - 'util-colors-midnight-midnight-50': 'var(--color-util-colors-midnight-midnight-50)', - 'util-colors-midnight-midnight-100': 'var(--color-util-colors-midnight-midnight-100)', - 'util-colors-midnight-midnight-200': 'var(--color-util-colors-midnight-midnight-200)', - 'util-colors-midnight-midnight-300': 'var(--color-util-colors-midnight-midnight-300)', - 'util-colors-midnight-midnight-400': 'var(--color-util-colors-midnight-midnight-400)', - 'util-colors-midnight-midnight-500': 'var(--color-util-colors-midnight-midnight-500)', - 'util-colors-midnight-midnight-600': 'var(--color-util-colors-midnight-midnight-600)', - 'util-colors-midnight-midnight-700': 'var(--color-util-colors-midnight-midnight-700)', - - 'third-party-LangChain': 'var(--color-third-party-LangChain)', - 'third-party-Langfuse': 'var(--color-third-party-Langfuse)', - 'third-party-Github': 'var(--color-third-party-Github)', - 'third-party-Github-tertiary': 'var(--color-third-party-Github-tertiary)', - 'third-party-Github-secondary': 'var(--color-third-party-Github-secondary)', - 'third-party-model-bg-openai': 'var(--color-third-party-model-bg-openai)', - 'third-party-model-bg-anthropic': 'var(--color-third-party-model-bg-anthropic)', - 'third-party-model-bg-default': 'var(--color-third-party-model-bg-default)', - - 'third-party-aws': 'var(--color-third-party-aws)', - 'third-party-aws-alt': 'var(--color-third-party-aws-alt)', - - 'saas-background': 'var(--color-saas-background)', - 'saas-pricing-grid-bg': 'var(--color-saas-pricing-grid-bg)', - 'saas-dify-blue-static': 'var(--color-saas-dify-blue-static)', - 'saas-dify-blue-static-hover': 'var(--color-saas-dify-blue-static-hover)', - 'saas-dify-blue-accessible': 'var(--color-saas-dify-blue-accessible)', - 'saas-dify-blue-inverted': 'var(--color-saas-dify-blue-inverted)', - 'saas-dify-blue-inverted-dimmed': 'var(--color-saas-dify-blue-inverted-dimmed)', - - 'saas-background-inverted': 'var(--color-saas-background-inverted)', - 'saas-background-inverted-hover': 'var(--color-saas-background-inverted-hover)', - - 'dify-logo-blue': 'var(--color-dify-logo-blue)', - 'dify-logo-black': 'var(--color-dify-logo-black)', - 'dify-logo-outline-1': 'var(--color-dify-logo-outline-1)', - 'dify-logo-outline-2': 'var(--color-dify-logo-outline-2)', - -} -export default vars diff --git a/packages/dify-ui/src/themes/theme.css b/packages/dify-ui/src/themes/theme.css new file mode 100644 index 0000000000..6fad0f39fd --- /dev/null +++ b/packages/dify-ui/src/themes/theme.css @@ -0,0 +1,822 @@ +/* Attention: Generated. Do not edit by hand. */ +/* + * Semantic design tokens. Each entry registers a Tailwind v4 utility + * (e.g. bg-components-input-bg-normal) that resolves to var(--color-...). + * Runtime values come from themes/light.css and themes/dark.css scoped + * under html[data-theme=...] — @theme inline avoids duplicating them at :root. + */ + +@theme inline { + --color-components-input-bg-normal: var(--color-components-input-bg-normal); + --color-components-input-text-placeholder: var(--color-components-input-text-placeholder); + --color-components-input-bg-hover: var(--color-components-input-bg-hover); + --color-components-input-bg-active: var(--color-components-input-bg-active); + --color-components-input-border-active: var(--color-components-input-border-active); + --color-components-input-border-destructive: var(--color-components-input-border-destructive); + --color-components-input-text-filled: var(--color-components-input-text-filled); + --color-components-input-bg-destructive: var(--color-components-input-bg-destructive); + --color-components-input-bg-disabled: var(--color-components-input-bg-disabled); + --color-components-input-text-disabled: var(--color-components-input-text-disabled); + --color-components-input-text-filled-disabled: var(--color-components-input-text-filled-disabled); + --color-components-input-border-hover: var(--color-components-input-border-hover); + --color-components-input-border-active-prompt-1: var(--color-components-input-border-active-prompt-1); + --color-components-input-border-active-prompt-2: var(--color-components-input-border-active-prompt-2); + + --color-components-kbd-bg-gray: var(--color-components-kbd-bg-gray); + --color-components-kbd-bg-white: var(--color-components-kbd-bg-white); + + --color-components-tooltip-bg: var(--color-components-tooltip-bg); + + --color-components-button-primary-text: var(--color-components-button-primary-text); + --color-components-button-primary-bg: var(--color-components-button-primary-bg); + --color-components-button-primary-border: var(--color-components-button-primary-border); + --color-components-button-primary-bg-hover: var(--color-components-button-primary-bg-hover); + --color-components-button-primary-border-hover: var(--color-components-button-primary-border-hover); + --color-components-button-primary-bg-disabled: var(--color-components-button-primary-bg-disabled); + --color-components-button-primary-border-disabled: var(--color-components-button-primary-border-disabled); + --color-components-button-primary-text-disabled: var(--color-components-button-primary-text-disabled); + + --color-components-button-secondary-text: var(--color-components-button-secondary-text); + --color-components-button-secondary-text-disabled: var(--color-components-button-secondary-text-disabled); + --color-components-button-secondary-bg: var(--color-components-button-secondary-bg); + --color-components-button-secondary-bg-hover: var(--color-components-button-secondary-bg-hover); + --color-components-button-secondary-bg-disabled: var(--color-components-button-secondary-bg-disabled); + --color-components-button-secondary-border: var(--color-components-button-secondary-border); + --color-components-button-secondary-border-hover: var(--color-components-button-secondary-border-hover); + --color-components-button-secondary-border-disabled: var(--color-components-button-secondary-border-disabled); + + --color-components-button-tertiary-text: var(--color-components-button-tertiary-text); + --color-components-button-tertiary-text-disabled: var(--color-components-button-tertiary-text-disabled); + --color-components-button-tertiary-bg: var(--color-components-button-tertiary-bg); + --color-components-button-tertiary-bg-hover: var(--color-components-button-tertiary-bg-hover); + --color-components-button-tertiary-bg-disabled: var(--color-components-button-tertiary-bg-disabled); + + --color-components-button-ghost-text: var(--color-components-button-ghost-text); + --color-components-button-ghost-text-disabled: var(--color-components-button-ghost-text-disabled); + --color-components-button-ghost-bg-hover: var(--color-components-button-ghost-bg-hover); + + --color-components-button-destructive-primary-text: var(--color-components-button-destructive-primary-text); + --color-components-button-destructive-primary-text-disabled: var(--color-components-button-destructive-primary-text-disabled); + --color-components-button-destructive-primary-bg: var(--color-components-button-destructive-primary-bg); + --color-components-button-destructive-primary-bg-hover: var(--color-components-button-destructive-primary-bg-hover); + --color-components-button-destructive-primary-bg-disabled: var(--color-components-button-destructive-primary-bg-disabled); + --color-components-button-destructive-primary-border: var(--color-components-button-destructive-primary-border); + --color-components-button-destructive-primary-border-hover: var(--color-components-button-destructive-primary-border-hover); + --color-components-button-destructive-primary-border-disabled: var(--color-components-button-destructive-primary-border-disabled); + + --color-components-button-destructive-secondary-text: var(--color-components-button-destructive-secondary-text); + --color-components-button-destructive-secondary-text-disabled: var(--color-components-button-destructive-secondary-text-disabled); + --color-components-button-destructive-secondary-bg: var(--color-components-button-destructive-secondary-bg); + --color-components-button-destructive-secondary-bg-hover: var(--color-components-button-destructive-secondary-bg-hover); + --color-components-button-destructive-secondary-bg-disabled: var(--color-components-button-destructive-secondary-bg-disabled); + --color-components-button-destructive-secondary-border: var(--color-components-button-destructive-secondary-border); + --color-components-button-destructive-secondary-border-hover: var(--color-components-button-destructive-secondary-border-hover); + --color-components-button-destructive-secondary-border-disabled: var(--color-components-button-destructive-secondary-border-disabled); + + --color-components-button-destructive-tertiary-text: var(--color-components-button-destructive-tertiary-text); + --color-components-button-destructive-tertiary-text-disabled: var(--color-components-button-destructive-tertiary-text-disabled); + --color-components-button-destructive-tertiary-bg: var(--color-components-button-destructive-tertiary-bg); + --color-components-button-destructive-tertiary-bg-hover: var(--color-components-button-destructive-tertiary-bg-hover); + --color-components-button-destructive-tertiary-bg-disabled: var(--color-components-button-destructive-tertiary-bg-disabled); + + --color-components-button-destructive-ghost-text: var(--color-components-button-destructive-ghost-text); + --color-components-button-destructive-ghost-text-disabled: var(--color-components-button-destructive-ghost-text-disabled); + --color-components-button-destructive-ghost-bg-hover: var(--color-components-button-destructive-ghost-bg-hover); + + --color-components-button-secondary-accent-text: var(--color-components-button-secondary-accent-text); + --color-components-button-secondary-accent-text-disabled: var(--color-components-button-secondary-accent-text-disabled); + --color-components-button-secondary-accent-bg: var(--color-components-button-secondary-accent-bg); + --color-components-button-secondary-accent-bg-hover: var(--color-components-button-secondary-accent-bg-hover); + --color-components-button-secondary-accent-bg-disabled: var(--color-components-button-secondary-accent-bg-disabled); + --color-components-button-secondary-accent-border: var(--color-components-button-secondary-accent-border); + --color-components-button-secondary-accent-border-hover: var(--color-components-button-secondary-accent-border-hover); + --color-components-button-secondary-accent-border-disabled: var(--color-components-button-secondary-accent-border-disabled); + + --color-components-button-indigo-bg: var(--color-components-button-indigo-bg); + --color-components-button-indigo-bg-hover: var(--color-components-button-indigo-bg-hover); + --color-components-button-indigo-bg-disabled: var(--color-components-button-indigo-bg-disabled); + + --color-components-button-debug-text: var(--color-components-button-debug-text); + --color-components-button-debug-text-disabled: var(--color-components-button-debug-text-disabled); + --color-components-button-debug-bg: var(--color-components-button-debug-bg); + --color-components-button-debug-bg-hover: var(--color-components-button-debug-bg-hover); + --color-components-button-debug-bg-disabled: var(--color-components-button-debug-bg-disabled); + --color-components-button-debug-border: var(--color-components-button-debug-border); + --color-components-button-debug-border-hover: var(--color-components-button-debug-border-hover); + --color-components-button-debug-border-disabled: var(--color-components-button-debug-border-disabled); + + --color-components-button-button-seam: var(--color-components-button-button-seam); + + --color-components-checkbox-icon: var(--color-components-checkbox-icon); + --color-components-checkbox-icon-disabled: var(--color-components-checkbox-icon-disabled); + --color-components-checkbox-bg: var(--color-components-checkbox-bg); + --color-components-checkbox-bg-hover: var(--color-components-checkbox-bg-hover); + --color-components-checkbox-bg-disabled: var(--color-components-checkbox-bg-disabled); + --color-components-checkbox-border: var(--color-components-checkbox-border); + --color-components-checkbox-border-hover: var(--color-components-checkbox-border-hover); + --color-components-checkbox-border-disabled: var(--color-components-checkbox-border-disabled); + --color-components-checkbox-bg-unchecked: var(--color-components-checkbox-bg-unchecked); + --color-components-checkbox-bg-unchecked-hover: var(--color-components-checkbox-bg-unchecked-hover); + --color-components-checkbox-bg-disabled-checked: var(--color-components-checkbox-bg-disabled-checked); + + --color-components-radio-border-checked: var(--color-components-radio-border-checked); + --color-components-radio-border-checked-hover: var(--color-components-radio-border-checked-hover); + --color-components-radio-border-checked-disabled: var(--color-components-radio-border-checked-disabled); + --color-components-radio-bg-disabled: var(--color-components-radio-bg-disabled); + --color-components-radio-border: var(--color-components-radio-border); + --color-components-radio-border-hover: var(--color-components-radio-border-hover); + --color-components-radio-border-disabled: var(--color-components-radio-border-disabled); + --color-components-radio-bg: var(--color-components-radio-bg); + --color-components-radio-bg-hover: var(--color-components-radio-bg-hover); + + --color-components-toggle-knob: var(--color-components-toggle-knob); + --color-components-toggle-knob-disabled: var(--color-components-toggle-knob-disabled); + --color-components-toggle-bg: var(--color-components-toggle-bg); + --color-components-toggle-bg-hover: var(--color-components-toggle-bg-hover); + --color-components-toggle-bg-disabled: var(--color-components-toggle-bg-disabled); + --color-components-toggle-bg-unchecked: var(--color-components-toggle-bg-unchecked); + --color-components-toggle-bg-unchecked-hover: var(--color-components-toggle-bg-unchecked-hover); + --color-components-toggle-bg-unchecked-disabled: var(--color-components-toggle-bg-unchecked-disabled); + --color-components-toggle-knob-hover: var(--color-components-toggle-knob-hover); + + --color-components-card-bg: var(--color-components-card-bg); + --color-components-card-border: var(--color-components-card-border); + --color-components-card-bg-alt: var(--color-components-card-bg-alt); + --color-components-card-bg-transparent: var(--color-components-card-bg-transparent); + --color-components-card-bg-alt-transparent: var(--color-components-card-bg-alt-transparent); + + --color-components-menu-item-text: var(--color-components-menu-item-text); + --color-components-menu-item-text-active: var(--color-components-menu-item-text-active); + --color-components-menu-item-text-hover: var(--color-components-menu-item-text-hover); + --color-components-menu-item-text-active-accent: var(--color-components-menu-item-text-active-accent); + --color-components-menu-item-bg-active: var(--color-components-menu-item-bg-active); + --color-components-menu-item-bg-hover: var(--color-components-menu-item-bg-hover); + + --color-components-panel-bg: var(--color-components-panel-bg); + --color-components-panel-bg-blur: var(--color-components-panel-bg-blur); + --color-components-panel-border: var(--color-components-panel-border); + --color-components-panel-border-subtle: var(--color-components-panel-border-subtle); + --color-components-panel-gradient-2: var(--color-components-panel-gradient-2); + --color-components-panel-gradient-1: var(--color-components-panel-gradient-1); + --color-components-panel-bg-alt: var(--color-components-panel-bg-alt); + --color-components-panel-on-panel-item-bg: var(--color-components-panel-on-panel-item-bg); + --color-components-panel-on-panel-item-bg-hover: var(--color-components-panel-on-panel-item-bg-hover); + --color-components-panel-on-panel-item-bg-alt: var(--color-components-panel-on-panel-item-bg-alt); + --color-components-panel-on-panel-item-bg-transparent: var(--color-components-panel-on-panel-item-bg-transparent); + --color-components-panel-on-panel-item-bg-hover-transparent: var(--color-components-panel-on-panel-item-bg-hover-transparent); + --color-components-panel-on-panel-item-bg-destructive-hover-transparent: var(--color-components-panel-on-panel-item-bg-destructive-hover-transparent); + + --color-components-panel-bg-transparent: var(--color-components-panel-bg-transparent); + --color-components-panel-bg-blur-burn: var(--color-components-panel-bg-blur-burn); + + --color-components-main-nav-nav-button-text: var(--color-components-main-nav-nav-button-text); + --color-components-main-nav-nav-button-text-active: var(--color-components-main-nav-nav-button-text-active); + --color-components-main-nav-nav-button-bg: var(--color-components-main-nav-nav-button-bg); + --color-components-main-nav-nav-button-bg-active: var(--color-components-main-nav-nav-button-bg-active); + --color-components-main-nav-nav-button-border: var(--color-components-main-nav-nav-button-border); + --color-components-main-nav-nav-button-bg-hover: var(--color-components-main-nav-nav-button-bg-hover); + + --color-components-main-nav-nav-user-border: var(--color-components-main-nav-nav-user-border); + + --color-components-main-nav-text: var(--color-components-main-nav-text); + --color-components-main-nav-text-active: var(--color-components-main-nav-text-active); + --color-components-main-nav-glass-edge-highlight-first: var(--color-components-main-nav-glass-edge-highlight-first); + --color-components-main-nav-glass-edge-highlight-middle: var(--color-components-main-nav-glass-edge-highlight-middle); + --color-components-main-nav-glass-edge-highlight-end: var(--color-components-main-nav-glass-edge-highlight-end); + + --color-components-main-nav-glass-edge-reflection-first: var(--color-components-main-nav-glass-edge-reflection-first); + --color-components-main-nav-glass-edge-reflection-middle: var(--color-components-main-nav-glass-edge-reflection-middle); + --color-components-main-nav-glass-edge-reflection-end: var(--color-components-main-nav-glass-edge-reflection-end); + + --color-components-main-nav-glass-surface-first: var(--color-components-main-nav-glass-surface-first); + --color-components-main-nav-glass-surface-middle-1: var(--color-components-main-nav-glass-surface-middle-1); + --color-components-main-nav-glass-surface-middle-2: var(--color-components-main-nav-glass-surface-middle-2); + --color-components-main-nav-glass-surface-end: var(--color-components-main-nav-glass-surface-end); + + --color-components-main-nav-glass-inner-glow: var(--color-components-main-nav-glass-inner-glow); + --color-components-main-nav-glass-shadow-reflection: var(--color-components-main-nav-glass-shadow-reflection); + --color-components-main-nav-glass-shadow-reflection-glow: var(--color-components-main-nav-glass-shadow-reflection-glow); + --color-components-main-nav-glass-text-glow: var(--color-components-main-nav-glass-text-glow); + + --color-components-slider-knob: var(--color-components-slider-knob); + --color-components-slider-knob-hover: var(--color-components-slider-knob-hover); + --color-components-slider-knob-disabled: var(--color-components-slider-knob-disabled); + --color-components-slider-range: var(--color-components-slider-range); + --color-components-slider-track: var(--color-components-slider-track); + --color-components-slider-knob-border-hover: var(--color-components-slider-knob-border-hover); + --color-components-slider-knob-border: var(--color-components-slider-knob-border); + + --color-components-segmented-control-item-active-bg: var(--color-components-segmented-control-item-active-bg); + --color-components-segmented-control-item-active-border: var(--color-components-segmented-control-item-active-border); + --color-components-segmented-control-bg-normal: var(--color-components-segmented-control-bg-normal); + --color-components-segmented-control-item-active-accent-bg: var(--color-components-segmented-control-item-active-accent-bg); + --color-components-segmented-control-item-active-accent-border: var(--color-components-segmented-control-item-active-accent-border); + + --color-components-option-card-option-bg: var(--color-components-option-card-option-bg); + --color-components-option-card-option-selected-bg: var(--color-components-option-card-option-selected-bg); + --color-components-option-card-option-selected-border: var(--color-components-option-card-option-selected-border); + --color-components-option-card-option-border: var(--color-components-option-card-option-border); + --color-components-option-card-option-bg-hover: var(--color-components-option-card-option-bg-hover); + --color-components-option-card-option-border-hover: var(--color-components-option-card-option-border-hover); + + --color-components-tab-active: var(--color-components-tab-active); + + --color-components-badge-white-to-dark: var(--color-components-badge-white-to-dark); + --color-components-badge-status-light-success-bg: var(--color-components-badge-status-light-success-bg); + --color-components-badge-status-light-success-border-inner: var(--color-components-badge-status-light-success-border-inner); + --color-components-badge-status-light-success-halo: var(--color-components-badge-status-light-success-halo); + + --color-components-badge-status-light-border-outer: var(--color-components-badge-status-light-border-outer); + --color-components-badge-status-light-high-light: var(--color-components-badge-status-light-high-light); + --color-components-badge-status-light-warning-bg: var(--color-components-badge-status-light-warning-bg); + --color-components-badge-status-light-warning-border-inner: var(--color-components-badge-status-light-warning-border-inner); + --color-components-badge-status-light-warning-halo: var(--color-components-badge-status-light-warning-halo); + + --color-components-badge-status-light-error-bg: var(--color-components-badge-status-light-error-bg); + --color-components-badge-status-light-error-border-inner: var(--color-components-badge-status-light-error-border-inner); + --color-components-badge-status-light-error-halo: var(--color-components-badge-status-light-error-halo); + + --color-components-badge-status-light-normal-bg: var(--color-components-badge-status-light-normal-bg); + --color-components-badge-status-light-normal-border-inner: var(--color-components-badge-status-light-normal-border-inner); + --color-components-badge-status-light-normal-halo: var(--color-components-badge-status-light-normal-halo); + + --color-components-badge-status-light-disabled-bg: var(--color-components-badge-status-light-disabled-bg); + --color-components-badge-status-light-disabled-border-inner: var(--color-components-badge-status-light-disabled-border-inner); + --color-components-badge-status-light-disabled-halo: var(--color-components-badge-status-light-disabled-halo); + + --color-components-badge-bg-green-soft: var(--color-components-badge-bg-green-soft); + --color-components-badge-bg-orange-soft: var(--color-components-badge-bg-orange-soft); + --color-components-badge-bg-red-soft: var(--color-components-badge-bg-red-soft); + --color-components-badge-bg-blue-light-soft: var(--color-components-badge-bg-blue-light-soft); + --color-components-badge-bg-gray-soft: var(--color-components-badge-bg-gray-soft); + --color-components-badge-bg-dimm: var(--color-components-badge-bg-dimm); + + --color-components-chart-line: var(--color-components-chart-line); + --color-components-chart-area-1: var(--color-components-chart-area-1); + --color-components-chart-area-2: var(--color-components-chart-area-2); + --color-components-chart-current-1: var(--color-components-chart-current-1); + --color-components-chart-current-2: var(--color-components-chart-current-2); + --color-components-chart-bg: var(--color-components-chart-bg); + + --color-components-actionbar-bg: var(--color-components-actionbar-bg); + --color-components-actionbar-border: var(--color-components-actionbar-border); + --color-components-actionbar-bg-accent: var(--color-components-actionbar-bg-accent); + --color-components-actionbar-border-accent: var(--color-components-actionbar-border-accent); + + --color-components-dropzone-bg-alt: var(--color-components-dropzone-bg-alt); + --color-components-dropzone-bg: var(--color-components-dropzone-bg); + --color-components-dropzone-bg-accent: var(--color-components-dropzone-bg-accent); + --color-components-dropzone-border: var(--color-components-dropzone-border); + --color-components-dropzone-border-alt: var(--color-components-dropzone-border-alt); + --color-components-dropzone-border-accent: var(--color-components-dropzone-border-accent); + + --color-components-progress-brand-progress: var(--color-components-progress-brand-progress); + --color-components-progress-brand-border: var(--color-components-progress-brand-border); + --color-components-progress-brand-bg: var(--color-components-progress-brand-bg); + + --color-components-progress-white-progress: var(--color-components-progress-white-progress); + --color-components-progress-white-border: var(--color-components-progress-white-border); + --color-components-progress-white-bg: var(--color-components-progress-white-bg); + + --color-components-progress-gray-progress: var(--color-components-progress-gray-progress); + --color-components-progress-gray-border: var(--color-components-progress-gray-border); + --color-components-progress-gray-bg: var(--color-components-progress-gray-bg); + + --color-components-progress-warning-progress: var(--color-components-progress-warning-progress); + --color-components-progress-warning-border: var(--color-components-progress-warning-border); + --color-components-progress-warning-bg: var(--color-components-progress-warning-bg); + + --color-components-progress-error-progress: var(--color-components-progress-error-progress); + --color-components-progress-error-border: var(--color-components-progress-error-border); + --color-components-progress-error-bg: var(--color-components-progress-error-bg); + + --color-components-chat-input-audio-bg: var(--color-components-chat-input-audio-bg); + --color-components-chat-input-audio-wave-default: var(--color-components-chat-input-audio-wave-default); + --color-components-chat-input-bg-mask-1: var(--color-components-chat-input-bg-mask-1); + --color-components-chat-input-bg-mask-2: var(--color-components-chat-input-bg-mask-2); + --color-components-chat-input-border: var(--color-components-chat-input-border); + --color-components-chat-input-audio-wave-active: var(--color-components-chat-input-audio-wave-active); + --color-components-chat-input-audio-bg-alt: var(--color-components-chat-input-audio-bg-alt); + + --color-components-avatar-shape-fill-stop-0: var(--color-components-avatar-shape-fill-stop-0); + --color-components-avatar-shape-fill-stop-100: var(--color-components-avatar-shape-fill-stop-100); + + --color-components-avatar-bg-mask-stop-0: var(--color-components-avatar-bg-mask-stop-0); + --color-components-avatar-bg-mask-stop-100: var(--color-components-avatar-bg-mask-stop-100); + + --color-components-avatar-default-avatar-bg: var(--color-components-avatar-default-avatar-bg); + --color-components-avatar-mask-darkmode-dimmed: var(--color-components-avatar-mask-darkmode-dimmed); + + --color-components-label-gray: var(--color-components-label-gray); + + --color-components-premium-badge-blue-bg-stop-0: var(--color-components-premium-badge-blue-bg-stop-0); + --color-components-premium-badge-blue-bg-stop-100: var(--color-components-premium-badge-blue-bg-stop-100); + --color-components-premium-badge-blue-stroke-stop-0: var(--color-components-premium-badge-blue-stroke-stop-0); + --color-components-premium-badge-blue-stroke-stop-100: var(--color-components-premium-badge-blue-stroke-stop-100); + --color-components-premium-badge-blue-text-stop-0: var(--color-components-premium-badge-blue-text-stop-0); + --color-components-premium-badge-blue-text-stop-100: var(--color-components-premium-badge-blue-text-stop-100); + --color-components-premium-badge-blue-glow: var(--color-components-premium-badge-blue-glow); + --color-components-premium-badge-blue-bg-stop-0-hover: var(--color-components-premium-badge-blue-bg-stop-0-hover); + --color-components-premium-badge-blue-bg-stop-100-hover: var(--color-components-premium-badge-blue-bg-stop-100-hover); + --color-components-premium-badge-blue-glow-hover: var(--color-components-premium-badge-blue-glow-hover); + --color-components-premium-badge-blue-stroke-stop-0-hover: var(--color-components-premium-badge-blue-stroke-stop-0-hover); + --color-components-premium-badge-blue-stroke-stop-100-hover: var(--color-components-premium-badge-blue-stroke-stop-100-hover); + + --color-components-premium-badge-highlight-stop-0: var(--color-components-premium-badge-highlight-stop-0); + --color-components-premium-badge-highlight-stop-100: var(--color-components-premium-badge-highlight-stop-100); + --color-components-premium-badge-indigo-bg-stop-0: var(--color-components-premium-badge-indigo-bg-stop-0); + --color-components-premium-badge-indigo-bg-stop-100: var(--color-components-premium-badge-indigo-bg-stop-100); + --color-components-premium-badge-indigo-stroke-stop-0: var(--color-components-premium-badge-indigo-stroke-stop-0); + --color-components-premium-badge-indigo-stroke-stop-100: var(--color-components-premium-badge-indigo-stroke-stop-100); + --color-components-premium-badge-indigo-text-stop-0: var(--color-components-premium-badge-indigo-text-stop-0); + --color-components-premium-badge-indigo-text-stop-100: var(--color-components-premium-badge-indigo-text-stop-100); + --color-components-premium-badge-indigo-glow: var(--color-components-premium-badge-indigo-glow); + --color-components-premium-badge-indigo-glow-hover: var(--color-components-premium-badge-indigo-glow-hover); + --color-components-premium-badge-indigo-bg-stop-0-hover: var(--color-components-premium-badge-indigo-bg-stop-0-hover); + --color-components-premium-badge-indigo-bg-stop-100-hover: var(--color-components-premium-badge-indigo-bg-stop-100-hover); + --color-components-premium-badge-indigo-stroke-stop-0-hover: var(--color-components-premium-badge-indigo-stroke-stop-0-hover); + --color-components-premium-badge-indigo-stroke-stop-100-hover: var(--color-components-premium-badge-indigo-stroke-stop-100-hover); + + --color-components-premium-badge-grey-bg-stop-0: var(--color-components-premium-badge-grey-bg-stop-0); + --color-components-premium-badge-grey-bg-stop-100: var(--color-components-premium-badge-grey-bg-stop-100); + --color-components-premium-badge-grey-stroke-stop-0: var(--color-components-premium-badge-grey-stroke-stop-0); + --color-components-premium-badge-grey-stroke-stop-100: var(--color-components-premium-badge-grey-stroke-stop-100); + --color-components-premium-badge-grey-text-stop-0: var(--color-components-premium-badge-grey-text-stop-0); + --color-components-premium-badge-grey-text-stop-100: var(--color-components-premium-badge-grey-text-stop-100); + --color-components-premium-badge-grey-glow: var(--color-components-premium-badge-grey-glow); + --color-components-premium-badge-grey-glow-hover: var(--color-components-premium-badge-grey-glow-hover); + --color-components-premium-badge-grey-bg-stop-0-hover: var(--color-components-premium-badge-grey-bg-stop-0-hover); + --color-components-premium-badge-grey-bg-stop-100-hover: var(--color-components-premium-badge-grey-bg-stop-100-hover); + --color-components-premium-badge-grey-stroke-stop-0-hover: var(--color-components-premium-badge-grey-stroke-stop-0-hover); + --color-components-premium-badge-grey-stroke-stop-100-hover: var(--color-components-premium-badge-grey-stroke-stop-100-hover); + + --color-components-premium-badge-orange-bg-stop-0: var(--color-components-premium-badge-orange-bg-stop-0); + --color-components-premium-badge-orange-bg-stop-100: var(--color-components-premium-badge-orange-bg-stop-100); + --color-components-premium-badge-orange-stroke-stop-0: var(--color-components-premium-badge-orange-stroke-stop-0); + --color-components-premium-badge-orange-stroke-stop-100: var(--color-components-premium-badge-orange-stroke-stop-100); + --color-components-premium-badge-orange-text-stop-0: var(--color-components-premium-badge-orange-text-stop-0); + --color-components-premium-badge-orange-text-stop-100: var(--color-components-premium-badge-orange-text-stop-100); + --color-components-premium-badge-orange-glow: var(--color-components-premium-badge-orange-glow); + --color-components-premium-badge-orange-glow-hover: var(--color-components-premium-badge-orange-glow-hover); + --color-components-premium-badge-orange-bg-stop-0-hover: var(--color-components-premium-badge-orange-bg-stop-0-hover); + --color-components-premium-badge-orange-bg-stop-100-hover: var(--color-components-premium-badge-orange-bg-stop-100-hover); + --color-components-premium-badge-orange-stroke-stop-0-hover: var(--color-components-premium-badge-orange-stroke-stop-0-hover); + --color-components-premium-badge-orange-stroke-stop-100-hover: var(--color-components-premium-badge-orange-stroke-stop-100-hover); + + --color-components-progress-bar-bg: var(--color-components-progress-bar-bg); + --color-components-progress-bar-progress: var(--color-components-progress-bar-progress); + --color-components-progress-bar-border: var(--color-components-progress-bar-border); + --color-components-progress-bar-progress-solid: var(--color-components-progress-bar-progress-solid); + --color-components-progress-bar-progress-highlight: var(--color-components-progress-bar-progress-highlight); + + --color-components-icon-bg-red-solid: var(--color-components-icon-bg-red-solid); + --color-components-icon-bg-rose-solid: var(--color-components-icon-bg-rose-solid); + --color-components-icon-bg-pink-solid: var(--color-components-icon-bg-pink-solid); + --color-components-icon-bg-orange-dark-solid: var(--color-components-icon-bg-orange-dark-solid); + --color-components-icon-bg-yellow-solid: var(--color-components-icon-bg-yellow-solid); + --color-components-icon-bg-green-solid: var(--color-components-icon-bg-green-solid); + --color-components-icon-bg-teal-solid: var(--color-components-icon-bg-teal-solid); + --color-components-icon-bg-blue-light-solid: var(--color-components-icon-bg-blue-light-solid); + --color-components-icon-bg-blue-solid: var(--color-components-icon-bg-blue-solid); + --color-components-icon-bg-indigo-solid: var(--color-components-icon-bg-indigo-solid); + --color-components-icon-bg-violet-solid: var(--color-components-icon-bg-violet-solid); + --color-components-icon-bg-midnight-solid: var(--color-components-icon-bg-midnight-solid); + --color-components-icon-bg-rose-soft: var(--color-components-icon-bg-rose-soft); + --color-components-icon-bg-pink-soft: var(--color-components-icon-bg-pink-soft); + --color-components-icon-bg-orange-dark-soft: var(--color-components-icon-bg-orange-dark-soft); + --color-components-icon-bg-yellow-soft: var(--color-components-icon-bg-yellow-soft); + --color-components-icon-bg-green-soft: var(--color-components-icon-bg-green-soft); + --color-components-icon-bg-teal-soft: var(--color-components-icon-bg-teal-soft); + --color-components-icon-bg-blue-light-soft: var(--color-components-icon-bg-blue-light-soft); + --color-components-icon-bg-blue-soft: var(--color-components-icon-bg-blue-soft); + --color-components-icon-bg-indigo-soft: var(--color-components-icon-bg-indigo-soft); + --color-components-icon-bg-violet-soft: var(--color-components-icon-bg-violet-soft); + --color-components-icon-bg-midnight-soft: var(--color-components-icon-bg-midnight-soft); + --color-components-icon-bg-red-soft: var(--color-components-icon-bg-red-soft); + --color-components-icon-bg-orange-solid: var(--color-components-icon-bg-orange-solid); + --color-components-icon-bg-orange-soft: var(--color-components-icon-bg-orange-soft); + + --color-components-marketplace-header-bg: var(--color-components-marketplace-header-bg); + + --color-text-primary: var(--color-text-primary); + --color-text-secondary: var(--color-text-secondary); + --color-text-tertiary: var(--color-text-tertiary); + --color-text-quaternary: var(--color-text-quaternary); + --color-text-destructive: var(--color-text-destructive); + --color-text-success: var(--color-text-success); + --color-text-warning: var(--color-text-warning); + --color-text-destructive-secondary: var(--color-text-destructive-secondary); + --color-text-success-secondary: var(--color-text-success-secondary); + --color-text-warning-secondary: var(--color-text-warning-secondary); + --color-text-accent: var(--color-text-accent); + --color-text-primary-on-surface: var(--color-text-primary-on-surface); + --color-text-placeholder: var(--color-text-placeholder); + --color-text-disabled: var(--color-text-disabled); + --color-text-accent-secondary: var(--color-text-accent-secondary); + --color-text-accent-light-mode-only: var(--color-text-accent-light-mode-only); + --color-text-text-selected: var(--color-text-text-selected); + --color-text-secondary-on-surface: var(--color-text-secondary-on-surface); + --color-text-logo-text: var(--color-text-logo-text); + --color-text-empty-state-icon: var(--color-text-empty-state-icon); + --color-text-inverted: var(--color-text-inverted); + --color-text-inverted-dimmed: var(--color-text-inverted-dimmed); + + --color-background-body: var(--color-background-body); + --color-background-default-subtle: var(--color-background-default-subtle); + --color-background-neutral-subtle: var(--color-background-neutral-subtle); + --color-background-sidenav-bg: var(--color-background-sidenav-bg); + --color-background-default: var(--color-background-default); + --color-background-soft: var(--color-background-soft); + --color-background-gradient-bg-fill-chat-bg-1: var(--color-background-gradient-bg-fill-chat-bg-1); + --color-background-gradient-bg-fill-chat-bg-2: var(--color-background-gradient-bg-fill-chat-bg-2); + --color-background-gradient-bg-fill-chat-bubble-bg-1: var(--color-background-gradient-bg-fill-chat-bubble-bg-1); + --color-background-gradient-bg-fill-chat-bubble-bg-2: var(--color-background-gradient-bg-fill-chat-bubble-bg-2); + --color-background-gradient-bg-fill-debug-bg-1: var(--color-background-gradient-bg-fill-debug-bg-1); + --color-background-gradient-bg-fill-debug-bg-2: var(--color-background-gradient-bg-fill-debug-bg-2); + + --color-background-gradient-mask-gray: var(--color-background-gradient-mask-gray); + --color-background-gradient-mask-transparent: var(--color-background-gradient-mask-transparent); + --color-background-gradient-mask-input-clear-2: var(--color-background-gradient-mask-input-clear-2); + --color-background-gradient-mask-input-clear-1: var(--color-background-gradient-mask-input-clear-1); + --color-background-gradient-mask-transparent-dark: var(--color-background-gradient-mask-transparent-dark); + --color-background-gradient-mask-side-panel-2: var(--color-background-gradient-mask-side-panel-2); + --color-background-gradient-mask-side-panel-1: var(--color-background-gradient-mask-side-panel-1); + + --color-background-default-burn: var(--color-background-default-burn); + --color-background-overlay-fullscreen: var(--color-background-overlay-fullscreen); + --color-background-default-lighter: var(--color-background-default-lighter); + --color-background-section: var(--color-background-section); + --color-background-interaction-from-bg-1: var(--color-background-interaction-from-bg-1); + --color-background-interaction-from-bg-2: var(--color-background-interaction-from-bg-2); + --color-background-section-burn: var(--color-background-section-burn); + --color-background-default-dodge: var(--color-background-default-dodge); + --color-background-overlay: var(--color-background-overlay); + --color-background-default-dimmed: var(--color-background-default-dimmed); + --color-background-default-hover: var(--color-background-default-hover); + --color-background-overlay-alt: var(--color-background-overlay-alt); + --color-background-surface-white: var(--color-background-surface-white); + --color-background-overlay-destructive: var(--color-background-overlay-destructive); + --color-background-overlay-backdrop: var(--color-background-overlay-backdrop); + --color-background-body-transparent: var(--color-background-body-transparent); + --color-background-section-burn-inverted: var(--color-background-section-burn-inverted); + --color-background-default-hover-alpha-0: var(--color-background-default-hover-alpha-0); + + --color-shadow-shadow-1: var(--color-shadow-shadow-1); + --color-shadow-shadow-3: var(--color-shadow-shadow-3); + --color-shadow-shadow-4: var(--color-shadow-shadow-4); + --color-shadow-shadow-5: var(--color-shadow-shadow-5); + --color-shadow-shadow-6: var(--color-shadow-shadow-6); + --color-shadow-shadow-7: var(--color-shadow-shadow-7); + --color-shadow-shadow-8: var(--color-shadow-shadow-8); + --color-shadow-shadow-9: var(--color-shadow-shadow-9); + --color-shadow-shadow-2: var(--color-shadow-shadow-2); + --color-shadow-shadow-10: var(--color-shadow-shadow-10); + + --color-workflow-block-border: var(--color-workflow-block-border); + --color-workflow-block-parma-bg: var(--color-workflow-block-parma-bg); + --color-workflow-block-bg: var(--color-workflow-block-bg); + --color-workflow-block-bg-transparent: var(--color-workflow-block-bg-transparent); + --color-workflow-block-border-highlight: var(--color-workflow-block-border-highlight); + --color-workflow-block-wrapper-bg-1: var(--color-workflow-block-wrapper-bg-1); + --color-workflow-block-wrapper-bg-2: var(--color-workflow-block-wrapper-bg-2); + + --color-workflow-canvas-workflow-dot-color: var(--color-workflow-canvas-workflow-dot-color); + --color-workflow-canvas-workflow-bg: var(--color-workflow-canvas-workflow-bg); + --color-workflow-canvas-workflow-top-bar-1: var(--color-workflow-canvas-workflow-top-bar-1); + --color-workflow-canvas-workflow-top-bar-2: var(--color-workflow-canvas-workflow-top-bar-2); + --color-workflow-canvas-canvas-overlay: var(--color-workflow-canvas-canvas-overlay); + + --color-workflow-link-line-active: var(--color-workflow-link-line-active); + --color-workflow-link-line-normal: var(--color-workflow-link-line-normal); + --color-workflow-link-line-handle: var(--color-workflow-link-line-handle); + --color-workflow-link-line-normal-transparent: var(--color-workflow-link-line-normal-transparent); + --color-workflow-link-line-failure-active: var(--color-workflow-link-line-failure-active); + --color-workflow-link-line-failure-handle: var(--color-workflow-link-line-failure-handle); + --color-workflow-link-line-failure-button-bg: var(--color-workflow-link-line-failure-button-bg); + --color-workflow-link-line-failure-button-hover: var(--color-workflow-link-line-failure-button-hover); + + --color-workflow-link-line-success-active: var(--color-workflow-link-line-success-active); + --color-workflow-link-line-success-handle: var(--color-workflow-link-line-success-handle); + + --color-workflow-link-line-error-active: var(--color-workflow-link-line-error-active); + --color-workflow-link-line-error-handle: var(--color-workflow-link-line-error-handle); + + --color-workflow-minimap-bg: var(--color-workflow-minimap-bg); + --color-workflow-minimap-block: var(--color-workflow-minimap-block); + + --color-workflow-display-success-bg: var(--color-workflow-display-success-bg); + --color-workflow-display-success-border-1: var(--color-workflow-display-success-border-1); + --color-workflow-display-success-border-2: var(--color-workflow-display-success-border-2); + --color-workflow-display-success-vignette-color: var(--color-workflow-display-success-vignette-color); + --color-workflow-display-success-bg-line-pattern: var(--color-workflow-display-success-bg-line-pattern); + + --color-workflow-display-glass-1: var(--color-workflow-display-glass-1); + --color-workflow-display-glass-2: var(--color-workflow-display-glass-2); + --color-workflow-display-vignette-dark: var(--color-workflow-display-vignette-dark); + --color-workflow-display-highlight: var(--color-workflow-display-highlight); + --color-workflow-display-outline: var(--color-workflow-display-outline); + --color-workflow-display-error-bg: var(--color-workflow-display-error-bg); + --color-workflow-display-error-bg-line-pattern: var(--color-workflow-display-error-bg-line-pattern); + --color-workflow-display-error-border-1: var(--color-workflow-display-error-border-1); + --color-workflow-display-error-border-2: var(--color-workflow-display-error-border-2); + --color-workflow-display-error-vignette-color: var(--color-workflow-display-error-vignette-color); + + --color-workflow-display-warning-bg: var(--color-workflow-display-warning-bg); + --color-workflow-display-warning-bg-line-pattern: var(--color-workflow-display-warning-bg-line-pattern); + --color-workflow-display-warning-border-1: var(--color-workflow-display-warning-border-1); + --color-workflow-display-warning-border-2: var(--color-workflow-display-warning-border-2); + --color-workflow-display-warning-vignette-color: var(--color-workflow-display-warning-vignette-color); + + --color-workflow-display-normal-bg: var(--color-workflow-display-normal-bg); + --color-workflow-display-normal-bg-line-pattern: var(--color-workflow-display-normal-bg-line-pattern); + --color-workflow-display-normal-border-1: var(--color-workflow-display-normal-border-1); + --color-workflow-display-normal-border-2: var(--color-workflow-display-normal-border-2); + --color-workflow-display-normal-vignette-color: var(--color-workflow-display-normal-vignette-color); + + --color-workflow-display-disabled-bg: var(--color-workflow-display-disabled-bg); + --color-workflow-display-disabled-bg-line-pattern: var(--color-workflow-display-disabled-bg-line-pattern); + --color-workflow-display-disabled-border-1: var(--color-workflow-display-disabled-border-1); + --color-workflow-display-disabled-border-2: var(--color-workflow-display-disabled-border-2); + --color-workflow-display-disabled-vignette-color: var(--color-workflow-display-disabled-vignette-color); + --color-workflow-display-disabled-outline: var(--color-workflow-display-disabled-outline); + + --color-workflow-workflow-progress-bg-1: var(--color-workflow-workflow-progress-bg-1); + --color-workflow-workflow-progress-bg-2: var(--color-workflow-workflow-progress-bg-2); + + --color-workflow-debug-run-status-bg: var(--color-workflow-debug-run-status-bg); + --color-workflow-debug-breakpoint: var(--color-workflow-debug-breakpoint); + --color-workflow-debug-text: var(--color-workflow-debug-text); + --color-workflow-debug-text-disabled: var(--color-workflow-debug-text-disabled); + --color-workflow-debug-run-status-bg-alt: var(--color-workflow-debug-run-status-bg-alt); + + --color-workflow-test-run-run-status-bg: var(--color-workflow-test-run-run-status-bg); + --color-workflow-test-run-text: var(--color-workflow-test-run-text); + --color-workflow-test-run-run-status-bg-alt: var(--color-workflow-test-run-run-status-bg-alt); + --color-workflow-test-run-paused-bg: var(--color-workflow-test-run-paused-bg); + --color-workflow-test-run-paused-text: var(--color-workflow-test-run-paused-text); + + --color-divider-subtle: var(--color-divider-subtle); + --color-divider-regular: var(--color-divider-regular); + --color-divider-deep: var(--color-divider-deep); + --color-divider-burn: var(--color-divider-burn); + --color-divider-intense: var(--color-divider-intense); + --color-divider-solid: var(--color-divider-solid); + --color-divider-solid-alt: var(--color-divider-solid-alt); + --color-divider-accent: var(--color-divider-accent); + + --color-state-base-hover: var(--color-state-base-hover); + --color-state-base-active: var(--color-state-base-active); + --color-state-base-hover-alt: var(--color-state-base-hover-alt); + --color-state-base-handle: var(--color-state-base-handle); + --color-state-base-handle-hover: var(--color-state-base-handle-hover); + --color-state-base-hover-subtle: var(--color-state-base-hover-subtle); + + --color-state-accent-hover: var(--color-state-accent-hover); + --color-state-accent-active: var(--color-state-accent-active); + --color-state-accent-hover-alt: var(--color-state-accent-hover-alt); + --color-state-accent-solid: var(--color-state-accent-solid); + --color-state-accent-active-alt: var(--color-state-accent-active-alt); + + --color-state-destructive-hover: var(--color-state-destructive-hover); + --color-state-destructive-hover-alt: var(--color-state-destructive-hover-alt); + --color-state-destructive-active: var(--color-state-destructive-active); + --color-state-destructive-solid: var(--color-state-destructive-solid); + --color-state-destructive-border: var(--color-state-destructive-border); + --color-state-destructive-hover-transparent: var(--color-state-destructive-hover-transparent); + + --color-state-success-hover: var(--color-state-success-hover); + --color-state-success-hover-alt: var(--color-state-success-hover-alt); + --color-state-success-active: var(--color-state-success-active); + --color-state-success-solid: var(--color-state-success-solid); + + --color-state-warning-hover: var(--color-state-warning-hover); + --color-state-warning-hover-alt: var(--color-state-warning-hover-alt); + --color-state-warning-active: var(--color-state-warning-active); + --color-state-warning-solid: var(--color-state-warning-solid); + --color-state-warning-hover-transparent: var(--color-state-warning-hover-transparent); + + --color-effects-highlight: var(--color-effects-highlight); + --color-effects-highlight-lightmode-off: var(--color-effects-highlight-lightmode-off); + --color-effects-image-frame: var(--color-effects-image-frame); + --color-effects-icon-border: var(--color-effects-icon-border); + --color-effects-highlight-subtle: var(--color-effects-highlight-subtle); + + --color-util-colors-orange-dark-orange-dark-50: var(--color-util-colors-orange-dark-orange-dark-50); + --color-util-colors-orange-dark-orange-dark-100: var(--color-util-colors-orange-dark-orange-dark-100); + --color-util-colors-orange-dark-orange-dark-200: var(--color-util-colors-orange-dark-orange-dark-200); + --color-util-colors-orange-dark-orange-dark-300: var(--color-util-colors-orange-dark-orange-dark-300); + --color-util-colors-orange-dark-orange-dark-400: var(--color-util-colors-orange-dark-orange-dark-400); + --color-util-colors-orange-dark-orange-dark-500: var(--color-util-colors-orange-dark-orange-dark-500); + --color-util-colors-orange-dark-orange-dark-600: var(--color-util-colors-orange-dark-orange-dark-600); + --color-util-colors-orange-dark-orange-dark-700: var(--color-util-colors-orange-dark-orange-dark-700); + + --color-util-colors-orange-orange-50: var(--color-util-colors-orange-orange-50); + --color-util-colors-orange-orange-100: var(--color-util-colors-orange-orange-100); + --color-util-colors-orange-orange-200: var(--color-util-colors-orange-orange-200); + --color-util-colors-orange-orange-300: var(--color-util-colors-orange-orange-300); + --color-util-colors-orange-orange-400: var(--color-util-colors-orange-orange-400); + --color-util-colors-orange-orange-500: var(--color-util-colors-orange-orange-500); + --color-util-colors-orange-orange-600: var(--color-util-colors-orange-orange-600); + --color-util-colors-orange-orange-700: var(--color-util-colors-orange-orange-700); + --color-util-colors-orange-orange-100-transparent: var(--color-util-colors-orange-orange-100-transparent); + + --color-util-colors-pink-pink-50: var(--color-util-colors-pink-pink-50); + --color-util-colors-pink-pink-100: var(--color-util-colors-pink-pink-100); + --color-util-colors-pink-pink-200: var(--color-util-colors-pink-pink-200); + --color-util-colors-pink-pink-300: var(--color-util-colors-pink-pink-300); + --color-util-colors-pink-pink-400: var(--color-util-colors-pink-pink-400); + --color-util-colors-pink-pink-500: var(--color-util-colors-pink-pink-500); + --color-util-colors-pink-pink-600: var(--color-util-colors-pink-pink-600); + --color-util-colors-pink-pink-700: var(--color-util-colors-pink-pink-700); + + --color-util-colors-fuchsia-fuchsia-50: var(--color-util-colors-fuchsia-fuchsia-50); + --color-util-colors-fuchsia-fuchsia-100: var(--color-util-colors-fuchsia-fuchsia-100); + --color-util-colors-fuchsia-fuchsia-200: var(--color-util-colors-fuchsia-fuchsia-200); + --color-util-colors-fuchsia-fuchsia-300: var(--color-util-colors-fuchsia-fuchsia-300); + --color-util-colors-fuchsia-fuchsia-400: var(--color-util-colors-fuchsia-fuchsia-400); + --color-util-colors-fuchsia-fuchsia-500: var(--color-util-colors-fuchsia-fuchsia-500); + --color-util-colors-fuchsia-fuchsia-600: var(--color-util-colors-fuchsia-fuchsia-600); + --color-util-colors-fuchsia-fuchsia-700: var(--color-util-colors-fuchsia-fuchsia-700); + + --color-util-colors-purple-purple-50: var(--color-util-colors-purple-purple-50); + --color-util-colors-purple-purple-100: var(--color-util-colors-purple-purple-100); + --color-util-colors-purple-purple-200: var(--color-util-colors-purple-purple-200); + --color-util-colors-purple-purple-300: var(--color-util-colors-purple-purple-300); + --color-util-colors-purple-purple-400: var(--color-util-colors-purple-purple-400); + --color-util-colors-purple-purple-500: var(--color-util-colors-purple-purple-500); + --color-util-colors-purple-purple-600: var(--color-util-colors-purple-purple-600); + --color-util-colors-purple-purple-700: var(--color-util-colors-purple-purple-700); + + --color-util-colors-indigo-indigo-50: var(--color-util-colors-indigo-indigo-50); + --color-util-colors-indigo-indigo-100: var(--color-util-colors-indigo-indigo-100); + --color-util-colors-indigo-indigo-200: var(--color-util-colors-indigo-indigo-200); + --color-util-colors-indigo-indigo-300: var(--color-util-colors-indigo-indigo-300); + --color-util-colors-indigo-indigo-400: var(--color-util-colors-indigo-indigo-400); + --color-util-colors-indigo-indigo-500: var(--color-util-colors-indigo-indigo-500); + --color-util-colors-indigo-indigo-600: var(--color-util-colors-indigo-indigo-600); + --color-util-colors-indigo-indigo-700: var(--color-util-colors-indigo-indigo-700); + + --color-util-colors-blue-blue-50: var(--color-util-colors-blue-blue-50); + --color-util-colors-blue-blue-100: var(--color-util-colors-blue-blue-100); + --color-util-colors-blue-blue-200: var(--color-util-colors-blue-blue-200); + --color-util-colors-blue-blue-300: var(--color-util-colors-blue-blue-300); + --color-util-colors-blue-blue-400: var(--color-util-colors-blue-blue-400); + --color-util-colors-blue-blue-500: var(--color-util-colors-blue-blue-500); + --color-util-colors-blue-blue-600: var(--color-util-colors-blue-blue-600); + --color-util-colors-blue-blue-700: var(--color-util-colors-blue-blue-700); + + --color-util-colors-blue-light-blue-light-50: var(--color-util-colors-blue-light-blue-light-50); + --color-util-colors-blue-light-blue-light-100: var(--color-util-colors-blue-light-blue-light-100); + --color-util-colors-blue-light-blue-light-200: var(--color-util-colors-blue-light-blue-light-200); + --color-util-colors-blue-light-blue-light-300: var(--color-util-colors-blue-light-blue-light-300); + --color-util-colors-blue-light-blue-light-400: var(--color-util-colors-blue-light-blue-light-400); + --color-util-colors-blue-light-blue-light-500: var(--color-util-colors-blue-light-blue-light-500); + --color-util-colors-blue-light-blue-light-600: var(--color-util-colors-blue-light-blue-light-600); + --color-util-colors-blue-light-blue-light-700: var(--color-util-colors-blue-light-blue-light-700); + + --color-util-colors-gray-blue-gray-blue-50: var(--color-util-colors-gray-blue-gray-blue-50); + --color-util-colors-gray-blue-gray-blue-100: var(--color-util-colors-gray-blue-gray-blue-100); + --color-util-colors-gray-blue-gray-blue-200: var(--color-util-colors-gray-blue-gray-blue-200); + --color-util-colors-gray-blue-gray-blue-300: var(--color-util-colors-gray-blue-gray-blue-300); + --color-util-colors-gray-blue-gray-blue-400: var(--color-util-colors-gray-blue-gray-blue-400); + --color-util-colors-gray-blue-gray-blue-500: var(--color-util-colors-gray-blue-gray-blue-500); + --color-util-colors-gray-blue-gray-blue-600: var(--color-util-colors-gray-blue-gray-blue-600); + --color-util-colors-gray-blue-gray-blue-700: var(--color-util-colors-gray-blue-gray-blue-700); + + --color-util-colors-blue-brand-blue-brand-50: var(--color-util-colors-blue-brand-blue-brand-50); + --color-util-colors-blue-brand-blue-brand-100: var(--color-util-colors-blue-brand-blue-brand-100); + --color-util-colors-blue-brand-blue-brand-200: var(--color-util-colors-blue-brand-blue-brand-200); + --color-util-colors-blue-brand-blue-brand-300: var(--color-util-colors-blue-brand-blue-brand-300); + --color-util-colors-blue-brand-blue-brand-400: var(--color-util-colors-blue-brand-blue-brand-400); + --color-util-colors-blue-brand-blue-brand-500: var(--color-util-colors-blue-brand-blue-brand-500); + --color-util-colors-blue-brand-blue-brand-600: var(--color-util-colors-blue-brand-blue-brand-600); + --color-util-colors-blue-brand-blue-brand-700: var(--color-util-colors-blue-brand-blue-brand-700); + + --color-util-colors-red-red-50: var(--color-util-colors-red-red-50); + --color-util-colors-red-red-100: var(--color-util-colors-red-red-100); + --color-util-colors-red-red-200: var(--color-util-colors-red-red-200); + --color-util-colors-red-red-300: var(--color-util-colors-red-red-300); + --color-util-colors-red-red-400: var(--color-util-colors-red-red-400); + --color-util-colors-red-red-500: var(--color-util-colors-red-red-500); + --color-util-colors-red-red-600: var(--color-util-colors-red-red-600); + --color-util-colors-red-red-700: var(--color-util-colors-red-red-700); + + --color-util-colors-green-green-50: var(--color-util-colors-green-green-50); + --color-util-colors-green-green-100: var(--color-util-colors-green-green-100); + --color-util-colors-green-green-200: var(--color-util-colors-green-green-200); + --color-util-colors-green-green-300: var(--color-util-colors-green-green-300); + --color-util-colors-green-green-400: var(--color-util-colors-green-green-400); + --color-util-colors-green-green-500: var(--color-util-colors-green-green-500); + --color-util-colors-green-green-600: var(--color-util-colors-green-green-600); + --color-util-colors-green-green-700: var(--color-util-colors-green-green-700); + + --color-util-colors-warning-warning-50: var(--color-util-colors-warning-warning-50); + --color-util-colors-warning-warning-100: var(--color-util-colors-warning-warning-100); + --color-util-colors-warning-warning-200: var(--color-util-colors-warning-warning-200); + --color-util-colors-warning-warning-300: var(--color-util-colors-warning-warning-300); + --color-util-colors-warning-warning-400: var(--color-util-colors-warning-warning-400); + --color-util-colors-warning-warning-500: var(--color-util-colors-warning-warning-500); + --color-util-colors-warning-warning-600: var(--color-util-colors-warning-warning-600); + --color-util-colors-warning-warning-700: var(--color-util-colors-warning-warning-700); + + --color-util-colors-yellow-yellow-50: var(--color-util-colors-yellow-yellow-50); + --color-util-colors-yellow-yellow-100: var(--color-util-colors-yellow-yellow-100); + --color-util-colors-yellow-yellow-200: var(--color-util-colors-yellow-yellow-200); + --color-util-colors-yellow-yellow-300: var(--color-util-colors-yellow-yellow-300); + --color-util-colors-yellow-yellow-400: var(--color-util-colors-yellow-yellow-400); + --color-util-colors-yellow-yellow-500: var(--color-util-colors-yellow-yellow-500); + --color-util-colors-yellow-yellow-600: var(--color-util-colors-yellow-yellow-600); + --color-util-colors-yellow-yellow-700: var(--color-util-colors-yellow-yellow-700); + + --color-util-colors-teal-teal-50: var(--color-util-colors-teal-teal-50); + --color-util-colors-teal-teal-100: var(--color-util-colors-teal-teal-100); + --color-util-colors-teal-teal-200: var(--color-util-colors-teal-teal-200); + --color-util-colors-teal-teal-300: var(--color-util-colors-teal-teal-300); + --color-util-colors-teal-teal-400: var(--color-util-colors-teal-teal-400); + --color-util-colors-teal-teal-500: var(--color-util-colors-teal-teal-500); + --color-util-colors-teal-teal-600: var(--color-util-colors-teal-teal-600); + --color-util-colors-teal-teal-700: var(--color-util-colors-teal-teal-700); + + --color-util-colors-cyan-cyan-50: var(--color-util-colors-cyan-cyan-50); + --color-util-colors-cyan-cyan-100: var(--color-util-colors-cyan-cyan-100); + --color-util-colors-cyan-cyan-200: var(--color-util-colors-cyan-cyan-200); + --color-util-colors-cyan-cyan-300: var(--color-util-colors-cyan-cyan-300); + --color-util-colors-cyan-cyan-400: var(--color-util-colors-cyan-cyan-400); + --color-util-colors-cyan-cyan-500: var(--color-util-colors-cyan-cyan-500); + --color-util-colors-cyan-cyan-600: var(--color-util-colors-cyan-cyan-600); + --color-util-colors-cyan-cyan-700: var(--color-util-colors-cyan-cyan-700); + + --color-util-colors-violet-violet-50: var(--color-util-colors-violet-violet-50); + --color-util-colors-violet-violet-100: var(--color-util-colors-violet-violet-100); + --color-util-colors-violet-violet-200: var(--color-util-colors-violet-violet-200); + --color-util-colors-violet-violet-300: var(--color-util-colors-violet-violet-300); + --color-util-colors-violet-violet-400: var(--color-util-colors-violet-violet-400); + --color-util-colors-violet-violet-500: var(--color-util-colors-violet-violet-500); + --color-util-colors-violet-violet-600: var(--color-util-colors-violet-violet-600); + --color-util-colors-violet-violet-700: var(--color-util-colors-violet-violet-700); + + --color-util-colors-gray-gray-50: var(--color-util-colors-gray-gray-50); + --color-util-colors-gray-gray-100: var(--color-util-colors-gray-gray-100); + --color-util-colors-gray-gray-200: var(--color-util-colors-gray-gray-200); + --color-util-colors-gray-gray-300: var(--color-util-colors-gray-gray-300); + --color-util-colors-gray-gray-400: var(--color-util-colors-gray-gray-400); + --color-util-colors-gray-gray-500: var(--color-util-colors-gray-gray-500); + --color-util-colors-gray-gray-600: var(--color-util-colors-gray-gray-600); + --color-util-colors-gray-gray-700: var(--color-util-colors-gray-gray-700); + + --color-util-colors-green-light-green-light-50: var(--color-util-colors-green-light-green-light-50); + --color-util-colors-green-light-green-light-100: var(--color-util-colors-green-light-green-light-100); + --color-util-colors-green-light-green-light-200: var(--color-util-colors-green-light-green-light-200); + --color-util-colors-green-light-green-light-300: var(--color-util-colors-green-light-green-light-300); + --color-util-colors-green-light-green-light-500: var(--color-util-colors-green-light-green-light-500); + --color-util-colors-green-light-green-light-400: var(--color-util-colors-green-light-green-light-400); + --color-util-colors-green-light-green-light-600: var(--color-util-colors-green-light-green-light-600); + --color-util-colors-green-light-green-light-700: var(--color-util-colors-green-light-green-light-700); + + --color-util-colors-rose-rose-50: var(--color-util-colors-rose-rose-50); + --color-util-colors-rose-rose-100: var(--color-util-colors-rose-rose-100); + --color-util-colors-rose-rose-200: var(--color-util-colors-rose-rose-200); + --color-util-colors-rose-rose-300: var(--color-util-colors-rose-rose-300); + --color-util-colors-rose-rose-400: var(--color-util-colors-rose-rose-400); + --color-util-colors-rose-rose-500: var(--color-util-colors-rose-rose-500); + --color-util-colors-rose-rose-600: var(--color-util-colors-rose-rose-600); + --color-util-colors-rose-rose-700: var(--color-util-colors-rose-rose-700); + + --color-util-colors-midnight-midnight-50: var(--color-util-colors-midnight-midnight-50); + --color-util-colors-midnight-midnight-100: var(--color-util-colors-midnight-midnight-100); + --color-util-colors-midnight-midnight-200: var(--color-util-colors-midnight-midnight-200); + --color-util-colors-midnight-midnight-300: var(--color-util-colors-midnight-midnight-300); + --color-util-colors-midnight-midnight-400: var(--color-util-colors-midnight-midnight-400); + --color-util-colors-midnight-midnight-500: var(--color-util-colors-midnight-midnight-500); + --color-util-colors-midnight-midnight-600: var(--color-util-colors-midnight-midnight-600); + --color-util-colors-midnight-midnight-700: var(--color-util-colors-midnight-midnight-700); + + --color-third-party-LangChain: var(--color-third-party-LangChain); + --color-third-party-Langfuse: var(--color-third-party-Langfuse); + --color-third-party-Github: var(--color-third-party-Github); + --color-third-party-Github-tertiary: var(--color-third-party-Github-tertiary); + --color-third-party-Github-secondary: var(--color-third-party-Github-secondary); + --color-third-party-model-bg-openai: var(--color-third-party-model-bg-openai); + --color-third-party-model-bg-anthropic: var(--color-third-party-model-bg-anthropic); + --color-third-party-model-bg-default: var(--color-third-party-model-bg-default); + + --color-third-party-aws: var(--color-third-party-aws); + --color-third-party-aws-alt: var(--color-third-party-aws-alt); + + --color-saas-background: var(--color-saas-background); + --color-saas-pricing-grid-bg: var(--color-saas-pricing-grid-bg); + --color-saas-dify-blue-static: var(--color-saas-dify-blue-static); + --color-saas-dify-blue-static-hover: var(--color-saas-dify-blue-static-hover); + --color-saas-dify-blue-accessible: var(--color-saas-dify-blue-accessible); + --color-saas-dify-blue-inverted: var(--color-saas-dify-blue-inverted); + --color-saas-dify-blue-inverted-dimmed: var(--color-saas-dify-blue-inverted-dimmed); + + --color-saas-background-inverted: var(--color-saas-background-inverted); + --color-saas-background-inverted-hover: var(--color-saas-background-inverted-hover); + + --color-dify-logo-blue: var(--color-dify-logo-blue); + --color-dify-logo-black: var(--color-dify-logo-black); + --color-dify-logo-outline-1: var(--color-dify-logo-outline-1); + --color-dify-logo-outline-2: var(--color-dify-logo-outline-2); + +} diff --git a/packages/dify-ui/tailwind.config.ts b/packages/dify-ui/tailwind.config.ts deleted file mode 100644 index bcf1731775..0000000000 --- a/packages/dify-ui/tailwind.config.ts +++ /dev/null @@ -1,23 +0,0 @@ -import type { Config } from 'tailwindcss' -import { getIconCollections, iconsPlugin } from '@egoist/tailwindcss-icons' -import difyUIPreset from './src/tailwind-preset' - -const config: Config = { - content: [ - './src/**/*.{js,ts,jsx,tsx,mdx}', - './.storybook/**/*.{js,ts,jsx,tsx,mdx}', - ], - presets: [difyUIPreset], - plugins: [ - iconsPlugin({ - collections: getIconCollections(['ri']), - extraProperties: { - width: '1rem', - height: '1rem', - display: 'block', - }, - }), - ], -} - -export default config diff --git a/packages/dify-ui/tsconfig.json b/packages/dify-ui/tsconfig.json index 514954c807..ae1a2b78dd 100644 --- a/packages/dify-ui/tsconfig.json +++ b/packages/dify-ui/tsconfig.json @@ -3,6 +3,6 @@ "compilerOptions": { "types": ["vite-plus/test/globals"] }, - "include": ["src/**/*.ts", "src/**/*.tsx", "vite.config.ts", "tailwind.config.ts"], + "include": ["src/**/*.ts", "src/**/*.tsx", "vite.config.ts"], "exclude": ["node_modules", "dist", "storybook-static", "coverage"] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 76e3a023f1..2021d87adc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -48,6 +48,9 @@ catalogs: '@heroicons/react': specifier: 2.2.0 version: 2.2.0 + '@hey-api/openapi-ts': + specifier: 0.97.0 + version: 0.97.0 '@hono/node-server': specifier: 2.0.0 version: 2.0.0 @@ -168,6 +171,9 @@ catalogs: '@tanstack/react-form-devtools': specifier: 0.2.22 version: 0.2.22 + '@tanstack/react-hotkeys': + specifier: 0.10.0 + version: 0.10.0 '@tanstack/react-query': specifier: 5.100.6 version: 5.100.6 @@ -641,6 +647,43 @@ importers: specifier: 'catalog:' version: 0.1.20(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.20(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(esbuild@0.27.2)(happy-dom@20.9.0)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(@voidzero-dev/vite-plus-core@0.1.20(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(esbuild@0.27.2)(happy-dom@20.9.0)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3) + packages/contracts: + dependencies: + '@orpc/contract': + specifier: 'catalog:' + version: 1.14.0 + zod: + specifier: 'catalog:' + version: 4.3.6 + devDependencies: + '@dify/tsconfig': + specifier: workspace:* + version: link:../tsconfig + '@hey-api/openapi-ts': + specifier: 'catalog:' + version: 0.97.0(magicast@0.5.2)(typescript@6.0.3) + '@types/js-yaml': + specifier: 'catalog:' + version: 4.0.9 + '@types/node': + specifier: 'catalog:' + version: 25.6.0 + '@typescript/native-preview': + specifier: 'catalog:' + version: 7.0.0-dev.20260428.1 + eslint: + specifier: 'catalog:' + version: 10.2.1(jiti@2.6.1) + js-yaml: + specifier: 'catalog:' + version: 4.1.1 + typescript: + specifier: 'catalog:' + version: 6.0.3 + vite-plus: + specifier: 'catalog:' + version: 0.1.20(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.20(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(esbuild@0.27.2)(happy-dom@20.9.0)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(@voidzero-dev/vite-plus-core@0.1.20(@types/node@25.6.0)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(esbuild@0.27.2)(happy-dom@20.9.0)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3) + packages/dify-ui: dependencies: clsx: @@ -881,6 +924,9 @@ importers: '@tanstack/react-form': specifier: 'catalog:' version: 1.29.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@tanstack/react-hotkeys': + specifier: 'catalog:' + version: 0.10.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@tanstack/react-query': specifier: 'catalog:' version: 5.100.6(react@19.2.5) @@ -1113,6 +1159,9 @@ importers: '@chromatic-com/storybook': specifier: 'catalog:' version: 5.1.2(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + '@dify/contracts': + specifier: workspace:* + version: link:../packages/contracts '@dify/iconify-collections': specifier: workspace:* version: link:../packages/iconify-collections @@ -2072,6 +2121,31 @@ packages: peerDependencies: react: '>= 16 || ^19.0.0-rc' + '@hey-api/codegen-core@0.8.1': + resolution: {integrity: sha512-Iciv2vUCJTW9lWM/ROvyZLblmcbYJHPuXfzb1SzeDVVn4xEXu2ilLU1pq3fn+09FZ/Y0P7VyvRE47UDU6om8xA==} + engines: {node: '>=22.13.0'} + + '@hey-api/json-schema-ref-parser@1.4.1': + resolution: {integrity: sha512-DoPJGxVApDlktP1yYLjmOrF0YBEqb32ieCbx1S1i09n8TyCgdoh4yQaQ3kp0sMTauH+bwNKPsFh7S8qiWCoKZA==} + engines: {node: '>=22.13.0'} + + '@hey-api/openapi-ts@0.97.0': + resolution: {integrity: sha512-WZkKgrDlZpxKlDv2HkBCzaAYeuM+EtZKFmKGBv9/JblAKpX3JQTROi7PzlCZE3eisetRPSakbcRgn+LGyB7EiQ==} + engines: {node: '>=22.13.0'} + hasBin: true + peerDependencies: + typescript: '>=5.5.3 || >=6.0.0 || 6.0.1-rc' + + '@hey-api/shared@0.4.2': + resolution: {integrity: sha512-4fconS10E0Xr4/acV8G+BkApxaIStxrT0GhB9BDTQWvrFTy5/nV933SyFk8qImcbpKvgv9hpn3N+7bV8oFrbjA==} + engines: {node: '>=22.13.0'} + + '@hey-api/spec-types@0.2.0': + resolution: {integrity: sha512-ibQ8Is7evMavzr8GNyJCcTg975d8DpaMUyLmOrQ85UBdy1l6t1KuRAwgChAbesJsIlNV6gjmlXruWyegDX18Fg==} + + '@hey-api/types@0.1.4': + resolution: {integrity: sha512-thWfawrDIP7wSI9ioT13I5soaaqB5vAPIiZmgD8PbeEVKNrkonc0N/Sjj97ezl7oQgusZmaNphGdMKipPO6IBg==} + '@hono/node-server@2.0.0': resolution: {integrity: sha512-n3GfHwwCvHCkGmOwKfxUPOlbfzuO64Sbc5XC4NGPIXxkuOnJrdgExdRKmHfF924r914WRJPT397GdqLvdYTeyQ==} engines: {node: '>=20'} @@ -2294,6 +2368,9 @@ packages: '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + '@jsdevtools/ono@7.1.3': + resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} + '@lexical/clipboard@0.44.0': resolution: {integrity: sha512-nfmNIs7uENqlDI7cm2E4I1Yp8mDJGMhEQIrIV2rNWnL1oeHVXQ7yuYdyoPdcY1zuj/9nvkYBQYUEh0QiGwpETA==} @@ -2369,6 +2446,10 @@ packages: peerDependencies: yjs: '>=13.5.22' + '@lukeed/ms@2.0.2': + resolution: {integrity: sha512-9I2Zn6+NJLfaGoz9jN3lpwDgAYvfGeNYdbAIjJOqzs4Tpc+VU3Jqq4IofSUBKajiDS8k9fZIg18/z13mpk1bsA==} + engines: {node: '>=8'} + '@mdx-js/loader@3.1.1': resolution: {integrity: sha512-0TTacJyZ9mDmY+VefuthVshaNIyCGZHJG2fMnGaDttCt8HmjUF7SizlHJpaCDoGnN635nK1wpzfpx/Xx5S4WnQ==} peerDependencies: @@ -3801,6 +3882,10 @@ packages: peerDependencies: solid-js: 1.9.11 + '@tanstack/hotkeys@0.8.0': + resolution: {integrity: sha512-vqH7X9nb0MTJ/O08++dB5bP9jgj4+BIPOUu/U+6myG86lDsirZSVSobpq5UQpE7nBuk62i8eIYeOhd+OMl/UrA==} + engines: {node: '>=18'} + '@tanstack/pacer-lite@0.1.1': resolution: {integrity: sha512-y/xtNPNt/YeyoVxE/JCx+T7yjEzpezmbb+toK8DDD1P4m7Kzs5YR956+7OKexG3f8aXgC3rLZl7b1V+yNUSy5w==} engines: {node: '>=18'} @@ -3834,6 +3919,13 @@ packages: '@tanstack/react-start': optional: true + '@tanstack/react-hotkeys@0.10.0': + resolution: {integrity: sha512-GwOSndI5j3qBVYTmgP1mYyRTnlxb2MS17cwGlsavSxMQPSnmDf+m3LzMIpRMs+3zzQMjg3cYhHsFYizYlFI2tw==} + engines: {node: '>=18'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + '@tanstack/react-query-devtools@5.100.6': resolution: {integrity: sha512-sz3ksMKA2t1rx0+Odzb0x1A3pXH/SVf7fzlzd3sKXzwXz8980f5sbOwfQD6+UfTG8G4Y2KaIg9e3sBn+uC4VTg==} peerDependencies: @@ -3845,6 +3937,12 @@ packages: peerDependencies: react: ^18 || ^19 + '@tanstack/react-store@0.11.0': + resolution: {integrity: sha512-tX4YXh3PDkmpvGQWkWqKpzs/MSqbtuwY9dWdWhtV9Q50PmO+jOkUKIWIX4G85dwt7lxdHLXsiaEKPdKmC8F41w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + '@tanstack/react-store@0.9.3': resolution: {integrity: sha512-y2iHd/N9OkoQbFJLUX1T9vbc2O9tjH0pQRgTcx1/Nz4IlwLvkgpuglXUx+mXt0g5ZDFrEeDnONPqkbfxXJKwRg==} peerDependencies: @@ -3857,6 +3955,9 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + '@tanstack/store@0.11.0': + resolution: {integrity: sha512-WlzzCt3xi0G6pCAJu1U+2jiECwabETDpQDi3hfkFZvJii9AuZqEKbOiVarX1/bWhTNjU486yQtJCCasi/0q+Cw==} + '@tanstack/store@0.9.3': resolution: {integrity: sha512-8reSzl/qGWGGVKhBoxXPMWzATSbZLZFWhwBAFO9NAyp0TxzfBP0mIrGb8CP8KrQTmvzXlR/vFPPUrHTLBGyFyw==} @@ -4653,6 +4754,10 @@ packages: ajv@6.14.0: resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + ansi-regex@4.1.1: resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} engines: {node: '>=6'} @@ -4792,6 +4897,14 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} + c12@3.3.4: + resolution: {integrity: sha512-cM0ApFQSBXuourJejzwv/AuPRvAxordTyParRVcHjjtXirtkzM0uK2L9TTn9s0cXZbG7E55jCivRQzoxYmRAlA==} + peerDependencies: + magicast: '*' + peerDependenciesMeta: + magicast: + optional: true + cac@7.0.0: resolution: {integrity: sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==} engines: {node: '>=20.19.0'} @@ -4858,6 +4971,10 @@ packages: chevrotain@11.1.2: resolution: {integrity: sha512-opLQzEVriiH1uUQ4Kctsd49bRoFDXGGSC4GUqj7pGyxM3RehRhvTlZJc1FL/Flew2p5uwxa1tUDWKzI4wNM8pg==} + chokidar@5.0.0: + resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} + engines: {node: '>= 20.19.0'} + chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} @@ -4931,6 +5048,10 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true + comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} @@ -5250,6 +5371,9 @@ packages: resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} engines: {node: '>=12'} + defu@6.1.7: + resolution: {integrity: sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==} + delaunator@5.1.0: resolution: {integrity: sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ==} @@ -5257,6 +5381,9 @@ packages: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} + destr@2.0.5: + resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} + detect-libc@2.1.2: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} @@ -5309,6 +5436,10 @@ packages: resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} + dotenv@17.4.2: + resolution: {integrity: sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==} + engines: {node: '>=12'} + echarts-for-react@3.0.6: resolution: {integrity: sha512-4zqLgTGWS3JvkQDXjzkR1k1CHRdpd6by0988TWMJgnvDytegWLbeP/VNZmMa+0VJx2eD7Y632bi2JquXDgiGJg==} peerDependencies: @@ -5893,6 +6024,10 @@ packages: get-tsconfig@4.14.0: resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==} + giget@3.2.0: + resolution: {integrity: sha512-GvHTWcykIR/fP8cj8dMpuMMkvaeJfPvYnhq0oW+chSeIr+ldX21ifU2Ms6KBoyKZQZmVaUAAhQ2EZ68KJF8a7A==} + hasBin: true + github-from-package@0.0.0: resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} @@ -7137,6 +7272,9 @@ packages: resolution: {integrity: sha512-h36JMxKRqrAxVD8201FrCpyeNuUY9Y5zZwujr20fFO77tpUtGa6EZzfKw/3WaiBX95fq7+MpsuMLNdSnORAwSA==} engines: {node: '>=14.18.0'} + rc9@3.0.1: + resolution: {integrity: sha512-gMDyleLWVE+i6Sgtc0QbbY6pEKqYs97NGi6isHQPqYlLemPoO8dxQ3uGi0f4NiP98c+jMW6cG1Kx9dDwfvqARQ==} + rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true @@ -7310,6 +7448,10 @@ packages: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} + readdirp@5.0.0: + resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} + engines: {node: '>= 20.19.0'} + recast@0.23.11: resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} engines: {node: '>= 4'} @@ -9332,6 +9474,56 @@ snapshots: dependencies: react: 19.2.5 + '@hey-api/codegen-core@0.8.1(magicast@0.5.2)': + dependencies: + '@hey-api/types': 0.1.4 + ansi-colors: 4.1.3 + c12: 3.3.4(magicast@0.5.2) + color-support: 1.1.3 + transitivePeerDependencies: + - magicast + + '@hey-api/json-schema-ref-parser@1.4.1': + dependencies: + '@jsdevtools/ono': 7.1.3 + '@types/json-schema': 7.0.15 + yaml: 2.8.3 + + '@hey-api/openapi-ts@0.97.0(magicast@0.5.2)(typescript@6.0.3)': + dependencies: + '@hey-api/codegen-core': 0.8.1(magicast@0.5.2) + '@hey-api/json-schema-ref-parser': 1.4.1 + '@hey-api/shared': 0.4.2(magicast@0.5.2) + '@hey-api/spec-types': 0.2.0 + '@hey-api/types': 0.1.4 + '@lukeed/ms': 2.0.2 + ansi-colors: 4.1.3 + color-support: 1.1.3 + commander: 14.0.3 + get-tsconfig: 4.14.0 + typescript: 6.0.3 + transitivePeerDependencies: + - magicast + + '@hey-api/shared@0.4.2(magicast@0.5.2)': + dependencies: + '@hey-api/codegen-core': 0.8.1(magicast@0.5.2) + '@hey-api/json-schema-ref-parser': 1.4.1 + '@hey-api/spec-types': 0.2.0 + '@hey-api/types': 0.1.4 + ansi-colors: 4.1.3 + cross-spawn: 7.0.6 + open: 11.0.0 + semver: 7.7.4 + transitivePeerDependencies: + - magicast + + '@hey-api/spec-types@0.2.0': + dependencies: + '@hey-api/types': 0.1.4 + + '@hey-api/types@0.1.4': {} + '@hono/node-server@2.0.0(hono@4.12.15)': dependencies: hono: 4.12.15 @@ -9517,6 +9709,8 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 + '@jsdevtools/ono@7.1.3': {} + '@lexical/clipboard@0.44.0': dependencies: '@lexical/extension': 0.44.0 @@ -9669,6 +9863,8 @@ snapshots: '@lexical/selection': 0.44.0 lexical: 0.44.0 + '@lukeed/ms@2.0.2': {} + '@mdx-js/loader@3.1.1': dependencies: '@mdx-js/mdx': 3.1.1 @@ -10890,6 +11086,10 @@ snapshots: - react - vue + '@tanstack/hotkeys@0.8.0': + dependencies: + '@tanstack/store': 0.11.0 + '@tanstack/pacer-lite@0.1.1': {} '@tanstack/query-core@5.100.6': {} @@ -10928,6 +11128,13 @@ snapshots: transitivePeerDependencies: - react-dom + '@tanstack/react-hotkeys@0.10.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + dependencies: + '@tanstack/hotkeys': 0.8.0 + '@tanstack/react-store': 0.11.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + '@tanstack/react-query-devtools@5.100.6(@tanstack/react-query@5.100.6(react@19.2.5))(react@19.2.5)': dependencies: '@tanstack/query-devtools': 5.100.6 @@ -10939,6 +11146,13 @@ snapshots: '@tanstack/query-core': 5.100.6 react: 19.2.5 + '@tanstack/react-store@0.11.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + dependencies: + '@tanstack/store': 0.11.0 + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + use-sync-external-store: 1.6.0(react@19.2.5) + '@tanstack/react-store@0.9.3(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: '@tanstack/store': 0.9.3 @@ -10952,6 +11166,8 @@ snapshots: react: 19.2.5 react-dom: 19.2.5(react@19.2.5) + '@tanstack/store@0.11.0': {} + '@tanstack/store@0.9.3': {} '@tanstack/virtual-core@3.14.0': {} @@ -11863,6 +12079,8 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + ansi-colors@4.1.3: {} + ansi-regex@4.1.1: {} ansi-regex@5.0.1: {} @@ -11977,6 +12195,23 @@ snapshots: bytes@3.1.2: {} + c12@3.3.4(magicast@0.5.2): + dependencies: + chokidar: 5.0.0 + confbox: 0.2.4 + defu: 6.1.7 + dotenv: 17.4.2 + exsolve: 1.0.8 + giget: 3.2.0 + jiti: 2.6.1 + ohash: 2.0.11 + pathe: 2.0.3 + perfect-debounce: 2.1.0 + pkg-types: 2.3.0 + rc9: 3.0.1 + optionalDependencies: + magicast: 0.5.2 + cac@7.0.0: {} camelize@1.0.1: {} @@ -12064,6 +12299,10 @@ snapshots: '@chevrotain/utils': 11.1.2 lodash-es: 4.18.0 + chokidar@5.0.0: + dependencies: + readdirp: 5.0.0 + chownr@1.1.4: optional: true @@ -12135,6 +12374,8 @@ snapshots: color-name@1.1.4: {} + color-support@1.1.3: {} + comma-separated-tokens@2.0.3: {} commander@14.0.0: {} @@ -12457,12 +12698,16 @@ snapshots: define-lazy-prop@3.0.0: {} + defu@6.1.7: {} + delaunator@5.1.0: dependencies: robust-predicates: 3.0.3 dequal@2.0.3: {} + destr@2.0.5: {} + detect-libc@2.1.2: {} detect-node-es@1.1.0: {} @@ -12511,6 +12756,8 @@ snapshots: dotenv@16.6.1: {} + dotenv@17.4.2: {} + echarts-for-react@3.0.6(echarts@6.0.0)(react@19.2.5): dependencies: echarts: 6.0.0 @@ -13274,6 +13521,8 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 + giget@3.2.0: {} + github-from-package@0.0.0: optional: true @@ -14928,6 +15177,11 @@ snapshots: radash@12.1.1: {} + rc9@3.0.1: + dependencies: + defu: 6.1.7 + destr: 2.0.5 + rc@1.2.8: dependencies: deep-extend: 0.6.0 @@ -15126,6 +15380,8 @@ snapshots: util-deprecate: 1.0.2 optional: true + readdirp@5.0.0: {} + recast@0.23.11: dependencies: ast-types: 0.16.1 @@ -16330,6 +16586,7 @@ snapshots: time: '@amplitude/analytics-browser@2.42.0': '2026-04-28T17:01:08.442Z' '@amplitude/plugin-session-replay-browser@1.28.1': '2026-04-28T17:01:37.145Z' + '@hey-api/openapi-ts@0.97.0': '2026-04-28T03:33:22.380Z' '@hono/node-server@2.0.0': '2026-04-21T00:25:40.852Z' '@lexical/link@0.44.0': '2026-04-27T14:47:45.477Z' '@lexical/list@0.44.0': '2026-04-27T14:47:48.463Z' @@ -16337,12 +16594,16 @@ time: '@lexical/selection@0.44.0': '2026-04-27T14:48:15.054Z' '@lexical/text@0.44.0': '2026-04-27T14:48:23.958Z' '@lexical/utils@0.44.0': '2026-04-27T14:48:26.689Z' + '@orpc/contract@1.14.0': '2026-04-22T14:03:55.170Z' '@tanstack/eslint-plugin-query@5.100.6': '2026-04-28T16:39:45.129Z' + '@tanstack/react-hotkeys@0.10.0': '2026-04-25T12:28:06.989Z' '@tanstack/react-query-devtools@5.100.6': '2026-04-28T16:39:51.334Z' '@tanstack/react-query@5.100.6': '2026-04-28T16:39:52.105Z' '@tsslint/cli@3.1.0': '2026-04-29T04:57:38.423Z' '@tsslint/compat-eslint@3.1.0': '2026-04-29T04:57:34.593Z' '@tsslint/config@3.1.0': '2026-04-29T04:57:36.446Z' + '@types/js-yaml@4.0.9': '2023-11-07T20:20:13.264Z' + '@types/node@25.6.0': '2026-04-10T03:39:59.421Z' '@typescript-eslint/eslint-plugin@8.59.1': '2026-04-27T17:31:50.020Z' '@typescript-eslint/parser@8.59.1': '2026-04-27T17:31:29.147Z' '@typescript/native-preview@7.0.0-dev.20260428.1': '2026-04-28T08:09:51.266Z' @@ -16352,9 +16613,13 @@ time: copy-to-clipboard@4.0.2: '2026-04-24T22:15:18.933Z' eslint-markdown@0.7.0: '2026-04-25T11:31:20.226Z' eslint-plugin-better-tailwindcss@4.5.0: '2026-04-28T06:24:47.281Z' + eslint@10.2.1: '2026-04-17T20:17:44.852Z' i18next@26.0.8: '2026-04-24T19:20:14.685Z' + js-yaml@4.1.1: '2025-11-12T15:18:03.524Z' lexical@0.44.0: '2026-04-27T14:47:00.970Z' tldts@7.0.29: '2026-04-28T12:21:32.710Z' + typescript@6.0.3: '2026-04-16T23:38:27.905Z' uuid@14.0.0: '2026-04-19T15:15:42.302Z' vinext@0.0.45: '2026-04-28T11:43:03.463Z' vite-plus@0.1.20: '2026-04-29T03:08:50.317Z' + zod@4.3.6: '2026-01-22T19:14:35.382Z' diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index bba9b50682..b0c007ee4d 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -68,6 +68,7 @@ catalog: '@formatjs/intl-localematcher': 0.8.4 '@headlessui/react': 2.2.10 '@heroicons/react': 2.2.0 + '@hey-api/openapi-ts': 0.97.0 '@hono/node-server': 2.0.0 '@iconify-json/heroicons': 1.2.3 '@iconify-json/ri': 1.2.10 @@ -109,6 +110,7 @@ catalog: '@tanstack/react-devtools': 0.10.2 '@tanstack/react-form': 1.29.1 '@tanstack/react-form-devtools': 0.2.22 + '@tanstack/react-hotkeys': 0.10.0 '@tanstack/react-query': 5.100.6 '@tanstack/react-query-devtools': 5.100.6 '@tanstack/react-virtual': 3.13.24 diff --git a/scripts/stress-test/common/config_helper.py b/scripts/stress-test/common/config_helper.py index fb34b43e26..fffb5e00d8 100644 --- a/scripts/stress-test/common/config_helper.py +++ b/scripts/stress-test/common/config_helper.py @@ -2,7 +2,48 @@ import json from pathlib import Path -from typing import Any +from typing import NotRequired, TypedDict + + +class AdminConfig(TypedDict): + """Configuration for admin section.""" + + username: str + password: str + base_url: str + + +class AuthConfig(TypedDict): + """Configuration for authentication section.""" + + access_token: str + refresh_token: NotRequired[str] + expires_at: NotRequired[int] + + +class AppConfig(TypedDict): + """Configuration for app section.""" + + app_id: str + app_name: NotRequired[str] + description: NotRequired[str] + + +class ApiKeyConfig(TypedDict): + """Configuration for API key section.""" + + token: str + key_name: NotRequired[str] + expires_at: NotRequired[int] + + +class StressTestState(TypedDict): + """Complete stress test state structure.""" + + admin: NotRequired[AdminConfig] + auth: NotRequired[AuthConfig] + app: NotRequired[AppConfig] + api_key: NotRequired[ApiKeyConfig] class ConfigHelper: @@ -44,8 +85,8 @@ class ConfigHelper: filename += ".json" return self.base_dir / filename - def read_config(self, filename: str) -> dict[str, Any] | None: - """Read a configuration file. + def read_config[T](self, filename: str) -> T | None: + """Read a configuration file with generic return type. DEPRECATED: Use read_state() or get_state_section() for new code. This method provides backward compatibility. @@ -54,11 +95,12 @@ class ConfigHelper: filename: Name of the config file to read Returns: - Dictionary containing config data, or None if file doesn't exist + Configuration data of type T, or None if file doesn't exist """ # Provide backward compatibility for old config names if filename in self._LEGACY_SECTION_MAP: - return self.get_state_section(self._LEGACY_SECTION_MAP[filename]) + section_data = self.get_state_section(self._LEGACY_SECTION_MAP[filename]) + return section_data # type: ignore config_path = self.get_config_path(filename) @@ -67,12 +109,12 @@ class ConfigHelper: try: with open(config_path) as f: - return json.load(f) + return json.load(f) # type: ignore except (OSError, json.JSONDecodeError) as e: print(f"❌ Error reading {filename}: {e}") return None - def write_config(self, filename: str, data: dict[str, Any]) -> bool: + def write_config[T](self, filename: str, data: T) -> bool: """Write data to a configuration file. DEPRECATED: Use write_state() or update_state_section() for new code. @@ -80,7 +122,7 @@ class ConfigHelper: Args: filename: Name of the config file to write - data: Dictionary containing data to save + data: Data to save (must be JSON serializable) Returns: True if successful, False otherwise @@ -89,7 +131,7 @@ class ConfigHelper: if filename in self._LEGACY_SECTION_MAP: return self.update_state_section( self._LEGACY_SECTION_MAP[filename], - data, + data, # type: ignore ) self.ensure_config_dir() @@ -97,7 +139,7 @@ class ConfigHelper: try: with open(config_path, "w") as f: - json.dump(data, f, indent=2) + json.dump(data, f, indent=2) # type: ignore return True except OSError as e: print(f"❌ Error writing {filename}: {e}") @@ -135,7 +177,7 @@ class ConfigHelper: print(f"❌ Error deleting {filename}: {e}") return False - def read_state(self) -> dict[str, Any] | None: + def read_state(self) -> StressTestState | None: """Read the entire stress test state. Returns: @@ -147,12 +189,17 @@ class ConfigHelper: try: with open(state_path) as f: - return json.load(f) + data = json.load(f) + # Validate basic structure + if not isinstance(data, dict): + print(f"❌ Invalid state format in {self.state_file}") + return None + return data # type: ignore except (OSError, json.JSONDecodeError) as e: print(f"❌ Error reading {self.state_file}: {e}") return None - def write_state(self, data: dict[str, Any]) -> bool: + def write_state(self, data: StressTestState) -> bool: """Write the entire stress test state. Args: @@ -172,32 +219,32 @@ class ConfigHelper: print(f"❌ Error writing {self.state_file}: {e}") return False - def update_state_section(self, section: str, data: dict[str, Any]) -> bool: + def update_state_section[T](self, section: str, data: T) -> bool: """Update a specific section of the stress test state. Args: section: Name of the section to update (e.g., 'admin', 'auth', 'app', 'api_key') - data: Dictionary containing section data to save + data: Section data to save Returns: True if successful, False otherwise """ state = self.read_state() or {} - state[section] = data - return self.write_state(state) + state[section] = data # type: ignore + return self.write_state(state) # type: ignore - def get_state_section(self, section: str) -> dict[str, Any] | None: + def get_state_section[T](self, section: str) -> T | None: """Get a specific section from the stress test state. Args: section: Name of the section to get (e.g., 'admin', 'auth', 'app', 'api_key') Returns: - Dictionary containing section data, or None if not found + Section data of type T, or None if not found """ state = self.read_state() if state: - return state.get(section) + return state.get(section) # type: ignore return None def get_token(self) -> str | None: @@ -206,7 +253,7 @@ class ConfigHelper: Returns: Access token string or None if not found """ - auth = self.get_state_section("auth") + auth = self.get_state_section[AuthConfig]("auth") if auth: return auth.get("access_token") return None @@ -217,7 +264,7 @@ class ConfigHelper: Returns: App ID string or None if not found """ - app = self.get_state_section("app") + app = self.get_state_section[AppConfig]("app") if app: return app.get("app_id") return None @@ -228,7 +275,7 @@ class ConfigHelper: Returns: API key token string or None if not found """ - api_key = self.get_state_section("api_key") + api_key = self.get_state_section[ApiKeyConfig]("api_key") if api_key: return api_key.get("token") return None diff --git a/scripts/stress-test/setup/mock_openai_server.py b/scripts/stress-test/setup/mock_openai_server.py index 7333c66e57..1ac682bab9 100755 --- a/scripts/stress-test/setup/mock_openai_server.py +++ b/scripts/stress-test/setup/mock_openai_server.py @@ -4,7 +4,6 @@ import json import time import uuid from collections.abc import Iterator -from typing import Any from flask import Flask, Response, jsonify, request @@ -29,13 +28,13 @@ MODELS = [ @app.route("/v1/models", methods=["GET"]) -def list_models() -> Any: +def list_models() -> Response: """List available models.""" return jsonify({"object": "list", "data": MODELS}) @app.route("/v1/chat/completions", methods=["POST"]) -def chat_completions() -> Any: +def chat_completions() -> Response: """Handle chat completions.""" data = request.json or {} model = data.get("model", "gpt-3.5-turbo") @@ -123,7 +122,7 @@ def chat_completions() -> Any: @app.route("/v1/completions", methods=["POST"]) -def completions() -> Any: +def completions() -> Response: """Handle text completions.""" data = request.json or {} model = data.get("model", "gpt-3.5-turbo-instruct") @@ -155,7 +154,7 @@ def completions() -> Any: @app.route("/v1/embeddings", methods=["POST"]) -def embeddings() -> Any: +def embeddings() -> Response: """Handle embeddings requests.""" data = request.json or {} model = data.get("model", "text-embedding-ada-002") @@ -178,7 +177,7 @@ def embeddings() -> Any: @app.route("/v1/models/", methods=["GET"]) -def get_model(model_id: str) -> tuple[Any, int] | Any: +def get_model(model_id: str) -> Response | tuple[Response, int]: """Get specific model details.""" for model in MODELS: if model["id"] == model_id: @@ -188,7 +187,7 @@ def get_model(model_id: str) -> tuple[Any, int] | Any: @app.route("/health", methods=["GET"]) -def health() -> Any: +def health() -> Response: """Health check endpoint.""" return jsonify({"status": "healthy"}) diff --git a/vite.config.ts b/vite.config.ts index aebcaf8f73..e8f94d964a 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -4,4 +4,8 @@ export default defineConfig({ staged: { '*': 'eslint --fix --pass-on-unpruned-suppressions', }, + fmt: { + singleQuote: true, + semi: false, + }, }) diff --git a/web/.storybook/preview.tsx b/web/.storybook/preview.tsx index 92b5baab0d..0209fc535c 100644 --- a/web/.storybook/preview.tsx +++ b/web/.storybook/preview.tsx @@ -6,7 +6,6 @@ import { QueryClient, QueryClientProvider } from '@tanstack/react-query' import { I18nClientProvider as I18N } from '../app/components/provider/i18n' import commonEnUS from '../i18n/en-US/common.json' -import '../app/styles/globals.css' import '../app/styles/markdown.css' import './storybook.css' diff --git a/web/.storybook/storybook.css b/web/.storybook/storybook.css index 85df1087a0..159deff4fe 100644 --- a/web/.storybook/storybook.css +++ b/web/.storybook/storybook.css @@ -1,3 +1,16 @@ +@import '../app/styles/tailwind-core.css'; + +@source '../app'; +@source '../context'; +@source '../hooks'; +@source '.'; +@source '../../packages/dify-ui/src'; +@source '../node_modules/streamdown/dist'; +@source '../node_modules/@streamdown/math/dist'; +@source not '../**/*.{spec,test}.{js,ts,jsx,tsx}'; +@source not '../../packages/dify-ui/src/**/*.{spec,test}.{ts,tsx}'; +@source not '../../packages/dify-ui/src/**/*.stories.{ts,tsx}'; + html, body { max-width: unset; diff --git a/web/__tests__/real-browser-flicker.test.tsx b/web/__tests__/real-browser-flicker.test.tsx index 7c3b45af19..288a5198a8 100644 --- a/web/__tests__/real-browser-flicker.test.tsx +++ b/web/__tests__/real-browser-flicker.test.tsx @@ -255,7 +255,6 @@ const TestThemeProvider = ({ children }: { children: React.ReactNode }) => ( defaultTheme="system" enableSystem disableTransitionOnChange - enableColorScheme={false} > {children} diff --git a/web/app/components/app-sidebar/__tests__/basic.spec.tsx b/web/app/components/app-sidebar/__tests__/basic.spec.tsx index 67e708eb02..1abb56d7c6 100644 --- a/web/app/components/app-sidebar/__tests__/basic.spec.tsx +++ b/web/app/components/app-sidebar/__tests__/basic.spec.tsx @@ -7,12 +7,6 @@ vi.mock('@/app/components/base/icons/src/vender/workflow', () => ({ WindowCursor: (props: React.SVGProps) => , })) -vi.mock('@/app/components/base/tooltip', () => ({ - default: ({ popupContent }: { popupContent: React.ReactNode }) => ( -
{popupContent}
- ), -})) - vi.mock('../../base/app-icon', () => ({ default: ({ icon, background, innerIcon, className }: { icon?: string @@ -75,13 +69,12 @@ describe('AppBasic', () => { it('should show hover tip when provided', () => { render() - expect(screen.getByTestId('tooltip')).toBeInTheDocument() - expect(screen.getByText('Some tip')).toBeInTheDocument() + expect(screen.getByLabelText('Some tip')).toBeInTheDocument() }) it('should not show hover tip when not provided', () => { render() - expect(screen.queryByTestId('tooltip')).not.toBeInTheDocument() + expect(screen.queryByLabelText('Some tip')).not.toBeInTheDocument() }) }) diff --git a/web/app/components/app-sidebar/basic.tsx b/web/app/components/app-sidebar/basic.tsx index 29a08f8a01..141bd71f35 100644 --- a/web/app/components/app-sidebar/basic.tsx +++ b/web/app/components/app-sidebar/basic.tsx @@ -4,7 +4,7 @@ import { ApiAggregate, WindowCursor, } from '@/app/components/base/icons/src/vender/workflow' -import Tooltip from '@/app/components/base/tooltip' +import { Infotip } from '@/app/components/base/infotip' import AppIcon from '../base/app-icon' type IAppBasicProps = { @@ -82,16 +82,9 @@ export default function AppBasic({ icon, icon_background, name, isExternal, type {hoverTip && ( - - {hoverTip} - - )} - popupClassName="ml-1" - triggerClassName="w-4 h-4 ml-1" - position="top" - /> + + {hoverTip} + )} {!hideType && isExtraInLine && ( diff --git a/web/app/components/app-sidebar/toggle-button.tsx b/web/app/components/app-sidebar/toggle-button.tsx index 6aca77fb4f..9dd5a58ef2 100644 --- a/web/app/components/app-sidebar/toggle-button.tsx +++ b/web/app/components/app-sidebar/toggle-button.tsx @@ -1,20 +1,20 @@ import { Button } from '@langgenius/dify-ui/button' import { cn } from '@langgenius/dify-ui/cn' +import { Tooltip, TooltipContent, TooltipTrigger } from '@langgenius/dify-ui/tooltip' import { RiArrowLeftSLine, RiArrowRightSLine } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' -import Tooltip from '../base/tooltip' import ShortcutsName from '../workflow/shortcuts-name' -type TooltipContentProps = { +type ToggleTooltipContentProps = { expand: boolean } const TOGGLE_SHORTCUT = ['ctrl', 'B'] -const TooltipContent = ({ +const ToggleTooltipContent = ({ expand, -}: TooltipContentProps) => { +}: ToggleTooltipContentProps) => { const { t } = useTranslation() return ( @@ -37,22 +37,21 @@ const ToggleButton = ({ className, }: ToggleButtonProps) => { return ( - } - popupClassName="p-1.5 rounded-lg" - position="right" - > - + {expand ? : } + + + + ) } diff --git a/web/app/components/app/configuration/config-vision/index.tsx b/web/app/components/app/configuration/config-vision/index.tsx index b9cb54cc34..81c0ac8450 100644 --- a/web/app/components/app/configuration/config-vision/index.tsx +++ b/web/app/components/app/configuration/config-vision/index.tsx @@ -11,7 +11,7 @@ import { useContext } from 'use-context-selector' // import { Resolution } from '@/types/app' import { useFeatures, useFeaturesStore } from '@/app/components/base/features/hooks' import { Vision } from '@/app/components/base/icons/src/vender/features' -import Tooltip from '@/app/components/base/tooltip' +import { Infotip } from '@/app/components/base/infotip' import OptionCard from '@/app/components/workflow/nodes/_base/components/option-card' import { SupportUploadFileTypes } from '@/app/components/workflow/types' // import OptionCard from '@/app/components/workflow/nodes/_base/components/option-card' @@ -70,13 +70,12 @@ const ConfigVision: FC = () => {
{t('vision.name', { ns: 'appDebug' })}
- - {t('vision.description', { ns: 'appDebug' })} -
- )} - /> + + {t('vision.description', { ns: 'appDebug' })} +
{readonly @@ -84,15 +83,14 @@ const ConfigVision: FC = () => { <>
{t('vision.visionSettings.resolution', { ns: 'appDebug' })}
- - {t('vision.visionSettings.resolutionTooltip', { ns: 'appDebug' }).split('\n').map(item => ( -
{item}
- ))} -
- )} - /> + + {t('vision.visionSettings.resolutionTooltip', { ns: 'appDebug' }).split('\n').map(item => ( +
{item}
+ ))} +
{
{t('vision.visionSettings.resolution', { ns: 'appDebug' })}
- - {t('vision.visionSettings.resolutionTooltip', { ns: 'appDebug' }).split('\n').map(item => ( -
{item}
- ))} -
- )} - /> + + {t('vision.visionSettings.resolutionTooltip', { ns: 'appDebug' }).split('\n').map(item => ( +
{item}
+ ))} +
{
{t('feature.audioUpload.title', { ns: 'appDebug' })}
- - {t('feature.audioUpload.description', { ns: 'appDebug' })} -
- )} - /> + + {t('feature.audioUpload.description', { ns: 'appDebug' })} +
{!readonly && (
diff --git a/web/app/components/app/configuration/config/config-document.tsx b/web/app/components/app/configuration/config/config-document.tsx index 156c605267..107e21b36e 100644 --- a/web/app/components/app/configuration/config/config-document.tsx +++ b/web/app/components/app/configuration/config/config-document.tsx @@ -9,7 +9,7 @@ import { useTranslation } from 'react-i18next' import { useContext } from 'use-context-selector' import { useFeatures, useFeaturesStore } from '@/app/components/base/features/hooks' import { Document } from '@/app/components/base/icons/src/vender/features' -import Tooltip from '@/app/components/base/tooltip' +import { Infotip } from '@/app/components/base/infotip' import { SupportUploadFileTypes } from '@/app/components/workflow/types' import ConfigContext from '@/context/debug-configuration' @@ -57,13 +57,12 @@ const ConfigDocument: FC = () => {
{t('feature.documentUpload.title', { ns: 'appDebug' })}
- - {t('feature.documentUpload.description', { ns: 'appDebug' })} -
- )} - /> + + {t('feature.documentUpload.description', { ns: 'appDebug' })} + {!readonly && (
diff --git a/web/app/components/app/configuration/dataset-config/context-var/__tests__/index.spec.tsx b/web/app/components/app/configuration/dataset-config/context-var/__tests__/index.spec.tsx index 91fe47d83d..e8b1583171 100644 --- a/web/app/components/app/configuration/dataset-config/context-var/__tests__/index.spec.tsx +++ b/web/app/components/app/configuration/dataset-config/context-var/__tests__/index.spec.tsx @@ -275,7 +275,7 @@ describe('ContextVar', () => { // Act render() - const varPickerTrigger = screen.getByTestId('popover-trigger') + const varPickerTrigger = screen.getAllByTestId('popover-trigger').at(-1)! await user.click(varPickerTrigger!) expect(screen.getByTestId('popover-content'))!.toBeInTheDocument() @@ -296,7 +296,7 @@ describe('ContextVar', () => { // Act render() - const varPickerTrigger = screen.getByTestId('popover-trigger') + const varPickerTrigger = screen.getAllByTestId('popover-trigger').at(-1)! // Open dropdown await user.click(varPickerTrigger!) diff --git a/web/app/components/app/configuration/dataset-config/context-var/index.tsx b/web/app/components/app/configuration/dataset-config/context-var/index.tsx index 634277c469..60d81548cf 100644 --- a/web/app/components/app/configuration/dataset-config/context-var/index.tsx +++ b/web/app/components/app/configuration/dataset-config/context-var/index.tsx @@ -5,7 +5,7 @@ import { cn } from '@langgenius/dify-ui/cn' import * as React from 'react' import { useTranslation } from 'react-i18next' import { BracketsX } from '@/app/components/base/icons/src/vender/line/development' -import Tooltip from '@/app/components/base/tooltip' +import { Infotip } from '@/app/components/base/infotip' import VarPicker from './var-picker' const ContextVar: FC = (props) => { @@ -20,13 +20,12 @@ const ContextVar: FC = (props) => {
{t('feature.dataSet.queryVariable.title', { ns: 'appDebug' })}
- - {t('feature.dataSet.queryVariable.tip', { ns: 'appDebug' })} - - )} - /> + + {t('feature.dataSet.queryVariable.tip', { ns: 'appDebug' })} + diff --git a/web/app/components/app/configuration/dataset-config/params-config/config-content.tsx b/web/app/components/app/configuration/dataset-config/params-config/config-content.tsx index d0e6b2fe9f..9c50196dcf 100644 --- a/web/app/components/app/configuration/dataset-config/params-config/config-content.tsx +++ b/web/app/components/app/configuration/dataset-config/params-config/config-content.tsx @@ -15,9 +15,9 @@ import { toast } from '@langgenius/dify-ui/toast' import { memo, useCallback, useEffect, useMemo } from 'react' import { useTranslation } from 'react-i18next' import Divider from '@/app/components/base/divider' +import { Infotip } from '@/app/components/base/infotip' import ScoreThresholdItem from '@/app/components/base/param-item/score-threshold-item' import TopKItem from '@/app/components/base/param-item/top-k-item' -import Tooltip from '@/app/components/base/tooltip' import { ModelTypeEnum } from '@/app/components/header/account-setting/model-provider-page/declarations' import { useCurrentProviderAndModel, useModelListAndDefaultModelAndCurrentProviderAndModel } from '@/app/components/header/account-setting/model-provider-page/hooks' import ModelParameterModal from '@/app/components/header/account-setting/model-provider-page/model-parameter-modal' @@ -244,15 +244,14 @@ const ConfigContent: FC = ({ onClick={() => handleRerankModeChange(option.value)} >
{option.label}
- - {option.tips} - - )} - popupClassName="ml-0.5" - triggerClassName="ml-0.5 w-3.5 h-3.5" - /> + + {option.tips} + )) } @@ -273,15 +272,13 @@ const ConfigContent: FC = ({ ) }
{t('modelProvider.rerankModel.key', { ns: 'common' })}
- - {t('modelProvider.rerankModel.tip', { ns: 'common' })} - - )} - popupClassName="ml-1" - triggerClassName="ml-1 w-4 h-4" - /> + + {t('modelProvider.rerankModel.tip', { ns: 'common' })} + { showRerankModel && ( @@ -363,9 +360,9 @@ const ConfigContent: FC = ({
{t('modelProvider.systemReasoningModel.key', { ns: 'common' })}
- + + {t('modelProvider.systemReasoningModel.tip', { ns: 'common' })} +
= ({ modelAndParameter={modelAndParameter} /> - }> - - - - + + + + )} + /> { it('should call setTheme with light when light option is clicked', () => { render() fireEvent.click(screen.getByRole('button')) - const lightButton = screen.getByText(/light/i).closest('button')! - fireEvent.click(lightButton) + fireEvent.click(screen.getByText(/light/i)) expect(mockSetTheme).toHaveBeenCalledWith('light') }) it('should call setTheme with dark when dark option is clicked', () => { render() fireEvent.click(screen.getByRole('button')) - const darkButton = screen.getByText(/dark/i).closest('button')! - fireEvent.click(darkButton) + fireEvent.click(screen.getByText(/dark/i)) expect(mockSetTheme).toHaveBeenCalledWith('dark') }) it('should call setTheme with system when system option is clicked', () => { render() fireEvent.click(screen.getByRole('button')) - const systemButton = screen.getByText(/auto/i).closest('button')! - fireEvent.click(systemButton) + fireEvent.click(screen.getByText(/auto/i)) expect(mockSetTheme).toHaveBeenCalledWith('system') }) }) diff --git a/web/app/components/base/chat/chat/answer/workflow-process.tsx b/web/app/components/base/chat/chat/answer/workflow-process.tsx index fb67fe80ff..b2036e9060 100644 --- a/web/app/components/base/chat/chat/answer/workflow-process.tsx +++ b/web/app/components/base/chat/chat/answer/workflow-process.tsx @@ -92,12 +92,12 @@ const WorkflowProcessItem = ({ ) }
{!collapse ? t('common.workflowProcess', { ns: 'workflow' }) : latestNode?.title}
-
+
{ !collapse && ( diff --git a/web/app/components/base/checkbox/index.tsx b/web/app/components/base/checkbox/index.tsx index 1abf142a70..7457dc9016 100644 --- a/web/app/components/base/checkbox/index.tsx +++ b/web/app/components/base/checkbox/index.tsx @@ -8,6 +8,8 @@ type CheckboxProps = { className?: string disabled?: boolean indeterminate?: boolean + ariaLabel?: string + ariaLabelledBy?: string } const Checkbox = ({ @@ -17,6 +19,8 @@ const Checkbox = ({ className, disabled, indeterminate, + ariaLabel, + ariaLabelledBy, }: CheckboxProps) => { const checkClassName = (checked || indeterminate) ? 'bg-components-checkbox-bg text-components-checkbox-icon hover:bg-components-checkbox-bg-hover' @@ -52,6 +56,8 @@ const Checkbox = ({ role="checkbox" aria-checked={indeterminate ? 'mixed' : !!checked} aria-disabled={!!disabled} + aria-label={ariaLabel} + aria-labelledby={ariaLabelledBy} tabIndex={disabled ? -1 : 0} > {!checked && indeterminate && } diff --git a/web/app/components/base/param-item/__tests__/index.spec.tsx b/web/app/components/base/param-item/__tests__/index.spec.tsx index 889662c87d..01d28953fa 100644 --- a/web/app/components/base/param-item/__tests__/index.spec.tsx +++ b/web/app/components/base/param-item/__tests__/index.spec.tsx @@ -27,17 +27,15 @@ describe('ParamItem', () => { }) it('should render a tooltip trigger by default', () => { - const { container } = render() + render() - // Tooltip trigger icon should be rendered (the data-state div) - expect(container.querySelector('[data-state]')).toBeInTheDocument() + expect(screen.getByLabelText('Some tip text')).toBeInTheDocument() }) it('should not render tooltip trigger when noTooltip is true', () => { - const { container } = render() + render() - // No tooltip trigger icon should be rendered - expect(container.querySelector('[data-state]')).not.toBeInTheDocument() + expect(screen.queryByLabelText('Hidden tip')).not.toBeInTheDocument() }) it('should render a switch when hasSwitch is true', () => { diff --git a/web/app/components/base/param-item/__tests__/score-threshold-item.spec.tsx b/web/app/components/base/param-item/__tests__/score-threshold-item.spec.tsx index f32a707a52..0fbe727f42 100644 --- a/web/app/components/base/param-item/__tests__/score-threshold-item.spec.tsx +++ b/web/app/components/base/param-item/__tests__/score-threshold-item.spec.tsx @@ -24,10 +24,9 @@ describe('ScoreThresholdItem', () => { }) it('should render tooltip trigger', () => { - const { container } = render() + render() - // Tooltip trigger icon should be rendered - expect(container.querySelector('[data-state]')).toBeInTheDocument() + expect(screen.getByLabelText('appDebug.datasetConfig.score_thresholdTip')).toBeInTheDocument() }) it('should render InputNumber and Slider', () => { diff --git a/web/app/components/base/param-item/__tests__/top-k-item.spec.tsx b/web/app/components/base/param-item/__tests__/top-k-item.spec.tsx index c84fd50518..c843883285 100644 --- a/web/app/components/base/param-item/__tests__/top-k-item.spec.tsx +++ b/web/app/components/base/param-item/__tests__/top-k-item.spec.tsx @@ -29,10 +29,9 @@ describe('TopKItem', () => { }) it('should render tooltip trigger', () => { - const { container } = render() + render() - // Tooltip trigger icon should be rendered - expect(container.querySelector('[data-state]')).toBeInTheDocument() + expect(screen.getByLabelText('appDebug.datasetConfig.top_kTip')).toBeInTheDocument() }) it('should render InputNumber and Slider', () => { diff --git a/web/app/components/base/param-item/index.tsx b/web/app/components/base/param-item/index.tsx index 93eb878551..a44176bf18 100644 --- a/web/app/components/base/param-item/index.tsx +++ b/web/app/components/base/param-item/index.tsx @@ -10,7 +10,7 @@ import { } from '@langgenius/dify-ui/number-field' import { Slider } from '@langgenius/dify-ui/slider' import { Switch } from '@langgenius/dify-ui/switch' -import Tooltip from '@/app/components/base/tooltip' +import { Infotip } from '@/app/components/base/infotip' type Props = { className?: string @@ -44,11 +44,10 @@ const ParamItem: FC = ({ className, id, name, noTooltip, tip, step = 0.1, /> )} {name} - {!noTooltip && ( - {tip}
} - /> + {!noTooltip && tip && ( + + {tip} + )}
diff --git a/web/app/components/base/theme-selector.tsx b/web/app/components/base/theme-selector.tsx index 1f173aa885..1676dfff72 100644 --- a/web/app/components/base/theme-selector.tsx +++ b/web/app/components/base/theme-selector.tsx @@ -1,25 +1,25 @@ 'use client' +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuRadioGroup, + DropdownMenuRadioItem, + DropdownMenuRadioItemIndicator, + DropdownMenuTrigger, +} from '@langgenius/dify-ui/dropdown-menu' import { useTheme } from 'next-themes' -import { useState } from 'react' import { useTranslation } from 'react-i18next' import ActionButton from '@/app/components/base/action-button' -import { - PortalToFollowElem, - PortalToFollowElemContent, - PortalToFollowElemTrigger, -} from '@/app/components/base/portal-to-follow-elem' export type Theme = 'light' | 'dark' | 'system' export default function ThemeSelector() { const { t } = useTranslation() const { theme, setTheme } = useTheme() - const [open, setOpen] = useState(false) const handleThemeChange = (newTheme: Theme) => { setTheme(newTheme) - setOpen(false) } const getCurrentIcon = () => { @@ -31,70 +31,36 @@ export default function ThemeSelector() { } return ( - - setOpen(!open)} + + + )} > - - {getCurrentIcon()} - - - -
- - - -
-
-
+ {t('theme.auto', { ns: 'common' })} + + + + + ) } diff --git a/web/app/components/billing/priority-label/__tests__/index.spec.tsx b/web/app/components/billing/priority-label/__tests__/index.spec.tsx index ef613d76b8..2b6201fdff 100644 --- a/web/app/components/billing/priority-label/__tests__/index.spec.tsx +++ b/web/app/components/billing/priority-label/__tests__/index.spec.tsx @@ -1,5 +1,6 @@ import type { Mock } from 'vitest' -import { fireEvent, render, screen } from '@testing-library/react' +import { TooltipProvider } from '@langgenius/dify-ui/tooltip' +import { render, screen } from '@testing-library/react' import { createMockPlan } from '@/__mocks__/provider-context' import { useProviderContext } from '@/context/provider-context' import { Plan } from '../../type' @@ -15,6 +16,14 @@ const setupPlan = (planType: Plan) => { useProviderContextMock.mockReturnValue(createMockPlan(planType)) } +const renderPriorityLabel = (className?: string) => { + return render( + + + , + ) +} + describe('PriorityLabel', () => { beforeEach(() => { vi.clearAllMocks() @@ -24,7 +33,7 @@ describe('PriorityLabel', () => { it('should render the standard priority label when plan is sandbox', () => { setupPlan(Plan.sandbox) - render() + renderPriorityLabel() expect(screen.getByText('billing.plansCommon.priority.standard')).toBeInTheDocument() }) @@ -35,7 +44,7 @@ describe('PriorityLabel', () => { it('should apply custom className to the label container', () => { setupPlan(Plan.sandbox) - render() + renderPriorityLabel('custom-class') const label = screen.getByText('billing.plansCommon.priority.standard').closest('div') expect(label).toHaveClass('custom-class') @@ -47,7 +56,7 @@ describe('PriorityLabel', () => { it('should render priority label and icon when plan is professional', () => { setupPlan(Plan.professional) - const { container } = render() + const { container } = renderPriorityLabel() expect(screen.getByText('billing.plansCommon.priority.priority')).toBeInTheDocument() expect(container.querySelector('svg')).toBeInTheDocument() @@ -56,7 +65,7 @@ describe('PriorityLabel', () => { it('should render top priority label and icon when plan is team', () => { setupPlan(Plan.team) - const { container } = render() + const { container } = renderPriorityLabel() expect(screen.getByText('billing.plansCommon.priority.top-priority')).toBeInTheDocument() expect(container.querySelector('svg')).toBeInTheDocument() @@ -65,7 +74,7 @@ describe('PriorityLabel', () => { it('should render standard label without icon when plan is sandbox', () => { setupPlan(Plan.sandbox) - const { container } = render() + const { container } = renderPriorityLabel() expect(screen.getByText('billing.plansCommon.priority.standard')).toBeInTheDocument() expect(container.querySelector('svg')).not.toBeInTheDocument() @@ -77,7 +86,7 @@ describe('PriorityLabel', () => { it('should render top-priority label with icon for enterprise plan', () => { setupPlan(Plan.enterprise) - const { container } = render() + const { container } = renderPriorityLabel() expect(screen.getByText('billing.plansCommon.priority.top-priority')).toBeInTheDocument() expect(container.querySelector('svg')).toBeInTheDocument() @@ -85,29 +94,21 @@ describe('PriorityLabel', () => { }) describe('Edge Cases', () => { - it('should show the tip text when priority is not top priority', async () => { + it('should render a non-top priority trigger without mounting tooltip content by default', () => { setupPlan(Plan.sandbox) - render() - const label = screen.getByText('billing.plansCommon.priority.standard').closest('div') - fireEvent.mouseEnter(label as HTMLElement) + renderPriorityLabel() - expect(await screen.findByText( - 'billing.plansCommon.documentProcessingPriority: billing.plansCommon.priority.standard', - )).toBeInTheDocument() - expect(screen.getByText('billing.plansCommon.documentProcessingPriorityTip')).toBeInTheDocument() + expect(screen.getByText('billing.plansCommon.priority.standard')).toBeInTheDocument() + expect(screen.queryByText('billing.plansCommon.documentProcessingPriority')).not.toBeInTheDocument() }) - it('should hide the tip text when priority is top priority', async () => { + it('should render a top priority trigger without mounting upgrade tip by default', () => { setupPlan(Plan.enterprise) - render() - const label = screen.getByText('billing.plansCommon.priority.top-priority').closest('div') - fireEvent.mouseEnter(label as HTMLElement) + renderPriorityLabel() - expect(await screen.findByText( - 'billing.plansCommon.documentProcessingPriority: billing.plansCommon.priority.top-priority', - )).toBeInTheDocument() + expect(screen.getByText('billing.plansCommon.priority.top-priority')).toBeInTheDocument() expect(screen.queryByText('billing.plansCommon.documentProcessingPriorityTip')).not.toBeInTheDocument() }) }) diff --git a/web/app/components/billing/priority-label/index.tsx b/web/app/components/billing/priority-label/index.tsx index 8940b38382..c7b7d17e87 100644 --- a/web/app/components/billing/priority-label/index.tsx +++ b/web/app/components/billing/priority-label/index.tsx @@ -1,8 +1,8 @@ import { cn } from '@langgenius/dify-ui/cn' +import { Tooltip, TooltipContent, TooltipTrigger } from '@langgenius/dify-ui/tooltip' import { RiAedFill } from '@remixicon/react' import { useMemo } from 'react' import { useTranslation } from 'react-i18next' -import Tooltip from '@/app/components/base/tooltip' import { useProviderContext } from '@/context/provider-context' import { DocumentProcessingPriority, @@ -31,8 +31,25 @@ const PriorityLabel = ({ className }: PriorityLabelProps) => { }, [plan]) return ( - + + + )} + > + { + (plan.type === Plan.professional || plan.type === Plan.team || plan.type === Plan.enterprise) && ( + + ) + } + {t(`plansCommon.priority.${priority}`, { ns: 'billing' })} + +
{t('plansCommon.documentProcessingPriority', { ns: 'billing' })} : @@ -44,22 +61,7 @@ const PriorityLabel = ({ className }: PriorityLabelProps) => {
{t('plansCommon.documentProcessingPriorityTip', { ns: 'billing' })}
) } -
- )} - > -
- { - (plan.type === Plan.professional || plan.type === Plan.team || plan.type === Plan.enterprise) && ( - - ) - } - {t(`plansCommon.priority.${priority}`, { ns: 'billing' })} -
+
) } diff --git a/web/app/components/datasets/common/image-uploader/image-uploader-in-retrieval-testing/image-input.tsx b/web/app/components/datasets/common/image-uploader/image-uploader-in-retrieval-testing/image-input.tsx index e5b7e79d55..5d43f0b687 100644 --- a/web/app/components/datasets/common/image-uploader/image-uploader-in-retrieval-testing/image-input.tsx +++ b/web/app/components/datasets/common/image-uploader/image-uploader-in-retrieval-testing/image-input.tsx @@ -1,7 +1,7 @@ +import { Tooltip, TooltipContent, TooltipTrigger } from '@langgenius/dify-ui/tooltip' import { RiImageAddLine } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' -import Tooltip from '@/app/components/base/tooltip' import { ACCEPT_TYPES } from '../constants' import { useUpload } from '../hooks/use-upload' import { useFileStoreWithSelector } from '../store' @@ -29,20 +29,14 @@ const ImageUploader = () => { onChange={fileChangeHandle} />
- -
+ + )} >
@@ -56,7 +50,14 @@ const ImageUploader = () => { })} )} -
+
+ + {t('imageUploader.tooltip', { + ns: 'datasetHitTesting', + size: fileUploadConfig.imageFileSizeLimit, + batchCount: fileUploadConfig.imageFileBatchLimit, + })} +
diff --git a/web/app/components/datasets/common/retrieval-param-config/__tests__/index.spec.tsx b/web/app/components/datasets/common/retrieval-param-config/__tests__/index.spec.tsx index 1b208c549d..ac5112ad22 100644 --- a/web/app/components/datasets/common/retrieval-param-config/__tests__/index.spec.tsx +++ b/web/app/components/datasets/common/retrieval-param-config/__tests__/index.spec.tsx @@ -134,12 +134,6 @@ vi.mock('@langgenius/dify-ui/switch', () => ({ ), })) -vi.mock('@/app/components/base/tooltip', () => ({ - default: ({ popupContent }: { popupContent: React.ReactNode }) => ( -
{popupContent}
- ), -})) - describe('RetrievalParamConfig', () => { const createDefaultConfig = (overrides?: Partial): RetrievalConfig => ({ search_method: RETRIEVE_METHOD.semantic, @@ -799,7 +793,7 @@ describe('RetrievalParamConfig', () => { />, ) - expect(screen.getByTestId('tooltip'))!.toBeInTheDocument() + expect(screen.getByLabelText('common.modelProvider.rerankModel.tip'))!.toBeInTheDocument() }) }) diff --git a/web/app/components/datasets/common/retrieval-param-config/index.tsx b/web/app/components/datasets/common/retrieval-param-config/index.tsx index 8514e1fae2..93392f2821 100644 --- a/web/app/components/datasets/common/retrieval-param-config/index.tsx +++ b/web/app/components/datasets/common/retrieval-param-config/index.tsx @@ -10,10 +10,10 @@ import { useCallback, useMemo } from 'react' import { useTranslation } from 'react-i18next' import WeightedScore from '@/app/components/app/configuration/dataset-config/params-config/weighted-score' import { AlertTriangle } from '@/app/components/base/icons/src/vender/solid/alertsAndFeedback' +import { Infotip } from '@/app/components/base/infotip' import ScoreThresholdItem from '@/app/components/base/param-item/score-threshold-item' import TopKItem from '@/app/components/base/param-item/top-k-item' import RadioCard from '@/app/components/base/radio-card' -import Tooltip from '@/app/components/base/tooltip' import { ModelTypeEnum } from '@/app/components/header/account-setting/model-provider-page/declarations' import { useCurrentProviderAndModel, useModelListAndDefaultModel } from '@/app/components/header/account-setting/model-provider-page/hooks' import ModelSelector from '@/app/components/header/account-setting/model-provider-page/model-selector' @@ -127,11 +127,12 @@ const RetrievalParamConfig: FC = ({ )}
{t('modelProvider.rerankModel.key', { ns: 'common' })} - {t('modelProvider.rerankModel.tip', { ns: 'common' })}
- } - /> + + {t('modelProvider.rerankModel.tip', { ns: 'common' })} + { diff --git a/web/app/components/datasets/create-from-pipeline/list/template-card/details/index.tsx b/web/app/components/datasets/create-from-pipeline/list/template-card/details/index.tsx index 22866b0b9e..d3538d3349 100644 --- a/web/app/components/datasets/create-from-pipeline/list/template-card/details/index.tsx +++ b/web/app/components/datasets/create-from-pipeline/list/template-card/details/index.tsx @@ -5,8 +5,8 @@ import * as React from 'react' import { useMemo } from 'react' import { useTranslation } from 'react-i18next' import AppIcon from '@/app/components/base/app-icon' +import { Infotip } from '@/app/components/base/infotip' import Loading from '@/app/components/base/loading' -import Tooltip from '@/app/components/base/tooltip' import WorkflowPreview from '@/app/components/workflow/workflow-preview' import { usePipelineTemplateById } from '@/service/use-pipeline' import ChunkStructureCard from './chunk-structure-card' @@ -111,10 +111,12 @@ const Details = ({ {t('details.structure', { ns: 'datasetPipeline' })} - + > + {t('details.structureTooltip', { ns: 'datasetPipeline' })} + diff --git a/web/app/components/datasets/create/embedding-process/__tests__/indexing-progress-item.spec.tsx b/web/app/components/datasets/create/embedding-process/__tests__/indexing-progress-item.spec.tsx index e0ae25a80f..f71c4a0cc1 100644 --- a/web/app/components/datasets/create/embedding-process/__tests__/indexing-progress-item.spec.tsx +++ b/web/app/components/datasets/create/embedding-process/__tests__/indexing-progress-item.spec.tsx @@ -1,4 +1,3 @@ -import type { ReactNode } from 'react' import type { IndexingStatusResponse } from '@/models/datasets' import { render, screen } from '@testing-library/react' import { beforeEach, describe, expect, it, vi } from 'vitest' @@ -14,12 +13,6 @@ vi.mock('../../../common/document-file-icon', () => ({ vi.mock('@/app/components/base/notion-icon', () => ({ default: ({ src }: { src?: string }) => {src}, })) -vi.mock('@/app/components/base/tooltip', () => ({ - default: ({ children, popupContent }: { children?: ReactNode, popupContent?: ReactNode }) => ( -
{children}
- ), -})) - describe('IndexingProgressItem', () => { beforeEach(() => { vi.clearAllMocks() @@ -100,7 +93,7 @@ describe('IndexingProgressItem', () => { />, ) - expect(screen.getByTestId('tooltip')).toHaveAttribute('data-content', 'Parse failed') + expect(screen.getByLabelText('Parse failed')).toBeInTheDocument() }) it('should show priority label when billing is enabled', () => { diff --git a/web/app/components/datasets/create/embedding-process/indexing-progress-item.tsx b/web/app/components/datasets/create/embedding-process/indexing-progress-item.tsx index ef54bddfc5..b98d9e7e10 100644 --- a/web/app/components/datasets/create/embedding-process/indexing-progress-item.tsx +++ b/web/app/components/datasets/create/embedding-process/indexing-progress-item.tsx @@ -1,12 +1,12 @@ import type { FC } from 'react' import type { IndexingStatusResponse } from '@/models/datasets' import { cn } from '@langgenius/dify-ui/cn' +import { Tooltip, TooltipContent, TooltipTrigger } from '@langgenius/dify-ui/tooltip' import { RiCheckboxCircleFill, RiErrorWarningFill, } from '@remixicon/react' import NotionIcon from '@/app/components/base/notion-icon' -import Tooltip from '@/app/components/base/tooltip' import PriorityLabel from '@/app/components/billing/priority-label' import { DataSourceType } from '@/models/datasets' import DocumentFileIcon from '../../common/document-file-icon' @@ -27,14 +27,16 @@ const StatusIcon: FC<{ status: string, error?: string }> = ({ status, error }) = if (status === 'error') { return ( - - + + }> - + + + {error} + ) } diff --git a/web/app/components/datasets/create/step-two/components/__tests__/indexing-mode-section.spec.tsx b/web/app/components/datasets/create/step-two/components/__tests__/indexing-mode-section.spec.tsx index 64011c1ebe..3931478f27 100644 --- a/web/app/components/datasets/create/step-two/components/__tests__/indexing-mode-section.spec.tsx +++ b/web/app/components/datasets/create/step-two/components/__tests__/indexing-mode-section.spec.tsx @@ -165,6 +165,13 @@ describe('IndexingModeSection', () => { const economicalText = screen.getByText(`${ns}.stepTwo.economical`) const card = economicalText.closest('[class*="rounded-xl"]') expect(card)!.toHaveClass('pointer-events-none') + expect(screen.getByText(`${ns}.stepTwo.notAvailableForQA`))!.toBeInTheDocument() + }) + + it('should show parent-child disabled reason inline on economical option', () => { + render() + + expect(screen.getByText(`${ns}.stepTwo.notAvailableForParentChild`))!.toBeInTheDocument() }) }) diff --git a/web/app/components/datasets/create/step-two/components/__tests__/inputs.spec.tsx b/web/app/components/datasets/create/step-two/components/__tests__/inputs.spec.tsx index 2c0480e508..9d46052349 100644 --- a/web/app/components/datasets/create/step-two/components/__tests__/inputs.spec.tsx +++ b/web/app/components/datasets/create/step-two/components/__tests__/inputs.spec.tsx @@ -30,8 +30,7 @@ describe('DelimiterInput', () => { it('should render tooltip content', () => { render() - // Tooltip triggers render; component mounts without error - expect(screen.getByText(`${ns}.stepTwo.separator`)).toBeInTheDocument() + expect(screen.getByLabelText(`${ns}.stepTwo.separatorTip`))!.toBeInTheDocument() }) it('should suppress onChange during IME composition', () => { @@ -102,6 +101,7 @@ describe('OverlapInput', () => { it('should render overlap label', () => { render() expect(screen.getAllByText(new RegExp(`${ns}.stepTwo.overlap`)).length).toBeGreaterThan(0) + expect(screen.getByLabelText(`${ns}.stepTwo.overlapTip`))!.toBeInTheDocument() }) it('should render number input', () => { diff --git a/web/app/components/datasets/create/step-two/components/indexing-mode-section.tsx b/web/app/components/datasets/create/step-two/components/indexing-mode-section.tsx index 1639df2320..2ddcc81d5e 100644 --- a/web/app/components/datasets/create/step-two/components/indexing-mode-section.tsx +++ b/web/app/components/datasets/create/step-two/components/indexing-mode-section.tsx @@ -3,14 +3,20 @@ import type { FC } from 'react' import type { DefaultModel, Model } from '@/app/components/header/account-setting/model-provider-page/declarations' import type { RetrievalConfig } from '@/types/app' -import { Button } from '@langgenius/dify-ui/button' +import { + AlertDialog, + AlertDialogActions, + AlertDialogCancelButton, + AlertDialogConfirmButton, + AlertDialogContent, + AlertDialogDescription, + AlertDialogTitle, +} from '@langgenius/dify-ui/alert-dialog' import { cn } from '@langgenius/dify-ui/cn' import { useTranslation } from 'react-i18next' import Badge from '@/app/components/base/badge' -import CustomDialog from '@/app/components/base/dialog' import Divider from '@/app/components/base/divider' import { AlertTriangle } from '@/app/components/base/icons/src/vender/solid/alertsAndFeedback' -import Tooltip from '@/app/components/base/tooltip' import EconomicalRetrievalMethodConfig from '@/app/components/datasets/common/economical-retrieval-method-config' import RetrievalMethodConfig from '@/app/components/datasets/common/retrieval-method-config' import ModelSelector from '@/app/components/header/account-setting/model-provider-page/model-selector' @@ -65,6 +71,13 @@ export const IndexingModeSection: FC = ({ const docLink = useDocLink() const getIndexingTechnique = () => indexType + const economicalDisabledReason = (() => { + if (docForm === ChunkingMode.qa) + return t('stepTwo.notAvailableForQA', { ns: 'datasetCreation' }) + + if (docForm !== ChunkingMode.text) + return t('stepTwo.notAvailableForParentChild', { ns: 'datasetCreation' }) + })() return ( <> @@ -72,7 +85,33 @@ export const IndexingModeSection: FC = ({
{t('stepTwo.indexMode', { ns: 'datasetCreation' })}
-
+ { + if (!open) + onQAConfirmDialogClose() + }} + > + +
+ + {t('stepTwo.qaSwitchHighQualityTipTitle', { ns: 'datasetCreation' })} + + + {t('stepTwo.qaSwitchHighQualityTipContent', { ns: 'datasetCreation' })} + +
+ + + {t('stepTwo.cancel', { ns: 'datasetCreation' })} + + + {t('stepTwo.switch', { ns: 'datasetCreation' })} + + +
+
+
{/* Qualified option */} {(!hasSetIndexType || (hasSetIndexType && indexType === IndexingType.QUALIFIED)) && ( = ({ {/* Economical option */} {(!hasSetIndexType || (hasSetIndexType && indexType === IndexingType.ECONOMICAL)) && ( - <> - -
-

- {t('stepTwo.qaSwitchHighQualityTipTitle', { ns: 'datasetCreation' })} -

-

- {t('stepTwo.qaSwitchHighQualityTipContent', { ns: 'datasetCreation' })} -

-
-
- - -
-
- - {docForm === ChunkingMode.qa - ? t('stepTwo.notAvailableForQA', { ns: 'datasetCreation' }) - : t('stepTwo.notAvailableForParentChild', { ns: 'datasetCreation' })} -
- )} - noDecoration - position="top" - asChild={false} - triggerClassName="flex-1 self-stretch" - > - } - isActive={!hasSetIndexType && indexType === IndexingType.ECONOMICAL} - disabled={hasSetIndexType || docForm !== ChunkingMode.text} - onSwitched={() => onIndexTypeChange(IndexingType.ECONOMICAL)} - /> - - + } + isActive={!hasSetIndexType && indexType === IndexingType.ECONOMICAL} + disabled={hasSetIndexType || !!economicalDisabledReason} + onSwitched={() => onIndexTypeChange(IndexingType.ECONOMICAL)} + /> )}
diff --git a/web/app/components/datasets/create/step-two/components/inputs.tsx b/web/app/components/datasets/create/step-two/components/inputs.tsx index 12af1de1aa..635056f1b2 100644 --- a/web/app/components/datasets/create/step-two/components/inputs.tsx +++ b/web/app/components/datasets/create/step-two/components/inputs.tsx @@ -12,8 +12,8 @@ import { } from '@langgenius/dify-ui/number-field' import { useRef, useState } from 'react' import { useTranslation } from 'react-i18next' +import { Infotip } from '@/app/components/base/infotip' import Input from '@/app/components/base/input' -import Tooltip from '@/app/components/base/tooltip' import { env } from '@/env' const TextLabel: FC = (props) => { @@ -38,13 +38,9 @@ export const DelimiterInput: FC = ({ tooltip, {t('stepTwo.separator', { ns: 'datasetCreation' })} - - {tooltip || t('stepTwo.separatorTip', { ns: 'datasetCreation' })} - - )} - /> + + {tooltip || t('stepTwo.separatorTip', { ns: 'datasetCreation' })} + )} > @@ -154,13 +150,9 @@ export const OverlapInput: FC = (props) => { {t('stepTwo.overlap', { ns: 'datasetCreation' })} - - {t('stepTwo.overlapTip', { ns: 'datasetCreation' })} - - )} - /> + + {t('stepTwo.overlapTip', { ns: 'datasetCreation' })} + )} > diff --git a/web/app/components/datasets/create/step-two/components/option-card.tsx b/web/app/components/datasets/create/step-two/components/option-card.tsx index 5334feaac8..43f0924d92 100644 --- a/web/app/components/datasets/create/step-two/components/option-card.tsx +++ b/web/app/components/datasets/create/step-two/components/option-card.tsx @@ -20,7 +20,7 @@ type OptionCardHeaderProps = { export const OptionCardHeader: FC = (props) => { const { icon, title, description, isActive, activeClassName, effectImg, disabled } = props return ( -
+
{isActive && effectImg && }
@@ -63,7 +63,7 @@ export const OptionCard: FC = ( const { icon, className, title, description, isActive, children, actions, activeHeaderClassName, style, effectImg, onSwitched, noHighlight, disabled, ...rest } = props return (
({ - default: ({ popupContent }: { popupContent?: React.ReactNode }) =>
{popupContent}
, -})) - describe('CheckboxWithLabel', () => { const onChange = vi.fn() @@ -27,12 +23,12 @@ describe('CheckboxWithLabel', () => { tooltip="Help text" />, ) - expect(screen.getByTestId('tooltip')).toBeInTheDocument() + expect(screen.getByLabelText('Help text')).toBeInTheDocument() }) it('should not render tooltip when not provided', () => { render() - expect(screen.queryByTestId('tooltip')).not.toBeInTheDocument() + expect(screen.queryByLabelText('Help text')).not.toBeInTheDocument() }) it('should toggle checked state on checkbox click', () => { diff --git a/web/app/components/datasets/create/website/base/__tests__/field.spec.tsx b/web/app/components/datasets/create/website/base/__tests__/field.spec.tsx index 8a2e147d60..a362562437 100644 --- a/web/app/components/datasets/create/website/base/__tests__/field.spec.tsx +++ b/web/app/components/datasets/create/website/base/__tests__/field.spec.tsx @@ -2,10 +2,6 @@ import { fireEvent, render, screen } from '@testing-library/react' import { beforeEach, describe, expect, it, vi } from 'vitest' import Field from '../field' -vi.mock('@/app/components/base/tooltip', () => ({ - default: ({ popupContent }: { popupContent?: React.ReactNode }) =>
{popupContent}
, -})) - describe('WebsiteField', () => { const onChange = vi.fn() @@ -30,7 +26,7 @@ describe('WebsiteField', () => { it('should render tooltip when provided', () => { render() - expect(screen.getByTestId('tooltip')).toBeInTheDocument() + expect(screen.getByLabelText('Enter full URL')).toBeInTheDocument() }) it('should pass value and onChange to Input', () => { diff --git a/web/app/components/datasets/create/website/base/checkbox-with-label.tsx b/web/app/components/datasets/create/website/base/checkbox-with-label.tsx index 686976826d..117a16f401 100644 --- a/web/app/components/datasets/create/website/base/checkbox-with-label.tsx +++ b/web/app/components/datasets/create/website/base/checkbox-with-label.tsx @@ -2,8 +2,9 @@ import type { FC } from 'react' import { cn } from '@langgenius/dify-ui/cn' import * as React from 'react' +import { useId } from 'react' import Checkbox from '@/app/components/base/checkbox' -import Tooltip from '@/app/components/base/tooltip' +import { Infotip } from '@/app/components/base/infotip' type Props = { className?: string @@ -24,19 +25,28 @@ const CheckboxWithLabel: FC = ({ tooltip, testId, }) => { + const labelId = useId() + const handleToggle = () => onChange(!isChecked) + return ( -
- } - triggerClassName="ml-0.5 w-4 h-4" - /> - )} - +
+ +
+ + {tooltip && ( + + {tooltip} + + )} +
+
) } export default React.memo(CheckboxWithLabel) diff --git a/web/app/components/datasets/create/website/base/field.tsx b/web/app/components/datasets/create/website/base/field.tsx index 860f934da2..423fa54823 100644 --- a/web/app/components/datasets/create/website/base/field.tsx +++ b/web/app/components/datasets/create/website/base/field.tsx @@ -2,7 +2,7 @@ import type { FC } from 'react' import { cn } from '@langgenius/dify-ui/cn' import * as React from 'react' -import Tooltip from '@/app/components/base/tooltip' +import { Infotip } from '@/app/components/base/infotip' import Input from './input' type Props = { @@ -37,12 +37,9 @@ const Field: FC = ({
{isRequired && *} {tooltip && ( - {tooltip}
- } - triggerClassName="ml-0.5 w-4 h-4" - /> + + {tooltip} + )}
{ render() - // Assert - Dropdown trigger (more button) should be present - // Assert - Dropdown trigger (more button) should be present - expect(screen.getByRole('button', { name: '' }))!.toBeInTheDocument() + expect(screen.getByRole('button', { name: 'common.operation.more' }))!.toBeInTheDocument() }) it('should not show dropdown when breadcrumbs do not exceed displayBreadcrumbNum', () => { diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/dropdown/index.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/dropdown/index.tsx index 43b5fcc71a..a77ba87ac6 100644 --- a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/dropdown/index.tsx +++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/dropdown/index.tsx @@ -6,6 +6,7 @@ import { } from '@langgenius/dify-ui/dropdown-menu' import * as React from 'react' import { useCallback, useState } from 'react' +import { useTranslation } from 'react-i18next' import Menu from './menu' type DropdownProps = { @@ -19,6 +20,7 @@ const Dropdown = ({ breadcrumbs, onBreadcrumbClick, }: DropdownProps) => { + const { t } = useTranslation() const [open, setOpen] = useState(false) const handleBreadCrumbClick = useCallback((index: number) => { @@ -31,17 +33,21 @@ const Dropdown = ({ open={open} onOpenChange={setOpen} > - }> - - + + + + )} + /> ({ ), })) -vi.mock('@/app/components/base/tooltip', () => ({ - default: ({ popupContent }: { popupContent: string }) =>
{popupContent}
, -})) - describe('CheckboxWithLabel', () => { const defaultProps = { isChecked: false, @@ -35,12 +31,12 @@ describe('CheckboxWithLabel', () => { it('should render tooltip when provided', () => { render() - expect(screen.getByTestId('tooltip')).toBeInTheDocument() + expect(screen.getByLabelText('Help text')).toBeInTheDocument() }) it('should not render tooltip when not provided', () => { render() - expect(screen.queryByTestId('tooltip')).not.toBeInTheDocument() + expect(screen.queryByLabelText('Help text')).not.toBeInTheDocument() }) it('should apply custom className', () => { diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/website-crawl/base/__tests__/index.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/website-crawl/base/__tests__/index.spec.tsx index fa5633e2df..db3e369722 100644 --- a/web/app/components/datasets/documents/create-from-pipeline/data-source/website-crawl/base/__tests__/index.spec.tsx +++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/website-crawl/base/__tests__/index.spec.tsx @@ -62,16 +62,13 @@ describe('CheckboxWithLabel', () => { it('should render tooltip when provided', () => { render() - // Assert - Tooltip trigger should be present - const tooltipTrigger = document.querySelector('[class*="ml-0.5"]') - expect(tooltipTrigger)!.toBeInTheDocument() + expect(screen.getByLabelText('Helpful tooltip text'))!.toBeInTheDocument() }) it('should not render tooltip when not provided', () => { render() - const tooltipTrigger = document.querySelector('[class*="ml-0.5"]') - expect(tooltipTrigger).not.toBeInTheDocument() + expect(screen.queryByLabelText('Helpful tooltip text')).not.toBeInTheDocument() }) }) @@ -81,8 +78,7 @@ describe('CheckboxWithLabel', () => { , ) - const label = container.querySelector('label') - expect(label)!.toHaveClass('custom-class') + expect(container.firstChild)!.toHaveClass('custom-class') }) it('should apply custom labelClassName', () => { @@ -114,16 +110,14 @@ describe('CheckboxWithLabel', () => { expect(mockOnChange).toHaveBeenCalledWith(false) }) - it('should not trigger onChange when clicking label text due to custom checkbox', () => { + it('should trigger onChange when clicking label text', () => { const mockOnChange = vi.fn() render() - // Act - Click on the label text element const labelText = screen.getByText('Test Label') fireEvent.click(labelText) - // Assert - Custom checkbox does not support native label-input click forwarding - expect(mockOnChange).not.toHaveBeenCalled() + expect(mockOnChange).toHaveBeenCalledWith(true) }) }) }) @@ -386,15 +380,14 @@ describe('CrawledResult', () => { it('should pass showPreview to items', () => { render() - // Assert - Preview buttons should be visible - const buttons = screen.getAllByRole('button') + const buttons = screen.getAllByRole('button', { name: 'datasetCreation.stepOne.website.preview' }) expect(buttons.length).toBe(3) }) it('should not show preview buttons when showPreview is false', () => { render() - expect(screen.queryByRole('button')).not.toBeInTheDocument() + expect(screen.queryByRole('button', { name: 'datasetCreation.stepOne.website.preview' })).not.toBeInTheDocument() }) }) @@ -507,7 +500,7 @@ describe('CrawledResult', () => { />, ) - const buttons = screen.getAllByRole('button') + const buttons = screen.getAllByRole('button', { name: 'datasetCreation.stepOne.website.preview' }) fireEvent.click(buttons[1]!) // Second item's preview button expect(mockOnPreview).toHaveBeenCalledWith(list[1], 1) @@ -796,7 +789,7 @@ describe('Base Components Integration', () => { expect(mockOnSelectedChange).toHaveBeenCalledWith([list[0]]) // Act - Preview second item - const previewButtons = screen.getAllByRole('button') + const previewButtons = screen.getAllByRole('button', { name: 'datasetCreation.stepOne.website.preview' }) fireEvent.click(previewButtons[1]!) expect(mockOnPreview).toHaveBeenCalledWith(list[1], 1) diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/website-crawl/base/checkbox-with-label.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/website-crawl/base/checkbox-with-label.tsx index 23dbea51a9..99c6625793 100644 --- a/web/app/components/datasets/documents/create-from-pipeline/data-source/website-crawl/base/checkbox-with-label.tsx +++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/website-crawl/base/checkbox-with-label.tsx @@ -1,8 +1,9 @@ 'use client' import { cn } from '@langgenius/dify-ui/cn' import * as React from 'react' +import { useId } from 'react' import Checkbox from '@/app/components/base/checkbox' -import Tooltip from '@/app/components/base/tooltip' +import { Infotip } from '@/app/components/base/infotip' type CheckboxWithLabelProps = { className?: string @@ -21,19 +22,28 @@ const CheckboxWithLabel = ({ labelClassName, tooltip, }: CheckboxWithLabelProps) => { + const labelId = useId() + const handleToggle = () => onChange(!isChecked) + return ( -
- } - triggerClassName="ml-0.5 w-4 h-4" - /> - )} - +
+ +
+ + {tooltip && ( + + {tooltip} + + )} +
+
) } export default React.memo(CheckboxWithLabel) diff --git a/web/app/components/datasets/documents/status-item/__tests__/index.spec.tsx b/web/app/components/datasets/documents/status-item/__tests__/index.spec.tsx index b69835d7f2..1e651929fe 100644 --- a/web/app/components/datasets/documents/status-item/__tests__/index.spec.tsx +++ b/web/app/components/datasets/documents/status-item/__tests__/index.spec.tsx @@ -140,12 +140,12 @@ describe('StatusItem', () => { describe('error message tooltip', () => { it('should show tooltip trigger when error message is provided', () => { render() - expect(screen.getByTestId('error-tooltip-trigger')).toBeInTheDocument() + expect(screen.getByLabelText('Test error message')).toBeInTheDocument() }) it('should not show tooltip trigger when no error message', () => { render() - expect(screen.queryByTestId('error-tooltip-trigger')).not.toBeInTheDocument() + expect(screen.queryByLabelText('Test error message')).not.toBeInTheDocument() }) }) diff --git a/web/app/components/datasets/documents/status-item/index.tsx b/web/app/components/datasets/documents/status-item/index.tsx index 9970c6bca8..911b1df55e 100644 --- a/web/app/components/datasets/documents/status-item/index.tsx +++ b/web/app/components/datasets/documents/status-item/index.tsx @@ -5,11 +5,12 @@ import type { DocumentDisplayStatus } from '@/models/datasets' import { cn } from '@langgenius/dify-ui/cn' import { Switch } from '@langgenius/dify-ui/switch' import { toast } from '@langgenius/dify-ui/toast' +import { Tooltip, TooltipContent, TooltipTrigger } from '@langgenius/dify-ui/tooltip' import { useDebounceFn } from 'ahooks' import * as React from 'react' import { useMemo } from 'react' import { useTranslation } from 'react-i18next' -import Tooltip from '@/app/components/base/tooltip' +import { Infotip } from '@/app/components/base/infotip' import Indicator from '@/app/components/header/indicator' import { useDocumentDelete, useDocumentDisable, useDocumentEnable } from '@/service/knowledge/use-document' import { asyncRunSafe } from '@/utils' @@ -81,11 +82,33 @@ const StatusItem = ({ status, reverse = false, scene = 'list', textCls = '', err {DOC_INDEX_STATUS_MAP[localStatus]?.text} - {errorMessage && ({errorMessage}} triggerClassName="ml-1 w-4 h-4" triggerTestId="error-tooltip-trigger" />)} + {errorMessage && ( + + {errorMessage} + + )} {scene === 'detail' && (
- - !archived && handleSwitch(v ? 'enable' : 'disable')} disabled={embedding || archived} size="md" /> + + + !archived && handleSwitch(v ? 'enable' : 'disable')} + disabled={embedding || archived} + size="md" + /> + + )} + /> + + {t('list.action.enableWarning', { ns: 'datasetDocuments' })} +
)} diff --git a/web/app/components/datasets/metadata/metadata-document/__tests__/info-group.spec.tsx b/web/app/components/datasets/metadata/metadata-document/__tests__/info-group.spec.tsx index c176979a5a..c4dc89cafc 100644 --- a/web/app/components/datasets/metadata/metadata-document/__tests__/info-group.spec.tsx +++ b/web/app/components/datasets/metadata/metadata-document/__tests__/info-group.spec.tsx @@ -124,9 +124,7 @@ describe('InfoGroup', () => { titleTooltip="This is a tooltip" />, ) - // Tooltip icon should be present - const tooltipIcon = screen.getByText('Test').closest('.flex')?.querySelector('svg') - expect(tooltipIcon)!.toBeInTheDocument() + expect(screen.getByLabelText('This is a tooltip'))!.toBeInTheDocument() }) it('should render headerRight content', () => { diff --git a/web/app/components/datasets/metadata/metadata-document/info-group.tsx b/web/app/components/datasets/metadata/metadata-document/info-group.tsx index 6447185758..16f5e573fb 100644 --- a/web/app/components/datasets/metadata/metadata-document/info-group.tsx +++ b/web/app/components/datasets/metadata/metadata-document/info-group.tsx @@ -2,11 +2,11 @@ import type { FC } from 'react' import type { MetadataItemWithValue } from '../types' import { cn } from '@langgenius/dify-ui/cn' -import { RiDeleteBinLine, RiQuestionLine } from '@remixicon/react' +import { RiDeleteBinLine } from '@remixicon/react' import * as React from 'react' import { useTranslation } from 'react-i18next' import Divider from '@/app/components/base/divider' -import Tooltip from '@/app/components/base/tooltip' +import { Infotip } from '@/app/components/base/infotip' import useTimestamp from '@/hooks/use-timestamp' import { useRouter } from '@/next/navigation' import AddMetadataButton from '../add-metadata-button' @@ -64,9 +64,9 @@ const InfoGroup: FC = ({
{title}
{titleTooltip && ( - {titleTooltip}
}> -
-
+ + {titleTooltip} + )} {headerRight} diff --git a/web/app/components/datasets/settings/summary-index-setting.tsx b/web/app/components/datasets/settings/summary-index-setting.tsx index 3bd47bf4b9..0944afc2e1 100644 --- a/web/app/components/datasets/settings/summary-index-setting.tsx +++ b/web/app/components/datasets/settings/summary-index-setting.tsx @@ -8,8 +8,8 @@ import { useMemo, } from 'react' import { useTranslation } from 'react-i18next' +import { Infotip } from '@/app/components/base/infotip' import Textarea from '@/app/components/base/textarea' -import Tooltip from '@/app/components/base/tooltip' import { ModelTypeEnum } from '@/app/components/header/account-setting/model-provider-page/declarations' import { useModelList } from '@/app/components/header/account-setting/model-provider-page/hooks' import ModelSelector from '@/app/components/header/account-setting/model-provider-page/model-selector' @@ -65,11 +65,12 @@ const SummaryIndexSetting = ({
{t('form.summaryAutoGen', { ns: 'datasetSettings' })} - - + {t('form.summaryAutoGenTip', { ns: 'datasetSettings' })} +
{ expect(zenCommand.execute).toBeDefined() }) - it('exports ZEN_TOGGLE_EVENT constant', () => { - expect(ZEN_TOGGLE_EVENT).toBe('zen-toggle-maximize') - }) - describe('isAvailable', () => { it('delegates to isInWorkflowPage', async () => { const { isInWorkflowPage } = vi.mocked( @@ -43,15 +40,14 @@ describe('zenCommand', () => { }) describe('execute', () => { - it('dispatches custom zen-toggle event', () => { - const dispatchSpy = vi.spyOn(window, 'dispatchEvent') + it('emits the workflow canvas maximize command', () => { + const listener = vi.fn() + const unsubscribe = subscribeWorkflowCommand(WorkflowCommand.ToggleCanvasMaximize, listener) zenCommand.execute?.() - expect(dispatchSpy).toHaveBeenCalledWith( - expect.objectContaining({ type: ZEN_TOGGLE_EVENT }), - ) - dispatchSpy.mockRestore() + expect(listener).toHaveBeenCalledTimes(1) + unsubscribe() }) }) diff --git a/web/app/components/goto-anything/actions/commands/zen.tsx b/web/app/components/goto-anything/actions/commands/zen.tsx index 1645e40fd9..f4e0bec7a9 100644 --- a/web/app/components/goto-anything/actions/commands/zen.tsx +++ b/web/app/components/goto-anything/actions/commands/zen.tsx @@ -3,17 +3,17 @@ import { RiFullscreenLine } from '@remixicon/react' import * as React from 'react' import { getI18n } from 'react-i18next' import { isInWorkflowPage } from '@/app/components/workflow/constants' +import { + emitWorkflowCommand, + WorkflowCommand, +} from '@/app/components/workflow/shortcuts/commands' import { registerCommands, unregisterCommands } from './command-bus' // Zen command dependency types - no external dependencies needed type ZenDeps = Record -// Custom event name for zen toggle -export const ZEN_TOGGLE_EVENT = 'zen-toggle-maximize' - -// Shared function to dispatch zen toggle event const toggleZenMode = () => { - window.dispatchEvent(new CustomEvent(ZEN_TOGGLE_EVENT)) + emitWorkflowCommand(WorkflowCommand.ToggleCanvasMaximize) } /** diff --git a/web/app/components/header/account-setting/data-source-page-new/operator.tsx b/web/app/components/header/account-setting/data-source-page-new/operator.tsx index bcd3acb6b2..ccdc13a8a0 100644 --- a/web/app/components/header/account-setting/data-source-page-new/operator.tsx +++ b/web/app/components/header/account-setting/data-source-page-new/operator.tsx @@ -1,6 +1,7 @@ import type { DataSourceCredential, } from './types' +import { cn } from '@langgenius/dify-ui/cn' import { DropdownMenu, DropdownMenuContent, @@ -45,11 +46,17 @@ const Operator = ({ return ( - }> - - - - + + + + )} + /> handleAction('setDefault')}> diff --git a/web/app/components/header/account-setting/key-validator/declarations.ts b/web/app/components/header/account-setting/key-validator/declarations.ts index 374256ff41..bcf809f39c 100644 --- a/web/app/components/header/account-setting/key-validator/declarations.ts +++ b/web/app/components/header/account-setting/key-validator/declarations.ts @@ -1,10 +1,12 @@ import type { Dispatch, SetStateAction } from 'react' -export enum ValidatedStatus { - Success = 'success', - Error = 'error', - Exceed = 'exceed', -} +export const ValidatedStatus = { + Success: 'success', + Error: 'error', + Exceed: 'exceed', +} as const + +export type ValidatedStatus = typeof ValidatedStatus[keyof typeof ValidatedStatus] export type ValidatedStatusState = { status?: ValidatedStatus diff --git a/web/app/components/header/account-setting/model-provider-page/model-modal/Form.tsx b/web/app/components/header/account-setting/model-provider-page/model-modal/Form.tsx index bcfcb5cbe6..fc2b3899e5 100644 --- a/web/app/components/header/account-setting/model-provider-page/model-modal/Form.tsx +++ b/web/app/components/header/account-setting/model-provider-page/model-modal/Form.tsx @@ -15,9 +15,9 @@ import type { import { cn } from '@langgenius/dify-ui/cn' import { Select, SelectContent, SelectItem, SelectItemIndicator, SelectItemText, SelectTrigger } from '@langgenius/dify-ui/select' import { useCallback, useState } from 'react' +import { Infotip } from '@/app/components/base/infotip' import Radio from '@/app/components/base/radio' import RadioE from '@/app/components/base/radio/ui' -import Tooltip from '@/app/components/base/tooltip' import AppSelector from '@/app/components/plugins/plugin-detail-panel/app-selector' import ModelParameterModal from '@/app/components/plugins/plugin-detail-panel/model-selector' import MultipleToolSelector from '@/app/components/plugins/plugin-detail-panel/multiple-tool-selector' @@ -28,6 +28,23 @@ import { FormTypeEnum } from '../declarations' import { useLanguage } from '../hooks' import Input from './Input' +const radioGridColumnsClassNames: Record = { + 1: 'grid-cols-1', + 2: 'grid-cols-2', + 3: 'grid-cols-3', + 4: 'grid-cols-4', + 5: 'grid-cols-5', + 6: 'grid-cols-6', + 7: 'grid-cols-7', + 8: 'grid-cols-8', + 9: 'grid-cols-9', + 10: 'grid-cols-10', + 11: 'grid-cols-11', + 12: 'grid-cols-12', +} + +type ModelSelectorValue = Record + type FormProps< CustomFormSchema extends Omit & { type: string } = never, > = { @@ -100,7 +117,7 @@ function Form< fieldMoreInfo, } - const handleFormChange = (key: string, val: string | boolean) => { + const handleFormChange = (key: string, val: FormValue[string]) => { if (isEditMode && (key === '__model_type' || key === '__model_name')) return @@ -115,7 +132,7 @@ function Form< onChange({ ...value, [key]: val, ...shouldClearVariable }) } - const handleModelChanged = useCallback((key: string, model: any) => { + const handleModelChanged = useCallback((key: string, model: ModelSelectorValue) => { const newValue = { ...value[key], ...model, @@ -125,17 +142,16 @@ function Form< }, [onChange, value]) const renderField = (formSchema: CredentialFormSchema | CustomFormSchema) => { - const tooltip = formSchema.tooltip - const tooltipContent = (tooltip && ( - - {tooltip[language] || tooltip.en_US} -
- )} - triggerClassName="ml-1 w-4 h-4" - asChild={false} - /> + const infotip = formSchema.tooltip + const infotipText = infotip?.[language] || infotip?.en_US + const infotipContent = (infotipText && ( + + {infotipText} + )) if (override) { const [overrideTypes, overrideRender] = override @@ -166,7 +182,7 @@ function Form< {required && ( * )} - {tooltipContent} + {infotipContent} @@ -209,10 +226,9 @@ function Form< {required && ( * )} - {tooltipContent} + {infotipContent} - {/* eslint-disable-next-line tailwindcss/no-unknown-classes */} -
+
{options.filter((option) => { if (option.show_on.length) return option.show_on.every(showOnItem => value[showOnItem.variable] === showOnItem.value) @@ -272,7 +288,7 @@ function Form< {required && ( * )} - {tooltipContent} + {infotipContent}