diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 94e857f93a..98b7e9f119 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -6,6 +6,9 @@ * @crazywoola @laipz8200 @Yeuoly +# ESLint suppression file is maintained by autofix.ci pruning. +/eslint-suppressions.json + # CODEOWNERS file /.github/CODEOWNERS @laipz8200 @crazywoola diff --git a/.github/actions/setup-web/action.yml b/.github/actions/setup-web/action.yml index 673155bcf7..085b39ebfb 100644 --- a/.github/actions/setup-web/action.yml +++ b/.github/actions/setup-web/action.yml @@ -4,7 +4,7 @@ runs: using: composite steps: - name: Setup Vite+ - uses: voidzero-dev/setup-vp@20553a7a7429c429a74894104a2835d7fed28a72 # v1.3.0 + uses: voidzero-dev/setup-vp@4f5aa3e38c781f1b01e78fb9255527cee8a6efa6 # v1.8.0 with: node-version-file: .nvmrc cache: true diff --git a/.github/labeler.yml b/.github/labeler.yml index 3b9dc24749..e226bafccc 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -6,5 +6,4 @@ web: - 'package.json' - 'pnpm-lock.yaml' - 'pnpm-workspace.yaml' - - '.npmrc' - '.nvmrc' diff --git a/.github/workflows/autofix.yml b/.github/workflows/autofix.yml index 8a1719da3c..76fbd18f47 100644 --- a/.github/workflows/autofix.yml +++ b/.github/workflows/autofix.yml @@ -43,7 +43,6 @@ jobs: package.json pnpm-lock.yaml pnpm-workspace.yaml - .npmrc .nvmrc - name: Check api inputs if: github.event_name != 'merge_group' @@ -114,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/build-push.yml b/.github/workflows/build-push.yml index 2d8bde8080..915ed6cfe8 100644 --- a/.github/workflows/build-push.yml +++ b/.github/workflows/build-push.yml @@ -74,7 +74,7 @@ jobs: password: ${{ env.DOCKERHUB_TOKEN }} - name: Set up Depot CLI - uses: depot/setup-action@v1 + uses: depot/setup-action@15c09a5f77a0840ad4bce955686522a257853461 # v1.7.1 - name: Extract metadata for Docker id: meta @@ -84,7 +84,7 @@ jobs: - name: Build Docker image id: build - uses: depot/build-push-action@v1 + uses: depot/build-push-action@5f3b3c2e5a00f0093de47f657aeaefcedff27d18 # v1.17.0 with: project: ${{ vars.DEPOT_PROJECT_ID }} context: ${{ matrix.build_context }} @@ -124,10 +124,10 @@ jobs: file: "web/Dockerfile" steps: - name: Set up Docker Buildx - uses: docker/setup-buildx-action@98e3b2c9eab4f4f98a95c0c0a3ea5e5e672fd2a8 # v3.10.0 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 - name: Validate Docker image - uses: docker/build-push-action@5cd29d66b4a8d8e6f4d5dfe2e9329f0b1d446289 # v6.18.0 + uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7.1.0 with: push: false context: ${{ matrix.build_context }} diff --git a/.github/workflows/db-migration-test.yml b/.github/workflows/db-migration-test.yml index b1ccf496df..65f0149a74 100644 --- a/.github/workflows/db-migration-test.yml +++ b/.github/workflows/db-migration-test.yml @@ -110,6 +110,28 @@ jobs: sed -i 's/DB_PORT=5432/DB_PORT=3306/' .env sed -i 's/DB_USERNAME=postgres/DB_USERNAME=root/' .env + # hoverkraft-tech/compose-action@v2.6.0 only waits for `docker compose up -d` + # to return (container processes started); it does not wait on healthcheck + # status. mysql:8.0's first-time init takes 15-30s, so without an explicit + # wait the migration runs while InnoDB is still initialising and gets + # killed with "Lost connection during query". Poll a real SELECT until it + # succeeds. + - name: Wait for MySQL to accept queries + run: | + set +e + for i in $(seq 1 60); do + if docker run --rm --network host mysql:8.0 \ + mysql -h 127.0.0.1 -P 3306 -uroot -pdifyai123456 \ + -e 'SELECT 1' >/dev/null 2>&1; then + echo "MySQL ready after ${i}s" + exit 0 + fi + sleep 1 + done + echo "MySQL not ready after 60s; dumping container logs:" + docker compose -f docker/docker-compose.middleware.yaml --profile mysql logs --tail=200 db_mysql + exit 1 + - name: Run DB Migration env: DEBUG: true diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index b0022b863b..5144510be5 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -44,10 +44,10 @@ jobs: file: "web/Dockerfile" steps: - name: Set up Depot CLI - uses: depot/setup-action@v1 + uses: depot/setup-action@15c09a5f77a0840ad4bce955686522a257853461 # v1.7.1 - name: Build Docker Image - uses: depot/build-push-action@v1 + uses: depot/build-push-action@5f3b3c2e5a00f0093de47f657aeaefcedff27d18 # v1.17.0 with: project: ${{ vars.DEPOT_PROJECT_ID }} push: false @@ -71,10 +71,10 @@ jobs: file: "web/Dockerfile" steps: - name: Set up Docker Buildx - uses: docker/setup-buildx-action@98e3b2c9eab4f4f98a95c0c0a3ea5e5e672fd2a8 # v3.10.0 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 - name: Build Docker Image - uses: docker/build-push-action@5cd29d66b4a8d8e6f4d5dfe2e9329f0b1d446289 # v6.18.0 + uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7.1.0 with: push: false context: ${{ matrix.context }} diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index 278f2ed8d1..8071d6204d 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -69,7 +69,6 @@ jobs: - 'package.json' - 'pnpm-lock.yaml' - 'pnpm-workspace.yaml' - - '.npmrc' - '.nvmrc' - '.github/workflows/web-tests.yml' - '.github/actions/setup-web/**' @@ -83,7 +82,6 @@ jobs: - 'package.json' - 'pnpm-lock.yaml' - 'pnpm-workspace.yaml' - - '.npmrc' - '.nvmrc' - 'docker/docker-compose.middleware.yaml' - 'docker/middleware.env.example' diff --git a/.github/workflows/style.yml b/.github/workflows/style.yml index 6b00899cf0..d2b892d9aa 100644 --- a/.github/workflows/style.yml +++ b/.github/workflows/style.yml @@ -83,7 +83,6 @@ jobs: package.json pnpm-lock.yaml pnpm-workspace.yaml - .npmrc .nvmrc .github/workflows/style.yml .github/actions/setup-web/** @@ -110,8 +109,6 @@ jobs: - name: Web tsslint if: steps.changed-files.outputs.any_changed == 'true' working-directory: ./web - env: - NODE_OPTIONS: --max-old-space-size=4096 run: vp run lint:tss - name: Web type check diff --git a/.github/workflows/tool-test-sdks.yaml b/.github/workflows/tool-test-sdks.yaml index 79fddb1853..adaf99f33a 100644 --- a/.github/workflows/tool-test-sdks.yaml +++ b/.github/workflows/tool-test-sdks.yaml @@ -9,7 +9,6 @@ on: - package.json - pnpm-lock.yaml - pnpm-workspace.yaml - - .npmrc concurrency: group: sdk-tests-${{ github.head_ref || github.run_id }} diff --git a/.github/workflows/translate-i18n-claude.yml b/.github/workflows/translate-i18n-claude.yml index 5f48c22c56..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@567fe954a4527e81f132d87d1bdbcc94f7737434 # v1.0.107 + 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/.github/workflows/web-e2e.yml b/.github/workflows/web-e2e.yml index a634830fef..bdc24887db 100644 --- a/.github/workflows/web-e2e.yml +++ b/.github/workflows/web-e2e.yml @@ -13,7 +13,7 @@ concurrency: jobs: test: name: Web Full-Stack E2E - runs-on: depot-ubuntu-24.04 + runs-on: depot-ubuntu-24.04-4 defaults: run: shell: bash diff --git a/.gitignore b/.gitignore index 836bddbb49..dc3b3f284f 100644 --- a/.gitignore +++ b/.gitignore @@ -219,6 +219,9 @@ node_modules # plugin migrate plugins.jsonl +# generated API OpenAPI specs +packages/contracts/openapi/ + # mise mise.toml diff --git a/.npmrc b/.npmrc deleted file mode 100644 index cffe8cdef1..0000000000 --- a/.npmrc +++ /dev/null @@ -1 +0,0 @@ -save-exact=true diff --git a/api/commands/account.py b/api/commands/account.py index 761323a73d..0d99ce7a0f 100644 --- a/api/commands/account.py +++ b/api/commands/account.py @@ -113,8 +113,18 @@ def create_tenant(email: str, language: str | None = None, name: str | None = No # Validates name encoding for non-Latin characters. name = name.strip().encode("utf-8").decode("utf-8") if name else None - # generate random password - new_password = secrets.token_urlsafe(16) + # Generate a random password that satisfies the password policy. + # The iteration limit guards against infinite loops caused by unexpected bugs in valid_password. + for _ in range(100): + new_password = secrets.token_urlsafe(16) + try: + valid_password(new_password) + break + except Exception: + continue + else: + click.echo(click.style("Failed to generate a valid password. Please try again.", fg="red")) + return # register account account = RegisterService.register( 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/app/app.py b/api/controllers/console/app/app.py index a736fc8bc8..c8334bfd18 100644 --- a/api/controllers/console/app/app.py +++ b/api/controllers/console/app/app.py @@ -1,4 +1,5 @@ import logging +import re import uuid from datetime import datetime from typing import Any, Literal @@ -8,6 +9,7 @@ from flask_restx import Resource from pydantic import AliasChoices, BaseModel, Field, computed_field, field_validator from sqlalchemy import select from sqlalchemy.orm import Session +from werkzeug.datastructures import MultiDict from werkzeug.exceptions import BadRequest from controllers.common.helpers import FileInfo @@ -57,6 +59,7 @@ ALLOW_CREATE_APP_MODES = ["chat", "agent-chat", "advanced-chat", "workflow", "co register_enum_models(console_ns, IconType) _logger = logging.getLogger(__name__) +_TAG_IDS_BRACKET_PATTERN = re.compile(r"^tag_ids\[(\d+)\]$") class AppListQuery(BaseModel): @@ -66,22 +69,19 @@ class AppListQuery(BaseModel): default="all", description="App mode filter" ) name: str | None = Field(default=None, description="Filter by app name") - tag_ids: list[str] | None = Field(default=None, description="Comma-separated tag IDs") + tag_ids: list[str] | None = Field(default=None, description="Filter by tag IDs") is_created_by_me: bool | None = Field(default=None, description="Filter by creator") @field_validator("tag_ids", mode="before") @classmethod - def validate_tag_ids(cls, value: str | list[str] | None) -> list[str] | None: + def validate_tag_ids(cls, value: list[str] | None) -> list[str] | None: if not value: return None - if isinstance(value, str): - items = [item.strip() for item in value.split(",") if item.strip()] - elif isinstance(value, list): - items = [str(item).strip() for item in value if item and str(item).strip()] - else: - raise TypeError("Unsupported tag_ids type.") + if not isinstance(value, list): + raise ValueError("Unsupported tag_ids type.") + items = [str(item).strip() for item in value if item and str(item).strip()] if not items: return None @@ -91,6 +91,26 @@ class AppListQuery(BaseModel): raise ValueError("Invalid UUID format in tag_ids.") from exc +def _normalize_app_list_query_args(query_args: MultiDict[str, str]) -> dict[str, str | list[str]]: + normalized: dict[str, str | list[str]] = {} + indexed_tag_ids: list[tuple[int, str]] = [] + + for key in query_args: + match = _TAG_IDS_BRACKET_PATTERN.fullmatch(key) + if match: + indexed_tag_ids.extend((int(match.group(1)), value) for value in query_args.getlist(key)) + continue + + value = query_args.get(key) + if value is not None: + normalized[key] = value + + if indexed_tag_ids: + normalized["tag_ids"] = [value for _, value in sorted(indexed_tag_ids)] + + return normalized + + class CreateAppPayload(BaseModel): name: str = Field(..., min_length=1, description="App name") description: str | None = Field(default=None, description="App description (max 400 chars)", max_length=400) @@ -455,7 +475,7 @@ class AppListApi(Resource): """Get app list""" current_user, current_tenant_id = current_account_with_tenant() - args = AppListQuery.model_validate(request.args.to_dict(flat=True)) # type: ignore + args = AppListQuery.model_validate(_normalize_app_list_query_args(request.args)) args_dict = args.model_dump() # get app list diff --git a/api/controllers/console/app/workflow.py b/api/controllers/console/app/workflow.py index 478f783eb0..68dd8b7a8d 100644 --- a/api/controllers/console/app/workflow.py +++ b/api/controllers/console/app/workflow.py @@ -60,7 +60,8 @@ _file_access_controller = DatabaseFileAccessController() LISTENING_RETRY_IN = 2000 DEFAULT_REF_TEMPLATE_SWAGGER_2_0 = "#/definitions/{model}" RESTORE_SOURCE_WORKFLOW_MUST_BE_PUBLISHED_MESSAGE = "source workflow must be published" -MAX_WORKFLOW_ONLINE_USERS_QUERY_IDS = 50 +MAX_WORKFLOW_ONLINE_USERS_REQUEST_IDS = 1000 +WORKFLOW_ONLINE_USERS_REDIS_BATCH_SIZE = 50 # Register models for flask_restx to avoid dict type issues in Swagger # Register in dependency order: base models first, then dependent models @@ -158,8 +159,13 @@ class WorkflowFeaturesPayload(BaseModel): features: dict[str, Any] = Field(..., description="Workflow feature configuration") -class WorkflowOnlineUsersQuery(BaseModel): - app_ids: str = Field(..., description="Comma-separated app IDs") +class WorkflowOnlineUsersPayload(BaseModel): + app_ids: list[str] = Field(default_factory=list, description="App IDs") + + @field_validator("app_ids") + @classmethod + def normalize_app_ids(cls, app_ids: list[str]) -> list[str]: + return list(dict.fromkeys(app_id.strip() for app_id in app_ids if app_id.strip())) class DraftWorkflowTriggerRunPayload(BaseModel): @@ -186,7 +192,7 @@ reg(ConvertToWorkflowPayload) reg(WorkflowListQuery) reg(WorkflowUpdatePayload) reg(WorkflowFeaturesPayload) -reg(WorkflowOnlineUsersQuery) +reg(WorkflowOnlineUsersPayload) reg(DraftWorkflowTriggerRunPayload) reg(DraftWorkflowTriggerRunAllPayload) @@ -1384,19 +1390,19 @@ class DraftWorkflowTriggerRunAllApi(Resource): @console_ns.route("/apps/workflows/online-users") class WorkflowOnlineUsersApi(Resource): - @console_ns.expect(console_ns.models[WorkflowOnlineUsersQuery.__name__]) + @console_ns.expect(console_ns.models[WorkflowOnlineUsersPayload.__name__]) @console_ns.doc("get_workflow_online_users") @console_ns.doc(description="Get workflow online users") @setup_required @login_required @account_initialization_required @marshal_with(online_user_list_fields) - def get(self): - args = WorkflowOnlineUsersQuery.model_validate(request.args.to_dict(flat=True)) # type: ignore + def post(self): + args = WorkflowOnlineUsersPayload.model_validate(console_ns.payload or {}) - app_ids = list(dict.fromkeys(app_id.strip() for app_id in args.app_ids.split(",") if app_id.strip())) - if len(app_ids) > MAX_WORKFLOW_ONLINE_USERS_QUERY_IDS: - raise BadRequest(f"Maximum {MAX_WORKFLOW_ONLINE_USERS_QUERY_IDS} app_ids are allowed per request.") + app_ids = args.app_ids + if len(app_ids) > MAX_WORKFLOW_ONLINE_USERS_REQUEST_IDS: + raise BadRequest(f"Maximum {MAX_WORKFLOW_ONLINE_USERS_REQUEST_IDS} app_ids are allowed per request.") if not app_ids: return {"data": []} @@ -1404,13 +1410,24 @@ class WorkflowOnlineUsersApi(Resource): _, current_tenant_id = current_account_with_tenant() workflow_service = WorkflowService() accessible_app_ids = workflow_service.get_accessible_app_ids(app_ids, current_tenant_id) + ordered_accessible_app_ids = [app_id for app_id in app_ids if app_id in accessible_app_ids] + + users_json_by_app_id: dict[str, Any] = {} + for start_index in range(0, len(ordered_accessible_app_ids), WORKFLOW_ONLINE_USERS_REDIS_BATCH_SIZE): + app_id_batch = ordered_accessible_app_ids[ + start_index : start_index + WORKFLOW_ONLINE_USERS_REDIS_BATCH_SIZE + ] + pipe = redis_client.pipeline(transaction=False) + for app_id in app_id_batch: + pipe.hgetall(f"{WORKFLOW_ONLINE_USERS_PREFIX}{app_id}") + + users_json_batch = pipe.execute() + for app_id, users_json in zip(app_id_batch, users_json_batch): + users_json_by_app_id[app_id] = users_json results = [] - for app_id in app_ids: - if app_id not in accessible_app_ids: - continue - - users_json = redis_client.hgetall(f"{WORKFLOW_ONLINE_USERS_PREFIX}{app_id}") + for app_id in ordered_accessible_app_ids: + users_json = users_json_by_app_id.get(app_id, {}) users = [] for _, user_info_json in users_json.items(): diff --git a/api/controllers/console/datasets/hit_testing_base.py b/api/controllers/console/datasets/hit_testing_base.py index 699fa599c8..71ab1513ed 100644 --- a/api/controllers/console/datasets/hit_testing_base.py +++ b/api/controllers/console/datasets/hit_testing_base.py @@ -38,6 +38,48 @@ class HitTestingPayload(BaseModel): class DatasetsHitTestingBase: + @staticmethod + def _normalize_hit_testing_query(query: Any) -> str: + """Return the user-visible query string from legacy and current response shapes.""" + if isinstance(query, str): + return query + + if isinstance(query, dict): + content = query.get("content") + if isinstance(content, str): + return content + + raise ValueError("Invalid hit testing query response") + + @staticmethod + def _normalize_hit_testing_records(records: Any) -> list[dict[str, Any]]: + """Coerce nullable collection fields into lists before response validation.""" + if not isinstance(records, list): + return [] + + normalized_records: list[dict[str, Any]] = [] + for record in records: + if not isinstance(record, dict): + continue + + normalized_record = dict(record) + segment = normalized_record.get("segment") + if isinstance(segment, dict): + normalized_segment = dict(segment) + if normalized_segment.get("keywords") is None: + normalized_segment["keywords"] = [] + normalized_record["segment"] = normalized_segment + + if normalized_record.get("child_chunks") is None: + normalized_record["child_chunks"] = [] + + if normalized_record.get("files") is None: + normalized_record["files"] = [] + + normalized_records.append(normalized_record) + + return normalized_records + @staticmethod def get_and_validate_dataset(dataset_id: str): assert isinstance(current_user, Account) @@ -75,7 +117,12 @@ class DatasetsHitTestingBase: attachment_ids=args.get("attachment_ids"), limit=10, ) - return {"query": response["query"], "records": marshal(response["records"], hit_testing_record_fields)} + return { + "query": DatasetsHitTestingBase._normalize_hit_testing_query(response.get("query")), + "records": DatasetsHitTestingBase._normalize_hit_testing_records( + marshal(response.get("records", []), hit_testing_record_fields) + ), + } except services.errors.index.IndexNotInitializedError: raise DatasetNotInitializedError() except ProviderTokenNotInitError as ex: 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/service_api/dataset/document.py b/api/controllers/service_api/dataset/document.py index bc28ecb6b7..0b09facf58 100644 --- a/api/controllers/service_api/dataset/document.py +++ b/api/controllers/service_api/dataset/document.py @@ -468,15 +468,98 @@ class DocumentAddByFileApi(DatasetApiResource): return documents_and_batch_fields, 200 +def _update_document_by_file(tenant_id: str, dataset_id: UUID, document_id: UUID) -> tuple[Mapping[str, object], int]: + """Update a document from an uploaded file for canonical and deprecated routes.""" + dataset_id_str = str(dataset_id) + tenant_id_str = str(tenant_id) + dataset = db.session.scalar( + select(Dataset).where(Dataset.tenant_id == tenant_id_str, Dataset.id == dataset_id_str).limit(1) + ) + + if not dataset: + raise ValueError("Dataset does not exist.") + + if dataset.provider == "external": + raise ValueError("External datasets are not supported.") + + args: dict[str, object] = {} + if "data" in request.form: + args = json.loads(request.form["data"]) + if "doc_form" not in args: + args["doc_form"] = dataset.chunk_structure or "text_model" + if "doc_language" not in args: + args["doc_language"] = "English" + + # indexing_technique is already set in dataset since this is an update + args["indexing_technique"] = dataset.indexing_technique + + if "file" in request.files: + # save file info + file = request.files["file"] + + if len(request.files) > 1: + raise TooManyFilesError() + + if not file.filename: + raise FilenameNotExistsError + + if not current_user: + raise ValueError("current_user is required") + + try: + upload_file = FileService(db.engine).upload_file( + filename=file.filename, + content=file.read(), + mimetype=file.mimetype, + user=current_user, + source="datasets", + ) + except services.errors.file.FileTooLargeError as file_too_large_error: + raise FileTooLargeError(file_too_large_error.description) + except services.errors.file.UnsupportedFileTypeError: + raise UnsupportedFileTypeError() + data_source = { + "type": "upload_file", + "info_list": {"data_source_type": "upload_file", "file_info_list": {"file_ids": [upload_file.id]}}, + } + args["data_source"] = data_source + + # validate args + args["original_document_id"] = str(document_id) + + knowledge_config = KnowledgeConfig.model_validate(args) + DocumentService.document_create_args_validate(knowledge_config) + + try: + documents, _ = DocumentService.save_document_with_dataset_id( + dataset=dataset, + knowledge_config=knowledge_config, + account=dataset.created_by_account, + dataset_process_rule=dataset.latest_process_rule if "process_rule" not in args else None, + created_from="api", + ) + except ProviderTokenNotInitError as ex: + raise ProviderNotInitializeError(ex.description) + document = documents[0] + documents_and_batch_fields = {"document": marshal(document, document_fields), "batch": document.batch} + return documents_and_batch_fields, 200 + + @service_api_ns.route( "/datasets//documents//update_by_file", "/datasets//documents//update-by-file", ) -class DocumentUpdateByFileApi(DatasetApiResource): - """Resource for update documents.""" +class DeprecatedDocumentUpdateByFileApi(DatasetApiResource): + """Deprecated resource aliases for file document updates.""" - @service_api_ns.doc("update_document_by_file") - @service_api_ns.doc(description="Update an existing document by uploading a file") + @service_api_ns.doc("update_document_by_file_deprecated") + @service_api_ns.doc(deprecated=True) + @service_api_ns.doc( + description=( + "Deprecated legacy alias for updating an existing document by uploading a file. " + "Use PATCH /datasets/{dataset_id}/documents/{document_id} instead." + ) + ) @service_api_ns.doc(params={"dataset_id": "Dataset ID", "document_id": "Document ID"}) @service_api_ns.doc( responses={ @@ -487,82 +570,9 @@ class DocumentUpdateByFileApi(DatasetApiResource): ) @cloud_edition_billing_resource_check("vector_space", "dataset") @cloud_edition_billing_rate_limit_check("knowledge", "dataset") - def post(self, tenant_id, dataset_id, document_id): - """Update document by upload file.""" - dataset = db.session.scalar( - select(Dataset).where(Dataset.tenant_id == tenant_id, Dataset.id == dataset_id).limit(1) - ) - - if not dataset: - raise ValueError("Dataset does not exist.") - - if dataset.provider == "external": - raise ValueError("External datasets are not supported.") - - args = {} - if "data" in request.form: - args = json.loads(request.form["data"]) - if "doc_form" not in args: - args["doc_form"] = dataset.chunk_structure or "text_model" - if "doc_language" not in args: - args["doc_language"] = "English" - - # get dataset info - dataset_id = str(dataset_id) - tenant_id = str(tenant_id) - - # indexing_technique is already set in dataset since this is an update - args["indexing_technique"] = dataset.indexing_technique - - if "file" in request.files: - # save file info - file = request.files["file"] - - if len(request.files) > 1: - raise TooManyFilesError() - - if not file.filename: - raise FilenameNotExistsError - - if not current_user: - raise ValueError("current_user is required") - - try: - upload_file = FileService(db.engine).upload_file( - filename=file.filename, - content=file.read(), - mimetype=file.mimetype, - user=current_user, - source="datasets", - ) - except services.errors.file.FileTooLargeError as file_too_large_error: - raise FileTooLargeError(file_too_large_error.description) - except services.errors.file.UnsupportedFileTypeError: - raise UnsupportedFileTypeError() - data_source = { - "type": "upload_file", - "info_list": {"data_source_type": "upload_file", "file_info_list": {"file_ids": [upload_file.id]}}, - } - args["data_source"] = data_source - # validate args - args["original_document_id"] = str(document_id) - - knowledge_config = KnowledgeConfig.model_validate(args) - DocumentService.document_create_args_validate(knowledge_config) - - try: - documents, _ = DocumentService.save_document_with_dataset_id( - dataset=dataset, - knowledge_config=knowledge_config, - account=dataset.created_by_account, - dataset_process_rule=dataset.latest_process_rule if "process_rule" not in args else None, - created_from="api", - ) - except ProviderTokenNotInitError as ex: - raise ProviderNotInitializeError(ex.description) - document = documents[0] - documents_and_batch_fields = {"document": marshal(document, document_fields), "batch": document.batch} - return documents_and_batch_fields, 200 + def post(self, tenant_id: str, dataset_id: UUID, document_id: UUID): + """Update document by file through the deprecated file-update aliases.""" + return _update_document_by_file(tenant_id=tenant_id, dataset_id=dataset_id, document_id=document_id) @service_api_ns.route("/datasets//documents") @@ -876,6 +886,22 @@ class DocumentApi(DatasetApiResource): return response + @service_api_ns.doc("update_document_by_file") + @service_api_ns.doc(description="Update an existing document by uploading a file") + @service_api_ns.doc(params={"dataset_id": "Dataset ID", "document_id": "Document ID"}) + @service_api_ns.doc( + responses={ + 200: "Document updated successfully", + 401: "Unauthorized - invalid API token", + 404: "Document not found", + } + ) + @cloud_edition_billing_resource_check("vector_space", "dataset") + @cloud_edition_billing_rate_limit_check("knowledge", "dataset") + def patch(self, tenant_id: str, dataset_id: UUID, document_id: UUID): + """Update document by file on the canonical document resource.""" + return _update_document_by_file(tenant_id=tenant_id, dataset_id=dataset_id, document_id=document_id) + @service_api_ns.doc("delete_document") @service_api_ns.doc(description="Delete a document") @service_api_ns.doc(params={"dataset_id": "Dataset ID", "document_id": "Document ID"}) diff --git a/api/core/plugin/utils/http_parser.py b/api/core/plugin/utils/http_parser.py index ce943929be..af0ff10bfb 100644 --- a/api/core/plugin/utils/http_parser.py +++ b/api/core/plugin/utils/http_parser.py @@ -151,6 +151,12 @@ def deserialize_response(raw_data: bytes) -> Response: response = Response(response=body, status=status_code) + # Replace Flask's default headers (e.g. Content-Type, Content-Length) with the + # parsed ones so we faithfully reproduce the original response. Use Headers.add + # rather than dict-style assignment so that repeated headers such as Set-Cookie + # (and any other multi-valued header per RFC 9110) are preserved instead of + # being overwritten. + response.headers.clear() for line in lines[1:]: if not line: continue @@ -158,6 +164,6 @@ def deserialize_response(raw_data: bytes) -> Response: if ":" not in line_str: continue name, value = line_str.split(":", 1) - response.headers[name] = value.strip() + response.headers.add(name, value.strip()) return response diff --git a/api/core/provider_manager.py b/api/core/provider_manager.py index 8969825be4..b290ae456e 100644 --- a/api/core/provider_manager.py +++ b/api/core/provider_manager.py @@ -9,9 +9,9 @@ from typing import TYPE_CHECKING, Any from pydantic import TypeAdapter from sqlalchemy import select from sqlalchemy.exc import IntegrityError -from sqlalchemy.orm import Session from configs import dify_config +from core.db.session_factory import session_factory from core.entities.model_entities import DefaultModelEntity, DefaultModelProviderEntity from core.entities.provider_configuration import ProviderConfiguration, ProviderConfigurations, ProviderModelBundle from core.entities.provider_entities import ( @@ -445,7 +445,7 @@ class ProviderManager: @staticmethod def _get_all_providers(tenant_id: str) -> dict[str, list[Provider]]: provider_name_to_provider_records_dict = defaultdict(list) - with Session(db.engine, expire_on_commit=False) as session: + with session_factory.create_session() as session: stmt = select(Provider).where(Provider.tenant_id == tenant_id, Provider.is_valid == True) providers = session.scalars(stmt) for provider in providers: @@ -462,7 +462,7 @@ class ProviderManager: :return: """ provider_name_to_provider_model_records_dict = defaultdict(list) - with Session(db.engine, expire_on_commit=False) as session: + with session_factory.create_session() as session: stmt = select(ProviderModel).where(ProviderModel.tenant_id == tenant_id, ProviderModel.is_valid == True) provider_models = session.scalars(stmt) for provider_model in provider_models: @@ -478,7 +478,7 @@ class ProviderManager: :return: """ provider_name_to_preferred_provider_type_records_dict = {} - with Session(db.engine, expire_on_commit=False) as session: + with session_factory.create_session() as session: stmt = select(TenantPreferredModelProvider).where(TenantPreferredModelProvider.tenant_id == tenant_id) preferred_provider_types = session.scalars(stmt) provider_name_to_preferred_provider_type_records_dict = { @@ -496,7 +496,7 @@ class ProviderManager: :return: """ provider_name_to_provider_model_settings_dict = defaultdict(list) - with Session(db.engine, expire_on_commit=False) as session: + with session_factory.create_session() as session: stmt = select(ProviderModelSetting).where(ProviderModelSetting.tenant_id == tenant_id) provider_model_settings = session.scalars(stmt) for provider_model_setting in provider_model_settings: @@ -514,7 +514,7 @@ class ProviderManager: :return: """ provider_name_to_provider_model_credentials_dict = defaultdict(list) - with Session(db.engine, expire_on_commit=False) as session: + with session_factory.create_session() as session: stmt = select(ProviderModelCredential).where(ProviderModelCredential.tenant_id == tenant_id) provider_model_credentials = session.scalars(stmt) for provider_model_credential in provider_model_credentials: @@ -544,7 +544,7 @@ class ProviderManager: return {} provider_name_to_provider_load_balancing_model_configs_dict = defaultdict(list) - with Session(db.engine, expire_on_commit=False) as session: + with session_factory.create_session() as session: stmt = select(LoadBalancingModelConfig).where(LoadBalancingModelConfig.tenant_id == tenant_id) provider_load_balancing_configs = session.scalars(stmt) for provider_load_balancing_config in provider_load_balancing_configs: @@ -578,7 +578,7 @@ class ProviderManager: :param provider_name: provider name :return: """ - with Session(db.engine, expire_on_commit=False) as session: + with session_factory.create_session() as session: stmt = ( select(ProviderCredential) .where( @@ -608,7 +608,7 @@ class ProviderManager: :param model_type: model type :return: """ - with Session(db.engine, expire_on_commit=False) as session: + with session_factory.create_session() as session: stmt = ( select(ProviderModelCredential) .where( diff --git a/api/core/rag/datasource/retrieval_service.py b/api/core/rag/datasource/retrieval_service.py index c60d19045a..b985ebbe1d 100644 --- a/api/core/rag/datasource/retrieval_service.py +++ b/api/core/rag/datasource/retrieval_service.py @@ -217,10 +217,11 @@ class RetrievalService: """Deduplicate documents in O(n) while preserving first-seen order. Rules: - - For provider == "dify" and metadata["doc_id"] exists: keep the doc with the highest - metadata["score"] among duplicates; if a later duplicate has no score, ignore it. - - For non-dify documents (or dify without doc_id): deduplicate by content key - (provider, page_content), keeping the first occurrence. + - If metadata["doc_id"] exists (any provider): deduplicate by (provider, doc_id) key; + keep the doc with the highest metadata["score"] among duplicates. If a later duplicate + has no score, ignore it. + - If metadata["doc_id"] is absent: deduplicate by content key (provider, page_content), + keeping the first occurrence. """ if not documents: return documents @@ -231,11 +232,10 @@ class RetrievalService: order: list[tuple] = [] for doc in documents: - is_dify = doc.provider == "dify" - doc_id = (doc.metadata or {}).get("doc_id") if is_dify else None + doc_id = (doc.metadata or {}).get("doc_id") - if is_dify and doc_id: - key = ("dify", doc_id) + if doc_id: + key = (doc.provider or "dify", doc_id) if key not in chosen: chosen[key] = doc order.append(key) diff --git a/api/core/rag/datasource/vdb/vector_factory.py b/api/core/rag/datasource/vdb/vector_factory.py index 9575377174..1f82f7a081 100644 --- a/api/core/rag/datasource/vdb/vector_factory.py +++ b/api/core/rag/datasource/vdb/vector_factory.py @@ -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/tools/tool_manager.py b/api/core/tools/tool_manager.py index 87cf6d7085..0a7811bb53 100644 --- a/api/core/tools/tool_manager.py +++ b/api/core/tools/tool_manager.py @@ -1078,6 +1078,13 @@ class ToolManager: if parameter.form == ToolParameter.ToolParameterForm.FORM: if variable_pool: config = tool_configurations.get(parameter.name, {}) + + selector_value = cls._extract_runtime_selector_value(parameter, config) + if selector_value is not None: + # Selector parameters carry structured dictionaries, not scalar ToolInput values. + runtime_parameters[parameter.name] = selector_value + continue + if not (config and isinstance(config, dict) and config.get("value") is not None): continue tool_input = ToolNodeData.ToolInput.model_validate(tool_configurations.get(parameter.name, {})) @@ -1105,5 +1112,39 @@ class ToolManager: runtime_parameters[parameter.name] = value return runtime_parameters + @classmethod + def _extract_runtime_selector_value(cls, parameter: ToolParameter, config: Any) -> dict[str, Any] | None: + if parameter.type not in { + ToolParameter.ToolParameterType.MODEL_SELECTOR, + ToolParameter.ToolParameterType.APP_SELECTOR, + }: + return None + if not isinstance(config, dict): + return None + + input_value = config.get("value") + if isinstance(input_value, dict) and cls._is_selector_value(parameter, input_value): + return cast("dict[str, Any]", parameter.init_frontend_parameter(input_value)) + + if cls._is_selector_value(parameter, config): + selector_value = dict(config) + selector_value.pop("type", None) + selector_value.pop("value", None) + return cast("dict[str, Any]", parameter.init_frontend_parameter(selector_value)) + + return None + + @classmethod + def _is_selector_value(cls, parameter: ToolParameter, value: Mapping[str, Any]) -> bool: + if parameter.type == ToolParameter.ToolParameterType.MODEL_SELECTOR: + return ( + isinstance(value.get("provider"), str) + and isinstance(value.get("model"), str) + and isinstance(value.get("model_type"), str) + ) + if parameter.type == ToolParameter.ToolParameterType.APP_SELECTOR: + return isinstance(value.get("app_id"), str) + return False + ToolManager.load_hardcoded_providers_cache() diff --git a/api/core/workflow/human_input_adapter.py b/api/core/workflow/human_input_adapter.py index 4b765e6aea..731ae2b858 100644 --- a/api/core/workflow/human_input_adapter.py +++ b/api/core/workflow/human_input_adapter.py @@ -272,6 +272,14 @@ def _adapt_tool_node_data_for_graph(node_data: Mapping[str, Any]) -> dict[str, A normalized_tool_configurations[name] = value continue + selector_value = _extract_selector_configuration(value) + if selector_value is not None: + # Model/app selectors are dictionaries even when they come through the legacy tool configuration path. + # Move them to tool_parameters so graph validation does not flatten them as primitive constants. + found_legacy_tool_inputs = True + normalized_tool_parameters.setdefault(name, {"type": "constant", "value": selector_value}) + continue + input_type = value.get("type") input_value = value.get("value") if input_type not in {"mixed", "variable", "constant"}: @@ -310,6 +318,28 @@ def _flatten_legacy_tool_configuration_value(*, input_type: Any, input_value: An return None +def _extract_selector_configuration(value: Mapping[str, Any]) -> dict[str, Any] | None: + input_value = value.get("value") + if isinstance(input_value, Mapping) and _is_selector_configuration(input_value): + return dict(input_value) + + if _is_selector_configuration(value): + selector_value = dict(value) + selector_value.pop("type", None) + selector_value.pop("value", None) + return selector_value + + return None + + +def _is_selector_configuration(value: Mapping[str, Any]) -> bool: + return ( + isinstance(value.get("provider"), str) + and isinstance(value.get("model"), str) + and isinstance(value.get("model_type"), str) + ) or isinstance(value.get("app_id"), str) + + def _normalize_email_recipients(recipients: Mapping[str, Any]) -> dict[str, Any]: normalized = dict(recipients) 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/node_runtime.py b/api/core/workflow/node_runtime.py index b8725853c4..c1d3a856fb 100644 --- a/api/core/workflow/node_runtime.py +++ b/api/core/workflow/node_runtime.py @@ -501,11 +501,15 @@ class DifyToolNodeRuntime(ToolNodeRuntimeProtocol): @staticmethod def _build_tool_runtime_spec(node_data: ToolNodeData) -> _WorkflowToolRuntimeSpec: + tool_configurations = dict(node_data.tool_configurations) + tool_configurations.update( + {name: tool_input.model_dump(mode="python") for name, tool_input in node_data.tool_parameters.items()} + ) return _WorkflowToolRuntimeSpec( provider_type=CoreToolProviderType(node_data.provider_type.value), provider_id=node_data.provider_id, tool_name=node_data.tool_name, - tool_configurations=dict(node_data.tool_configurations), + tool_configurations=tool_configurations, credential_id=node_data.credential_id, ) 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 ba9758175f..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 @@ -3,6 +3,7 @@ import logging 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 @@ -19,7 +20,8 @@ def handle(sender, **kwargs): for node_data in synced_draft_workflow.graph_dict.get("nodes", []): if node_data.get("data", {}).get("type") == BuiltinNodeTypes.TOOL: try: - tool_entity = ToolEntity.model_validate(node_data["data"]) + adapted_node_data = adapt_node_config_for_graph(node_data) + tool_entity = ToolEntity.model_validate(adapted_node_data["data"]) provider_type = ToolProviderType(tool_entity.provider_type.value) tool_runtime = ToolManager.get_tool_runtime( provider_type=provider_type, diff --git a/api/factories/file_factory/builders.py b/api/factories/file_factory/builders.py index 1d2ad4d445..4fb976f0e7 100644 --- a/api/factories/file_factory/builders.py +++ b/api/factories/file_factory/builders.py @@ -298,7 +298,7 @@ def _build_from_datasource_file( raise ValueError(f"DatasourceFile {mapping.get('datasource_file_id')} not found") extension = "." + datasource_file.key.split(".")[-1] if "." in datasource_file.key else ".bin" - detected_file_type = standardize_file_type(extension="." + extension, mime_type=datasource_file.mime_type) + detected_file_type = standardize_file_type(extension=extension, mime_type=datasource_file.mime_type) file_type = _resolve_file_type( detected_file_type=detected_file_type, specified_type=mapping.get("type"), 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/models/model.py b/api/models/model.py index de83aa1d96..25c330b062 100644 --- a/api/models/model.py +++ b/api/models/model.py @@ -2182,7 +2182,7 @@ class ApiToken(Base): # bug: this uses setattr so idk the field. return result -class UploadFile(Base): +class UploadFile(TypeBase): __tablename__ = "upload_files" __table_args__ = ( sa.PrimaryKeyConstraint("id", name="upload_file_pkey"), @@ -2190,9 +2190,12 @@ class UploadFile(Base): ) # NOTE: The `id` field is generated within the application to minimize extra roundtrips - # (especially when generating `source_url`). - # The `server_default` serves as a fallback mechanism. - id: Mapped[str] = mapped_column(StringUUID, default=lambda: str(uuid4())) + # (especially when generating `source_url`) and keep model metadata portable across databases. + id: Mapped[str] = mapped_column( + StringUUID, + init=False, + default_factory=lambda: str(uuid4()), + ) tenant_id: Mapped[str] = mapped_column(StringUUID, nullable=False) storage_type: Mapped[StorageType] = mapped_column(EnumText(StorageType, length=255), nullable=False) key: Mapped[str] = mapped_column(String(255), nullable=False) @@ -2200,16 +2203,6 @@ class UploadFile(Base): size: Mapped[int] = mapped_column(sa.Integer, nullable=False) extension: Mapped[str] = mapped_column(String(255), nullable=False) mime_type: Mapped[str] = mapped_column(String(255), nullable=True) - - # The `created_by_role` field indicates whether the file was created by an `Account` or an `EndUser`. - # Its value is derived from the `CreatorUserRole` enumeration. - created_by_role: Mapped[CreatorUserRole] = mapped_column( - EnumText(CreatorUserRole, length=255), - nullable=False, - server_default=sa.text("'account'"), - default=CreatorUserRole.ACCOUNT, - ) - # The `created_by` field stores the ID of the entity that created this upload file. # # If `created_by_role` is `ACCOUNT`, it corresponds to `Account.id`. @@ -2228,10 +2221,18 @@ class UploadFile(Base): # `used` may indicate whether the file has been utilized by another service. used: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.text("false")) + # The `created_by_role` field indicates whether the file was created by an `Account` or an `EndUser`. + # Its value is derived from the `CreatorUserRole` enumeration. + created_by_role: Mapped[CreatorUserRole] = mapped_column( + EnumText(CreatorUserRole, length=255), + nullable=False, + server_default=sa.text("'account'"), + default=CreatorUserRole.ACCOUNT, + ) # `used_by` may indicate the ID of the user who utilized this file. - used_by: Mapped[str | None] = mapped_column(StringUUID, nullable=True) - used_at: Mapped[datetime | None] = mapped_column(sa.DateTime, nullable=True) - hash: Mapped[str | None] = mapped_column(String(255), nullable=True) + used_by: Mapped[str | None] = mapped_column(StringUUID, nullable=True, default=None) + used_at: Mapped[datetime | None] = mapped_column(sa.DateTime, nullable=True, default=None) + hash: Mapped[str | None] = mapped_column(String(255), nullable=True, default=None) source_url: Mapped[str] = mapped_column(LongText, default="") def __init__( diff --git a/api/models/provider.py b/api/models/provider.py index 2bb67d605b..8dc3ce4ff6 100644 --- a/api/models/provider.py +++ b/api/models/provider.py @@ -9,11 +9,11 @@ import sqlalchemy as sa from sqlalchemy import DateTime, String, func, select, text from sqlalchemy.orm import Mapped, mapped_column +from core.db.session_factory import session_factory from graphon.model_runtime.entities.model_entities import ModelType from libs.uuid_utils import uuidv7 from .base import TypeBase -from .engine import db from .enums import CredentialSourceType, PaymentStatus, ProviderQuotaType from .types import EnumText, LongText, StringUUID @@ -82,7 +82,8 @@ class Provider(TypeBase): @cached_property def credential(self): if self.credential_id: - return db.session.scalar(select(ProviderCredential).where(ProviderCredential.id == self.credential_id)) + with session_factory.create_session() as session: + return session.scalar(select(ProviderCredential).where(ProviderCredential.id == self.credential_id)) @property def credential_name(self): @@ -145,9 +146,10 @@ class ProviderModel(TypeBase): @cached_property def credential(self): if self.credential_id: - return db.session.scalar( - select(ProviderModelCredential).where(ProviderModelCredential.id == self.credential_id) - ) + with session_factory.create_session() as session: + return session.scalar( + select(ProviderModelCredential).where(ProviderModelCredential.id == self.credential_id) + ) @property def credential_name(self): diff --git a/api/models/workflow.py b/api/models/workflow.py index d127244b0f..7936c06a5a 100644 --- a/api/models/workflow.py +++ b/api/models/workflow.py @@ -50,7 +50,7 @@ from libs.uuid_utils import uuidv7 from ._workflow_exc import NodeNotFoundError, WorkflowDataError if TYPE_CHECKING: - from .model import AppMode, UploadFile + from .model import AppMode from constants import DEFAULT_FILE_NUMBER_LIMITS, HIDDEN_VALUE @@ -63,6 +63,10 @@ from .account import Account from .base import Base, DefaultFieldsDCMixin, TypeBase from .engine import db from .enums import CreatorUserRole, DraftVariableType, ExecutionOffLoadType, WorkflowRunTriggeredFrom + +# UploadFile uses TypeBase while workflow execution offload models use Base, so relationships +# must target the class object directly instead of relying on string lookup across registries. +from .model import UploadFile from .types import EnumText, LongText, StringUUID from .utils.file_input_compat import ( build_file_from_mapping_without_lookup, @@ -1096,8 +1100,6 @@ class WorkflowNodeExecutionModel(Base): # This model is expected to have `offlo @staticmethod def _load_full_content(session: orm.Session, file_id: str, storage: Storage): - from .model import UploadFile - stmt = sa.select(UploadFile).where(UploadFile.id == file_id) file = session.scalars(stmt).first() assert file is not None, f"UploadFile with id {file_id} should exist but not" @@ -1191,10 +1193,11 @@ class WorkflowNodeExecutionOffload(Base): ) file: Mapped[Optional["UploadFile"]] = orm.relationship( + UploadFile, foreign_keys=[file_id], lazy="raise", uselist=False, - primaryjoin="WorkflowNodeExecutionOffload.file_id == UploadFile.id", + primaryjoin=lambda: orm.foreign(WorkflowNodeExecutionOffload.file_id) == UploadFile.id, ) @@ -1565,12 +1568,14 @@ class WorkflowDraftVariable(Base): ), ) - # Relationship to WorkflowDraftVariableFile + # WorkflowDraftVariableFile uses TypeBase while WorkflowDraftVariable uses Base, so the relationship + # must resolve the class object lazily instead of relying on string lookup across registries. variable_file: Mapped[Optional["WorkflowDraftVariableFile"]] = orm.relationship( + lambda: WorkflowDraftVariableFile, foreign_keys=[file_id], lazy="raise", uselist=False, - primaryjoin="WorkflowDraftVariableFile.id == WorkflowDraftVariable.file_id", + primaryjoin=lambda: orm.foreign(WorkflowDraftVariable.file_id) == WorkflowDraftVariableFile.id, ) # Cache for deserialized value @@ -1889,7 +1894,7 @@ class WorkflowDraftVariable(Base): return self.last_edited_at is not None -class WorkflowDraftVariableFile(Base): +class WorkflowDraftVariableFile(TypeBase): """Stores metadata about files associated with large workflow draft variables. This model acts as an intermediary between WorkflowDraftVariable and UploadFile, @@ -1903,18 +1908,7 @@ class WorkflowDraftVariableFile(Base): __tablename__ = "workflow_draft_variable_files" # Primary key - id: Mapped[str] = mapped_column( - StringUUID, - primary_key=True, - default=lambda: str(uuidv7()), - ) - - created_at: Mapped[datetime] = mapped_column( - DateTime, - nullable=False, - default=naive_utc_now, - server_default=func.current_timestamp(), - ) + id: Mapped[str] = mapped_column(StringUUID, primary_key=True, default_factory=lambda: str(uuidv7()), init=False) tenant_id: Mapped[str] = mapped_column( StringUUID, @@ -1966,12 +1960,21 @@ class WorkflowDraftVariableFile(Base): nullable=False, ) - # Relationship to UploadFile + # Rows are created with `upload_file_id`; callers should load this relationship explicitly when needed. upload_file: Mapped["UploadFile"] = orm.relationship( + UploadFile, foreign_keys=[upload_file_id], lazy="raise", + init=False, uselist=False, - primaryjoin="WorkflowDraftVariableFile.upload_file_id == UploadFile.id", + primaryjoin=lambda: orm.foreign(WorkflowDraftVariableFile.upload_file_id) == UploadFile.id, + ) + + created_at: Mapped[datetime] = mapped_column( + DateTime, + nullable=False, + default_factory=naive_utc_now, + server_default=func.current_timestamp(), ) diff --git a/api/pyproject.toml b/api/pyproject.toml index 2587d9e0bf..bcbde0842b 100644 --- a/api/pyproject.toml +++ b/api/pyproject.toml @@ -1,12 +1,12 @@ [project] name = "dify-api" -version = "1.13.3" +version = "1.14.0" requires-python = "~=3.12.0" dependencies = [ # Legacy: mature and widely deployed "bleach>=6.3.0", - "boto3>=1.42.96", + "boto3>=1.43.3", "celery>=5.6.3", "croniter>=6.2.2", "flask>=3.1.3,<4.0.0", @@ -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", @@ -127,7 +127,7 @@ dev = [ "testcontainers>=4.14.2", "types-aiofiles>=25.1.0", "types-beautifulsoup4>=4.12.0", - "types-cachetools>=6.2.0", + "types-cachetools>=7.0.0.20260503", "types-colorama>=0.4.15", "types-defusedxml>=0.7.0", "types-deprecated>=1.3.1", @@ -135,7 +135,7 @@ dev = [ "types-flask-cors>=6.0.0", "types-flask-migrate>=4.1.0", "types-gevent>=26.4.0", - "types-greenlet>=3.4.0", + "types-greenlet>=3.5.0.20260428", "types-html5lib>=1.1.11", "types-markdown>=3.10.2", "types-oauthlib>=3.3.0", @@ -143,7 +143,7 @@ dev = [ "types-olefile>=0.47.0", "types-openpyxl>=3.1.5", "types-pexpect>=4.9.0", - "types-protobuf>=7.34.1", + "types-protobuf>=7.34.1.20260503", "types-psutil>=7.2.2", "types-psycopg2>=2.9.21.20260422", "types-pygments>=2.20.0", @@ -158,11 +158,11 @@ dev = [ "types-tensorflow>=2.18.0.20260408", "types-tqdm>=4.67.3.20260408", "types-ujson>=5.10.0", - "boto3-stubs>=1.42.96", + "boto3-stubs>=1.43.2", "types-jmespath>=1.1.0.20260408", - "hypothesis>=6.152.3", + "hypothesis>=6.152.4", "types_pyOpenSSL>=24.1.0", - "types_cffi>=2.0.0.20260408", + "types_cffi>=2.0.0.20260429", "types_setuptools>=82.0.0.20260408", "pandas-stubs>=3.0.0", "scipy-stubs>=1.17.1.4", @@ -184,7 +184,7 @@ dev = [ ############################################################ storage = [ "azure-storage-blob>=12.28.0", - "bce-python-sdk>=0.9.70", + "bce-python-sdk>=0.9.71", "cos-python-sdk-v5>=1.9.42", "esdk-obs-python>=3.22.2", "google-cloud-storage>=3.10.1", 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/workflow_draft_variable_service.py b/api/services/workflow_draft_variable_service.py index 96f936ff9b..a55448e352 100644 --- a/api/services/workflow_draft_variable_service.py +++ b/api/services/workflow_draft_variable_service.py @@ -1083,10 +1083,9 @@ class DraftVariableSaver: mimetype=content_type, user=self._user, ) - + assert self._user.current_tenant_id # Create WorkflowDraftVariableFile record variable_file = WorkflowDraftVariableFile( - id=uuidv7(), upload_file_id=upload_file.id, size=original_size, length=original_length, @@ -1095,6 +1094,7 @@ class DraftVariableSaver: tenant_id=self._user.current_tenant_id, user_id=self._user.id, ) + variable_file.id = str(uuidv7()) engine = bind = self._session.get_bind() assert isinstance(engine, Engine) with sessionmaker(bind=engine, expire_on_commit=False).begin() as session: 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 35e41035df..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,4 +1,5 @@ -import unittest +from __future__ import annotations + from datetime import UTC, datetime from unittest.mock import patch from uuid import uuid4 @@ -16,7 +17,7 @@ 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/libs/broadcast_channel/redis/test_sharded_channel.py b/api/tests/test_containers_integration_tests/libs/broadcast_channel/redis/test_sharded_channel.py index 43915a204d..84c1d0ca41 100644 --- a/api/tests/test_containers_integration_tests/libs/broadcast_channel/redis/test_sharded_channel.py +++ b/api/tests/test_containers_integration_tests/libs/broadcast_channel/redis/test_sharded_channel.py @@ -8,6 +8,7 @@ Covers real Redis 7+ sharded pub/sub interactions including: - Resource cleanup accounting via PUBSUB SHARDNUMSUB """ +import socket import threading import time import uuid @@ -356,10 +357,17 @@ class TestShardedRedisBroadcastChannelClusterIntegration: def _get_test_topic_name(cls) -> str: return f"test_sharded_cluster_topic_{uuid.uuid4()}" + @staticmethod + def _resolve_announced_ip(host: str) -> str: + """Resolve the container host name to a literal IP accepted by Redis cluster config.""" + return socket.getaddrinfo(host, None, type=socket.SOCK_STREAM)[0][4][0] + @staticmethod def _ensure_single_node_cluster(host: str, port: int) -> None: + """Bootstrap a single-node cluster using a literal IP for Redis node advertisement.""" client = redis.Redis(host=host, port=port, decode_responses=False) - client.config_set("cluster-announce-ip", host) + announced_ip = TestShardedRedisBroadcastChannelClusterIntegration._resolve_announced_ip(host) + client.config_set("cluster-announce-ip", announced_ip) client.config_set("cluster-announce-port", port) slots = client.execute_command("CLUSTER", "SLOTS") if not slots: 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 77ce28b999..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 @@ -3,6 +3,7 @@ from __future__ import annotations import base64 import json from types import SimpleNamespace +from typing import Any, cast from unittest.mock import MagicMock, patch from uuid import uuid4 @@ -17,7 +18,7 @@ from core.trigger.constants import ( ) from extensions.ext_redis import redis_client from graphon.enums import BuiltinNodeTypes -from models import Account, AppMode +from models import Account, App, AppMode from models.model import AppModelConfig, IconType from services import app_dsl_service from services.account_service import AccountService, TenantService @@ -67,6 +68,22 @@ def _pending_yaml_content(version: str = "99.0.0") -> bytes: return (f'version: "{version}"\nkind: app\napp:\n name: Loop Test\n mode: workflow\n').encode() +def _app_stub(**overrides: Any) -> App: + defaults = { + "id": str(uuid4()), + "tenant_id": _DEFAULT_TENANT_ID, + "mode": AppMode.WORKFLOW.value, + "name": "n", + "description": "d", + "icon_type": IconType.EMOJI, + "icon": "i", + "icon_background": "#fff", + "use_icon_as_answer_icon": False, + "app_model_config": None, + } + return cast(App, SimpleNamespace(**(defaults | overrides))) + + class TestAppDslService: """Integration tests for AppDslService using testcontainers.""" @@ -585,7 +602,7 @@ class TestAppDslService: def test_check_dependencies_returns_empty_when_no_redis_data(self, db_session_with_containers): service = AppDslService(db_session_with_containers) - app_model = SimpleNamespace(id=str(uuid4()), tenant_id=_DEFAULT_TENANT_ID) + app_model = _app_stub() result = service.check_dependencies(app_model=app_model) assert result.leaked_dependencies == [] @@ -614,7 +631,7 @@ class TestAppDslService: ) service = AppDslService(db_session_with_containers) - result = service.check_dependencies(app_model=SimpleNamespace(id=app_id, tenant_id=_DEFAULT_TENANT_ID)) + result = service.check_dependencies(app_model=_app_stub(id=app_id)) assert len(result.leaked_dependencies) == 1 def test_check_dependencies_with_real_app(self, db_session_with_containers, mock_external_service_dependencies): @@ -656,9 +673,7 @@ class TestAppDslService: lambda _m: SimpleNamespace(kind="conv"), ) - app = SimpleNamespace( - id=str(uuid4()), - tenant_id=_DEFAULT_TENANT_ID, + app = _app_stub( mode=AppMode.WORKFLOW.value, name="old", description="old-desc", @@ -667,7 +682,6 @@ class TestAppDslService: icon_background="#111111", updated_by=None, updated_at=None, - app_model_config=None, ) service = AppDslService(db_session_with_containers) updated = service._create_or_update_app( @@ -745,15 +759,7 @@ class TestAppDslService: service = AppDslService(db_session_with_containers) with pytest.raises(ValueError, match="Missing workflow data"): service._create_or_update_app( - app=SimpleNamespace( - id=str(uuid4()), - tenant_id=_DEFAULT_TENANT_ID, - mode=AppMode.WORKFLOW.value, - name="n", - description="d", - icon_background="#fff", - app_model_config=None, - ), + app=_app_stub(mode=AppMode.WORKFLOW.value), data={"app": {"mode": AppMode.WORKFLOW.value}}, account=_account_mock(), ) @@ -762,15 +768,7 @@ class TestAppDslService: service = AppDslService(db_session_with_containers) with pytest.raises(ValueError, match="Missing model_config"): service._create_or_update_app( - app=SimpleNamespace( - id=str(uuid4()), - tenant_id=_DEFAULT_TENANT_ID, - mode=AppMode.CHAT.value, - name="n", - description="d", - icon_background="#fff", - app_model_config=None, - ), + app=_app_stub(mode=AppMode.CHAT.value), data={"app": {"mode": AppMode.CHAT.value}}, account=_account_mock(), ) @@ -799,15 +797,7 @@ class TestAppDslService: service = AppDslService(db_session_with_containers) with pytest.raises(ValueError, match="Invalid app mode"): service._create_or_update_app( - app=SimpleNamespace( - id=str(uuid4()), - tenant_id=_DEFAULT_TENANT_ID, - mode=AppMode.RAG_PIPELINE.value, - name="n", - description="d", - icon_background="#fff", - app_model_config=None, - ), + app=_app_stub(mode=AppMode.RAG_PIPELINE.value), data={"app": {"mode": AppMode.RAG_PIPELINE.value}}, account=_account_mock(), ) @@ -828,29 +818,16 @@ class TestAppDslService: lambda *_args, **_kwargs: model_calls.append(True), ) - workflow_app = SimpleNamespace( + workflow_app = _app_stub( mode=AppMode.WORKFLOW.value, - tenant_id=_DEFAULT_TENANT_ID, - name="n", - icon="i", icon_type="emoji", - icon_background="#fff", - description="d", - use_icon_as_answer_icon=False, - app_model_config=None, ) AppDslService.export_dsl(workflow_app) assert workflow_calls == [True] - chat_app = SimpleNamespace( + chat_app = _app_stub( mode=AppMode.CHAT.value, - tenant_id=_DEFAULT_TENANT_ID, - name="n", - icon="i", icon_type="emoji", - icon_background="#fff", - description="d", - use_icon_as_answer_icon=False, app_model_config=SimpleNamespace(to_dict=lambda: {"agent_mode": {"tools": []}}), ) AppDslService.export_dsl(chat_app) @@ -863,16 +840,14 @@ class TestAppDslService: lambda **_kwargs: None, ) - emoji_app = SimpleNamespace( + emoji_app = _app_stub( mode=AppMode.WORKFLOW.value, - tenant_id=_DEFAULT_TENANT_ID, name="Emoji App", icon="🎨", icon_type=IconType.EMOJI, icon_background="#FF5733", description="App with emoji icon", use_icon_as_answer_icon=True, - app_model_config=None, ) yaml_output = AppDslService.export_dsl(emoji_app) data = yaml.safe_load(yaml_output) @@ -880,16 +855,14 @@ class TestAppDslService: assert data["app"]["icon_type"] == "emoji" assert data["app"]["icon_background"] == "#FF5733" - image_app = SimpleNamespace( + image_app = _app_stub( mode=AppMode.WORKFLOW.value, - tenant_id=_DEFAULT_TENANT_ID, name="Image App", icon="https://example.com/icon.png", icon_type=IconType.IMAGE, icon_background="#FFEAD5", description="App with image icon", use_icon_as_answer_icon=False, - app_model_config=None, ) yaml_output = AppDslService.export_dsl(image_app) data = yaml.safe_load(yaml_output) @@ -1106,7 +1079,7 @@ class TestAppDslService: export_data: dict = {} AppDslService._append_workflow_export_data( export_data=export_data, - app_model=SimpleNamespace(tenant_id=_DEFAULT_TENANT_ID), + app_model=_app_stub(), include_secret=False, workflow_id=None, ) @@ -1132,7 +1105,7 @@ class TestAppDslService: with pytest.raises(ValueError, match="Missing draft workflow configuration"): AppDslService._append_workflow_export_data( export_data={}, - app_model=SimpleNamespace(tenant_id=_DEFAULT_TENANT_ID), + app_model=_app_stub(), include_secret=False, workflow_id=None, ) @@ -1160,7 +1133,7 @@ class TestAppDslService: monkeypatch.setattr(app_dsl_service, "jsonable_encoder", lambda x: x) app_model_config = SimpleNamespace(to_dict=lambda: {"agent_mode": {"tools": [{"credential_id": "secret"}]}}) - app_model = SimpleNamespace(tenant_id=_DEFAULT_TENANT_ID, app_model_config=app_model_config) + app_model = _app_stub(app_model_config=app_model_config) export_data: dict = {} AppDslService._append_model_config_export_data(export_data, app_model) @@ -1169,7 +1142,7 @@ class TestAppDslService: def test_append_model_config_export_data_requires_app_config(self): with pytest.raises(ValueError, match="Missing app configuration"): - AppDslService._append_model_config_export_data({}, SimpleNamespace(app_model_config=None)) + AppDslService._append_model_config_export_data({}, _app_stub(app_model_config=None)) # ── Dependency Extraction ───────────────────────────────────────── diff --git a/api/tests/unit_tests/controllers/console/app/test_app_response_models.py b/api/tests/unit_tests/controllers/console/app/test_app_response_models.py index 35d07a987d..80e7c41a9e 100644 --- a/api/tests/unit_tests/controllers/console/app/test_app_response_models.py +++ b/api/tests/unit_tests/controllers/console/app/test_app_response_models.py @@ -10,6 +10,8 @@ from typing import Any import pytest from flask.views import MethodView +from pydantic import ValidationError +from werkzeug.datastructures import MultiDict # kombu references MethodView as a global when importing celery/kombu pools. if not hasattr(builtins, "MethodView"): @@ -174,6 +176,101 @@ def _dummy_workflow(): ) +def test_app_list_query_normalizes_orpc_bracket_tag_ids(app_module): + first_tag_id = "8c4ef3d1-58a1-4d94-8a1c-1c171d889e08" + second_tag_id = "3c39395b-6d1f-4030-8b17-eaa7cc85221c" + query_args = MultiDict( + [ + ("page", "1"), + ("limit", "30"), + ("tag_ids[1]", second_tag_id), + ("tag_ids[0]", first_tag_id), + ] + ) + + normalized = app_module._normalize_app_list_query_args(query_args) + query = app_module.AppListQuery.model_validate(normalized) + + assert query.tag_ids == [first_tag_id, second_tag_id] + + +def test_app_list_query_preserves_regular_query_params(app_module): + query_args = MultiDict( + [ + ("page", "2"), + ("limit", "50"), + ("mode", "chat"), + ("name", "Sales Copilot"), + ("is_created_by_me", "true"), + ] + ) + + normalized = app_module._normalize_app_list_query_args(query_args) + query = app_module.AppListQuery.model_validate(normalized) + + assert normalized == { + "page": "2", + "limit": "50", + "mode": "chat", + "name": "Sales Copilot", + "is_created_by_me": "true", + } + assert query.page == 2 + assert query.limit == 50 + assert query.mode == "chat" + assert query.name == "Sales Copilot" + assert query.is_created_by_me is True + assert query.tag_ids is None + + +def test_app_list_query_normalizes_empty_bracket_tag_ids_to_none(app_module): + query_args = MultiDict( + [ + ("tag_ids[0]", ""), + ("tag_ids[1]", " "), + ] + ) + + normalized = app_module._normalize_app_list_query_args(query_args) + query = app_module.AppListQuery.model_validate(normalized) + + assert normalized == {"tag_ids": ["", " "]} + assert query.tag_ids is None + + +def test_app_list_query_rejects_invalid_bracket_tag_id(app_module): + normalized = app_module._normalize_app_list_query_args(MultiDict([("tag_ids[0]", "not-a-uuid")])) + + with pytest.raises(ValidationError): + app_module.AppListQuery.model_validate(normalized) + + +def test_app_list_query_sorts_bracket_tag_ids_by_index(app_module): + first_tag_id = "8c4ef3d1-58a1-4d94-8a1c-1c171d889e08" + second_tag_id = "3c39395b-6d1f-4030-8b17-eaa7cc85221c" + third_tag_id = "9d5ec0f7-4f2b-4e7f-9c13-1e7a034d0eb1" + query_args = MultiDict( + [ + ("tag_ids[2]", third_tag_id), + ("tag_ids[1]", second_tag_id), + ("tag_ids[0]", first_tag_id), + ] + ) + + normalized = app_module._normalize_app_list_query_args(query_args) + query = app_module.AppListQuery.model_validate(normalized) + + assert query.tag_ids == [first_tag_id, second_tag_id, third_tag_id] + + +def test_app_list_query_rejects_flat_tag_ids(app_module): + tag_id = "8c4ef3d1-58a1-4d94-8a1c-1c171d889e08" + normalized = app_module._normalize_app_list_query_args(MultiDict([("tag_ids", tag_id)])) + + with pytest.raises(ValidationError): + app_module.AppListQuery.model_validate(normalized) + + def test_app_partial_serialization_uses_aliases(app_models): AppPartial = app_models.AppPartial created_at = _ts() 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 e91c0a0597..7c470eb9a8 100644 --- a/api/tests/unit_tests/controllers/console/app/test_workflow.py +++ b/api/tests/unit_tests/controllers/console/app/test_workflow.py @@ -363,7 +363,8 @@ def test_workflow_online_users_filters_inaccessible_workflow(app, monkeypatch: p ) monkeypatch.setattr(workflow_module.file_helpers, "get_signed_file_url", sign_avatar) - workflow_module.redis_client.hgetall.side_effect = lambda key: ( + redis_pipeline = Mock() + redis_pipeline.execute.return_value = [ { b"sid-1": json.dumps( { @@ -374,16 +375,16 @@ def test_workflow_online_users_filters_inaccessible_workflow(app, monkeypatch: p } ) } - if key == f"{workflow_module.WORKFLOW_ONLINE_USERS_PREFIX}{app_id_1}" - else {} - ) + ] + workflow_module.redis_client.pipeline.return_value = redis_pipeline api = workflow_module.WorkflowOnlineUsersApi() - handler = _unwrap(api.get) + handler = _unwrap(api.post) with app.test_request_context( - f"/apps/workflows/online-users?app_ids={app_id_1},{app_id_2}", - method="GET", + "/apps/workflows/online-users", + method="POST", + json={"app_ids": [app_id_1, app_id_2]}, ): response = handler(api) @@ -402,12 +403,43 @@ def test_workflow_online_users_filters_inaccessible_workflow(app, monkeypatch: p } ] } - workflow_module.redis_client.hgetall.assert_called_once_with( - f"{workflow_module.WORKFLOW_ONLINE_USERS_PREFIX}{app_id_1}" - ) + workflow_module.redis_client.pipeline.assert_called_once_with(transaction=False) + redis_pipeline.hgetall.assert_called_once_with(f"{workflow_module.WORKFLOW_ONLINE_USERS_PREFIX}{app_id_1}") + redis_pipeline.execute.assert_called_once_with() sign_avatar.assert_called_once_with("avatar-file-id") +def test_workflow_online_users_batches_redis_reads(app, monkeypatch: pytest.MonkeyPatch) -> None: + app_ids = [f"wf-{index}" for index in range(workflow_module.WORKFLOW_ONLINE_USERS_REDIS_BATCH_SIZE + 1)] + monkeypatch.setattr(workflow_module, "current_account_with_tenant", lambda: (SimpleNamespace(), "tenant-1")) + monkeypatch.setattr( + workflow_module, + "WorkflowService", + lambda: SimpleNamespace(get_accessible_app_ids=lambda app_ids, tenant_id: set(app_ids)), + ) + + first_pipeline = Mock() + first_pipeline.execute.return_value = [{} for _ in range(workflow_module.WORKFLOW_ONLINE_USERS_REDIS_BATCH_SIZE)] + second_pipeline = Mock() + second_pipeline.execute.return_value = [{}] + workflow_module.redis_client.pipeline.side_effect = [first_pipeline, second_pipeline] + + api = workflow_module.WorkflowOnlineUsersApi() + handler = _unwrap(api.post) + + with app.test_request_context( + "/apps/workflows/online-users", + method="POST", + json={"app_ids": app_ids}, + ): + response = handler(api) + + assert len(response["data"]) == len(app_ids) + assert workflow_module.redis_client.pipeline.call_count == 2 + assert first_pipeline.hgetall.call_count == workflow_module.WORKFLOW_ONLINE_USERS_REDIS_BATCH_SIZE + assert second_pipeline.hgetall.call_count == 1 + + def test_workflow_online_users_rejects_excessive_workflow_ids(app, monkeypatch: pytest.MonkeyPatch) -> None: monkeypatch.setattr(workflow_module, "current_account_with_tenant", lambda: (SimpleNamespace(), "tenant-1")) accessible_app_ids = Mock(return_value=set()) @@ -417,14 +449,15 @@ def test_workflow_online_users_rejects_excessive_workflow_ids(app, monkeypatch: lambda: SimpleNamespace(get_accessible_app_ids=accessible_app_ids), ) - excessive_ids = ",".join(f"wf-{index}" for index in range(workflow_module.MAX_WORKFLOW_ONLINE_USERS_QUERY_IDS + 1)) + excessive_ids = [f"wf-{index}" for index in range(workflow_module.MAX_WORKFLOW_ONLINE_USERS_REQUEST_IDS + 1)] api = workflow_module.WorkflowOnlineUsersApi() - handler = _unwrap(api.get) + handler = _unwrap(api.post) with app.test_request_context( - f"/apps/workflows/online-users?app_ids={excessive_ids}", - method="GET", + "/apps/workflows/online-users", + method="POST", + json={"app_ids": excessive_ids}, ): with pytest.raises(HTTPException) as exc: handler(api) 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 22b80b748e..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 @@ -1,7 +1,7 @@ import uuid from collections import OrderedDict from typing import Any, NamedTuple -from unittest.mock import MagicMock, patch +from unittest.mock import patch import pytest from flask_restx import marshal @@ -29,15 +29,18 @@ class TestWorkflowDraftVariableFields: def test_serialize_full_content(self): """Test that _serialize_full_content uses pre-loaded relationships.""" # Create mock objects with relationships pre-loaded - mock_variable_file = MagicMock(spec=WorkflowDraftVariableFile) - mock_variable_file.size = 100000 - mock_variable_file.length = 50 - mock_variable_file.value_type = SegmentType.OBJECT - mock_variable_file.upload_file_id = "test-upload-file-id" - - mock_variable = MagicMock(spec=WorkflowDraftVariable) - mock_variable.file_id = "test-file-id" - mock_variable.variable_file = mock_variable_file + mock_variable = WorkflowDraftVariable( + file_id="test-file-id", + variable_file=WorkflowDraftVariableFile( + size=100000, + length=50, + value_type=SegmentType.OBJECT, + upload_file_id="test-upload-file-id", + tenant_id=str(uuid.uuid4()), + app_id=str(uuid.uuid4()), + user_id=str(uuid.uuid4()), + ), + ) # Mock the file helpers with patch("controllers.console.app.workflow_draft_variable.file_helpers", autospec=True) as mock_file_helpers: @@ -84,7 +87,7 @@ class TestWorkflowDraftVariableFields: expected_without_value: OrderedDict[str, Any] = OrderedDict( { - "id": str(conv_var.id), + "id": conv_var.id, "type": conv_var.get_variable_type().value, "name": "conv_var", "description": "", @@ -117,7 +120,7 @@ class TestWorkflowDraftVariableFields: expected_without_value = OrderedDict( { - "id": str(sys_var.id), + "id": sys_var.id, "type": sys_var.get_variable_type().value, "name": "sys_var", "description": "", @@ -149,7 +152,7 @@ class TestWorkflowDraftVariableFields: expected_without_value: OrderedDict[str, Any] = OrderedDict( { - "id": str(node_var.id), + "id": node_var.id, "type": node_var.get_variable_type().value, "name": "node_var", "description": "", @@ -180,19 +183,22 @@ class TestWorkflowDraftVariableFields: node_var.id = str(uuid.uuid4()) node_var.last_edited_at = naive_utc_now() variable_file = WorkflowDraftVariableFile( - id=str(uuidv7()), upload_file_id=str(uuid.uuid4()), size=1024, length=10, value_type=SegmentType.ARRAY_STRING, + tenant_id=str(uuidv7()), + app_id=str(uuidv7()), + user_id=str(uuidv7()), ) + variable_file.id = str(uuidv7()) node_var.variable_file = variable_file node_var.file_id = variable_file.id expected_without_value: OrderedDict[str, Any] = OrderedDict( { - "id": str(node_var.id), - "type": node_var.get_variable_type().value, + "id": node_var.id, + "type": node_var.get_variable_type(), "name": "node_var", "description": "", "selector": ["test_node", "node_var"], @@ -235,7 +241,7 @@ class TestWorkflowDraftVariableList: node_var.id = str(uuid.uuid4()) node_var_dict = OrderedDict( { - "id": str(node_var.id), + "id": node_var.id, "type": node_var.get_variable_type().value, "name": "test_var", "description": "", diff --git a/api/tests/unit_tests/controllers/console/datasets/test_hit_testing_base.py b/api/tests/unit_tests/controllers/console/datasets/test_hit_testing_base.py index e4acd91b76..d29b34beb2 100644 --- a/api/tests/unit_tests/controllers/console/datasets/test_hit_testing_base.py +++ b/api/tests/unit_tests/controllers/console/datasets/test_hit_testing_base.py @@ -134,6 +134,42 @@ class TestPerformHitTesting: assert result["query"] == "hello" assert result["records"] == [] + def test_success_normalizes_legacy_query_and_nullable_list_fields(self, dataset): + response = { + "query": {"content": "hello"}, + "records": [ + { + "segment": {"id": "segment-1", "keywords": None}, + "child_chunks": None, + "files": None, + "score": 0.8, + } + ], + } + + with ( + patch.object( + HitTestingService, + "retrieve", + return_value=response, + ), + patch( + "controllers.console.datasets.hit_testing_base.marshal", + return_value=response["records"], + ), + ): + result = DatasetsHitTestingBase.perform_hit_testing(dataset, {"query": "hello"}) + + assert result["query"] == "hello" + assert result["records"] == [ + { + "segment": {"id": "segment-1", "keywords": []}, + "child_chunks": [], + "files": [], + "score": 0.8, + } + ] + def test_index_not_initialized(self, dataset): with patch.object( HitTestingService, 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/service_api/dataset/test_document.py b/api/tests/unit_tests/controllers/service_api/dataset/test_document.py index 1b391e67ec..230c51161f 100644 --- a/api/tests/unit_tests/controllers/service_api/dataset/test_document.py +++ b/api/tests/unit_tests/controllers/service_api/dataset/test_document.py @@ -23,6 +23,7 @@ from werkzeug.exceptions import Forbidden, NotFound from controllers.service_api.dataset.document import ( DeprecatedDocumentAddByTextApi, + DeprecatedDocumentUpdateByFileApi, DeprecatedDocumentUpdateByTextApi, DocumentAddByFileApi, DocumentAddByTextApi, @@ -32,7 +33,6 @@ from controllers.service_api.dataset.document import ( DocumentListQuery, DocumentTextCreatePayload, DocumentTextUpdate, - DocumentUpdateByFileApi, DocumentUpdateByTextApi, InvalidMetadataError, ) @@ -1095,8 +1095,8 @@ class TestArchivedDocumentImmutableError: assert error.code == 403 -class TestDocumentTextRouteDeprecation: - """Test that legacy underscore text routes stay marked deprecated.""" +class TestDocumentRouteDeprecation: + """Test that legacy document routes stay marked deprecated.""" def test_create_by_text_legacy_alias_is_deprecated(self): """Ensure only the legacy create-by-text alias is marked deprecated.""" @@ -1108,10 +1108,15 @@ class TestDocumentTextRouteDeprecation: assert DeprecatedDocumentUpdateByTextApi.post.__apidoc__["deprecated"] is True assert DocumentUpdateByTextApi.post.__apidoc__.get("deprecated") is not True + def test_update_by_file_legacy_aliases_are_deprecated(self): + """Ensure only the legacy file-update aliases are marked deprecated.""" + assert DeprecatedDocumentUpdateByFileApi.post.__apidoc__["deprecated"] is True + assert DocumentApi.patch.__apidoc__.get("deprecated") is not True + # ============================================================================= # Endpoint tests for DocumentUpdateByTextApi, DocumentAddByFileApi, -# DocumentUpdateByFileApi. +# and the canonical/deprecated document file update routes. # # These controllers use ``@cloud_edition_billing_resource_check`` (does NOT # preserve ``__wrapped__``) and ``@cloud_edition_billing_rate_limit_check`` @@ -1359,13 +1364,52 @@ class TestDocumentAddByFileApiPost: api.post(tenant_id=mock_tenant.id, dataset_id=mock_dataset.id) -class TestDocumentUpdateByFileApiPost: - """Test suite for DocumentUpdateByFileApi.post() endpoint. +class TestDocumentUpdateByFileApiPatch: + """Test suite for the canonical document file update endpoint. - ``post`` is wrapped by ``@cloud_edition_billing_resource_check`` and + ``patch`` is wrapped by ``@cloud_edition_billing_resource_check`` and ``@cloud_edition_billing_rate_limit_check``. """ + @pytest.mark.parametrize("route_name", ["update_by_file", "update-by-file"]) + @patch("controllers.service_api.dataset.document._update_document_by_file") + @patch("controllers.service_api.wraps.FeatureService") + @patch("controllers.service_api.wraps.validate_and_get_api_token") + def test_update_by_file_deprecated_aliases_delegate_to_shared_handler( + self, + mock_validate_token, + mock_feature_svc, + mock_update_document_by_file, + route_name, + app, + mock_tenant, + mock_dataset, + ): + """Test legacy POST aliases still dispatch while marked deprecated.""" + _setup_billing_mocks(mock_validate_token, mock_feature_svc, mock_tenant.id) + mock_update_document_by_file.return_value = ({"document": {"id": "doc-1"}, "batch": "batch-1"}, 200) + + doc_id = str(uuid.uuid4()) + with app.test_request_context( + f"/datasets/{mock_dataset.id}/documents/{doc_id}/{route_name}", + method="POST", + headers={"Authorization": "Bearer test_token"}, + ): + api = DeprecatedDocumentUpdateByFileApi() + response, status = api.post( + tenant_id=mock_tenant.id, + dataset_id=mock_dataset.id, + document_id=doc_id, + ) + + assert status == 200 + assert response["batch"] == "batch-1" + mock_update_document_by_file.assert_called_once_with( + tenant_id=mock_tenant.id, + dataset_id=mock_dataset.id, + document_id=doc_id, + ) + @patch("controllers.service_api.dataset.document.db") @patch("controllers.service_api.wraps.FeatureService") @patch("controllers.service_api.wraps.validate_and_get_api_token") @@ -1387,15 +1431,15 @@ class TestDocumentUpdateByFileApiPost: doc_id = str(uuid.uuid4()) data = {"file": (BytesIO(b"content"), "test.pdf", "application/pdf")} with app.test_request_context( - f"/datasets/{mock_dataset.id}/documents/{doc_id}/update_by_file", - method="POST", + f"/datasets/{mock_dataset.id}/documents/{doc_id}", + method="PATCH", content_type="multipart/form-data", data=data, headers={"Authorization": "Bearer test_token"}, ): - api = DocumentUpdateByFileApi() + api = DocumentApi() with pytest.raises(ValueError, match="Dataset does not exist"): - api.post( + api.patch( tenant_id=mock_tenant.id, dataset_id=mock_dataset.id, document_id=doc_id, @@ -1423,15 +1467,15 @@ class TestDocumentUpdateByFileApiPost: doc_id = str(uuid.uuid4()) data = {"file": (BytesIO(b"content"), "test.pdf", "application/pdf")} with app.test_request_context( - f"/datasets/{mock_dataset.id}/documents/{doc_id}/update_by_file", - method="POST", + f"/datasets/{mock_dataset.id}/documents/{doc_id}", + method="PATCH", content_type="multipart/form-data", data=data, headers={"Authorization": "Bearer test_token"}, ): - api = DocumentUpdateByFileApi() + api = DocumentApi() with pytest.raises(ValueError, match="External datasets"): - api.post( + api.patch( tenant_id=mock_tenant.id, dataset_id=mock_dataset.id, document_id=doc_id, @@ -1482,14 +1526,14 @@ class TestDocumentUpdateByFileApiPost: doc_id = str(uuid.uuid4()) data = {"file": (BytesIO(b"file content"), "test.pdf", "application/pdf")} with app.test_request_context( - f"/datasets/{mock_dataset.id}/documents/{doc_id}/update_by_file", - method="POST", + f"/datasets/{mock_dataset.id}/documents/{doc_id}", + method="PATCH", content_type="multipart/form-data", data=data, headers={"Authorization": "Bearer test_token"}, ): - api = DocumentUpdateByFileApi() - response, status = api.post( + api = DocumentApi() + response, status = api.patch( tenant_id=mock_tenant.id, dataset_id=mock_dataset.id, document_id=doc_id, 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 95c2f5cf92..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,113 @@ 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") + @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_normalizes_legacy_query_and_nullable_list_fields( + self, + mock_current_user, + mock_dataset_svc, + mock_hit_svc, + mock_marshal, + mock_ns, + app, + ): + """Test service API normalizes legacy query shape and nullable list fields.""" + 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": {"content": "legacy query"}, "records": ["placeholder"]} + mock_hit_svc.hit_testing_args_check.return_value = None + mock_marshal.return_value = [ + { + "segment": {"id": "segment-1", "keywords": None}, + "child_chunks": None, + "files": None, + "score": 0.9, + } + ] + + mock_ns.payload = {"query": "legacy query"} + + with app.test_request_context(): + api = HitTestingApi() + response = HitTestingApi.post.__wrapped__(api, tenant_id, dataset_id) + + assert response["query"] == "legacy query" + assert response["records"] == [ + { + "segment": {"id": "segment-1", "keywords": []}, + "child_chunks": [], + "files": [], + "score": 0.9, + } + ] + @patch("controllers.service_api.dataset.hit_testing.service_api_ns") @patch("controllers.console.datasets.hit_testing_base.DatasetService") @patch("controllers.console.datasets.hit_testing_base.current_user", new_callable=lambda: Mock(spec=Account)) diff --git a/api/tests/unit_tests/core/plugin/utils/test_http_parser.py b/api/tests/unit_tests/core/plugin/utils/test_http_parser.py index 71144695bc..e0419d3266 100644 --- a/api/tests/unit_tests/core/plugin/utils/test_http_parser.py +++ b/api/tests/unit_tests/core/plugin/utils/test_http_parser.py @@ -323,6 +323,50 @@ class TestDeserializeResponse: with pytest.raises(ValueError, match="Invalid status line"): deserialize_response(raw_data) + def test_deserialize_response_preserves_duplicate_set_cookie_headers(self): + # Regression test for https://github.com/langgenius/dify/issues/35722 + # Multiple Set-Cookie headers must be preserved per RFC 9110, not collapsed + # into a single value by dict-style assignment. + raw_data = ( + b"HTTP/1.1 200 OK\r\n" + b"Content-Type: text/plain\r\n" + b"Set-Cookie: session=abc; Path=/; HttpOnly\r\n" + b"Set-Cookie: tracking=xyz; Path=/; Secure\r\n" + b"\r\n" + b"ok" + ) + + response = deserialize_response(raw_data) + + cookies = response.headers.getlist("Set-Cookie") + assert cookies == [ + "session=abc; Path=/; HttpOnly", + "tracking=xyz; Path=/; Secure", + ] + # Single-valued headers should still be readable normally. + assert response.headers.get("Content-Type") == "text/plain" + + def test_deserialize_response_preserves_duplicate_generic_headers(self): + # Any header name (not just Set-Cookie) may legitimately repeat; verify the + # parser preserves all values rather than overwriting earlier ones. + raw_data = b"HTTP/1.1 200 OK\r\nX-Custom: first\r\nX-Custom: second\r\n\r\n" + + response = deserialize_response(raw_data) + + assert response.headers.getlist("X-Custom") == ["first", "second"] + + def test_deserialize_response_does_not_inject_default_content_type(self): + # Flask's Response constructor adds a default Content-Type header. When the + # raw response has no Content-Type, the parsed response should not silently + # gain one from the framework default. + raw_data = b"HTTP/1.1 204 No Content\r\nX-Trace-Id: abc\r\n\r\n" + + response = deserialize_response(raw_data) + + header_names = [name for name, _ in response.headers.items()] + assert "Content-Type" not in header_names + assert response.headers.get("X-Trace-Id") == "abc" + def test_roundtrip_response(self): # Test that serialize -> deserialize produces equivalent response original_response = Response( 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/extractor/test_word_extractor.py b/api/tests/unit_tests/core/rag/extractor/test_word_extractor.py index 0220fb6d4a..b9f2449cfb 100644 --- a/api/tests/unit_tests/core/rag/extractor/test_word_extractor.py +++ b/api/tests/unit_tests/core/rag/extractor/test_word_extractor.py @@ -1,14 +1,12 @@ """Primarily used for testing merged cell scenarios""" -import gc import io import os import tempfile -import warnings from collections import UserDict from pathlib import Path from types import SimpleNamespace -from unittest.mock import AsyncMock, MagicMock +from unittest.mock import MagicMock import pytest from docx import Document @@ -377,23 +375,21 @@ def test_close_is_idempotent(): extractor.temp_file.close.assert_called_once() -def test_close_handles_async_close_mock(): +async def _async_close() -> None: + return None + + +def test_close_closes_awaitable_close_result(): extractor = object.__new__(WordExtractor) extractor._closed = False extractor.temp_file = MagicMock() - extractor.temp_file.close = AsyncMock() + close_result = _async_close() + extractor.temp_file.close = MagicMock(return_value=close_result) - with warnings.catch_warnings(record=True) as caught: - warnings.simplefilter("always") - extractor.close() - gc.collect() + extractor.close() + assert close_result.cr_frame is None extractor.temp_file.close.assert_called_once() - assert not [ - warning - for warning in caught - if issubclass(warning.category, RuntimeWarning) and "AsyncMockMixin._execute_mock_call" in str(warning.message) - ] def test_extract_images_handles_invalid_external_cases(monkeypatch): diff --git a/api/tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py b/api/tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py index fd607210f1..b556ddf528 100644 --- a/api/tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py +++ b/api/tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py @@ -1106,11 +1106,11 @@ class TestRetrievalService: def test_deduplicate_documents_non_dify_provider(self): """ - Test deduplication with non-dify provider documents. + Test deduplication with non-dify provider documents that have no doc_id. Verifies: - - External provider documents use content-based deduplication - - Different providers are handled correctly + - External provider documents without doc_id use content-based deduplication + - Identical content from the same provider is collapsed to one result """ # Arrange doc1 = Document( @@ -1131,7 +1131,96 @@ class TestRetrievalService: # Assert # External documents without doc_id should use content-based dedup - assert len(result) >= 1 + assert len(result) == 1 + + def test_deduplicate_documents_non_dify_provider_with_doc_id_different_sources(self): + """ + Regression test for issue #35707. + + Two chunks from different source documents share identical text content but carry + different doc_ids. Before the fix, non-dify providers were forced into content-based + deduplication and the second chunk was silently dropped. After the fix, doc_id is used + as the dedup key for any provider that exposes it, so both chunks must be retained. + + Verifies: + - Non-dify provider documents with different doc_ids are NOT deduplicated even when + their page_content is identical. + """ + # Arrange — same content, different doc_ids, non-dify provider (e.g. Weaviate / Qdrant) + doc_a = Document( + page_content="Shared identical content", + metadata={"doc_id": "doc-from-file-a", "score": 0.85}, + provider="weaviate", + ) + doc_b = Document( + page_content="Shared identical content", + metadata={"doc_id": "doc-from-file-b", "score": 0.82}, + provider="weaviate", + ) + + # Act + result = RetrievalService._deduplicate_documents([doc_a, doc_b]) + + # Assert — both documents must be kept; losing either silently drops a source citation + assert len(result) == 2 + doc_ids = {doc.metadata["doc_id"] for doc in result} + assert doc_ids == {"doc-from-file-a", "doc-from-file-b"} + + def test_deduplicate_documents_non_dify_provider_with_same_doc_id(self): + """ + Test that non-dify provider documents sharing the same doc_id are deduplicated by + doc_id key (not by content), and the higher-scored duplicate is retained. + + Verifies: + - doc_id-based deduplication now applies to any provider, not only "dify" + - The document with the highest score wins when doc_ids collide + """ + # Arrange + doc_low = Document( + page_content="Content A", + metadata={"doc_id": "chunk-1", "score": 0.5}, + provider="qdrant", + ) + doc_high = Document( + page_content="Content A", + metadata={"doc_id": "chunk-1", "score": 0.9}, + provider="qdrant", + ) + + # Act + result = RetrievalService._deduplicate_documents([doc_low, doc_high]) + + # Assert + assert len(result) == 1 + assert result[0].metadata["score"] == 0.9 + + def test_deduplicate_documents_dify_provider_without_doc_id_falls_back_to_content(self): + """ + Test that a dify provider document without doc_id still falls back to content-based + deduplication (no regression from original behaviour). + + Verifies: + - Absence of doc_id triggers content-based dedup regardless of provider + - First occurrence is kept when content is identical + """ + # Arrange — dify docs with no doc_id, same content + doc1 = Document( + page_content="Same content", + metadata={"score": 0.8}, + provider="dify", + ) + doc2 = Document( + page_content="Same content", + metadata={"score": 0.9}, + provider="dify", + ) + + # Act + result = RetrievalService._deduplicate_documents([doc1, doc2]) + + # Assert — collapsed to one; first-seen wins (no score comparison in content branch) + assert len(result) == 1 + assert result[0].metadata["score"] == 0.8 # ==================== Metadata Filtering Tests ==================== diff --git a/api/tests/unit_tests/core/test_provider_manager.py b/api/tests/unit_tests/core/test_provider_manager.py index a5a542c94f..02f12fb3b4 100644 --- a/api/tests/unit_tests/core/test_provider_manager.py +++ b/api/tests/unit_tests/core/test_provider_manager.py @@ -570,8 +570,7 @@ def test_get_all_providers_normalizes_provider_names_with_model_provider_id() -> session.scalars.return_value = [openai_provider, gemini_provider] with ( - patch("core.provider_manager.db", SimpleNamespace(engine=object())), - patch("core.provider_manager.Session", return_value=_build_session_context(session)), + patch("core.provider_manager.session_factory.create_session", return_value=_build_session_context(session)), ): result = ProviderManager._get_all_providers("tenant-id") @@ -595,8 +594,7 @@ def test_provider_grouping_helpers_group_records_by_provider_name(method_name: s session.scalars.return_value = [openai_primary, openai_secondary, anthropic_record] with ( - patch("core.provider_manager.db", SimpleNamespace(engine=object())), - patch("core.provider_manager.Session", return_value=_build_session_context(session)), + patch("core.provider_manager.session_factory.create_session", return_value=_build_session_context(session)), ): result = getattr(ProviderManager, method_name)("tenant-id") @@ -611,8 +609,7 @@ def test_get_all_preferred_model_providers_returns_mapping_by_provider_name() -> session.scalars.return_value = [openai_preference, anthropic_preference] with ( - patch("core.provider_manager.db", SimpleNamespace(engine=object())), - patch("core.provider_manager.Session", return_value=_build_session_context(session)), + patch("core.provider_manager.session_factory.create_session", return_value=_build_session_context(session)), ): result = ProviderManager._get_all_preferred_model_providers("tenant-id") @@ -626,13 +623,13 @@ def test_get_all_provider_load_balancing_configs_returns_empty_when_cached_flag_ with ( patch("core.provider_manager.redis_client.get", return_value=b"False"), patch("core.provider_manager.FeatureService.get_features") as mock_get_features, - patch("core.provider_manager.Session") as mock_session_cls, + patch("core.provider_manager.session_factory.create_session") as mock_create_session, ): result = ProviderManager._get_all_provider_load_balancing_configs("tenant-id") assert result == {} mock_get_features.assert_not_called() - mock_session_cls.assert_not_called() + mock_create_session.assert_not_called() def test_get_all_provider_load_balancing_configs_populates_cache_and_groups_configs() -> None: @@ -642,14 +639,13 @@ def test_get_all_provider_load_balancing_configs_populates_cache_and_groups_conf session.scalars.return_value = [openai_config, anthropic_config] with ( - patch("core.provider_manager.db", SimpleNamespace(engine=object())), patch("core.provider_manager.redis_client.get", return_value=None), patch("core.provider_manager.redis_client.setex") as mock_setex, patch( "core.provider_manager.FeatureService.get_features", return_value=SimpleNamespace(model_load_balancing_enabled=True), ), - patch("core.provider_manager.Session", return_value=_build_session_context(session)), + patch("core.provider_manager.session_factory.create_session", return_value=_build_session_context(session)), ): result = ProviderManager._get_all_provider_load_balancing_configs("tenant-id") diff --git a/api/tests/unit_tests/core/tools/test_tool_manager.py b/api/tests/unit_tests/core/tools/test_tool_manager.py index 9ebaa0417b..c9b3dfb186 100644 --- a/api/tests/unit_tests/core/tools/test_tool_manager.py +++ b/api/tests/unit_tests/core/tools/test_tool_manager.py @@ -925,3 +925,78 @@ def test_convert_tool_parameters_type_constant_branch(): ) assert constant == {"text": "fixed"} + + +def test_convert_tool_parameters_type_model_selector_from_legacy_top_level_config(): + model_param = ToolParameter.get_simple_instance( + name="vision_llm_model", + llm_description="vision model", + typ=ToolParameter.ToolParameterType.MODEL_SELECTOR, + required=True, + ) + model_param.form = ToolParameter.ToolParameterForm.FORM + variable_pool = Mock() + + runtime_parameters = ToolManager._convert_tool_parameters_type( + parameters=[model_param], + variable_pool=variable_pool, + tool_configurations={ + "vision_llm_model": { + "type": "constant", + "value": "", + "provider": "langgenius/tongyi/tongyi", + "model": "qwen3-vl-plus", + "model_type": "llm", + "mode": "chat", + } + }, + typ="workflow", + ) + + assert runtime_parameters == { + "vision_llm_model": { + "provider": "langgenius/tongyi/tongyi", + "model": "qwen3-vl-plus", + "model_type": "llm", + "mode": "chat", + } + } + + +def test_convert_tool_parameters_type_model_selector_from_constant_value_config(): + model_param = ToolParameter.get_simple_instance( + name="tts_model", + llm_description="tts model", + typ=ToolParameter.ToolParameterType.MODEL_SELECTOR, + required=True, + ) + model_param.form = ToolParameter.ToolParameterForm.FORM + variable_pool = Mock() + + runtime_parameters = ToolManager._convert_tool_parameters_type( + parameters=[model_param], + variable_pool=variable_pool, + tool_configurations={ + "tts_model": { + "type": "constant", + "value": { + "provider": "langgenius/tongyi/tongyi", + "model": "qwen3-tts-flash", + "model_type": "tts", + "language": "Chinese", + "voice": "Cherry", + }, + } + }, + typ="workflow", + ) + + assert runtime_parameters == { + "tts_model": { + "provider": "langgenius/tongyi/tongyi", + "model": "qwen3-tts-flash", + "model_type": "tts", + "language": "Chinese", + "voice": "Cherry", + } + } 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/test_human_input_adapter.py b/api/tests/unit_tests/core/workflow/test_human_input_adapter.py index 8b5fceeb37..51049f8792 100644 --- a/api/tests/unit_tests/core/workflow/test_human_input_adapter.py +++ b/api/tests/unit_tests/core/workflow/test_human_input_adapter.py @@ -166,6 +166,71 @@ def test_adapt_node_data_for_graph_migrates_legacy_tool_configurations() -> None } +def test_adapt_node_data_for_graph_preserves_model_selector_top_level_configurations() -> None: + normalized = adapt_node_data_for_graph( + { + "type": BuiltinNodeTypes.TOOL, + "tool_configurations": { + "vision_llm_model": { + "type": "constant", + "value": "", + "provider": "langgenius/tongyi/tongyi", + "model": "qwen3-vl-plus", + "model_type": "llm", + "mode": "chat", + }, + }, + } + ) + + assert normalized["tool_configurations"] == {} + assert normalized["tool_parameters"] == { + "vision_llm_model": { + "type": "constant", + "value": { + "provider": "langgenius/tongyi/tongyi", + "model": "qwen3-vl-plus", + "model_type": "llm", + "mode": "chat", + }, + } + } + + +def test_adapt_node_data_for_graph_flattens_constant_model_selector_value() -> None: + normalized = adapt_node_data_for_graph( + { + "type": BuiltinNodeTypes.TOOL, + "tool_configurations": { + "tts_model": { + "type": "constant", + "value": { + "provider": "langgenius/tongyi/tongyi", + "model": "qwen3-tts-flash", + "model_type": "tts", + "language": "Chinese", + "voice": "Cherry", + }, + }, + }, + } + ) + + assert normalized["tool_configurations"] == {} + assert normalized["tool_parameters"] == { + "tts_model": { + "type": "constant", + "value": { + "provider": "langgenius/tongyi/tongyi", + "model": "qwen3-tts-flash", + "model_type": "tts", + "language": "Chinese", + "voice": "Cherry", + }, + } + } + + def test_adapt_node_config_for_graph_rewrites_nested_node_data() -> None: normalized = adapt_node_config_for_graph( { diff --git a/api/tests/unit_tests/core/workflow/test_node_factory.py b/api/tests/unit_tests/core/workflow/test_node_factory.py index 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_node_runtime.py b/api/tests/unit_tests/core/workflow/test_node_runtime.py index 5a43369a1a..0d13151f42 100644 --- a/api/tests/unit_tests/core/workflow/test_node_runtime.py +++ b/api/tests/unit_tests/core/workflow/test_node_runtime.py @@ -22,6 +22,7 @@ from core.workflow.node_runtime import ( DifyPromptMessageSerializer, DifyRetrieverAttachmentLoader, DifyToolFileManager, + DifyToolNodeRuntime, apply_dify_debug_email_recipient, build_dify_llm_file_saver, resolve_dify_run_context, @@ -30,6 +31,7 @@ from graphon.file import FileTransferMethod, FileType from graphon.model_runtime.entities.common_entities import I18nObject from graphon.model_runtime.entities.model_entities import AIModelEntity, FetchFrom, ModelType from graphon.nodes.human_input.entities import HumanInputNodeData +from graphon.nodes.tool.entities import ToolNodeData, ToolProviderType from tests.workflow_test_utils import build_test_run_context @@ -334,6 +336,41 @@ def test_dify_human_input_runtime_builds_debug_repository(monkeypatch: pytest.Mo ) +def test_dify_tool_runtime_spec_prefers_tool_parameters_for_runtime_form_values() -> None: + node_data = ToolNodeData( + provider_id="video-mixcut-agent", + provider_type=ToolProviderType.PLUGIN, + provider_name="sawyer-shi/video-mixcut-agent", + tool_name="mixcut", + tool_label="MixCut", + tool_configurations={"count": 2}, + tool_parameters={ + "vision_llm_model": { + "type": "constant", + "value": { + "provider": "langgenius/tongyi/tongyi", + "model": "qwen3-vl-plus", + "model_type": "llm", + }, + } + }, + ) + + spec = DifyToolNodeRuntime._build_tool_runtime_spec(node_data) + + assert spec.tool_configurations == { + "count": 2, + "vision_llm_model": { + "type": "constant", + "value": { + "provider": "langgenius/tongyi/tongyi", + "model": "qwen3-vl-plus", + "model_type": "llm", + }, + }, + } + + def test_dify_human_input_runtime_create_form_filters_debugger_delivery_methods() -> None: repository = MagicMock() repository.create_form.return_value = sentinel.form diff --git a/api/tests/unit_tests/factories/test_file_factory.py b/api/tests/unit_tests/factories/test_file_factory.py index 5b105d6084..293be925ae 100644 --- a/api/tests/unit_tests/factories/test_file_factory.py +++ b/api/tests/unit_tests/factories/test_file_factory.py @@ -1,8 +1,11 @@ import re +from unittest.mock import MagicMock import pytest +from factories.file_factory import builders from factories.file_factory.remote import extract_filename, get_remote_file_info +from graphon.file import FileTransferMethod class _FakeResponse: @@ -230,3 +233,153 @@ 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" + + +class TestBuildFromDatasourceFile: + """Tests for _build_from_datasource_file extension handling.""" + + @staticmethod + def _patch_session(monkeypatch: pytest.MonkeyPatch, datasource_file): + """Stub session_factory.create_session() so it returns the given UploadFile-shaped record.""" + session = MagicMock() + session.scalar.return_value = datasource_file + ctx = MagicMock() + ctx.__enter__ = MagicMock(return_value=session) + ctx.__exit__ = MagicMock(return_value=False) + monkeypatch.setattr(builders.session_factory, "create_session", lambda: ctx) + + def _make_datasource_file(self, *, key: str, mime_type: str = "text/csv"): + f = MagicMock() + f.id = "file-id" + f.key = key + f.name = key.split("/")[-1] + f.mime_type = mime_type + f.size = 123 + f.source_url = f"https://example.com/{key}" + return f + + def test_extension_passed_without_doubled_dot(self, monkeypatch: pytest.MonkeyPatch): + """Regression: standardize_file_type must receive the extension exactly once-prefixed. + + Previously the call was ``standardize_file_type(extension="." + extension, ...)`` while + ``extension`` already had a leading dot, producing ``"..csv"``. The mitigating + ``lstrip(".")`` inside ``standardize_file_type`` masked the bug from end users, but the + argument shape itself was wrong and showed up in any caller that didn't strip dots. + """ + captured: dict = {} + + def fake_standardize(*, extension: str = "", mime_type: str = ""): + from graphon.file import FileType + + captured["extension"] = extension + captured["mime_type"] = mime_type + return FileType.DOCUMENT + + monkeypatch.setattr(builders, "standardize_file_type", fake_standardize) + + datasource_file = self._make_datasource_file(key="folder/data.csv", mime_type="text/csv") + self._patch_session(monkeypatch, datasource_file) + + access_controller = MagicMock() + access_controller.apply_upload_file_filters = lambda stmt: stmt + + file = builders._build_from_datasource_file( + mapping={"datasource_file_id": "file-id", "transfer_method": "datasource_file"}, + tenant_id="tenant-id", + transfer_method=FileTransferMethod.DATASOURCE_FILE, + access_controller=access_controller, + ) + + assert captured["extension"] == ".csv", ( + f"standardize_file_type received {captured['extension']!r}; expected single-dot '.csv'" + ) + assert captured["mime_type"] == "text/csv" + assert file.extension == ".csv" + + def test_extension_falls_back_to_bin_when_key_has_no_dot(self, monkeypatch: pytest.MonkeyPatch): + captured: dict = {} + + def fake_standardize(*, extension: str = "", mime_type: str = ""): + from graphon.file import FileType + + captured["extension"] = extension + return FileType.CUSTOM + + monkeypatch.setattr(builders, "standardize_file_type", fake_standardize) + + datasource_file = self._make_datasource_file(key="dotless-key", mime_type="application/octet-stream") + self._patch_session(monkeypatch, datasource_file) + + access_controller = MagicMock() + access_controller.apply_upload_file_filters = lambda stmt: stmt + + file = builders._build_from_datasource_file( + mapping={"datasource_file_id": "file-id", "transfer_method": "datasource_file"}, + tenant_id="tenant-id", + transfer_method=FileTransferMethod.DATASOURCE_FILE, + access_controller=access_controller, + ) + + assert captured["extension"] == ".bin" + assert file.extension == ".bin" diff --git a/api/tests/unit_tests/models/test_workflow_models.py b/api/tests/unit_tests/models/test_workflow_models.py index eb9fef7587..0953570a31 100644 --- a/api/tests/unit_tests/models/test_workflow_models.py +++ b/api/tests/unit_tests/models/test_workflow_models.py @@ -45,7 +45,7 @@ class TestWorkflowModelValidation: workflow = Workflow.new( tenant_id=tenant_id, app_id=app_id, - type=WorkflowType.WORKFLOW.value, + type=WorkflowType.WORKFLOW, version="draft", graph=graph, features=features, @@ -58,7 +58,7 @@ class TestWorkflowModelValidation: # Assert assert workflow.tenant_id == tenant_id assert workflow.app_id == app_id - assert workflow.type == WorkflowType.WORKFLOW.value + assert workflow.type == WorkflowType.WORKFLOW assert workflow.version == "draft" assert workflow.graph == graph assert workflow.created_by == created_by @@ -68,7 +68,7 @@ class TestWorkflowModelValidation: def test_workflow_type_enum_values(self): """Test WorkflowType enum values.""" # Assert - assert WorkflowType.WORKFLOW.value == "workflow" + assert WorkflowType.WORKFLOW == "workflow" assert WorkflowType.CHAT.value == "chat" assert WorkflowType.RAG_PIPELINE.value == "rag-pipeline" @@ -89,7 +89,7 @@ class TestWorkflowModelValidation: workflow = Workflow.new( tenant_id=str(uuid4()), app_id=str(uuid4()), - type=WorkflowType.WORKFLOW.value, + type=WorkflowType.WORKFLOW, version="draft", graph=json.dumps(graph_data), features="{}", @@ -114,7 +114,7 @@ class TestWorkflowModelValidation: workflow = Workflow.new( tenant_id=str(uuid4()), app_id=str(uuid4()), - type=WorkflowType.WORKFLOW.value, + type=WorkflowType.WORKFLOW, version="draft", graph="{}", features=json.dumps(features_data), @@ -138,7 +138,7 @@ class TestWorkflowModelValidation: workflow = Workflow.new( tenant_id=str(uuid4()), app_id=str(uuid4()), - type=WorkflowType.WORKFLOW.value, + type=WorkflowType.WORKFLOW, version="v1.0", graph="{}", features="{}", @@ -176,11 +176,11 @@ class TestWorkflowRunStateTransitions: tenant_id=tenant_id, app_id=app_id, workflow_id=workflow_id, - type=WorkflowType.WORKFLOW.value, - triggered_from=WorkflowRunTriggeredFrom.DEBUGGING.value, + type=WorkflowType.WORKFLOW, + triggered_from=WorkflowRunTriggeredFrom.DEBUGGING, version="draft", - status=WorkflowExecutionStatus.RUNNING.value, - created_by_role=CreatorUserRole.ACCOUNT.value, + status=WorkflowExecutionStatus.RUNNING, + created_by_role=CreatorUserRole.ACCOUNT, created_by=created_by, ) @@ -188,9 +188,9 @@ class TestWorkflowRunStateTransitions: assert workflow_run.tenant_id == tenant_id assert workflow_run.app_id == app_id assert workflow_run.workflow_id == workflow_id - assert workflow_run.type == WorkflowType.WORKFLOW.value - assert workflow_run.triggered_from == WorkflowRunTriggeredFrom.DEBUGGING.value - assert workflow_run.status == WorkflowExecutionStatus.RUNNING.value + assert workflow_run.type == WorkflowType.WORKFLOW + assert workflow_run.triggered_from == WorkflowRunTriggeredFrom.DEBUGGING + assert workflow_run.status == WorkflowExecutionStatus.RUNNING assert workflow_run.created_by == created_by def test_workflow_run_state_transition_running_to_succeeded(self): @@ -200,21 +200,21 @@ class TestWorkflowRunStateTransitions: tenant_id=str(uuid4()), app_id=str(uuid4()), workflow_id=str(uuid4()), - type=WorkflowType.WORKFLOW.value, - triggered_from=WorkflowRunTriggeredFrom.APP_RUN.value, + type=WorkflowType.WORKFLOW, + triggered_from=WorkflowRunTriggeredFrom.APP_RUN, version="v1.0", - status=WorkflowExecutionStatus.RUNNING.value, - created_by_role=CreatorUserRole.END_USER.value, + status=WorkflowExecutionStatus.RUNNING, + created_by_role=CreatorUserRole.END_USER, created_by=str(uuid4()), ) # Act - workflow_run.status = WorkflowExecutionStatus.SUCCEEDED.value + workflow_run.status = WorkflowExecutionStatus.SUCCEEDED workflow_run.finished_at = datetime.now(UTC) workflow_run.elapsed_time = 2.5 # Assert - assert workflow_run.status == WorkflowExecutionStatus.SUCCEEDED.value + assert workflow_run.status == WorkflowExecutionStatus.SUCCEEDED assert workflow_run.finished_at is not None assert workflow_run.elapsed_time == 2.5 @@ -225,21 +225,21 @@ class TestWorkflowRunStateTransitions: tenant_id=str(uuid4()), app_id=str(uuid4()), workflow_id=str(uuid4()), - type=WorkflowType.WORKFLOW.value, - triggered_from=WorkflowRunTriggeredFrom.APP_RUN.value, + type=WorkflowType.WORKFLOW, + triggered_from=WorkflowRunTriggeredFrom.APP_RUN, version="v1.0", - status=WorkflowExecutionStatus.RUNNING.value, - created_by_role=CreatorUserRole.ACCOUNT.value, + status=WorkflowExecutionStatus.RUNNING, + created_by_role=CreatorUserRole.ACCOUNT, created_by=str(uuid4()), ) # Act - workflow_run.status = WorkflowExecutionStatus.FAILED.value + workflow_run.status = WorkflowExecutionStatus.FAILED workflow_run.error = "Node execution failed: Invalid input" workflow_run.finished_at = datetime.now(UTC) # Assert - assert workflow_run.status == WorkflowExecutionStatus.FAILED.value + assert workflow_run.status == WorkflowExecutionStatus.FAILED assert workflow_run.error == "Node execution failed: Invalid input" assert workflow_run.finished_at is not None @@ -250,20 +250,20 @@ class TestWorkflowRunStateTransitions: tenant_id=str(uuid4()), app_id=str(uuid4()), workflow_id=str(uuid4()), - type=WorkflowType.WORKFLOW.value, - triggered_from=WorkflowRunTriggeredFrom.DEBUGGING.value, + type=WorkflowType.WORKFLOW, + triggered_from=WorkflowRunTriggeredFrom.DEBUGGING, version="draft", - status=WorkflowExecutionStatus.RUNNING.value, - created_by_role=CreatorUserRole.ACCOUNT.value, + status=WorkflowExecutionStatus.RUNNING, + created_by_role=CreatorUserRole.ACCOUNT, created_by=str(uuid4()), ) # Act - workflow_run.status = WorkflowExecutionStatus.STOPPED.value + workflow_run.status = WorkflowExecutionStatus.STOPPED workflow_run.finished_at = datetime.now(UTC) # Assert - assert workflow_run.status == WorkflowExecutionStatus.STOPPED.value + assert workflow_run.status == WorkflowExecutionStatus.STOPPED assert workflow_run.finished_at is not None def test_workflow_run_state_transition_running_to_paused(self): @@ -273,19 +273,19 @@ class TestWorkflowRunStateTransitions: tenant_id=str(uuid4()), app_id=str(uuid4()), workflow_id=str(uuid4()), - type=WorkflowType.WORKFLOW.value, - triggered_from=WorkflowRunTriggeredFrom.APP_RUN.value, + type=WorkflowType.WORKFLOW, + triggered_from=WorkflowRunTriggeredFrom.APP_RUN, version="v1.0", - status=WorkflowExecutionStatus.RUNNING.value, - created_by_role=CreatorUserRole.END_USER.value, + status=WorkflowExecutionStatus.RUNNING, + created_by_role=CreatorUserRole.END_USER, created_by=str(uuid4()), ) # Act - workflow_run.status = WorkflowExecutionStatus.PAUSED.value + workflow_run.status = WorkflowExecutionStatus.PAUSED # Assert - assert workflow_run.status == WorkflowExecutionStatus.PAUSED.value + assert workflow_run.status == WorkflowExecutionStatus.PAUSED assert workflow_run.finished_at is None # Not finished when paused def test_workflow_run_state_transition_paused_to_running(self): @@ -295,19 +295,19 @@ class TestWorkflowRunStateTransitions: tenant_id=str(uuid4()), app_id=str(uuid4()), workflow_id=str(uuid4()), - type=WorkflowType.WORKFLOW.value, - triggered_from=WorkflowRunTriggeredFrom.APP_RUN.value, + type=WorkflowType.WORKFLOW, + triggered_from=WorkflowRunTriggeredFrom.APP_RUN, version="v1.0", - status=WorkflowExecutionStatus.PAUSED.value, - created_by_role=CreatorUserRole.ACCOUNT.value, + status=WorkflowExecutionStatus.PAUSED, + created_by_role=CreatorUserRole.ACCOUNT, created_by=str(uuid4()), ) # Act - workflow_run.status = WorkflowExecutionStatus.RUNNING.value + workflow_run.status = WorkflowExecutionStatus.RUNNING # Assert - assert workflow_run.status == WorkflowExecutionStatus.RUNNING.value + assert workflow_run.status == WorkflowExecutionStatus.RUNNING def test_workflow_run_with_partial_succeeded_status(self): """Test workflow run with partial-succeeded status.""" @@ -316,17 +316,17 @@ class TestWorkflowRunStateTransitions: tenant_id=str(uuid4()), app_id=str(uuid4()), workflow_id=str(uuid4()), - type=WorkflowType.WORKFLOW.value, - triggered_from=WorkflowRunTriggeredFrom.APP_RUN.value, + type=WorkflowType.WORKFLOW, + triggered_from=WorkflowRunTriggeredFrom.APP_RUN, version="v1.0", - status=WorkflowExecutionStatus.PARTIAL_SUCCEEDED.value, - created_by_role=CreatorUserRole.ACCOUNT.value, + status=WorkflowExecutionStatus.PARTIAL_SUCCEEDED, + created_by_role=CreatorUserRole.ACCOUNT, created_by=str(uuid4()), exceptions_count=2, ) # Assert - assert workflow_run.status == WorkflowExecutionStatus.PARTIAL_SUCCEEDED.value + assert workflow_run.status == WorkflowExecutionStatus.PARTIAL_SUCCEEDED assert workflow_run.exceptions_count == 2 def test_workflow_run_with_inputs_and_outputs(self): @@ -340,11 +340,11 @@ class TestWorkflowRunStateTransitions: tenant_id=str(uuid4()), app_id=str(uuid4()), workflow_id=str(uuid4()), - type=WorkflowType.WORKFLOW.value, - triggered_from=WorkflowRunTriggeredFrom.APP_RUN.value, + type=WorkflowType.WORKFLOW, + triggered_from=WorkflowRunTriggeredFrom.APP_RUN, version="v1.0", - status=WorkflowExecutionStatus.SUCCEEDED.value, - created_by_role=CreatorUserRole.END_USER.value, + status=WorkflowExecutionStatus.SUCCEEDED, + created_by_role=CreatorUserRole.END_USER, created_by=str(uuid4()), inputs=json.dumps(inputs), outputs=json.dumps(outputs), @@ -362,11 +362,11 @@ class TestWorkflowRunStateTransitions: tenant_id=str(uuid4()), app_id=str(uuid4()), workflow_id=str(uuid4()), - type=WorkflowType.WORKFLOW.value, - triggered_from=WorkflowRunTriggeredFrom.DEBUGGING.value, + type=WorkflowType.WORKFLOW, + triggered_from=WorkflowRunTriggeredFrom.DEBUGGING, version="draft", - status=WorkflowExecutionStatus.RUNNING.value, - created_by_role=CreatorUserRole.ACCOUNT.value, + status=WorkflowExecutionStatus.RUNNING, + created_by_role=CreatorUserRole.ACCOUNT, created_by=str(uuid4()), graph=json.dumps(graph), ) @@ -391,11 +391,11 @@ class TestWorkflowRunStateTransitions: tenant_id=tenant_id, app_id=app_id, workflow_id=workflow_id, - type=WorkflowType.WORKFLOW.value, - triggered_from=WorkflowRunTriggeredFrom.APP_RUN.value, + type=WorkflowType.WORKFLOW, + triggered_from=WorkflowRunTriggeredFrom.APP_RUN, version="v1.0", - status=WorkflowExecutionStatus.SUCCEEDED.value, - created_by_role=CreatorUserRole.ACCOUNT.value, + status=WorkflowExecutionStatus.SUCCEEDED, + created_by_role=CreatorUserRole.ACCOUNT, created_by=created_by, total_tokens=1500, total_steps=5, @@ -410,7 +410,7 @@ class TestWorkflowRunStateTransitions: assert result["tenant_id"] == tenant_id assert result["app_id"] == app_id assert result["workflow_id"] == workflow_id - assert result["status"] == WorkflowExecutionStatus.SUCCEEDED.value + assert result["status"] == WorkflowExecutionStatus.SUCCEEDED assert result["total_tokens"] == 1500 assert result["total_steps"] == 5 @@ -422,18 +422,18 @@ class TestWorkflowRunStateTransitions: "tenant_id": str(uuid4()), "app_id": str(uuid4()), "workflow_id": str(uuid4()), - "type": WorkflowType.WORKFLOW.value, - "triggered_from": WorkflowRunTriggeredFrom.APP_RUN.value, + "type": WorkflowType.WORKFLOW, + "triggered_from": WorkflowRunTriggeredFrom.APP_RUN, "version": "v1.0", "graph": {"nodes": [], "edges": []}, "inputs": {"query": "test"}, - "status": WorkflowExecutionStatus.SUCCEEDED.value, + "status": WorkflowExecutionStatus.SUCCEEDED, "outputs": {"result": "success"}, "error": None, "elapsed_time": 3.5, "total_tokens": 2000, "total_steps": 10, - "created_by_role": CreatorUserRole.ACCOUNT.value, + "created_by_role": CreatorUserRole.ACCOUNT, "created_by": str(uuid4()), "created_at": datetime.now(UTC), "finished_at": datetime.now(UTC), @@ -446,7 +446,7 @@ class TestWorkflowRunStateTransitions: # Assert assert workflow_run.id == data["id"] assert workflow_run.workflow_id == data["workflow_id"] - assert workflow_run.status == WorkflowExecutionStatus.SUCCEEDED.value + assert workflow_run.status == WorkflowExecutionStatus.SUCCEEDED assert workflow_run.total_tokens == 2000 @@ -467,14 +467,14 @@ class TestNodeExecutionRelationships: tenant_id=tenant_id, app_id=app_id, workflow_id=workflow_id, - triggered_from=WorkflowNodeExecutionTriggeredFrom.WORKFLOW_RUN.value, + triggered_from=WorkflowNodeExecutionTriggeredFrom.WORKFLOW_RUN, workflow_run_id=workflow_run_id, index=1, node_id="start", node_type=BuiltinNodeTypes.START, title="Start Node", - status=WorkflowNodeExecutionStatus.SUCCEEDED.value, - created_by_role=CreatorUserRole.ACCOUNT.value, + status=WorkflowNodeExecutionStatus.SUCCEEDED, + created_by_role=CreatorUserRole.ACCOUNT, created_by=created_by, ) @@ -498,15 +498,15 @@ class TestNodeExecutionRelationships: tenant_id=str(uuid4()), app_id=str(uuid4()), workflow_id=str(uuid4()), - triggered_from=WorkflowNodeExecutionTriggeredFrom.WORKFLOW_RUN.value, + triggered_from=WorkflowNodeExecutionTriggeredFrom.WORKFLOW_RUN, workflow_run_id=str(uuid4()), index=2, predecessor_node_id=predecessor_node_id, node_id=current_node_id, node_type=BuiltinNodeTypes.LLM, title="LLM Node", - status=WorkflowNodeExecutionStatus.RUNNING.value, - created_by_role=CreatorUserRole.ACCOUNT.value, + status=WorkflowNodeExecutionStatus.RUNNING, + created_by_role=CreatorUserRole.ACCOUNT, created_by=str(uuid4()), ) @@ -528,8 +528,8 @@ class TestNodeExecutionRelationships: node_id="llm_test", node_type=BuiltinNodeTypes.LLM, title="Test LLM", - status=WorkflowNodeExecutionStatus.SUCCEEDED.value, - created_by_role=CreatorUserRole.ACCOUNT.value, + status=WorkflowNodeExecutionStatus.SUCCEEDED, + created_by_role=CreatorUserRole.ACCOUNT, created_by=str(uuid4()), ) @@ -549,14 +549,14 @@ class TestNodeExecutionRelationships: tenant_id=str(uuid4()), app_id=str(uuid4()), workflow_id=str(uuid4()), - triggered_from=WorkflowNodeExecutionTriggeredFrom.WORKFLOW_RUN.value, + triggered_from=WorkflowNodeExecutionTriggeredFrom.WORKFLOW_RUN, workflow_run_id=str(uuid4()), index=1, node_id="llm_1", node_type=BuiltinNodeTypes.LLM, title="LLM Node", - status=WorkflowNodeExecutionStatus.SUCCEEDED.value, - created_by_role=CreatorUserRole.ACCOUNT.value, + status=WorkflowNodeExecutionStatus.SUCCEEDED, + created_by_role=CreatorUserRole.ACCOUNT, created_by=str(uuid4()), inputs=json.dumps(inputs), outputs=json.dumps(outputs), @@ -575,24 +575,24 @@ class TestNodeExecutionRelationships: tenant_id=str(uuid4()), app_id=str(uuid4()), workflow_id=str(uuid4()), - triggered_from=WorkflowNodeExecutionTriggeredFrom.WORKFLOW_RUN.value, + triggered_from=WorkflowNodeExecutionTriggeredFrom.WORKFLOW_RUN, workflow_run_id=str(uuid4()), index=1, node_id="code_1", node_type=BuiltinNodeTypes.CODE, title="Code Node", - status=WorkflowNodeExecutionStatus.RUNNING.value, - created_by_role=CreatorUserRole.ACCOUNT.value, + status=WorkflowNodeExecutionStatus.RUNNING, + created_by_role=CreatorUserRole.ACCOUNT, created_by=str(uuid4()), ) # Act - transition to succeeded - node_execution.status = WorkflowNodeExecutionStatus.SUCCEEDED.value + node_execution.status = WorkflowNodeExecutionStatus.SUCCEEDED node_execution.elapsed_time = 1.2 node_execution.finished_at = datetime.now(UTC) # Assert - assert node_execution.status == WorkflowNodeExecutionStatus.SUCCEEDED.value + assert node_execution.status == WorkflowNodeExecutionStatus.SUCCEEDED assert node_execution.elapsed_time == 1.2 assert node_execution.finished_at is not None @@ -606,20 +606,20 @@ class TestNodeExecutionRelationships: tenant_id=str(uuid4()), app_id=str(uuid4()), workflow_id=str(uuid4()), - triggered_from=WorkflowNodeExecutionTriggeredFrom.WORKFLOW_RUN.value, + triggered_from=WorkflowNodeExecutionTriggeredFrom.WORKFLOW_RUN, workflow_run_id=str(uuid4()), index=3, node_id="code_1", node_type=BuiltinNodeTypes.CODE, title="Code Node", - status=WorkflowNodeExecutionStatus.FAILED.value, + status=WorkflowNodeExecutionStatus.FAILED, error=error_message, - created_by_role=CreatorUserRole.ACCOUNT.value, + created_by_role=CreatorUserRole.ACCOUNT, created_by=str(uuid4()), ) # Assert - assert node_execution.status == WorkflowNodeExecutionStatus.FAILED.value + assert node_execution.status == WorkflowNodeExecutionStatus.FAILED assert node_execution.error == error_message def test_node_execution_with_metadata(self): @@ -637,14 +637,14 @@ class TestNodeExecutionRelationships: tenant_id=str(uuid4()), app_id=str(uuid4()), workflow_id=str(uuid4()), - triggered_from=WorkflowNodeExecutionTriggeredFrom.WORKFLOW_RUN.value, + triggered_from=WorkflowNodeExecutionTriggeredFrom.WORKFLOW_RUN, workflow_run_id=str(uuid4()), index=1, node_id="llm_1", node_type=BuiltinNodeTypes.LLM, title="LLM Node", - status=WorkflowNodeExecutionStatus.SUCCEEDED.value, - created_by_role=CreatorUserRole.ACCOUNT.value, + status=WorkflowNodeExecutionStatus.SUCCEEDED, + created_by_role=CreatorUserRole.ACCOUNT, created_by=str(uuid4()), execution_metadata=json.dumps(metadata), ) @@ -660,14 +660,14 @@ class TestNodeExecutionRelationships: tenant_id=str(uuid4()), app_id=str(uuid4()), workflow_id=str(uuid4()), - triggered_from=WorkflowNodeExecutionTriggeredFrom.WORKFLOW_RUN.value, + triggered_from=WorkflowNodeExecutionTriggeredFrom.WORKFLOW_RUN, workflow_run_id=str(uuid4()), index=1, node_id="start", node_type=BuiltinNodeTypes.START, title="Start", - status=WorkflowNodeExecutionStatus.SUCCEEDED.value, - created_by_role=CreatorUserRole.ACCOUNT.value, + status=WorkflowNodeExecutionStatus.SUCCEEDED, + created_by_role=CreatorUserRole.ACCOUNT, created_by=str(uuid4()), execution_metadata=None, ) @@ -696,14 +696,14 @@ class TestNodeExecutionRelationships: tenant_id=str(uuid4()), app_id=str(uuid4()), workflow_id=str(uuid4()), - triggered_from=WorkflowNodeExecutionTriggeredFrom.WORKFLOW_RUN.value, + triggered_from=WorkflowNodeExecutionTriggeredFrom.WORKFLOW_RUN, workflow_run_id=str(uuid4()), index=1, node_id=f"{node_type}_1", node_type=node_type, title=title, - status=WorkflowNodeExecutionStatus.SUCCEEDED.value, - created_by_role=CreatorUserRole.ACCOUNT.value, + status=WorkflowNodeExecutionStatus.SUCCEEDED, + created_by_role=CreatorUserRole.ACCOUNT, created_by=str(uuid4()), ) @@ -734,7 +734,7 @@ class TestGraphConfigurationValidation: workflow = Workflow.new( tenant_id=str(uuid4()), app_id=str(uuid4()), - type=WorkflowType.WORKFLOW.value, + type=WorkflowType.WORKFLOW, version="draft", graph=json.dumps(graph_config), features="{}", @@ -761,7 +761,7 @@ class TestGraphConfigurationValidation: workflow = Workflow.new( tenant_id=str(uuid4()), app_id=str(uuid4()), - type=WorkflowType.WORKFLOW.value, + type=WorkflowType.WORKFLOW, version="draft", graph=json.dumps(graph_config), features="{}", @@ -802,7 +802,7 @@ class TestGraphConfigurationValidation: workflow = Workflow.new( tenant_id=str(uuid4()), app_id=str(uuid4()), - type=WorkflowType.WORKFLOW.value, + type=WorkflowType.WORKFLOW, version="draft", graph=json.dumps(graph_config), features="{}", @@ -835,11 +835,11 @@ class TestGraphConfigurationValidation: tenant_id=str(uuid4()), app_id=str(uuid4()), workflow_id=str(uuid4()), - type=WorkflowType.WORKFLOW.value, - triggered_from=WorkflowRunTriggeredFrom.APP_RUN.value, + type=WorkflowType.WORKFLOW, + triggered_from=WorkflowRunTriggeredFrom.APP_RUN, version="v1.0", - status=WorkflowExecutionStatus.RUNNING.value, - created_by_role=CreatorUserRole.ACCOUNT.value, + status=WorkflowExecutionStatus.RUNNING, + created_by_role=CreatorUserRole.ACCOUNT, created_by=str(uuid4()), graph=json.dumps(original_graph), ) @@ -872,7 +872,7 @@ class TestGraphConfigurationValidation: workflow = Workflow.new( tenant_id=str(uuid4()), app_id=str(uuid4()), - type=WorkflowType.WORKFLOW.value, + type=WorkflowType.WORKFLOW, version="draft", graph=json.dumps(graph_config), features="{}", @@ -912,7 +912,7 @@ class TestGraphConfigurationValidation: workflow = Workflow.new( tenant_id=str(uuid4()), app_id=str(uuid4()), - type=WorkflowType.WORKFLOW.value, + type=WorkflowType.WORKFLOW, version="draft", graph=json.dumps(graph_config), features="{}", @@ -933,7 +933,7 @@ class TestGraphConfigurationValidation: workflow = Workflow.new( tenant_id=str(uuid4()), app_id=str(uuid4()), - type=WorkflowType.WORKFLOW.value, + type=WorkflowType.WORKFLOW, version="draft", graph=None, features="{}", @@ -956,11 +956,11 @@ class TestGraphConfigurationValidation: tenant_id=str(uuid4()), app_id=str(uuid4()), workflow_id=str(uuid4()), - type=WorkflowType.WORKFLOW.value, - triggered_from=WorkflowRunTriggeredFrom.APP_RUN.value, + type=WorkflowType.WORKFLOW, + triggered_from=WorkflowRunTriggeredFrom.APP_RUN, version="v1.0", - status=WorkflowExecutionStatus.RUNNING.value, - created_by_role=CreatorUserRole.ACCOUNT.value, + status=WorkflowExecutionStatus.RUNNING, + created_by_role=CreatorUserRole.ACCOUNT, created_by=str(uuid4()), inputs=None, ) @@ -978,11 +978,11 @@ class TestGraphConfigurationValidation: tenant_id=str(uuid4()), app_id=str(uuid4()), workflow_id=str(uuid4()), - type=WorkflowType.WORKFLOW.value, - triggered_from=WorkflowRunTriggeredFrom.APP_RUN.value, + type=WorkflowType.WORKFLOW, + triggered_from=WorkflowRunTriggeredFrom.APP_RUN, version="v1.0", - status=WorkflowExecutionStatus.RUNNING.value, - created_by_role=CreatorUserRole.ACCOUNT.value, + status=WorkflowExecutionStatus.RUNNING, + created_by_role=CreatorUserRole.ACCOUNT, created_by=str(uuid4()), outputs=None, ) @@ -1000,14 +1000,14 @@ class TestGraphConfigurationValidation: tenant_id=str(uuid4()), app_id=str(uuid4()), workflow_id=str(uuid4()), - triggered_from=WorkflowNodeExecutionTriggeredFrom.WORKFLOW_RUN.value, + triggered_from=WorkflowNodeExecutionTriggeredFrom.WORKFLOW_RUN, workflow_run_id=str(uuid4()), index=1, node_id="start", node_type=BuiltinNodeTypes.START, title="Start", - status=WorkflowNodeExecutionStatus.SUCCEEDED.value, - created_by_role=CreatorUserRole.ACCOUNT.value, + status=WorkflowNodeExecutionStatus.SUCCEEDED, + created_by_role=CreatorUserRole.ACCOUNT, created_by=str(uuid4()), inputs=None, ) @@ -1025,14 +1025,14 @@ class TestGraphConfigurationValidation: tenant_id=str(uuid4()), app_id=str(uuid4()), workflow_id=str(uuid4()), - triggered_from=WorkflowNodeExecutionTriggeredFrom.WORKFLOW_RUN.value, + triggered_from=WorkflowNodeExecutionTriggeredFrom.WORKFLOW_RUN, workflow_run_id=str(uuid4()), index=1, node_id="start", node_type=BuiltinNodeTypes.START, title="Start", - status=WorkflowNodeExecutionStatus.SUCCEEDED.value, - created_by_role=CreatorUserRole.ACCOUNT.value, + status=WorkflowNodeExecutionStatus.SUCCEEDED, + created_by_role=CreatorUserRole.ACCOUNT, created_by=str(uuid4()), outputs=None, ) diff --git a/api/tests/unit_tests/oss/__mock/baidu_obs.py b/api/tests/unit_tests/oss/__mock/baidu_obs.py new file mode 100644 index 0000000000..d70a7c2eaa --- /dev/null +++ b/api/tests/unit_tests/oss/__mock/baidu_obs.py @@ -0,0 +1,70 @@ +import base64 +import hashlib +import os +from io import BytesIO +from types import SimpleNamespace + +import pytest +from _pytest.monkeypatch import MonkeyPatch +from baidubce.services.bos.bos_client import BosClient + +from tests.unit_tests.oss.__mock.base import ( + get_example_bucket, + get_example_data, + get_example_filename, + get_example_filepath, +) + + +class MockBaiduObsClass: + def __init__(self, config=None): + self.bucket_name = get_example_bucket() + self.key = get_example_filename() + self.content = get_example_data() + self.filepath = get_example_filepath() + + def put_object(self, bucket_name, key, data, content_length=None, content_md5=None, **kwargs): + assert bucket_name == self.bucket_name + assert key == self.key + assert data == self.content + assert content_length == len(self.content) + expected_md5 = base64.standard_b64encode(hashlib.md5(self.content).digest()) + assert content_md5 == expected_md5 + + def get_object(self, bucket_name, key, **kwargs): + assert bucket_name == self.bucket_name + assert key == self.key + return SimpleNamespace(data=BytesIO(self.content)) + + def get_object_to_file(self, bucket_name, key, file_name, **kwargs): + assert bucket_name == self.bucket_name + assert key == self.key + assert file_name == self.filepath + + def get_object_meta_data(self, bucket_name, key, **kwargs): + assert bucket_name == self.bucket_name + assert key == self.key + return SimpleNamespace(status=200) + + def delete_object(self, bucket_name, key, **kwargs): + assert bucket_name == self.bucket_name + assert key == self.key + + +MOCK = os.getenv("MOCK_SWITCH", "false").lower() == "true" + + +@pytest.fixture +def setup_baidu_obs_mock(monkeypatch: MonkeyPatch): + if MOCK: + monkeypatch.setattr(BosClient, "__init__", MockBaiduObsClass.__init__) + monkeypatch.setattr(BosClient, "put_object", MockBaiduObsClass.put_object) + monkeypatch.setattr(BosClient, "get_object", MockBaiduObsClass.get_object) + monkeypatch.setattr(BosClient, "get_object_to_file", MockBaiduObsClass.get_object_to_file) + monkeypatch.setattr(BosClient, "get_object_meta_data", MockBaiduObsClass.get_object_meta_data) + monkeypatch.setattr(BosClient, "delete_object", MockBaiduObsClass.delete_object) + + yield + + if MOCK: + monkeypatch.undo() diff --git a/api/tests/unit_tests/oss/baidu_obs/__init__.py b/api/tests/unit_tests/oss/baidu_obs/__init__.py new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/api/tests/unit_tests/oss/baidu_obs/__init__.py @@ -0,0 +1 @@ + diff --git a/api/tests/unit_tests/oss/baidu_obs/test_baidu_obs.py b/api/tests/unit_tests/oss/baidu_obs/test_baidu_obs.py new file mode 100644 index 0000000000..053f811264 --- /dev/null +++ b/api/tests/unit_tests/oss/baidu_obs/test_baidu_obs.py @@ -0,0 +1,60 @@ +from unittest.mock import MagicMock, patch + +import pytest +from baidubce.auth.bce_credentials import BceCredentials +from baidubce.bce_client_configuration import BceClientConfiguration + +from extensions.storage.baidu_obs_storage import BaiduObsStorage +from tests.unit_tests.oss.__mock.base import ( + BaseStorageTest, + get_example_bucket, +) + +pytest_plugins = ("tests.unit_tests.oss.__mock.baidu_obs",) + + +class TestBaiduObs(BaseStorageTest): + @pytest.fixture(autouse=True) + def setup_method(self, setup_baidu_obs_mock): + """Executed before each test method.""" + with ( + patch.object(BceCredentials, "__init__", return_value=None), + patch.object(BceClientConfiguration, "__init__", return_value=None), + ): + self.storage = BaiduObsStorage() + self.storage.bucket_name = get_example_bucket() + + +class TestBaiduObsConfiguration: + def test_init_with_config(self): + mock_dify_config = MagicMock() + mock_dify_config.BAIDU_OBS_BUCKET_NAME = "test-bucket" + mock_dify_config.BAIDU_OBS_ACCESS_KEY = "test-access-key" + mock_dify_config.BAIDU_OBS_SECRET_KEY = "test-secret-key" + mock_dify_config.BAIDU_OBS_ENDPOINT = "https://bj.bcebos.com" + + mock_credentials = MagicMock(name="credentials") + mock_config = MagicMock(name="config") + mock_client = MagicMock(name="client") + + with ( + patch("extensions.storage.baidu_obs_storage.dify_config", mock_dify_config), + patch("extensions.storage.baidu_obs_storage.BceCredentials", return_value=mock_credentials) as credentials, + patch( + "extensions.storage.baidu_obs_storage.BceClientConfiguration", return_value=mock_config + ) as configuration, + patch("extensions.storage.baidu_obs_storage.BosClient", return_value=mock_client) as client_cls, + ): + storage = BaiduObsStorage() + + assert storage.bucket_name == "test-bucket" + assert storage.client == mock_client + credentials.assert_called_once_with( + access_key_id="test-access-key", + secret_access_key="test-secret-key", + ) + configuration.assert_called_once_with( + credentials=mock_credentials, + endpoint="https://bj.bcebos.com", + ) + client_cls.assert_called_once_with(config=mock_config) 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 497c26a9b3..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 @@ -33,42 +33,6 @@ class TestDraftVarLoaderSimple: fallback_variables=[], ) - def test_load_offloaded_variable_string_type_unit(self, draft_var_loader): - """Test _load_offloaded_variable with string type - isolated unit test.""" - # Create mock objects - upload_file = Mock(spec=UploadFile) - upload_file.key = "storage/key/test.txt" - - variable_file = Mock(spec=WorkflowDraftVariableFile) - variable_file.value_type = SegmentType.STRING - variable_file.upload_file = upload_file - - draft_var = Mock(spec=WorkflowDraftVariable) - draft_var.id = "draft-var-id" - draft_var.node_id = "test-node-id" - draft_var.name = "test_variable" - draft_var.description = "test description" - draft_var.get_selector.return_value = ["test-node-id", "test_variable"] - draft_var.variable_file = variable_file - - test_content = "This is the full string content" - - with patch("services.workflow_draft_variable_service.storage") as mock_storage: - mock_storage.load.return_value = test_content.encode() - - # Execute the method - selector_tuple, variable = draft_var_loader._load_offloaded_variable(draft_var) - - # Verify results - assert selector_tuple == ("test-node-id", "test_variable") - assert variable.id == "draft-var-id" - assert variable.name == "test_variable" - assert variable.description == "test description" - assert variable.value == test_content - - # Verify storage was called correctly - mock_storage.load.assert_called_once_with("storage/key/test.txt") - def test_load_offloaded_variable_object_type_unit(self, draft_var_loader): """Test _load_offloaded_variable with object type - isolated unit test.""" # Create mock objects @@ -139,47 +103,6 @@ class TestDraftVarLoaderSimple: result = draft_var_loader._selector_to_tuple(selector) assert result == ("node_id", "var_name") - def test_load_offloaded_variable_number_type_unit(self, draft_var_loader): - """Test _load_offloaded_variable with number type - isolated unit test.""" - # Create mock objects - upload_file = Mock(spec=UploadFile) - upload_file.key = "storage/key/test_number.json" - - variable_file = Mock(spec=WorkflowDraftVariableFile) - variable_file.value_type = SegmentType.NUMBER - variable_file.upload_file = upload_file - - draft_var = Mock(spec=WorkflowDraftVariable) - draft_var.id = "draft-var-id" - draft_var.node_id = "test-node-id" - draft_var.name = "test_number" - draft_var.description = "test number description" - draft_var.get_selector.return_value = ["test-node-id", "test_number"] - draft_var.variable_file = variable_file - - test_number = 123.45 - test_json_content = json.dumps(test_number) - - with patch("services.workflow_draft_variable_service.storage") as mock_storage: - mock_storage.load.return_value = test_json_content.encode() - from graphon.variables.segments import FloatSegment - - mock_segment = FloatSegment(value=test_number) - draft_var.build_segment_from_serialized_value.return_value = mock_segment - - # Execute the method - selector_tuple, variable = draft_var_loader._load_offloaded_variable(draft_var) - - # Verify results - assert selector_tuple == ("test-node-id", "test_number") - assert variable.id == "draft-var-id" - assert variable.name == "test_number" - assert variable.description == "test number description" - - # Verify method calls - mock_storage.load.assert_called_once_with("storage/key/test_number.json") - draft_var.build_segment_from_serialized_value.assert_called_once_with(SegmentType.NUMBER, test_number) - def test_load_offloaded_variable_array_type_unit(self, draft_var_loader): """Test _load_offloaded_variable with array type - isolated unit test.""" # Create mock objects @@ -229,12 +152,13 @@ class TestDraftVarLoaderSimple: variable_file.value_type = SegmentType.FILE variable_file.upload_file = upload_file - draft_var = WorkflowDraftVariable() - draft_var.id = "draft-var-id" - draft_var.app_id = "app-1" - draft_var.node_id = "test-node-id" - draft_var.name = "test_file" - draft_var.description = "test file description" + draft_var = WorkflowDraftVariable( + id="draft-var-id", + app_id="app-1", + node_id="test-node-id", + name="test_file", + description="test file description", + ) draft_var._set_selector(["test-node-id", "test_file"]) draft_var.variable_file = variable_file 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 b14d767568..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 @@ -200,7 +200,7 @@ class TestDraftVariableSaver: user=mock_user, ) - def test_draft_saver_with_small_variables(self, draft_saver, mock_session): + def test_draft_saver_with_small_variables(self, draft_saver: DraftVariableSaver, mock_session): with patch( "services.workflow_draft_variable_service.DraftVariableSaver._try_offload_large_variable", autospec=True ) as _mock_try_offload: @@ -212,18 +212,21 @@ class TestDraftVariableSaver: assert draft_var.file_id is None _mock_try_offload.return_value = None - def test_draft_saver_with_large_variables(self, draft_saver, mock_session): + def test_draft_saver_with_large_variables(self, draft_saver: DraftVariableSaver, mock_session): with patch( "services.workflow_draft_variable_service.DraftVariableSaver._try_offload_large_variable", autospec=True ) as _mock_try_offload: mock_segment = StringSegment(value="small value") mock_draft_var_file = WorkflowDraftVariableFile( - id=str(uuidv7()), + tenant_id=str(uuidv7()), + app_id=str(uuidv7()), + user_id=str(uuidv7()), size=1024, length=10, value_type=SegmentType.ARRAY_STRING, - upload_file_id=str(uuid.uuid4()), + upload_file_id=str(uuidv7()), ) + mock_draft_var_file.id = str(uuidv7()) _mock_try_offload.return_value = mock_segment, mock_draft_var_file draft_var = draft_saver._create_draft_variable(name="small_var", value=mock_segment, visible=True) diff --git a/api/uv.lock b/api/uv.lock index 1b52f8b53f..9806f506aa 100644 --- a/api/uv.lock +++ b/api/uv.lock @@ -481,7 +481,7 @@ wheels = [ [[package]] name = "bce-python-sdk" -version = "0.9.70" +version = "0.9.71" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "crc32c" }, @@ -489,9 +489,9 @@ dependencies = [ { name = "pycryptodome" }, { name = "six" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f7/a9/7c21a9073eb9ad7e8cacf6f8a0e47c0d01ad7bf8fd8e0dc42164b117d60b/bce_python_sdk-0.9.70.tar.gz", hash = "sha256:3b37fd7448278dd33f745a6a23198a2cc2490fded9cb8d59b72500784853df4e", size = 299967, upload-time = "2026-04-14T12:02:42.034Z" } +sdist = { url = "https://files.pythonhosted.org/packages/5a/74/72058f098b9e7184376f2b3d4c1d233ca7fdc52d0f527078f3ce4d9828b9/bce_python_sdk-0.9.71.tar.gz", hash = "sha256:7a917edaee39082694776e25a9e6556ec8072400a3be649f28eb13f9c7a0b5b5", size = 301508, upload-time = "2026-04-28T06:23:21.061Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3c/2d/70fc866ff98d1f6bd75b0a4235694129b3c519b014254d7bcfc02ffe1bee/bce_python_sdk-0.9.70-py3-none-any.whl", hash = "sha256:fd1f31113e4a8dca314f040662b7caf07ec11cf896c5da232627a9a2c9d2e3a1", size = 415660, upload-time = "2026-04-14T12:02:40.034Z" }, + { url = "https://files.pythonhosted.org/packages/2d/2d/821ae8878dc36b77e56bb7e5dbf9a8e73209c11d38c0ba6b38b5778668ae/bce_python_sdk-0.9.71-py3-none-any.whl", hash = "sha256:9f64a99267616456bac487983d92cc778720bf4f102c8931e8e38aea3cb63268", size = 417000, upload-time = "2026-04-28T06:23:19.078Z" }, ] [[package]] @@ -604,29 +604,29 @@ wheels = [ [[package]] name = "boto3" -version = "1.42.96" +version = "1.43.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "botocore" }, { name = "jmespath" }, { name = "s3transfer" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a6/2d/69fb3acd50bab83fb295c167d33c4b653faeb5fb0f42bfca4d9b69d6fb68/boto3-1.42.96.tar.gz", hash = "sha256:b38a9e4a3fbbee9017252576f1379780d0a5814768676c08df2f539d31fcdd68", size = 113203, upload-time = "2026-04-24T19:47:18.677Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f2/50/ea184e159c4ac64fef816a72094fb8656eb071361a39ed22c0e3b15a35b4/boto3-1.43.3.tar.gz", hash = "sha256:7c7777862ffc898f05efa566032bbabfe226dbb810e35ec11125817f128bc5c5", size = 113111, upload-time = "2026-05-04T19:34:09.731Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2b/9d/b3f617d011c42eb804d993103b8fa9acdce153e181a3042f58bfe33d7cb4/boto3-1.42.96-py3-none-any.whl", hash = "sha256:2f4566da2c209a98bdbfc874d813ef231c84ad24e4f815e9bc91de5f63351a24", size = 140557, upload-time = "2026-04-24T19:47:15.824Z" }, + { url = "https://files.pythonhosted.org/packages/c8/ad/8a6946a329f0127322108e537dc1c0d9f8eea4f1d1231702c073d2e85f46/boto3-1.43.3-py3-none-any.whl", hash = "sha256:fb9fe51849ef2a78198d582756fc06f14f7de27f73e0fa90275d6aa4171eb4d0", size = 140501, upload-time = "2026-05-04T19:34:07.991Z" }, ] [[package]] name = "boto3-stubs" -version = "1.42.96" +version = "1.43.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "botocore-stubs" }, { name = "types-s3transfer" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/77/86/65f45f84621cccc2471871088bab8fe515b4346ba9e48d9001484ec440d6/boto3_stubs-1.42.96.tar.gz", hash = "sha256:1e7819c34d1eae8e5e3cfaf9d144fdcad65aad184b380488871de1d0b2851879", size = 102691, upload-time = "2026-04-24T20:25:13.984Z" } +sdist = { url = "https://files.pythonhosted.org/packages/8a/7f/399bcdeaa60a89aafe5292c8364c313177d22b886dffc1bd7b56fe817900/boto3_stubs-1.43.2.tar.gz", hash = "sha256:0d46636f3e761a92070114b39a76b154c5da6c5794c890e1440a7f191bf1ff2e", size = 102658, upload-time = "2026-05-01T20:31:36.963Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a7/51/bdac1ff9fd4321091183776c5adffce5fc7b4d0fec7e38af9064e24a2497/boto3_stubs-1.42.96-py3-none-any.whl", hash = "sha256:2c112e257f40006147a53f6f62075804689154271973b2807f5656feaa804216", size = 70668, upload-time = "2026-04-24T20:25:09.736Z" }, + { url = "https://files.pythonhosted.org/packages/da/df/17647562444b2047ca325eaaf2fea738571822b7b4efdaa6bacf0fd4fff9/boto3_stubs-1.43.2-py3-none-any.whl", hash = "sha256:941f2907236223a1209704eaf708d3cdf1ecc8695618c558f9fb9e23e90c513b", size = 70653, upload-time = "2026-05-01T20:31:30.057Z" }, ] [package.optional-dependencies] @@ -636,16 +636,16 @@ bedrock-runtime = [ [[package]] name = "botocore" -version = "1.42.96" +version = "1.43.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "jmespath" }, { name = "python-dateutil" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/61/77/2c333622a1d47cf5bf73cdcab0cb6c92addafbef2ec05f81b9f75687d9e5/botocore-1.42.96.tar.gz", hash = "sha256:75b3b841ffacaa944f645196655a21ca777591dd8911e732bfb6614545af0250", size = 15263344, upload-time = "2026-04-24T19:47:05.283Z" } +sdist = { url = "https://files.pythonhosted.org/packages/74/ac/cd55f886e17b6b952dbc95b792d3645a73d58586a1400ababe54406073bd/botocore-1.43.3.tar.gz", hash = "sha256:eac6da0fffccf87888ebf4d89f0b2378218a707efa748cd955b838995e944695", size = 15308705, upload-time = "2026-05-04T19:33:56.28Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/45/56/152c3a859ca1b9d77ed16deac3cf81682013677c68cf5715698781fc81bd/botocore-1.42.96-py3-none-any.whl", hash = "sha256:db2c3e2006628be6fde81a24124a6563c363d6982fb92728837cf174bad9d98a", size = 14945920, upload-time = "2026-04-24T19:47:00.323Z" }, + { url = "https://files.pythonhosted.org/packages/be/99/1d9e296edf244f47e0508032f20999f8fd40704dd3c5b601fed099424eb6/botocore-1.43.3-py3-none-any.whl", hash = "sha256:ec0769eb0f7c5034856bb406a92698dbc02a3d4be0f78a384747106b161d8ea3", size = 14989027, upload-time = "2026-05-04T19:33:50.81Z" }, ] [[package]] @@ -1289,7 +1289,7 @@ wheels = [ [[package]] name = "dify-api" -version = "1.13.3" +version = "1.14.0" source = { virtual = "." } dependencies = [ { name = "aliyun-log-python-sdk" }, @@ -1578,7 +1578,7 @@ requires-dist = [ { name = "aliyun-log-python-sdk", specifier = ">=0.9.44,<1.0.0" }, { name = "azure-identity", specifier = ">=1.25.3,<2.0.0" }, { name = "bleach", specifier = ">=6.3.0" }, - { name = "boto3", specifier = ">=1.42.96" }, + { name = "boto3", specifier = ">=1.43.3" }, { name = "celery", specifier = ">=5.6.3" }, { name = "croniter", specifier = ">=6.2.2" }, { name = "fastopenapi", extras = ["flask"], specifier = "~=0.7.0" }, @@ -1592,8 +1592,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" }, @@ -1619,12 +1619,12 @@ requires-dist = [ [package.metadata.requires-dev] dev = [ { name = "basedpyright", specifier = ">=1.39.3" }, - { name = "boto3-stubs", specifier = ">=1.42.96" }, + { name = "boto3-stubs", specifier = ">=1.43.2" }, { name = "celery-types", specifier = ">=0.23.0" }, { name = "coverage", specifier = ">=7.13.4" }, { name = "dotenv-linter", specifier = ">=0.7.0" }, { name = "faker", specifier = ">=40.15.0" }, - { name = "hypothesis", specifier = ">=6.152.3" }, + { name = "hypothesis", specifier = ">=6.152.4" }, { name = "import-linter", specifier = ">=2.3" }, { name = "lxml-stubs", specifier = ">=0.5.1" }, { name = "mypy", specifier = ">=1.20.2" }, @@ -1642,8 +1642,8 @@ dev = [ { name = "testcontainers", specifier = ">=4.14.2" }, { name = "types-aiofiles", specifier = ">=25.1.0" }, { name = "types-beautifulsoup4", specifier = ">=4.12.0" }, - { name = "types-cachetools", specifier = ">=6.2.0" }, - { name = "types-cffi", specifier = ">=2.0.0.20260408" }, + { name = "types-cachetools", specifier = ">=7.0.0.20260503" }, + { name = "types-cffi", specifier = ">=2.0.0.20260429" }, { name = "types-colorama", specifier = ">=0.4.15" }, { name = "types-defusedxml", specifier = ">=0.7.0" }, { name = "types-deprecated", specifier = ">=1.3.1" }, @@ -1651,7 +1651,7 @@ dev = [ { name = "types-flask-cors", specifier = ">=6.0.0" }, { name = "types-flask-migrate", specifier = ">=4.1.0" }, { name = "types-gevent", specifier = ">=26.4.0" }, - { name = "types-greenlet", specifier = ">=3.4.0" }, + { name = "types-greenlet", specifier = ">=3.5.0.20260428" }, { name = "types-html5lib", specifier = ">=1.1.11" }, { name = "types-jmespath", specifier = ">=1.1.0.20260408" }, { name = "types-markdown", specifier = ">=3.10.2" }, @@ -1660,7 +1660,7 @@ dev = [ { name = "types-olefile", specifier = ">=0.47.0" }, { name = "types-openpyxl", specifier = ">=3.1.5" }, { name = "types-pexpect", specifier = ">=4.9.0" }, - { name = "types-protobuf", specifier = ">=7.34.1" }, + { name = "types-protobuf", specifier = ">=7.34.1.20260503" }, { name = "types-psutil", specifier = ">=7.2.2" }, { name = "types-psycopg2", specifier = ">=2.9.21.20260422" }, { name = "types-pygments", specifier = ">=2.20.0" }, @@ -1683,7 +1683,7 @@ dev = [ ] storage = [ { name = "azure-storage-blob", specifier = ">=12.28.0" }, - { name = "bce-python-sdk", specifier = ">=0.9.70" }, + { name = "bce-python-sdk", specifier = ">=0.9.71" }, { name = "cos-python-sdk-v5", specifier = ">=1.9.42" }, { name = "esdk-obs-python", specifier = ">=3.22.2" }, { name = "google-cloud-storage", specifier = ">=3.10.1" }, @@ -2719,7 +2719,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" }, @@ -2728,9 +2728,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]] @@ -2766,7 +2766,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" }, @@ -2782,9 +2782,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]] @@ -3319,14 +3319,14 @@ wheels = [ [[package]] name = "hypothesis" -version = "6.152.3" +version = "6.152.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "sortedcontainers" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/70/90/fc0b263b6f2622e5f8d2aa93f2e95ba79718a5faa7d2a74bfab10d6b0905/hypothesis-6.152.3.tar.gz", hash = "sha256:c4e5300d3755b6c8a270a28fe5abff40153e927328e89d2bb0229c1384618998", size = 466478, upload-time = "2026-04-26T17:31:07.657Z" } +sdist = { url = "https://files.pythonhosted.org/packages/fa/c7/3147bd903d6b18324a016d43a259cf5b4bb4545e1ead6773dc8a0374e70a/hypothesis-6.152.4.tar.gz", hash = "sha256:31c8f9ce619716f543e2710b489b1633c833586641d9e6c94cee03f109a5afc4", size = 466444, upload-time = "2026-04-27T20:18:37.594Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/90/38/15475b91a4c12721d2be3349e9d6cf8649c76ed9bc1287e2de7c8d06c261/hypothesis-6.152.3-py3-none-any.whl", hash = "sha256:4b47f00916c858ed49cf870a2f08b04e5fff5afae0bb78f3b4a6d9c74fd6c7bc", size = 532154, upload-time = "2026-04-26T17:31:04.42Z" }, + { url = "https://files.pythonhosted.org/packages/19/89/0f50dd0d92e8a7dffc24f69ab910ff81db89b2f082ba42682bd57695e4d2/hypothesis-6.152.4-py3-none-any.whl", hash = "sha256:e730fd93c7578182efadc7f90b3c5437ee4d55edf738930eb5043c81ac1d97e8", size = 532145, upload-time = "2026-04-27T20:18:35.043Z" }, ] [[package]] @@ -3969,11 +3969,11 @@ wheels = [ [[package]] name = "mypy-boto3-bedrock-runtime" -version = "1.42.42" +version = "1.43.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/46/bb/65dc1b2c5796a6ab5f60bdb57343bd6c3ecb82251c580eca415c8548333e/mypy_boto3_bedrock_runtime-1.42.42.tar.gz", hash = "sha256:3a4088218478b6fbbc26055c03c95bee4fc04624a801090b3cce3037e8275c8d", size = 29840, upload-time = "2026-02-04T20:53:05.999Z" } +sdist = { url = "https://files.pythonhosted.org/packages/21/f2/61519c0162307b1e4d47f63ed8b25390874640934f3d2d25c5d6c5078dd8/mypy_boto3_bedrock_runtime-1.43.0.tar.gz", hash = "sha256:19fc3167de6e66dd7a0ab293adc55c93e2fd67be35e8ab4fc3a7523a380752ce", size = 29903, upload-time = "2026-04-29T22:57:57.561Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/00/43/7ea062f2228f47b5779dcfa14dab48d6e29f979b35d1a5102b0ba80b9c1b/mypy_boto3_bedrock_runtime-1.42.42-py3-none-any.whl", hash = "sha256:b2d16eae22607d0685f90796b3a0afc78c0b09d45872e00eafd634a31dd9358f", size = 36077, upload-time = "2026-02-04T20:53:01.768Z" }, + { url = "https://files.pythonhosted.org/packages/40/4d/7e4c4d55af23b2b1304d6814db8c406beab7977056963200230417c1a2db/mypy_boto3_bedrock_runtime-1.43.0-py3-none-any.whl", hash = "sha256:a125296f992093d58bdcd95176002680fa81ca8a8b8bdf02afad7e5f2d8966aa", size = 36172, upload-time = "2026-04-29T22:57:54.777Z" }, ] [[package]] @@ -5914,14 +5914,14 @@ wheels = [ [[package]] name = "s3transfer" -version = "0.16.0" +version = "0.17.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "botocore" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/05/04/74127fc843314818edfa81b5540e26dd537353b123a4edc563109d8f17dd/s3transfer-0.16.0.tar.gz", hash = "sha256:8e990f13268025792229cd52fa10cb7163744bf56e719e0b9cb925ab79abf920", size = 153827, upload-time = "2025-12-01T02:30:59.114Z" } +sdist = { url = "https://files.pythonhosted.org/packages/9b/ec/7c692cde9125b77e84b307354d4fb705f98b8ccad59a036d5957ca75bfc3/s3transfer-0.17.0.tar.gz", hash = "sha256:9edeb6d1c3c2f89d6050348548834ad8289610d886e5bf7b7207728bd43ce33a", size = 155337, upload-time = "2026-04-29T22:07:36.33Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/fc/51/727abb13f44c1fcf6d145979e1535a35794db0f6e450a0cb46aa24732fe2/s3transfer-0.16.0-py3-none-any.whl", hash = "sha256:18e25d66fed509e3868dc1572b3f427ff947dd2c56f844a5bf09481ad3f3b2fe", size = 86830, upload-time = "2025-12-01T02:30:57.729Z" }, + { url = "https://files.pythonhosted.org/packages/87/72/c6c32d2b657fa3dad1de340254e14390b1e334ce38268b7ad51abda3c8c2/s3transfer-0.17.0-py3-none-any.whl", hash = "sha256:ce3801712acf4ad3e89fb9990df97b4972e93f4b3b0004d214be5bce12814c20", size = 86811, upload-time = "2026-04-29T22:07:34.966Z" }, ] [[package]] @@ -6585,23 +6585,23 @@ wheels = [ [[package]] name = "types-cachetools" -version = "6.2.0.20260408" +version = "7.0.0.20260503" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ec/61/475b0e8f4a92e5e33affcc6f4e6344c6dee540824021d22f695ea170da63/types_cachetools-6.2.0.20260408.tar.gz", hash = "sha256:0d8ae2dd5ba0b4cfe6a55c34396dd0415f1be07d0033d84781cdc4ed9c2ebc6b", size = 9854, upload-time = "2026-04-08T04:31:49.665Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ec/57/5d3b8b3e66b002911ec1274e87f904eeee1d843c8713d95476c25c29cf31/types_cachetools-7.0.0.20260503.tar.gz", hash = "sha256:dfa4dcdf453f397dfc6d69fc0a57423ac1f248393f70aa56b5d05fac2df7a96c", size = 10033, upload-time = "2026-05-03T05:19:54.128Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/bb/7d/579f50f4f004ee93c7d1baa95339591cac1fe02f4e3fb8fc0f900ee4a80f/types_cachetools-6.2.0.20260408-py3-none-any.whl", hash = "sha256:470e0b274737feae74beed3d764885bf4664002ecc393fba3778846b13ce92cb", size = 9350, upload-time = "2026-04-08T04:31:48.826Z" }, + { url = "https://files.pythonhosted.org/packages/3d/a8/84562723d9a3572e0851d82bdea6bed5a7dc033c6bd648f492c76b8c4ac8/types_cachetools-7.0.0.20260503-py3-none-any.whl", hash = "sha256:011b4fe0e85ef05c4a2471a4fda40254a78746b501cc1727359233872bb3a4e9", size = 9493, upload-time = "2026-05-03T05:19:53.124Z" }, ] [[package]] name = "types-cffi" -version = "2.0.0.20260408" +version = "2.0.0.20260429" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "types-setuptools" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/64/67/eb4ef3408fdc0b4e5af38b30c0e6ad4663b41bdae9fb85a9f09a8db61a99/types_cffi-2.0.0.20260408.tar.gz", hash = "sha256:aa8b9c456ab715c079fc655929811f21f331bfb940f4a821987c581bf4e36230", size = 17541, upload-time = "2026-04-08T04:36:03.918Z" } +sdist = { url = "https://files.pythonhosted.org/packages/0c/7d/56b9be8b0f9dfbffb7c73e248aacf178693ff3c6cf765b77c43a1e886e04/types_cffi-2.0.0.20260429.tar.gz", hash = "sha256:afe7d9777a2921139623af0b94647637a5bd0b938b77ec125e5e5e068a1727bd", size = 17562, upload-time = "2026-04-29T05:16:43.29Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c3/a3/7fbd93ededcc7c77e9e5948b9794161733ebdbf618a27965b1bea0e728a4/types_cffi-2.0.0.20260408-py3-none-any.whl", hash = "sha256:68bd296742b4ff7c0afe3547f50bd0acc55416ecf322ffefd2b7344ef6388a42", size = 20101, upload-time = "2026-04-08T04:36:02.995Z" }, + { url = "https://files.pythonhosted.org/packages/b8/2c/79fa47a70d534f63a54b6d22e28cc842f8c6d9ebec93048355b0020bc7a9/types_cffi-2.0.0.20260429-py3-none-any.whl", hash = "sha256:6a4237bfdbd50e4d0726929070d8b9983bde541726a5a6fe0e8e24e78c1b3826", size = 20103, upload-time = "2026-04-29T05:16:42.155Z" }, ] [[package]] @@ -6680,11 +6680,11 @@ wheels = [ [[package]] name = "types-greenlet" -version = "3.4.0.20260409" +version = "3.5.0.20260428" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/27/a6/668751bc864efe820e1eb12c2a77f9e62537f433cc002e483ad01badb04b/types_greenlet-3.4.0.20260409.tar.gz", hash = "sha256:81d2cf628934a16856bb9e54136def8de5356e934f0ad5d5474f219a0c5cb205", size = 8976, upload-time = "2026-04-09T04:22:31.693Z" } +sdist = { url = "https://files.pythonhosted.org/packages/79/50/d255c0e068679d7b9441d9408424ddf9e1f35620548e121003b3660af526/types_greenlet-3.5.0.20260428.tar.gz", hash = "sha256:6c188f5e9c5775d50bd00780a3eb1fb3cde17c396cf9703e3d417936e9e7a082", size = 9003, upload-time = "2026-04-28T05:19:43.062Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/4f/3f/c8a4d8782f78fccb4b5fe91c5eae2efce6648072754bc7096b1e3b5407ad/types_greenlet-3.4.0.20260409-py3-none-any.whl", hash = "sha256:cbceadb4594eccd95b57b3f7fa8a9b851488f5e6c05026f4a3db9aac02ec8333", size = 8812, upload-time = "2026-04-09T04:22:30.734Z" }, + { url = "https://files.pythonhosted.org/packages/30/e5/5ff280f02392ced53cb5e866b660b492b4245b1395a61e57d2a6dc02977b/types_greenlet-3.5.0.20260428-py3-none-any.whl", hash = "sha256:7b0f23ce84ee93474d4aa8058920f0578181e11431be92ce9a4ad4123de2c41b", size = 8809, upload-time = "2026-04-28T05:19:41.976Z" }, ] [[package]] @@ -6764,11 +6764,11 @@ wheels = [ [[package]] name = "types-protobuf" -version = "7.34.1.20260408" +version = "7.34.1.20260503" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/5b/b1/4521e68c2cc17703d80eb42796751345376dd4c706f84007ef5e7c707774/types_protobuf-7.34.1.20260408.tar.gz", hash = "sha256:e2c0a0430e08c75b52671a6f0035abfdcc791aad12af16274282de1b721758ab", size = 68835, upload-time = "2026-04-08T04:26:43.613Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a0/31/87969cb3e62287bde7598b78b3c098d2873d54f5fb5a7cfbcaa73b8c965e/types_protobuf-7.34.1.20260503.tar.gz", hash = "sha256:effbc819aa17e02448dde99f089c6794662d66f4b2797e922f185ffe0b24e766", size = 68830, upload-time = "2026-05-03T05:19:50.739Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ef/b5/0bc9874d89c58fb0ce851e150055ce732d254dbb10b06becbc7635d0d635/types_protobuf-7.34.1.20260408-py3-none-any.whl", hash = "sha256:ebbcd4e27b145aef6a59bc0cb6c013b3528151c1ba5e7f7337aeee355d276a5e", size = 86012, upload-time = "2026-04-08T04:26:42.566Z" }, + { url = "https://files.pythonhosted.org/packages/f9/67/a33fb18090a927794a5ee4b1a30730b528ace0dad6b18932540d21258184/types_protobuf-7.34.1.20260503-py3-none-any.whl", hash = "sha256:75fd66121d56785c91828b8bf7b511f39ba847f11e682573e41847f01e9cd1de", size = 86019, upload-time = "2026-05-03T05:19:49.486Z" }, ] [[package]] diff --git a/docker/docker-compose-template.yaml b/docker/docker-compose-template.yaml index 888f96332c..87fa01f671 100644 --- a/docker/docker-compose-template.yaml +++ b/docker/docker-compose-template.yaml @@ -21,7 +21,7 @@ services: # API service api: - image: langgenius/dify-api:1.13.3 + image: langgenius/dify-api:1.14.0 restart: always environment: # Use the shared environment variables. @@ -69,7 +69,7 @@ services: # worker service # The Celery worker for processing all queues (dataset, workflow, mail, etc.) worker: - image: langgenius/dify-api:1.13.3 + image: langgenius/dify-api:1.14.0 restart: always environment: # Use the shared environment variables. @@ -115,7 +115,7 @@ services: # worker_beat service # Celery beat for scheduling periodic tasks. worker_beat: - image: langgenius/dify-api:1.13.3 + image: langgenius/dify-api:1.14.0 restart: always environment: # Use the shared environment variables. @@ -152,7 +152,7 @@ services: # Frontend web application. web: - image: langgenius/dify-web:1.13.3 + image: langgenius/dify-web:1.14.0 restart: always environment: CONSOLE_API_URL: ${CONSOLE_API_URL:-} @@ -268,7 +268,7 @@ services: # The DifySandbox sandbox: - image: langgenius/dify-sandbox:0.2.14 + image: langgenius/dify-sandbox:0.2.15 restart: always environment: # The DifySandbox configurations @@ -292,7 +292,7 @@ services: # plugin daemon plugin_daemon: - image: langgenius/dify-plugin-daemon:0.5.3-local + image: langgenius/dify-plugin-daemon:0.6.0-local restart: always environment: # Use the shared environment variables. diff --git a/docker/docker-compose.middleware.yaml b/docker/docker-compose.middleware.yaml index 911da70a73..23c26c6695 100644 --- a/docker/docker-compose.middleware.yaml +++ b/docker/docker-compose.middleware.yaml @@ -59,19 +59,25 @@ services: - ${MYSQL_HOST_VOLUME:-./volumes/mysql/data}:/var/lib/mysql ports: - "${EXPOSE_MYSQL_PORT:-3306}:3306" + # mysqladmin ping passes during mysql:8.0's TCP-listening stage even while + # the server is still finalising init, leading to "Lost connection during + # query" on the first real query. Verify with a real SELECT instead. healthcheck: test: [ "CMD", - "mysqladmin", - "ping", - "-u", - "root", + "mysql", + "-h", + "127.0.0.1", + "-uroot", "-p${DB_PASSWORD:-difyai123456}", + "-e", + "SELECT 1", ] interval: 1s timeout: 3s retries: 30 + start_period: 20s # The redis cache. redis: @@ -97,7 +103,7 @@ services: # The DifySandbox sandbox: - image: langgenius/dify-sandbox:0.2.14 + image: langgenius/dify-sandbox:0.2.15 restart: always env_file: - ./middleware.env @@ -123,7 +129,7 @@ services: # plugin daemon plugin_daemon: - image: langgenius/dify-plugin-daemon:0.5.3-local + image: langgenius/dify-plugin-daemon:0.6.0-local restart: always env_file: - ./middleware.env diff --git a/docker/docker-compose.yaml b/docker/docker-compose.yaml index 60ba510f44..a72136049d 100644 --- a/docker/docker-compose.yaml +++ b/docker/docker-compose.yaml @@ -745,7 +745,7 @@ services: # API service api: - image: langgenius/dify-api:1.13.3 + image: langgenius/dify-api:1.14.0 restart: always environment: # Use the shared environment variables. @@ -793,7 +793,7 @@ services: # worker service # The Celery worker for processing all queues (dataset, workflow, mail, etc.) worker: - image: langgenius/dify-api:1.13.3 + image: langgenius/dify-api:1.14.0 restart: always environment: # Use the shared environment variables. @@ -839,7 +839,7 @@ services: # worker_beat service # Celery beat for scheduling periodic tasks. worker_beat: - image: langgenius/dify-api:1.13.3 + image: langgenius/dify-api:1.14.0 restart: always environment: # Use the shared environment variables. @@ -876,7 +876,7 @@ services: # Frontend web application. web: - image: langgenius/dify-web:1.13.3 + image: langgenius/dify-web:1.14.0 restart: always environment: CONSOLE_API_URL: ${CONSOLE_API_URL:-} @@ -992,7 +992,7 @@ services: # The DifySandbox sandbox: - image: langgenius/dify-sandbox:0.2.14 + image: langgenius/dify-sandbox:0.2.15 restart: always environment: # The DifySandbox configurations @@ -1016,7 +1016,7 @@ services: # plugin daemon plugin_daemon: - image: langgenius/dify-plugin-daemon:0.5.3-local + image: langgenius/dify-plugin-daemon:0.6.0-local restart: always environment: # Use the shared environment variables. diff --git a/e2e/features/apps/share-app.feature b/e2e/features/apps/share-app.feature index 22f89f7ebb..1c707306ef 100644 --- a/e2e/features/apps/share-app.feature +++ b/e2e/features/apps/share-app.feature @@ -17,3 +17,10 @@ Feature: Share app publicly Given a workflow app has been published and shared via API When I open the shared app URL Then the shared app page should be accessible + + @unauthenticated + Scenario: Run a shared workflow app without authentication + Given a workflow app has been published and shared via API + When I open the shared app URL + And I run the shared workflow app + Then the shared workflow run should succeed diff --git a/e2e/features/step-definitions/apps/share-app.steps.ts b/e2e/features/step-definitions/apps/share-app.steps.ts index 24da05baab..d5742bdaa8 100644 --- a/e2e/features/step-definitions/apps/share-app.steps.ts +++ b/e2e/features/step-definitions/apps/share-app.steps.ts @@ -37,3 +37,15 @@ Then('the shared app page should be accessible', async function (this: DifyWorld await expect(this.getPage()).toHaveURL(/\/(workflow|chat)\/[a-zA-Z0-9]+/, { timeout: 15_000 }) await expect(this.getPage().locator('body')).toBeVisible({ timeout: 10_000 }) }) + +When('I run the shared workflow app', async function (this: DifyWorld) { + const page = this.getPage() + const runButton = page.getByTestId('run-button') + + await expect(runButton).toBeEnabled({ timeout: 15_000 }) + await runButton.click() +}) + +Then('the shared workflow run should succeed', async function (this: DifyWorld) { + await expect(this.getPage().getByTestId('status-icon-success')).toBeVisible({ timeout: 55_000 }) +}) diff --git a/e2e/features/step-definitions/apps/workflow-run.steps.ts b/e2e/features/step-definitions/apps/workflow-run.steps.ts index 584a33e774..84c03bfa8f 100644 --- a/e2e/features/step-definitions/apps/workflow-run.steps.ts +++ b/e2e/features/step-definitions/apps/workflow-run.steps.ts @@ -12,8 +12,10 @@ Given('a minimal runnable workflow draft has been synced', async function (this: When('I run the workflow', async function (this: DifyWorld) { const page = this.getPage() - await page.getByText('Test Run').click() - await expect(page.getByText('Running').first()).toBeVisible({ timeout: 15_000 }) + const testRunButton = page.getByText('Test Run') + + await expect(testRunButton).toBeVisible({ timeout: 15_000 }) + await testRunButton.click() }) Then('the workflow run should succeed', async function (this: DifyWorld) { diff --git a/eslint-suppressions.json b/eslint-suppressions.json index 3f3bd5f1f7..fcaa479bc1 100644 --- a/eslint-suppressions.json +++ b/eslint-suppressions.json @@ -119,11 +119,6 @@ "count": 3 } }, - "web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/config-popup.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/provider-panel.tsx": { "ts/no-explicit-any": { "count": 1 @@ -167,11 +162,6 @@ "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 @@ -202,26 +192,11 @@ "count": 4 } }, - "web/app/components/app-sidebar/basic.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/app-sidebar/dataset-info/dropdown.tsx": { - "ts/no-explicit-any": { - "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 @@ -361,16 +336,6 @@ "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 @@ -385,9 +350,6 @@ } }, "web/app/components/app/configuration/config/agent/agent-tools/index.tsx": { - "no-restricted-imports": { - "count": 1 - }, "ts/no-explicit-any": { "count": 9 } @@ -458,21 +420,6 @@ "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 @@ -483,11 +430,6 @@ "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 @@ -496,11 +438,6 @@ "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 @@ -529,11 +466,6 @@ "count": 2 } }, - "web/app/components/app/configuration/debug/debug-with-multiple-model/model-parameter-trigger.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/app/configuration/debug/debug-with-multiple-model/text-generation-item.tsx": { "ts/no-explicit-any": { "count": 8 @@ -562,11 +494,6 @@ "count": 1 } }, - "web/app/components/app/configuration/prompt-value-panel/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/app/configuration/prompt-value-panel/utils.ts": { "ts/no-explicit-any": { "count": 1 @@ -623,9 +550,6 @@ } }, "web/app/components/app/log/list.tsx": { - "no-restricted-imports": { - "count": 1 - }, "react/set-state-in-effect": { "count": 6 }, @@ -641,35 +565,6 @@ "count": 2 } }, - "web/app/components/app/overview/app-card.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "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": 2 - }, - "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 @@ -713,25 +608,6 @@ "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 @@ -799,11 +675,6 @@ "count": 3 } }, - "web/app/components/base/audio-btn/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/base/audio-gallery/AudioPlayer.tsx": { "ts/no-explicit-any": { "count": 2 @@ -879,9 +750,6 @@ } }, "web/app/components/base/chat/chat-with-history/header/index.tsx": { - "no-restricted-imports": { - "count": 1 - }, "ts/no-explicit-any": { "count": 2 } @@ -999,11 +867,6 @@ "count": 7 } }, - "web/app/components/base/chat/embedded-chatbot/header/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/base/chat/embedded-chatbot/hooks.tsx": { "react-hooks-extra/no-direct-set-state-in-use-effect": { "count": 3 @@ -1045,11 +908,6 @@ "count": 1 } }, - "web/app/components/base/copy-feedback/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/base/date-and-time-picker/hooks.ts": { "react/no-unnecessary-use-prefix": { "count": 2 @@ -1101,11 +959,6 @@ "count": 1 } }, - "web/app/components/base/features/new-feature-panel/annotation-reply/annotation-ctrl-button.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/base/features/new-feature-panel/annotation-reply/config-param-modal.tsx": { "no-restricted-imports": { "count": 1 @@ -1131,15 +984,7 @@ "count": 2 } }, - "web/app/components/base/features/new-feature-panel/feature-bar.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/base/features/new-feature-panel/feature-card.tsx": { - "no-restricted-imports": { - "count": 1 - }, "ts/no-explicit-any": { "count": 5 } @@ -1176,9 +1021,6 @@ } }, "web/app/components/base/file-uploader/file-list-in-log.tsx": { - "no-restricted-imports": { - "count": 1 - }, "react/no-missing-key": { "count": 1 } @@ -1201,11 +1043,6 @@ "count": 2 } }, - "web/app/components/base/file-uploader/pdf-preview.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/base/file-uploader/store.tsx": { "react-refresh/only-export-components": { "count": 4 @@ -1223,7 +1060,7 @@ }, "web/app/components/base/form/components/base/base-field.tsx": { "no-restricted-imports": { - "count": 2 + "count": 1 }, "ts/no-explicit-any": { "count": 3 @@ -1601,15 +1438,7 @@ "count": 1 } }, - "web/app/components/base/image-uploader/image-list.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/base/image-uploader/image-preview.tsx": { - "no-restricted-imports": { - "count": 1 - }, "ts/no-explicit-any": { "count": 1 } @@ -1772,9 +1601,6 @@ } }, "web/app/components/base/new-audio-button/index.tsx": { - "no-restricted-imports": { - "count": 1 - }, "ts/no-explicit-any": { "count": 1 } @@ -1807,11 +1633,6 @@ "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 @@ -1825,11 +1646,6 @@ "count": 4 } }, - "web/app/components/base/prompt-editor/plugins/component-picker-block/index.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, "web/app/components/base/prompt-editor/plugins/component-picker-block/menu.tsx": { "erasable-syntax-only/parameter-properties": { "count": 1 @@ -1957,11 +1773,6 @@ "count": 1 } }, - "web/app/components/base/qrcode/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/base/radio-card/index.stories.tsx": { "ts/no-explicit-any": { "count": 1 @@ -1990,25 +1801,6 @@ "count": 1 } }, - "web/app/components/base/select/index.stories.tsx": { - "no-console": { - "count": 4 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, - "web/app/components/base/select/index.tsx": { - "react/set-state-in-effect": { - "count": 2 - }, - "style/multiline-ternary": { - "count": 2 - }, - "ts/no-explicit-any": { - "count": 1 - } - }, "web/app/components/base/sort/index.tsx": { "ts/no-explicit-any": { "count": 2 @@ -2124,11 +1916,6 @@ "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 @@ -2157,11 +1944,6 @@ "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 @@ -2187,11 +1969,6 @@ "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 @@ -2202,11 +1979,6 @@ "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 @@ -2225,11 +1997,6 @@ "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 @@ -2240,11 +2007,6 @@ "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 @@ -2270,26 +2032,11 @@ "count": 1 } }, - "web/app/components/datasets/create/step-two/components/general-chunking-options.tsx": { - "no-restricted-imports": { - "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 @@ -2324,16 +2071,6 @@ "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 @@ -2382,11 +2119,6 @@ "count": 1 } }, - "web/app/components/datasets/documents/components/document-list/components/document-table-row.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/datasets/documents/components/document-list/components/index.ts": { "no-barrel-files/no-barrel-files": { "count": 2 @@ -2447,11 +2179,6 @@ "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 @@ -2561,11 +2288,6 @@ "count": 1 } }, - "web/app/components/datasets/documents/detail/metadata/components/doc-type-selector.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/datasets/documents/detail/metadata/components/metadata-field-list.tsx": { "ts/no-non-null-asserted-optional-chain": { "count": 1 @@ -2602,19 +2324,6 @@ "count": 3 } }, - "web/app/components/datasets/documents/status-item/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/datasets/external-api/external-api-modal/index.tsx": { - "no-restricted-imports": { - "count": 2 - }, - "react/set-state-in-effect": { - "count": 1 - } - }, "web/app/components/datasets/external-knowledge-base/create/ExternalApiSelect.tsx": { "react/set-state-in-effect": { "count": 1 @@ -2625,11 +2334,6 @@ "count": 1 } }, - "web/app/components/datasets/extra-info/statistics.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/datasets/formatted-text/flavours/type.ts": { "ts/no-empty-object-type": { "count": 1 @@ -2640,11 +2344,6 @@ "count": 1 } }, - "web/app/components/datasets/hit-testing/components/query-input/textarea.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/datasets/hit-testing/components/result-item-external.tsx": { "no-restricted-imports": { "count": 1 @@ -2660,21 +2359,11 @@ "count": 1 } }, - "web/app/components/datasets/list/dataset-card/components/dataset-card-footer.tsx": { - "no-restricted-imports": { - "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/edited-beacon.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/datasets/metadata/edit-metadata-batch/input-combined.tsx": { "ts/no-explicit-any": { "count": 2 @@ -2718,11 +2407,6 @@ "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 @@ -2743,16 +2427,6 @@ "count": 1 } }, - "web/app/components/datasets/settings/index-method/keyword-number.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 @@ -2811,11 +2485,6 @@ "count": 1 } }, - "web/app/components/explore/try-app/app/chat.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/explore/try-app/index.tsx": { "no-restricted-imports": { "count": 1 @@ -2941,9 +2610,6 @@ } }, "web/app/components/header/account-setting/key-validator/declarations.ts": { - "erasable-syntax-only/enums": { - "count": 1 - }, "ts/no-explicit-any": { "count": 1 } @@ -3028,14 +2694,6 @@ "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 @@ -3064,15 +2722,7 @@ "count": 2 } }, - "web/app/components/header/account-setting/model-provider-page/model-selector/feature-icon.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/header/account-setting/model-provider-page/provider-added-card/cooldown-timer.tsx": { - "no-restricted-imports": { - "count": 1 - }, "react/set-state-in-effect": { "count": 2 } @@ -3088,9 +2738,6 @@ } }, "web/app/components/header/account-setting/model-provider-page/provider-added-card/model-load-balancing-configs.tsx": { - "no-restricted-imports": { - "count": 1 - }, "ts/no-explicit-any": { "count": 5 } @@ -3106,11 +2753,6 @@ "count": 3 } }, - "web/app/components/header/account-setting/model-provider-page/provider-added-card/priority-use-tip.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/header/account-setting/model-provider-page/utils.ts": { "no-barrel-files/no-barrel-files": { "count": 2 @@ -3121,14 +2763,6 @@ "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 @@ -3203,33 +2837,12 @@ "count": 1 } }, - "web/app/components/plugins/plugin-auth/authorize/add-oauth-button.tsx": { - "ts/no-explicit-any": { - "count": 2 - } - }, - "web/app/components/plugins/plugin-auth/authorize/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/plugins/plugin-auth/authorize/oauth-client-settings.tsx": { - "no-restricted-imports": { - "count": 1 - }, - "ts/no-explicit-any": { - "count": 2 - } - }, "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": { - "no-restricted-imports": { - "count": 1 - }, "ts/no-explicit-any": { "count": 1 } @@ -3299,9 +2912,6 @@ } }, "web/app/components/plugins/plugin-detail-panel/endpoint-list.tsx": { - "no-restricted-imports": { - "count": 1 - }, "ts/no-explicit-any": { "count": 2 } @@ -3327,9 +2937,6 @@ } }, "web/app/components/plugins/plugin-detail-panel/multiple-tool-selector/index.tsx": { - "no-restricted-imports": { - "count": 1 - }, "ts/no-explicit-any": { "count": 1 } @@ -3344,11 +2951,6 @@ "count": 2 } }, - "web/app/components/plugins/plugin-detail-panel/subscription-list/create/common-modal.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/plugins/plugin-detail-panel/subscription-list/create/hooks/use-common-modal-state.ts": { "erasable-syntax-only/enums": { "count": 1 @@ -3362,9 +2964,6 @@ "web/app/components/plugins/plugin-detail-panel/subscription-list/create/index.tsx": { "no-barrel-files/no-barrel-files": { "count": 3 - }, - "no-restricted-imports": { - "count": 1 } }, "web/app/components/plugins/plugin-detail-panel/subscription-list/create/oauth-client.tsx": { @@ -3400,11 +2999,6 @@ "count": 2 } }, - "web/app/components/plugins/plugin-detail-panel/subscription-list/list-view.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/plugins/plugin-detail-panel/subscription-list/log-viewer.tsx": { "erasable-syntax-only/enums": { "count": 1 @@ -3413,11 +3007,6 @@ "count": 2 } }, - "web/app/components/plugins/plugin-detail-panel/subscription-list/selector-view.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/plugins/plugin-detail-panel/subscription-list/subscription-card.tsx": { "no-restricted-imports": { "count": 1 @@ -3440,7 +3029,7 @@ }, "web/app/components/plugins/plugin-detail-panel/tool-selector/components/tool-item.tsx": { "no-restricted-imports": { - "count": 2 + "count": 1 } }, "web/app/components/plugins/plugin-detail-panel/tool-selector/hooks/index.ts": { @@ -3481,11 +3070,6 @@ "count": 2 } }, - "web/app/components/plugins/plugin-page/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/plugins/plugin-page/install-plugin-dropdown.tsx": { "react/set-state-in-effect": { "count": 2 @@ -3506,11 +3090,6 @@ "count": 1 } }, - "web/app/components/plugins/reference-setting-modal/auto-update-setting/strategy-picker.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/plugins/reference-setting-modal/auto-update-setting/types.ts": { "erasable-syntax-only/enums": { "count": 2 @@ -3578,11 +3157,6 @@ "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 @@ -3769,11 +3343,6 @@ "count": 1 } }, - "web/app/components/tools/mcp/detail/tool-item.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/tools/mcp/mcp-server-modal.tsx": { "no-restricted-imports": { "count": 1 @@ -3787,11 +3356,6 @@ "count": 1 } }, - "web/app/components/tools/mcp/mcp-service-card.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/tools/mcp/modal.tsx": { "no-restricted-imports": { "count": 1 @@ -3825,21 +3389,6 @@ "count": 4 } }, - "web/app/components/tools/workflow-tool/confirm-modal/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/tools/workflow-tool/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, - "web/app/components/tools/workflow-tool/method-selector.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/workflow-app/components/workflow-children.tsx": { "ts/no-explicit-any": { "count": 3 @@ -4002,11 +3551,6 @@ "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 @@ -4023,11 +3567,6 @@ "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 @@ -4050,7 +3589,7 @@ }, "web/app/components/workflow/hooks/index.ts": { "no-barrel-files/no-barrel-files": { - "count": 27 + "count": 25 } }, "web/app/components/workflow/hooks/use-checklist.ts": { @@ -4157,11 +3696,6 @@ "count": 1 } }, - "web/app/components/workflow/nodes/_base/components/config-vision.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/workflow/nodes/_base/components/editor/code-editor/editor-support-vars.tsx": { "react/set-state-in-effect": { "count": 1 @@ -4204,15 +3738,7 @@ "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": { - "no-restricted-imports": { - "count": 1 - }, "ts/no-explicit-any": { "count": 1 } @@ -4255,15 +3781,7 @@ "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": { - "no-restricted-imports": { - "count": 1 - }, "ts/no-explicit-any": { "count": 4 } @@ -4279,9 +3797,6 @@ } }, "web/app/components/workflow/nodes/_base/components/setting-item.tsx": { - "no-restricted-imports": { - "count": 1 - }, "ts/no-explicit-any": { "count": 1 } @@ -4296,11 +3811,6 @@ "count": 8 } }, - "web/app/components/workflow/nodes/_base/components/variable/object-child-tree-panel/picker/field.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/workflow/nodes/_base/components/variable/output-var-list.tsx": { "ts/no-non-null-asserted-optional-chain": { "count": 1 @@ -4332,9 +3842,6 @@ } }, "web/app/components/workflow/nodes/_base/components/workflow-panel/index.tsx": { - "no-restricted-imports": { - "count": 1 - }, "react/set-state-in-effect": { "count": 3 }, @@ -4609,42 +4116,6 @@ "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/index.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 @@ -4669,11 +4140,6 @@ "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 @@ -4734,11 +4200,6 @@ "count": 1 } }, - "web/app/components/workflow/nodes/knowledge-base/components/index-method.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/workflow/nodes/knowledge-base/components/retrieval-setting/hooks.tsx": { "ts/no-explicit-any": { "count": 4 @@ -4777,11 +4238,6 @@ "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 @@ -4835,14 +4291,6 @@ "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 @@ -4876,11 +4324,6 @@ "count": 2 } }, - "web/app/components/workflow/nodes/llm/components/json-schema-config-modal/json-schema-generator/prompt-editor.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/workflow/nodes/llm/components/json-schema-config-modal/visual-editor/context.tsx": { "react-refresh/only-export-components": { "count": 2 @@ -5214,11 +4657,6 @@ "count": 7 } }, - "web/app/components/workflow/nodes/trigger-schedule/components/monthly-days-selector.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/workflow/nodes/trigger-schedule/default.ts": { "regexp/no-unused-capturing-group": { "count": 2 @@ -5287,11 +4725,6 @@ "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 @@ -5356,11 +4789,6 @@ "count": 12 } }, - "web/app/components/workflow/panel/debug-and-preview/index.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/components/workflow/panel/env-panel/variable-modal.tsx": { "no-restricted-imports": { "count": 1 @@ -5585,9 +5013,6 @@ } }, "web/app/components/workflow/variable-inspect/group.tsx": { - "no-restricted-imports": { - "count": 1 - }, "ts/no-explicit-any": { "count": 2 } @@ -5611,17 +5036,11 @@ } }, "web/app/components/workflow/variable-inspect/right.tsx": { - "no-restricted-imports": { - "count": 1 - }, "ts/no-explicit-any": { "count": 3 } }, "web/app/components/workflow/variable-inspect/trigger.tsx": { - "no-restricted-imports": { - "count": 1 - }, "ts/no-explicit-any": { "count": 1 } @@ -5645,11 +5064,6 @@ "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 @@ -5715,11 +5129,6 @@ "count": 1 } }, - "web/app/signin/_header.tsx": { - "no-restricted-imports": { - "count": 1 - } - }, "web/app/signin/components/mail-and-password-auth.tsx": { "ts/no-explicit-any": { "count": 1 @@ -5731,9 +5140,6 @@ } }, "web/app/signin/one-more-step.tsx": { - "no-restricted-imports": { - "count": 1 - }, "ts/no-explicit-any": { "count": 1 } @@ -5758,21 +5164,6 @@ "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 @@ -6010,11 +5401,6 @@ "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 diff --git a/package.json b/package.json index 42d6961f5f..a563b574f7 100644 --- a/package.json +++ b/package.json @@ -2,11 +2,12 @@ "name": "dify", "type": "module", "private": true, - "packageManager": "pnpm@10.33.2", + "packageManager": "pnpm@11.0.0", "engines": { "node": "^22.22.1" }, "scripts": { + "dev": "concurrently -k -n vinext,proxy \"vp run dify-web#dev:vinext\" \"vp run dify-web#dev:proxy\"", "prepare": "vp config", "type-check": "vp run -r type-check", "lint": "eslint --cache --concurrency=auto", @@ -16,6 +17,7 @@ }, "devDependencies": { "@antfu/eslint-config": "catalog:", + "concurrently": "catalog:", "eslint": "catalog:", "eslint-markdown": "catalog:", "eslint-plugin-markdown-preferences": "catalog:", 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/select/__tests__/index.spec.tsx b/packages/dify-ui/src/select/__tests__/index.spec.tsx index f2f3221eda..ac8be5917e 100644 --- a/packages/dify-ui/src/select/__tests__/index.spec.tsx +++ b/packages/dify-ui/src/select/__tests__/index.spec.tsx @@ -170,6 +170,12 @@ describe('Select wrappers', () => { expect(screen.getByRole('combobox', { name: 'city select' }).element().querySelector('.i-ri-arrow-down-s-line')).toBeInTheDocument() }) + + it('should include open state feedback classes', async () => { + const screen = await renderOpenSelect() + + expect(screen.getByRole('combobox', { name: 'city select' }).element().className).toContain('data-open:bg-state-base-hover-alt') + }) }) describe('SelectContent', () => { diff --git a/packages/dify-ui/src/select/index.tsx b/packages/dify-ui/src/select/index.tsx index 017093c584..2f2f91d9c6 100644 --- a/packages/dify-ui/src/select/index.tsx +++ b/packages/dify-ui/src/select/index.tsx @@ -21,7 +21,7 @@ export const SelectGroup = BaseSelect.Group const selectTriggerVariants = cva( [ 'group flex w-full items-center border-0 bg-components-input-bg-normal text-left text-components-input-text-filled outline-hidden', - 'hover:bg-state-base-hover-alt focus-visible:bg-state-base-hover-alt', + 'hover:bg-state-base-hover-alt focus-visible:bg-state-base-hover-alt data-open:bg-state-base-hover-alt', 'data-placeholder:text-components-input-text-placeholder', 'data-readonly:cursor-default data-readonly:bg-transparent data-readonly:hover:bg-transparent', 'data-disabled:cursor-not-allowed data-disabled:bg-components-input-bg-disabled data-disabled:text-components-input-text-filled-disabled data-disabled:hover:bg-components-input-bg-disabled', 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..4c005983ef 100644 --- a/packages/dify-ui/src/themes/dark.css +++ b/packages/dify-ui/src/themes/dark.css @@ -6,18 +6,6 @@ html[data-theme="dark"] { --color-components-input-bg-active: rgb(255 255 255 / 0.05); --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); @@ -101,17 +89,6 @@ html[data-theme="dark"] { --color-components-button-indigo-bg-hover: #6172f3; --color-components-button-indigo-bg-disabled: rgb(255 255 255 / 0.03); - --color-components-button-debug-text: rgb(255 255 255 / 0.95); - --color-components-button-debug-text-disabled: rgb(255 255 255 / 0.2); - --color-components-button-debug-bg: #ff4405; - --color-components-button-debug-bg-hover: #ff692e; - --color-components-button-debug-bg-disabled: rgb(255 68 5 / 0.08); - --color-components-button-debug-border: rgb(255 255 255 / 0.12); - --color-components-button-debug-border-hover: rgb(255 255 255 / 0.2); - --color-components-button-debug-border-disabled: rgb(255 255 255 / 0.08); - - --color-components-button-button-seam: rgb(0 0 0 / 0.15); - --color-components-checkbox-icon: rgb(255 255 255 / 0.95); --color-components-checkbox-icon-disabled: rgb(255 255 255 / 0.2); --color-components-checkbox-bg: #296dff; @@ -172,7 +149,6 @@ html[data-theme="dark"] { --color-components-panel-on-panel-item-bg-destructive-hover-transparent: rgb(255 251 250 / 0); --color-components-panel-bg-transparent: rgb(34 34 37 / 0); - --color-components-panel-bg-blur-burn: rgb(31 31 35 / 0.9); --color-components-main-nav-nav-button-text: rgb(200 206 218 / 0.6); --color-components-main-nav-nav-button-text-active: #f4f4f5; @@ -183,26 +159,6 @@ html[data-theme="dark"] { --color-components-main-nav-nav-user-border: rgb(255 255 255 / 0.05); - --color-components-main-nav-text: #a8a8b3; - --color-components-main-nav-text-active: #ffffff; - --color-components-main-nav-glass-edge-highlight-first: rgb(196 207 255 / 0.15); - --color-components-main-nav-glass-edge-highlight-middle: rgb(72 108 255 / 0); - --color-components-main-nav-glass-edge-highlight-end: rgb(196 207 255 / 0.05); - - --color-components-main-nav-glass-edge-reflection-first: rgb(92 124 255 / 0); - --color-components-main-nav-glass-edge-reflection-middle: rgb(210 219 255 / 0.8); - --color-components-main-nav-glass-edge-reflection-end: rgb(92 124 255 / 0); - - --color-components-main-nav-glass-surface-first: rgb(196 207 255 / 0.08); - --color-components-main-nav-glass-surface-middle-1: rgb(210 219 255 / 0.12); - --color-components-main-nav-glass-surface-middle-2: rgb(210 219 255 / 0.1); - --color-components-main-nav-glass-surface-end: rgb(196 207 255 / 0.08); - - --color-components-main-nav-glass-inner-glow: rgb(210 219 255 / 0.05); - --color-components-main-nav-glass-shadow-reflection: rgb(210 219 255 / 0.04); - --color-components-main-nav-glass-shadow-reflection-glow: rgb(255 255 255 / 0.02); - --color-components-main-nav-glass-text-glow: rgb(245 246 255 / 0.27); - --color-components-slider-knob: #f4f4f5; --color-components-slider-knob-hover: #fefefe; --color-components-slider-knob-disabled: rgb(255 255 255 / 0.2); @@ -401,8 +357,6 @@ html[data-theme="dark"] { --color-components-icon-bg-orange-solid: #f79009; --color-components-icon-bg-orange-soft: rgb(247 144 9 / 0.2); - --color-components-marketplace-header-bg: rgb(31 31 35 / 0.9); - --color-text-primary: #fbfbfc; --color-text-secondary: #d9d9de; --color-text-tertiary: rgb(200 206 218 / 0.6); @@ -464,7 +418,6 @@ html[data-theme="dark"] { --color-background-overlay-backdrop: rgb(24 24 27 / 0.95); --color-background-body-transparent: rgb(29 29 32 / 0); --color-background-section-burn-inverted: #27272b; - --color-background-default-hover-alpha-0: rgb(39 39 43 / 0); --color-shadow-shadow-1: rgb(0 0 0 / 0.05); --color-shadow-shadow-3: rgb(0 0 0 / 0.1); @@ -548,18 +501,6 @@ html[data-theme="dark"] { --color-workflow-workflow-progress-bg-1: rgb(24 24 27 / 0.25); --color-workflow-workflow-progress-bg-2: rgb(24 24 27 / 0.04); - --color-workflow-debug-run-status-bg: rgb(230 46 5 / 0.4); - --color-workflow-debug-breakpoint: #ff692e; - --color-workflow-debug-text: #ff9c66; - --color-workflow-debug-text-disabled: rgb(255 68 5 / 0.2); - --color-workflow-debug-run-status-bg-alt: rgb(255 46 0 / 0.5); - - --color-workflow-test-run-run-status-bg: rgb(21 90 239 / 0.5); - --color-workflow-test-run-text: #d1e0ff; - --color-workflow-test-run-run-status-bg-alt: rgb(45 90 190 / 0.9); - --color-workflow-test-run-paused-bg: rgb(247 144 9 / 0.3); - --color-workflow-test-run-paused-text: #fdb022; - --color-divider-subtle: rgb(200 206 218 / 0.08); --color-divider-regular: rgb(200 206 218 / 0.14); --color-divider-deep: rgb(200 206 218 / 0.2); @@ -604,7 +545,6 @@ html[data-theme="dark"] { --color-effects-highlight-lightmode-off: rgb(200 206 218 / 0.08); --color-effects-image-frame: #ffffff; --color-effects-icon-border: rgb(255 255 255 / 0.15); - --color-effects-highlight-subtle: rgb(200 206 218 / 0.04); --color-util-colors-orange-dark-orange-dark-50: #57130a; --color-util-colors-orange-dark-orange-dark-100: #771a0d; @@ -821,7 +761,5 @@ html[data-theme="dark"] { --color-dify-logo-blue: #e8e8e8; --color-dify-logo-black: #e8e8e8; - --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/light.css b/packages/dify-ui/src/themes/light.css index 3901de4d8b..16e5e898ee 100644 --- a/packages/dify-ui/src/themes/light.css +++ b/packages/dify-ui/src/themes/light.css @@ -89,17 +89,6 @@ html[data-theme="light"] { --color-components-button-indigo-bg-hover: #3538cd; --color-components-button-indigo-bg-disabled: rgb(97 114 243 / 0.14); - --color-components-button-debug-text: #ffffff; - --color-components-button-debug-text-disabled: rgb(255 255 255 / 0.6); - --color-components-button-debug-bg: #ff4405; - --color-components-button-debug-bg-hover: #e62e05; - --color-components-button-debug-bg-disabled: rgb(255 68 5 / 0.2); - --color-components-button-debug-border: rgb(16 24 40 / 0.04); - --color-components-button-debug-border-hover: rgb(16 24 40 / 0.08); - --color-components-button-debug-border-disabled: rgb(255 255 255 / 0); - - --color-components-button-button-seam: rgb(0 0 0 / 0.03); - --color-components-checkbox-icon: #ffffff; --color-components-checkbox-icon-disabled: rgb(255 255 255 / 0.5); --color-components-checkbox-bg: #155aef; @@ -160,7 +149,6 @@ html[data-theme="light"] { --color-components-panel-on-panel-item-bg-destructive-hover-transparent: rgb(254 243 242 / 0); --color-components-panel-bg-transparent: rgb(255 255 255 / 0); - --color-components-panel-bg-blur-burn: rgb(255 255 255 / 0.9); --color-components-main-nav-nav-button-text: #495464; --color-components-main-nav-nav-button-text-active: #155aef; @@ -171,26 +159,6 @@ html[data-theme="light"] { --color-components-main-nav-nav-user-border: #ffffff; - --color-components-main-nav-text: #495464; - --color-components-main-nav-text-active: #0033ff; - --color-components-main-nav-glass-edge-highlight-first: rgb(255 255 255 / 0.98); - --color-components-main-nav-glass-edge-highlight-middle: rgb(255 255 255 / 0); - --color-components-main-nav-glass-edge-highlight-end: rgb(255 255 255 / 0.42); - - --color-components-main-nav-glass-edge-reflection-first: rgb(0 51 255 / 0); - --color-components-main-nav-glass-edge-reflection-middle: rgb(0 51 255 / 0.6); - --color-components-main-nav-glass-edge-reflection-end: rgb(0 51 255 / 0); - - --color-components-main-nav-glass-surface-first: rgb(0 51 255 / 0.08); - --color-components-main-nav-glass-surface-middle-1: rgb(0 51 255 / 0.12); - --color-components-main-nav-glass-surface-middle-2: rgb(0 51 255 / 0.1); - --color-components-main-nav-glass-surface-end: rgb(0 51 255 / 0.08); - - --color-components-main-nav-glass-inner-glow: rgb(255 255 255 / 0.3); - --color-components-main-nav-glass-shadow-reflection: rgb(0 51 255 / 0.06); - --color-components-main-nav-glass-shadow-reflection-glow: rgb(255 255 255 / 0); - --color-components-main-nav-glass-text-glow: rgb(49 70 255 / 0.18); - --color-components-slider-knob: #ffffff; --color-components-slider-knob-hover: #ffffff; --color-components-slider-knob-disabled: rgb(255 255 255 / 0.95); @@ -389,8 +357,6 @@ html[data-theme="light"] { --color-components-icon-bg-orange-solid: #f79009; --color-components-icon-bg-orange-soft: #fffaeb; - --color-components-marketplace-header-bg: rgb(255 255 255 / 0.98); - --color-text-primary: #101828; --color-text-secondary: #354052; --color-text-tertiary: #676f83; @@ -452,7 +418,6 @@ html[data-theme="light"] { --color-background-overlay-backdrop: rgb(242 244 247 / 0.95); --color-background-body-transparent: rgb(242 244 247 / 0); --color-background-section-burn-inverted: #f2f4f7; - --color-background-default-hover-alpha-0: rgb(249 250 251 / 0); --color-shadow-shadow-1: rgb(9 9 11 / 0.03); --color-shadow-shadow-3: rgb(9 9 11 / 0.05); @@ -536,18 +501,6 @@ html[data-theme="light"] { --color-workflow-workflow-progress-bg-1: rgb(200 206 218 / 0.2); --color-workflow-workflow-progress-bg-2: rgb(200 206 218 / 0.04); - --color-workflow-debug-run-status-bg: rgb(255 68 5 / 0.08); - --color-workflow-debug-breakpoint: #e62e05; - --color-workflow-debug-text: #e62e05; - --color-workflow-debug-text-disabled: rgb(255 68 5 / 0.2); - --color-workflow-debug-run-status-bg-alt: rgb(255 68 5 / 0.14); - - --color-workflow-test-run-run-status-bg: rgb(21 90 239 / 0.08); - --color-workflow-test-run-text: #004aeb; - --color-workflow-test-run-run-status-bg-alt: rgb(21 90 239 / 0.14); - --color-workflow-test-run-paused-bg: rgb(247 144 9 / 0.14); - --color-workflow-test-run-paused-text: #dc6803; - --color-divider-subtle: rgb(16 24 40 / 0.04); --color-divider-regular: rgb(16 24 40 / 0.08); --color-divider-deep: rgb(16 24 40 / 0.14); @@ -592,7 +545,6 @@ html[data-theme="light"] { --color-effects-highlight-lightmode-off: rgb(255 255 255 / 0); --color-effects-image-frame: #ffffff; --color-effects-icon-border: rgb(16 24 40 / 0.08); - --color-effects-highlight-subtle: rgb(255 255 255 / 0.5); --color-util-colors-orange-dark-orange-dark-50: #fff4ed; --color-util-colors-orange-dark-orange-dark-100: #ffe6d5; @@ -809,7 +761,5 @@ html[data-theme="light"] { --color-dify-logo-blue: #0033ff; --color-dify-logo-black: #000000; - --color-dify-logo-outline-1: rgb(0 0 0 / 0); - --color-dify-logo-outline-2: rgb(0 0 0 / 0); -} \ 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..04e02d852c --- /dev/null +++ b/packages/dify-ui/src/themes/theme.css @@ -0,0 +1,772 @@ +/* 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-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-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-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-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-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-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-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); + +} diff --git a/packages/dify-ui/src/toast/__tests__/index.spec.tsx b/packages/dify-ui/src/toast/__tests__/index.spec.tsx index 1e302618c5..e02f6828ac 100644 --- a/packages/dify-ui/src/toast/__tests__/index.spec.tsx +++ b/packages/dify-ui/src/toast/__tests__/index.spec.tsx @@ -125,19 +125,9 @@ describe('@langgenius/dify-ui/toast', () => { expect(onClose).toHaveBeenCalledTimes(1) }) - it('should respect custom timeout values including zero', async () => { + it('should keep zero-timeout toasts persistent', async () => { const screen = await render() - toast('Custom timeout', { - timeout: 1000, - }) - await expect.element(screen.getByText('Custom timeout')).toBeInTheDocument() - - await vi.advanceTimersByTimeAsync(1000) - await vi.waitFor(() => { - expect(document.body).not.toHaveTextContent('Custom timeout') - }) - toast('Persistent', { timeout: 0, }) 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 c802698100..2021d87adc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,11 +7,11 @@ settings: catalogs: default: '@amplitude/analytics-browser': - specifier: 2.41.1 - version: 2.41.1 + specifier: 2.42.0 + version: 2.42.0 '@amplitude/plugin-session-replay-browser': - specifier: 1.28.0 - version: 1.28.0 + specifier: 1.28.1 + version: 1.28.1 '@antfu/eslint-config': specifier: 8.2.0 version: 8.2.0 @@ -48,9 +48,12 @@ 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: 1.19.14 - version: 1.19.14 + specifier: 2.0.0 + version: 2.0.0 '@iconify-json/heroicons': specifier: 1.2.3 version: 1.2.3 @@ -58,23 +61,23 @@ catalogs: specifier: 1.2.10 version: 1.2.10 '@lexical/link': - specifier: 0.43.0 - version: 0.43.0 + specifier: 0.44.0 + version: 0.44.0 '@lexical/list': - specifier: 0.43.0 - version: 0.43.0 + specifier: 0.44.0 + version: 0.44.0 '@lexical/react': - specifier: 0.43.0 - version: 0.43.0 + specifier: 0.44.0 + version: 0.44.0 '@lexical/selection': - specifier: 0.43.0 - version: 0.43.0 + specifier: 0.44.0 + version: 0.44.0 '@lexical/text': - specifier: 0.43.0 - version: 0.43.0 + specifier: 0.44.0 + version: 0.44.0 '@lexical/utils': - specifier: 0.43.0 - version: 0.43.0 + specifier: 0.44.0 + version: 0.44.0 '@mdx-js/loader': specifier: 3.1.1 version: 3.1.1 @@ -157,8 +160,8 @@ catalogs: specifier: 4.2.4 version: 4.2.4 '@tanstack/eslint-plugin-query': - specifier: 5.100.5 - version: 5.100.5 + specifier: 5.100.6 + version: 5.100.6 '@tanstack/react-devtools': specifier: 0.10.2 version: 0.10.2 @@ -168,12 +171,15 @@ 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.5 - version: 5.100.5 + specifier: 5.100.6 + version: 5.100.6 '@tanstack/react-query-devtools': - specifier: 5.100.5 - version: 5.100.5 + specifier: 5.100.6 + version: 5.100.6 '@tanstack/react-virtual': specifier: 3.13.24 version: 3.13.24 @@ -190,14 +196,14 @@ catalogs: specifier: 14.6.1 version: 14.6.1 '@tsslint/cli': - specifier: 3.0.4 - version: 3.0.4 + specifier: 3.1.0 + version: 3.1.0 '@tsslint/compat-eslint': - specifier: 3.0.4 - version: 3.0.4 + specifier: 3.1.0 + version: 3.1.0 '@tsslint/config': - specifier: 3.0.4 - version: 3.0.4 + specifier: 3.1.0 + version: 3.1.0 '@types/js-cookie': specifier: 3.0.6 version: 3.0.6 @@ -223,14 +229,14 @@ catalogs: specifier: 1.15.9 version: 1.15.9 '@typescript-eslint/eslint-plugin': - specifier: 8.59.0 - version: 8.59.0 + specifier: 8.59.1 + version: 8.59.1 '@typescript-eslint/parser': - specifier: 8.59.0 - version: 8.59.0 + specifier: 8.59.1 + version: 8.59.1 '@typescript/native-preview': - specifier: 7.0.0-dev.20260426.1 - version: 7.0.0-dev.20260426.1 + specifier: 7.0.0-dev.20260428.1 + version: 7.0.0-dev.20260428.1 '@vitejs/plugin-react': specifier: 6.0.1 version: 6.0.1 @@ -264,9 +270,12 @@ catalogs: code-inspector-plugin: specifier: 1.5.1 version: 1.5.1 + concurrently: + specifier: ^9.2.1 + version: 9.2.1 copy-to-clipboard: - specifier: 3.3.3 - version: 3.3.3 + specifier: 4.0.2 + version: 4.0.2 cron-parser: specifier: 5.5.0 version: 5.5.0 @@ -304,11 +313,11 @@ catalogs: specifier: 10.2.1 version: 10.2.1 eslint-markdown: - specifier: 0.6.1 - version: 0.6.1 + specifier: 0.7.0 + version: 0.7.0 eslint-plugin-better-tailwindcss: - specifier: 4.4.1 - version: 4.4.1 + specifier: 4.5.0 + version: 4.5.0 eslint-plugin-hyoban: specifier: 0.14.1 version: 0.14.1 @@ -346,8 +355,8 @@ catalogs: specifier: 1.11.13 version: 1.11.13 i18next: - specifier: 26.0.6 - version: 26.0.6 + specifier: 26.0.8 + version: 26.0.8 i18next-resources-to-backend: specifier: 1.2.1 version: 1.2.1 @@ -385,8 +394,8 @@ catalogs: specifier: 1.2.1 version: 1.2.1 lexical: - specifier: 0.43.0 - version: 0.43.0 + specifier: 0.44.0 + version: 0.44.0 loro-crdt: specifier: 1.12.0 version: 1.12.0 @@ -505,8 +514,8 @@ catalogs: specifier: 4.2.4 version: 4.2.4 tldts: - specifier: 7.0.28 - version: 7.0.28 + specifier: 7.0.29 + version: 7.0.29 tsx: specifier: 4.21.0 version: 4.21.0 @@ -523,17 +532,17 @@ catalogs: specifier: 2.0.0 version: 2.0.0 uuid: - specifier: 13.0.0 - version: 13.0.0 + specifier: 14.0.0 + version: 14.0.0 vinext: - specifier: 0.0.41 - version: 0.0.41 + specifier: 0.0.45 + version: 0.0.45 vite-plugin-inspect: specifier: 12.0.0-beta.1 version: 12.0.0-beta.1 vite-plus: - specifier: 0.1.19 - version: 0.1.19 + specifier: 0.1.20 + version: 0.1.20 vitest-browser-react: specifier: 2.2.0 version: 2.2.0 @@ -574,8 +583,8 @@ overrides: svgo@>=3.0.0 <3.3.3: 3.3.3 tar@<=7.5.10: 7.5.11 undici@>=7.0.0 <7.24.0: 7.24.0 - vite: npm:@voidzero-dev/vite-plus-core@0.1.19 - vitest: npm:@voidzero-dev/vite-plus-test@0.1.19 + vite: npm:@voidzero-dev/vite-plus-core@0.1.20 + vitest: npm:@voidzero-dev/vite-plus-test@0.1.20 yaml@>=2.0.0 <2.8.3: 2.8.3 yauzl@<3.2.1: 3.2.1 @@ -585,13 +594,16 @@ importers: devDependencies: '@antfu/eslint-config': specifier: 'catalog:' - version: 8.2.0(@eslint-react/eslint-plugin@3.0.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(@next/eslint-plugin-next@16.2.4)(@types/node@25.6.0)(@typescript-eslint/typescript-estree@8.59.0(typescript@6.0.3))(@typescript-eslint/utils@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(@vitest/coverage-v8@4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@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.19(@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)(eslint-plugin-react-refresh@0.5.2(eslint@10.2.1(jiti@2.6.1)))(eslint@10.2.1(jiti@2.6.1))(happy-dom@20.9.0)(jiti@2.6.1)(oxlint@1.60.0(oxlint-tsgolint@0.21.1))(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3) + version: 8.2.0(@eslint-react/eslint-plugin@3.0.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(@next/eslint-plugin-next@16.2.4)(@types/node@25.6.0)(@typescript-eslint/typescript-estree@8.59.1(typescript@6.0.3))(@typescript-eslint/utils@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(@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)(eslint-plugin-react-refresh@0.5.2(eslint@10.2.1(jiti@2.6.1)))(eslint@10.2.1(jiti@2.6.1))(happy-dom@20.9.0)(jiti@2.6.1)(oxlint@1.61.0(oxlint-tsgolint@0.22.0))(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3) + concurrently: + specifier: 'catalog:' + version: 9.2.1 eslint: specifier: 'catalog:' version: 10.2.1(jiti@2.6.1) eslint-markdown: specifier: 'catalog:' - version: 0.6.1(eslint@10.2.1(jiti@2.6.1)) + version: 0.7.0(eslint@10.2.1(jiti@2.6.1)) eslint-plugin-markdown-preferences: specifier: 'catalog:' version: 0.41.1(@eslint/markdown@8.0.1)(eslint@10.2.1(jiti@2.6.1)) @@ -599,11 +611,11 @@ importers: specifier: 'catalog:' version: 1.3.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) vite: - specifier: npm:@voidzero-dev/vite-plus-core@0.1.19 - version: '@voidzero-dev/vite-plus-core@0.1.19(@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)' + specifier: npm:@voidzero-dev/vite-plus-core@0.1.20 + version: '@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)' vite-plus: specifier: 'catalog:' - version: 0.1.19(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@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.19(@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) + 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) e2e: devDependencies: @@ -621,7 +633,7 @@ importers: version: 25.6.0 '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260426.1 + version: 7.0.0-dev.20260428.1 tsx: specifier: 'catalog:' version: 4.21.0 @@ -629,11 +641,48 @@ importers: specifier: 'catalog:' version: 6.0.3 vite: - specifier: npm:@voidzero-dev/vite-plus-core@0.1.19 - version: '@voidzero-dev/vite-plus-core@0.1.19(@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)' + specifier: npm:@voidzero-dev/vite-plus-core@0.1.20 + version: '@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)' vite-plus: specifier: 'catalog:' - version: 0.1.19(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@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.19(@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) + 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: @@ -661,7 +710,7 @@ importers: version: 1.2.10 '@storybook/addon-docs': specifier: 'catalog:' - version: 10.3.5(@types/react@19.2.14)(@voidzero-dev/vite-plus-core@0.1.19(@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)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + version: 10.3.5(@types/react@19.2.14)(@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)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) '@storybook/addon-links': specifier: 'catalog:' version: 10.3.5(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) @@ -670,10 +719,10 @@ importers: version: 10.3.5(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) '@storybook/react-vite': specifier: 'catalog:' - version: 10.3.5(@voidzero-dev/vite-plus-core@0.1.19(@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)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@6.0.3) + version: 10.3.5(@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)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@6.0.3) '@tailwindcss/vite': specifier: 'catalog:' - version: 4.2.4(@voidzero-dev/vite-plus-core@0.1.19(@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)) + version: 4.2.4(@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)) '@types/react': specifier: 'catalog:' version: 19.2.14 @@ -682,13 +731,13 @@ importers: version: 19.2.3(@types/react@19.2.14) '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260426.1 + version: 7.0.0-dev.20260428.1 '@vitejs/plugin-react': specifier: 'catalog:' - version: 6.0.1(@voidzero-dev/vite-plus-core@0.1.19(@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)) + version: 6.0.1(@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)) '@vitest/coverage-v8': specifier: 'catalog:' - version: 4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@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) + version: 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) class-variance-authority: specifier: 'catalog:' version: 0.7.1 @@ -711,14 +760,14 @@ importers: specifier: 'catalog:' version: 6.0.3 vite: - specifier: npm:@voidzero-dev/vite-plus-core@0.1.19 - version: '@voidzero-dev/vite-plus-core@0.1.19(@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)' + specifier: npm:@voidzero-dev/vite-plus-core@0.1.20 + version: '@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)' vite-plus: specifier: 'catalog:' - version: 0.1.19(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@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.19(@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) + 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) vitest-browser-react: specifier: 'catalog:' - version: 2.2.0(@types/node@25.6.0)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(@vitest/coverage-v8@4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@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.19(@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)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3) + version: 2.2.0(@types/node@25.6.0)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(@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)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3) packages/iconify-collections: devDependencies: @@ -733,7 +782,7 @@ importers: dependencies: '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260426.1 + version: 7.0.0-dev.20260428.1 typescript: specifier: 'catalog:' version: 6.0.3 @@ -745,11 +794,11 @@ importers: specifier: 'catalog:' version: 25.6.0 vite: - specifier: npm:@voidzero-dev/vite-plus-core@0.1.19 - version: '@voidzero-dev/vite-plus-core@0.1.19(@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)' + specifier: npm:@voidzero-dev/vite-plus-core@0.1.20 + version: '@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)' vite-plus: specifier: 'catalog:' - version: 0.1.19(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@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.19(@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) + 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/tsconfig: {} @@ -766,16 +815,16 @@ importers: version: 25.6.0 '@typescript-eslint/eslint-plugin': specifier: 'catalog:' - version: 8.59.0(@typescript-eslint/parser@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) + version: 8.59.1(@typescript-eslint/parser@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) '@typescript-eslint/parser': specifier: 'catalog:' - version: 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) + version: 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260426.1 + version: 7.0.0-dev.20260428.1 '@vitest/coverage-v8': specifier: 'catalog:' - version: 4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@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) + version: 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) eslint: specifier: 'catalog:' version: 10.2.1(jiti@2.6.1) @@ -783,23 +832,23 @@ importers: specifier: 'catalog:' version: 6.0.3 vite: - specifier: npm:@voidzero-dev/vite-plus-core@0.1.19 - version: '@voidzero-dev/vite-plus-core@0.1.19(@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)' + specifier: npm:@voidzero-dev/vite-plus-core@0.1.20 + version: '@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)' vite-plus: specifier: 'catalog:' - version: 0.1.19(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@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.19(@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) + 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) vitest: - specifier: npm:@voidzero-dev/vite-plus-test@0.1.19 - version: '@voidzero-dev/vite-plus-test@0.1.19(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@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.19(@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)' + specifier: npm:@voidzero-dev/vite-plus-test@0.1.20 + version: '@voidzero-dev/vite-plus-test@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)' web: dependencies: '@amplitude/analytics-browser': specifier: 'catalog:' - version: 2.41.1 + version: 2.42.0 '@amplitude/plugin-session-replay-browser': specifier: 'catalog:' - version: 1.28.0(@amplitude/rrweb@2.0.0-alpha.37) + version: 1.28.1(@amplitude/rrweb@2.0.0-alpha.37) '@base-ui/react': specifier: 'catalog:' version: 1.4.1(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) @@ -820,25 +869,25 @@ importers: version: 2.2.0(react@19.2.5) '@lexical/code': specifier: npm:lexical-code-no-prism@0.41.0 - version: lexical-code-no-prism@0.41.0(@lexical/utils@0.43.0)(lexical@0.43.0) + version: lexical-code-no-prism@0.41.0(@lexical/utils@0.44.0)(lexical@0.44.0) '@lexical/link': specifier: 'catalog:' - version: 0.43.0 + version: 0.44.0 '@lexical/list': specifier: 'catalog:' - version: 0.43.0 + version: 0.44.0 '@lexical/react': specifier: 'catalog:' - version: 0.43.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + version: 0.44.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@lexical/selection': specifier: 'catalog:' - version: 0.43.0 + version: 0.44.0 '@lexical/text': specifier: 'catalog:' - version: 0.43.0 + version: 0.44.0 '@lexical/utils': specifier: 'catalog:' - version: 0.43.0 + version: 0.44.0 '@monaco-editor/react': specifier: 'catalog:' version: 4.7.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) @@ -853,7 +902,7 @@ importers: version: 1.14.0 '@orpc/tanstack-query': specifier: 'catalog:' - version: 1.14.0(@orpc/client@1.14.0)(@tanstack/query-core@5.100.5) + version: 1.14.0(@orpc/client@1.14.0)(@tanstack/query-core@5.100.6) '@remixicon/react': specifier: 'catalog:' version: 4.9.0(react@19.2.5) @@ -875,9 +924,12 @@ 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.5(react@19.2.5) + version: 5.100.6(react@19.2.5) '@tanstack/react-virtual': specifier: 'catalog:' version: 3.13.24(react-dom@19.2.5(react@19.2.5))(react@19.2.5) @@ -898,7 +950,7 @@ importers: version: 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) copy-to-clipboard: specifier: 'catalog:' - version: 3.3.3 + version: 4.0.2 cron-parser: specifier: 'catalog:' version: 5.5.0 @@ -946,7 +998,7 @@ importers: version: 1.11.13 i18next: specifier: 'catalog:' - version: 26.0.6(typescript@6.0.3) + version: 26.0.8(typescript@6.0.3) i18next-resources-to-backend: specifier: 'catalog:' version: 1.2.1 @@ -979,7 +1031,7 @@ importers: version: 1.2.1 lexical: specifier: 'catalog:' - version: 0.43.0 + version: 0.44.0 loro-crdt: specifier: 'catalog:' version: 1.12.0 @@ -1030,7 +1082,7 @@ importers: version: 5.2.4(react-dom@19.2.5(react@19.2.5))(react@19.2.5) react-i18next: specifier: 'catalog:' - version: 16.5.8(i18next@26.0.6(typescript@6.0.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3) + version: 16.5.8(i18next@26.0.8(typescript@6.0.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3) react-multi-email: specifier: 'catalog:' version: 1.0.25(react-dom@19.2.5(react@19.2.5))(react@19.2.5) @@ -1081,7 +1133,7 @@ importers: version: 2.3.1 tldts: specifier: 'catalog:' - version: 7.0.28 + version: 7.0.29 unist-util-visit: specifier: 'catalog:' version: 5.1.0 @@ -1090,7 +1142,7 @@ importers: version: 2.0.0(react@19.2.5)(scheduler@0.27.0) uuid: specifier: 'catalog:' - version: 13.0.0 + version: 14.0.0 zod: specifier: 'catalog:' version: 4.3.6 @@ -1103,10 +1155,13 @@ importers: devDependencies: '@antfu/eslint-config': specifier: 'catalog:' - version: 8.2.0(@eslint-react/eslint-plugin@3.0.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(@next/eslint-plugin-next@16.2.4)(@types/node@25.6.0)(@typescript-eslint/typescript-estree@8.59.0(typescript@6.0.3))(@typescript-eslint/utils@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(@vitest/coverage-v8@4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@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.19(@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)(eslint-plugin-react-refresh@0.5.2(eslint@10.2.1(jiti@2.6.1)))(eslint@10.2.1(jiti@2.6.1))(happy-dom@20.9.0)(jiti@2.6.1)(oxlint@1.60.0(oxlint-tsgolint@0.21.1))(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3) + version: 8.2.0(@eslint-react/eslint-plugin@3.0.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(@next/eslint-plugin-next@16.2.4)(@types/node@25.6.0)(@typescript-eslint/typescript-estree@8.59.1(typescript@6.0.3))(@typescript-eslint/utils@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(@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)(eslint-plugin-react-refresh@0.5.2(eslint@10.2.1(jiti@2.6.1)))(eslint@10.2.1(jiti@2.6.1))(happy-dom@20.9.0)(jiti@2.6.1)(oxlint@1.61.0(oxlint-tsgolint@0.22.0))(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3) '@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 @@ -1121,7 +1176,7 @@ importers: version: 3.0.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) '@hono/node-server': specifier: 'catalog:' - version: 1.19.14(hono@4.12.15) + version: 2.0.0(hono@4.12.15) '@iconify-json/heroicons': specifier: 'catalog:' version: 1.2.3 @@ -1151,7 +1206,7 @@ importers: version: 4.2.0 '@storybook/addon-docs': specifier: 'catalog:' - version: 10.3.5(@types/react@19.2.14)(@voidzero-dev/vite-plus-core@0.1.19(@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)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + version: 10.3.5(@types/react@19.2.14)(@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)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) '@storybook/addon-links': specifier: 'catalog:' version: 10.3.5(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) @@ -1163,7 +1218,7 @@ importers: version: 10.3.5(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) '@storybook/nextjs-vite': specifier: 'catalog:' - version: 10.3.5(@babel/core@7.29.0)(@voidzero-dev/vite-plus-core@0.1.19(@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)(next@16.2.4(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@6.0.3) + version: 10.3.5(@babel/core@7.29.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)(next@16.2.4(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@6.0.3) '@storybook/react': specifier: 'catalog:' version: 10.3.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@6.0.3) @@ -1172,10 +1227,10 @@ importers: version: 4.2.4 '@tailwindcss/vite': specifier: 'catalog:' - version: 4.2.4(@voidzero-dev/vite-plus-core@0.1.19(@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)) + version: 4.2.4(@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)) '@tanstack/eslint-plugin-query': specifier: 'catalog:' - version: 5.100.5(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) + version: 5.100.6(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) '@tanstack/react-devtools': specifier: 'catalog:' version: 0.10.2(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(csstype@3.2.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) @@ -1184,7 +1239,7 @@ importers: version: 0.2.22(@types/react@19.2.14)(csstype@3.2.3)(react@19.2.5)(solid-js@1.9.11) '@tanstack/react-query-devtools': specifier: 'catalog:' - version: 5.100.5(@tanstack/react-query@5.100.5(react@19.2.5))(react@19.2.5) + version: 5.100.6(@tanstack/react-query@5.100.6(react@19.2.5))(react@19.2.5) '@testing-library/dom': specifier: 'catalog:' version: 10.4.1 @@ -1199,13 +1254,13 @@ importers: version: 14.6.1(@testing-library/dom@10.4.1) '@tsslint/cli': specifier: 'catalog:' - version: 3.0.4(@tsslint/compat-eslint@3.0.4(jiti@2.6.1)(typescript@6.0.3))(typescript@6.0.3) + version: 3.1.0(@tsslint/compat-eslint@3.1.0(typescript@6.0.3))(typescript@6.0.3) '@tsslint/compat-eslint': specifier: 'catalog:' - version: 3.0.4(jiti@2.6.1)(typescript@6.0.3) + version: 3.1.0(typescript@6.0.3) '@tsslint/config': specifier: 'catalog:' - version: 3.0.4(@tsslint/compat-eslint@3.0.4(jiti@2.6.1)(typescript@6.0.3))(typescript@6.0.3) + version: 3.1.0(@tsslint/compat-eslint@3.1.0(typescript@6.0.3))(typescript@6.0.3) '@types/js-cookie': specifier: 'catalog:' version: 3.0.6 @@ -1232,19 +1287,19 @@ importers: version: 1.15.9 '@typescript-eslint/parser': specifier: 'catalog:' - version: 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) + version: 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260426.1 + version: 7.0.0-dev.20260428.1 '@vitejs/plugin-react': specifier: 'catalog:' - version: 6.0.1(@voidzero-dev/vite-plus-core@0.1.19(@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)) + version: 6.0.1(@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)) '@vitejs/plugin-rsc': specifier: 'catalog:' - version: 0.5.25(@voidzero-dev/vite-plus-core@0.1.19(@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))(react-dom@19.2.5(react@19.2.5))(react-server-dom-webpack@19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5) + version: 0.5.25(@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))(react-dom@19.2.5(react@19.2.5))(react-server-dom-webpack@19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5) '@vitest/coverage-v8': specifier: 'catalog:' - version: 4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@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) + version: 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) agentation: specifier: 'catalog:' version: 3.0.2(react-dom@19.2.5(react@19.2.5))(react@19.2.5) @@ -1256,10 +1311,10 @@ importers: version: 10.2.1(jiti@2.6.1) eslint-markdown: specifier: 'catalog:' - version: 0.6.1(eslint@10.2.1(jiti@2.6.1)) + version: 0.7.0(eslint@10.2.1(jiti@2.6.1)) eslint-plugin-better-tailwindcss: specifier: 'catalog:' - version: 4.4.1(eslint@10.2.1(jiti@2.6.1))(oxlint@1.60.0(oxlint-tsgolint@0.21.1))(tailwindcss@4.2.4)(typescript@6.0.3) + version: 4.5.0(eslint@10.2.1(jiti@2.6.1))(oxlint@1.61.0(oxlint-tsgolint@0.22.0))(tailwindcss@4.2.4)(typescript@6.0.3) eslint-plugin-hyoban: specifier: 'catalog:' version: 0.14.1(eslint@10.2.1(jiti@2.6.1)) @@ -1310,22 +1365,22 @@ importers: version: 3.19.3 vinext: specifier: 'catalog:' - version: 0.0.41(@mdx-js/rollup@3.1.1)(@vitejs/plugin-react@6.0.1(@voidzero-dev/vite-plus-core@0.1.19(@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)))(@vitejs/plugin-rsc@0.5.25(@voidzero-dev/vite-plus-core@0.1.19(@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))(react-dom@19.2.5(react@19.2.5))(react-server-dom-webpack@19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5))(@voidzero-dev/vite-plus-core@0.1.19(@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))(next@16.2.4(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react-server-dom-webpack@19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)(typescript@6.0.3) + version: 0.0.45(@mdx-js/rollup@3.1.1)(@vitejs/plugin-react@6.0.1(@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)))(@vitejs/plugin-rsc@0.5.25(@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))(react-dom@19.2.5(react@19.2.5))(react-server-dom-webpack@19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5))(@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))(next@16.2.4(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react-server-dom-webpack@19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)(typescript@6.0.3) vite: - specifier: npm:@voidzero-dev/vite-plus-core@0.1.19 - version: '@voidzero-dev/vite-plus-core@0.1.19(@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)' + specifier: npm:@voidzero-dev/vite-plus-core@0.1.20 + version: '@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)' vite-plugin-inspect: specifier: 'catalog:' - version: 12.0.0-beta.1(@voidzero-dev/vite-plus-core@0.1.19(@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))(typescript@6.0.3)(ws@8.20.0) + version: 12.0.0-beta.1(@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))(typescript@6.0.3)(ws@8.20.0) vite-plus: specifier: 'catalog:' - version: 0.1.19(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@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.19(@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) + 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) vitest: - specifier: npm:@voidzero-dev/vite-plus-test@0.1.19 - version: '@voidzero-dev/vite-plus-test@0.1.19(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@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.19(@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)' + specifier: npm:@voidzero-dev/vite-plus-test@0.1.20 + version: '@voidzero-dev/vite-plus-test@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)' vitest-canvas-mock: specifier: 'catalog:' - version: 1.1.4(@voidzero-dev/vite-plus-test@0.1.19(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@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.19(@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)) + version: 1.1.4(@voidzero-dev/vite-plus-test@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: @@ -1336,47 +1391,53 @@ packages: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} - '@amplitude/analytics-browser@2.41.1': - resolution: {integrity: sha512-qSUFBtln+VY6XIki/Ym3adUlnBvb3TrfFHhXFp5TVi9rz/8p/vKWmQ9Htsf4I0H70xZCe+sNHv53NOyTt1VzUA==} + '@amplitude/analytics-browser@2.42.0': + resolution: {integrity: sha512-xG1CU3M8kYjmQmxxvy8c8m1ww7wqp+kuttpVxWsItyKABBIZNofRo4E0UzENBu8PuXRcwKrLq99DdceVKtsL0g==} '@amplitude/analytics-client-common@2.4.46': resolution: {integrity: sha512-cvNzR7GY+PqvdT7b1jjs+LhLjkLr/raS8C6Jo4nTD/hDzWI+b73u12atttbgWKGJMCmki+xs+X0oyMt207+qtQ==} + '@amplitude/analytics-client-common@2.4.47': + resolution: {integrity: sha512-AFmZK3e3mytXtwyLeNqF85T8bGMcw4slYP8mRu9Fm5B9OZEnEqjhKYzNDEMOKtwBkEQbusHCWWYGfZT5sY2+tg==} + '@amplitude/analytics-connector@1.6.4': resolution: {integrity: sha512-SpIv0IQMNIq6SH3UqFGiaZyGSc7PBZwRdq7lvP0pBxW8i4Ny+8zwI0pV+VMfMHQwWY3wdIbWw5WQphNjpdq1/Q==} '@amplitude/analytics-core@2.47.1': resolution: {integrity: sha512-ZdtAx5syGZBQpbZVLnc/zp7sMlq7+b1dxo/5gCG/4thNW0vOHfN4nYGlV2+k/VEEw4/hW893t5EPUCbxUJM+OQ==} + '@amplitude/analytics-core@2.48.0': + resolution: {integrity: sha512-6ckWWL60LiJJEQQ5V3Veviq0Gl5Lcvy1dFaRDKA/SwLT3cgiBrEFZXZPcri4wDGjchPmJXFCYcE55nr7rP6Wjg==} + '@amplitude/analytics-types@2.11.1': resolution: {integrity: sha512-wFEgb0t99ly2uJKm5oZ28Lti0Kh5RecR5XBkwfUpDzn84IoCIZ8GJTsMw/nThu8FZFc7xFDA4UAt76zhZKrs9A==} '@amplitude/experiment-core@0.7.2': resolution: {integrity: sha512-Wc2NWvgQ+bLJLeF0A9wBSPIaw0XuqqgkPKsoNFQrmS7r5Djd56um75In05tqmVntPJZRvGKU46pAp8o5tdf4mA==} - '@amplitude/plugin-autocapture-browser@1.26.1': - resolution: {integrity: sha512-5Lge/azo8/+JC2YAnX/2YoNYfhKp00MtyAjiZFmFkG5pQUguXnSqTJw0UaUu/gzIZo5VaDAIGFZIk0b++ayTyA==} + '@amplitude/plugin-autocapture-browser@1.27.0': + resolution: {integrity: sha512-iSQJQA2nMftjJ+MtB/ndrLRkSWqsTrGUwia9f+bRodWEQbLw36o/JVD6aHqm5rTvXYvsK/oK9Qv6PAv1lKIL5A==} - '@amplitude/plugin-custom-enrichment-browser@0.1.7': - resolution: {integrity: sha512-r4hoD38mbtXH91glpxI0EIslwWMrVuupWar2mp/OrbKEHfxdXrOsXfIc17fxYnQHqWpGuBghNMwh0oppRzJtAw==} + '@amplitude/plugin-custom-enrichment-browser@0.1.8': + resolution: {integrity: sha512-PVg56GfQID/UKLZx7imbg6Tmlj2AX/euyG7nnouKpowgGJ7jz/t4o2u3csSgrKbLSrTjxdbXVdPyz/+CecJ4Zg==} - '@amplitude/plugin-event-property-attribution-browser@0.1.2': - resolution: {integrity: sha512-Zd0EioWcm+UhrkJMls2mn+9AXpA/H9TeuULZOFbggRhfZ3rLtJMF3LqGLRs8UyA7vHXiqKsE7DXLur2Ya8sBzA==} + '@amplitude/plugin-event-property-attribution-browser@0.2.0': + resolution: {integrity: sha512-7GmAvpOf7CbdIL++9PrdNB8GeyUvL5/yRrv1hnVC7rv19MKumbYK9Oq1utOUr6nddPfQU3w3sz9YK5A8cUVrlQ==} - '@amplitude/plugin-network-capture-browser@1.9.16': - resolution: {integrity: sha512-VzY6OzWM3p6hYWZcOh/Ex+j/OgCfMfKO94wK71vgRL8+U3RTBr8bAw36i2twjL1jvAkSXv/PxTmzied1SEdKqQ==} + '@amplitude/plugin-network-capture-browser@1.10.0': + resolution: {integrity: sha512-wDTxpeDCst+pKyfRnVH1RYV93ctQtfuAQuCaUHqSO/TYcHnidGFWLl/UVbMvJ6EkrPoDXOCCTk5gTSPVMKSp0w==} - '@amplitude/plugin-page-url-enrichment-browser@0.7.8': - resolution: {integrity: sha512-/6FevlSaB7a5+R7Pph6I/Hc412JbNOy4z7g4JvzImeTtmmN8xMpg7Shu17Aum2mi2sK7sofHE1UMAXEoULpJEA==} + '@amplitude/plugin-page-url-enrichment-browser@0.7.9': + resolution: {integrity: sha512-3hMP05h8+wbEwrJQm/1Di4XkGskGEeSTI7lnMYwAwsSXIQkmP0bM8G8MAWYwoA1cGAh5Z3cUxp2xGJ/7IacvlA==} - '@amplitude/plugin-page-view-tracking-browser@2.10.2': - resolution: {integrity: sha512-1H/3YAXi5bVLZ0YNRbnHEne2J9c7kXvwmppSOZgQ21LIdxBo9A4WJhWPAJIZKqn9W2BbgrpxI/BjwOUMf5gYQw==} + '@amplitude/plugin-page-view-tracking-browser@2.11.0': + resolution: {integrity: sha512-ZI/1kTQID0yXileGjvseMoFZ9zUbLG5r+MsznmT0Br+x91LdCrPHXdpU7lq53UAwIhgREXk9S/o/AwUZfFSgzg==} - '@amplitude/plugin-session-replay-browser@1.28.0': - resolution: {integrity: sha512-alWW4czF7gINNaJAwCO+HXGkAgam7HjixNt/j5fCk/LGfWyHru8Yg1G5TKjOugrWEeZEqaDAVYGz+KcqbX3RVQ==} + '@amplitude/plugin-session-replay-browser@1.28.1': + resolution: {integrity: sha512-gSRIZUgUKEb4OvYcGYJZ553YVftq8lIzYkV9BsIQqUxFn3MVFygdQj+ZJCz75lJeyJZI7r9VhLTIzIcuIJ0KFg==} - '@amplitude/plugin-web-vitals-browser@1.1.31': - resolution: {integrity: sha512-zIGLyfb9I1rgdJQtRVir5d97spEe1er1vrPDzfHbrcwCgrLR8CGEzx1LQQcHCB6vg5tjrHsi7LdvZCLYRj+lCA==} + '@amplitude/plugin-web-vitals-browser@1.1.32': + resolution: {integrity: sha512-cf/MR5WTJ5iwCjxdy9f7vK8zy2nD1iXPwu8eKHiRxWR7Eoqx7bT30n9dar8kWDV8kraV0sglA5pVrP3b33m/pw==} '@amplitude/rrdom@2.0.0-alpha.37': resolution: {integrity: sha512-u4dSnBtlbJ8oU5P/Ywl2RLqvjqWbkl4ScMUbvQA7in4pWcx+0NRN+VVjLZXQcd8Fn7E/rcxjeUh7e7HfwvdasQ==} @@ -1410,8 +1471,8 @@ packages: '@amplitude/rrweb@2.0.0-alpha.37': resolution: {integrity: sha512-jJkSpPYiVgOZB422pb2jOJJn3pvb5E5f9vKK8CEmUlk2mVAl6kPQzW98mb05M65OJFj5nn9tSe9h5r5+Cl93ag==} - '@amplitude/session-replay-browser@1.38.0': - resolution: {integrity: sha512-SwOdPb/pB7A1ysQico62cwAQ02Y6E8FMN0BNg8KtMC8wXpUxaGKaL952mpNqrvPZs+kwTDYS6dKHA7pg2TfX4w==} + '@amplitude/session-replay-browser@1.39.0': + resolution: {integrity: sha512-JUVrzBNFbZKvA3QFls5fVLRvpr8F369omyIQzF5qkIpB9ExpAXqRvSXpwX+64oXlugQfW0oR9iAgRu10C66ygg==} '@amplitude/targeting@0.2.0': resolution: {integrity: sha512-/50ywTrC4hfcfJVBbh5DFbqMPPfaIOivZeb5Gb+OGM03QrA+lsUqdvtnKLNuWtceD4H6QQ2KFzPJ5aAJLyzVDA==} @@ -1609,15 +1670,9 @@ packages: peerDependencies: storybook: ^0.0.0-0 || ^10.1.0 || ^10.1.0-0 || ^10.2.0-0 || ^10.3.0-0 || ^10.4.0-0 - '@clack/core@0.3.5': - resolution: {integrity: sha512-5cfhQNH+1VQ2xLQlmzXMqUoiaH0lRBq9/CLW9lTyMbuKLC3+xEK01tHVvyut++mLOn5urSHmkm6I0Lg9MaJSTQ==} - '@clack/core@1.2.0': resolution: {integrity: sha512-qfxof/3T3t9DPU/Rj3OmcFyZInceqj/NVtO9rwIuJqCUgh32gwPjpFQQp/ben07qKlhpwq7GzfWpST4qdJ5Drg==} - '@clack/prompts@0.8.2': - resolution: {integrity: sha512-6b9Ab2UiZwJYA9iMyboYyW9yJvAO9V753ZhS+DHKEjZRKAxPPOb7MXXu84lsPFG+vZt6FRFniZ8rXi+zCIw4yQ==} - '@clack/prompts@1.2.0': resolution: {integrity: sha512-4jmztR9fMqPMjz6H/UZXj0zEmE43ha1euENwkckKKel4XpSfokExPo5AiVStdHSAlHekz4d0CA/r45Ok1E4D3w==} @@ -1960,18 +2015,10 @@ packages: eslint: optional: true - '@eslint/config-array@0.20.1': - resolution: {integrity: sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/config-array@0.23.5': resolution: {integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/config-helpers@0.2.3': - resolution: {integrity: sha512-u180qk2Um1le4yf0ruXH3PYFeEZeYC3p/4wCTKrr2U1CmGdzGi3KtY0nuPDH48UJxlKCC5RDzbcbh4X0XlqgHg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/config-helpers@0.5.4': resolution: {integrity: sha512-jJhqiY3wPMlWWO3370M86CPJ7pt8GmEwSLglMfQhjXal07RCvhmU0as4IuUEW5SJeunfItiEetHmSxCCe9lDBg==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} @@ -1980,14 +2027,6 @@ packages: resolution: {integrity: sha512-eIJYKTCECbP/nsKaaruF6LW967mtbQbsw4JTtSVkUQc9MneSkbrgPJAbKl9nWr0ZeowV8BfsarBmPpBzGelA2w==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/core@0.14.0': - resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/core@0.15.2': - resolution: {integrity: sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.17.0': resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2004,10 +2043,6 @@ packages: resolution: {integrity: sha512-2fCSKRwoUHntYq9J1Lm28s2zeoCSNh1Cbk6Tg7k7ViwOnveIfZwPRFGwBglz+dzw2MHe5w5Fo9+VJfqL9nco2w==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/eslintrc@3.3.5': - resolution: {integrity: sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@10.0.1': resolution: {integrity: sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} @@ -2017,10 +2052,6 @@ packages: eslint: optional: true - '@eslint/js@9.27.0': - resolution: {integrity: sha512-G5JD9Tu5HJEu4z2Uo4aHY2sLV64B7CDMXxFzqzjl3NKd6RVzSXNoE80jk7Y0lJkTTkjiIhBAqmlYwjuBY3tvpA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/markdown@7.5.1': resolution: {integrity: sha512-R8uZemG9dKTbru/DQRPblbJyXpObwKzo8rv1KYGGuPUPtjM4LXBYM9q5CIZAComzZupws3tWbDwam5AFpPLyJQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2029,18 +2060,10 @@ packages: resolution: {integrity: sha512-WWKmld/EyNdEB8GMq7JMPX1SDWgyJAM1uhtCi5ySrqYQM4HQjmg11EX/q3ZpnpRXHfdccFtli3NBvvGaYjWyQw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/object-schema@2.1.7': - resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/object-schema@3.0.5': resolution: {integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/plugin-kit@0.3.5': - resolution: {integrity: sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.4.1': resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2098,9 +2121,34 @@ packages: peerDependencies: react: '>= 16 || ^19.0.0-rc' - '@hono/node-server@1.19.14': - resolution: {integrity: sha512-GwtvgtXxnWsucXvbQXkRgqksiH2Qed37H9xHZocE5sA3N8O8O8/8FA3uclQXxXVzc9XBZuEOMK7+r02FmSpHtw==} - engines: {node: '>=18.14.1'} + '@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'} peerDependencies: hono: ^4 @@ -2320,80 +2368,88 @@ packages: '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} - '@lexical/clipboard@0.43.0': - resolution: {integrity: sha512-3dWDusVyM9EosBt4/n/ERyPIGOyuWuECj9zbvJdzGUdvu/VsqCdlyDsU5M7NxTUNQn2Fhkdj2o00UeB6bagX5Q==} + '@jsdevtools/ono@7.1.3': + resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} - '@lexical/code-core@0.43.0': - resolution: {integrity: sha512-8NtEOI4+hM688Pmd0Qh/aTCS5uovps902V53LGB15DUUwwL+Z5U+Hz7ZYozhyM6W755FQ3x15qtEGIIbDHE5bQ==} + '@lexical/clipboard@0.44.0': + resolution: {integrity: sha512-nfmNIs7uENqlDI7cm2E4I1Yp8mDJGMhEQIrIV2rNWnL1oeHVXQ7yuYdyoPdcY1zuj/9nvkYBQYUEh0QiGwpETA==} - '@lexical/devtools-core@0.43.0': - resolution: {integrity: sha512-Hyz8vxvmo0aThXjq3+t0mabozmQeb6U+pxKceAgBSxE9oLWbQmP7RW8jYPZW20bYqEcX1Kgmu+CdW8e3eSF7Kw==} + '@lexical/code-core@0.44.0': + resolution: {integrity: sha512-m57JyXTIvW1tsqw/Vuogk8jqWCZZIeFQbWybRc46ytR8ReDgzPRODpN8+dacIIeRH5yC5UC3lAa743mtdNkxqg==} + + '@lexical/devtools-core@0.44.0': + resolution: {integrity: sha512-X3uNG3P1vOsdzmEcy+7m9DxAcIVtVUZnvskmLqqLs6VluVVwH9xy7h1bPsvlDKvj1Nj73tWJ3TW0qXQWDTo5tw==} peerDependencies: react: '>=17.x' react-dom: '>=17.x' - '@lexical/dragon@0.43.0': - resolution: {integrity: sha512-wB2s8uO9DFwS5err1wM+7Yoz3cixtEXy1ZiU8RoJJ7tmjSEmQsLIflAQq8Lic291tCNPs+lSHKjdw+52vi0Z7Q==} + '@lexical/dragon@0.44.0': + resolution: {integrity: sha512-RhlsjVDket9k1+YFEkDE0/7Qyrh2BI0vxBMzrWwPJTXX/4YFanYN9su8RSabkIukBBJ3QiNOOoC8FKK4Lkr4qg==} - '@lexical/extension@0.43.0': - resolution: {integrity: sha512-hCFj//3RhsPrCmx8VRTTLIsWtC2n5GG03ZDdyrgmeLzXNuknwDqhzaGAfQi9LSYn+NU+j3yCUROu8pZqaedtvw==} + '@lexical/extension@0.44.0': + resolution: {integrity: sha512-BsYtoc+0EU0pqcOpf/lIUDU6LQVO6zX2AawZoUWJzT3Wzfov23qsqZWvl2WGM9dnRTN5iISJL3Fl53bQVxiXxw==} - '@lexical/hashtag@0.43.0': - resolution: {integrity: sha512-oCKjY8/jkxJuu8iBnNX0WSLA6ZIYTn+v3NLpJxDqnAFZJCnJ2i/nM8GKzPMzHCDzJVNxbQB08fOptdXf8eN0Fg==} + '@lexical/hashtag@0.44.0': + resolution: {integrity: sha512-0WATahDSqYKVTudQv3KpFbLeCpmrCpRptPFbjxOMckAX2MRpYlrExlqKfgfpri5BSQPtG49EPSGeNfSx/Faavw==} - '@lexical/history@0.43.0': - resolution: {integrity: sha512-SdrH3xgtUcolVRLihbQwiANQIiwSLdkKBon9oSsZNNnzVgEb7DUQUtJQGf33oW8HHWObIuWkh72W0fN1dZixOw==} + '@lexical/history@0.44.0': + resolution: {integrity: sha512-RGXcbFTgYL1GIWaReBI26mNSsJTfiA9EAtDY4LBeZ14NrIQhYNokKgNiOxq5Bn8xXrl2+mawQEqoMfgpWp/5YA==} - '@lexical/html@0.43.0': - resolution: {integrity: sha512-C6LpUQlRl9J8Hqpm/C8LCX1ZxFHyD/gvOdV+NuNGnXN06uo0jDDm9SNh/HI3VWvFu9ec4OuzUkQRCafW8WC8fQ==} + '@lexical/html@0.44.0': + resolution: {integrity: sha512-5X6eGsgwtqPxABsuShUxF7ZfyB/U4GwSEyeonvwH1Vc/5Q2uQVjlB+FAYd+MNwWMHMh4d4+yZ3l70AtIuhr5eg==} - '@lexical/link@0.43.0': - resolution: {integrity: sha512-jjU9PVWWBA2yEssbVkLQpu1ZIpXi3JwYb+JO20R47hzUm7T8SAPDd/VwU+2tcjqz065YntSGIaQ79dCft7WOJw==} + '@lexical/link@0.44.0': + resolution: {integrity: sha512-uvEqEol/mLEzGVQd8Rok9I48RgYPKokM/nsclI9nYcEdccVOM2Nri4ntoRwodhbccFLtjMPl8OBldwXbfc77tQ==} - '@lexical/list@0.43.0': - resolution: {integrity: sha512-WyYVeQa2x1LrI8Emr9AiWTjSMiZw77Zy7MRnohPTdX/4fu3Njfw61lpoonCNHlv/r5Mb/RHkIAwWjtjcSzwA+g==} + '@lexical/list@0.44.0': + resolution: {integrity: sha512-ZTCWxDz1okPrC9FBXi1yV3W5fbQQeMUlFIcSVF9HibcVPmCsPa900IxthuiQbGiTycUyXDTOB3IUYRtlJNtpjw==} - '@lexical/mark@0.43.0': - resolution: {integrity: sha512-pgwR5ia2ECDS0pyQxIrFvMOKjffI6fo2cGwqYg+Jz+ANMqE5zD4PoOUs7FEuZYAKPOAQR9GrETB7YAVSzKjk3Q==} + '@lexical/mark@0.44.0': + resolution: {integrity: sha512-bWMowllwe6BcgYMAkrsZx6Z+CX/72qCQpFKhlkR4ael92yOWSBkz68xp1wxxkSnQX9zoI1gYTeWBofVsSDKcsQ==} - '@lexical/markdown@0.43.0': - resolution: {integrity: sha512-bJYhISQkdRo6XxcajgP9T+c8XAGfkJ/DHnSvM5nyJnHD0vZSH/2RZd2Lgt0eAnMVEt9ECG8cUkR557QSaPeJBA==} + '@lexical/markdown@0.44.0': + resolution: {integrity: sha512-DwlXdp85pYMo3exDF6W3iz8plpuP+RQ4Me4Iljm7O5aPDp0SSrIoZxyX4zS668mVAoz5HHj1Ka0kQkft8mq26Q==} - '@lexical/offset@0.43.0': - resolution: {integrity: sha512-SYNF16Hk17ePaxFtPcBx3rzSM8yxDYSAzkSOdnUUePSzfTW3DUDzvUfe7q/7QCe/UlZd+4ULI0VjNgYRlR8Uiw==} + '@lexical/overflow@0.44.0': + resolution: {integrity: sha512-5GYaYjSxn27pqHRfU+tQ2STF10wgJvI+MUnwTnUFSzy3dko1b+oV94K/Yx0TuEewPbwDibfoFA8CwqUvOLHAyw==} - '@lexical/overflow@0.43.0': - resolution: {integrity: sha512-Usm7UfIwydhsg+qMbkBav79AOKqYa32zXY+TXveTqbaA+IAoIl3vFYP9x9ie4cHz/kgrmt/QuQs66cwPefRakg==} + '@lexical/plain-text@0.44.0': + resolution: {integrity: sha512-bIV4Lljk0x70zFhkZIwzSPK5q3m9FpDisjGm2/3Q/chb+5BW3Tv8QJmqnpCiSO6S2KXO7gfSy81ZfkQ1dcd4EQ==} - '@lexical/plain-text@0.43.0': - resolution: {integrity: sha512-wza2z2+OSsq3UPsFseqsVvnAWvW9s3W/rjQuf6Bk2/Xde2F3R7fvu3kArsaaVPzUKTVeOPCD8hUKIUpxP5OT2g==} - - '@lexical/react@0.43.0': - resolution: {integrity: sha512-Ov9PCS7Ghm83fmjSDr6CafDLsuMhf7A7FFfEr4DmDM/6Lw2w0a0QQJP+KqxPqaVaRgeQMJAVg38Zgrvuk3v7tw==} + '@lexical/react@0.44.0': + resolution: {integrity: sha512-p/NQd/fMh3pXb1XqegE2ruvWDcUmfB12OidQ9nwtMtj5VfcUjQu2I+trUhgGRIADxSYxMWmw+8PPj5YSf4m5oA==} peerDependencies: react: '>=17.x' react-dom: '>=17.x' + yjs: '>=13.5.22' + peerDependenciesMeta: + yjs: + optional: true - '@lexical/rich-text@0.43.0': - resolution: {integrity: sha512-y6uhY5X+PBLg8LSCDazSMAkUfA1RwBW6DFOuUKW5SI1DaB/oc/vpQhkR1DYGqXnytMx7hfiK+7lL51ZC0ydeWg==} + '@lexical/rich-text@0.44.0': + resolution: {integrity: sha512-IIdrutK5GY47ITjPlZB7KzUi9dBDwygsyFOwolnrYSL7m6TtGhAqrYiFg/YNOTT/nBzK3KQeCJRbnxpjJAVZtQ==} - '@lexical/selection@0.43.0': - resolution: {integrity: sha512-sdKdXIFggtHxTctvXjTyx2RgWuKOOP3PhrzRJF+COGfckrr/YzDtQCOfyvktElyKEeYXa3t9sx/R6Ep3n074fA==} + '@lexical/selection@0.44.0': + resolution: {integrity: sha512-AEyeZJFFr5YRLeqVR+X0QAW19c4Fk4MFAQu52z2gxAyDGTj9xwVJxjfepVpfUp4P9K+sPtJ/yaqfMXH506ksSQ==} - '@lexical/table@0.43.0': - resolution: {integrity: sha512-oLrOBzRwpmdHDpGVRgwBVgO1ro0w50rMdtOVQ6KsL53ijZ6OiI1YE2ZNOy4qfJvjub+2dgp83gKpB7YcmXAP3w==} + '@lexical/table@0.44.0': + resolution: {integrity: sha512-5Uq0O/fBCxcZp9y17fXUONY7dU9lVo/mB5JHy23laIiKzBKP5IzzTLMU9ikZTppIXbMNxYXd+R2pmy7PYTLyvw==} - '@lexical/text@0.43.0': - resolution: {integrity: sha512-dtUZ79WaAv3nEYBIWPBZIrjwCUPONN8HcgtReY3qku7WQkzqy3FaMwT/lBa92cUhqsn4ChLIBO3lPFhWRALyvg==} + '@lexical/text@0.44.0': + resolution: {integrity: sha512-1XJD8ZbwaXljTl8k4+jjiopdhnYZm26IJw9Gv8+cIThVC0b6B3JZ/WxH97BMDcSloKvWHFkGiPztxRwNwA29Rw==} - '@lexical/utils@0.43.0': - resolution: {integrity: sha512-Y9wzFwoeI9KLDJsztTz45Aobp6sACHSRqUtyjxpCsU0jwL60Tt9rD71QVz7SvpmzxjtnBb040s6LHa6vP0gY+A==} + '@lexical/utils@0.44.0': + resolution: {integrity: sha512-/D2ptztNevfBJgtkj4uaiYBeRcvSy+1mQj6pNYaCFZIoPJIwl6H5fXwWAvpvr11vcQKP9DEEoXR+V4qkMOA+EA==} - '@lexical/yjs@0.43.0': - resolution: {integrity: sha512-3ghY9BYZVo3Hg2TmY2+H3Q6+AhhGwNIhnr6mvCbdLBEsnSTXr4VZSPMXN2ae5phCPrI19eHrx4MvFNYodQcqrA==} + '@lexical/yjs@0.44.0': + resolution: {integrity: sha512-b3QTub9J/3LuwSSdooynb6GbMHBRyBT4xUbXzXqNPbDHgYe6CDrqf/uJIHRihIjAhOnPaHYqo9XUzitl++N1DQ==} 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: @@ -2697,13 +2753,10 @@ packages: cpu: [x64] os: [win32] - '@oxc-project/runtime@0.126.0': - resolution: {integrity: sha512-oksjxfqDNmIYMGlIgLzYgnz5YjZax27RtQezsPpKEGo9AC5LOaIGHsivCCeaAWdCtPnRyjZXM/7svreCC8kZVQ==} + '@oxc-project/runtime@0.127.0': + resolution: {integrity: sha512-UQYLxAhDDPHm++szfa4z0RTdcPq5vaywrAoEA2n1YaAKeanXQdjHsoT6x1gP3U97RN8LZ7yHsSOrKPCcA6mCqw==} engines: {node: ^20.19.0 || >=22.12.0} - '@oxc-project/types@0.126.0': - resolution: {integrity: sha512-oGfVtjAgwQVVpfBrbtk4e1XDyWHRFta6BS3GWVzrF8xYBT2VGQAk39yJS/wFSMrZqoiCU4oghT3Ch0HaHGIHcQ==} - '@oxc-project/types@0.127.0': resolution: {integrity: sha512-aIYXQBo4lCbO4z0R3FHeucQHpF46l2LbMdxRvqvuRuW2OxdnSkcng5B8+K12spgLDj93rtN3+J2Vac/TIO+ciQ==} @@ -2815,276 +2868,276 @@ packages: cpu: [x64] os: [win32] - '@oxfmt/binding-android-arm-eabi@0.45.0': - resolution: {integrity: sha512-A/UMxFob1fefCuMeGxQBulGfFE38g2Gm23ynr3u6b+b7fY7/ajGbNsa3ikMIkGMLJW/TRoQaMoP1kME7S+815w==} + '@oxfmt/binding-android-arm-eabi@0.46.0': + resolution: {integrity: sha512-b1doV4WRcJU+BESSlCvCjV+5CEr/T6h0frArAdV26Nir+gGNFNaylvDiiMPfF1pxeV0txZEs38ojzJaxBYg+ng==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxfmt/binding-android-arm64@0.45.0': - resolution: {integrity: sha512-L63z4uZmHjgvvqvMJD7mwff8aSBkM0+X4uFr6l6U5t6+Qc9DCLVZWIunJ7Gm4fn4zHPdSq6FFQnhu9yqqobxIg==} + '@oxfmt/binding-android-arm64@0.46.0': + resolution: {integrity: sha512-v6+HhjsoV3GO0u2u9jLSAZrvWfTraDxKofUIQ7/ktS7tzS+epVsxdHmeM+XxuNcAY/nWxxU1Sg4JcGTNRXraBA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxfmt/binding-darwin-arm64@0.45.0': - resolution: {integrity: sha512-UV34dd623FzqT+outIGndsCA/RBB+qgB3XVQhgmmJ9PJwa37NzPC9qzgKeOhPKxVk2HW+JKldQrVL54zs4Noww==} + '@oxfmt/binding-darwin-arm64@0.46.0': + resolution: {integrity: sha512-3eeooJGrqGIlI5MyryDZsAcKXSmKIgAD4yYtfRrRJzXZ0UTFZtiSveIur56YPrGMYZwT4XyVhHsMqrNwr1XeFA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxfmt/binding-darwin-x64@0.45.0': - resolution: {integrity: sha512-pMNJv0CMa1pDefVPeNbuQxibh8ITpWDFEhMC/IBB9Zlu76EbgzYwrzI4Cb11mqX2+rIYN70UTrh3z06TM59ptQ==} + '@oxfmt/binding-darwin-x64@0.46.0': + resolution: {integrity: sha512-QG8BDM0CXWbu84k2SKmCqfEddPQPFiBicwtYnLqHRWZZl57HbtOLRMac/KTq2NO4AEc4ICCBpFxJIV9zcqYfkQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxfmt/binding-freebsd-x64@0.45.0': - resolution: {integrity: sha512-xTcRoxbbo61sW2+ZRPeH+vp/o9G8gkdhiVumFU+TpneiPm14c79l6GFlxPXlCE9bNWikigbsrvJw46zCVAQFfg==} + '@oxfmt/binding-freebsd-x64@0.46.0': + resolution: {integrity: sha512-9DdCqS/n2ncu/Chazvt3cpgAjAmIGQDz7hFKSrNItMApyV/Ja9mz3hD4JakIE3nS8PW9smEbPWnb389QLBY4nw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxfmt/binding-linux-arm-gnueabihf@0.45.0': - resolution: {integrity: sha512-hWL8Hdni+3U1mPFx1UtWeGp3tNb6EhBAUHRMbKUxVkOp3WwoJbpVO2bfUVbS4PfpledviXXNHSTl1veTa6FhkQ==} + '@oxfmt/binding-linux-arm-gnueabihf@0.46.0': + resolution: {integrity: sha512-Dgs7VeE2jT0LHMhw6tPEt0xQYe54kBqHEovmWsv4FVQlegCOvlIJNx0S8n4vj8WUtpT+Z6BD2HhKJPLglLxvZg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm-musleabihf@0.45.0': - resolution: {integrity: sha512-6Blt/0OBT7vvfQpqYuYbpbFLPqSiaYpEJzUUWhinPEuADypDbtV1+LdjM0vYBNGPvnj85ex7lTerEX6JGcPt9w==} + '@oxfmt/binding-linux-arm-musleabihf@0.46.0': + resolution: {integrity: sha512-Zxn3adhTH13JKnU4xXJj8FeEfF680XjXh3gSShKl57HCMBRde2tUJTgogV/1MSHA80PJEVrDa7r66TLVq3Ia7Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm64-gnu@0.45.0': - resolution: {integrity: sha512-jLjoLfe+hGfjhA8hNBSdw85yCA8ePKq7ME4T+g6P9caQXvmt6IhE2X7iVjnVdkmYUWEzZrxlh4p6RkDmAMJY/A==} + '@oxfmt/binding-linux-arm64-gnu@0.46.0': + resolution: {integrity: sha512-+TWipjrgVM8D7aIdDD0tlr3teLTTvQTn7QTE5BpT10H1Fj82gfdn9X6nn2sDgx/MepuSCfSnzFNJq2paLL0OiA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-arm64-musl@0.45.0': - resolution: {integrity: sha512-XQKXZIKYJC3GQJ8FnD3iMntpw69Wd9kDDK/Xt79p6xnFYlGGxSNv2vIBvRTDg5CKByWFWWZLCRDOXoP/m6YN4g==} + '@oxfmt/binding-linux-arm64-musl@0.46.0': + resolution: {integrity: sha512-aAUPBWJ1lGwwnxZUEDLJ94+Iy6MuwJwPxUgO4sCA5mEEyDk7b+cDQ+JpX1VR150Zoyd+D49gsrUzpUK5h587Eg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxfmt/binding-linux-ppc64-gnu@0.45.0': - resolution: {integrity: sha512-+g5RiG+xOkdrCWkKodv407nTvMq4vYM18Uox2MhZBm/YoqFxxJpWKsloskFFG5NU13HGPw1wzYjjOVcyd9moCA==} + '@oxfmt/binding-linux-ppc64-gnu@0.46.0': + resolution: {integrity: sha512-ufBCJukyFX/UDrokP/r6BGDoTInnsDs7bxyzKAgMiZlt2Qu8GPJSJ6Zm6whIiJzKk0naxA8ilwmbO1LMw6Htxw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-riscv64-gnu@0.45.0': - resolution: {integrity: sha512-V7dXKoSyEbWAkkSF4JJNtF+NJZDmJoSarSoP30WCsB3X636Rehd3CvxBj49FIJxEBFWhvcUjGSHVeU8Erck1bQ==} + '@oxfmt/binding-linux-riscv64-gnu@0.46.0': + resolution: {integrity: sha512-eqtlC2YmPqjun76R1gVfGLuKWx7NuEnLEAudZ7n6ipSKbCZTqIKSs1b5Y8K/JHZsRpLkeSmAAjig5HOIg8fQzQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-riscv64-musl@0.45.0': - resolution: {integrity: sha512-Vdelft1sAEYojVGgcODEFXSWYQYlIvoyIGWebKCuUibd1tvS1TjTx413xG2ZLuHpYj45CkN/ztMLMX6jrgqpgg==} + '@oxfmt/binding-linux-riscv64-musl@0.46.0': + resolution: {integrity: sha512-yccVOO2nMXkQLGgy0He3EQEwKD7NF0zEk+/OWmroznkqXyJdN6bfK0LtNnr6/14Bh3FjpYq7bP33l/VloCnxpA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxfmt/binding-linux-s390x-gnu@0.45.0': - resolution: {integrity: sha512-RR7xKgNpqwENnK0aYCGYg0JycY2n93J0reNjHyes+I9Gq52dH95x+CBlnlAQHCPfz6FGnKA9HirgUl14WO6o7w==} + '@oxfmt/binding-linux-s390x-gnu@0.46.0': + resolution: {integrity: sha512-aAf7fG23OQCey6VRPj9IeCraoYtpgtx0ZyJ1CXkPyT1wjzBE7c3xtuxHe/AdHaJfVVb/SXpSk8Gl1LzyQupSqw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-x64-gnu@0.45.0': - resolution: {integrity: sha512-U/QQ0+BQNSHxjuXR/utvXnQ50Vu5kUuqEomZvQ1/3mhgbBiMc2WU9q5kZ5WwLp3gnFIx9ibkveoRSe2EZubkqg==} + '@oxfmt/binding-linux-x64-gnu@0.46.0': + resolution: {integrity: sha512-q0JPsTMyJNjYrBvYFDz4WbVsafNZaPCZv4RnFypRotLqpKROtBZcEaXQW4eb9YmvLU3NckVemLJnzkSZSdmOxw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-x64-musl@0.45.0': - resolution: {integrity: sha512-o5TLOUCF0RWQjsIS06yVC+kFgp092/yLe6qBGSUvtnmTVw9gxjpdQSXc3VN5Cnive4K11HNstEZF8ROKHfDFSw==} + '@oxfmt/binding-linux-x64-musl@0.46.0': + resolution: {integrity: sha512-7LsLY9Cw57GPkhSR+duI3mt9baRczK/DtHYSldQ4BEU92da9igBQNl4z7Vq5U9NNPsh1FmpKvv1q9WDtiUQR1A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxfmt/binding-openharmony-arm64@0.45.0': - resolution: {integrity: sha512-RnGcV3HgPuOjsGx/k9oyRNKmOp+NBLGzZTdPDYbc19r7NGeYPplnUU/BfU35bX2Y/O4ejvHxcfkvW2WoYL/gsg==} + '@oxfmt/binding-openharmony-arm64@0.46.0': + resolution: {integrity: sha512-lHiBOz8Duaku7JtRNLlps3j++eOaICPZSd8FCVmTDM4DFOPT71Bjn7g6iar1z7StXlKRweUKxWUs4sA+zWGDXg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxfmt/binding-win32-arm64-msvc@0.45.0': - resolution: {integrity: sha512-v3Vj7iKKsUFwt9w5hsqIIoErKVoENC6LoqfDlteOQ5QMDCXihlqLoxpmviUhXnNncg4zV6U9BPwlBbwa+qm4wg==} + '@oxfmt/binding-win32-arm64-msvc@0.46.0': + resolution: {integrity: sha512-/5ktYUliP89RhgC37DBH1x20U5zPSZMy3cMEcO0j3793rbHP9MWsknBwQB6eozRzWmYrh0IFM/p20EbPvDlYlg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxfmt/binding-win32-ia32-msvc@0.45.0': - resolution: {integrity: sha512-N8yotPBX6ph0H3toF4AEpdCeVPrdcSetj+8eGiZGsrLsng3bs/Q5HPu4bbSxip5GBPx5hGbGHrZwH4+rcrjhHA==} + '@oxfmt/binding-win32-ia32-msvc@0.46.0': + resolution: {integrity: sha512-3WTnoiuIr8XvV0DIY7SN+1uJSwKf4sPpcbHfobcRT9JutGcLaef/miyBB87jxd3aqH+mS0+G5lsgHuXLUwjjpQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxfmt/binding-win32-x64-msvc@0.45.0': - resolution: {integrity: sha512-w5MMTRCK1dpQeRA+HHqXQXyN33DlG/N2LOYxJmaT4fJjcmZrbNnqw7SmIk7I2/a2493PPLZ+2E/Ar6t2iKVMug==} + '@oxfmt/binding-win32-x64-msvc@0.46.0': + resolution: {integrity: sha512-IXxiQpkYnOwNfP23vzwSfhdpxJzyiPTY7eTn6dn3DsriKddESzM8i6kfq9R7CD/PUJwCvQT22NgtygBeug3KoA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@oxlint-tsgolint/darwin-arm64@0.21.1': - resolution: {integrity: sha512-7TLjyWe4wG9saJc992VWmaHq2hwKfOEEVTjheReXJXaDhavMZI4X9a6nKhbEng4IVkYtzjD2jw16vw2WFXLYLw==} + '@oxlint-tsgolint/darwin-arm64@0.22.0': + resolution: {integrity: sha512-/exgXceakHbQrzaHTtKOe7MuDATaWMCCWpsCDQCZKeYhLGXzComipTrCYnHzAXrdnNBb5r5K+RRf5A6ormrhMA==} cpu: [arm64] os: [darwin] - '@oxlint-tsgolint/darwin-x64@0.21.1': - resolution: {integrity: sha512-7wf9Wf75nTzA7zpL9myhFe2RKvfuqGUOADNvUooCjEWvh7hmPz3lSEqTMh5Z/VQhzsG04mM9ACyghxhRzq7zFw==} + '@oxlint-tsgolint/darwin-x64@0.22.0': + resolution: {integrity: sha512-xFGdIahlmUbK+/MpZ5y08D0ewMGLDbd2Vki5wxVFYg50lSrtgPAtdDl+kqKZLNaFu0zpMar8n9wv1le05sL/jw==} cpu: [x64] os: [darwin] - '@oxlint-tsgolint/linux-arm64@0.21.1': - resolution: {integrity: sha512-IPuQN/Vd0Rjklg/cCGBbQyUuRBp2f6LQXpZYwk5ivOR6V/+CgiYsv8pn/PVY7gjeyoNvPQrXB7xMjHUO2YZbdw==} + '@oxlint-tsgolint/linux-arm64@0.22.0': + resolution: {integrity: sha512-53RvC9f77eUo+V1dfQNwGVnsIfPJFMibRR0ee128EUpYNDOZe/ojmCfuXJeU7cY91V7r7fZSm42KPJocXUX8og==} cpu: [arm64] os: [linux] - '@oxlint-tsgolint/linux-x64@0.21.1': - resolution: {integrity: sha512-d1niGuTbh2qiv7dR7tqkbOcM5cIR63of0lMBFdEQavL1KrJV8zuRdwdi68K7MNGdgoR+J5A9ajpGGvsHwp1bPg==} + '@oxlint-tsgolint/linux-x64@0.22.0': + resolution: {integrity: sha512-evZcJAZ9hjNyuN69RnXwbt+U2pAOcYt+yvqukgugiCkRm4iBZ0R0CvpY1tgfG2XcGUhEPh8dljO+nPZTEVGpCQ==} cpu: [x64] os: [linux] - '@oxlint-tsgolint/win32-arm64@0.21.1': - resolution: {integrity: sha512-ICu9y2JLnFPvFqstnWPPNqBM8LK8BWw2OTeaR0UgEMm4hOSbrZAKv1/hwZYyiLqnCNjBL87AGSQIgTHCYlsipw==} + '@oxlint-tsgolint/win32-arm64@0.22.0': + resolution: {integrity: sha512-7jTO+k1mr5BxRAI2fxc1NRcE3MAbHNZ0Vef9SD1yAR6d1E6qEv5D/D7yuHpQpw6AO3qoecSVo2Jzr+JirN61+w==} cpu: [arm64] os: [win32] - '@oxlint-tsgolint/win32-x64@0.21.1': - resolution: {integrity: sha512-cTEFCFjCj6iXfrSHcvajSPNqhEA4TxSzU3gFxbdGSAUTNXGToU99IbdhWAPSbhcucoym0XE4Zl7E41NiSkNTug==} + '@oxlint-tsgolint/win32-x64@0.22.0': + resolution: {integrity: sha512-7lbl9XFcqO+scsynxMzTQdl0XUe6sBUCyY/oGWvCB+JmV4U+70vzSyZJdTEzzxtkZiNnUVFFh9RJLmoiQSne+w==} cpu: [x64] os: [win32] - '@oxlint/binding-android-arm-eabi@1.60.0': - resolution: {integrity: sha512-YdeJKaZckDQL1qa62a1aKq/goyq48aX3yOxaaWqWb4sau4Ee4IiLbamftNLU3zbePky6QsDj6thnSSzHRBjDfA==} + '@oxlint/binding-android-arm-eabi@1.61.0': + resolution: {integrity: sha512-6eZBPgiigK5txqoVgRqxbaxiom4lM8AP8CyKPPvpzKnQ3iFRFOIDc+0AapF+qsUSwjOzr5SGk4SxQDpQhkSJMQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxlint/binding-android-arm64@1.60.0': - resolution: {integrity: sha512-7ANS7PpXCfq84xZQ8E5WPs14gwcuPcl+/8TFNXfpSu0CQBXz3cUo2fDpHT8v8HJN+Ut02eacvMAzTnc9s6X4tw==} + '@oxlint/binding-android-arm64@1.61.0': + resolution: {integrity: sha512-CkwLR69MUnyv5wjzebvbbtTSUwqLxM35CXE79bHqDIK+NtKmPEUpStTcLQRZMCo4MP0qRT6TXIQVpK0ZVScnMA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxlint/binding-darwin-arm64@1.60.0': - resolution: {integrity: sha512-pJsgd9AfplLGBm1fIr25V6V14vMrayhx4uIQvlfH7jWs2SZwSrvi3TfgfJySB8T+hvyEH8K2zXljQiUnkgUnfQ==} + '@oxlint/binding-darwin-arm64@1.61.0': + resolution: {integrity: sha512-8JbefTkbmvqkqWjmQrHke+MdpgT2UghhD/ktM4FOQSpGeCgbMToJEKdl9zwhr/YWTl92i4QI1KiTwVExpcUN8A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxlint/binding-darwin-x64@1.60.0': - resolution: {integrity: sha512-Ue1aXHX49ivwflKqGJc7zcd/LeLgbhaTcDCQStgx5x06AXgjEAZmvrlMuIkWd4AL4FHQe6QJ9f33z04Cg448VQ==} + '@oxlint/binding-darwin-x64@1.61.0': + resolution: {integrity: sha512-uWpoxDT47hTnDLcdEh5jVbso8rlTTu5o0zuqa9J8E0JAKmIWn7kGFEIB03Pycn2hd2vKxybPGLhjURy/9We5FQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxlint/binding-freebsd-x64@1.60.0': - resolution: {integrity: sha512-YCyQzsQtusQw+gNRW9rRTifSO+Dt/+dtCl2NHoDMZqJlRTEZ/Oht9YnuporI9yiTx7+cB+eqzX3MtHHVHGIWhg==} + '@oxlint/binding-freebsd-x64@1.61.0': + resolution: {integrity: sha512-K/o4hEyW7flfMel0iBVznmMBt7VIMHGdjADocHKpK1DUF9erpWnJ+BSSWd2W0c8K3mPtpph+CuHzRU6CI3l9jQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxlint/binding-linux-arm-gnueabihf@1.60.0': - resolution: {integrity: sha512-c7dxM2Zksa45Qw16i2iGY3Fti2NirJ38FrsBsKw+qcJ0OtqTsBgKJLF0xV+yLG56UH01Z8WRPgsw31e0MoRoGQ==} + '@oxlint/binding-linux-arm-gnueabihf@1.61.0': + resolution: {integrity: sha512-P6040ZkcyweJ0Po9yEFqJCdvZnf3VNCGs1SIHgXDf8AAQNC6ID/heXQs9iSgo2FH7gKaKq32VWc59XZwL34C5Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm-musleabihf@1.60.0': - resolution: {integrity: sha512-ZWALoA42UYqBEP1Tbw9OWURgFGS1nWj2AAvLdY6ZcGx/Gj93qVCBKjcvwXMupZibYwFbi9s/rzqkZseb/6gVtQ==} + '@oxlint/binding-linux-arm-musleabihf@1.61.0': + resolution: {integrity: sha512-bwxrGCzTZkuB+THv2TQ1aTkVEfv5oz8sl+0XZZCpoYzErJD8OhPQOTA0ENPd1zJz8QsVdSzSrS2umKtPq4/JXg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm64-gnu@1.60.0': - resolution: {integrity: sha512-tpy+1w4p9hN5CicMCxqNy6ymfRtV5ayE573vFNjp1k1TN/qhLFgflveZoE/0++RlkHikBz2vY545NWm/hp7big==} + '@oxlint/binding-linux-arm64-gnu@1.61.0': + resolution: {integrity: sha512-vkhb9/wKguMkLlrm3FoJW/Xmdv31GgYAE+x8lxxQ+7HeOxXUySI0q36a3NTVIuQUdLzxCI1zzMGsk1o37FOe3w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-arm64-musl@1.60.0': - resolution: {integrity: sha512-eDYDXZGhQAXyn6GwtwiX/qcLS0HlOLPJ/+iiIY8RYr+3P8oKBmgKxADLlniL6FtWfE7pPk7IGN9/xvDEvDvFeg==} + '@oxlint/binding-linux-arm64-musl@1.61.0': + resolution: {integrity: sha512-bl1dQh8LnVqsj6oOQAcxwbuOmNJkwc4p6o//HTBZhNTzJy21TLDwAviMqUFNUxDHkPGpmdKTSN4tWTjLryP8xg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxlint/binding-linux-ppc64-gnu@1.60.0': - resolution: {integrity: sha512-nxehly5XYBHUWI9VJX1bqCf9j/B43DaK/aS/T1fcxCpX3PA4Rm9BB54nPD1CKayT8xg6REN1ao+01hSRNgy8OA==} + '@oxlint/binding-linux-ppc64-gnu@1.61.0': + resolution: {integrity: sha512-QoOX6KB2IiEpyOj/HKqaxi+NQHPnOgNgnr22n9N4ANJCzXkUlj1UmeAbFb4PpqdlHIzvGDM5xZ0OKtcLq9RhiQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-riscv64-gnu@1.60.0': - resolution: {integrity: sha512-j1qf/NaUfOWQutjeoooNG1Q0zsK0XGmSu1uDLq3cctquRF3j7t9Hxqf/76ehCc5GEUAanth2W4Fa+XT1RFg/nw==} + '@oxlint/binding-linux-riscv64-gnu@1.61.0': + resolution: {integrity: sha512-1TGcTerjY6p152wCof3oKElccq3xHljS/Mucp04gV/4ATpP6nO7YNnp7opEg6SHkv2a57/b4b8Ndm9znJ1/qAw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-riscv64-musl@1.60.0': - resolution: {integrity: sha512-YELKPRefQ/q/h3RUmeRfPCUhh2wBvgV1RyZ/F9M9u8cDyXsQW2ojv1DeWQTt466yczDITjZnIOg/s05pk7Ve2A==} + '@oxlint/binding-linux-riscv64-musl@1.61.0': + resolution: {integrity: sha512-65wXEmZIrX2ADwC8i/qFL4EWLSbeuBpAm3suuX1vu4IQkKd+wLT/HU/BOl84kp91u2SxPkPDyQgu4yrqp8vwVA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxlint/binding-linux-s390x-gnu@1.60.0': - resolution: {integrity: sha512-JkO3C6Gki7Y6h/MiIkFKvHFOz98/YWvQ4WYbK9DLXACMP2rjULzkeGyAzorJE5S1dzLQGFgeqvN779kSFwoV1g==} + '@oxlint/binding-linux-s390x-gnu@1.61.0': + resolution: {integrity: sha512-TVvhgMvor7Qa6COeXxCJ7ENOM+lcAOGsQ0iUdPSCv2hxb9qSHLQ4XF1h50S6RE1gBOJ0WV3rNukg4JJJP1LWRA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxlint/binding-linux-x64-gnu@1.60.0': - resolution: {integrity: sha512-XjKHdFVCpZZZSWBCKyyqCq65s2AKXykMXkjLoKYODrD+f5toLhlwsMESscu8FbgnJQ4Y/dpR/zdazsahmgBJIA==} + '@oxlint/binding-linux-x64-gnu@1.61.0': + resolution: {integrity: sha512-SjpS5uYuFoDnDdZPwZE59ndF95AsY47R5MliuneTWR1pDm2CxGJaYXbKULI71t5TVfLQUWmrHEGRL9xvuq6dnA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-x64-musl@1.60.0': - resolution: {integrity: sha512-js29ZWIuPhNWzY8NC7KoffEMEeWG105vbmm+8EOJsC+T/jHBiKIJEUF78+F/IrgEWMMP9N0kRND4Pp75+xAhKg==} + '@oxlint/binding-linux-x64-musl@1.61.0': + resolution: {integrity: sha512-gGfAeGD4sNJGILZbc/yKcIimO9wQnPMoYp9swAaKeEtwsSQAbU+rsdQze5SBtIP6j0QDzeYd4XSSUCRCF+LIeQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxlint/binding-openharmony-arm64@1.60.0': - resolution: {integrity: sha512-H+PUITKHk04stFpWj3x3Kg08Afp/bcXSBi0EhasR5a0Vw7StXHTzdl655PUI0fB4qdh2Wsu6Dsi+3ACxPoyQnA==} + '@oxlint/binding-openharmony-arm64@1.61.0': + resolution: {integrity: sha512-OlVT0LrG/ct33EVtWRyR+B/othwmDWeRxfi13wUdPeb3lAT5TgTcFDcfLfarZtzB4W1nWF/zICMgYdkggX2WmQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxlint/binding-win32-arm64-msvc@1.60.0': - resolution: {integrity: sha512-WA/yc7f7ZfCefBXVzNHn1Ztulb1EFwNBb4jMZ6pjML0zz6pHujlF3Q3jySluz3XHl/GNeMTntG1seUBWVMlMag==} + '@oxlint/binding-win32-arm64-msvc@1.61.0': + resolution: {integrity: sha512-vI//NZPJk6DToiovPtaiwD4iQ7kO1r5ReWQD0sOOyKRtP3E2f6jxin4uvwi3OvDzHA2EFfd7DcZl5dtkQh7g1w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxlint/binding-win32-ia32-msvc@1.60.0': - resolution: {integrity: sha512-33YxL1sqwYNZXtn3MD/4dno6s0xeedXOJlT1WohkVD565WvohClZUr7vwKdAk954n4xiEWJkewiCr+zLeq7AeA==} + '@oxlint/binding-win32-ia32-msvc@1.61.0': + resolution: {integrity: sha512-0ySj4/4zd2XjePs3XAQq7IigIstN4LPQZgCyigX5/ERMLjdWAJfnxcTsrtxZxuij8guJW8foXuHmhGxW0H4dDA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxlint/binding-win32-x64-msvc@1.60.0': - resolution: {integrity: sha512-JOro4ZcfBLamJCyfURQmOQByoorgOdx3ZjAkSqnb/CyG/i+lN3KoV5LAgk5ZAW6DPq7/Cx7n23f8DuTWXTWgyQ==} + '@oxlint/binding-win32-x64-msvc@1.61.0': + resolution: {integrity: sha512-0xgSiyeqDLDZxXoe9CVJrOx3TUVsfyoOY7cNi03JbItNcC9WCZqrSNdrAbHONxhSPaVh/lzfnDcON1RqSUMhHw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -3812,8 +3865,8 @@ packages: engines: {node: '>=18'} hasBin: true - '@tanstack/eslint-plugin-query@5.100.5': - resolution: {integrity: sha512-WKt+xyxvMQkUL4sqMQ8l3gzCplNi9HedVQN32WmBJYKITJ9a5r3H5cpICp8y96V8ZL5rZH0EZRgpO6sy8fAgrQ==} + '@tanstack/eslint-plugin-query@5.100.6': + resolution: {integrity: sha512-dZ2cUFe4OTTf2hLWa7la8oyj7AivK7JDecCDhUnxdAAedkn1YOL2PDr+IFF93h43zwUG2BvnFXiO59shwijyIg==} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ^5.4.0 || ^6.0.0 @@ -3829,15 +3882,19 @@ 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'} - '@tanstack/query-core@5.100.5': - resolution: {integrity: sha512-t20KrhKkf0HXzqQkPbJ5erhFesup68BAbwFgYmTrS7bxMF7O5MdmL8jUkik4thsG7Hg00fblz30h6yF1d5TxGg==} + '@tanstack/query-core@5.100.6': + resolution: {integrity: sha512-Os2CPUr98to98RYm+D4qGqGkiffn7MGSyl2547a4MljVkHE30AMJRqTiyCqBfMwzAx/I91vCkAxp5tHSla6Twg==} - '@tanstack/query-devtools@5.100.5': - resolution: {integrity: sha512-SuCkVCqqliRYJvm+LEL2U/TcFv92zTnHj6OGrJFHp1v/RsiwamI+ZDgQzbeUrLsJb8/Nj/52aIw0NyDMcVHl4A==} + '@tanstack/query-devtools@5.100.6': + resolution: {integrity: sha512-2SiNwlOiAdTbqktCSmwlXZH8x8mckSbES2O0bdr3qZNhdQl5DCtImZx0S3HGeNHWTIkzTaHx2Isg+bD4M3WRIg==} '@tanstack/react-devtools@0.10.2': resolution: {integrity: sha512-1BmZyxOrI5SqmRJ5MgkYZNNdnlLsJxQRI2YgorrAvcF2MxK6x5RcuStvD8+YlXoMw3JtNukPxoITirKAnKYDQA==} @@ -3862,17 +3919,30 @@ packages: '@tanstack/react-start': optional: true - '@tanstack/react-query-devtools@5.100.5': - resolution: {integrity: sha512-bItQERx7dJoiI0WEoS4tIrvNnmk4kUYsaQLdIpm4o9Kttmsi5B6xlY6JBDkavstR3hH/R2+VT5dr3L5LBFPW4g==} + '@tanstack/react-hotkeys@0.10.0': + resolution: {integrity: sha512-GwOSndI5j3qBVYTmgP1mYyRTnlxb2MS17cwGlsavSxMQPSnmDf+m3LzMIpRMs+3zzQMjg3cYhHsFYizYlFI2tw==} + engines: {node: '>=18'} peerDependencies: - '@tanstack/react-query': ^5.100.5 + react: '>=16.8' + react-dom: '>=16.8' + + '@tanstack/react-query-devtools@5.100.6': + resolution: {integrity: sha512-sz3ksMKA2t1rx0+Odzb0x1A3pXH/SVf7fzlzd3sKXzwXz8980f5sbOwfQD6+UfTG8G4Y2KaIg9e3sBn+uC4VTg==} + peerDependencies: + '@tanstack/react-query': ^5.100.6 react: ^18 || ^19 - '@tanstack/react-query@5.100.5': - resolution: {integrity: sha512-aNwj1mi2v2bQ9IxkyR1grLOUkv3BYWoykHy9KDyLNbjC3tsahbOHJibK+Wjtr1wRhG59/AvJhiJG5OlthaCgJA==} + '@tanstack/react-query@5.100.6': + resolution: {integrity: sha512-uVSrps0PV16Cxmcn2rvL+dUhwTpTUtiRW347AEeYxMZXO2pZe9ja7E24PAMGoQ5u2g89DD8u4QhOviBk+RN8RA==} 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: @@ -3885,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==} @@ -3924,18 +3997,20 @@ packages: peerDependencies: '@testing-library/dom': '>=7.21.4' - '@tsslint/cli@3.0.4': - resolution: {integrity: sha512-jvSYZEJKhDp02CyvLe7thGYp/uMW860kC8hDIMnZAGp3JMDkM2dU1kl550li4qiYXFkS8v5AU1nR2RyIn3khvw==} + '@tsslint/cli@3.1.0': + resolution: {integrity: sha512-SbcBbjRyRTXWjuyXccSLjIx2TWdhQFOMPDaqdLbW8dvh/A53pAWkimENKTvEL5gpGc0aulQ2Qt0icd+TxJQiRA==} engines: {node: '>=22.6.0'} hasBin: true peerDependencies: typescript: '*' - '@tsslint/compat-eslint@3.0.4': - resolution: {integrity: sha512-zWurlYWaSfK62uf5n7GMa0C7pcYOXbYjMeBfd3w0RmCZzk5gBhNSJdSNXNmbDXUuM/3RH03PpqHuUIktCGB52g==} + '@tsslint/compat-eslint@3.1.0': + resolution: {integrity: sha512-1gD9G9WH/KlSW3JVG6ahoMoWUy5GZqhFU2RqBOIpjw2vdDwhF+4v1PC6uMJW6LDem/FVoULiMMF9V8vKiX9Uuw==} + peerDependencies: + typescript: '*' - '@tsslint/config@3.0.4': - resolution: {integrity: sha512-2VfGdG35wrcosUxxsoUD46LOI1lEJWhQFpDROhos2JOwwVPIQqp66hl9MOYjkBpt8zYVWvdcDWIOIT9QIpDL3A==} + '@tsslint/config@3.1.0': + resolution: {integrity: sha512-FVoIycFczf1mccZrxOpkknciSpjoWD1o5Yw5CVvsddXz4/A5q6RbWU/QD7kcXpm8Yukw+3eMSKb1/NNKZ0Mmzw==} engines: {node: '>=22.6.0'} hasBin: true peerDependencies: @@ -3947,12 +4022,12 @@ packages: tsl: optional: true - '@tsslint/core@3.0.4': - resolution: {integrity: sha512-hzvO/8zZfds9k7ZREyE5h2pnKkukZsAD81F7rq/k9AOv//Wmi2OxXyxmhmv98/ZoieOK5nSrrzh8+mh7GtkrEw==} + '@tsslint/core@3.1.0': + resolution: {integrity: sha512-WO9sL4nfYme+3u27DLMHG/abooGMTJb54b8CVS8YSJj6ldMax764mHpiaNHf48jGjWN/pbAoC47pnErwFL022w==} engines: {node: '>=22.6.0'} - '@tsslint/types@3.0.4': - resolution: {integrity: sha512-z/LXFUSGCxrh/WfkVmlyRwCVjAr2H1/v6EDvVTuXX/3ZEO+Ss9UqgEGgnTnQn3TLSLJa2pEaIY3Hsz0Y9TsuyA==} + '@tsslint/types@3.1.0': + resolution: {integrity: sha512-y21o32pnDktikkRAfYCHu3bYplxyMo8dwhbBVgSyvFXJfvnc0S7K4c6gZypqSWYPzBRXHQ+sQnJ8oM9xGcwWUw==} '@tybys/wasm-util@0.10.1': resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} @@ -4174,11 +4249,11 @@ packages: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/eslint-plugin@8.59.0': - resolution: {integrity: sha512-HyAZtpdkgZwpq8Sz3FSUvCR4c+ScbuWa9AksK2Jweub7w4M3yTz4O11AqVJzLYjy/B9ZWPyc81I+mOdJU/bDQw==} + '@typescript-eslint/eslint-plugin@8.59.1': + resolution: {integrity: sha512-BOziFIfE+6osHO9FoJG4zjoHUcvI7fTNBSpdAwrNH0/TLvzjsk2oo8XSSOT2HhqUyhZPfHv4UOffoJ9oEEQ7Ag==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.59.0 + '@typescript-eslint/parser': ^8.59.1 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' @@ -4189,8 +4264,8 @@ packages: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.59.0': - resolution: {integrity: sha512-TI1XGwKbDpo9tRW8UDIXCOeLk55qe9ZFGs8MTKU6/M08HWTw52DD/IYhfQtOEhEdPhLMT26Ka/x7p70nd3dzDg==} + '@typescript-eslint/parser@8.59.1': + resolution: {integrity: sha512-HDQH9O/47Dxi1ceDhBXdaldtf/WV9yRYMjbjCuNk3qnaTD564qwv61Y7+gTxwxRKzSrgO5uhtw584igXVuuZkA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -4208,6 +4283,12 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/project-service@8.59.1': + resolution: {integrity: sha512-+MuHQlHiEr00Of/IQbE/MmEoi44znZHbR/Pz7Opq4HryUOlRi+/44dro9Ycy8Fyo+/024IWtw8m4JUMCGTYxDg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/scope-manager@8.58.2': resolution: {integrity: sha512-SgmyvDPexWETQek+qzZnrG6844IaO02UVyOLhI4wpo82dpZJY9+6YZCKAMFzXb7qhx37mFK1QcPQ18tud+vo6Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4216,6 +4297,10 @@ packages: resolution: {integrity: sha512-UzR16Ut8IpA3Mc4DbgAShlPPkVm8xXMWafXxB0BocaVRHs8ZGakAxGRskF7FId3sdk9lgGD73GSFaWmWFDE4dg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/scope-manager@8.59.1': + resolution: {integrity: sha512-LwuHQI4pDOYVKvmH2dkaJo6YZCSgouVgnS/z7yBPKBMvgtBvyLqiLy9Z6b7+m/TRcX1NFYUqZetI5Y+aT4GEfg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/tsconfig-utils@8.58.2': resolution: {integrity: sha512-3SR+RukipDvkkKp/d0jP0dyzuls3DbGmwDpVEc5wqk5f38KFThakqAAO0XMirWAE+kT00oTauTbzMFGPoAzB0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4228,6 +4313,12 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/tsconfig-utils@8.59.1': + resolution: {integrity: sha512-/0nEyPbX7gRsk0Uwfe4ALwwgxuA66d/l2mhRDNlAvaj4U3juhUtJNq0DsY8M2AYwwb9rEq2hrC3IcIcEt++iJA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/type-utils@8.58.2': resolution: {integrity: sha512-Z7EloNR/B389FvabdGeTo2XMs4W9TjtPiO9DAsmT0yom0bwlPyRjkJ1uCdW1DvrrrYP50AJZ9Xc3sByZA9+dcg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4235,8 +4326,8 @@ packages: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.59.0': - resolution: {integrity: sha512-3TRiZaQSltGqGeNrJzzr1+8YcEobKH9rHnqIp/1psfKFmhRQDNMGP5hBufanYTGznwShzVLs3Mz+gDN7HkWfXg==} + '@typescript-eslint/type-utils@8.59.1': + resolution: {integrity: sha512-klWPBR2ciQHS3f++ug/mVnWKPjBUo7icEL3FAO1lhAR1Z1i5NQYZ1EannMSRYcq5qCv5wNALlXr6fksRHyYl7w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -4250,6 +4341,10 @@ packages: resolution: {integrity: sha512-nLzdsT1gdOgFxxxwrlNVUBzSNBEEHJ86bblmk4QAS6stfig7rcJzWKqCyxFy3YRRHXDWEkb2NralA1nOYkkm/A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.59.1': + resolution: {integrity: sha512-ZDCjgccSdYPw5Bxh+my4Z0lJU96ZDN7jbBzvmEn0FZx3RtU1C7VWl6NbDx94bwY3V5YsgwRzJPOgeY2Q/nLG8A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@8.58.2': resolution: {integrity: sha512-ELGuoofuhhoCvNbQjFFiobFcGgcDCEm0ThWdmO4Z0UzLqPXS3KFvnEZ+SHewwOYHjM09tkzOWXNTv9u6Gqtyuw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4262,6 +4357,12 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/typescript-estree@8.59.1': + resolution: {integrity: sha512-OUd+vJS05sSkOip+BkZ/2NS8RMxrAAJemsC6vU3kmfLyeaJT0TftHkV9mcx2107MmsBVXXexhVu4F0TZXyMl4g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/utils@8.58.2': resolution: {integrity: sha512-QZfjHNEzPY8+l0+fIXMvuQ2sJlplB4zgDZvA+NmvZsZv3EQwOcc1DuIU1VJUTWZ/RKouBMhDyNaBMx4sWvrzRA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4276,6 +4377,13 @@ packages: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/utils@8.59.1': + resolution: {integrity: sha512-3pIeoXhCeYH9FSCBI8P3iNwJlGuzPlYKkTlen2O9T1DSeeg8UG8jstq6BLk+Mda0qup7mgk4z4XL4OzRaxZ8LA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/visitor-keys@8.58.2': resolution: {integrity: sha512-f1WO2Lx8a9t8DARmcWAUPJbu0G20bJlj8L4z72K00TMeJAoyLr/tHhI/pzYBLrR4dXWkcxO1cWYZEOX8DKHTqA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4284,50 +4392,54 @@ packages: resolution: {integrity: sha512-/uejZt4dSere1bx12WLlPfv8GktzcaDtuJ7s42/HEZ5zGj9oxRaD4bj7qwSunXkf+pbAhFt2zjpHYUiT5lHf0Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260426.1': - resolution: {integrity: sha512-HzGvERpIFO7p6pMljPN1fIOHqAv2oMeVIqYLSt27TKILkTRpe7fANW3R2OAM+/A+pLtYNNXGDbKl/wR+DHz9KA==} + '@typescript-eslint/visitor-keys@8.59.1': + resolution: {integrity: sha512-LdDNl6C5iJExcM0Yh0PwAIBb9PrSiCsWamF/JyEZawm3kFDnRoaq3LGE4bpyRao/fWeGKKyw7icx0YxrLFC5Cg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260428.1': + resolution: {integrity: sha512-Lll6WmXfgTEj1G3QBIoHlabQwUtJiyhlRgSLksa06QFL5BoA7V+Lu1waa9PtPNZbGsXLDMHodtk/bRQABKuPiw==} engines: {node: '>=16.20.0'} cpu: [arm64] os: [darwin] - '@typescript/native-preview-darwin-x64@7.0.0-dev.20260426.1': - resolution: {integrity: sha512-aE17wCPNQ09K4jV7TQYYRYF/Q/6nFS9jLpbyTYHtS+i+0yV1Rrs4VsqboisS1R/iSWsq3m1Yhh3uS4x3/9KUkg==} + '@typescript/native-preview-darwin-x64@7.0.0-dev.20260428.1': + resolution: {integrity: sha512-WbsBNSHlo+4sGrTxDWdmI7r8x48tCtSCuKdmK62FvVOq58UWAs6sL13Z4Rev4ohLcGHdXC5E/8AIdpLPqDYQpw==} engines: {node: '>=16.20.0'} cpu: [x64] os: [darwin] - '@typescript/native-preview-linux-arm64@7.0.0-dev.20260426.1': - resolution: {integrity: sha512-6OfhODChD1N6FX+ITzA1lny3WX6uew/Nw9kN7uWhymXlM3/vE0qtaAfsMpgdHdCbTPgcdpGaNFhbcMieju9Vdg==} + '@typescript/native-preview-linux-arm64@7.0.0-dev.20260428.1': + resolution: {integrity: sha512-cgcBX/ZBMdepkamLT8g8jQdHe7DZS/s6zTZRof6mvcrnJHlMeUnKoC9UO8/c22IrUMV3n0XPh7R8FYjUP0ll+Q==} engines: {node: '>=16.20.0'} cpu: [arm64] os: [linux] - '@typescript/native-preview-linux-arm@7.0.0-dev.20260426.1': - resolution: {integrity: sha512-/XJRC8B6JeOOb2/iek/BrzW4r5Nut+fkucG7ntEOQn63IRTsfP+AfJdJodG1VIwXOleNlFgG4RtYTUsvcbDJhg==} + '@typescript/native-preview-linux-arm@7.0.0-dev.20260428.1': + resolution: {integrity: sha512-/d/NnZFvEJU67L5mHh+cO3gsfwNCvJ9HGtxGq1KGz1VwTabOIcwLdpTpfsAR39WXzzfh9GJHL28n6GSGZInPow==} engines: {node: '>=16.20.0'} cpu: [arm] os: [linux] - '@typescript/native-preview-linux-x64@7.0.0-dev.20260426.1': - resolution: {integrity: sha512-KPDpjmLo/4xY8ugfMGFm7Ona/1igPzZveLt/C0rb6/jNPYuShumRfKYnItGDRXBlmecJY/04lrqkWqQjhtSSPg==} + '@typescript/native-preview-linux-x64@7.0.0-dev.20260428.1': + resolution: {integrity: sha512-4gJCE7wzenx1BH2Vtx2uKWUo8rFxnhGkxNEH1zxbYy/6ASwo+PnOPYmKHAzNE1C3yB5lzw71/vR5p5zyO57Y4A==} engines: {node: '>=16.20.0'} cpu: [x64] os: [linux] - '@typescript/native-preview-win32-arm64@7.0.0-dev.20260426.1': - resolution: {integrity: sha512-I7ThiopxuNKX/iAcwgMwsm6L32GOwmwLOyPwQmXjh5c3VD2acq3FYyZRDJVk0aUUy1w6bTbODlo5ZHoPnlZtvw==} + '@typescript/native-preview-win32-arm64@7.0.0-dev.20260428.1': + resolution: {integrity: sha512-yn6Rzbn62L4QTWrp0QgG8al6l/VG7PCPRdbE0vuGDSlKhInlC+Flo4QSc1qA8KHTbpHgl+nEsq9DymiitI4G4g==} engines: {node: '>=16.20.0'} cpu: [arm64] os: [win32] - '@typescript/native-preview-win32-x64@7.0.0-dev.20260426.1': - resolution: {integrity: sha512-4624MJq72vN4H1msiWVBqAIyerJRi5Ni/U6eeE1A1Opqg4c4QoalYQQ+5h5RIuaZ6rY+9kvUn+SjsvbZwyLbjQ==} + '@typescript/native-preview-win32-x64@7.0.0-dev.20260428.1': + resolution: {integrity: sha512-T9z13mcMowXmwGjprA2FIR2EEdYZxgqH8+qk7dFZVBlo5vfk41AN/qJfAdN7IsAhEb640MJ8cMN/aiczweZKmA==} engines: {node: '>=16.20.0'} cpu: [x64] os: [win32] - '@typescript/native-preview@7.0.0-dev.20260426.1': - resolution: {integrity: sha512-zE7B6TIG4XDYr4Your5E2Bxm1vD2YiPyD8OFG4nD5Odt/uN6gO0Y+T4TIbtGUBmOftMRqEV2Jw1ZC4ka0my1yw==} + '@typescript/native-preview@7.0.0-dev.20260428.1': + resolution: {integrity: sha512-JiM4PYWDGs57TT0mV2KArmaW7BnTkk3XRid79NdG17tfvDbRyg4hBCpKI7vARiQPtxjKrHlxyzxOGDpv5W5T7Q==} engines: {node: '>=16.20.0'} hasBin: true @@ -4435,13 +4547,13 @@ packages: '@vitest/utils@4.1.5': resolution: {integrity: sha512-76wdkrmfXfqGjueGgnb45ITPyUi1ycZ4IHgC2bhPDUfWHklY/q3MdLOAB+TF1e6xfl8NxNY0ZYaPCFNWSsw3Ug==} - '@voidzero-dev/vite-plus-core@0.1.19': - resolution: {integrity: sha512-BTmz50juSDolIN4Vtu5iVaPONV1XSrMB5V+9IoBhhxdogfvp7PBhaHuAcPjTN2RTVowhLZXoo8mn+aHjq//bkw==} + '@voidzero-dev/vite-plus-core@0.1.20': + resolution: {integrity: sha512-4KmzRfzwTeG3JuvDijrdqWusSgRvLMKDPrVsDdtbDVVjEMq0VnM8lSH+Nvepd6Pg+SuSVUP212OIfH/3Yn1bfA==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: '@arethetypeswrong/core': ^0.18.1 - '@tsdown/css': 0.21.9 - '@tsdown/exe': 0.21.9 + '@tsdown/css': 0.21.10 + '@tsdown/exe': 0.21.10 '@types/node': ^20.19.0 || >=22.12.0 '@vitejs/devtools': ^0.1.0 esbuild: 0.27.2 @@ -4495,56 +4607,56 @@ packages: yaml: optional: true - '@voidzero-dev/vite-plus-darwin-arm64@0.1.19': - resolution: {integrity: sha512-6MY/RiaRXKJ6wD/ftZnf+ohEqU68zHp3bVWetIw9dakcPL7TXoiIkDoechmZXCh+5eqxehvap4eh2eNEvWSM1Q==} + '@voidzero-dev/vite-plus-darwin-arm64@0.1.20': + resolution: {integrity: sha512-ykCOJk91h0IEMvljYGTauI4Svxr/CatZAitofvtEFqaTCLE3n06QCHD8qWphMM784VnPz1G/J2xuewxbQduNlg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@voidzero-dev/vite-plus-darwin-x64@0.1.19': - resolution: {integrity: sha512-jV6ygWCarMFW5DRqRyFkB2jpRDiAlLYzyQu0HZfYNoxfdNyO7isfuR5X6gV+ji7J3Kp0RZOiGrQUCjxTPqZg5w==} + '@voidzero-dev/vite-plus-darwin-x64@0.1.20': + resolution: {integrity: sha512-5XxNW9cYEh85Z4BErALyWh/tLP/NZmxNXzUQ0FanhHreI2Zq7FfgbSqQNvC7/sYsPYTWf74RlxmIjzV7R/Lb5Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@voidzero-dev/vite-plus-linux-arm64-gnu@0.1.19': - resolution: {integrity: sha512-jIWMgAok77aDuTK2kCQXn4Zp7pnUM56BvKhHCvnAmsF4yrs1KLQfH6YOdQMnVbNjQDneQgqdwHVDnkOfJRokYw==} + '@voidzero-dev/vite-plus-linux-arm64-gnu@0.1.20': + resolution: {integrity: sha512-Mc7npPBd9t/h0haURVCZGae+TfB0Yx2Ex8HbPKOVA4hnN9ynlMhMpLRFfTQAicDKYbEGDhfBcbCIX0vVv4vacA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@voidzero-dev/vite-plus-linux-arm64-musl@0.1.19': - resolution: {integrity: sha512-fUuXUqCl3zMbS5QpMJzewVjrpbtzlwuzYQSh5q59CMq65uCXT07amJzmuAFReDEMrwEAmjGgbamJ1ctLAYCxrA==} + '@voidzero-dev/vite-plus-linux-arm64-musl@0.1.20': + resolution: {integrity: sha512-Oh/pxMdTLR/wsDl/OONjItjLOeTewFBLuKkH5RQmcI9g3AVqKzLj1/uawujgysBI5E25tonRRK7I2q/zu8Uqvg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@voidzero-dev/vite-plus-linux-x64-gnu@0.1.19': - resolution: {integrity: sha512-xFVGMo1Yo5p9gABpOSSGgu5LhhMQs6qVXU7xL+NAGnaVViAYujNuOhCpBk2yK4Cy98KiNOjwnR5jG0TnRd22xg==} + '@voidzero-dev/vite-plus-linux-x64-gnu@0.1.20': + resolution: {integrity: sha512-msO1ZoUX5aSK8L6kN1C3XQO4CcH9aFsNPRSNcO1cjk1kTnaLyVYzkVxgvbh3vk7nzZAAMkmyZ4SlMpqJrdahrg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@voidzero-dev/vite-plus-linux-x64-musl@0.1.19': - resolution: {integrity: sha512-iEDxL85v/C01yF2EJKknkjDhKbgY10NL9/sZ4HxezWykePK6QpYY5ClWGL7gIi+YFp8rtAdRPKlrf0mTlYMvxw==} + '@voidzero-dev/vite-plus-linux-x64-musl@0.1.20': + resolution: {integrity: sha512-U93urREvg23ZFDkxKkkfWWIOI4GI9erhbWAZpXG+GeYqygWKrVC6PUTXiuexVg3/CFg2sSMTdm1W6V7TFG5hYA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@voidzero-dev/vite-plus-test@0.1.19': - resolution: {integrity: sha512-KK0lfqyiEOEykp3hrcHT49f1j3M3t15ZKCuO+e9KbDRambU7tdz70xoHCKkRXcFgnds9gqi09PSLVy1k8XN+Hg==} + '@voidzero-dev/vite-plus-test@0.1.20': + resolution: {integrity: sha512-vy2dJYw1bhgQ/+BrQrfwPlSKzQ2mm3YLJ9kGF7Yo0UJ2P3XKpshtgFIWLjSg/IASnC93OAx0c/7j3NM0I1RMuA==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/coverage-istanbul': 4.1.4 - '@vitest/coverage-v8': 4.1.4 - '@vitest/ui': 4.1.4 + '@vitest/coverage-istanbul': 4.1.5 + '@vitest/coverage-v8': 4.1.5 + '@vitest/ui': 4.1.5 happy-dom: '*' jsdom: '*' vite: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -4566,14 +4678,14 @@ packages: jsdom: optional: true - '@voidzero-dev/vite-plus-win32-arm64-msvc@0.1.19': - resolution: {integrity: sha512-2GGeGr2mtXLjV9O8CXEEZkV6O8q8rMBhq8fj5fyaSuBe5FQ1OxGYYMDqNBxvbg+hSUw0ThKK6qmirj5fF2e/iw==} + '@voidzero-dev/vite-plus-win32-arm64-msvc@0.1.20': + resolution: {integrity: sha512-deXfe3h2OpzKV88s1PMUgVOJfN9LlnDDpIEVH6y2+YAXwlTSO7YeKBj2QmyS6ALZCI4Rfp4HOsB0OKMVBfEqww==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@voidzero-dev/vite-plus-win32-x64-msvc@0.1.19': - resolution: {integrity: sha512-//xUNHQnd+p4Xd4rlObAvum3DW1ugbWZ+kfaqD7biHQ9HQwHF28WSpJ3+d31vLUHj4o3DXYSA67g1Bq2d4tVgg==} + '@voidzero-dev/vite-plus-win32-x64-msvc@0.1.20': + resolution: {integrity: sha512-ygdgQgo0N9oUI1Q2IdYBcvr+KLY6riaqLY/bkWNYtvHS4uk8a4GuEd0F08znWt2E8sFm29i35bYIzI6fFY2EBg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -4642,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'} @@ -4711,9 +4827,6 @@ packages: bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - balanced-match@4.0.4: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} @@ -4746,9 +4859,6 @@ packages: boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - brace-expansion@1.1.13: - resolution: {integrity: sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==} - brace-expansion@5.0.5: resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} engines: {node: 18 || 20 || >=22} @@ -4787,14 +4897,18 @@ 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'} - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - camelize@1.0.1: resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} @@ -4857,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==} @@ -4903,6 +5021,10 @@ packages: client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + clsx@2.1.1: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} @@ -4926,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==} @@ -4960,8 +5086,10 @@ packages: compare-versions@6.1.1: resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + concurrently@9.2.1: + resolution: {integrity: sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng==} + engines: {node: '>=18'} + hasBin: true confbox@0.1.8: resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} @@ -4972,8 +5100,8 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - copy-to-clipboard@3.3.3: - resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} + copy-to-clipboard@4.0.2: + resolution: {integrity: sha512-gklSft7IuhriZKHKpuoA1fpJSLPNgvUMWMo5BlnzAJm0zNKnznoSv23IjtNqclx8eKi6ZcdvFFzYEER/+U1LoQ==} core-js-compat@3.49.0: resolution: {integrity: sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==} @@ -5243,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==} @@ -5250,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'} @@ -5302,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: @@ -5375,6 +5513,10 @@ packages: resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} engines: {node: '>=0.12'} + entities@8.0.0: + resolution: {integrity: sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==} + engines: {node: '>=20.19.0'} + error-stack-parser-es@1.0.5: resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==} @@ -5445,8 +5587,8 @@ packages: '@eslint/json': optional: true - eslint-markdown@0.6.1: - resolution: {integrity: sha512-eiHSRFnzcPWN/0YDrtELW/+GnGylAoyXVBDh0iVAttyC5rWAaZfgSrzlFUTlS7Jz4XEL36PFLsoEcXlbvl5qPQ==} + eslint-markdown@0.7.0: + resolution: {integrity: sha512-cqnr3BWOC7EdexODdtuKIZ4Sbot78x1PZUrdIREp1v25PXgAhz+GRyZjxhSczLnEnf/oj49IyoiBjGAmcLNCQA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24.0.0} peerDependencies: eslint: ^9.31.0 || ^10.0.0-rc.0 @@ -5464,8 +5606,8 @@ packages: peerDependencies: eslint: '*' - eslint-plugin-better-tailwindcss@4.4.1: - resolution: {integrity: sha512-ueFciTgj2M+4YklYdtvpbMA3Nn22z60sQoSA4bnctOP4h0daUhJKAsDaGi888N00qWtIUqeK5Ikt6xnNnHPg2g==} + eslint-plugin-better-tailwindcss@4.5.0: + resolution: {integrity: sha512-EBNTx6OJYaWv7uUxHWTy1fhiNz2rZVkoeOHZzAJFwWaEPideBf04CMshrJ7YntG0KQzadlbRhHKYr32q5aBX4w==} engines: {node: ^20.19.0 || ^22.12.0 || >=23.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 @@ -5656,10 +5798,6 @@ packages: '@vue/compiler-sfc': ^3.3.0 eslint: '>=9.0.0' - eslint-scope@8.4.0: - resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint-scope@9.1.2: resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} @@ -5686,16 +5824,6 @@ packages: jiti: optional: true - eslint@9.27.0: - resolution: {integrity: sha512-ixRawFQuMB9DZ7fjU3iGGganFDp3+45bPOdaRurcFHSXO1e/sYwUX/FtQZpLZJR6SjMoJH8hR2pPEAfDyCoU2Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - hasBin: true - peerDependencies: - jiti: '*' - peerDependenciesMeta: - jiti: - optional: true - espree@10.4.0: resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5874,6 +6002,10 @@ packages: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + get-east-asian-width@1.5.0: resolution: {integrity: sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==} engines: {node: '>=18'} @@ -5892,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==} @@ -5914,10 +6050,6 @@ packages: resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} engines: {node: '>=10'} - globals@14.0.0: - resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} - engines: {node: '>=18'} - globals@15.15.0: resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} engines: {node: '>=18'} @@ -6033,8 +6165,8 @@ packages: i18next-resources-to-backend@1.2.1: resolution: {integrity: sha512-okHbVA+HZ7n1/76MsfhPqDou0fptl2dAlhRDu2ideXloRRduzHsqDOznJBef+R3DFZnbvWoBW+KxJ7fnFjd6Yw==} - i18next@26.0.6: - resolution: {integrity: sha512-A4U6eCXodIbrhf8EarRurB9/4ebyaurH4+fu4gig9bqxmpSt+fCAFm/GpRQDcN1Xzu/LdFCx4nYHsnM1edIIbg==} + i18next@26.0.8: + resolution: {integrity: sha512-BRzLom0mhDhV9v0QhgUUHWQJuwFmnr1194xEcNLYD6ym8y8s542n4jXUvRLnhNTbh9PmpU6kGZamyuGHQMsGjw==} peerDependencies: typescript: ^5 || ^6 peerDependenciesMeta: @@ -6073,10 +6205,6 @@ packages: immer@11.1.4: resolution: {integrity: sha512-XREFCPo6ksxVzP4E0ekD5aMdf8WMwmdNaz6vuvxgI40UaEiu6q3p8X52aU6GdyvLY3XXX/8R7JOTXStz/nBbRw==} - import-fresh@3.3.1: - resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} - engines: {node: '>=6'} - imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -6331,8 +6459,8 @@ packages: '@lexical/utils': '>=0.28.0' lexical: '>=0.28.0' - lexical@0.43.0: - resolution: {integrity: sha512-waSeXyt1HxTFpU8KNRA3IQcvjvpw0lZNaSbGopfOi4bLV0FF9zYpqiScTnEUMP/b1W7qWmD4Z2Detw43XICxqQ==} + lexical@0.44.0: + resolution: {integrity: sha512-ReDUjRlFgkGoPWzvdjr7s16PUVpHATN+2NH2NiZs+PLlISTaIFFgKil2P467oP3Vg+XgmpDsUgmWZsFJTztYjg==} lightningcss-android-arm64@1.32.0: resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} @@ -6714,9 +6842,6 @@ packages: resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} engines: {node: 18 || 20 || >=22} - minimatch@3.1.5: - resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} - minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -6898,17 +7023,17 @@ packages: oxc-resolver@11.19.1: resolution: {integrity: sha512-qE/CIg/spwrTBFt5aKmwe3ifeDdLfA2NESN30E42X/lII5ClF8V7Wt6WIJhcGZjp0/Q+nQ+9vgxGk//xZNX2hg==} - oxfmt@0.45.0: - resolution: {integrity: sha512-0o/COoN9fY50bjVeM7PQsNgbhndKurBIeTIcspW033OumksjJJmIVDKjAk5HMwU/GHTxSOdGDdhJ6BRzGPmsHg==} + oxfmt@0.46.0: + resolution: {integrity: sha512-CopwJOwPAjZ9p76fCvz+mSOJTw9/NY3cSksZK3VO/bUQ8UoEcketNgUuYS0UB3p+R9XnXe7wGGXUmyFxc7QxJA==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - oxlint-tsgolint@0.21.1: - resolution: {integrity: sha512-O2hxiT14C2HJkwzBU6CQBFPoagSd/IcV+Tt3e3UUaXFwbW4BO5DSDPSSboc3UM5MIDY+MLyepvtQwBQafNxWdw==} + oxlint-tsgolint@0.22.0: + resolution: {integrity: sha512-ku4MecLmCQIj1ScCtzNAqTuyl0BJQ02B36fJT+c5XQihHpYSFak+FC3GYO5fPyYk4oDwi0w0S7hTvrpNzuZhig==} hasBin: true - oxlint@1.60.0: - resolution: {integrity: sha512-tnRzTWiWJ9pg3ftRWnD0+Oqh78L6ZSwcEudvCZaER0PIqiAnNyXj5N1dPwjmNpDalkKS9m/WMLN1CTPUBPmsgw==} + oxlint@1.61.0: + resolution: {integrity: sha512-ZC0ALuhDZ6ivOFG+sy0D0pEDN49EvsId98zVlmYdkcXHsEM14m/qTNUEsUpiFiCVbpIxYtVBmmLE87nsbUHohQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -6942,10 +7067,6 @@ packages: papaparse@5.5.3: resolution: {integrity: sha512-5QvjGxYVjxO59MGU2lHVYpRWBBtKHnlIAcSe1uNFCkkptUh63NFRj0FJQm7nR67puEruUci/ZkjmEFrjCAyP4A==} - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - parse-css-color@0.2.1: resolution: {integrity: sha512-bwS/GGIFV3b6KS4uwpzCFj4w297Yl3uqnSgIPsoQkx7GMLROXfMnWvxfNkL0oh8HVhZA4hvJoEoEIqonfJ3BWg==} @@ -6975,8 +7096,8 @@ packages: parse5@7.3.0: resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} - parse5@8.0.0: - resolution: {integrity: sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==} + parse5@8.0.1: + resolution: {integrity: sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==} path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} @@ -7094,10 +7215,6 @@ packages: resolution: {integrity: sha512-W62t/Se6rA0Az3DfCL0AqJwXuKwBeYg6nOaIgzP+xZ7N5BFCI7DYi1qs6ygUYT6rvfi6t9k65UMLJC+PHZpDAA==} engines: {node: ^10 || ^12 || >=14} - postcss@8.5.9: - resolution: {integrity: sha512-7a70Nsot+EMX9fFU3064K/kdHWZqGVY+BADLyXc8Dfv+mTLLVl6JzJpPaCZ2kQL9gIJvKXSLMHhqdRRjwQeFtw==} - engines: {node: ^10 || ^12 || >=14} - powershell-utils@0.1.0: resolution: {integrity: sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==} engines: {node: '>=20'} @@ -7155,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 @@ -7328,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'} @@ -7427,6 +7551,10 @@ packages: resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} engines: {node: '>=0.10'} + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + reselect@5.1.1: resolution: {integrity: sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==} @@ -7437,10 +7565,6 @@ packages: resize-observer-polyfill@1.5.1: resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} @@ -7469,6 +7593,9 @@ packages: rw@1.3.3: resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} + rxjs@7.8.2: + resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} + safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} @@ -7528,6 +7655,10 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} + shell-quote@1.8.3: + resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} + engines: {node: '>= 0.4'} + shiki@4.0.2: resolution: {integrity: sha512-eAVKTMedR5ckPo4xne/PjYQYrU3qx78gtJZ+sHlXEg5IHhhoQhMfZVzetTYuaJS0L2Ef3AcCRzCHV8T0WI6nIQ==} engines: {node: '>=20'} @@ -7652,6 +7783,10 @@ packages: stringify-entities@4.0.4: resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + strip-ansi@7.2.0: resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} engines: {node: '>=12'} @@ -7672,10 +7807,6 @@ packages: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - strip-json-comments@5.0.3: resolution: {integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==} engines: {node: '>=14.16'} @@ -7792,10 +7923,6 @@ packages: resolution: {integrity: sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==} engines: {node: '>=18'} - tinyglobby@0.2.15: - resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} - engines: {node: '>=12.0.0'} - tinyglobby@0.2.16: resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} engines: {node: '>=12.0.0'} @@ -7816,11 +7943,11 @@ packages: resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} engines: {node: '>=14.0.0'} - tldts-core@7.0.28: - resolution: {integrity: sha512-7W5Efjhsc3chVdFhqtaU0KtK32J37Zcr9RKtID54nG+tIpcY79CQK/veYPODxtD/LJ4Lue66jvrQzIX2Z2/pUQ==} + tldts-core@7.0.29: + resolution: {integrity: sha512-W99NuU7b1DcG3uJ3v9k9VztCH3WialNbBkBft5wCs8V8mexu0XQqaZEYb9l9RNNzK8+3EJ9PKWB0/RUtTQ/o+Q==} - tldts@7.0.28: - resolution: {integrity: sha512-+Zg3vWhRUv8B1maGSTFdev9mjoo8Etn2Ayfs4cnjlD3CsGkxXX4QyW3j2WJ0wdjYcYmy7Lx2RDsZMhgCWafKIw==} + tldts@7.0.29: + resolution: {integrity: sha512-JIXCerhudr/N6OWLwLF1HVsTTUo7ry6qHa5eWZEkiMuxsIiAACL55tGLfqfHfoH7QaMQUW8fngD7u7TxWexYQg==} hasBin: true to-regex-range@5.0.1: @@ -7831,9 +7958,6 @@ packages: resolution: {integrity: sha512-41wJyvKep3yT2tyPqX/4blcfybknGB4D+oETKLs7Q76UiPqRpUJK3hr1nxelyYO0PHKVzJwlu0aCeEAsGI6rpw==} engines: {node: '>=20'} - toggle-selection@1.0.6: - resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} - toml-eslint-parser@1.0.3: resolution: {integrity: sha512-A5F0cM6+mDleacLIEUkmfpkBbnHJFV1d2rprHU2MXNk7mlxHq2zGojA+SRvQD1RoMo9gqjZPWEaKG4v1BQ48lw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} @@ -7845,6 +7969,10 @@ packages: resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} @@ -8082,8 +8210,8 @@ packages: resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} hasBin: true - uuid@13.0.0: - resolution: {integrity: sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w==} + uuid@14.0.0: + resolution: {integrity: sha512-Qo+uWgilfSmAhXCMav1uYFynlQO7fMFiMVZsQqZRMIXp0O7rR7qjkj+cPvBHLgBqi960QCoo/PH2/6ZtVqKvrg==} hasBin: true valibot@1.3.1: @@ -8106,8 +8234,8 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - vinext@0.0.41: - resolution: {integrity: sha512-fpQjNp6cIqjYGH2/kbhN2SdIYHEu79RdlII23SWsY1Qp7LM+je8GfTJH1sxw6dASxPhZKZB/jCmTm5d2/D25zw==} + vinext@0.0.45: + resolution: {integrity: sha512-iXXRR5IMO5bZHgN9xEIzwt/+jushkoJgmWNenR++x6Tw1XnJGTEY9D5GAKMGewHl+HJ1z2GPO4fpNkT+2UowRA==} engines: {node: '>=22'} hasBin: true peerDependencies: @@ -8149,8 +8277,8 @@ packages: storybook: ^0.0.0-0 || ^9.0.0 || ^10.0.0 || ^10.0.0-0 || ^10.1.0-0 || ^10.2.0-0 || ^10.3.0-0 || ^10.4.0-0 vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 - vite-plus@0.1.19: - resolution: {integrity: sha512-QWuTqkO/a8Q7I3hHnYdvwlJa7mcc6hgh99/8CHoRb27pgo+z1ux+NGYYCZPJHKVtatAtVRaQQvy4cEQBHyB87A==} + vite-plus@0.1.20: + resolution: {integrity: sha512-hxJqXTxiiFhszwAeD0MvKlztVuXE4TztTdJ64BPxGqgY67F0PDa5eZkUsrN91Ae8aYUMfweW6V/J57OUO9/0zw==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -8262,6 +8390,10 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -8309,6 +8441,10 @@ packages: resolution: {integrity: sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==} engines: {node: '>=0.4.0'} + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} @@ -8325,6 +8461,14 @@ packages: engines: {node: '>= 14.6'} hasBin: true + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + yauzl@3.2.1: resolution: {integrity: sha512-k1isifdbpNSFEHFJ1ZY4YDewv0IH9FR61lDetaRMD3j2ae3bIXGV+7c+LHCqtQGofSd8PIyV4X6+dHMAnSr60A==} engines: {node: '>=12'} @@ -8399,16 +8543,16 @@ snapshots: '@alloc/quick-lru@5.2.0': {} - '@amplitude/analytics-browser@2.41.1': + '@amplitude/analytics-browser@2.42.0': dependencies: - '@amplitude/analytics-core': 2.47.1 - '@amplitude/plugin-autocapture-browser': 1.26.1 - '@amplitude/plugin-custom-enrichment-browser': 0.1.7 - '@amplitude/plugin-event-property-attribution-browser': 0.1.2 - '@amplitude/plugin-network-capture-browser': 1.9.16 - '@amplitude/plugin-page-url-enrichment-browser': 0.7.8 - '@amplitude/plugin-page-view-tracking-browser': 2.10.2 - '@amplitude/plugin-web-vitals-browser': 1.1.31 + '@amplitude/analytics-core': 2.48.0 + '@amplitude/plugin-autocapture-browser': 1.27.0 + '@amplitude/plugin-custom-enrichment-browser': 0.1.8 + '@amplitude/plugin-event-property-attribution-browser': 0.2.0 + '@amplitude/plugin-network-capture-browser': 1.10.0 + '@amplitude/plugin-page-url-enrichment-browser': 0.7.9 + '@amplitude/plugin-page-view-tracking-browser': 2.11.0 + '@amplitude/plugin-web-vitals-browser': 1.1.32 tslib: 2.8.1 '@amplitude/analytics-client-common@2.4.46': @@ -8418,6 +8562,13 @@ snapshots: '@amplitude/analytics-types': 2.11.1 tslib: 2.8.1 + '@amplitude/analytics-client-common@2.4.47': + dependencies: + '@amplitude/analytics-connector': 1.6.4 + '@amplitude/analytics-core': 2.48.0 + '@amplitude/analytics-types': 2.11.1 + tslib: 2.8.1 + '@amplitude/analytics-connector@1.6.4': {} '@amplitude/analytics-core@2.47.1': @@ -8428,59 +8579,67 @@ snapshots: tslib: 2.8.1 zen-observable: 0.10.0 + '@amplitude/analytics-core@2.48.0': + dependencies: + '@amplitude/analytics-connector': 1.6.4 + '@types/zen-observable': 0.8.3 + safe-json-stringify: 1.2.0 + tslib: 2.8.1 + zen-observable: 0.10.0 + '@amplitude/analytics-types@2.11.1': {} '@amplitude/experiment-core@0.7.2': dependencies: js-base64: 3.7.8 - '@amplitude/plugin-autocapture-browser@1.26.1': + '@amplitude/plugin-autocapture-browser@1.27.0': dependencies: - '@amplitude/analytics-core': 2.47.1 + '@amplitude/analytics-core': 2.48.0 tslib: 2.8.1 - '@amplitude/plugin-custom-enrichment-browser@0.1.7': + '@amplitude/plugin-custom-enrichment-browser@0.1.8': dependencies: - '@amplitude/analytics-core': 2.47.1 + '@amplitude/analytics-core': 2.48.0 tslib: 2.8.1 - '@amplitude/plugin-event-property-attribution-browser@0.1.2': + '@amplitude/plugin-event-property-attribution-browser@0.2.0': dependencies: - '@amplitude/analytics-core': 2.47.1 + '@amplitude/analytics-core': 2.48.0 tslib: 2.8.1 - '@amplitude/plugin-network-capture-browser@1.9.16': + '@amplitude/plugin-network-capture-browser@1.10.0': dependencies: - '@amplitude/analytics-core': 2.47.1 + '@amplitude/analytics-core': 2.48.0 tslib: 2.8.1 - '@amplitude/plugin-page-url-enrichment-browser@0.7.8': + '@amplitude/plugin-page-url-enrichment-browser@0.7.9': dependencies: - '@amplitude/analytics-core': 2.47.1 + '@amplitude/analytics-core': 2.48.0 tslib: 2.8.1 - '@amplitude/plugin-page-view-tracking-browser@2.10.2': + '@amplitude/plugin-page-view-tracking-browser@2.11.0': dependencies: - '@amplitude/analytics-core': 2.47.1 + '@amplitude/analytics-core': 2.48.0 tslib: 2.8.1 - '@amplitude/plugin-session-replay-browser@1.28.0(@amplitude/rrweb@2.0.0-alpha.37)': + '@amplitude/plugin-session-replay-browser@1.28.1(@amplitude/rrweb@2.0.0-alpha.37)': dependencies: - '@amplitude/analytics-client-common': 2.4.46 - '@amplitude/analytics-core': 2.47.1 + '@amplitude/analytics-client-common': 2.4.47 + '@amplitude/analytics-core': 2.48.0 '@amplitude/analytics-types': 2.11.1 '@amplitude/rrweb-plugin-console-record': 2.0.0-alpha.36(@amplitude/rrweb@2.0.0-alpha.37) '@amplitude/rrweb-record': 2.0.0-alpha.36 - '@amplitude/session-replay-browser': 1.38.0(@amplitude/rrweb@2.0.0-alpha.37) + '@amplitude/session-replay-browser': 1.39.0(@amplitude/rrweb@2.0.0-alpha.37) idb-keyval: 6.2.2 tslib: 2.8.1 transitivePeerDependencies: - '@amplitude/rrweb' - rollup - '@amplitude/plugin-web-vitals-browser@1.1.31': + '@amplitude/plugin-web-vitals-browser@1.1.32': dependencies: - '@amplitude/analytics-core': 2.47.1 + '@amplitude/analytics-core': 2.48.0 tslib: 2.8.1 web-vitals: 5.1.0 @@ -8525,10 +8684,10 @@ snapshots: base64-arraybuffer: 1.0.2 mitt: 3.0.1 - '@amplitude/session-replay-browser@1.38.0(@amplitude/rrweb@2.0.0-alpha.37)': + '@amplitude/session-replay-browser@1.39.0(@amplitude/rrweb@2.0.0-alpha.37)': dependencies: - '@amplitude/analytics-client-common': 2.4.46 - '@amplitude/analytics-core': 2.47.1 + '@amplitude/analytics-client-common': 2.4.47 + '@amplitude/analytics-core': 2.48.0 '@amplitude/analytics-types': 2.11.1 '@amplitude/experiment-core': 0.7.2 '@amplitude/rrweb-packer': 2.0.0-alpha.36 @@ -8553,17 +8712,17 @@ snapshots: idb: 8.0.0 tslib: 2.8.1 - '@antfu/eslint-config@8.2.0(@eslint-react/eslint-plugin@3.0.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(@next/eslint-plugin-next@16.2.4)(@types/node@25.6.0)(@typescript-eslint/typescript-estree@8.59.0(typescript@6.0.3))(@typescript-eslint/utils@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(@vitest/coverage-v8@4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@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.19(@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)(eslint-plugin-react-refresh@0.5.2(eslint@10.2.1(jiti@2.6.1)))(eslint@10.2.1(jiti@2.6.1))(happy-dom@20.9.0)(jiti@2.6.1)(oxlint@1.60.0(oxlint-tsgolint@0.21.1))(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3)': + '@antfu/eslint-config@8.2.0(@eslint-react/eslint-plugin@3.0.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(@next/eslint-plugin-next@16.2.4)(@types/node@25.6.0)(@typescript-eslint/typescript-estree@8.59.1(typescript@6.0.3))(@typescript-eslint/utils@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(@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)(eslint-plugin-react-refresh@0.5.2(eslint@10.2.1(jiti@2.6.1)))(eslint@10.2.1(jiti@2.6.1))(happy-dom@20.9.0)(jiti@2.6.1)(oxlint@1.61.0(oxlint-tsgolint@0.22.0))(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3)': dependencies: '@antfu/install-pkg': 1.1.0 '@clack/prompts': 1.2.0 - '@e18e/eslint-plugin': 0.3.0(eslint@10.2.1(jiti@2.6.1))(oxlint@1.60.0(oxlint-tsgolint@0.21.1)) + '@e18e/eslint-plugin': 0.3.0(eslint@10.2.1(jiti@2.6.1))(oxlint@1.61.0(oxlint-tsgolint@0.22.0)) '@eslint-community/eslint-plugin-eslint-comments': 4.7.1(eslint@10.2.1(jiti@2.6.1)) '@eslint/markdown': 8.0.1 '@stylistic/eslint-plugin': 5.10.0(eslint@10.2.1(jiti@2.6.1)) '@typescript-eslint/eslint-plugin': 8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) '@typescript-eslint/parser': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) - '@vitest/eslint-plugin': 1.6.15(@types/node@25.6.0)(@typescript-eslint/eslint-plugin@8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(@vitest/coverage-v8@4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@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.19(@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)(eslint@10.2.1(jiti@2.6.1))(happy-dom@20.9.0)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3) + '@vitest/eslint-plugin': 1.6.15(@types/node@25.6.0)(@typescript-eslint/eslint-plugin@8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(@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)(eslint@10.2.1(jiti@2.6.1))(happy-dom@20.9.0)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3) ansis: 4.2.0 cac: 7.0.0 eslint: 10.2.1(jiti@2.6.1) @@ -8571,7 +8730,7 @@ snapshots: eslint-flat-config-utils: 3.1.0 eslint-merge-processors: 2.0.0(eslint@10.2.1(jiti@2.6.1)) eslint-plugin-antfu: 3.2.2(eslint@10.2.1(jiti@2.6.1)) - eslint-plugin-command: 3.5.2(@typescript-eslint/typescript-estree@8.59.0(typescript@6.0.3))(@typescript-eslint/utils@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1)) + eslint-plugin-command: 3.5.2(@typescript-eslint/typescript-estree@8.59.1(typescript@6.0.3))(@typescript-eslint/utils@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1)) eslint-plugin-import-lite: 0.6.0(eslint@10.2.1(jiti@2.6.1)) eslint-plugin-jsdoc: 62.9.0(eslint@10.2.1(jiti@2.6.1)) eslint-plugin-jsonc: 3.1.2(eslint@10.2.1(jiti@2.6.1)) @@ -8798,22 +8957,11 @@ snapshots: - '@chromatic-com/cypress' - '@chromatic-com/playwright' - '@clack/core@0.3.5': - dependencies: - picocolors: 1.1.1 - sisteransi: 1.0.5 - '@clack/core@1.2.0': dependencies: fast-wrap-ansi: 0.1.6 sisteransi: 1.0.5 - '@clack/prompts@0.8.2': - dependencies: - '@clack/core': 0.3.5 - picocolors: 1.1.1 - sisteransi: 1.0.5 - '@clack/prompts@1.2.0': dependencies: '@clack/core': 1.2.0 @@ -8973,12 +9121,12 @@ snapshots: '@cucumber/tag-expressions@9.1.0': {} - '@e18e/eslint-plugin@0.3.0(eslint@10.2.1(jiti@2.6.1))(oxlint@1.60.0(oxlint-tsgolint@0.21.1))': + '@e18e/eslint-plugin@0.3.0(eslint@10.2.1(jiti@2.6.1))(oxlint@1.61.0(oxlint-tsgolint@0.22.0))': dependencies: eslint-plugin-depend: 1.5.0(eslint@10.2.1(jiti@2.6.1)) optionalDependencies: eslint: 10.2.1(jiti@2.6.1) - oxlint: 1.60.0(oxlint-tsgolint@0.21.1) + oxlint: 1.61.0(oxlint-tsgolint@0.22.0) '@egoist/tailwindcss-icons@1.9.2(tailwindcss@4.2.4)': dependencies: @@ -9115,18 +9263,13 @@ snapshots: eslint: 10.2.1(jiti@2.6.1) eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.9.1(eslint@9.27.0(jiti@2.6.1))': - dependencies: - eslint: 9.27.0(jiti@2.6.1) - eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.12.2': {} '@eslint-react/ast@3.0.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)': dependencies: - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/typescript-estree': 8.58.2(typescript@6.0.3) - '@typescript-eslint/utils': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/types': 8.59.0 + '@typescript-eslint/typescript-estree': 8.59.0(typescript@6.0.3) + '@typescript-eslint/utils': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) eslint: 10.2.1(jiti@2.6.1) string-ts: 2.3.1 typescript: 6.0.3 @@ -9138,9 +9281,9 @@ snapshots: '@eslint-react/ast': 3.0.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) '@eslint-react/shared': 3.0.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) '@eslint-react/var': 3.0.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) - '@typescript-eslint/scope-manager': 8.58.2 - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/utils': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/scope-manager': 8.59.0 + '@typescript-eslint/types': 8.59.0 + '@typescript-eslint/utils': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) eslint: 10.2.1(jiti@2.6.1) ts-pattern: 5.9.0 typescript: 6.0.3 @@ -9179,9 +9322,9 @@ snapshots: dependencies: '@eslint-react/ast': 3.0.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) '@eslint-react/shared': 3.0.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) - '@typescript-eslint/scope-manager': 8.58.2 - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/utils': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/scope-manager': 8.59.0 + '@typescript-eslint/types': 8.59.0 + '@typescript-eslint/utils': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) eslint: 10.2.1(jiti@2.6.1) ts-pattern: 5.9.0 typescript: 6.0.3 @@ -9194,14 +9337,6 @@ snapshots: optionalDependencies: eslint: 10.2.1(jiti@2.6.1) - '@eslint/config-array@0.20.1': - dependencies: - '@eslint/object-schema': 2.1.7 - debug: 4.4.3(supports-color@8.1.1) - minimatch: 3.1.5 - transitivePeerDependencies: - - supports-color - '@eslint/config-array@0.23.5': dependencies: '@eslint/object-schema': 3.0.5 @@ -9210,8 +9345,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.2.3': {} - '@eslint/config-helpers@0.5.4': dependencies: '@eslint/core': 1.2.0 @@ -9220,14 +9353,6 @@ snapshots: dependencies: '@eslint/core': 1.2.1 - '@eslint/core@0.14.0': - dependencies: - '@types/json-schema': 7.0.15 - - '@eslint/core@0.15.2': - dependencies: - '@types/json-schema': 7.0.15 - '@eslint/core@0.17.0': dependencies: '@types/json-schema': 7.0.15 @@ -9245,26 +9370,10 @@ snapshots: mdn-data: 2.27.1 source-map-js: 1.2.1 - '@eslint/eslintrc@3.3.5': - dependencies: - ajv: 6.14.0 - debug: 4.4.3(supports-color@8.1.1) - espree: 10.4.0 - globals: 14.0.0 - ignore: 5.3.2 - import-fresh: 3.3.1 - js-yaml: 4.1.1 - minimatch: 3.1.5 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - '@eslint/js@10.0.1(eslint@10.2.1(jiti@2.6.1))': optionalDependencies: eslint: 10.2.1(jiti@2.6.1) - '@eslint/js@9.27.0': {} - '@eslint/markdown@7.5.1': dependencies: '@eslint/core': 0.17.0 @@ -9295,15 +9404,8 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/object-schema@2.1.7': {} - '@eslint/object-schema@3.0.5': {} - '@eslint/plugin-kit@0.3.5': - dependencies: - '@eslint/core': 0.15.2 - levn: 0.4.1 - '@eslint/plugin-kit@0.4.1': dependencies: '@eslint/core': 0.17.0 @@ -9372,7 +9474,57 @@ snapshots: dependencies: react: 19.2.5 - '@hono/node-server@1.19.14(hono@4.12.15)': + '@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 @@ -9530,11 +9682,11 @@ snapshots: dependencies: minipass: 7.1.3 - '@joshwooding/vite-plugin-react-docgen-typescript@0.7.0(@voidzero-dev/vite-plus-core@0.1.19(@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))(typescript@6.0.3)': + '@joshwooding/vite-plugin-react-docgen-typescript@0.7.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))(typescript@6.0.3)': dependencies: glob: 13.0.6 react-docgen-typescript: 2.4.0(typescript@6.0.3) - vite: '@voidzero-dev/vite-plus-core@0.1.19(@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)' + vite: '@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)' optionalDependencies: typescript: 6.0.3 @@ -9557,161 +9709,161 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@lexical/clipboard@0.43.0': - dependencies: - '@lexical/html': 0.43.0 - '@lexical/list': 0.43.0 - '@lexical/selection': 0.43.0 - '@lexical/utils': 0.43.0 - lexical: 0.43.0 + '@jsdevtools/ono@7.1.3': {} - '@lexical/code-core@0.43.0': + '@lexical/clipboard@0.44.0': dependencies: - lexical: 0.43.0 + '@lexical/extension': 0.44.0 + '@lexical/html': 0.44.0 + '@lexical/list': 0.44.0 + '@lexical/selection': 0.44.0 + '@lexical/utils': 0.44.0 + '@types/trusted-types': 2.0.7 + lexical: 0.44.0 - '@lexical/devtools-core@0.43.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@lexical/code-core@0.44.0': dependencies: - '@lexical/html': 0.43.0 - '@lexical/link': 0.43.0 - '@lexical/mark': 0.43.0 - '@lexical/table': 0.43.0 - '@lexical/utils': 0.43.0 - lexical: 0.43.0 + '@lexical/extension': 0.44.0 + lexical: 0.44.0 + + '@lexical/devtools-core@0.44.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + dependencies: + '@lexical/html': 0.44.0 + '@lexical/link': 0.44.0 + '@lexical/mark': 0.44.0 + '@lexical/table': 0.44.0 + '@lexical/utils': 0.44.0 + lexical: 0.44.0 react: 19.2.5 react-dom: 19.2.5(react@19.2.5) - '@lexical/dragon@0.43.0': + '@lexical/dragon@0.44.0': dependencies: - '@lexical/extension': 0.43.0 - lexical: 0.43.0 + '@lexical/extension': 0.44.0 + lexical: 0.44.0 - '@lexical/extension@0.43.0': + '@lexical/extension@0.44.0': dependencies: - '@lexical/utils': 0.43.0 + '@lexical/utils': 0.44.0 '@preact/signals-core': 1.14.1 - lexical: 0.43.0 + lexical: 0.44.0 - '@lexical/hashtag@0.43.0': + '@lexical/hashtag@0.44.0': dependencies: - '@lexical/text': 0.43.0 - '@lexical/utils': 0.43.0 - lexical: 0.43.0 + '@lexical/text': 0.44.0 + '@lexical/utils': 0.44.0 + lexical: 0.44.0 - '@lexical/history@0.43.0': + '@lexical/history@0.44.0': dependencies: - '@lexical/extension': 0.43.0 - '@lexical/utils': 0.43.0 - lexical: 0.43.0 + '@lexical/extension': 0.44.0 + '@lexical/utils': 0.44.0 + lexical: 0.44.0 - '@lexical/html@0.43.0': + '@lexical/html@0.44.0': dependencies: - '@lexical/selection': 0.43.0 - '@lexical/utils': 0.43.0 - lexical: 0.43.0 + '@lexical/extension': 0.44.0 + '@lexical/selection': 0.44.0 + '@lexical/utils': 0.44.0 + lexical: 0.44.0 - '@lexical/link@0.43.0': + '@lexical/link@0.44.0': dependencies: - '@lexical/extension': 0.43.0 - '@lexical/utils': 0.43.0 - lexical: 0.43.0 + '@lexical/extension': 0.44.0 + '@lexical/utils': 0.44.0 + lexical: 0.44.0 - '@lexical/list@0.43.0': + '@lexical/list@0.44.0': dependencies: - '@lexical/extension': 0.43.0 - '@lexical/selection': 0.43.0 - '@lexical/utils': 0.43.0 - lexical: 0.43.0 + '@lexical/extension': 0.44.0 + '@lexical/utils': 0.44.0 + lexical: 0.44.0 - '@lexical/mark@0.43.0': + '@lexical/mark@0.44.0': dependencies: - '@lexical/utils': 0.43.0 - lexical: 0.43.0 + '@lexical/utils': 0.44.0 + lexical: 0.44.0 - '@lexical/markdown@0.43.0': + '@lexical/markdown@0.44.0': dependencies: - '@lexical/code-core': 0.43.0 - '@lexical/link': 0.43.0 - '@lexical/list': 0.43.0 - '@lexical/rich-text': 0.43.0 - '@lexical/text': 0.43.0 - '@lexical/utils': 0.43.0 - lexical: 0.43.0 + '@lexical/code-core': 0.44.0 + '@lexical/link': 0.44.0 + '@lexical/list': 0.44.0 + '@lexical/rich-text': 0.44.0 + '@lexical/text': 0.44.0 + '@lexical/utils': 0.44.0 + lexical: 0.44.0 - '@lexical/offset@0.43.0': + '@lexical/overflow@0.44.0': dependencies: - lexical: 0.43.0 + lexical: 0.44.0 - '@lexical/overflow@0.43.0': + '@lexical/plain-text@0.44.0': dependencies: - lexical: 0.43.0 + '@lexical/clipboard': 0.44.0 + '@lexical/dragon': 0.44.0 + '@lexical/selection': 0.44.0 + '@lexical/utils': 0.44.0 + lexical: 0.44.0 - '@lexical/plain-text@0.43.0': - dependencies: - '@lexical/clipboard': 0.43.0 - '@lexical/dragon': 0.43.0 - '@lexical/selection': 0.43.0 - '@lexical/utils': 0.43.0 - lexical: 0.43.0 - - '@lexical/react@0.43.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@lexical/react@0.44.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: '@floating-ui/react': 0.27.19(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@lexical/devtools-core': 0.43.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@lexical/dragon': 0.43.0 - '@lexical/extension': 0.43.0 - '@lexical/hashtag': 0.43.0 - '@lexical/history': 0.43.0 - '@lexical/link': 0.43.0 - '@lexical/list': 0.43.0 - '@lexical/mark': 0.43.0 - '@lexical/markdown': 0.43.0 - '@lexical/overflow': 0.43.0 - '@lexical/plain-text': 0.43.0 - '@lexical/rich-text': 0.43.0 - '@lexical/table': 0.43.0 - '@lexical/text': 0.43.0 - '@lexical/utils': 0.43.0 - '@lexical/yjs': 0.43.0 - lexical: 0.43.0 + '@lexical/devtools-core': 0.44.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@lexical/dragon': 0.44.0 + '@lexical/extension': 0.44.0 + '@lexical/hashtag': 0.44.0 + '@lexical/history': 0.44.0 + '@lexical/link': 0.44.0 + '@lexical/list': 0.44.0 + '@lexical/mark': 0.44.0 + '@lexical/markdown': 0.44.0 + '@lexical/overflow': 0.44.0 + '@lexical/plain-text': 0.44.0 + '@lexical/rich-text': 0.44.0 + '@lexical/table': 0.44.0 + '@lexical/text': 0.44.0 + '@lexical/utils': 0.44.0 + '@lexical/yjs': 0.44.0 + lexical: 0.44.0 react: 19.2.5 react-dom: 19.2.5(react@19.2.5) react-error-boundary: 6.1.1(react@19.2.5) - transitivePeerDependencies: - - yjs - '@lexical/rich-text@0.43.0': + '@lexical/rich-text@0.44.0': dependencies: - '@lexical/clipboard': 0.43.0 - '@lexical/dragon': 0.43.0 - '@lexical/selection': 0.43.0 - '@lexical/utils': 0.43.0 - lexical: 0.43.0 + '@lexical/clipboard': 0.44.0 + '@lexical/dragon': 0.44.0 + '@lexical/selection': 0.44.0 + '@lexical/utils': 0.44.0 + lexical: 0.44.0 - '@lexical/selection@0.43.0': + '@lexical/selection@0.44.0': dependencies: - lexical: 0.43.0 + lexical: 0.44.0 - '@lexical/table@0.43.0': + '@lexical/table@0.44.0': dependencies: - '@lexical/clipboard': 0.43.0 - '@lexical/extension': 0.43.0 - '@lexical/utils': 0.43.0 - lexical: 0.43.0 + '@lexical/clipboard': 0.44.0 + '@lexical/extension': 0.44.0 + '@lexical/utils': 0.44.0 + lexical: 0.44.0 - '@lexical/text@0.43.0': + '@lexical/text@0.44.0': dependencies: - lexical: 0.43.0 + lexical: 0.44.0 - '@lexical/utils@0.43.0': + '@lexical/utils@0.44.0': dependencies: - '@lexical/selection': 0.43.0 - lexical: 0.43.0 + '@lexical/selection': 0.44.0 + lexical: 0.44.0 - '@lexical/yjs@0.43.0': + '@lexical/yjs@0.44.0': dependencies: - '@lexical/offset': 0.43.0 - '@lexical/selection': 0.43.0 - lexical: 0.43.0 + '@lexical/selection': 0.44.0 + lexical: 0.44.0 + + '@lukeed/ms@2.0.2': {} '@mdx-js/loader@3.1.1': dependencies: @@ -9897,11 +10049,11 @@ snapshots: transitivePeerDependencies: - '@opentelemetry/api' - '@orpc/tanstack-query@1.14.0(@orpc/client@1.14.0)(@tanstack/query-core@5.100.5)': + '@orpc/tanstack-query@1.14.0(@orpc/client@1.14.0)(@tanstack/query-core@5.100.6)': dependencies: '@orpc/client': 1.14.0 '@orpc/shared': 1.14.0 - '@tanstack/query-core': 5.100.5 + '@tanstack/query-core': 5.100.6 transitivePeerDependencies: - '@opentelemetry/api' @@ -9971,9 +10123,7 @@ snapshots: '@oxc-parser/binding-win32-x64-msvc@0.127.0': optional: true - '@oxc-project/runtime@0.126.0': {} - - '@oxc-project/types@0.126.0': {} + '@oxc-project/runtime@0.127.0': {} '@oxc-project/types@0.127.0': {} @@ -10042,136 +10192,136 @@ snapshots: '@oxc-resolver/binding-win32-x64-msvc@11.19.1': optional: true - '@oxfmt/binding-android-arm-eabi@0.45.0': + '@oxfmt/binding-android-arm-eabi@0.46.0': optional: true - '@oxfmt/binding-android-arm64@0.45.0': + '@oxfmt/binding-android-arm64@0.46.0': optional: true - '@oxfmt/binding-darwin-arm64@0.45.0': + '@oxfmt/binding-darwin-arm64@0.46.0': optional: true - '@oxfmt/binding-darwin-x64@0.45.0': + '@oxfmt/binding-darwin-x64@0.46.0': optional: true - '@oxfmt/binding-freebsd-x64@0.45.0': + '@oxfmt/binding-freebsd-x64@0.46.0': optional: true - '@oxfmt/binding-linux-arm-gnueabihf@0.45.0': + '@oxfmt/binding-linux-arm-gnueabihf@0.46.0': optional: true - '@oxfmt/binding-linux-arm-musleabihf@0.45.0': + '@oxfmt/binding-linux-arm-musleabihf@0.46.0': optional: true - '@oxfmt/binding-linux-arm64-gnu@0.45.0': + '@oxfmt/binding-linux-arm64-gnu@0.46.0': optional: true - '@oxfmt/binding-linux-arm64-musl@0.45.0': + '@oxfmt/binding-linux-arm64-musl@0.46.0': optional: true - '@oxfmt/binding-linux-ppc64-gnu@0.45.0': + '@oxfmt/binding-linux-ppc64-gnu@0.46.0': optional: true - '@oxfmt/binding-linux-riscv64-gnu@0.45.0': + '@oxfmt/binding-linux-riscv64-gnu@0.46.0': optional: true - '@oxfmt/binding-linux-riscv64-musl@0.45.0': + '@oxfmt/binding-linux-riscv64-musl@0.46.0': optional: true - '@oxfmt/binding-linux-s390x-gnu@0.45.0': + '@oxfmt/binding-linux-s390x-gnu@0.46.0': optional: true - '@oxfmt/binding-linux-x64-gnu@0.45.0': + '@oxfmt/binding-linux-x64-gnu@0.46.0': optional: true - '@oxfmt/binding-linux-x64-musl@0.45.0': + '@oxfmt/binding-linux-x64-musl@0.46.0': optional: true - '@oxfmt/binding-openharmony-arm64@0.45.0': + '@oxfmt/binding-openharmony-arm64@0.46.0': optional: true - '@oxfmt/binding-win32-arm64-msvc@0.45.0': + '@oxfmt/binding-win32-arm64-msvc@0.46.0': optional: true - '@oxfmt/binding-win32-ia32-msvc@0.45.0': + '@oxfmt/binding-win32-ia32-msvc@0.46.0': optional: true - '@oxfmt/binding-win32-x64-msvc@0.45.0': + '@oxfmt/binding-win32-x64-msvc@0.46.0': optional: true - '@oxlint-tsgolint/darwin-arm64@0.21.1': + '@oxlint-tsgolint/darwin-arm64@0.22.0': optional: true - '@oxlint-tsgolint/darwin-x64@0.21.1': + '@oxlint-tsgolint/darwin-x64@0.22.0': optional: true - '@oxlint-tsgolint/linux-arm64@0.21.1': + '@oxlint-tsgolint/linux-arm64@0.22.0': optional: true - '@oxlint-tsgolint/linux-x64@0.21.1': + '@oxlint-tsgolint/linux-x64@0.22.0': optional: true - '@oxlint-tsgolint/win32-arm64@0.21.1': + '@oxlint-tsgolint/win32-arm64@0.22.0': optional: true - '@oxlint-tsgolint/win32-x64@0.21.1': + '@oxlint-tsgolint/win32-x64@0.22.0': optional: true - '@oxlint/binding-android-arm-eabi@1.60.0': + '@oxlint/binding-android-arm-eabi@1.61.0': optional: true - '@oxlint/binding-android-arm64@1.60.0': + '@oxlint/binding-android-arm64@1.61.0': optional: true - '@oxlint/binding-darwin-arm64@1.60.0': + '@oxlint/binding-darwin-arm64@1.61.0': optional: true - '@oxlint/binding-darwin-x64@1.60.0': + '@oxlint/binding-darwin-x64@1.61.0': optional: true - '@oxlint/binding-freebsd-x64@1.60.0': + '@oxlint/binding-freebsd-x64@1.61.0': optional: true - '@oxlint/binding-linux-arm-gnueabihf@1.60.0': + '@oxlint/binding-linux-arm-gnueabihf@1.61.0': optional: true - '@oxlint/binding-linux-arm-musleabihf@1.60.0': + '@oxlint/binding-linux-arm-musleabihf@1.61.0': optional: true - '@oxlint/binding-linux-arm64-gnu@1.60.0': + '@oxlint/binding-linux-arm64-gnu@1.61.0': optional: true - '@oxlint/binding-linux-arm64-musl@1.60.0': + '@oxlint/binding-linux-arm64-musl@1.61.0': optional: true - '@oxlint/binding-linux-ppc64-gnu@1.60.0': + '@oxlint/binding-linux-ppc64-gnu@1.61.0': optional: true - '@oxlint/binding-linux-riscv64-gnu@1.60.0': + '@oxlint/binding-linux-riscv64-gnu@1.61.0': optional: true - '@oxlint/binding-linux-riscv64-musl@1.60.0': + '@oxlint/binding-linux-riscv64-musl@1.61.0': optional: true - '@oxlint/binding-linux-s390x-gnu@1.60.0': + '@oxlint/binding-linux-s390x-gnu@1.61.0': optional: true - '@oxlint/binding-linux-x64-gnu@1.60.0': + '@oxlint/binding-linux-x64-gnu@1.61.0': optional: true - '@oxlint/binding-linux-x64-musl@1.60.0': + '@oxlint/binding-linux-x64-musl@1.61.0': optional: true - '@oxlint/binding-openharmony-arm64@1.60.0': + '@oxlint/binding-openharmony-arm64@1.61.0': optional: true - '@oxlint/binding-win32-arm64-msvc@1.60.0': + '@oxlint/binding-win32-arm64-msvc@1.61.0': optional: true - '@oxlint/binding-win32-ia32-msvc@1.60.0': + '@oxlint/binding-win32-ia32-msvc@1.61.0': optional: true - '@oxlint/binding-win32-x64-msvc@1.60.0': + '@oxlint/binding-win32-x64-msvc@1.61.0': optional: true '@pkgr/core@0.2.9': {} @@ -10614,10 +10764,10 @@ snapshots: '@standard-schema/spec@1.1.0': {} - '@storybook/addon-docs@10.3.5(@types/react@19.2.14)(@voidzero-dev/vite-plus-core@0.1.19(@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)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))': + '@storybook/addon-docs@10.3.5(@types/react@19.2.14)(@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)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))': dependencies: '@mdx-js/react': 3.1.1(@types/react@19.2.14)(react@19.2.5) - '@storybook/csf-plugin': 10.3.5(@voidzero-dev/vite-plus-core@0.1.19(@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)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + '@storybook/csf-plugin': 10.3.5(@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)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) '@storybook/icons': 2.0.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@storybook/react-dom-shim': 10.3.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) react: 19.2.5 @@ -10647,24 +10797,24 @@ snapshots: storybook: 10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) ts-dedent: 2.2.0 - '@storybook/builder-vite@10.3.5(@voidzero-dev/vite-plus-core@0.1.19(@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)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))': + '@storybook/builder-vite@10.3.5(@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)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))': dependencies: - '@storybook/csf-plugin': 10.3.5(@voidzero-dev/vite-plus-core@0.1.19(@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)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + '@storybook/csf-plugin': 10.3.5(@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)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) storybook: 10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) ts-dedent: 2.2.0 - vite: '@voidzero-dev/vite-plus-core@0.1.19(@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)' + vite: '@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)' transitivePeerDependencies: - esbuild - rollup - webpack - '@storybook/csf-plugin@10.3.5(@voidzero-dev/vite-plus-core@0.1.19(@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)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))': + '@storybook/csf-plugin@10.3.5(@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)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))': dependencies: storybook: 10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) unplugin: 2.3.11 optionalDependencies: esbuild: 0.27.2 - vite: '@voidzero-dev/vite-plus-core@0.1.19(@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)' + vite: '@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)' '@storybook/global@5.0.0': {} @@ -10673,18 +10823,18 @@ snapshots: react: 19.2.5 react-dom: 19.2.5(react@19.2.5) - '@storybook/nextjs-vite@10.3.5(@babel/core@7.29.0)(@voidzero-dev/vite-plus-core@0.1.19(@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)(next@16.2.4(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@6.0.3)': + '@storybook/nextjs-vite@10.3.5(@babel/core@7.29.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)(next@16.2.4(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@6.0.3)': dependencies: - '@storybook/builder-vite': 10.3.5(@voidzero-dev/vite-plus-core@0.1.19(@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)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + '@storybook/builder-vite': 10.3.5(@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)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) '@storybook/react': 10.3.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@6.0.3) - '@storybook/react-vite': 10.3.5(@voidzero-dev/vite-plus-core@0.1.19(@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)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@6.0.3) + '@storybook/react-vite': 10.3.5(@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)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@6.0.3) next: 16.2.4(@babel/core@7.29.0)(@playwright/test@1.59.1)(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) storybook: 10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) styled-jsx: 5.1.6(@babel/core@7.29.0)(react@19.2.5) - vite: '@voidzero-dev/vite-plus-core@0.1.19(@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)' - vite-plugin-storybook-nextjs: 3.2.4(@voidzero-dev/vite-plus-core@0.1.19(@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))(next@16.2.4(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@6.0.3) + vite: '@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)' + vite-plugin-storybook-nextjs: 3.2.4(@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))(next@16.2.4(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@6.0.3) optionalDependencies: typescript: 6.0.3 transitivePeerDependencies: @@ -10701,11 +10851,11 @@ snapshots: react-dom: 19.2.5(react@19.2.5) storybook: 10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@storybook/react-vite@10.3.5(@voidzero-dev/vite-plus-core@0.1.19(@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)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@6.0.3)': + '@storybook/react-vite@10.3.5(@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)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@6.0.3)': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.7.0(@voidzero-dev/vite-plus-core@0.1.19(@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))(typescript@6.0.3) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.7.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))(typescript@6.0.3) '@rollup/pluginutils': 5.3.0 - '@storybook/builder-vite': 10.3.5(@voidzero-dev/vite-plus-core@0.1.19(@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)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + '@storybook/builder-vite': 10.3.5(@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)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) '@storybook/react': 10.3.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@6.0.3) empathic: 2.0.0 magic-string: 0.30.21 @@ -10715,7 +10865,7 @@ snapshots: resolve: 1.22.11 storybook: 10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) tsconfig-paths: 4.2.0 - vite: '@voidzero-dev/vite-plus-core@0.1.19(@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)' + vite: '@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)' transitivePeerDependencies: - esbuild - rollup @@ -10854,12 +11004,12 @@ snapshots: postcss-selector-parser: 6.0.10 tailwindcss: 4.2.4 - '@tailwindcss/vite@4.2.4(@voidzero-dev/vite-plus-core@0.1.19(@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))': + '@tailwindcss/vite@4.2.4(@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))': dependencies: '@tailwindcss/node': 4.2.4 '@tailwindcss/oxide': 4.2.4 tailwindcss: 4.2.4 - vite: '@voidzero-dev/vite-plus-core@0.1.19(@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)' + vite: '@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)' '@tanstack/devtools-client@0.0.6': dependencies: @@ -10905,7 +11055,7 @@ snapshots: - csstype - utf-8-validate - '@tanstack/eslint-plugin-query@5.100.5(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)': + '@tanstack/eslint-plugin-query@5.100.6(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)': dependencies: '@typescript-eslint/utils': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) eslint: 10.2.1(jiti@2.6.1) @@ -10936,11 +11086,15 @@ 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.5': {} + '@tanstack/query-core@5.100.6': {} - '@tanstack/query-devtools@5.100.5': {} + '@tanstack/query-devtools@5.100.6': {} '@tanstack/react-devtools@0.10.2(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(csstype@3.2.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: @@ -10974,17 +11128,31 @@ snapshots: transitivePeerDependencies: - react-dom - '@tanstack/react-query-devtools@5.100.5(@tanstack/react-query@5.100.5(react@19.2.5))(react@19.2.5)': + '@tanstack/react-hotkeys@0.10.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: - '@tanstack/query-devtools': 5.100.5 - '@tanstack/react-query': 5.100.5(react@19.2.5) + '@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 + '@tanstack/react-query': 5.100.6(react@19.2.5) react: 19.2.5 - '@tanstack/react-query@5.100.5(react@19.2.5)': + '@tanstack/react-query@5.100.6(react@19.2.5)': dependencies: - '@tanstack/query-core': 5.100.5 + '@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 @@ -10998,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': {} @@ -11038,46 +11208,41 @@ snapshots: dependencies: '@testing-library/dom': 10.4.1 - '@tsslint/cli@3.0.4(@tsslint/compat-eslint@3.0.4(jiti@2.6.1)(typescript@6.0.3))(typescript@6.0.3)': + '@tsslint/cli@3.1.0(@tsslint/compat-eslint@3.1.0(typescript@6.0.3))(typescript@6.0.3)': dependencies: - '@clack/prompts': 0.8.2 - '@tsslint/config': 3.0.4(@tsslint/compat-eslint@3.0.4(jiti@2.6.1)(typescript@6.0.3))(typescript@6.0.3) - '@tsslint/core': 3.0.4 + '@tsslint/config': 3.1.0(@tsslint/compat-eslint@3.1.0(typescript@6.0.3))(typescript@6.0.3) + '@tsslint/core': 3.1.0 '@volar/language-core': 2.4.28 '@volar/language-hub': 0.0.1 '@volar/typescript': 2.4.28 - minimatch: 10.2.4 + minimatch: 10.2.5 typescript: 6.0.3 transitivePeerDependencies: - '@tsslint/compat-eslint' - tsl - '@tsslint/compat-eslint@3.0.4(jiti@2.6.1)(typescript@6.0.3)': + '@tsslint/compat-eslint@3.1.0(typescript@6.0.3)': dependencies: - '@tsslint/types': 3.0.4 - '@typescript-eslint/parser': 8.59.0(eslint@9.27.0(jiti@2.6.1))(typescript@6.0.3) - eslint: 9.27.0(jiti@2.6.1) - transitivePeerDependencies: - - jiti - - supports-color - - typescript + '@tsslint/types': 3.1.0 + esquery: 1.7.0 + typescript: 6.0.3 - '@tsslint/config@3.0.4(@tsslint/compat-eslint@3.0.4(jiti@2.6.1)(typescript@6.0.3))(typescript@6.0.3)': + '@tsslint/config@3.1.0(@tsslint/compat-eslint@3.1.0(typescript@6.0.3))(typescript@6.0.3)': dependencies: - '@tsslint/types': 3.0.4 - minimatch: 10.2.4 + '@tsslint/types': 3.1.0 + minimatch: 10.2.5 ts-api-utils: 2.5.0(typescript@6.0.3) optionalDependencies: - '@tsslint/compat-eslint': 3.0.4(jiti@2.6.1)(typescript@6.0.3) + '@tsslint/compat-eslint': 3.1.0(typescript@6.0.3) transitivePeerDependencies: - typescript - '@tsslint/core@3.0.4': + '@tsslint/core@3.1.0': dependencies: - '@tsslint/types': 3.0.4 - minimatch: 10.2.4 + '@tsslint/types': 3.1.0 + minimatch: 10.2.5 - '@tsslint/types@3.0.4': {} + '@tsslint/types@3.1.0': {} '@tybys/wasm-util@0.10.1': dependencies: @@ -11295,8 +11460,7 @@ snapshots: '@types/sortablejs@1.15.9': {} - '@types/trusted-types@2.0.7': - optional: true + '@types/trusted-types@2.0.7': {} '@types/unist@2.0.11': {} @@ -11331,14 +11495,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.59.0(@typescript-eslint/parser@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)': + '@typescript-eslint/eslint-plugin@8.59.1(@typescript-eslint/parser@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) - '@typescript-eslint/scope-manager': 8.59.0 - '@typescript-eslint/type-utils': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) - '@typescript-eslint/utils': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.59.0 + '@typescript-eslint/parser': 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/scope-manager': 8.59.1 + '@typescript-eslint/type-utils': 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/utils': 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.59.1 eslint: 10.2.1(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 @@ -11359,34 +11523,22 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)': + '@typescript-eslint/parser@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)': dependencies: - '@typescript-eslint/scope-manager': 8.59.0 - '@typescript-eslint/types': 8.59.0 - '@typescript-eslint/typescript-estree': 8.59.0(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.59.0 + '@typescript-eslint/scope-manager': 8.59.1 + '@typescript-eslint/types': 8.59.1 + '@typescript-eslint/typescript-estree': 8.59.1(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.59.1 debug: 4.4.3(supports-color@8.1.1) eslint: 10.2.1(jiti@2.6.1) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.59.0(eslint@9.27.0(jiti@2.6.1))(typescript@6.0.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.59.0 - '@typescript-eslint/types': 8.59.0 - '@typescript-eslint/typescript-estree': 8.59.0(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.59.0 - debug: 4.4.3(supports-color@8.1.1) - eslint: 9.27.0(jiti@2.6.1) - typescript: 6.0.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/project-service@8.58.2(typescript@6.0.3)': dependencies: '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@6.0.3) - '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/types': 8.59.0 debug: 4.4.3(supports-color@8.1.1) typescript: 6.0.3 transitivePeerDependencies: @@ -11401,6 +11553,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/project-service@8.59.1(typescript@6.0.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.59.1(typescript@6.0.3) + '@typescript-eslint/types': 8.59.1 + debug: 4.4.3(supports-color@8.1.1) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/scope-manager@8.58.2': dependencies: '@typescript-eslint/types': 8.58.2 @@ -11411,6 +11572,11 @@ snapshots: '@typescript-eslint/types': 8.59.0 '@typescript-eslint/visitor-keys': 8.59.0 + '@typescript-eslint/scope-manager@8.59.1': + dependencies: + '@typescript-eslint/types': 8.59.1 + '@typescript-eslint/visitor-keys': 8.59.1 + '@typescript-eslint/tsconfig-utils@8.58.2(typescript@6.0.3)': dependencies: typescript: 6.0.3 @@ -11419,6 +11585,10 @@ snapshots: dependencies: typescript: 6.0.3 + '@typescript-eslint/tsconfig-utils@8.59.1(typescript@6.0.3)': + dependencies: + typescript: 6.0.3 + '@typescript-eslint/type-utils@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)': dependencies: '@typescript-eslint/types': 8.58.2 @@ -11431,11 +11601,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)': + '@typescript-eslint/type-utils@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)': dependencies: - '@typescript-eslint/types': 8.59.0 - '@typescript-eslint/typescript-estree': 8.59.0(typescript@6.0.3) - '@typescript-eslint/utils': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/types': 8.59.1 + '@typescript-eslint/typescript-estree': 8.59.1(typescript@6.0.3) + '@typescript-eslint/utils': 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) debug: 4.4.3(supports-color@8.1.1) eslint: 10.2.1(jiti@2.6.1) ts-api-utils: 2.5.0(typescript@6.0.3) @@ -11447,6 +11617,8 @@ snapshots: '@typescript-eslint/types@8.59.0': {} + '@typescript-eslint/types@8.59.1': {} + '@typescript-eslint/typescript-estree@8.58.2(typescript@6.0.3)': dependencies: '@typescript-eslint/project-service': 8.58.2(typescript@6.0.3) @@ -11454,9 +11626,9 @@ snapshots: '@typescript-eslint/types': 8.58.2 '@typescript-eslint/visitor-keys': 8.58.2 debug: 4.4.3(supports-color@8.1.1) - minimatch: 10.2.4 + minimatch: 10.2.5 semver: 7.7.4 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 ts-api-utils: 2.5.0(typescript@6.0.3) typescript: 6.0.3 transitivePeerDependencies: @@ -11469,7 +11641,22 @@ snapshots: '@typescript-eslint/types': 8.59.0 '@typescript-eslint/visitor-keys': 8.59.0 debug: 4.4.3(supports-color@8.1.1) - minimatch: 10.2.4 + minimatch: 10.2.5 + semver: 7.7.4 + tinyglobby: 0.2.16 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/typescript-estree@8.59.1(typescript@6.0.3)': + dependencies: + '@typescript-eslint/project-service': 8.59.1(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.59.1(typescript@6.0.3) + '@typescript-eslint/types': 8.59.1 + '@typescript-eslint/visitor-keys': 8.59.1 + debug: 4.4.3(supports-color@8.1.1) + minimatch: 10.2.5 semver: 7.7.4 tinyglobby: 0.2.16 ts-api-utils: 2.5.0(typescript@6.0.3) @@ -11499,6 +11686,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/utils@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.59.1 + '@typescript-eslint/types': 8.59.1 + '@typescript-eslint/typescript-estree': 8.59.1(typescript@6.0.3) + eslint: 10.2.1(jiti@2.6.1) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/visitor-keys@8.58.2': dependencies: '@typescript-eslint/types': 8.58.2 @@ -11509,36 +11707,41 @@ snapshots: '@typescript-eslint/types': 8.59.0 eslint-visitor-keys: 5.0.1 - '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260426.1': + '@typescript-eslint/visitor-keys@8.59.1': + dependencies: + '@typescript-eslint/types': 8.59.1 + eslint-visitor-keys: 5.0.1 + + '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260428.1': optional: true - '@typescript/native-preview-darwin-x64@7.0.0-dev.20260426.1': + '@typescript/native-preview-darwin-x64@7.0.0-dev.20260428.1': optional: true - '@typescript/native-preview-linux-arm64@7.0.0-dev.20260426.1': + '@typescript/native-preview-linux-arm64@7.0.0-dev.20260428.1': optional: true - '@typescript/native-preview-linux-arm@7.0.0-dev.20260426.1': + '@typescript/native-preview-linux-arm@7.0.0-dev.20260428.1': optional: true - '@typescript/native-preview-linux-x64@7.0.0-dev.20260426.1': + '@typescript/native-preview-linux-x64@7.0.0-dev.20260428.1': optional: true - '@typescript/native-preview-win32-arm64@7.0.0-dev.20260426.1': + '@typescript/native-preview-win32-arm64@7.0.0-dev.20260428.1': optional: true - '@typescript/native-preview-win32-x64@7.0.0-dev.20260426.1': + '@typescript/native-preview-win32-x64@7.0.0-dev.20260428.1': optional: true - '@typescript/native-preview@7.0.0-dev.20260426.1': + '@typescript/native-preview@7.0.0-dev.20260428.1': optionalDependencies: - '@typescript/native-preview-darwin-arm64': 7.0.0-dev.20260426.1 - '@typescript/native-preview-darwin-x64': 7.0.0-dev.20260426.1 - '@typescript/native-preview-linux-arm': 7.0.0-dev.20260426.1 - '@typescript/native-preview-linux-arm64': 7.0.0-dev.20260426.1 - '@typescript/native-preview-linux-x64': 7.0.0-dev.20260426.1 - '@typescript/native-preview-win32-arm64': 7.0.0-dev.20260426.1 - '@typescript/native-preview-win32-x64': 7.0.0-dev.20260426.1 + '@typescript/native-preview-darwin-arm64': 7.0.0-dev.20260428.1 + '@typescript/native-preview-darwin-x64': 7.0.0-dev.20260428.1 + '@typescript/native-preview-linux-arm': 7.0.0-dev.20260428.1 + '@typescript/native-preview-linux-arm64': 7.0.0-dev.20260428.1 + '@typescript/native-preview-linux-x64': 7.0.0-dev.20260428.1 + '@typescript/native-preview-win32-arm64': 7.0.0-dev.20260428.1 + '@typescript/native-preview-win32-x64': 7.0.0-dev.20260428.1 '@ungap/structured-clone@1.3.0': {} @@ -11568,12 +11771,12 @@ snapshots: '@resvg/resvg-wasm': 2.4.0 satori: 0.16.0 - '@vitejs/devtools-kit@0.1.11(@voidzero-dev/vite-plus-core@0.1.19(@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))(typescript@6.0.3)(ws@8.20.0)': + '@vitejs/devtools-kit@0.1.11(@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))(typescript@6.0.3)(ws@8.20.0)': dependencies: '@vitejs/devtools-rpc': 0.1.11(typescript@6.0.3)(ws@8.20.0) birpc: 4.0.0 ohash: 2.0.11 - vite: '@voidzero-dev/vite-plus-core@0.1.19(@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)' + vite: '@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)' transitivePeerDependencies: - typescript - ws @@ -11590,12 +11793,12 @@ snapshots: transitivePeerDependencies: - typescript - '@vitejs/plugin-react@6.0.1(@voidzero-dev/vite-plus-core@0.1.19(@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))': + '@vitejs/plugin-react@6.0.1(@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))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.7 - vite: '@voidzero-dev/vite-plus-core@0.1.19(@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)' + vite: '@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)' - '@vitejs/plugin-rsc@0.5.25(@voidzero-dev/vite-plus-core@0.1.19(@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))(react-dom@19.2.5(react@19.2.5))(react-server-dom-webpack@19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)': + '@vitejs/plugin-rsc@0.5.25(@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))(react-dom@19.2.5(react@19.2.5))(react-server-dom-webpack@19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)': dependencies: '@rolldown/pluginutils': 1.0.0-rc.17 es-module-lexer: 2.0.0 @@ -11606,12 +11809,12 @@ snapshots: srvx: 0.11.15 strip-literal: 3.1.0 turbo-stream: 3.2.0 - vite: '@voidzero-dev/vite-plus-core@0.1.19(@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)' - vitefu: 1.1.3(@voidzero-dev/vite-plus-core@0.1.19(@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)) + vite: '@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)' + vitefu: 1.1.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)) optionalDependencies: react-server-dom-webpack: 19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@vitest/coverage-v8@4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@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)': + '@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)': dependencies: '@bcoe/v8-coverage': 1.0.2 '@vitest/utils': 4.1.5 @@ -11623,7 +11826,7 @@ snapshots: obug: 2.1.1 std-env: 4.0.0 tinyrainbow: 3.1.0 - vitest: '@voidzero-dev/vite-plus-test@0.1.19(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@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.19(@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)' + vitest: '@voidzero-dev/vite-plus-test@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)' transitivePeerDependencies: - '@arethetypeswrong/core' - '@edge-runtime/vm' @@ -11653,12 +11856,12 @@ snapshots: - vite - yaml - '@vitest/eslint-plugin@1.6.15(@types/node@25.6.0)(@typescript-eslint/eslint-plugin@8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(@vitest/coverage-v8@4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@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.19(@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)(eslint@10.2.1(jiti@2.6.1))(happy-dom@20.9.0)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3)': + '@vitest/eslint-plugin@1.6.15(@types/node@25.6.0)(@typescript-eslint/eslint-plugin@8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(@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)(eslint@10.2.1(jiti@2.6.1))(happy-dom@20.9.0)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3)': dependencies: '@typescript-eslint/scope-manager': 8.59.0 '@typescript-eslint/utils': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) eslint: 10.2.1(jiti@2.6.1) - vitest: '@voidzero-dev/vite-plus-test@0.1.19(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@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.19(@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)' + vitest: '@voidzero-dev/vite-plus-test@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)' optionalDependencies: '@typescript-eslint/eslint-plugin': 8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) typescript: 6.0.3 @@ -11724,12 +11927,12 @@ snapshots: convert-source-map: 2.0.0 tinyrainbow: 3.1.0 - '@voidzero-dev/vite-plus-core@0.1.19(@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)': + '@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)': dependencies: - '@oxc-project/runtime': 0.126.0 - '@oxc-project/types': 0.126.0 + '@oxc-project/runtime': 0.127.0 + '@oxc-project/types': 0.127.0 lightningcss: 1.32.0 - postcss: 8.5.9 + postcss: 8.5.12 optionalDependencies: '@types/node': 25.6.0 esbuild: 0.27.2 @@ -11739,29 +11942,29 @@ snapshots: typescript: 6.0.3 yaml: 2.8.3 - '@voidzero-dev/vite-plus-darwin-arm64@0.1.19': + '@voidzero-dev/vite-plus-darwin-arm64@0.1.20': optional: true - '@voidzero-dev/vite-plus-darwin-x64@0.1.19': + '@voidzero-dev/vite-plus-darwin-x64@0.1.20': optional: true - '@voidzero-dev/vite-plus-linux-arm64-gnu@0.1.19': + '@voidzero-dev/vite-plus-linux-arm64-gnu@0.1.20': optional: true - '@voidzero-dev/vite-plus-linux-arm64-musl@0.1.19': + '@voidzero-dev/vite-plus-linux-arm64-musl@0.1.20': optional: true - '@voidzero-dev/vite-plus-linux-x64-gnu@0.1.19': + '@voidzero-dev/vite-plus-linux-x64-gnu@0.1.20': optional: true - '@voidzero-dev/vite-plus-linux-x64-musl@0.1.19': + '@voidzero-dev/vite-plus-linux-x64-musl@0.1.20': optional: true - '@voidzero-dev/vite-plus-test@0.1.19(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@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.19(@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-test@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)': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 - '@voidzero-dev/vite-plus-core': 0.1.19(@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) + '@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) es-module-lexer: 1.7.0 obug: 2.1.1 pixelmatch: 7.1.0 @@ -11771,11 +11974,11 @@ snapshots: tinybench: 2.9.0 tinyexec: 1.0.4 tinyglobby: 0.2.16 - vite: '@voidzero-dev/vite-plus-core@0.1.19(@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)' + vite: '@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)' ws: 8.20.0 optionalDependencies: '@types/node': 25.6.0 - '@vitest/coverage-v8': 4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@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) + '@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) happy-dom: 20.9.0 transitivePeerDependencies: - '@arethetypeswrong/core' @@ -11798,10 +12001,10 @@ snapshots: - utf-8-validate - yaml - '@voidzero-dev/vite-plus-win32-arm64-msvc@0.1.19': + '@voidzero-dev/vite-plus-win32-arm64-msvc@0.1.20': optional: true - '@voidzero-dev/vite-plus-win32-x64-msvc@0.1.19': + '@voidzero-dev/vite-plus-win32-x64-msvc@0.1.20': optional: true '@volar/language-core@2.4.28': @@ -11876,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: {} @@ -11930,8 +12135,6 @@ snapshots: bail@2.0.2: {} - balanced-match@1.0.2: {} - balanced-match@4.0.4: {} base64-arraybuffer@1.0.2: {} @@ -11956,11 +12159,6 @@ snapshots: boolbase@1.0.0: {} - brace-expansion@1.1.13: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - brace-expansion@5.0.5: dependencies: balanced-match: 4.0.4 @@ -11997,9 +12195,24 @@ snapshots: bytes@3.1.2: {} - cac@7.0.0: {} + 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 - callsites@3.1.0: {} + cac@7.0.0: {} camelize@1.0.1: {} @@ -12086,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 @@ -12117,6 +12334,12 @@ snapshots: client-only@0.0.1: {} + cliui@8.0.1: + dependencies: + string-width: 8.2.1 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + clsx@2.1.1: {} cmdk@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5): @@ -12151,6 +12374,8 @@ snapshots: color-name@1.1.4: {} + color-support@1.1.3: {} + comma-separated-tokens@2.0.3: {} commander@14.0.0: {} @@ -12169,7 +12394,14 @@ snapshots: compare-versions@6.1.1: {} - concat-map@0.0.1: {} + concurrently@9.2.1: + dependencies: + chalk: 4.1.2 + rxjs: 7.8.2 + shell-quote: 1.8.3 + supports-color: 8.1.1 + tree-kill: 1.2.2 + yargs: 17.7.2 confbox@0.1.8: {} @@ -12177,9 +12409,7 @@ snapshots: convert-source-map@2.0.0: {} - copy-to-clipboard@3.3.3: - dependencies: - toggle-selection: 1.0.6 + copy-to-clipboard@4.0.2: {} core-js-compat@3.49.0: dependencies: @@ -12468,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: {} @@ -12522,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 @@ -12594,6 +12830,8 @@ snapshots: entities@7.0.1: {} + entities@8.0.0: {} + error-stack-parser-es@1.0.5: {} error-stack-parser@2.1.4: @@ -12680,11 +12918,11 @@ snapshots: esquery: 1.7.0 jsonc-eslint-parser: 3.1.0 - eslint-markdown@0.6.1(eslint@10.2.1(jiti@2.6.1)): + eslint-markdown@0.7.0(eslint@10.2.1(jiti@2.6.1)): dependencies: '@eslint/markdown': 7.5.1 micromark-util-normalize-identifier: 2.0.1 - parse5: 8.0.0 + parse5: 8.0.1 optionalDependencies: eslint: 10.2.1(jiti@2.6.1) transitivePeerDependencies: @@ -12698,7 +12936,7 @@ snapshots: dependencies: eslint: 10.2.1(jiti@2.6.1) - eslint-plugin-better-tailwindcss@4.4.1(eslint@10.2.1(jiti@2.6.1))(oxlint@1.60.0(oxlint-tsgolint@0.21.1))(tailwindcss@4.2.4)(typescript@6.0.3): + eslint-plugin-better-tailwindcss@4.5.0(eslint@10.2.1(jiti@2.6.1))(oxlint@1.61.0(oxlint-tsgolint@0.22.0))(tailwindcss@4.2.4)(typescript@6.0.3): dependencies: '@eslint/css-tree': 4.0.1 '@valibot/to-json-schema': 1.6.0(valibot@1.3.1(typescript@6.0.3)) @@ -12711,16 +12949,16 @@ snapshots: valibot: 1.3.1(typescript@6.0.3) optionalDependencies: eslint: 10.2.1(jiti@2.6.1) - oxlint: 1.60.0(oxlint-tsgolint@0.21.1) + oxlint: 1.61.0(oxlint-tsgolint@0.22.0) transitivePeerDependencies: - '@eslint/css' - typescript - eslint-plugin-command@3.5.2(@typescript-eslint/typescript-estree@8.59.0(typescript@6.0.3))(@typescript-eslint/utils@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1)): + eslint-plugin-command@3.5.2(@typescript-eslint/typescript-estree@8.59.1(typescript@6.0.3))(@typescript-eslint/utils@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1)): dependencies: '@es-joy/jsdoccomment': 0.84.0 - '@typescript-eslint/typescript-estree': 8.59.0(typescript@6.0.3) - '@typescript-eslint/utils': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.59.1(typescript@6.0.3) + '@typescript-eslint/utils': 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) eslint: 10.2.1(jiti@2.6.1) eslint-plugin-depend@1.5.0(eslint@10.2.1(jiti@2.6.1)): @@ -13038,11 +13276,6 @@ snapshots: dependencies: eslint: 10.2.1(jiti@2.6.1) - eslint-scope@8.4.0: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - eslint-scope@9.1.2: dependencies: '@types/esrecurse': 4.3.1 @@ -13093,48 +13326,6 @@ snapshots: transitivePeerDependencies: - supports-color - eslint@9.27.0(jiti@2.6.1): - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.27.0(jiti@2.6.1)) - '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.20.1 - '@eslint/config-helpers': 0.2.3 - '@eslint/core': 0.14.0 - '@eslint/eslintrc': 3.3.5 - '@eslint/js': 9.27.0 - '@eslint/plugin-kit': 0.3.5 - '@humanfs/node': 0.16.7 - '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.3 - '@types/estree': 1.0.8 - '@types/json-schema': 7.0.15 - ajv: 6.14.0 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.3(supports-color@8.1.1) - escape-string-regexp: 4.0.0 - eslint-scope: 8.4.0 - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 - esquery: 1.7.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 8.0.0 - find-up: 5.0.0 - glob-parent: 6.0.2 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - json-stable-stringify-without-jsonify: 1.0.1 - lodash.merge: 4.6.2 - minimatch: 3.1.5 - natural-compare: 1.4.0 - optionator: 0.9.4 - optionalDependencies: - jiti: 2.6.1 - transitivePeerDependencies: - - supports-color - espree@10.4.0: dependencies: acorn: 8.16.0 @@ -13312,6 +13503,8 @@ snapshots: gensync@1.0.0-beta.2: {} + get-caller-file@2.0.5: {} + get-east-asian-width@1.5.0: {} get-nonce@1.0.1: {} @@ -13328,6 +13521,8 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 + giget@3.2.0: {} + github-from-package@0.0.0: optional: true @@ -13351,8 +13546,6 @@ snapshots: dependencies: ini: 2.0.0 - globals@14.0.0: {} - globals@15.15.0: {} globals@17.5.0: {} @@ -13565,9 +13758,7 @@ snapshots: dependencies: '@babel/runtime': 7.29.2 - i18next@26.0.6(typescript@6.0.3): - dependencies: - '@babel/runtime': 7.29.2 + i18next@26.0.8(typescript@6.0.3): optionalDependencies: typescript: 6.0.3 @@ -13598,11 +13789,6 @@ snapshots: immer@11.1.4: {} - import-fresh@3.3.1: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - imurmurhash@0.1.4: {} indent-string@4.0.0: {} @@ -13807,12 +13993,12 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - lexical-code-no-prism@0.41.0(@lexical/utils@0.43.0)(lexical@0.43.0): + lexical-code-no-prism@0.41.0(@lexical/utils@0.44.0)(lexical@0.44.0): dependencies: - '@lexical/utils': 0.43.0 - lexical: 0.43.0 + '@lexical/utils': 0.44.0 + lexical: 0.44.0 - lexical@0.43.0: {} + lexical@0.44.0: {} lightningcss-android-arm64@1.32.0: optional: true @@ -14484,10 +14670,6 @@ snapshots: dependencies: brace-expansion: 5.0.5 - minimatch@3.1.5: - dependencies: - brace-expansion: 1.1.13 - minimist@1.2.8: {} minipass@7.1.3: {} @@ -14703,61 +14885,61 @@ snapshots: - '@emnapi/core' - '@emnapi/runtime' - oxfmt@0.45.0: + oxfmt@0.46.0: dependencies: tinypool: 2.1.0 optionalDependencies: - '@oxfmt/binding-android-arm-eabi': 0.45.0 - '@oxfmt/binding-android-arm64': 0.45.0 - '@oxfmt/binding-darwin-arm64': 0.45.0 - '@oxfmt/binding-darwin-x64': 0.45.0 - '@oxfmt/binding-freebsd-x64': 0.45.0 - '@oxfmt/binding-linux-arm-gnueabihf': 0.45.0 - '@oxfmt/binding-linux-arm-musleabihf': 0.45.0 - '@oxfmt/binding-linux-arm64-gnu': 0.45.0 - '@oxfmt/binding-linux-arm64-musl': 0.45.0 - '@oxfmt/binding-linux-ppc64-gnu': 0.45.0 - '@oxfmt/binding-linux-riscv64-gnu': 0.45.0 - '@oxfmt/binding-linux-riscv64-musl': 0.45.0 - '@oxfmt/binding-linux-s390x-gnu': 0.45.0 - '@oxfmt/binding-linux-x64-gnu': 0.45.0 - '@oxfmt/binding-linux-x64-musl': 0.45.0 - '@oxfmt/binding-openharmony-arm64': 0.45.0 - '@oxfmt/binding-win32-arm64-msvc': 0.45.0 - '@oxfmt/binding-win32-ia32-msvc': 0.45.0 - '@oxfmt/binding-win32-x64-msvc': 0.45.0 + '@oxfmt/binding-android-arm-eabi': 0.46.0 + '@oxfmt/binding-android-arm64': 0.46.0 + '@oxfmt/binding-darwin-arm64': 0.46.0 + '@oxfmt/binding-darwin-x64': 0.46.0 + '@oxfmt/binding-freebsd-x64': 0.46.0 + '@oxfmt/binding-linux-arm-gnueabihf': 0.46.0 + '@oxfmt/binding-linux-arm-musleabihf': 0.46.0 + '@oxfmt/binding-linux-arm64-gnu': 0.46.0 + '@oxfmt/binding-linux-arm64-musl': 0.46.0 + '@oxfmt/binding-linux-ppc64-gnu': 0.46.0 + '@oxfmt/binding-linux-riscv64-gnu': 0.46.0 + '@oxfmt/binding-linux-riscv64-musl': 0.46.0 + '@oxfmt/binding-linux-s390x-gnu': 0.46.0 + '@oxfmt/binding-linux-x64-gnu': 0.46.0 + '@oxfmt/binding-linux-x64-musl': 0.46.0 + '@oxfmt/binding-openharmony-arm64': 0.46.0 + '@oxfmt/binding-win32-arm64-msvc': 0.46.0 + '@oxfmt/binding-win32-ia32-msvc': 0.46.0 + '@oxfmt/binding-win32-x64-msvc': 0.46.0 - oxlint-tsgolint@0.21.1: + oxlint-tsgolint@0.22.0: optionalDependencies: - '@oxlint-tsgolint/darwin-arm64': 0.21.1 - '@oxlint-tsgolint/darwin-x64': 0.21.1 - '@oxlint-tsgolint/linux-arm64': 0.21.1 - '@oxlint-tsgolint/linux-x64': 0.21.1 - '@oxlint-tsgolint/win32-arm64': 0.21.1 - '@oxlint-tsgolint/win32-x64': 0.21.1 + '@oxlint-tsgolint/darwin-arm64': 0.22.0 + '@oxlint-tsgolint/darwin-x64': 0.22.0 + '@oxlint-tsgolint/linux-arm64': 0.22.0 + '@oxlint-tsgolint/linux-x64': 0.22.0 + '@oxlint-tsgolint/win32-arm64': 0.22.0 + '@oxlint-tsgolint/win32-x64': 0.22.0 - oxlint@1.60.0(oxlint-tsgolint@0.21.1): + oxlint@1.61.0(oxlint-tsgolint@0.22.0): optionalDependencies: - '@oxlint/binding-android-arm-eabi': 1.60.0 - '@oxlint/binding-android-arm64': 1.60.0 - '@oxlint/binding-darwin-arm64': 1.60.0 - '@oxlint/binding-darwin-x64': 1.60.0 - '@oxlint/binding-freebsd-x64': 1.60.0 - '@oxlint/binding-linux-arm-gnueabihf': 1.60.0 - '@oxlint/binding-linux-arm-musleabihf': 1.60.0 - '@oxlint/binding-linux-arm64-gnu': 1.60.0 - '@oxlint/binding-linux-arm64-musl': 1.60.0 - '@oxlint/binding-linux-ppc64-gnu': 1.60.0 - '@oxlint/binding-linux-riscv64-gnu': 1.60.0 - '@oxlint/binding-linux-riscv64-musl': 1.60.0 - '@oxlint/binding-linux-s390x-gnu': 1.60.0 - '@oxlint/binding-linux-x64-gnu': 1.60.0 - '@oxlint/binding-linux-x64-musl': 1.60.0 - '@oxlint/binding-openharmony-arm64': 1.60.0 - '@oxlint/binding-win32-arm64-msvc': 1.60.0 - '@oxlint/binding-win32-ia32-msvc': 1.60.0 - '@oxlint/binding-win32-x64-msvc': 1.60.0 - oxlint-tsgolint: 0.21.1 + '@oxlint/binding-android-arm-eabi': 1.61.0 + '@oxlint/binding-android-arm64': 1.61.0 + '@oxlint/binding-darwin-arm64': 1.61.0 + '@oxlint/binding-darwin-x64': 1.61.0 + '@oxlint/binding-freebsd-x64': 1.61.0 + '@oxlint/binding-linux-arm-gnueabihf': 1.61.0 + '@oxlint/binding-linux-arm-musleabihf': 1.61.0 + '@oxlint/binding-linux-arm64-gnu': 1.61.0 + '@oxlint/binding-linux-arm64-musl': 1.61.0 + '@oxlint/binding-linux-ppc64-gnu': 1.61.0 + '@oxlint/binding-linux-riscv64-gnu': 1.61.0 + '@oxlint/binding-linux-riscv64-musl': 1.61.0 + '@oxlint/binding-linux-s390x-gnu': 1.61.0 + '@oxlint/binding-linux-x64-gnu': 1.61.0 + '@oxlint/binding-linux-x64-musl': 1.61.0 + '@oxlint/binding-openharmony-arm64': 1.61.0 + '@oxlint/binding-win32-arm64-msvc': 1.61.0 + '@oxlint/binding-win32-ia32-msvc': 1.61.0 + '@oxlint/binding-win32-x64-msvc': 1.61.0 + oxlint-tsgolint: 0.22.0 p-limit@3.1.0: dependencies: @@ -14781,10 +14963,6 @@ snapshots: papaparse@5.5.3: {} - parent-module@1.0.1: - dependencies: - callsites: 3.1.0 - parse-css-color@0.2.1: dependencies: color-name: 1.1.4 @@ -14827,9 +15005,9 @@ snapshots: dependencies: entities: 6.0.1 - parse5@8.0.0: + parse5@8.0.1: dependencies: - entities: 6.0.1 + entities: 8.0.0 path-browserify@1.0.1: {} @@ -14940,12 +15118,6 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - postcss@8.5.9: - dependencies: - nanoid: 3.3.11 - picocolors: 1.1.1 - source-map-js: 1.2.1 - powershell-utils@0.1.0: {} prebuild-install@7.1.3: @@ -15005,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 @@ -15072,11 +15249,11 @@ snapshots: react: 19.2.5 react-dom: 19.2.5(react@19.2.5) - react-i18next@16.5.8(i18next@26.0.6(typescript@6.0.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3): + react-i18next@16.5.8(i18next@26.0.8(typescript@6.0.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.3): dependencies: '@babel/runtime': 7.29.2 html-parse-stringify: 3.0.1 - i18next: 26.0.6(typescript@6.0.3) + i18next: 26.0.8(typescript@6.0.3) react: 19.2.5 use-sync-external-store: 1.6.0(react@19.2.5) optionalDependencies: @@ -15203,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 @@ -15378,14 +15557,14 @@ snapshots: repeat-string@1.6.1: {} + require-directory@2.1.1: {} + reselect@5.1.1: {} reserved-identifiers@1.2.0: {} resize-observer-polyfill@1.5.1: {} - resolve-from@4.0.0: {} - resolve-pkg-maps@1.0.0: {} resolve@1.22.11: @@ -15413,6 +15592,10 @@ snapshots: rw@1.3.3: {} + rxjs@7.8.2: + dependencies: + tslib: 2.8.1 + safe-buffer@5.2.1: optional: true @@ -15493,6 +15676,8 @@ snapshots: shebang-regex@3.0.0: {} + shell-quote@1.8.3: {} + shiki@4.0.2: dependencies: '@shikijs/core': 4.0.2 @@ -15660,6 +15845,10 @@ snapshots: character-entities-html4: 2.1.0 character-entities-legacy: 3.0.0 + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + strip-ansi@7.2.0: dependencies: ansi-regex: 6.2.2 @@ -15675,8 +15864,6 @@ snapshots: strip-json-comments@2.0.1: optional: true - strip-json-comments@3.1.1: {} - strip-json-comments@5.0.3: {} strip-literal@3.1.0: @@ -15783,11 +15970,6 @@ snapshots: tinyexec@1.0.4: {} - tinyglobby@0.2.15: - dependencies: - fdir: 6.5.0(picomatch@4.0.4) - picomatch: 4.0.4 - tinyglobby@0.2.16: dependencies: fdir: 6.5.0(picomatch@4.0.4) @@ -15801,11 +15983,11 @@ snapshots: tinyspy@4.0.4: {} - tldts-core@7.0.28: {} + tldts-core@7.0.29: {} - tldts@7.0.28: + tldts@7.0.29: dependencies: - tldts-core: 7.0.28 + tldts-core: 7.0.29 to-regex-range@5.0.1: dependencies: @@ -15816,8 +15998,6 @@ snapshots: '@sindresorhus/base62': 1.0.0 reserved-identifiers: 1.2.0 - toggle-selection@1.0.6: {} - toml-eslint-parser@1.0.3: dependencies: eslint-visitor-keys: 5.0.1 @@ -15826,6 +16006,8 @@ snapshots: totalist@3.0.1: {} + tree-kill@1.2.2: {} + trim-lines@3.0.1: {} trough@2.2.0: {} @@ -16041,7 +16223,7 @@ snapshots: uuid@11.1.0: {} - uuid@13.0.0: {} + uuid@14.0.0: {} valibot@1.3.1(typescript@6.0.3): optionalDependencies: @@ -16067,20 +16249,20 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vinext@0.0.41(@mdx-js/rollup@3.1.1)(@vitejs/plugin-react@6.0.1(@voidzero-dev/vite-plus-core@0.1.19(@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)))(@vitejs/plugin-rsc@0.5.25(@voidzero-dev/vite-plus-core@0.1.19(@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))(react-dom@19.2.5(react@19.2.5))(react-server-dom-webpack@19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5))(@voidzero-dev/vite-plus-core@0.1.19(@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))(next@16.2.4(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react-server-dom-webpack@19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)(typescript@6.0.3): + vinext@0.0.45(@mdx-js/rollup@3.1.1)(@vitejs/plugin-react@6.0.1(@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)))(@vitejs/plugin-rsc@0.5.25(@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))(react-dom@19.2.5(react@19.2.5))(react-server-dom-webpack@19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5))(@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))(next@16.2.4(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react-server-dom-webpack@19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)(typescript@6.0.3): dependencies: '@unpic/react': 1.0.2(next@16.2.4(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@vercel/og': 0.8.6 - '@vitejs/plugin-react': 6.0.1(@voidzero-dev/vite-plus-core@0.1.19(@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)) + '@vitejs/plugin-react': 6.0.1(@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)) magic-string: 0.30.21 react: 19.2.5 react-dom: 19.2.5(react@19.2.5) - vite: '@voidzero-dev/vite-plus-core@0.1.19(@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)' + vite: '@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)' vite-plugin-commonjs: 0.10.4 - vite-tsconfig-paths: 6.1.1(@voidzero-dev/vite-plus-core@0.1.19(@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))(typescript@6.0.3) + vite-tsconfig-paths: 6.1.1(@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))(typescript@6.0.3) optionalDependencies: '@mdx-js/rollup': 3.1.1 - '@vitejs/plugin-rsc': 0.5.25(@voidzero-dev/vite-plus-core@0.1.19(@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))(react-dom@19.2.5(react@19.2.5))(react-server-dom-webpack@19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5) + '@vitejs/plugin-rsc': 0.5.25(@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))(react-dom@19.2.5(react@19.2.5))(react-server-dom-webpack@19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5) react-server-dom-webpack: 19.2.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5) transitivePeerDependencies: - next @@ -16100,9 +16282,9 @@ snapshots: fast-glob: 3.3.3 magic-string: 0.30.21 - vite-plugin-inspect@12.0.0-beta.1(@voidzero-dev/vite-plus-core@0.1.19(@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))(typescript@6.0.3)(ws@8.20.0): + vite-plugin-inspect@12.0.0-beta.1(@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))(typescript@6.0.3)(ws@8.20.0): dependencies: - '@vitejs/devtools-kit': 0.1.11(@voidzero-dev/vite-plus-core@0.1.19(@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))(typescript@6.0.3)(ws@8.20.0) + '@vitejs/devtools-kit': 0.1.11(@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))(typescript@6.0.3)(ws@8.20.0) ansis: 4.2.0 error-stack-parser-es: 1.0.5 obug: 2.1.1 @@ -16111,12 +16293,12 @@ snapshots: perfect-debounce: 2.1.0 sirv: 3.0.2 unplugin-utils: 0.3.1 - vite: '@voidzero-dev/vite-plus-core@0.1.19(@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)' + vite: '@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)' transitivePeerDependencies: - typescript - ws - vite-plugin-storybook-nextjs@3.2.4(@voidzero-dev/vite-plus-core@0.1.19(@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))(next@16.2.4(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@6.0.3): + vite-plugin-storybook-nextjs@3.2.4(@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))(next@16.2.4(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(storybook@10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@6.0.3): dependencies: '@next/env': 16.0.0 image-size: 2.0.2 @@ -16125,29 +16307,29 @@ snapshots: next: 16.2.4(@babel/core@7.29.0)(@playwright/test@1.59.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) storybook: 10.3.5(@testing-library/dom@10.4.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) ts-dedent: 2.2.0 - vite: '@voidzero-dev/vite-plus-core@0.1.19(@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)' - vite-tsconfig-paths: 5.1.4(@voidzero-dev/vite-plus-core@0.1.19(@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))(typescript@6.0.3) + vite: '@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)' + vite-tsconfig-paths: 5.1.4(@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))(typescript@6.0.3) transitivePeerDependencies: - supports-color - typescript - vite-plus@0.1.19(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@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.19(@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): + vite-plus@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): dependencies: - '@oxc-project/types': 0.126.0 - '@voidzero-dev/vite-plus-core': 0.1.19(@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) - '@voidzero-dev/vite-plus-test': 0.1.19(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@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.19(@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) - oxfmt: 0.45.0 - oxlint: 1.60.0(oxlint-tsgolint@0.21.1) - oxlint-tsgolint: 0.21.1 + '@oxc-project/types': 0.127.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) + '@voidzero-dev/vite-plus-test': 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) + oxfmt: 0.46.0 + oxlint: 1.61.0(oxlint-tsgolint@0.22.0) + oxlint-tsgolint: 0.22.0 optionalDependencies: - '@voidzero-dev/vite-plus-darwin-arm64': 0.1.19 - '@voidzero-dev/vite-plus-darwin-x64': 0.1.19 - '@voidzero-dev/vite-plus-linux-arm64-gnu': 0.1.19 - '@voidzero-dev/vite-plus-linux-arm64-musl': 0.1.19 - '@voidzero-dev/vite-plus-linux-x64-gnu': 0.1.19 - '@voidzero-dev/vite-plus-linux-x64-musl': 0.1.19 - '@voidzero-dev/vite-plus-win32-arm64-msvc': 0.1.19 - '@voidzero-dev/vite-plus-win32-x64-msvc': 0.1.19 + '@voidzero-dev/vite-plus-darwin-arm64': 0.1.20 + '@voidzero-dev/vite-plus-darwin-x64': 0.1.20 + '@voidzero-dev/vite-plus-linux-arm64-gnu': 0.1.20 + '@voidzero-dev/vite-plus-linux-arm64-musl': 0.1.20 + '@voidzero-dev/vite-plus-linux-x64-gnu': 0.1.20 + '@voidzero-dev/vite-plus-linux-x64-musl': 0.1.20 + '@voidzero-dev/vite-plus-win32-arm64-msvc': 0.1.20 + '@voidzero-dev/vite-plus-win32-x64-msvc': 0.1.20 transitivePeerDependencies: - '@arethetypeswrong/core' - '@edge-runtime/vm' @@ -16178,36 +16360,36 @@ snapshots: - vite - yaml - vite-tsconfig-paths@5.1.4(@voidzero-dev/vite-plus-core@0.1.19(@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))(typescript@6.0.3): + vite-tsconfig-paths@5.1.4(@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))(typescript@6.0.3): dependencies: debug: 4.4.3(supports-color@8.1.1) globrex: 0.1.2 tsconfck: 3.1.6(typescript@6.0.3) optionalDependencies: - vite: '@voidzero-dev/vite-plus-core@0.1.19(@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)' + vite: '@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)' transitivePeerDependencies: - supports-color - typescript - vite-tsconfig-paths@6.1.1(@voidzero-dev/vite-plus-core@0.1.19(@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))(typescript@6.0.3): + vite-tsconfig-paths@6.1.1(@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))(typescript@6.0.3): dependencies: debug: 4.4.3(supports-color@8.1.1) globrex: 0.1.2 tsconfck: 3.1.6(typescript@6.0.3) - vite: '@voidzero-dev/vite-plus-core@0.1.19(@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)' + vite: '@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)' transitivePeerDependencies: - supports-color - typescript - vitefu@1.1.3(@voidzero-dev/vite-plus-core@0.1.19(@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)): + vitefu@1.1.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)): optionalDependencies: - vite: '@voidzero-dev/vite-plus-core@0.1.19(@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)' + vite: '@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)' - vitest-browser-react@2.2.0(@types/node@25.6.0)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(@vitest/coverage-v8@4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@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.19(@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)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3): + vitest-browser-react@2.2.0(@types/node@25.6.0)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(@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)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3): dependencies: react: 19.2.5 react-dom: 19.2.5(react@19.2.5) - vitest: '@voidzero-dev/vite-plus-test@0.1.19(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@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.19(@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)' + vitest: '@voidzero-dev/vite-plus-test@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)' optionalDependencies: '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) @@ -16241,11 +16423,11 @@ snapshots: - vite - yaml - vitest-canvas-mock@1.1.4(@voidzero-dev/vite-plus-test@0.1.19(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@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.19(@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)): + vitest-canvas-mock@1.1.4(@voidzero-dev/vite-plus-test@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)): dependencies: cssfontparser: 1.2.1 moo-color: 1.0.3 - vitest: '@voidzero-dev/vite-plus-test@0.1.19(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5(@types/node@25.6.0)(@voidzero-dev/vite-plus-core@0.1.19(@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.19(@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)' + vitest: '@voidzero-dev/vite-plus-test@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)' void-elements@3.1.0: {} @@ -16302,6 +16484,12 @@ snapshots: word-wrap@1.2.5: {} + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 8.2.1 + strip-ansi: 6.0.1 + wrappy@1.0.2: {} ws@8.18.3: {} @@ -16323,6 +16511,8 @@ snapshots: xmlhttprequest-ssl@2.1.2: {} + y18n@5.0.8: {} + yallist@3.1.1: {} yallist@5.0.0: {} @@ -16334,6 +16524,18 @@ snapshots: yaml@2.8.3: {} + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 8.2.1 + y18n: 5.0.8 + yargs-parser: 21.1.1 + yauzl@3.2.1: dependencies: buffer-crc32: 0.2.13 @@ -16380,3 +16582,44 @@ snapshots: use-sync-external-store: 1.6.0(react@19.2.5) zwitch@2.0.4: {} + +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' + '@lexical/react@0.44.0': '2026-04-27T14:48:07.316Z' + '@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' + '@voidzero-dev/vite-plus-core@0.1.20': '2026-04-29T03:08:39.629Z' + '@voidzero-dev/vite-plus-test@0.1.20': '2026-04-29T03:08:45.501Z' + concurrently@9.2.1: '2025-08-25T09:50:49.138Z' + 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 3b994ee27a..b0c007ee4d 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,11 @@ +saveExact: true +catalogMode: prefer +dedupeDirectDeps: true +engineStrict: true +minimumReleaseAge: 1440 +optimisticRepeatInstall: true +verifyDepsBeforeRun: install +resolutionMode: time-based allowBuilds: '@parcel/watcher': false canvas: false @@ -5,7 +13,6 @@ allowBuilds: sharp: false autoInstallPeers: false blockExoticSubdeps: true -catalogMode: prefer shellEmulator: true strictDepBuilds: true trustPolicy: no-downgrade @@ -42,13 +49,13 @@ overrides: svgo@>=3.0.0 <3.3.3: 3.3.3 tar@<=7.5.10: 7.5.11 undici@>=7.0.0 <7.24.0: 7.24.0 - vite: npm:@voidzero-dev/vite-plus-core@0.1.19 - vitest: npm:@voidzero-dev/vite-plus-test@0.1.19 + vite: npm:@voidzero-dev/vite-plus-core@0.1.20 + vitest: npm:@voidzero-dev/vite-plus-test@0.1.20 yaml@>=2.0.0 <2.8.3: 2.8.3 yauzl@<3.2.1: 3.2.1 catalog: - '@amplitude/analytics-browser': 2.41.1 - '@amplitude/plugin-session-replay-browser': 1.28.0 + '@amplitude/analytics-browser': 2.42.0 + '@amplitude/plugin-session-replay-browser': 1.28.1 '@antfu/eslint-config': 8.2.0 '@base-ui/react': 1.4.1 '@chromatic-com/storybook': 5.1.2 @@ -61,16 +68,17 @@ catalog: '@formatjs/intl-localematcher': 0.8.4 '@headlessui/react': 2.2.10 '@heroicons/react': 2.2.0 - '@hono/node-server': 1.19.14 + '@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 - '@lexical/code': 0.43.0 - '@lexical/link': 0.43.0 - '@lexical/list': 0.43.0 - '@lexical/react': 0.43.0 - '@lexical/selection': 0.43.0 - '@lexical/text': 0.43.0 - '@lexical/utils': 0.43.0 + '@lexical/code': 0.44.0 + '@lexical/link': 0.44.0 + '@lexical/list': 0.44.0 + '@lexical/react': 0.44.0 + '@lexical/selection': 0.44.0 + '@lexical/text': 0.44.0 + '@lexical/utils': 0.44.0 '@mdx-js/loader': 3.1.1 '@mdx-js/react': 3.1.1 '@mdx-js/rollup': 3.1.1 @@ -98,20 +106,21 @@ catalog: '@tailwindcss/postcss': 4.2.4 '@tailwindcss/typography': 0.5.19 '@tailwindcss/vite': 4.2.4 - '@tanstack/eslint-plugin-query': 5.100.5 + '@tanstack/eslint-plugin-query': 5.100.6 '@tanstack/react-devtools': 0.10.2 '@tanstack/react-form': 1.29.1 '@tanstack/react-form-devtools': 0.2.22 - '@tanstack/react-query': 5.100.5 - '@tanstack/react-query-devtools': 5.100.5 + '@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 '@testing-library/dom': 10.4.1 '@testing-library/jest-dom': 6.9.1 '@testing-library/react': 16.3.2 '@testing-library/user-event': 14.6.1 - '@tsslint/cli': 3.0.4 - '@tsslint/compat-eslint': 3.0.4 - '@tsslint/config': 3.0.4 + '@tsslint/cli': 3.1.0 + '@tsslint/compat-eslint': 3.1.0 + '@tsslint/config': 3.1.0 '@types/js-cookie': 3.0.6 '@types/js-yaml': 4.0.9 '@types/negotiator': 0.6.4 @@ -120,9 +129,9 @@ catalog: '@types/react': 19.2.14 '@types/react-dom': 19.2.3 '@types/sortablejs': 1.15.9 - '@typescript-eslint/eslint-plugin': 8.59.0 - '@typescript-eslint/parser': 8.59.0 - '@typescript/native-preview': 7.0.0-dev.20260426.1 + '@typescript-eslint/eslint-plugin': 8.59.1 + '@typescript-eslint/parser': 8.59.1 + '@typescript/native-preview': 7.0.0-dev.20260428.1 '@vitejs/plugin-react': 6.0.1 '@vitejs/plugin-rsc': 0.5.25 '@vitest/coverage-v8': 4.1.5 @@ -134,7 +143,8 @@ catalog: clsx: 2.1.1 cmdk: 1.1.1 code-inspector-plugin: 1.5.1 - copy-to-clipboard: 3.3.3 + concurrently: ^9.2.1 + copy-to-clipboard: 4.0.2 cron-parser: 5.5.0 dayjs: 1.11.20 decimal.js: 10.6.0 @@ -147,8 +157,8 @@ catalog: emoji-mart: 5.6.0 es-toolkit: 1.46.0 eslint: 10.2.1 - eslint-markdown: 0.6.1 - eslint-plugin-better-tailwindcss: 4.4.1 + eslint-markdown: 0.7.0 + eslint-plugin-better-tailwindcss: 4.5.0 eslint-plugin-hyoban: 0.14.1 eslint-plugin-markdown-preferences: 0.41.1 eslint-plugin-no-barrel-files: 1.3.1 @@ -161,7 +171,7 @@ catalog: hono: 4.12.15 html-entities: 2.6.0 html-to-image: 1.11.13 - i18next: 26.0.6 + i18next: 26.0.8 i18next-resources-to-backend: 1.2.1 iconify-import-svg: 0.2.0 immer: 11.1.4 @@ -174,7 +184,7 @@ catalog: knip: 6.7.0 ky: 2.0.2 lamejs: 1.2.1 - lexical: 0.43.0 + lexical: 0.44.0 loro-crdt: 1.12.0 mermaid: 11.14.0 mime: 4.1.0 @@ -214,18 +224,18 @@ catalog: string-ts: 2.3.1 tailwind-merge: 3.5.0 tailwindcss: 4.2.4 - tldts: 7.0.28 + tldts: 7.0.29 tsx: 4.21.0 typescript: 6.0.3 uglify-js: 3.19.3 unist-util-visit: 5.1.0 use-context-selector: 2.0.0 - uuid: 13.0.0 - vinext: 0.0.41 - vite: npm:@voidzero-dev/vite-plus-core@0.1.19 + uuid: 14.0.0 + vinext: 0.0.45 + vite: npm:@voidzero-dev/vite-plus-core@0.1.20 vite-plugin-inspect: 12.0.0-beta.1 - vite-plus: 0.1.19 - vitest: npm:@voidzero-dev/vite-plus-test@0.1.19 + vite-plus: 0.1.20 + vitest: npm:@voidzero-dev/vite-plus-test@0.1.20 vitest-browser-react: 2.2.0 vitest-canvas-mock: 1.1.4 zod: 4.3.6 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/.npmrc b/web/.npmrc deleted file mode 100644 index cffe8cdef1..0000000000 --- a/web/.npmrc +++ /dev/null @@ -1 +0,0 @@ -save-exact=true 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/Dockerfile b/web/Dockerfile index 8bf016c1ba..868a26b1ca 100644 --- a/web/Dockerfile +++ b/web/Dockerfile @@ -41,6 +41,7 @@ COPY . . WORKDIR /app/web ENV NODE_OPTIONS="--max-old-space-size=4096" +ENV pnpm_config_verify_deps_before_run=false RUN pnpm build && pnpm build:vinext diff --git a/web/__tests__/apps/app-list-browsing-flow.test.tsx b/web/__tests__/apps/app-list-browsing-flow.test.tsx index 768420f00d..e6b83bd69d 100644 --- a/web/__tests__/apps/app-list-browsing-flow.test.tsx +++ b/web/__tests__/apps/app-list-browsing-flow.test.tsx @@ -88,27 +88,36 @@ vi.mock('@/service/tag', () => ({ fetchTagList: vi.fn().mockResolvedValue([]), })) -vi.mock('@/service/apps', () => ({ - fetchWorkflowOnlineUsers: vi.fn().mockResolvedValue({}), -})) +vi.mock('@tanstack/react-query', async (importOriginal) => { + const actual = await importOriginal() + return { + ...actual, + useInfiniteQuery: () => ({ + data: { pages: mockPages }, + isLoading: mockIsLoading, + isFetching: mockIsFetching, + isFetchingNextPage: mockIsFetchingNextPage, + fetchNextPage: mockFetchNextPage, + hasNextPage: mockHasNextPage, + error: mockError, + refetch: mockRefetch, + }), + } +}) vi.mock('@/service/use-apps', () => ({ - useInfiniteAppList: () => ({ - data: { pages: mockPages }, - isLoading: mockIsLoading, - isFetching: mockIsFetching, - isFetchingNextPage: mockIsFetchingNextPage, - fetchNextPage: mockFetchNextPage, - hasNextPage: mockHasNextPage, - error: mockError, - refetch: mockRefetch, - }), useDeleteAppMutation: () => ({ mutateAsync: vi.fn(), isPending: false, }), })) +vi.mock('@/app/components/apps/hooks/use-workflow-online-users', () => ({ + useWorkflowOnlineUsers: () => ({ + onlineUsersMap: {}, + }), +})) + vi.mock('@/hooks/use-pay', () => ({ CheckModal: () => null, })) diff --git a/web/__tests__/apps/create-app-flow.test.tsx b/web/__tests__/apps/create-app-flow.test.tsx index e480db06ea..079ea9949a 100644 --- a/web/__tests__/apps/create-app-flow.test.tsx +++ b/web/__tests__/apps/create-app-flow.test.tsx @@ -75,27 +75,36 @@ vi.mock('@/service/tag', () => ({ fetchTagList: vi.fn().mockResolvedValue([]), })) -vi.mock('@/service/apps', () => ({ - fetchWorkflowOnlineUsers: vi.fn().mockResolvedValue({}), -})) +vi.mock('@tanstack/react-query', async (importOriginal) => { + const actual = await importOriginal() + return { + ...actual, + useInfiniteQuery: () => ({ + data: { pages: mockPages }, + isLoading: mockIsLoading, + isFetching: mockIsFetching, + isFetchingNextPage: false, + fetchNextPage: mockFetchNextPage, + hasNextPage: false, + error: null, + refetch: mockRefetch, + }), + } +}) vi.mock('@/service/use-apps', () => ({ - useInfiniteAppList: () => ({ - data: { pages: mockPages }, - isLoading: mockIsLoading, - isFetching: mockIsFetching, - isFetchingNextPage: false, - fetchNextPage: mockFetchNextPage, - hasNextPage: false, - error: null, - refetch: mockRefetch, - }), useDeleteAppMutation: () => ({ mutateAsync: vi.fn(), isPending: false, }), })) +vi.mock('@/app/components/apps/hooks/use-workflow-online-users', () => ({ + useWorkflowOnlineUsers: () => ({ + onlineUsersMap: {}, + }), +})) + vi.mock('@/hooks/use-pay', () => ({ CheckModal: () => null, })) diff --git a/web/__tests__/billing/billing-integration.test.tsx b/web/__tests__/billing/billing-integration.test.tsx index 90589ae1e4..3113e36751 100644 --- a/web/__tests__/billing/billing-integration.test.tsx +++ b/web/__tests__/billing/billing-integration.test.tsx @@ -9,7 +9,7 @@ import Billing from '@/app/components/billing/billing-page' import { defaultPlan, NUM_INFINITE } from '@/app/components/billing/config' import HeaderBillingBtn from '@/app/components/billing/header-billing-btn' import PlanComp from '@/app/components/billing/plan' -import PlanUpgradeModal from '@/app/components/billing/plan-upgrade-modal' +import { PlanUpgradeModal } from '@/app/components/billing/plan-upgrade-modal' import PriorityLabel from '@/app/components/billing/priority-label' import TriggerEventsLimitModal from '@/app/components/billing/trigger-events-limit-modal' import { Plan } from '@/app/components/billing/type' diff --git a/web/__tests__/header/nav-flow.test.tsx b/web/__tests__/header/nav-flow.test.tsx index 05955a6c83..667f1e36b7 100644 --- a/web/__tests__/header/nav-flow.test.tsx +++ b/web/__tests__/header/nav-flow.test.tsx @@ -195,9 +195,19 @@ describe('Header Nav Flow', () => { renderNav() fireEvent.click(screen.getByRole('button', { name: /Alpha/i })) - fireEvent.click(await screen.findByText('menus.newApp')) + + const openCreateMenu = async () => { + fireEvent.click(await screen.findByText('menus.newApp')) + return screen.findByText('newApp.startFromBlank') + } + + await openCreateMenu() fireEvent.click(await screen.findByText('newApp.startFromBlank')) + + await openCreateMenu() fireEvent.click(await screen.findByText('newApp.startFromTemplate')) + + await openCreateMenu() fireEvent.click(await screen.findByText('importDSL')) expect(mockOnCreate).toHaveBeenNthCalledWith(1, 'blank') 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/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/config-popup.tsx b/web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/config-popup.tsx index 471ab86e12..2b0f978906 100644 --- a/web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/config-popup.tsx +++ b/web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/config-popup.tsx @@ -3,12 +3,12 @@ import type { FC, JSX } from 'react' import type { AliyunConfig, ArizeConfig, DatabricksConfig, LangFuseConfig, LangSmithConfig, MLflowConfig, OpikConfig, PhoenixConfig, TencentConfig, WeaveConfig } from './type' import { cn } from '@langgenius/dify-ui/cn' import { Switch } from '@langgenius/dify-ui/switch' +import { Tooltip, TooltipContent, TooltipTrigger } from '@langgenius/dify-ui/tooltip' import { useBoolean } from 'ahooks' import * as React from 'react' import { useCallback, useState } from 'react' import { useTranslation } from 'react-i18next' import Divider from '@/app/components/base/divider' -import Tooltip from '@/app/components/base/tooltip' import Indicator from '@/app/components/header/indicator' import ProviderConfigModal from './provider-config-modal' import ProviderPanel from './provider-panel' @@ -338,10 +338,13 @@ const ConfigPopup: FC = ({ <> {providerAllNotConfigured ? ( - - {switchContent} + + + + {t(`${I18N_PREFIX}.disabledTip`, { ns: 'app' })} + ) : switchContent} diff --git a/web/app/account/(commonLayout)/account-page/index.tsx b/web/app/account/(commonLayout)/account-page/index.tsx index 09c083b60b..2a4ae86f84 100644 --- a/web/app/account/(commonLayout)/account-page/index.tsx +++ b/web/app/account/(commonLayout)/account-page/index.tsx @@ -7,7 +7,7 @@ import { toast } from '@langgenius/dify-ui/toast' import { RiGraduationCapFill, } from '@remixicon/react' -import { useQueryClient, useSuspenseQuery } from '@tanstack/react-query' +import { useQuery, useQueryClient, useSuspenseQuery } from '@tanstack/react-query' import { useState } from 'react' import { useTranslation } from 'react-i18next' import AppIcon from '@/app/components/base/app-icon' @@ -16,9 +16,9 @@ import PremiumBadge from '@/app/components/base/premium-badge' import Collapse from '@/app/components/header/account-setting/collapse' import { IS_CE_EDITION, validPassword } from '@/config' import { useProviderContext } from '@/context/provider-context' +import { consoleQuery } from '@/service/client' import { updateUserProfile } from '@/service/common' import { systemFeaturesQueryOptions } from '@/service/system-features' -import { useAppList } from '@/service/use-apps' import { commonQueryKeys, userProfileQueryOptions } from '@/service/use-common' import DeleteAccount from '../delete-account' @@ -35,7 +35,15 @@ const descriptionClassName = ` export default function AccountPage() { const { t } = useTranslation() const { data: systemFeatures } = useSuspenseQuery(systemFeaturesQueryOptions()) - const { data: appList } = useAppList({ page: 1, limit: 100, name: '' }) + const { data: appList } = useQuery(consoleQuery.apps.list.queryOptions({ + input: { + query: { + page: 1, + limit: 100, + name: '', + }, + }, + })) const apps = appList?.data || [] const queryClient = useQueryClient() // Cache is warmed by AppContextProvider's useSuspenseQuery; this hits cache synchronously. @@ -129,7 +137,7 @@ export default function AccountPage() { } const renderAppItem = (item: IItem) => { - const { icon, icon_background, icon_type, icon_url } = item as any + const { icon, icon_background, icon_type, icon_url } = item as IItem & Pick return (
@@ -215,116 +223,107 @@ export default function AccountPage() { )} {!IS_CE_EDITION && }
- { - editNameModalVisible && ( - !open && setEditNameModalVisible(false)}> - -
{t('account.editName', { ns: 'common' })}
-
{t('account.name', { ns: 'common' })}
- setEditName(e.target.value)} - /> -
- - -
-
-
- ) - } - { - editPasswordModalVisible && ( - !open && (setEditPasswordModalVisible(false), resetPasswordForm())}> - -
{userProfile.is_password_set ? t('account.resetPassword', { ns: 'common' }) : t('account.setPassword', { ns: 'common' })}
- {userProfile.is_password_set && ( - <> -
{t('account.currentPassword', { ns: 'common' })}
-
- setCurrentPassword(e.target.value)} - /> - -
- -
-
- - )} -
- {userProfile.is_password_set ? t('account.newPassword', { ns: 'common' }) : t('account.password', { ns: 'common' })} -
+ !open && setEditNameModalVisible(false)}> + +
{t('account.editName', { ns: 'common' })}
+
{t('account.name', { ns: 'common' })}
+ setEditName(e.target.value)} + /> +
+ + +
+
+
+ !open && (setEditPasswordModalVisible(false), resetPasswordForm())}> + +
{userProfile.is_password_set ? t('account.resetPassword', { ns: 'common' }) : t('account.setPassword', { ns: 'common' })}
+ {userProfile.is_password_set && ( + <> +
{t('account.currentPassword', { ns: 'common' })}
setPassword(e.target.value)} + type={showCurrentPassword ? 'text' : 'password'} + value={currentPassword} + onChange={e => setCurrentPassword(e.target.value)} />
-
{t('account.confirmPassword', { ns: 'common' })}
-
- setConfirmPassword(e.target.value)} - /> -
- -
-
-
- - -
-
-
- ) - } + + )} +
+ {userProfile.is_password_set ? t('account.newPassword', { ns: 'common' }) : t('account.password', { ns: 'common' })} +
+
+ setPassword(e.target.value)} + /> +
+ +
+
+
{t('account.confirmPassword', { ns: 'common' })}
+
+ setConfirmPassword(e.target.value)} + /> +
+ +
+
+
+ + +
+
+
{ showDeleteAccountModal && ( ) } - {showUpdateEmail && ( - setShowUpdateEmail(false)} - email={userProfile.email} - /> - )} + setShowUpdateEmail(false)} + email={userProfile.email} + /> ) } 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/app-info/__tests__/app-info-modals.spec.tsx b/web/app/components/app-sidebar/app-info/__tests__/app-info-modals.spec.tsx index 2fdd35cc43..218d4b94e6 100644 --- a/web/app/components/app-sidebar/app-info/__tests__/app-info-modals.spec.tsx +++ b/web/app/components/app-sidebar/app-info/__tests__/app-info-modals.spec.tsx @@ -46,6 +46,12 @@ vi.mock('@/app/components/workflow/update-dsl-modal', () => ({ })) vi.mock('@/app/components/workflow/dsl-export-confirm-modal', () => ({ + DSLExportConfirmContent: ({ onConfirm, onClose }: { onConfirm: (include?: boolean) => void, onClose: () => void }) => ( +
+ + +
+ ), default: ({ onConfirm, onClose }: { onConfirm: (include?: boolean) => void, onClose: () => void }) => (
diff --git a/web/app/components/app-sidebar/app-info/__tests__/app-operations.spec.tsx b/web/app/components/app-sidebar/app-info/__tests__/app-operations.spec.tsx index ff6aed2c71..5daf0c7100 100644 --- a/web/app/components/app-sidebar/app-info/__tests__/app-operations.spec.tsx +++ b/web/app/components/app-sidebar/app-info/__tests__/app-operations.spec.tsx @@ -228,6 +228,21 @@ describe('AppOperations', () => { }) describe('Visible operations click', () => { + it('should keep focus ring inside visible operation buttons', () => { + const cleanup = setupDomMeasurements(500, 60, [80]) + const editOp = createOperation('edit', 'Edit') + + render() + + const visibleButton = screen.getAllByText('Edit') + .map(label => label.closest('button')) + .find(button => button?.tabIndex !== -1) + + expect(visibleButton).toHaveClass('focus-visible:ring-inset') + + cleanup() + }) + it('should call onClick when a visible operation is clicked', async () => { const cleanup = setupDomMeasurements(500, 60, [80, 80]) const user = userEvent.setup() diff --git a/web/app/components/app-sidebar/app-info/app-info-modals.tsx b/web/app/components/app-sidebar/app-info/app-info-modals.tsx index 9535725cd3..e1ed1d62ef 100644 --- a/web/app/components/app-sidebar/app-info/app-info-modals.tsx +++ b/web/app/components/app-sidebar/app-info/app-info-modals.tsx @@ -16,13 +16,13 @@ import * as React from 'react' import { useCallback, useState } from 'react' import { useTranslation } from 'react-i18next' import Input from '@/app/components/base/input' +import { DSLExportConfirmContent } from '@/app/components/workflow/dsl-export-confirm-modal' import dynamic from '@/next/dynamic' const SwitchAppModal = dynamic(() => import('@/app/components/app/switch-app-modal'), { ssr: false }) const CreateAppModal = dynamic(() => import('@/app/components/explore/create-app-modal'), { ssr: false }) const DuplicateAppModal = dynamic(() => import('@/app/components/app/duplicate-modal'), { ssr: false }) const UpdateDSLModal = dynamic(() => import('@/app/components/workflow/update-dsl-modal'), { ssr: false }) -const DSLExportConfirmModal = dynamic(() => import('@/app/components/workflow/dsl-export-confirm-modal'), { ssr: false }) type AppInfoModalsProps = { appDetail: App & Partial @@ -54,7 +54,14 @@ const AppInfoModals = ({ const { t } = useTranslation() const [confirmDeleteInput, setConfirmDeleteInput] = useState('') const [isConfirmingExport, setIsConfirmingExport] = useState(false) + const [isSecretExporting, setIsSecretExporting] = useState(false) const isDeleteConfirmDisabled = confirmDeleteInput !== appDetail.name + const exportDialogMode = secretEnvList.length > 0 + ? 'secret' + : activeModal === 'exportWarning' + ? 'warning' + : null + const isExportDialogOpen = exportDialogMode !== null const handleDeleteDialogClose = () => { setConfirmDeleteInput('') @@ -74,6 +81,22 @@ const AppInfoModals = ({ } }, [handleConfirmExport, isConfirmingExport]) + const handleExportDialogClose = useCallback(() => { + if (exportDialogMode === 'secret') { + setSecretEnvList([]) + return + } + + closeModal() + }, [closeModal, exportDialogMode, setSecretEnvList]) + + const handleExportDialogOpenChange = useCallback((open: boolean) => { + if (open || isConfirmingExport || isSecretExporting) + return + + handleExportDialogClose() + }, [handleExportDialogClose, isConfirmingExport, isSecretExporting]) + return ( <> {activeModal === 'switch' && ( @@ -163,38 +186,42 @@ const AppInfoModals = ({ onBackup={exportCheck} /> )} - !open && closeModal()}> - -
- - {t('sidebar.exportWarning', { ns: 'workflow' })} - - - {t('sidebar.exportWarningDesc', { ns: 'workflow' })} - -
- - {t('operation.cancel', { ns: 'common' })} - - {isConfirmingExport - ? t('operation.exporting', { ns: 'common' }) - : t('operation.confirm', { ns: 'common' })} - - -
+ + {exportDialogMode === 'secret' + ? ( + setSecretEnvList([])} + onExportingChange={setIsSecretExporting} + /> + ) + : exportDialogMode === 'warning' && ( + +
+ + {t('sidebar.exportWarning', { ns: 'workflow' })} + + + {t('sidebar.exportWarningDesc', { ns: 'workflow' })} + +
+ + {t('operation.cancel', { ns: 'common' })} + + {isConfirmingExport + ? t('operation.exporting', { ns: 'common' }) + : t('operation.confirm', { ns: 'common' })} + + +
+ )}
- {secretEnvList.length > 0 && ( - setSecretEnvList([])} - /> - )} ) } diff --git a/web/app/components/app-sidebar/app-info/app-operations.tsx b/web/app/components/app-sidebar/app-info/app-operations.tsx index cc6afd739c..2e3270a222 100644 --- a/web/app/components/app-sidebar/app-info/app-operations.tsx +++ b/web/app/components/app-sidebar/app-info/app-operations.tsx @@ -133,7 +133,7 @@ const AppOperations = ({ data-targetid={operation.id} size="small" variant="secondary" - className="gap-px" + className="gap-px focus-visible:ring-inset" tabIndex={-1} > {cloneElement(operation.icon, { className: 'h-3.5 w-3.5 text-components-button-secondary-text' })} @@ -146,7 +146,7 @@ const AppOperations = ({ id="more-measure" size="small" variant="secondary" - className="gap-px" + className="gap-px focus-visible:ring-inset" tabIndex={-1} > @@ -162,7 +162,7 @@ const AppOperations = ({ data-targetid={operation.id} size="small" variant="secondary" - className="gap-px" + className="gap-px focus-visible:ring-inset" onClick={operation.onClick} > {cloneElement(operation.icon, { className: 'h-3.5 w-3.5 text-components-button-secondary-text' })} @@ -178,7 +178,7 @@ const AppOperations = ({
{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/dataset-info/__tests__/dropdown-callbacks.spec.tsx b/web/app/components/app-sidebar/dataset-info/__tests__/dropdown-callbacks.spec.tsx index ceb8302ee6..05a06f2f77 100644 --- a/web/app/components/app-sidebar/dataset-info/__tests__/dropdown-callbacks.spec.tsx +++ b/web/app/components/app-sidebar/dataset-info/__tests__/dropdown-callbacks.spec.tsx @@ -113,7 +113,9 @@ vi.mock('@/service/datasets', () => ({ })) vi.mock('@langgenius/dify-ui/toast', () => ({ - toast: (...args: unknown[]) => mockToast(...args), + toast: { + error: (...args: unknown[]) => mockToast(...args), + }, })) vi.mock('@/app/components/datasets/rename-modal', () => ({ @@ -220,7 +222,7 @@ describe('Dropdown callback coverage', () => { await user.click(screen.getByText('datasetPipeline.operations.exportPipeline')) await waitFor(() => { - expect(mockToast).toHaveBeenCalledWith('app.exportFailed', { type: 'error' }) + expect(mockToast).toHaveBeenCalledWith('app.exportFailed') }) }) @@ -257,7 +259,7 @@ describe('Dropdown callback coverage', () => { await user.click(screen.getByText('common.operation.delete')) await waitFor(() => { - expect(mockToast).toHaveBeenCalledWith('check failed', { type: 'error' }) + expect(mockToast).toHaveBeenCalledWith('check failed') }) expect(screen.queryByText('dataset.deleteDatasetConfirmTitle')).not.toBeInTheDocument() }) diff --git a/web/app/components/app-sidebar/dataset-info/dropdown.tsx b/web/app/components/app-sidebar/dataset-info/dropdown.tsx index 8f3a25738a..fa5a40f8a4 100644 --- a/web/app/components/app-sidebar/dataset-info/dropdown.tsx +++ b/web/app/components/app-sidebar/dataset-info/dropdown.tsx @@ -34,6 +34,25 @@ type DropDownProps = { expand: boolean } +type JsonErrorResponse = { + json: () => Promise<{ message?: string }> +} + +const isJsonErrorResponse = (error: unknown): error is JsonErrorResponse => { + return typeof error === 'object' + && error !== null + && 'json' in error + && typeof error.json === 'function' +} + +const getErrorMessage = async (error: unknown) => { + if (!isJsonErrorResponse(error)) + return 'Unknown error' + + const res = await error.json() + return res?.message || 'Unknown error' +} + const DropDown = ({ expand, }: DropDownProps) => { @@ -78,7 +97,7 @@ const DropDown = ({ downloadBlob({ data: file, fileName: `${name}.pipeline` }) } catch { - toast(t('exportFailed', { ns: 'app' }), { type: 'error' }) + toast.error(t('exportFailed', { ns: 'app' })) } }, [dataset, exportPipelineConfig, t]) @@ -89,9 +108,8 @@ const DropDown = ({ setConfirmMessage(isUsedByApp ? t('datasetUsedByApp', { ns: 'dataset' })! : t('deleteDatasetConfirmContent', { ns: 'dataset' })!) setShowConfirmDelete(true) } - catch (e: any) { - const res = await e.json() - toast(res?.message || 'Unknown error', { type: 'error' }) + catch (e: unknown) { + toast.error(await getErrorMessage(e)) } }, [dataset.id, t]) @@ -112,10 +130,15 @@ const DropDown = ({ open={open} onOpenChange={setOpen} > - }> - - - + + )} + > + { +}: 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/app-access-control/specific-groups-or-members.tsx b/web/app/components/app/app-access-control/specific-groups-or-members.tsx index 1caabb3ff9..35e6b1cc19 100644 --- a/web/app/components/app/app-access-control/specific-groups-or-members.tsx +++ b/web/app/components/app/app-access-control/specific-groups-or-members.tsx @@ -121,7 +121,7 @@ type BaseItemProps = { } function BaseItem({ icon, onRemove, children }: BaseItemProps) { return ( -
+
{icon} 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}
+ ))} +
= ({
{/* Body */}
{ title={(
{t('agent.tools.name', { ns: 'appDebug' })}
- - {t('agent.tools.description', { ns: 'appDebug' })} -
- )} - /> + + + + + )} + /> + + {t('agent.tools.description', { ns: 'appDebug' })} + +
)} headerRight={( @@ -216,34 +227,59 @@ const AgentTools: FC = () => { {getProviderShowName(item)} {item.tool_label} {!item.isDeleted && !readonly && ( - + + + + + )} + /> + +
{item.tool_name}
{t('toolNameUsageTip', { ns: 'tools' })}
-
copy(item.tool_name)}>{t('copyToolName', { ns: 'tools' })}
+
- )} - > -
-
- -
-
-
+ + )}
{item.isDeleted && (
- -
- -
-
+ + + + + )} + /> + + {t('toolRemoved', { ns: 'tools' })} + +
{ @@ -263,19 +299,25 @@ const AgentTools: FC = () => { {!item.isDeleted && !readonly && (
{!item.notAuthor && ( - -
{ - setCurrentTool(item) - setIsShowSettingTool(true) - }} - > - -
+ + { + setCurrentTool(item) + setIsShowSettingTool(true) + }} + > + + + )} + /> + + {t('setBuiltInTools.infoAndSetting', { ns: 'tools' })} + )}
{
{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/configuration-view.tsx b/web/app/components/app/configuration/configuration-view.tsx index 3a9882db18..1e2b0bf81a 100644 --- a/web/app/components/app/configuration/configuration-view.tsx +++ b/web/app/components/app/configuration/configuration-view.tsx @@ -174,14 +174,12 @@ const ConfigurationView: FC = ({ - {isShowSelectDataSet && ( - - )} + {isShowHistoryModal && ( { // 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/context-var/var-picker.tsx b/web/app/components/app/configuration/dataset-config/context-var/var-picker.tsx index 9bac1c7a41..0938d0aea4 100644 --- a/web/app/components/app/configuration/dataset-config/context-var/var-picker.tsx +++ b/web/app/components/app/configuration/dataset-config/context-var/var-picker.tsx @@ -83,7 +83,6 @@ const VarPicker: FC = ({ placement="bottom-end" sideOffset={8} popupClassName="border-none bg-transparent p-0 shadow-none backdrop-blur-none" - positionerProps={{ style: { zIndex: 1000 } }} > {options.length > 0 ? ( 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' })} +
= ({ onSelect(selected) } + const handleClose = useCallback(() => { + setSelectedIdsInModal(selectedIds) + onClose() + }, [onClose, selectedIds]) + + const handleOpenChange = useCallback((open: boolean) => { + if (!open) + handleClose() + }, [handleClose]) + return ( - - {(isLoading && datasets.length === 0) && ( -
- -
- )} + + + + {t('feature.dataSet.selectTitle', { ns: 'appDebug' })} + + + {(isLoading && datasets.length === 0) && ( +
+ +
+ )} - {hasNoData && ( -
- {t('feature.dataSet.noDataSet', { ns: 'appDebug' })} - {t('feature.dataSet.toCreate', { ns: 'appDebug' })} -
- )} + {hasNoData && ( +
+ {t('feature.dataSet.noDataSet', { ns: 'appDebug' })} + {t('feature.dataSet.toCreate', { ns: 'appDebug' })} +
+ )} - {datasets.length > 0 && ( - <> -
- {datasets.map(item => ( -
{ - if (!item.embedding_available) - return - toggleSelect(item) - }} - > -
-
- -
-
{item.name}
- {!item.embedding_available && ( - {t('unavailable', { ns: 'dataset' })} + {datasets.length > 0 && ( + <> +
+ {datasets.map(item => ( + + ))} + {isFetchingNextPage && } +
+ + )} + {!isLoading && ( +
+
+ {selected.length > 0 && `${selected.length} ${t('feature.dataSet.selected', { ns: 'appDebug' })}`} +
+
+ + +
- - )} - {!isLoading && ( -
-
- {selected.length > 0 && `${selected.length} ${t('feature.dataSet.selected', { ns: 'appDebug' })}`} -
-
- - -
-
- )} - + )} + +
) } export default React.memo(SelectDataSet) diff --git a/web/app/components/app/configuration/debug/chat-user-input.tsx b/web/app/components/app/configuration/debug/chat-user-input.tsx index 2eff7ac3ca..5d6b6cdf89 100644 --- a/web/app/components/app/configuration/debug/chat-user-input.tsx +++ b/web/app/components/app/configuration/debug/chat-user-input.tsx @@ -113,7 +113,7 @@ const ChatUserInput = ({ {String(inputs[key] || t('placeholder.select', { ns: 'common' }))} - + {(options || []).map(option => ( {option} diff --git a/web/app/components/app/configuration/debug/debug-with-multiple-model/__tests__/model-parameter-trigger.spec.tsx b/web/app/components/app/configuration/debug/debug-with-multiple-model/__tests__/model-parameter-trigger.spec.tsx index 2edc6191de..b99a2034b6 100644 --- a/web/app/components/app/configuration/debug/debug-with-multiple-model/__tests__/model-parameter-trigger.spec.tsx +++ b/web/app/components/app/configuration/debug/debug-with-multiple-model/__tests__/model-parameter-trigger.spec.tsx @@ -5,6 +5,7 @@ import type { ModelProvider, } from '@/app/components/header/account-setting/model-provider-page/declarations' import { render, screen } from '@testing-library/react' +import userEvent from '@testing-library/user-event' import { createMockProviderContextValue } from '@/__mocks__/provider-context' import { ConfigurationMethodEnum, @@ -86,12 +87,6 @@ vi.mock('@/app/components/header/account-setting/model-provider-page/model-name' ), })) -vi.mock('@/app/components/base/tooltip', () => ({ - default: ({ children, popupContent }: { children: ReactNode, popupContent: string }) => ( -
{children}
- ), -})) - const createModelAndParameter = (overrides: Partial = {}): ModelAndParameter => ({ id: 'model-1', model: 'gpt-3.5-turbo', @@ -385,14 +380,15 @@ describe('ModelParameterTrigger', () => { expect(screen.getByText('common.modelProvider.selectModel')).toBeInTheDocument() }) - it('should render configured model id and incompatible tooltip when model is missing from the provider list', () => { + it('should render configured model id and incompatible tooltip when model is missing from the provider list', async () => { renderComponent() expect(screen.getByText('gpt-3.5-turbo')).toBeInTheDocument() - expect(screen.getByTestId('tooltip')).toHaveAttribute('data-content', 'common.modelProvider.selector.incompatibleTip') + await userEvent.hover(screen.getByLabelText('common.modelProvider.selector.incompatibleTip')) + expect(await screen.findByText('common.modelProvider.selector.incompatibleTip')).toBeInTheDocument() }) - it('should render configure required tooltip for no-configure status', () => { + it('should render configure required tooltip for no-configure status', async () => { const { unmount } = renderComponent() const triggerContent = capturedModalProps?.renderTrigger({ open: false, @@ -403,10 +399,11 @@ describe('ModelParameterTrigger', () => { unmount() render(<>{triggerContent}) - expect(screen.getByTestId('tooltip')).toHaveAttribute('data-content', 'common.modelProvider.selector.configureRequired') + await userEvent.hover(screen.getByLabelText('common.modelProvider.selector.configureRequired')) + expect(await screen.findByText('common.modelProvider.selector.configureRequired')).toBeInTheDocument() }) - it('should render disabled tooltip for disabled status', () => { + it('should render disabled tooltip for disabled status', async () => { const { unmount } = renderComponent() const triggerContent = capturedModalProps?.renderTrigger({ open: false, @@ -417,7 +414,8 @@ describe('ModelParameterTrigger', () => { unmount() render(<>{triggerContent}) - expect(screen.getByTestId('tooltip')).toHaveAttribute('data-content', 'common.modelProvider.selector.disabled') + await userEvent.hover(screen.getByLabelText('common.modelProvider.selector.disabled')) + expect(await screen.findByText('common.modelProvider.selector.disabled')).toBeInTheDocument() }) it('should apply expanded and warning styles when the trigger is open for a non-active status', () => { diff --git a/web/app/components/app/configuration/debug/debug-with-multiple-model/debug-item.tsx b/web/app/components/app/configuration/debug/debug-with-multiple-model/debug-item.tsx index e76bbb0728..3c272f687e 100644 --- a/web/app/components/app/configuration/debug/debug-with-multiple-model/debug-item.tsx +++ b/web/app/components/app/configuration/debug/debug-with-multiple-model/debug-item.tsx @@ -1,5 +1,6 @@ import type { CSSProperties, FC } from 'react' import type { ModelAndParameter } from '../types' +import { cn } from '@langgenius/dify-ui/cn' import { DropdownMenu, DropdownMenuContent, @@ -92,11 +93,16 @@ const DebugItem: FC = ({ modelAndParameter={modelAndParameter} /> - }> - - - - + + + + )} + /> = ({ { !isEmpty && !isActive && statusLabelKey && ( - - + + + )} + /> + + {t((statusTooltipKey || statusLabelKey) as 'modelProvider.selector.incompatible', { ns: 'common' })} + ) } diff --git a/web/app/components/app/configuration/prompt-value-panel/index.tsx b/web/app/components/app/configuration/prompt-value-panel/index.tsx index c3ba69bf34..bfcc13c23c 100644 --- a/web/app/components/app/configuration/prompt-value-panel/index.tsx +++ b/web/app/components/app/configuration/prompt-value-panel/index.tsx @@ -5,6 +5,7 @@ import type { VisionFile, VisionSettings } from '@/types/app' import { Button } from '@langgenius/dify-ui/button' import { cn } from '@langgenius/dify-ui/cn' import { Select, SelectContent, SelectItem, SelectItemIndicator, SelectItemText, SelectTrigger } from '@langgenius/dify-ui/select' +import { Tooltip, TooltipContent, TooltipTrigger } from '@langgenius/dify-ui/tooltip' import { RiArrowDownSLine, RiArrowRightSLine, @@ -19,7 +20,6 @@ import FeatureBar from '@/app/components/base/features/new-feature-panel/feature import TextGenerationImageUploader from '@/app/components/base/image-uploader/text-generation-image-uploader' import Input from '@/app/components/base/input' import Textarea from '@/app/components/base/textarea' -import Tooltip from '@/app/components/base/tooltip' import BoolInput from '@/app/components/workflow/nodes/_base/components/before-run-form/bool-input' import ConfigContext from '@/context/debug-configuration' import { AppModeEnum, ModelModeType } from '@/types/app' @@ -167,7 +167,7 @@ const PromptValuePanel: FC = ({ {String(inputs[key] || t('placeholder.select', { ns: 'common' }))} - + {(options || []).map(option => ( {option} @@ -224,16 +224,23 @@ const PromptValuePanel: FC = ({
{canNotRun && ( - - + + onSend?.()} + className="w-[96px]" + > + )} {!canNotRun && ( diff --git a/web/app/components/app/log/list.tsx b/web/app/components/app/log/list.tsx index da96d41804..1633d53ccc 100644 --- a/web/app/components/app/log/list.tsx +++ b/web/app/components/app/log/list.tsx @@ -10,6 +10,7 @@ import { } from '@heroicons/react/24/outline' import { cn } from '@langgenius/dify-ui/cn' import { toast } from '@langgenius/dify-ui/toast' +import { Tooltip, TooltipContent, TooltipTrigger } from '@langgenius/dify-ui/tooltip' import { RiCloseLine, RiEditFill } from '@remixicon/react' import dayjs from 'dayjs' import timezone from 'dayjs/plugin/timezone' @@ -30,7 +31,6 @@ import CopyIcon from '@/app/components/base/copy-icon' import Drawer from '@/app/components/base/drawer' import Loading from '@/app/components/base/loading' import MessageLogModal from '@/app/components/base/message-log-modal' -import Tooltip from '@/app/components/base/tooltip' import { WorkflowContextProvider } from '@/app/components/workflow/context' import { useAppContext } from '@/context/app-context' import useBreakpoints, { MediaType } from '@/hooks/use-breakpoints' @@ -409,10 +409,15 @@ function DetailPanel({ detail, onFeedback }: IDetailPanel) {
{isChatMode ? t('detail.conversationId', { ns: 'appLog' }) : t('detail.time', { ns: 'appLog' })}
{isChatMode && (
- -
{detail.id}
+ + {detail.id}
+ )} + /> + + {detail.id} +
@@ -769,18 +774,20 @@ const ConversationList: FC = ({ logs, appDetail, onRefresh }) // Annotated data needs to be highlighted const renderTdValue = (value: string | number | null, isEmptyStyle: boolean, isHighlight = false, annotation?: LogAnnotation) => { return ( - + + {value || '-'} +
+ )} + /> + {`${t('detail.annotationTip', { ns: 'appLog', user: annotation?.account?.name })} ${formatTime(annotation?.created_at || dayjs().unix(), 'MM-DD hh:mm A')}`} - )} - popupClassName={(isHighlight && !isChatMode) ? '' : 'hidden!'} - > -
- {value || '-'} -
+
) } diff --git a/web/app/components/app/overview/__tests__/app-card.spec.tsx b/web/app/components/app/overview/__tests__/app-card.spec.tsx index 43c0887566..2f730ad278 100644 --- a/web/app/components/app/overview/__tests__/app-card.spec.tsx +++ b/web/app/components/app/overview/__tests__/app-card.spec.tsx @@ -270,6 +270,7 @@ describe('AppCard', () => { />, ) + fireEvent.click(screen.getByRole('button', { name: 'overview.appInfo.enableTooltip.description' })) fireEvent.click(screen.getByText('overview.appInfo.enableTooltip.learnMore')) expect(mockWindowOpen).toHaveBeenCalledWith('https://docs.example.com/use-dify/nodes/user-input', '_blank') diff --git a/web/app/components/app/overview/app-card.tsx b/web/app/components/app/overview/app-card.tsx index f0502ae918..b7ec4a2d81 100644 --- a/web/app/components/app/overview/app-card.tsx +++ b/web/app/components/app/overview/app-card.tsx @@ -2,6 +2,7 @@ import type { ConfigParams } from './settings' import type { AppDetailResponse } from '@/models/app' import type { AppSSO } from '@/types/app' +import { Popover, PopoverContent, PopoverTrigger } from '@langgenius/dify-ui/popover' import { Switch } from '@langgenius/dify-ui/switch' import { useSuspenseQuery } from '@tanstack/react-query' import * as React from 'react' @@ -9,7 +10,6 @@ import { useCallback, useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' import AppBasic from '@/app/components/app-sidebar/basic' import { useStore as useAppStore } from '@/app/components/app/store' -import Tooltip from '@/app/components/base/tooltip' import SecretKeyButton from '@/app/components/develop/secret-key/secret-key-button' import Indicator from '@/app/components/header/indicator' import { useAppContext } from '@/context/app-context' @@ -179,6 +179,31 @@ function AppCard({ triggerModeDisabled, ]) + const missingStartNodeContent = cardState.appUnpublished || cardState.missingStartNode + ? ( + <> +
+ {t('overview.appInfo.enableTooltip.description', { ns: 'appOverview' })} +
+ + + ) + : '' + + const statusPopoverContent = cardState.toggleDisabled + ? ( + triggerModeDisabled && triggerModeMessage + ? triggerModeMessage + : missingStartNodeContent + ) + : '' + return (
- - -
- {t('overview.appInfo.enableTooltip.description', { ns: 'appOverview' })} -
-
window.open(docLink('/use-dify/nodes/user-input'), '_blank')} - > - {t('overview.appInfo.enableTooltip.learnMore', { ns: 'appOverview' })} -
- - ) - : '' - ) - : '' - } - position="right" - popupClassName="w-58 max-w-60 rounded-xl bg-components-panel-bg px-3.5 py-3 shadow-lg" - offset={24} - > -
- -
-
+ {cardState.toggleDisabled && statusPopoverContent + ? ( + + + +
+ )} + /> + + {statusPopoverContent} + + + ) + : ( + + )} {!cardState.isMinimalState && ( ({ useDocLink: () => mockDocLink, })) -// Mock window.open -const mockWindowOpen = vi.fn() -Object.defineProperty(window, 'open', { - value: mockWindowOpen, - writable: true, -}) - describe('CustomizeModal', () => { const defaultProps = { isShow: true, @@ -287,7 +280,7 @@ describe('CustomizeModal', () => { // User interactions tests - verify user actions trigger expected behaviors describe('User Interactions', () => { - it('should call window.open with doc link when way 2 button is clicked', async () => { + it('should render the API docs link for way 2', async () => { // Arrange const props = { ...defaultProps } @@ -298,16 +291,10 @@ describe('CustomizeModal', () => { expect(screen.getByText('appOverview.overview.appInfo.customize.way2.operation')).toBeInTheDocument() }) - const way2Button = screen.getByText('appOverview.overview.appInfo.customize.way2.operation').closest('button') - expect(way2Button).toBeInTheDocument() - fireEvent.click(way2Button!) - - // Assert - expect(mockWindowOpen).toHaveBeenCalledTimes(1) - expect(mockWindowOpen).toHaveBeenCalledWith( - expect.stringContaining('/use-dify/publish/developing-with-apis'), - '_blank', - ) + const way2Link = screen.getByRole('link', { name: /way2\.operation/i }) + expect(way2Link).toHaveAttribute('href', expect.stringContaining('/use-dify/publish/developing-with-apis')) + expect(way2Link).toHaveAttribute('target', '_blank') + expect(way2Link).toHaveAttribute('rel', 'noopener noreferrer') }) it('should call onClose when modal close button is clicked', async () => { diff --git a/web/app/components/app/overview/customize/index.tsx b/web/app/components/app/overview/customize/index.tsx index e4b8aabf69..46527c30f9 100644 --- a/web/app/components/app/overview/customize/index.tsx +++ b/web/app/components/app/overview/customize/index.tsx @@ -1,10 +1,9 @@ 'use client' import type { FC } from 'react' -import { ArrowTopRightOnSquareIcon } from '@heroicons/react/24/outline' import { Button } from '@langgenius/dify-ui/button' +import { Dialog, DialogCloseButton, DialogContent, DialogDescription, DialogTitle } from '@langgenius/dify-ui/dialog' import * as React from 'react' import { useTranslation } from 'react-i18next' -import Modal from '@/app/components/base/modal' import Tag from '@/app/components/base/tag' import { useDocLink } from '@/context/i18n' import { AppModeEnum } from '@/types/app' @@ -25,7 +24,7 @@ const StepNum: FC<{ children: React.ReactNode }> = ({ children }) => ( const GithubIcon = ({ className }: { className: string }) => { return ( - + ) @@ -43,90 +42,85 @@ const CustomizeModal: FC = ({ const { t } = useTranslation() const docLink = useDocLink() const isChatApp = mode === AppModeEnum.CHAT || mode === AppModeEnum.ADVANCED_CHAT + const apiDocLink = docLink('/use-dify/publish/developing-with-apis') return ( - - - - -
- 3 -
-
{t(`${prefixCustomize}.way1.step3`, { ns: 'appOverview' })}
-
{t(`${prefixCustomize}.way1.step3Tip`, { ns: 'appOverview' })}
-
-              NEXT_PUBLIC_APP_ID=
-              {`'${appId}'`}
-              {' '}
-              
- NEXT_PUBLIC_APP_KEY= - {'\'\''} - {' '} -
- NEXT_PUBLIC_API_URL= - {`'${api_base_url}'`} -
+
+ 3 +
+
{t(`${prefixCustomize}.way1.step3`, { ns: 'appOverview' })}
+
{t(`${prefixCustomize}.way1.step3Tip`, { ns: 'appOverview' })}
+
+                NEXT_PUBLIC_APP_ID=
+                {`'${appId}'`}
+                {' '}
+                
+ NEXT_PUBLIC_APP_KEY= + {'\'\''} + {' '} +
+ NEXT_PUBLIC_API_URL= + {`'${api_base_url}'`} +
+
-
-
-
- - {t(`${prefixCustomize}.way`, { ns: 'appOverview' })} - {' '} - 2 - -

{t(`${prefixCustomize}.way2.name`, { ns: 'appOverview' })}

- -
- + +
+ + {t(`${prefixCustomize}.way`, { ns: 'appOverview' })} + {' '} + 2 + +

{t(`${prefixCustomize}.way2.name`, { ns: 'appOverview' })}

+ +
+ + ) } diff --git a/web/app/components/app/overview/embedded/index.tsx b/web/app/components/app/overview/embedded/index.tsx index 029566587e..12203178f1 100644 --- a/web/app/components/app/overview/embedded/index.tsx +++ b/web/app/components/app/overview/embedded/index.tsx @@ -1,17 +1,13 @@ import type { SiteInfo } from '@/models/share' import { cn } from '@langgenius/dify-ui/cn' -import { - RiClipboardFill, - RiClipboardLine, -} from '@remixicon/react' +import { Dialog, DialogCloseButton, DialogContent, DialogTitle } from '@langgenius/dify-ui/dialog' +import { Tooltip, TooltipContent, TooltipTrigger } from '@langgenius/dify-ui/tooltip' import copy from 'copy-to-clipboard' import * as React from 'react' -import { useEffect, useState } from 'react' +import { useState } from 'react' import { useTranslation } from 'react-i18next' import ActionButton from '@/app/components/base/action-button' import { useThemeContext } from '@/app/components/base/chat/embedded-chatbot/theme/theme-context' -import Modal from '@/app/components/base/modal' -import Tooltip from '@/app/components/base/tooltip' import { IS_CE_EDITION } from '@/config' import { useAppContext } from '@/context/app-context' import { basePath } from '@/utils/var' @@ -86,16 +82,18 @@ const prefixEmbedded = 'overview.appInfo.embedded' type Option = keyof typeof OPTION_MAP -type OptionStatus = { - iframe: boolean - scripts: boolean - chromePlugin: boolean +const OPTIONS: Option[] = ['iframe', 'scripts', 'chromePlugin'] + +const optionIconClassName: Record = { + iframe: style.iframeIcon!, + scripts: style.scriptsIcon!, + chromePlugin: style.chromePluginIcon!, } const Embedded = ({ siteInfo, isShow, onClose, appBaseUrl, accessToken, className }: Props) => { const { t } = useTranslation() const [option, setOption] = useState