From 2ebdead95bf409e7b66e49aa4498cc427128c223 Mon Sep 17 00:00:00 2001 From: Abhimanyu Saharan Date: Thu, 12 Feb 2026 18:04:35 +0530 Subject: [PATCH] chore: update generated files to orval v8.3.0 and adjust related interfaces --- backend/app/api/agent.py | 53 +- backend/app/api/task_tags.py | 220 + backend/app/api/tasks.py | 150 +- backend/app/main.py | 2 + backend/app/models/__init__.py | 4 + backend/app/models/task_tag_assignments.py | 32 + backend/app/models/task_tags.py | 36 + backend/app/schemas/__init__.py | 5 + backend/app/schemas/task_tags.py | 126 + backend/app/schemas/tasks.py | 6 +- backend/app/schemas/view_models.py | 3 + backend/app/services/board_group_snapshot.py | 9 + backend/app/services/board_snapshot.py | 10 + backend/app/services/task_tags.py | 158 + ...1e5a4f7b2_add_task_tags_and_assignments.py | 101 + backend/templates/HEARTBEAT_LEAD.md | 7 +- backend/tests/test_agent_task_tags_api.py | 99 + backend/tests/test_task_tags_service.py | 128 + backend/tests/test_tasks_api_rows.py | 2 + .../src/api/generated/activity/activity.ts | 2 +- frontend/src/api/generated/agent/agent.ts | 4334 +++++++++-------- frontend/src/api/generated/agents/agents.ts | 492 +- .../src/api/generated/approvals/approvals.ts | 2 +- frontend/src/api/generated/auth/auth.ts | 2 +- .../board-group-memory/board-group-memory.ts | 2 +- .../generated/board-groups/board-groups.ts | 485 +- .../generated/board-memory/board-memory.ts | 2 +- .../board-onboarding/board-onboarding.ts | 586 +-- frontend/src/api/generated/boards/boards.ts | 714 +-- frontend/src/api/generated/default/default.ts | 2 +- .../src/api/generated/gateways/gateways.ts | 912 ++-- frontend/src/api/generated/metrics/metrics.ts | 2 +- .../api/generated/model/activityEventRead.ts | 10 +- .../model/activityTaskCommentFeedItemRead.ts | 12 +- .../src/api/generated/model/agentCreate.ts | 8 +- .../model/agentCreateHeartbeatConfig.ts | 2 +- .../model/agentCreateIdentityProfile.ts | 2 +- .../src/api/generated/model/agentHeartbeat.ts | 2 +- .../generated/model/agentHeartbeatCreate.ts | 6 +- .../src/api/generated/model/agentNudge.ts | 2 +- frontend/src/api/generated/model/agentRead.ts | 18 +- .../model/agentReadHeartbeatConfig.ts | 2 +- .../model/agentReadIdentityProfile.ts | 2 +- .../src/api/generated/model/agentUpdate.ts | 8 +- .../model/agentUpdateHeartbeatConfig.ts | 2 +- .../model/agentUpdateIdentityProfile.ts | 2 +- .../src/api/generated/model/approvalCreate.ts | 9 +- .../generated/model/approvalCreatePayload.ts | 2 +- .../model/approvalCreateRubricScores.ts | 2 +- .../generated/model/approvalCreateStatus.ts | 2 +- .../src/api/generated/model/approvalRead.ts | 17 +- .../generated/model/approvalReadPayload.ts | 2 +- .../model/approvalReadRubricScores.ts | 2 +- .../api/generated/model/approvalReadStatus.ts | 2 +- .../src/api/generated/model/approvalUpdate.ts | 2 +- .../api/generated/model/blockedTaskDetail.ts | 4 +- .../api/generated/model/blockedTaskError.ts | 2 +- .../src/api/generated/model/boardCreate.ts | 16 +- .../model/boardCreateSuccessMetrics.ts | 2 +- .../model/boardGroupBoardSnapshot.ts | 2 +- .../boardGroupBoardSnapshotTaskCounts.ts | 2 +- .../api/generated/model/boardGroupCreate.ts | 4 +- .../model/boardGroupHeartbeatApply.ts | 4 +- .../model/boardGroupHeartbeatApplyResult.ts | 4 +- ...boardGroupHeartbeatApplyResultRequested.ts | 2 +- .../generated/model/boardGroupMemoryCreate.ts | 4 +- .../generated/model/boardGroupMemoryRead.ts | 10 +- .../src/api/generated/model/boardGroupRead.ts | 8 +- .../api/generated/model/boardGroupSnapshot.ts | 4 +- .../generated/model/boardGroupTaskSummary.ts | 20 +- .../api/generated/model/boardGroupUpdate.ts | 4 +- .../api/generated/model/boardMemoryCreate.ts | 4 +- .../api/generated/model/boardMemoryRead.ts | 10 +- .../model/boardOnboardingAgentComplete.ts | 6 +- ...rdOnboardingAgentCompleteSuccessMetrics.ts | 2 +- .../model/boardOnboardingAgentQuestion.ts | 6 +- .../generated/model/boardOnboardingAnswer.ts | 2 +- .../generated/model/boardOnboardingConfirm.ts | 2 +- .../boardOnboardingConfirmSuccessMetrics.ts | 2 +- .../model/boardOnboardingLeadAgentDraft.ts | 10 +- ...OnboardingLeadAgentDraftIdentityProfile.ts | 2 +- .../model/boardOnboardingQuestionOption.ts | 2 +- .../generated/model/boardOnboardingRead.ts | 10 +- .../model/boardOnboardingReadMessages.ts | 2 +- .../generated/model/boardOnboardingStart.ts | 2 +- .../model/boardOnboardingUserProfile.ts | 6 +- frontend/src/api/generated/model/boardRead.ts | 18 +- .../model/boardReadSuccessMetrics.ts | 2 +- .../src/api/generated/model/boardSnapshot.ts | 6 +- .../src/api/generated/model/boardUpdate.ts | 16 +- .../model/boardUpdateSuccessMetrics.ts | 2 +- .../src/api/generated/model/dashboardKpis.ts | 4 +- .../api/generated/model/dashboardMetrics.ts | 10 +- ...rdMetricsApiV1MetricsDashboardGetParams.ts | 2 +- ...MetricsApiV1MetricsDashboardGetRangeKey.ts | 2 +- .../generated/model/dashboardMetricsRange.ts | 2 +- .../generated/model/dashboardRangeSeries.ts | 4 +- .../model/dashboardRangeSeriesBucket.ts | 2 +- .../model/dashboardRangeSeriesRange.ts | 2 +- .../generated/model/dashboardSeriesPoint.ts | 2 +- .../api/generated/model/dashboardSeriesSet.ts | 4 +- .../api/generated/model/dashboardWipPoint.ts | 6 +- .../model/dashboardWipRangeSeries.ts | 4 +- .../model/dashboardWipRangeSeriesBucket.ts | 2 +- .../model/dashboardWipRangeSeriesRange.ts | 2 +- .../generated/model/dashboardWipSeriesSet.ts | 4 +- .../model/gatewayCommandsResponse.ts | 6 +- .../src/api/generated/model/gatewayCreate.ts | 4 +- .../model/gatewayLeadBroadcastBoardResult.ts | 4 +- .../model/gatewayLeadBroadcastRequest.ts | 10 +- .../model/gatewayLeadBroadcastRequestKind.ts | 2 +- .../model/gatewayLeadBroadcastResponse.ts | 6 +- .../model/gatewayLeadMessageRequest.ts | 8 +- .../model/gatewayLeadMessageRequestKind.ts | 2 +- .../model/gatewayLeadMessageResponse.ts | 4 +- .../model/gatewayMainAskUserRequest.ts | 6 +- .../model/gatewayMainAskUserResponse.ts | 4 +- .../src/api/generated/model/gatewayRead.ts | 10 +- .../model/gatewaySessionHistoryResponse.ts | 2 +- .../model/gatewaySessionMessageRequest.ts | 2 +- .../generated/model/gatewaySessionResponse.ts | 2 +- .../model/gatewaySessionsResponse.ts | 4 +- .../model/gatewayTemplatesSyncError.ts | 2 +- .../model/gatewayTemplatesSyncResult.ts | 10 +- .../src/api/generated/model/gatewayUpdate.ts | 4 +- ...ewaysStatusApiV1GatewaysStatusGetParams.ts | 2 +- .../generated/model/gatewaysStatusResponse.ts | 8 +- ...piV1BoardGroupsGroupIdSnapshotGetParams.ts | 2 +- ...piV1BoardsBoardIdGroupSnapshotGetParams.ts | 2 +- ...ApiV1GatewaysSessionsSessionIdGetParams.ts | 2 +- ...tewaysSessionsSessionIdHistoryGetParams.ts | 2 +- .../generated/model/hTTPValidationError.ts | 2 +- .../api/generated/model/healthHealthGet200.ts | 2 +- .../generated/model/healthzHealthzGet200.ts | 2 +- frontend/src/api/generated/model/index.ts | 8 +- ...tPageTypeVarCustomizedActivityEventRead.ts | 6 +- ...stomizedActivityTaskCommentFeedItemRead.ts | 6 +- ...mitOffsetPageTypeVarCustomizedAgentRead.ts | 6 +- ...OffsetPageTypeVarCustomizedApprovalRead.ts | 6 +- ...geTypeVarCustomizedBoardGroupMemoryRead.ts | 6 +- ...fsetPageTypeVarCustomizedBoardGroupRead.ts | 6 +- ...setPageTypeVarCustomizedBoardMemoryRead.ts | 6 +- ...mitOffsetPageTypeVarCustomizedBoardRead.ts | 6 +- ...tOffsetPageTypeVarCustomizedGatewayRead.ts | 6 +- ...TypeVarCustomizedOrganizationInviteRead.ts | 6 +- ...TypeVarCustomizedOrganizationMemberRead.ts | 6 +- ...setPageTypeVarCustomizedTaskCommentRead.ts | 6 +- ...imitOffsetPageTypeVarCustomizedTaskRead.ts | 6 +- ...tOffsetPageTypeVarCustomizedTaskTagRead.ts | 17 + .../listActivityApiV1ActivityGetParams.ts | 2 +- .../listAgentsApiV1AgentAgentsGetParams.ts | 2 +- .../model/listAgentsApiV1AgentsGetParams.ts | 2 +- ...iV1AgentBoardsBoardIdApprovalsGetParams.ts | 2 +- ...alsApiV1BoardsBoardIdApprovalsGetParams.ts | 2 +- ...yApiV1BoardGroupsGroupIdMemoryGetParams.ts | 2 +- ...dApiV1BoardsBoardIdGroupMemoryGetParams.ts | 2 +- ...istBoardGroupsApiV1BoardGroupsGetParams.ts | 2 +- ...yApiV1AgentBoardsBoardIdMemoryGetParams.ts | 2 +- ...MemoryApiV1BoardsBoardIdMemoryGetParams.ts | 2 +- .../listBoardsApiV1AgentBoardsGetParams.ts | 2 +- .../model/listBoardsApiV1BoardsGetParams.ts | 2 +- ...ySessionsApiV1GatewaysSessionsGetParams.ts | 2 +- .../listGatewaysApiV1GatewaysGetParams.ts | 2 +- ...tesApiV1OrganizationsMeInvitesGetParams.ts | 2 +- ...ersApiV1OrganizationsMeMembersGetParams.ts | 2 +- ...tFeedApiV1ActivityTaskCommentsGetParams.ts | 2 +- ...ardsBoardIdTasksTaskIdCommentsGetParams.ts | 2 +- ...ardsBoardIdTasksTaskIdCommentsGetParams.ts | 2 +- .../model/listTaskTagsApiV1TagsGetParams.ts | 18 + ...ksApiV1AgentBoardsBoardIdTasksGetParams.ts | 2 +- ...stTasksApiV1BoardsBoardIdTasksGetParams.ts | 2 +- .../src/api/generated/model/okResponse.ts | 2 +- .../model/organizationActiveUpdate.ts | 2 +- .../model/organizationBoardAccessRead.ts | 4 +- .../model/organizationBoardAccessSpec.ts | 2 +- .../api/generated/model/organizationCreate.ts | 2 +- .../model/organizationInviteAccept.ts | 2 +- .../model/organizationInviteCreate.ts | 6 +- .../generated/model/organizationInviteRead.ts | 18 +- .../generated/model/organizationListItem.ts | 4 +- .../model/organizationMemberAccessUpdate.ts | 2 +- .../generated/model/organizationMemberRead.ts | 12 +- .../model/organizationMemberUpdate.ts | 2 +- .../api/generated/model/organizationRead.ts | 4 +- .../generated/model/organizationUserRead.ts | 4 +- .../api/generated/model/readyzReadyzGet200.ts | 2 +- ...earchApiV1SoulsDirectorySearchGetParams.ts | 2 +- ...ewaysSessionsSessionIdMessagePostParams.ts | 2 +- .../api/generated/model/soulUpdateRequest.ts | 4 +- .../model/soulsDirectoryMarkdownResponse.ts | 4 +- .../model/soulsDirectorySearchResponse.ts | 2 +- .../generated/model/soulsDirectorySoulRef.ts | 4 +- .../streamAgentsApiV1AgentsStreamGetParams.ts | 2 +- ...V1BoardsBoardIdApprovalsStreamGetParams.ts | 2 +- ...BoardGroupsGroupIdMemoryStreamGetParams.ts | 2 +- ...BoardsBoardIdGroupMemoryStreamGetParams.ts | 2 +- ...ApiV1BoardsBoardIdMemoryStreamGetParams.ts | 2 +- ...piV1ActivityTaskCommentsStreamGetParams.ts | 2 +- ...sApiV1BoardsBoardIdTasksStreamGetParams.ts | 2 +- ...atewaysGatewayIdTemplatesSyncPostParams.ts | 2 +- .../src/api/generated/model/taskCardRead.ts | 37 +- .../api/generated/model/taskCardReadStatus.ts | 2 +- .../api/generated/model/taskCommentCreate.ts | 2 +- .../api/generated/model/taskCommentRead.ts | 6 +- .../src/api/generated/model/taskCreate.ts | 15 +- .../api/generated/model/taskCreateStatus.ts | 2 +- frontend/src/api/generated/model/taskRead.ts | 29 +- .../src/api/generated/model/taskReadStatus.ts | 2 +- .../src/api/generated/model/taskTagCreate.ts | 17 + .../src/api/generated/model/taskTagRead.ts | 21 + .../src/api/generated/model/taskTagRef.ts | 16 + .../src/api/generated/model/taskTagUpdate.ts | 16 + .../src/api/generated/model/taskUpdate.ts | 15 +- ...pdateAgentApiV1AgentsAgentIdPatchParams.ts | 2 +- frontend/src/api/generated/model/userRead.ts | 10 +- .../src/api/generated/model/userUpdate.ts | 6 +- .../api/generated/model/validationError.ts | 6 +- .../api/generated/model/validationErrorCtx.ts | 2 +- .../generated/organizations/organizations.ts | 3026 ++++++------ .../souls-directory/souls-directory.ts | 2 +- frontend/src/api/generated/tags/tags.ts | 798 +++ frontend/src/api/generated/tasks/tasks.ts | 760 +-- frontend/src/api/generated/users/users.ts | 206 +- frontend/src/app/boards/[boardId]/page.tsx | 268 + frontend/src/app/tags/[tagId]/edit/page.tsx | 100 + frontend/src/app/tags/add/page.tsx | 55 + frontend/src/app/tags/page.tsx | 157 + .../src/components/molecules/TaskCard.tsx | 24 + .../components/organisms/DashboardSidebar.tsx | 13 + .../src/components/organisms/TaskBoard.tsx | 2 + frontend/src/components/tags/TaskTagForm.tsx | 214 + .../src/components/tags/TaskTagsTable.tsx | 181 + 232 files changed, 9434 insertions(+), 6021 deletions(-) create mode 100644 backend/app/api/task_tags.py create mode 100644 backend/app/models/task_tag_assignments.py create mode 100644 backend/app/models/task_tags.py create mode 100644 backend/app/schemas/task_tags.py create mode 100644 backend/app/services/task_tags.py create mode 100644 backend/migrations/versions/d8c1e5a4f7b2_add_task_tags_and_assignments.py create mode 100644 backend/tests/test_agent_task_tags_api.py create mode 100644 backend/tests/test_task_tags_service.py create mode 100644 frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedTaskTagRead.ts create mode 100644 frontend/src/api/generated/model/listTaskTagsApiV1TagsGetParams.ts create mode 100644 frontend/src/api/generated/model/taskTagCreate.ts create mode 100644 frontend/src/api/generated/model/taskTagRead.ts create mode 100644 frontend/src/api/generated/model/taskTagRef.ts create mode 100644 frontend/src/api/generated/model/taskTagUpdate.ts create mode 100644 frontend/src/api/generated/tags/tags.ts create mode 100644 frontend/src/app/tags/[tagId]/edit/page.tsx create mode 100644 frontend/src/app/tags/add/page.tsx create mode 100644 frontend/src/app/tags/page.tsx create mode 100644 frontend/src/components/tags/TaskTagForm.tsx create mode 100644 frontend/src/components/tags/TaskTagsTable.tsx diff --git a/backend/app/api/agent.py b/backend/app/api/agent.py index 3f88f9ec..a0fba078 100644 --- a/backend/app/api/agent.py +++ b/backend/app/api/agent.py @@ -6,6 +6,7 @@ from typing import TYPE_CHECKING, Any from uuid import UUID from fastapi import APIRouter, Depends, HTTPException, Query, status +from sqlalchemy import func from sqlmodel import SQLModel, col, select from app.api import agents as agents_api @@ -20,6 +21,7 @@ from app.db.session import get_session from app.models.agents import Agent from app.models.boards import Board from app.models.task_dependencies import TaskDependency +from app.models.task_tags import TaskTag from app.models.tasks import Task from app.schemas.agents import ( AgentCreate, @@ -42,6 +44,7 @@ from app.schemas.gateway_coordination import ( GatewayMainAskUserResponse, ) from app.schemas.pagination import DefaultLimitOffsetPage +from app.schemas.task_tags import TaskTagRef from app.schemas.tasks import TaskCommentCreate, TaskCommentRead, TaskCreate, TaskRead, TaskUpdate from app.services.activity_log import record_activity from app.services.openclaw.coordination_service import GatewayCoordinationService @@ -52,6 +55,7 @@ from app.services.task_dependencies import ( dependency_status_by_id, validate_dependency_update, ) +from app.services.task_tags import replace_task_tags, validate_task_tag_ids if TYPE_CHECKING: from collections.abc import Sequence @@ -210,6 +214,32 @@ async def list_tasks( ) +@router.get("/boards/{board_id}/tags", response_model=list[TaskTagRef]) +async def list_task_tags( + board: Board = BOARD_DEP, + session: AsyncSession = SESSION_DEP, + agent_ctx: AgentAuthContext = AGENT_CTX_DEP, +) -> list[TaskTagRef]: + """List task tags available to the board's organization.""" + _guard_board_access(agent_ctx, board) + tags = ( + await session.exec( + select(TaskTag) + .where(col(TaskTag.organization_id) == board.organization_id) + .order_by(func.lower(col(TaskTag.name)).asc(), col(TaskTag.created_at).asc()), + ) + ).all() + return [ + TaskTagRef( + id=tag.id, + name=tag.name, + slug=tag.slug, + color=tag.color, + ) + for tag in tags + ] + + @router.post("/boards/{board_id}/tasks", response_model=TaskRead) async def create_task( payload: TaskCreate, @@ -220,8 +250,9 @@ async def create_task( """Create a task on the board as the lead agent.""" _guard_board_access(agent_ctx, board) _require_board_lead(agent_ctx) - data = payload.model_dump(exclude={"depends_on_task_ids"}) + data = payload.model_dump(exclude={"depends_on_task_ids", "tag_ids"}) depends_on_task_ids = list(payload.depends_on_task_ids) + tag_ids = list(payload.tag_ids) task = Task.model_validate(data) task.board_id = board.id @@ -234,6 +265,11 @@ async def create_task( task_id=task.id, depends_on_task_ids=depends_on_task_ids, ) + normalized_tag_ids = await validate_task_tag_ids( + session, + organization_id=board.organization_id, + tag_ids=tag_ids, + ) dep_status = await dependency_status_by_id( session, board_id=board.id, @@ -274,6 +310,11 @@ async def create_task( depends_on_task_id=dep_id, ), ) + await replace_task_tags( + session, + task_id=task.id, + tag_ids=normalized_tag_ids, + ) await session.commit() await session.refresh(task) record_activity( @@ -295,12 +336,10 @@ async def create_task( task=task, agent=assigned_agent, ) - return TaskRead.model_validate(task, from_attributes=True).model_copy( - update={ - "depends_on_task_ids": normalized_deps, - "blocked_by_task_ids": blocked_by, - "is_blocked": bool(blocked_by), - }, + return await tasks_api._task_read_response( + session, + task=task, + board_id=board.id, ) diff --git a/backend/app/api/task_tags.py b/backend/app/api/task_tags.py new file mode 100644 index 00000000..ad233a97 --- /dev/null +++ b/backend/app/api/task_tags.py @@ -0,0 +1,220 @@ +"""Task-tag CRUD endpoints for organization-scoped task categorization.""" + +from __future__ import annotations + +from typing import TYPE_CHECKING +from uuid import UUID + +from fastapi import APIRouter, Depends, HTTPException, status +from sqlalchemy import func +from sqlmodel import col, select + +from app.api.deps import require_org_admin, require_org_member +from app.core.time import utcnow +from app.db import crud +from app.db.pagination import paginate +from app.db.session import get_session +from app.models.task_tag_assignments import TaskTagAssignment +from app.models.task_tags import TaskTag +from app.schemas.common import OkResponse +from app.schemas.pagination import DefaultLimitOffsetPage +from app.schemas.task_tags import TaskTagCreate, TaskTagRead, TaskTagUpdate +from app.services.organizations import OrganizationContext +from app.services.task_tags import slugify_task_tag, task_counts_for_tags + +if TYPE_CHECKING: + from collections.abc import Sequence + + from fastapi_pagination.limit_offset import LimitOffsetPage + from sqlmodel.ext.asyncio.session import AsyncSession + +router = APIRouter(prefix="/tags", tags=["tags"]) +SESSION_DEP = Depends(get_session) +ORG_MEMBER_DEP = Depends(require_org_member) +ORG_ADMIN_DEP = Depends(require_org_admin) + + +def _normalize_slug(slug: str | None, *, fallback_name: str) -> str: + source = (slug or "").strip() or fallback_name + return slugify_task_tag(source) + + +async def _require_org_task_tag( + session: AsyncSession, + *, + tag_id: UUID, + ctx: OrganizationContext, +) -> TaskTag: + tag = await TaskTag.objects.by_id(tag_id).first(session) + if tag is None: + raise HTTPException(status_code=status.HTTP_404_NOT_FOUND) + if tag.organization_id != ctx.organization.id: + raise HTTPException(status_code=status.HTTP_403_FORBIDDEN) + return tag + + +async def _ensure_slug_available( + session: AsyncSession, + *, + organization_id: UUID, + slug: str, + exclude_tag_id: UUID | None = None, +) -> None: + existing = await TaskTag.objects.filter_by(organization_id=organization_id, slug=slug).first( + session + ) + if existing is None: + return + if exclude_tag_id is not None and existing.id == exclude_tag_id: + return + raise HTTPException( + status_code=status.HTTP_409_CONFLICT, + detail="Task tag slug already exists in this organization.", + ) + + +async def _tag_read_page( + *, + session: AsyncSession, + items: Sequence[TaskTag], +) -> list[TaskTagRead]: + if not items: + return [] + counts = await task_counts_for_tags( + session, + tag_ids=[item.id for item in items], + ) + return [ + TaskTagRead.model_validate(item, from_attributes=True).model_copy( + update={"task_count": counts.get(item.id, 0)}, + ) + for item in items + ] + + +@router.get("", response_model=DefaultLimitOffsetPage[TaskTagRead]) +async def list_task_tags( + session: AsyncSession = SESSION_DEP, + ctx: OrganizationContext = ORG_MEMBER_DEP, +) -> LimitOffsetPage[TaskTagRead]: + """List task tags for the active organization.""" + statement = ( + select(TaskTag) + .where(col(TaskTag.organization_id) == ctx.organization.id) + .order_by(func.lower(col(TaskTag.name)).asc(), col(TaskTag.created_at).asc()) + ) + + async def _transform(items: Sequence[object]) -> Sequence[object]: + tags: list[TaskTag] = [] + for item in items: + if not isinstance(item, TaskTag): + msg = "Expected TaskTag items from paginated query" + raise TypeError(msg) + tags.append(item) + return await _tag_read_page(session=session, items=tags) + + return await paginate(session, statement, transformer=_transform) + + +@router.post("", response_model=TaskTagRead) +async def create_task_tag( + payload: TaskTagCreate, + session: AsyncSession = SESSION_DEP, + ctx: OrganizationContext = ORG_ADMIN_DEP, +) -> TaskTagRead: + """Create a task tag within the active organization.""" + slug = _normalize_slug(payload.slug, fallback_name=payload.name) + await _ensure_slug_available( + session, + organization_id=ctx.organization.id, + slug=slug, + ) + tag = await crud.create( + session, + TaskTag, + organization_id=ctx.organization.id, + name=payload.name, + slug=slug, + color=payload.color, + description=payload.description, + ) + return TaskTagRead.model_validate(tag, from_attributes=True) + + +@router.get("/{tag_id}", response_model=TaskTagRead) +async def get_task_tag( + tag_id: UUID, + session: AsyncSession = SESSION_DEP, + ctx: OrganizationContext = ORG_MEMBER_DEP, +) -> TaskTagRead: + """Get a single task tag in the active organization.""" + tag = await _require_org_task_tag( + session, + tag_id=tag_id, + ctx=ctx, + ) + count = ( + await session.exec( + select(func.count(col(TaskTagAssignment.task_id))).where( + col(TaskTagAssignment.tag_id) == tag.id, + ), + ) + ).one() + return TaskTagRead.model_validate(tag, from_attributes=True).model_copy( + update={"task_count": int(count or 0)}, + ) + + +@router.patch("/{tag_id}", response_model=TaskTagRead) +async def update_task_tag( + tag_id: UUID, + payload: TaskTagUpdate, + session: AsyncSession = SESSION_DEP, + ctx: OrganizationContext = ORG_ADMIN_DEP, +) -> TaskTagRead: + """Update a task tag in the active organization.""" + tag = await _require_org_task_tag( + session, + tag_id=tag_id, + ctx=ctx, + ) + updates = payload.model_dump(exclude_unset=True) + + if "slug" in payload.model_fields_set: + updates["slug"] = _normalize_slug( + updates.get("slug"), + fallback_name=str(updates.get("name") or tag.name), + ) + if "slug" in updates and isinstance(updates["slug"], str): + await _ensure_slug_available( + session, + organization_id=ctx.organization.id, + slug=updates["slug"], + exclude_tag_id=tag.id, + ) + updates["updated_at"] = utcnow() + updated = await crud.patch(session, tag, updates) + return TaskTagRead.model_validate(updated, from_attributes=True) + + +@router.delete("/{tag_id}", response_model=OkResponse) +async def delete_task_tag( + tag_id: UUID, + session: AsyncSession = SESSION_DEP, + ctx: OrganizationContext = ORG_ADMIN_DEP, +) -> OkResponse: + """Delete a task tag and remove all associated task-tag links.""" + tag = await _require_org_task_tag( + session, + tag_id=tag_id, + ctx=ctx, + ) + await crud.delete_where( + session, + TaskTagAssignment, + col(TaskTagAssignment.tag_id) == tag.id, + commit=False, + ) + await session.delete(tag) + await session.commit() + return OkResponse() diff --git a/backend/app/api/tasks.py b/backend/app/api/tasks.py index 91ce21d2..9f7cbe74 100644 --- a/backend/app/api/tasks.py +++ b/backend/app/api/tasks.py @@ -34,6 +34,7 @@ from app.models.approvals import Approval from app.models.boards import Board from app.models.task_dependencies import TaskDependency from app.models.task_fingerprints import TaskFingerprint +from app.models.task_tag_assignments import TaskTagAssignment from app.models.tasks import Task from app.schemas.activity_events import ActivityEventRead from app.schemas.common import OkResponse @@ -55,6 +56,12 @@ from app.services.task_dependencies import ( replace_task_dependencies, validate_dependency_update, ) +from app.services.task_tags import ( + TaskTagState, + load_task_tag_state, + replace_task_tags, + validate_task_tag_ids, +) if TYPE_CHECKING: from collections.abc import AsyncIterator, Sequence @@ -576,6 +583,10 @@ async def _task_read_page( return [] task_ids = [task.id for task in tasks] + tag_state_by_task_id = await load_task_tag_state( + session, + task_ids=task_ids, + ) deps_map = await dependency_ids_by_task_id( session, board_id=board_id, @@ -592,6 +603,7 @@ async def _task_read_page( output: list[TaskRead] = [] for task in tasks: + tag_state = tag_state_by_task_id.get(task.id, TaskTagState()) dep_list = deps_map.get(task.id, []) blocked_by = blocked_by_dependency_ids( dependency_ids=dep_list, @@ -603,6 +615,8 @@ async def _task_read_page( TaskRead.model_validate(task, from_attributes=True).model_copy( update={ "depends_on_task_ids": dep_list, + "tag_ids": tag_state.tag_ids, + "tags": tag_state.tags, "blocked_by_task_ids": blocked_by, "is_blocked": bool(blocked_by), }, @@ -611,18 +625,22 @@ async def _task_read_page( return output -async def _stream_dependency_state( +async def _stream_task_state( session: AsyncSession, *, board_id: UUID, rows: list[tuple[ActivityEvent, Task | None]], -) -> tuple[dict[UUID, list[UUID]], dict[UUID, str]]: +) -> tuple[dict[UUID, list[UUID]], dict[UUID, str], dict[UUID, TaskTagState]]: task_ids = [ task.id for event, task in rows if task is not None and event.event_type != "task.comment" ] if not task_ids: - return {}, {} + return {}, {}, {} + tag_state_by_task_id = await load_task_tag_state( + session, + task_ids=list({*task_ids}), + ) deps_map = await dependency_ids_by_task_id( session, board_id=board_id, @@ -632,14 +650,14 @@ async def _stream_dependency_state( for value in deps_map.values(): dep_ids.extend(value) if not dep_ids: - return deps_map, {} + return deps_map, {}, tag_state_by_task_id dep_status = await dependency_status_by_id( session, board_id=board_id, dependency_ids=list({*dep_ids}), ) - return deps_map, dep_status + return deps_map, dep_status, tag_state_by_task_id def _task_event_payload( @@ -648,6 +666,7 @@ def _task_event_payload( *, deps_map: dict[UUID, list[UUID]], dep_status: dict[UUID, str], + tag_state_by_task_id: dict[UUID, TaskTagState], ) -> dict[str, object]: payload: dict[str, object] = { "type": event.event_type, @@ -660,6 +679,7 @@ def _task_event_payload( payload["task"] = None return payload + tag_state = tag_state_by_task_id.get(task.id, TaskTagState()) dep_list = deps_map.get(task.id, []) blocked_by = blocked_by_dependency_ids( dependency_ids=dep_list, @@ -672,6 +692,8 @@ def _task_event_payload( .model_copy( update={ "depends_on_task_ids": dep_list, + "tag_ids": tag_state.tag_ids, + "tags": tag_state.tags, "blocked_by_task_ids": blocked_by, "is_blocked": bool(blocked_by), }, @@ -697,7 +719,7 @@ async def _task_event_generator( async with async_session_maker() as session: rows = await _fetch_task_events(session, board_id, last_seen) - deps_map, dep_status = await _stream_dependency_state( + deps_map, dep_status, tag_state_by_task_id = await _stream_task_state( session, board_id=board_id, rows=rows, @@ -718,6 +740,7 @@ async def _task_event_generator( task, deps_map=deps_map, dep_status=dep_status, + tag_state_by_task_id=tag_state_by_task_id, ) yield {"event": "task", "data": json.dumps(payload)} await asyncio.sleep(2) @@ -778,8 +801,9 @@ async def create_task( auth: AuthContext = ADMIN_AUTH_DEP, ) -> TaskRead: """Create a task and initialize dependency rows.""" - data = payload.model_dump(exclude={"depends_on_task_ids"}) + data = payload.model_dump(exclude={"depends_on_task_ids", "tag_ids"}) depends_on_task_ids = list(payload.depends_on_task_ids) + tag_ids = list(payload.tag_ids) task = Task.model_validate(data) task.board_id = board.id @@ -792,6 +816,11 @@ async def create_task( task_id=task.id, depends_on_task_ids=depends_on_task_ids, ) + normalized_tag_ids = await validate_task_tag_ids( + session, + organization_id=board.organization_id, + tag_ids=tag_ids, + ) dep_status = await dependency_status_by_id( session, board_id=board.id, @@ -814,6 +843,11 @@ async def create_task( depends_on_task_id=dep_id, ), ) + await replace_task_tags( + session, + task_id=task.id, + tag_ids=normalized_tag_ids, + ) await session.commit() await session.refresh(task) @@ -836,12 +870,10 @@ async def create_task( task=task, agent=assigned_agent, ) - return TaskRead.model_validate(task, from_attributes=True).model_copy( - update={ - "depends_on_task_ids": normalized_deps, - "blocked_by_task_ids": blocked_by, - "is_blocked": bool(blocked_by), - }, + return await _task_read_response( + session, + task=task, + board_id=board.id, ) @@ -876,8 +908,10 @@ async def update_task( depends_on_task_ids = ( payload.depends_on_task_ids if "depends_on_task_ids" in payload.model_fields_set else None ) + tag_ids = payload.tag_ids if "tag_ids" in payload.model_fields_set else None updates.pop("comment", None) updates.pop("depends_on_task_ids", None) + updates.pop("tag_ids", None) update = _TaskUpdateInput( task=task, actor=actor, @@ -887,6 +921,7 @@ async def update_task( updates=updates, comment=comment, depends_on_task_ids=depends_on_task_ids, + tag_ids=tag_ids, ) if actor.actor_type == "agent" and actor.agent and actor.agent.is_board_lead: return await _apply_lead_task_update(session, update=update) @@ -957,6 +992,12 @@ async def delete_task( ), commit=False, ) + await crud.delete_where( + session, + TaskTagAssignment, + col(TaskTagAssignment.task_id) == task.id, + commit=False, + ) await session.delete(task) await session.commit() return OkResponse() @@ -1119,6 +1160,8 @@ class _TaskUpdateInput: updates: dict[str, object] comment: str | None depends_on_task_ids: list[UUID] | None + tag_ids: list[UUID] | None + normalized_tag_ids: list[UUID] | None = None def _required_status_value(value: object) -> str: @@ -1133,6 +1176,21 @@ def _optional_assigned_agent_id(value: object) -> UUID | None: raise HTTPException(status_code=status.HTTP_422_UNPROCESSABLE_ENTITY) +async def _board_organization_id( + session: AsyncSession, + *, + board_id: UUID, +) -> UUID: + organization_id = ( + await session.exec( + select(Board.organization_id).where(col(Board.id) == board_id), + ) + ).first() + if organization_id is None: + raise HTTPException(status_code=status.HTTP_404_NOT_FOUND) + return organization_id + + async def _task_dep_ids( session: AsyncSession, *, @@ -1173,6 +1231,10 @@ async def _task_read_response( board_id: UUID, ) -> TaskRead: dep_ids = await _task_dep_ids(session, board_id=board_id, task_id=task.id) + tag_state = (await load_task_tag_state(session, task_ids=[task.id])).get( + task.id, + TaskTagState(), + ) blocked_ids = await _task_blocked_ids( session, board_id=board_id, @@ -1183,6 +1245,8 @@ async def _task_read_response( return TaskRead.model_validate(task, from_attributes=True).model_copy( update={ "depends_on_task_ids": dep_ids, + "tag_ids": tag_state.tag_ids, + "tags": tag_state.tags, "blocked_by_task_ids": blocked_ids, "is_blocked": bool(blocked_ids), }, @@ -1209,11 +1273,13 @@ def _lead_requested_fields(update: _TaskUpdateInput) -> set[str]: requested_fields.add("comment") if update.depends_on_task_ids is not None: requested_fields.add("depends_on_task_ids") + if update.tag_ids is not None: + requested_fields.add("tag_ids") return requested_fields def _validate_lead_update_request(update: _TaskUpdateInput) -> None: - allowed_fields = {"assigned_agent_id", "status", "depends_on_task_ids"} + allowed_fields = {"assigned_agent_id", "status", "depends_on_task_ids", "tag_ids"} requested_fields = _lead_requested_fields(update) if update.comment is not None or not requested_fields.issubset(allowed_fields): raise HTTPException( @@ -1260,6 +1326,24 @@ async def _lead_effective_dependencies( return effective_deps, blocked_by +async def _normalized_update_tag_ids( + session: AsyncSession, + *, + update: _TaskUpdateInput, +) -> list[UUID] | None: + if update.tag_ids is None: + return None + organization_id = await _board_organization_id( + session, + board_id=update.board_id, + ) + return await validate_task_tag_ids( + session, + organization_id=organization_id, + tag_ids=update.tag_ids, + ) + + async def _lead_apply_assignment( session: AsyncSession, *, @@ -1351,6 +1435,10 @@ async def _apply_lead_task_update( session, update=update, ) + normalized_tag_ids = await _normalized_update_tag_ids( + session, + update=update, + ) if blocked_by and update.task.status != "done": update.task.status = "inbox" @@ -1360,6 +1448,13 @@ async def _apply_lead_task_update( await _lead_apply_assignment(session, update=update) _lead_apply_status(update) + if normalized_tag_ids is not None: + await replace_task_tags( + session, + task_id=update.task.id, + tag_ids=normalized_tag_ids, + ) + update.task.updated_at = utcnow() session.add(update.task) event_type, message = _task_event_details(update.task, update.previous_status) @@ -1402,8 +1497,12 @@ async def _apply_non_lead_agent_task_rules( ): raise HTTPException(status_code=status.HTTP_403_FORBIDDEN) allowed_fields = {"status", "comment"} - if update.depends_on_task_ids is not None or not set(update.updates).issubset( - allowed_fields, + if ( + update.depends_on_task_ids is not None + or update.tag_ids is not None + or not set(update.updates).issubset( + allowed_fields, + ) ): raise HTTPException(status_code=status.HTTP_403_FORBIDDEN) if "status" in update.updates: @@ -1436,6 +1535,10 @@ async def _apply_admin_task_rules( update: _TaskUpdateInput, ) -> None: admin_normalized_deps: list[UUID] | None = None + update.normalized_tag_ids = await _normalized_update_tag_ids( + session, + update=update, + ) if update.depends_on_task_ids is not None: if update.task.status == "done": raise HTTPException( @@ -1611,6 +1714,21 @@ async def _finalize_updated_task( ): raise _comment_validation_error() + if update.tag_ids is not None: + normalized = ( + update.normalized_tag_ids + if update.normalized_tag_ids is not None + else await _normalized_update_tag_ids( + session, + update=update, + ) + ) + await replace_task_tags( + session, + task_id=update.task.id, + tag_ids=normalized or [], + ) + session.add(update.task) await session.commit() await session.refresh(update.task) diff --git a/backend/app/main.py b/backend/app/main.py index ebe0bba6..6a29ed60 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -24,6 +24,7 @@ from app.api.gateways import router as gateways_router from app.api.metrics import router as metrics_router from app.api.organizations import router as organizations_router from app.api.souls_directory import router as souls_directory_router +from app.api.task_tags import router as task_tags_router from app.api.tasks import router as tasks_router from app.api.users import router as users_router from app.core.config import settings @@ -107,6 +108,7 @@ api_v1.include_router(board_memory_router) api_v1.include_router(board_onboarding_router) api_v1.include_router(approvals_router) api_v1.include_router(tasks_router) +api_v1.include_router(task_tags_router) api_v1.include_router(users_router) app.include_router(api_v1) diff --git a/backend/app/models/__init__.py b/backend/app/models/__init__.py index c697c186..44afe36d 100644 --- a/backend/app/models/__init__.py +++ b/backend/app/models/__init__.py @@ -17,6 +17,8 @@ from app.models.organization_members import OrganizationMember from app.models.organizations import Organization from app.models.task_dependencies import TaskDependency from app.models.task_fingerprints import TaskFingerprint +from app.models.task_tag_assignments import TaskTagAssignment +from app.models.task_tags import TaskTag from app.models.tasks import Task from app.models.users import User @@ -39,5 +41,7 @@ __all__ = [ "TaskDependency", "Task", "TaskFingerprint", + "TaskTag", + "TaskTagAssignment", "User", ] diff --git a/backend/app/models/task_tag_assignments.py b/backend/app/models/task_tag_assignments.py new file mode 100644 index 00000000..70b38d06 --- /dev/null +++ b/backend/app/models/task_tag_assignments.py @@ -0,0 +1,32 @@ +"""Task/tag many-to-many link rows.""" + +from __future__ import annotations + +from datetime import datetime +from uuid import UUID, uuid4 + +from sqlalchemy import UniqueConstraint +from sqlmodel import Field + +from app.core.time import utcnow +from app.models.base import QueryModel + +RUNTIME_ANNOTATION_TYPES = (datetime,) + + +class TaskTagAssignment(QueryModel, table=True): + """Association row mapping one task to one tag.""" + + __tablename__ = "task_tag_assignments" # pyright: ignore[reportAssignmentType] + __table_args__ = ( + UniqueConstraint( + "task_id", + "tag_id", + name="uq_task_tag_assignments_task_id_tag_id", + ), + ) + + id: UUID = Field(default_factory=uuid4, primary_key=True) + task_id: UUID = Field(foreign_key="tasks.id", index=True) + tag_id: UUID = Field(foreign_key="task_tags.id", index=True) + created_at: datetime = Field(default_factory=utcnow) diff --git a/backend/app/models/task_tags.py b/backend/app/models/task_tags.py new file mode 100644 index 00000000..b024580f --- /dev/null +++ b/backend/app/models/task_tags.py @@ -0,0 +1,36 @@ +"""Task tag model for organization-scoped task categorization.""" + +from __future__ import annotations + +from datetime import datetime +from uuid import UUID, uuid4 + +from sqlalchemy import UniqueConstraint +from sqlmodel import Field + +from app.core.time import utcnow +from app.models.tenancy import TenantScoped + +RUNTIME_ANNOTATION_TYPES = (datetime,) + + +class TaskTag(TenantScoped, table=True): + """Organization-scoped task tag used to classify and group tasks.""" + + __tablename__ = "task_tags" # pyright: ignore[reportAssignmentType] + __table_args__ = ( + UniqueConstraint( + "organization_id", + "slug", + name="uq_task_tags_organization_id_slug", + ), + ) + + id: UUID = Field(default_factory=uuid4, primary_key=True) + organization_id: UUID = Field(foreign_key="organizations.id", index=True) + name: str + slug: str = Field(index=True) + color: str = Field(default="9e9e9e") + description: str | None = None + created_at: datetime = Field(default_factory=utcnow) + updated_at: datetime = Field(default_factory=utcnow) diff --git a/backend/app/schemas/__init__.py b/backend/app/schemas/__init__.py index e4fa060d..703e4a8e 100644 --- a/backend/app/schemas/__init__.py +++ b/backend/app/schemas/__init__.py @@ -31,6 +31,7 @@ from app.schemas.souls_directory import ( SoulsDirectorySearchResponse, SoulsDirectorySoulRef, ) +from app.schemas.task_tags import TaskTagCreate, TaskTagRead, TaskTagRef, TaskTagUpdate from app.schemas.tasks import TaskCreate, TaskRead, TaskUpdate from app.schemas.users import UserCreate, UserRead, UserUpdate @@ -70,6 +71,10 @@ __all__ = [ "SoulsDirectoryMarkdownResponse", "SoulsDirectorySearchResponse", "SoulsDirectorySoulRef", + "TaskTagCreate", + "TaskTagRead", + "TaskTagRef", + "TaskTagUpdate", "TaskCreate", "TaskRead", "TaskUpdate", diff --git a/backend/app/schemas/task_tags.py b/backend/app/schemas/task_tags.py new file mode 100644 index 00000000..5c5bc859 --- /dev/null +++ b/backend/app/schemas/task_tags.py @@ -0,0 +1,126 @@ +"""Schemas for task-tag CRUD payloads.""" + +from __future__ import annotations + +import re +from datetime import datetime +from typing import Self +from uuid import UUID + +from pydantic import field_validator, model_validator +from sqlmodel import SQLModel + +from app.schemas.common import NonEmptyStr + +HEX_COLOR_RE = re.compile(r"^[0-9a-f]{6}$") +RUNTIME_ANNOTATION_TYPES = (datetime, UUID, NonEmptyStr) + + +def _normalize_color(value: str | None) -> str | None: + if value is None: + return None + cleaned = value.strip().lower().lstrip("#") + if not cleaned: + return None + if not HEX_COLOR_RE.fullmatch(cleaned): + raise ValueError("color must be a 6-digit hex value") + return cleaned + + +class TaskTagBase(SQLModel): + """Shared task-tag fields for create/read payloads.""" + + name: str + slug: str + color: str = "9e9e9e" + description: str | None = None + + +class TaskTagRef(SQLModel): + """Compact task-tag representation embedded in task payloads.""" + + id: UUID + name: str + slug: str + color: str + + +class TaskTagCreate(SQLModel): + """Payload for creating a task tag.""" + + name: NonEmptyStr + slug: str | None = None + color: str = "9e9e9e" + description: str | None = None + + @field_validator("slug", mode="before") + @classmethod + def normalize_slug(cls, value: object) -> object | None: + """Treat empty slug strings as unset so API can auto-generate.""" + if value is None: + return None + if isinstance(value, str): + cleaned = value.strip() + return cleaned or None + return value + + @field_validator("color", mode="before") + @classmethod + def normalize_color(cls, value: object) -> object: + """Normalize color to lowercase hex without a leading hash.""" + if isinstance(value, str): + normalized = _normalize_color(value) + if normalized is None: + raise ValueError("color is required") + return normalized + return value + + +class TaskTagUpdate(SQLModel): + """Payload for partial task-tag updates.""" + + name: NonEmptyStr | None = None + slug: str | None = None + color: str | None = None + description: str | None = None + + @field_validator("slug", mode="before") + @classmethod + def normalize_slug(cls, value: object) -> object | None: + """Treat empty slug strings as unset so API can auto-generate.""" + if value is None: + return None + if isinstance(value, str): + cleaned = value.strip() + return cleaned or None + return value + + @field_validator("color", mode="before") + @classmethod + def normalize_color(cls, value: object) -> object | None: + """Normalize color to lowercase hex without a leading hash.""" + if value is None: + return None + if isinstance(value, str): + normalized = _normalize_color(value) + if normalized is None: + raise ValueError("color must be a 6-digit hex value") + return normalized + return value + + @model_validator(mode="after") + def require_some_update(self) -> Self: + """Reject empty update payloads to avoid no-op patch calls.""" + if not self.model_fields_set: + raise ValueError("At least one field is required") + return self + + +class TaskTagRead(TaskTagBase): + """Task-tag payload returned from API endpoints.""" + + id: UUID + organization_id: UUID + task_count: int = 0 + created_at: datetime + updated_at: datetime diff --git a/backend/app/schemas/tasks.py b/backend/app/schemas/tasks.py index 6ae534d5..cd316d79 100644 --- a/backend/app/schemas/tasks.py +++ b/backend/app/schemas/tasks.py @@ -10,12 +10,13 @@ from pydantic import field_validator, model_validator from sqlmodel import Field, SQLModel from app.schemas.common import NonEmptyStr +from app.schemas.task_tags import TaskTagRef TaskStatus = Literal["inbox", "in_progress", "review", "done"] STATUS_REQUIRED_ERROR = "status is required" # Keep these symbols as runtime globals so Pydantic can resolve # deferred annotations reliably. -RUNTIME_ANNOTATION_TYPES = (datetime, UUID, NonEmptyStr) +RUNTIME_ANNOTATION_TYPES = (datetime, UUID, NonEmptyStr, TaskTagRef) class TaskBase(SQLModel): @@ -28,6 +29,7 @@ class TaskBase(SQLModel): due_at: datetime | None = None assigned_agent_id: UUID | None = None depends_on_task_ids: list[UUID] = Field(default_factory=list) + tag_ids: list[UUID] = Field(default_factory=list) class TaskCreate(TaskBase): @@ -46,6 +48,7 @@ class TaskUpdate(SQLModel): due_at: datetime | None = None assigned_agent_id: UUID | None = None depends_on_task_ids: list[UUID] | None = None + tag_ids: list[UUID] | None = None comment: NonEmptyStr | None = None @field_validator("comment", mode="before") @@ -77,6 +80,7 @@ class TaskRead(TaskBase): updated_at: datetime blocked_by_task_ids: list[UUID] = Field(default_factory=list) is_blocked: bool = False + tags: list[TaskTagRef] = Field(default_factory=list) class TaskCommentCreate(SQLModel): diff --git a/backend/app/schemas/view_models.py b/backend/app/schemas/view_models.py index 4c14faf0..7a96b152 100644 --- a/backend/app/schemas/view_models.py +++ b/backend/app/schemas/view_models.py @@ -12,6 +12,7 @@ from app.schemas.approvals import ApprovalRead from app.schemas.board_groups import BoardGroupRead from app.schemas.board_memory import BoardMemoryRead from app.schemas.boards import BoardRead +from app.schemas.task_tags import TaskTagRef from app.schemas.tasks import TaskRead RUNTIME_ANNOTATION_TYPES = ( @@ -22,6 +23,7 @@ RUNTIME_ANNOTATION_TYPES = ( BoardGroupRead, BoardMemoryRead, BoardRead, + TaskTagRef, ) @@ -57,6 +59,7 @@ class BoardGroupTaskSummary(SQLModel): assignee: str | None = None due_at: datetime | None = None in_progress_at: datetime | None = None + tags: list[TaskTagRef] = Field(default_factory=list) created_at: datetime updated_at: datetime diff --git a/backend/app/services/board_group_snapshot.py b/backend/app/services/board_group_snapshot.py index 59d4cb2c..7f591bbb 100644 --- a/backend/app/services/board_group_snapshot.py +++ b/backend/app/services/board_group_snapshot.py @@ -21,6 +21,7 @@ from app.schemas.view_models import ( BoardGroupSnapshot, BoardGroupTaskSummary, ) +from app.services.task_tags import TaskTagState, load_task_tag_state if TYPE_CHECKING: from sqlalchemy.sql.elements import ColumnElement @@ -122,6 +123,7 @@ def _task_summaries_by_board( boards_by_id: dict[UUID, Board], tasks: list[Task], agent_name_by_id: dict[UUID, str], + tag_state_by_task_id: dict[UUID, TaskTagState], per_board_task_limit: int, ) -> dict[UUID, list[BoardGroupTaskSummary]]: """Build limited per-board task summary lists.""" @@ -138,6 +140,7 @@ def _task_summaries_by_board( if board is None: continue current.append( + # Include tags so cross-board snapshots can be grouped quickly in the UI. BoardGroupTaskSummary( id=task.id, board_id=task.board_id, @@ -153,6 +156,7 @@ def _task_summaries_by_board( ), due_at=task.due_at, in_progress_at=task.in_progress_at, + tags=tag_state_by_task_id.get(task.id, TaskTagState()).tags, created_at=task.created_at, updated_at=task.updated_at, ), @@ -187,10 +191,15 @@ async def build_group_snapshot( include_done=include_done, ) agent_name_by_id = await _agent_names(session, tasks) + tag_state_by_task_id = await load_task_tag_state( + session, + task_ids=[task.id for task in tasks], + ) tasks_by_board = _task_summaries_by_board( boards_by_id=boards_by_id, tasks=tasks, agent_name_by_id=agent_name_by_id, + tag_state_by_task_id=tag_state_by_task_id, per_board_task_limit=per_board_task_limit, ) snapshots = [ diff --git a/backend/app/services/board_snapshot.py b/backend/app/services/board_snapshot.py index e235d5c0..52818a19 100644 --- a/backend/app/services/board_snapshot.py +++ b/backend/app/services/board_snapshot.py @@ -22,6 +22,7 @@ from app.services.task_dependencies import ( dependency_ids_by_task_id, dependency_status_by_id, ) +from app.services.task_tags import TaskTagState, load_task_tag_state if TYPE_CHECKING: from uuid import UUID @@ -48,11 +49,13 @@ def _task_to_card( counts_by_task_id: dict[UUID, tuple[int, int]], deps_by_task_id: dict[UUID, list[UUID]], dependency_status_by_id_map: dict[UUID, str], + tag_state_by_task_id: dict[UUID, TaskTagState], ) -> TaskCardRead: card = TaskCardRead.model_validate(task, from_attributes=True) approvals_count, approvals_pending_count = counts_by_task_id.get(task.id, (0, 0)) assignee = agent_name_by_id.get(task.assigned_agent_id) if task.assigned_agent_id else None depends_on_task_ids = deps_by_task_id.get(task.id, []) + tag_state = tag_state_by_task_id.get(task.id, TaskTagState()) blocked_by_task_ids = blocked_by_dependency_ids( dependency_ids=depends_on_task_ids, status_by_id=dependency_status_by_id_map, @@ -65,6 +68,8 @@ def _task_to_card( "approvals_count": approvals_count, "approvals_pending_count": approvals_pending_count, "depends_on_task_ids": depends_on_task_ids, + "tag_ids": tag_state.tag_ids, + "tags": tag_state.tags, "blocked_by_task_ids": blocked_by_task_ids, "is_blocked": bool(blocked_by_task_ids), }, @@ -81,6 +86,10 @@ async def build_board_snapshot(session: AsyncSession, board: Board) -> BoardSnap .all(session), ) task_ids = [task.id for task in tasks] + tag_state_by_task_id = await load_task_tag_state( + session, + task_ids=task_ids, + ) deps_by_task_id = await dependency_ids_by_task_id( session, @@ -148,6 +157,7 @@ async def build_board_snapshot(session: AsyncSession, board: Board) -> BoardSnap counts_by_task_id=counts_by_task_id, deps_by_task_id=deps_by_task_id, dependency_status_by_id_map=dependency_status_by_id_map, + tag_state_by_task_id=tag_state_by_task_id, ) for task in tasks ] diff --git a/backend/app/services/task_tags.py b/backend/app/services/task_tags.py new file mode 100644 index 00000000..18f9a700 --- /dev/null +++ b/backend/app/services/task_tags.py @@ -0,0 +1,158 @@ +"""Helpers for validating and loading task tags and task-tag mappings.""" + +from __future__ import annotations + +import re +from collections import defaultdict +from collections.abc import Sequence +from dataclasses import dataclass, field +from typing import TYPE_CHECKING +from uuid import UUID + +from fastapi import HTTPException, status +from sqlalchemy import delete, func +from sqlmodel import col, select + +from app.models.task_tag_assignments import TaskTagAssignment +from app.models.task_tags import TaskTag +from app.schemas.task_tags import TaskTagRef + +if TYPE_CHECKING: + from sqlmodel.ext.asyncio.session import AsyncSession + +SLUG_RE = re.compile(r"[^a-z0-9]+") + + +def slugify_task_tag(value: str) -> str: + """Build a slug from arbitrary text using lowercase alphanumeric groups.""" + slug = SLUG_RE.sub("-", value.lower()).strip("-") + return slug or "tag" + + +def _dedupe_uuid_list(values: Sequence[UUID]) -> list[UUID]: + deduped: list[UUID] = [] + seen: set[UUID] = set() + for value in values: + if value in seen: + continue + seen.add(value) + deduped.append(value) + return deduped + + +async def validate_task_tag_ids( + session: AsyncSession, + *, + organization_id: UUID, + tag_ids: Sequence[UUID], +) -> list[UUID]: + """Validate task-tag IDs within an organization and return deduped IDs.""" + normalized = _dedupe_uuid_list(tag_ids) + if not normalized: + return [] + + existing_ids = set( + await session.exec( + select(TaskTag.id) + .where(col(TaskTag.organization_id) == organization_id) + .where(col(TaskTag.id).in_(normalized)), + ), + ) + missing = [tag_id for tag_id in normalized if tag_id not in existing_ids] + if missing: + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, + detail={ + "message": "One or more task tags do not exist in this organization.", + "missing_tag_ids": [str(tag_id) for tag_id in missing], + }, + ) + return normalized + + +@dataclass(slots=True) +class TaskTagState: + """Ordered task-tag state for a task payload.""" + + tag_ids: list[UUID] = field(default_factory=list) + tags: list[TaskTagRef] = field(default_factory=list) + + +async def load_task_tag_state( + session: AsyncSession, + *, + task_ids: Sequence[UUID], +) -> dict[UUID, TaskTagState]: + """Return ordered tag IDs and refs for each task id.""" + normalized_task_ids = _dedupe_uuid_list(task_ids) + if not normalized_task_ids: + return {} + + rows = list( + await session.exec( + select( + col(TaskTagAssignment.task_id), + TaskTag, + ) + .join(TaskTag, col(TaskTag.id) == col(TaskTagAssignment.tag_id)) + .where(col(TaskTagAssignment.task_id).in_(normalized_task_ids)) + .order_by( + col(TaskTagAssignment.task_id).asc(), + col(TaskTagAssignment.created_at).asc(), + ), + ), + ) + state_by_task_id: dict[UUID, TaskTagState] = defaultdict(TaskTagState) + for task_id, tag in rows: + if task_id is None: + continue + state = state_by_task_id[task_id] + state.tag_ids.append(tag.id) + state.tags.append( + TaskTagRef( + id=tag.id, + name=tag.name, + slug=tag.slug, + color=tag.color, + ), + ) + return dict(state_by_task_id) + + +async def replace_task_tags( + session: AsyncSession, + *, + task_id: UUID, + tag_ids: Sequence[UUID], +) -> None: + """Replace all tag-assignment rows for a task.""" + normalized = _dedupe_uuid_list(tag_ids) + await session.exec( + delete(TaskTagAssignment).where( + col(TaskTagAssignment.task_id) == task_id, + ), + ) + for tag_id in normalized: + session.add(TaskTagAssignment(task_id=task_id, tag_id=tag_id)) + + +async def task_counts_for_tags( + session: AsyncSession, + *, + tag_ids: Sequence[UUID], +) -> dict[UUID, int]: + """Return count of tagged tasks per tag id.""" + normalized = _dedupe_uuid_list(tag_ids) + if not normalized: + return {} + rows = list( + await session.exec( + select( + col(TaskTagAssignment.tag_id), + func.count(col(TaskTagAssignment.task_id)), + ) + .where(col(TaskTagAssignment.tag_id).in_(normalized)) + .group_by(col(TaskTagAssignment.tag_id)), + ), + ) + return {tag_id: int(count or 0) for tag_id, count in rows} diff --git a/backend/migrations/versions/d8c1e5a4f7b2_add_task_tags_and_assignments.py b/backend/migrations/versions/d8c1e5a4f7b2_add_task_tags_and_assignments.py new file mode 100644 index 00000000..d78a964d --- /dev/null +++ b/backend/migrations/versions/d8c1e5a4f7b2_add_task_tags_and_assignments.py @@ -0,0 +1,101 @@ +"""add task tags and task-tag assignments + +Revision ID: d8c1e5a4f7b2 +Revises: 99cd6df95f85, b4338be78eec +Create Date: 2026-02-12 16:05:00.000000 + +""" + +from __future__ import annotations + +import sqlalchemy as sa +from alembic import op + +# revision identifiers, used by Alembic. +revision = "d8c1e5a4f7b2" +down_revision = ("99cd6df95f85", "b4338be78eec") +branch_labels = None +depends_on = None + + +def upgrade() -> None: + bind = op.get_bind() + inspector = sa.inspect(bind) + + if not inspector.has_table("tags"): + op.create_table( + "tags", + sa.Column("id", sa.Uuid(), nullable=False), + sa.Column("organization_id", sa.Uuid(), nullable=False), + sa.Column("name", sa.String(), nullable=False), + sa.Column("slug", sa.String(), nullable=False), + sa.Column("color", sa.String(), nullable=False), + sa.Column("description", sa.String(), nullable=True), + sa.Column("created_at", sa.DateTime(), nullable=False), + sa.Column("updated_at", sa.DateTime(), nullable=False), + sa.ForeignKeyConstraint(["organization_id"], ["organizations.id"]), + sa.PrimaryKeyConstraint("id"), + sa.UniqueConstraint( + "organization_id", + "slug", + name="uq_task_tags_organization_id_slug", + ), + ) + task_tag_indexes = {item.get("name") for item in inspector.get_indexes("tags")} + if op.f("ix_task_tags_organization_id") not in task_tag_indexes: + op.create_index( + op.f("ix_task_tags_organization_id"), + "tags", + ["organization_id"], + unique=False, + ) + if op.f("ix_task_tags_slug") not in task_tag_indexes: + op.create_index( + op.f("ix_task_tags_slug"), + "tags", + ["slug"], + unique=False, + ) + + if not inspector.has_table("task_tag_assignments"): + op.create_table( + "task_tag_assignments", + sa.Column("id", sa.Uuid(), nullable=False), + sa.Column("task_id", sa.Uuid(), nullable=False), + sa.Column("tag_id", sa.Uuid(), nullable=False), + sa.Column("created_at", sa.DateTime(), nullable=False), + sa.ForeignKeyConstraint(["tag_id"], ["tags.id"]), + sa.ForeignKeyConstraint(["task_id"], ["tasks.id"]), + sa.PrimaryKeyConstraint("id"), + sa.UniqueConstraint( + "task_id", + "tag_id", + name="uq_task_tag_assignments_task_id_tag_id", + ), + ) + assignment_indexes = { + item.get("name") for item in inspector.get_indexes("task_tag_assignments") + } + if op.f("ix_task_tag_assignments_task_id") not in assignment_indexes: + op.create_index( + op.f("ix_task_tag_assignments_task_id"), + "task_tag_assignments", + ["task_id"], + unique=False, + ) + if op.f("ix_task_tag_assignments_tag_id") not in assignment_indexes: + op.create_index( + op.f("ix_task_tag_assignments_tag_id"), + "task_tag_assignments", + ["tag_id"], + unique=False, + ) + + +def downgrade() -> None: + op.drop_index(op.f("ix_task_tag_assignments_tag_id"), table_name="task_tag_assignments") + op.drop_index(op.f("ix_task_tag_assignments_task_id"), table_name="task_tag_assignments") + op.drop_table("task_tag_assignments") + op.drop_index(op.f("ix_task_tags_slug"), table_name="tags") + op.drop_index(op.f("ix_task_tags_organization_id"), table_name="tags") + op.drop_table("tags") diff --git a/backend/templates/HEARTBEAT_LEAD.md b/backend/templates/HEARTBEAT_LEAD.md index 6e14b165..3b238d71 100644 --- a/backend/templates/HEARTBEAT_LEAD.md +++ b/backend/templates/HEARTBEAT_LEAD.md @@ -146,6 +146,7 @@ run a short intake with the human in **board chat**. 2) Review recent tasks/comments and board memory: - GET $BASE_URL/api/v1/agent/boards/$BOARD_ID/tasks?limit=50 + - GET $BASE_URL/api/v1/agent/boards/$BOARD_ID/tags - GET $BASE_URL/api/v1/agent/boards/$BOARD_ID/memory?limit=50 - GET $BASE_URL/api/v1/agent/agents?board_id=$BOARD_ID - For any task in **review**, fetch its comments: @@ -274,9 +275,13 @@ Body: {"depends_on_task_ids":["DEP_TASK_ID_1","DEP_TASK_ID_2"]} 7) Creating new tasks: - Before creating any task or approval, run the de-duplication pass (step 2a). If a similar task already exists, merge/split scope there instead of creating a duplicate. - Leads **can** create tasks directly when confidence >= 70 and the action is not risky/external. +- If task tags are configured (`GET /api/v1/agent/boards/$BOARD_ID/tags` returns items), choose the most relevant tags and include their ids in `tag_ids`. + - Build and keep a local map: `slug/name -> tag_id`. + - Prefer 1-3 tags per task; avoid over-tagging. + - If no existing tag fits, set `tag_ids: []` and leave a short note in your plan/comment so admins can add a missing tag later. POST $BASE_URL/api/v1/agent/boards/$BOARD_ID/tasks Body example: - {"title":"...","description":"...","priority":"high","status":"inbox","assigned_agent_id":null,"depends_on_task_ids":["DEP_TASK_ID"]} + {"title":"...","description":"...","priority":"high","status":"inbox","assigned_agent_id":null,"depends_on_task_ids":["DEP_TASK_ID"],"tag_ids":["TAG_ID_1","TAG_ID_2"]} - Task descriptions must be written in clear markdown (short sections, bullets/checklists when helpful). - If the task depends on other tasks, always set `depends_on_task_ids`. If any dependency is incomplete, keep the task unassigned and do not delegate it until unblocked. - If confidence < 70 or the action is risky/external, request approval instead: diff --git a/backend/tests/test_agent_task_tags_api.py b/backend/tests/test_agent_task_tags_api.py new file mode 100644 index 00000000..60537a48 --- /dev/null +++ b/backend/tests/test_agent_task_tags_api.py @@ -0,0 +1,99 @@ +from __future__ import annotations + +from dataclasses import dataclass +from uuid import UUID, uuid4 + +import pytest +from fastapi import HTTPException + +from app.api import agent as agent_api +from app.core.agent_auth import AgentAuthContext +from app.models.agents import Agent +from app.models.boards import Board +from app.models.task_tags import TaskTag + + +@dataclass +class _FakeExecResult: + tags: list[TaskTag] + + def all(self) -> list[TaskTag]: + return self.tags + + +@dataclass +class _FakeSession: + tags: list[TaskTag] + + async def exec(self, _query: object) -> _FakeExecResult: + return _FakeExecResult(self.tags) + + +def _board() -> Board: + return Board( + id=uuid4(), + organization_id=uuid4(), + name="Delivery", + slug="delivery", + ) + + +def _agent_ctx(*, board_id: UUID | None) -> AgentAuthContext: + return AgentAuthContext( + actor_type="agent", + agent=Agent( + id=uuid4(), + board_id=board_id, + gateway_id=uuid4(), + name="Lead", + is_board_lead=True, + ), + ) + + +@pytest.mark.asyncio +async def test_list_task_tags_returns_task_tag_refs() -> None: + board = _board() + session = _FakeSession( + tags=[ + TaskTag( + id=uuid4(), + organization_id=board.organization_id, + name="Backend", + slug="backend", + color="0f172a", + ), + TaskTag( + id=uuid4(), + organization_id=board.organization_id, + name="Urgent", + slug="urgent", + color="dc2626", + ), + ], + ) + + response = await agent_api.list_task_tags( + board=board, + session=session, # type: ignore[arg-type] + agent_ctx=_agent_ctx(board_id=board.id), + ) + + assert [tag.slug for tag in response] == ["backend", "urgent"] + assert response[0].name == "Backend" + assert response[1].color == "dc2626" + + +@pytest.mark.asyncio +async def test_list_task_tags_rejects_cross_board_agent() -> None: + board = _board() + session = _FakeSession(tags=[]) + + with pytest.raises(HTTPException) as exc: + await agent_api.list_task_tags( + board=board, + session=session, # type: ignore[arg-type] + agent_ctx=_agent_ctx(board_id=uuid4()), + ) + + assert exc.value.status_code == 403 diff --git a/backend/tests/test_task_tags_service.py b/backend/tests/test_task_tags_service.py new file mode 100644 index 00000000..60c61ca3 --- /dev/null +++ b/backend/tests/test_task_tags_service.py @@ -0,0 +1,128 @@ +# ruff: noqa + +from __future__ import annotations + +from dataclasses import dataclass, field +from uuid import uuid4 + +import pytest + +from app.models.task_tags import TaskTag +from app.services import task_tags + + +@dataclass +class _FakeSession: + exec_results: list[object] + executed: list[object] = field(default_factory=list) + added: list[object] = field(default_factory=list) + + async def exec(self, query): + self.executed.append(query) + if not self.exec_results: + raise AssertionError("No more exec_results left for session.exec") + return self.exec_results.pop(0) + + def add(self, value): + self.added.append(value) + + +def test_slugify_task_tag_normalizes_text(): + assert task_tags.slugify_task_tag("Release / QA") == "release-qa" + assert task_tags.slugify_task_tag(" ### ") == "tag" + + +@pytest.mark.asyncio +async def test_validate_task_tag_ids_dedupes_and_preserves_order(): + org_id = uuid4() + tag_a = uuid4() + tag_b = uuid4() + session = _FakeSession(exec_results=[{tag_a, tag_b}]) + result = await task_tags.validate_task_tag_ids( + session, + organization_id=org_id, + tag_ids=[tag_a, tag_b, tag_a], + ) + assert result == [tag_a, tag_b] + + +@pytest.mark.asyncio +async def test_validate_task_tag_ids_rejects_missing_tags(): + org_id = uuid4() + tag_a = uuid4() + missing = uuid4() + session = _FakeSession(exec_results=[{tag_a}]) + with pytest.raises(task_tags.HTTPException) as exc: + await task_tags.validate_task_tag_ids( + session, + organization_id=org_id, + tag_ids=[tag_a, missing], + ) + assert exc.value.status_code == 404 + assert exc.value.detail["missing_tag_ids"] == [str(missing)] + + +@pytest.mark.asyncio +async def test_load_task_tag_state_groups_rows_by_task_id(): + task_a = uuid4() + task_b = uuid4() + tag_a = uuid4() + tag_b = uuid4() + session = _FakeSession( + exec_results=[ + [ + ( + task_a, + TaskTag( + id=tag_a, + organization_id=uuid4(), + name="Backend", + slug="backend", + color="0f172a", + ), + ), + ( + task_a, + TaskTag( + id=tag_b, + organization_id=uuid4(), + name="Urgent", + slug="urgent", + color="dc2626", + ), + ), + ( + task_b, + TaskTag( + id=tag_b, + organization_id=uuid4(), + name="Urgent", + slug="urgent", + color="dc2626", + ), + ), + ], + ], + ) + state = await task_tags.load_task_tag_state( + session, + task_ids=[task_a, task_b], + ) + assert state[task_a].tag_ids == [tag_a, tag_b] + assert [tag.name for tag in state[task_a].tags] == ["Backend", "Urgent"] + assert state[task_b].tag_ids == [tag_b] + + +@pytest.mark.asyncio +async def test_replace_task_tags_replaces_existing_links(): + task_id = uuid4() + tag_a = uuid4() + tag_b = uuid4() + session = _FakeSession(exec_results=[None]) + await task_tags.replace_task_tags( + session, + task_id=task_id, + tag_ids=[tag_a, tag_b, tag_a], + ) + assert len(session.executed) == 1 + assert len(session.added) == 2 diff --git a/backend/tests/test_tasks_api_rows.py b/backend/tests/test_tasks_api_rows.py index 2b5d6ab6..54710af6 100644 --- a/backend/tests/test_tasks_api_rows.py +++ b/backend/tests/test_tasks_api_rows.py @@ -67,6 +67,7 @@ def test_task_event_payload_includes_activity_for_comment_event() -> None: task, deps_map={}, dep_status={}, + tag_state_by_task_id={}, ) assert payload["type"] == "task.comment" @@ -98,6 +99,7 @@ def test_task_event_payload_includes_activity_for_non_comment_event() -> None: task, deps_map={}, dep_status={}, + tag_state_by_task_id={}, ) assert payload["type"] == "task.updated" diff --git a/frontend/src/api/generated/activity/activity.ts b/frontend/src/api/generated/activity/activity.ts index f788e7ea..424b6091 100644 --- a/frontend/src/api/generated/activity/activity.ts +++ b/frontend/src/api/generated/activity/activity.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/agent/agent.ts b/frontend/src/api/generated/agent/agent.ts index b9bc95c5..b5f63d56 100644 --- a/frontend/src/api/generated/agent/agent.ts +++ b/frontend/src/api/generated/agent/agent.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -58,6 +58,7 @@ import type { TaskCommentRead, TaskCreate, TaskRead, + TaskTagRef, TaskUpdate, } from ".././model"; @@ -65,6 +66,335 @@ import { customFetch } from "../../mutator"; type SecondParameter unknown> = Parameters[1]; +/** + * List agents, optionally filtered to a board. + * @summary List Agents + */ +export type listAgentsApiV1AgentAgentsGetResponse200 = { + data: LimitOffsetPageTypeVarCustomizedAgentRead; + status: 200; +}; + +export type listAgentsApiV1AgentAgentsGetResponse422 = { + data: HTTPValidationError; + status: 422; +}; + +export type listAgentsApiV1AgentAgentsGetResponseSuccess = + listAgentsApiV1AgentAgentsGetResponse200 & { + headers: Headers; + }; +export type listAgentsApiV1AgentAgentsGetResponseError = + listAgentsApiV1AgentAgentsGetResponse422 & { + headers: Headers; + }; + +export type listAgentsApiV1AgentAgentsGetResponse = + | listAgentsApiV1AgentAgentsGetResponseSuccess + | listAgentsApiV1AgentAgentsGetResponseError; + +export const getListAgentsApiV1AgentAgentsGetUrl = ( + params?: ListAgentsApiV1AgentAgentsGetParams, +) => { + const normalizedParams = new URLSearchParams(); + + Object.entries(params || {}).forEach(([key, value]) => { + if (value !== undefined) { + normalizedParams.append(key, value === null ? "null" : value.toString()); + } + }); + + const stringifiedParams = normalizedParams.toString(); + + return stringifiedParams.length > 0 + ? `/api/v1/agent/agents?${stringifiedParams}` + : `/api/v1/agent/agents`; +}; + +export const listAgentsApiV1AgentAgentsGet = async ( + params?: ListAgentsApiV1AgentAgentsGetParams, + options?: RequestInit, +): Promise => { + return customFetch( + getListAgentsApiV1AgentAgentsGetUrl(params), + { + ...options, + method: "GET", + }, + ); +}; + +export const getListAgentsApiV1AgentAgentsGetQueryKey = ( + params?: ListAgentsApiV1AgentAgentsGetParams, +) => { + return [`/api/v1/agent/agents`, ...(params ? [params] : [])] as const; +}; + +export const getListAgentsApiV1AgentAgentsGetQueryOptions = < + TData = Awaited>, + TError = HTTPValidationError, +>( + params?: ListAgentsApiV1AgentAgentsGetParams, + options?: { + query?: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + >; + request?: SecondParameter; + }, +) => { + const { query: queryOptions, request: requestOptions } = options ?? {}; + + const queryKey = + queryOptions?.queryKey ?? getListAgentsApiV1AgentAgentsGetQueryKey(params); + + const queryFn: QueryFunction< + Awaited> + > = ({ signal }) => + listAgentsApiV1AgentAgentsGet(params, { signal, ...requestOptions }); + + return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< + Awaited>, + TError, + TData + > & { queryKey: DataTag }; +}; + +export type ListAgentsApiV1AgentAgentsGetQueryResult = NonNullable< + Awaited> +>; +export type ListAgentsApiV1AgentAgentsGetQueryError = HTTPValidationError; + +export function useListAgentsApiV1AgentAgentsGet< + TData = Awaited>, + TError = HTTPValidationError, +>( + params: undefined | ListAgentsApiV1AgentAgentsGetParams, + options: { + query: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + > & + Pick< + DefinedInitialDataOptions< + Awaited>, + TError, + Awaited> + >, + "initialData" + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): DefinedUseQueryResult & { + queryKey: DataTag; +}; +export function useListAgentsApiV1AgentAgentsGet< + TData = Awaited>, + TError = HTTPValidationError, +>( + params?: ListAgentsApiV1AgentAgentsGetParams, + options?: { + query?: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + > & + Pick< + UndefinedInitialDataOptions< + Awaited>, + TError, + Awaited> + >, + "initialData" + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +}; +export function useListAgentsApiV1AgentAgentsGet< + TData = Awaited>, + TError = HTTPValidationError, +>( + params?: ListAgentsApiV1AgentAgentsGetParams, + options?: { + query?: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +}; +/** + * @summary List Agents + */ + +export function useListAgentsApiV1AgentAgentsGet< + TData = Awaited>, + TError = HTTPValidationError, +>( + params?: ListAgentsApiV1AgentAgentsGetParams, + options?: { + query?: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +} { + const queryOptions = getListAgentsApiV1AgentAgentsGetQueryOptions( + params, + options, + ); + + const query = useQuery(queryOptions, queryClient) as UseQueryResult< + TData, + TError + > & { queryKey: DataTag }; + + return { ...query, queryKey: queryOptions.queryKey }; +} + +/** + * Create an agent on the caller's board. + * @summary Create Agent + */ +export type createAgentApiV1AgentAgentsPostResponse200 = { + data: AgentRead; + status: 200; +}; + +export type createAgentApiV1AgentAgentsPostResponse422 = { + data: HTTPValidationError; + status: 422; +}; + +export type createAgentApiV1AgentAgentsPostResponseSuccess = + createAgentApiV1AgentAgentsPostResponse200 & { + headers: Headers; + }; +export type createAgentApiV1AgentAgentsPostResponseError = + createAgentApiV1AgentAgentsPostResponse422 & { + headers: Headers; + }; + +export type createAgentApiV1AgentAgentsPostResponse = + | createAgentApiV1AgentAgentsPostResponseSuccess + | createAgentApiV1AgentAgentsPostResponseError; + +export const getCreateAgentApiV1AgentAgentsPostUrl = () => { + return `/api/v1/agent/agents`; +}; + +export const createAgentApiV1AgentAgentsPost = async ( + agentCreate: AgentCreate, + options?: RequestInit, +): Promise => { + return customFetch( + getCreateAgentApiV1AgentAgentsPostUrl(), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(agentCreate), + }, + ); +}; + +export const getCreateAgentApiV1AgentAgentsPostMutationOptions = < + TError = HTTPValidationError, + TContext = unknown, +>(options?: { + mutation?: UseMutationOptions< + Awaited>, + TError, + { data: AgentCreate }, + TContext + >; + request?: SecondParameter; +}): UseMutationOptions< + Awaited>, + TError, + { data: AgentCreate }, + TContext +> => { + const mutationKey = ["createAgentApiV1AgentAgentsPost"]; + const { mutation: mutationOptions, request: requestOptions } = options + ? options.mutation && + "mutationKey" in options.mutation && + options.mutation.mutationKey + ? options + : { ...options, mutation: { ...options.mutation, mutationKey } } + : { mutation: { mutationKey }, request: undefined }; + + const mutationFn: MutationFunction< + Awaited>, + { data: AgentCreate } + > = (props) => { + const { data } = props ?? {}; + + return createAgentApiV1AgentAgentsPost(data, requestOptions); + }; + + return { mutationFn, ...mutationOptions }; +}; + +export type CreateAgentApiV1AgentAgentsPostMutationResult = NonNullable< + Awaited> +>; +export type CreateAgentApiV1AgentAgentsPostMutationBody = AgentCreate; +export type CreateAgentApiV1AgentAgentsPostMutationError = HTTPValidationError; + +/** + * @summary Create Agent + */ +export const useCreateAgentApiV1AgentAgentsPost = < + TError = HTTPValidationError, + TContext = unknown, +>( + options?: { + mutation?: UseMutationOptions< + Awaited>, + TError, + { data: AgentCreate }, + TContext + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseMutationResult< + Awaited>, + TError, + { data: AgentCreate }, + TContext +> => { + return useMutation( + getCreateAgentApiV1AgentAgentsPostMutationOptions(options), + queryClient, + ); +}; /** * List boards visible to the authenticated agent. * @summary List Boards @@ -480,34 +810,792 @@ export function useGetBoardApiV1AgentBoardsBoardIdGet< } /** - * List agents, optionally filtered to a board. - * @summary List Agents + * Delete a board agent as the board lead. + * @summary Delete Board Agent */ -export type listAgentsApiV1AgentAgentsGetResponse200 = { - data: LimitOffsetPageTypeVarCustomizedAgentRead; +export type deleteBoardAgentApiV1AgentBoardsBoardIdAgentsAgentIdDeleteResponse200 = + { + data: OkResponse; + status: 200; + }; + +export type deleteBoardAgentApiV1AgentBoardsBoardIdAgentsAgentIdDeleteResponse422 = + { + data: HTTPValidationError; + status: 422; + }; + +export type deleteBoardAgentApiV1AgentBoardsBoardIdAgentsAgentIdDeleteResponseSuccess = + deleteBoardAgentApiV1AgentBoardsBoardIdAgentsAgentIdDeleteResponse200 & { + headers: Headers; + }; +export type deleteBoardAgentApiV1AgentBoardsBoardIdAgentsAgentIdDeleteResponseError = + deleteBoardAgentApiV1AgentBoardsBoardIdAgentsAgentIdDeleteResponse422 & { + headers: Headers; + }; + +export type deleteBoardAgentApiV1AgentBoardsBoardIdAgentsAgentIdDeleteResponse = + | deleteBoardAgentApiV1AgentBoardsBoardIdAgentsAgentIdDeleteResponseSuccess + | deleteBoardAgentApiV1AgentBoardsBoardIdAgentsAgentIdDeleteResponseError; + +export const getDeleteBoardAgentApiV1AgentBoardsBoardIdAgentsAgentIdDeleteUrl = + (boardId: string, agentId: string) => { + return `/api/v1/agent/boards/${boardId}/agents/${agentId}`; + }; + +export const deleteBoardAgentApiV1AgentBoardsBoardIdAgentsAgentIdDelete = + async ( + boardId: string, + agentId: string, + options?: RequestInit, + ): Promise => { + return customFetch( + getDeleteBoardAgentApiV1AgentBoardsBoardIdAgentsAgentIdDeleteUrl( + boardId, + agentId, + ), + { + ...options, + method: "DELETE", + }, + ); + }; + +export const getDeleteBoardAgentApiV1AgentBoardsBoardIdAgentsAgentIdDeleteMutationOptions = + (options?: { + mutation?: UseMutationOptions< + Awaited< + ReturnType< + typeof deleteBoardAgentApiV1AgentBoardsBoardIdAgentsAgentIdDelete + > + >, + TError, + { boardId: string; agentId: string }, + TContext + >; + request?: SecondParameter; + }): UseMutationOptions< + Awaited< + ReturnType< + typeof deleteBoardAgentApiV1AgentBoardsBoardIdAgentsAgentIdDelete + > + >, + TError, + { boardId: string; agentId: string }, + TContext + > => { + const mutationKey = [ + "deleteBoardAgentApiV1AgentBoardsBoardIdAgentsAgentIdDelete", + ]; + const { mutation: mutationOptions, request: requestOptions } = options + ? options.mutation && + "mutationKey" in options.mutation && + options.mutation.mutationKey + ? options + : { ...options, mutation: { ...options.mutation, mutationKey } } + : { mutation: { mutationKey }, request: undefined }; + + const mutationFn: MutationFunction< + Awaited< + ReturnType< + typeof deleteBoardAgentApiV1AgentBoardsBoardIdAgentsAgentIdDelete + > + >, + { boardId: string; agentId: string } + > = (props) => { + const { boardId, agentId } = props ?? {}; + + return deleteBoardAgentApiV1AgentBoardsBoardIdAgentsAgentIdDelete( + boardId, + agentId, + requestOptions, + ); + }; + + return { mutationFn, ...mutationOptions }; + }; + +export type DeleteBoardAgentApiV1AgentBoardsBoardIdAgentsAgentIdDeleteMutationResult = + NonNullable< + Awaited< + ReturnType< + typeof deleteBoardAgentApiV1AgentBoardsBoardIdAgentsAgentIdDelete + > + > + >; + +export type DeleteBoardAgentApiV1AgentBoardsBoardIdAgentsAgentIdDeleteMutationError = + HTTPValidationError; + +/** + * @summary Delete Board Agent + */ +export const useDeleteBoardAgentApiV1AgentBoardsBoardIdAgentsAgentIdDelete = < + TError = HTTPValidationError, + TContext = unknown, +>( + options?: { + mutation?: UseMutationOptions< + Awaited< + ReturnType< + typeof deleteBoardAgentApiV1AgentBoardsBoardIdAgentsAgentIdDelete + > + >, + TError, + { boardId: string; agentId: string }, + TContext + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseMutationResult< + Awaited< + ReturnType< + typeof deleteBoardAgentApiV1AgentBoardsBoardIdAgentsAgentIdDelete + > + >, + TError, + { boardId: string; agentId: string }, + TContext +> => { + return useMutation( + getDeleteBoardAgentApiV1AgentBoardsBoardIdAgentsAgentIdDeleteMutationOptions( + options, + ), + queryClient, + ); +}; +/** + * Send a direct nudge message to a board agent. + * @summary Nudge Agent + */ +export type nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostResponse200 = + { + data: OkResponse; + status: 200; + }; + +export type nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostResponse422 = + { + data: HTTPValidationError; + status: 422; + }; + +export type nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostResponseSuccess = + nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostResponse200 & { + headers: Headers; + }; +export type nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostResponseError = + nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostResponse422 & { + headers: Headers; + }; + +export type nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostResponse = + | nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostResponseSuccess + | nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostResponseError; + +export const getNudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostUrl = ( + boardId: string, + agentId: string, +) => { + return `/api/v1/agent/boards/${boardId}/agents/${agentId}/nudge`; +}; + +export const nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePost = async ( + boardId: string, + agentId: string, + agentNudge: AgentNudge, + options?: RequestInit, +): Promise => { + return customFetch( + getNudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostUrl( + boardId, + agentId, + ), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(agentNudge), + }, + ); +}; + +export const getNudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostMutationOptions = + (options?: { + mutation?: UseMutationOptions< + Awaited< + ReturnType< + typeof nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePost + > + >, + TError, + { boardId: string; agentId: string; data: AgentNudge }, + TContext + >; + request?: SecondParameter; + }): UseMutationOptions< + Awaited< + ReturnType + >, + TError, + { boardId: string; agentId: string; data: AgentNudge }, + TContext + > => { + const mutationKey = [ + "nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePost", + ]; + const { mutation: mutationOptions, request: requestOptions } = options + ? options.mutation && + "mutationKey" in options.mutation && + options.mutation.mutationKey + ? options + : { ...options, mutation: { ...options.mutation, mutationKey } } + : { mutation: { mutationKey }, request: undefined }; + + const mutationFn: MutationFunction< + Awaited< + ReturnType< + typeof nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePost + > + >, + { boardId: string; agentId: string; data: AgentNudge } + > = (props) => { + const { boardId, agentId, data } = props ?? {}; + + return nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePost( + boardId, + agentId, + data, + requestOptions, + ); + }; + + return { mutationFn, ...mutationOptions }; + }; + +export type NudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostMutationResult = + NonNullable< + Awaited< + ReturnType + > + >; +export type NudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostMutationBody = + AgentNudge; +export type NudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostMutationError = + HTTPValidationError; + +/** + * @summary Nudge Agent + */ +export const useNudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePost = < + TError = HTTPValidationError, + TContext = unknown, +>( + options?: { + mutation?: UseMutationOptions< + Awaited< + ReturnType< + typeof nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePost + > + >, + TError, + { boardId: string; agentId: string; data: AgentNudge }, + TContext + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseMutationResult< + Awaited< + ReturnType + >, + TError, + { boardId: string; agentId: string; data: AgentNudge }, + TContext +> => { + return useMutation( + getNudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostMutationOptions( + options, + ), + queryClient, + ); +}; +/** + * Fetch the target agent's SOUL.md content from the gateway. + * @summary Get Agent Soul + */ +export type getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetResponse200 = + { + data: string; + status: 200; + }; + +export type getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetResponse422 = + { + data: HTTPValidationError; + status: 422; + }; + +export type getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetResponseSuccess = + getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetResponse200 & { + headers: Headers; + }; +export type getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetResponseError = + getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetResponse422 & { + headers: Headers; + }; + +export type getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetResponse = + | getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetResponseSuccess + | getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetResponseError; + +export const getGetAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetUrl = ( + boardId: string, + agentId: string, +) => { + return `/api/v1/agent/boards/${boardId}/agents/${agentId}/soul`; +}; + +export const getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet = async ( + boardId: string, + agentId: string, + options?: RequestInit, +): Promise => { + return customFetch( + getGetAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetUrl( + boardId, + agentId, + ), + { + ...options, + method: "GET", + }, + ); +}; + +export const getGetAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetQueryKey = + (boardId: string, agentId: string) => { + return [`/api/v1/agent/boards/${boardId}/agents/${agentId}/soul`] as const; + }; + +export const getGetAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetQueryOptions = + < + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, + >( + boardId: string, + agentId: string, + options?: { + query?: Partial< + UseQueryOptions< + Awaited< + ReturnType< + typeof getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet + > + >, + TError, + TData + > + >; + request?: SecondParameter; + }, + ) => { + const { query: queryOptions, request: requestOptions } = options ?? {}; + + const queryKey = + queryOptions?.queryKey ?? + getGetAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetQueryKey( + boardId, + agentId, + ); + + const queryFn: QueryFunction< + Awaited< + ReturnType< + typeof getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet + > + > + > = ({ signal }) => + getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet( + boardId, + agentId, + { signal, ...requestOptions }, + ); + + return { + queryKey, + queryFn, + enabled: !!(boardId && agentId), + ...queryOptions, + } as UseQueryOptions< + Awaited< + ReturnType< + typeof getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet + > + >, + TError, + TData + > & { queryKey: DataTag }; + }; + +export type GetAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetQueryResult = + NonNullable< + Awaited< + ReturnType + > + >; +export type GetAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetQueryError = + HTTPValidationError; + +export function useGetAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet< + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + boardId: string, + agentId: string, + options: { + query: Partial< + UseQueryOptions< + Awaited< + ReturnType< + typeof getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet + > + >, + TError, + TData + > + > & + Pick< + DefinedInitialDataOptions< + Awaited< + ReturnType< + typeof getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet + > + >, + TError, + Awaited< + ReturnType< + typeof getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet + > + > + >, + "initialData" + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): DefinedUseQueryResult & { + queryKey: DataTag; +}; +export function useGetAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet< + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + boardId: string, + agentId: string, + options?: { + query?: Partial< + UseQueryOptions< + Awaited< + ReturnType< + typeof getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet + > + >, + TError, + TData + > + > & + Pick< + UndefinedInitialDataOptions< + Awaited< + ReturnType< + typeof getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet + > + >, + TError, + Awaited< + ReturnType< + typeof getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet + > + > + >, + "initialData" + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +}; +export function useGetAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet< + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + boardId: string, + agentId: string, + options?: { + query?: Partial< + UseQueryOptions< + Awaited< + ReturnType< + typeof getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet + > + >, + TError, + TData + > + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +}; +/** + * @summary Get Agent Soul + */ + +export function useGetAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet< + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + boardId: string, + agentId: string, + options?: { + query?: Partial< + UseQueryOptions< + Awaited< + ReturnType< + typeof getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet + > + >, + TError, + TData + > + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +} { + const queryOptions = + getGetAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetQueryOptions( + boardId, + agentId, + options, + ); + + const query = useQuery(queryOptions, queryClient) as UseQueryResult< + TData, + TError + > & { queryKey: DataTag }; + + return { ...query, queryKey: queryOptions.queryKey }; +} + +/** + * Update an agent's SOUL.md content in DB and gateway. + * @summary Update Agent Soul + */ +export type updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutResponse200 = + { + data: OkResponse; + status: 200; + }; + +export type updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutResponse422 = + { + data: HTTPValidationError; + status: 422; + }; + +export type updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutResponseSuccess = + updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutResponse200 & { + headers: Headers; + }; +export type updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutResponseError = + updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutResponse422 & { + headers: Headers; + }; + +export type updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutResponse = + | updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutResponseSuccess + | updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutResponseError; + +export const getUpdateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutUrl = + (boardId: string, agentId: string) => { + return `/api/v1/agent/boards/${boardId}/agents/${agentId}/soul`; + }; + +export const updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPut = + async ( + boardId: string, + agentId: string, + soulUpdateRequest: SoulUpdateRequest, + options?: RequestInit, + ): Promise => { + return customFetch( + getUpdateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutUrl( + boardId, + agentId, + ), + { + ...options, + method: "PUT", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(soulUpdateRequest), + }, + ); + }; + +export const getUpdateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutMutationOptions = + (options?: { + mutation?: UseMutationOptions< + Awaited< + ReturnType< + typeof updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPut + > + >, + TError, + { boardId: string; agentId: string; data: SoulUpdateRequest }, + TContext + >; + request?: SecondParameter; + }): UseMutationOptions< + Awaited< + ReturnType< + typeof updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPut + > + >, + TError, + { boardId: string; agentId: string; data: SoulUpdateRequest }, + TContext + > => { + const mutationKey = [ + "updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPut", + ]; + const { mutation: mutationOptions, request: requestOptions } = options + ? options.mutation && + "mutationKey" in options.mutation && + options.mutation.mutationKey + ? options + : { ...options, mutation: { ...options.mutation, mutationKey } } + : { mutation: { mutationKey }, request: undefined }; + + const mutationFn: MutationFunction< + Awaited< + ReturnType< + typeof updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPut + > + >, + { boardId: string; agentId: string; data: SoulUpdateRequest } + > = (props) => { + const { boardId, agentId, data } = props ?? {}; + + return updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPut( + boardId, + agentId, + data, + requestOptions, + ); + }; + + return { mutationFn, ...mutationOptions }; + }; + +export type UpdateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutMutationResult = + NonNullable< + Awaited< + ReturnType< + typeof updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPut + > + > + >; +export type UpdateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutMutationBody = + SoulUpdateRequest; +export type UpdateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutMutationError = + HTTPValidationError; + +/** + * @summary Update Agent Soul + */ +export const useUpdateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPut = < + TError = HTTPValidationError, + TContext = unknown, +>( + options?: { + mutation?: UseMutationOptions< + Awaited< + ReturnType< + typeof updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPut + > + >, + TError, + { boardId: string; agentId: string; data: SoulUpdateRequest }, + TContext + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseMutationResult< + Awaited< + ReturnType< + typeof updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPut + > + >, + TError, + { boardId: string; agentId: string; data: SoulUpdateRequest }, + TContext +> => { + return useMutation( + getUpdateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutMutationOptions( + options, + ), + queryClient, + ); +}; +/** + * List approvals for a board. + * @summary List Approvals + */ +export type listApprovalsApiV1AgentBoardsBoardIdApprovalsGetResponse200 = { + data: LimitOffsetPageTypeVarCustomizedApprovalRead; status: 200; }; -export type listAgentsApiV1AgentAgentsGetResponse422 = { +export type listApprovalsApiV1AgentBoardsBoardIdApprovalsGetResponse422 = { data: HTTPValidationError; status: 422; }; -export type listAgentsApiV1AgentAgentsGetResponseSuccess = - listAgentsApiV1AgentAgentsGetResponse200 & { +export type listApprovalsApiV1AgentBoardsBoardIdApprovalsGetResponseSuccess = + listApprovalsApiV1AgentBoardsBoardIdApprovalsGetResponse200 & { headers: Headers; }; -export type listAgentsApiV1AgentAgentsGetResponseError = - listAgentsApiV1AgentAgentsGetResponse422 & { +export type listApprovalsApiV1AgentBoardsBoardIdApprovalsGetResponseError = + listApprovalsApiV1AgentBoardsBoardIdApprovalsGetResponse422 & { headers: Headers; }; -export type listAgentsApiV1AgentAgentsGetResponse = - | listAgentsApiV1AgentAgentsGetResponseSuccess - | listAgentsApiV1AgentAgentsGetResponseError; +export type listApprovalsApiV1AgentBoardsBoardIdApprovalsGetResponse = + | listApprovalsApiV1AgentBoardsBoardIdApprovalsGetResponseSuccess + | listApprovalsApiV1AgentBoardsBoardIdApprovalsGetResponseError; -export const getListAgentsApiV1AgentAgentsGetUrl = ( - params?: ListAgentsApiV1AgentAgentsGetParams, +export const getListApprovalsApiV1AgentBoardsBoardIdApprovalsGetUrl = ( + boardId: string, + params?: ListApprovalsApiV1AgentBoardsBoardIdApprovalsGetParams, ) => { const normalizedParams = new URLSearchParams(); @@ -520,16 +1608,17 @@ export const getListAgentsApiV1AgentAgentsGetUrl = ( const stringifiedParams = normalizedParams.toString(); return stringifiedParams.length > 0 - ? `/api/v1/agent/agents?${stringifiedParams}` - : `/api/v1/agent/agents`; + ? `/api/v1/agent/boards/${boardId}/approvals?${stringifiedParams}` + : `/api/v1/agent/boards/${boardId}/approvals`; }; -export const listAgentsApiV1AgentAgentsGet = async ( - params?: ListAgentsApiV1AgentAgentsGetParams, +export const listApprovalsApiV1AgentBoardsBoardIdApprovalsGet = async ( + boardId: string, + params?: ListApprovalsApiV1AgentBoardsBoardIdApprovalsGetParams, options?: RequestInit, -): Promise => { - return customFetch( - getListAgentsApiV1AgentAgentsGetUrl(params), +): Promise => { + return customFetch( + getListApprovalsApiV1AgentBoardsBoardIdApprovalsGetUrl(boardId, params), { ...options, method: "GET", @@ -537,21 +1626,30 @@ export const listAgentsApiV1AgentAgentsGet = async ( ); }; -export const getListAgentsApiV1AgentAgentsGetQueryKey = ( - params?: ListAgentsApiV1AgentAgentsGetParams, +export const getListApprovalsApiV1AgentBoardsBoardIdApprovalsGetQueryKey = ( + boardId: string, + params?: ListApprovalsApiV1AgentBoardsBoardIdApprovalsGetParams, ) => { - return [`/api/v1/agent/agents`, ...(params ? [params] : [])] as const; + return [ + `/api/v1/agent/boards/${boardId}/approvals`, + ...(params ? [params] : []), + ] as const; }; -export const getListAgentsApiV1AgentAgentsGetQueryOptions = < - TData = Awaited>, +export const getListApprovalsApiV1AgentBoardsBoardIdApprovalsGetQueryOptions = < + TData = Awaited< + ReturnType + >, TError = HTTPValidationError, >( - params?: ListAgentsApiV1AgentAgentsGetParams, + boardId: string, + params?: ListApprovalsApiV1AgentBoardsBoardIdApprovalsGetParams, options?: { query?: Partial< UseQueryOptions< - Awaited>, + Awaited< + ReturnType + >, TError, TData > @@ -562,43 +1660,68 @@ export const getListAgentsApiV1AgentAgentsGetQueryOptions = < const { query: queryOptions, request: requestOptions } = options ?? {}; const queryKey = - queryOptions?.queryKey ?? getListAgentsApiV1AgentAgentsGetQueryKey(params); + queryOptions?.queryKey ?? + getListApprovalsApiV1AgentBoardsBoardIdApprovalsGetQueryKey( + boardId, + params, + ); const queryFn: QueryFunction< - Awaited> + Awaited> > = ({ signal }) => - listAgentsApiV1AgentAgentsGet(params, { signal, ...requestOptions }); + listApprovalsApiV1AgentBoardsBoardIdApprovalsGet(boardId, params, { + signal, + ...requestOptions, + }); - return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< - Awaited>, + return { + queryKey, + queryFn, + enabled: !!boardId, + ...queryOptions, + } as UseQueryOptions< + Awaited< + ReturnType + >, TError, TData > & { queryKey: DataTag }; }; -export type ListAgentsApiV1AgentAgentsGetQueryResult = NonNullable< - Awaited> ->; -export type ListAgentsApiV1AgentAgentsGetQueryError = HTTPValidationError; +export type ListApprovalsApiV1AgentBoardsBoardIdApprovalsGetQueryResult = + NonNullable< + Awaited> + >; +export type ListApprovalsApiV1AgentBoardsBoardIdApprovalsGetQueryError = + HTTPValidationError; -export function useListAgentsApiV1AgentAgentsGet< - TData = Awaited>, +export function useListApprovalsApiV1AgentBoardsBoardIdApprovalsGet< + TData = Awaited< + ReturnType + >, TError = HTTPValidationError, >( - params: undefined | ListAgentsApiV1AgentAgentsGetParams, + boardId: string, + params: undefined | ListApprovalsApiV1AgentBoardsBoardIdApprovalsGetParams, options: { query: Partial< UseQueryOptions< - Awaited>, + Awaited< + ReturnType + >, TError, TData > > & Pick< DefinedInitialDataOptions< - Awaited>, + Awaited< + ReturnType + >, TError, - Awaited> + Awaited< + ReturnType + > >, "initialData" >; @@ -608,24 +1731,33 @@ export function useListAgentsApiV1AgentAgentsGet< ): DefinedUseQueryResult & { queryKey: DataTag; }; -export function useListAgentsApiV1AgentAgentsGet< - TData = Awaited>, +export function useListApprovalsApiV1AgentBoardsBoardIdApprovalsGet< + TData = Awaited< + ReturnType + >, TError = HTTPValidationError, >( - params?: ListAgentsApiV1AgentAgentsGetParams, + boardId: string, + params?: ListApprovalsApiV1AgentBoardsBoardIdApprovalsGetParams, options?: { query?: Partial< UseQueryOptions< - Awaited>, + Awaited< + ReturnType + >, TError, TData > > & Pick< UndefinedInitialDataOptions< - Awaited>, + Awaited< + ReturnType + >, TError, - Awaited> + Awaited< + ReturnType + > >, "initialData" >; @@ -635,15 +1767,20 @@ export function useListAgentsApiV1AgentAgentsGet< ): UseQueryResult & { queryKey: DataTag; }; -export function useListAgentsApiV1AgentAgentsGet< - TData = Awaited>, +export function useListApprovalsApiV1AgentBoardsBoardIdApprovalsGet< + TData = Awaited< + ReturnType + >, TError = HTTPValidationError, >( - params?: ListAgentsApiV1AgentAgentsGetParams, + boardId: string, + params?: ListApprovalsApiV1AgentBoardsBoardIdApprovalsGetParams, options?: { query?: Partial< UseQueryOptions< - Awaited>, + Awaited< + ReturnType + >, TError, TData > @@ -655,18 +1792,23 @@ export function useListAgentsApiV1AgentAgentsGet< queryKey: DataTag; }; /** - * @summary List Agents + * @summary List Approvals */ -export function useListAgentsApiV1AgentAgentsGet< - TData = Awaited>, +export function useListApprovalsApiV1AgentBoardsBoardIdApprovalsGet< + TData = Awaited< + ReturnType + >, TError = HTTPValidationError, >( - params?: ListAgentsApiV1AgentAgentsGetParams, + boardId: string, + params?: ListApprovalsApiV1AgentBoardsBoardIdApprovalsGetParams, options?: { query?: Partial< UseQueryOptions< - Awaited>, + Awaited< + ReturnType + >, TError, TData > @@ -677,10 +1819,12 @@ export function useListAgentsApiV1AgentAgentsGet< ): UseQueryResult & { queryKey: DataTag; } { - const queryOptions = getListAgentsApiV1AgentAgentsGetQueryOptions( - params, - options, - ); + const queryOptions = + getListApprovalsApiV1AgentBoardsBoardIdApprovalsGetQueryOptions( + boardId, + params, + options, + ); const query = useQuery(queryOptions, queryClient) as UseQueryResult< TData, @@ -691,123 +1835,1088 @@ export function useListAgentsApiV1AgentAgentsGet< } /** - * Create an agent on the caller's board. - * @summary Create Agent + * Create a board approval request. + * @summary Create Approval */ -export type createAgentApiV1AgentAgentsPostResponse200 = { - data: AgentRead; +export type createApprovalApiV1AgentBoardsBoardIdApprovalsPostResponse200 = { + data: ApprovalRead; status: 200; }; -export type createAgentApiV1AgentAgentsPostResponse422 = { +export type createApprovalApiV1AgentBoardsBoardIdApprovalsPostResponse422 = { data: HTTPValidationError; status: 422; }; -export type createAgentApiV1AgentAgentsPostResponseSuccess = - createAgentApiV1AgentAgentsPostResponse200 & { +export type createApprovalApiV1AgentBoardsBoardIdApprovalsPostResponseSuccess = + createApprovalApiV1AgentBoardsBoardIdApprovalsPostResponse200 & { headers: Headers; }; -export type createAgentApiV1AgentAgentsPostResponseError = - createAgentApiV1AgentAgentsPostResponse422 & { +export type createApprovalApiV1AgentBoardsBoardIdApprovalsPostResponseError = + createApprovalApiV1AgentBoardsBoardIdApprovalsPostResponse422 & { headers: Headers; }; -export type createAgentApiV1AgentAgentsPostResponse = - | createAgentApiV1AgentAgentsPostResponseSuccess - | createAgentApiV1AgentAgentsPostResponseError; +export type createApprovalApiV1AgentBoardsBoardIdApprovalsPostResponse = + | createApprovalApiV1AgentBoardsBoardIdApprovalsPostResponseSuccess + | createApprovalApiV1AgentBoardsBoardIdApprovalsPostResponseError; -export const getCreateAgentApiV1AgentAgentsPostUrl = () => { - return `/api/v1/agent/agents`; +export const getCreateApprovalApiV1AgentBoardsBoardIdApprovalsPostUrl = ( + boardId: string, +) => { + return `/api/v1/agent/boards/${boardId}/approvals`; }; -export const createAgentApiV1AgentAgentsPost = async ( - agentCreate: AgentCreate, +export const createApprovalApiV1AgentBoardsBoardIdApprovalsPost = async ( + boardId: string, + approvalCreate: ApprovalCreate, options?: RequestInit, -): Promise => { - return customFetch( - getCreateAgentApiV1AgentAgentsPostUrl(), +): Promise => { + return customFetch( + getCreateApprovalApiV1AgentBoardsBoardIdApprovalsPostUrl(boardId), { ...options, method: "POST", headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(agentCreate), + body: JSON.stringify(approvalCreate), }, ); }; -export const getCreateAgentApiV1AgentAgentsPostMutationOptions = < - TError = HTTPValidationError, - TContext = unknown, ->(options?: { - mutation?: UseMutationOptions< - Awaited>, +export const getCreateApprovalApiV1AgentBoardsBoardIdApprovalsPostMutationOptions = + (options?: { + mutation?: UseMutationOptions< + Awaited< + ReturnType + >, + TError, + { boardId: string; data: ApprovalCreate }, + TContext + >; + request?: SecondParameter; + }): UseMutationOptions< + Awaited< + ReturnType + >, TError, - { data: AgentCreate }, + { boardId: string; data: ApprovalCreate }, TContext - >; - request?: SecondParameter; -}): UseMutationOptions< - Awaited>, - TError, - { data: AgentCreate }, - TContext -> => { - const mutationKey = ["createAgentApiV1AgentAgentsPost"]; - const { mutation: mutationOptions, request: requestOptions } = options - ? options.mutation && - "mutationKey" in options.mutation && - options.mutation.mutationKey - ? options - : { ...options, mutation: { ...options.mutation, mutationKey } } - : { mutation: { mutationKey }, request: undefined }; + > => { + const mutationKey = ["createApprovalApiV1AgentBoardsBoardIdApprovalsPost"]; + const { mutation: mutationOptions, request: requestOptions } = options + ? options.mutation && + "mutationKey" in options.mutation && + options.mutation.mutationKey + ? options + : { ...options, mutation: { ...options.mutation, mutationKey } } + : { mutation: { mutationKey }, request: undefined }; - const mutationFn: MutationFunction< - Awaited>, - { data: AgentCreate } - > = (props) => { - const { data } = props ?? {}; + const mutationFn: MutationFunction< + Awaited< + ReturnType + >, + { boardId: string; data: ApprovalCreate } + > = (props) => { + const { boardId, data } = props ?? {}; - return createAgentApiV1AgentAgentsPost(data, requestOptions); + return createApprovalApiV1AgentBoardsBoardIdApprovalsPost( + boardId, + data, + requestOptions, + ); + }; + + return { mutationFn, ...mutationOptions }; }; - return { mutationFn, ...mutationOptions }; -}; - -export type CreateAgentApiV1AgentAgentsPostMutationResult = NonNullable< - Awaited> ->; -export type CreateAgentApiV1AgentAgentsPostMutationBody = AgentCreate; -export type CreateAgentApiV1AgentAgentsPostMutationError = HTTPValidationError; +export type CreateApprovalApiV1AgentBoardsBoardIdApprovalsPostMutationResult = + NonNullable< + Awaited< + ReturnType + > + >; +export type CreateApprovalApiV1AgentBoardsBoardIdApprovalsPostMutationBody = + ApprovalCreate; +export type CreateApprovalApiV1AgentBoardsBoardIdApprovalsPostMutationError = + HTTPValidationError; /** - * @summary Create Agent + * @summary Create Approval */ -export const useCreateAgentApiV1AgentAgentsPost = < +export const useCreateApprovalApiV1AgentBoardsBoardIdApprovalsPost = < TError = HTTPValidationError, TContext = unknown, >( options?: { mutation?: UseMutationOptions< - Awaited>, + Awaited< + ReturnType + >, TError, - { data: AgentCreate }, + { boardId: string; data: ApprovalCreate }, TContext >; request?: SecondParameter; }, queryClient?: QueryClient, ): UseMutationResult< - Awaited>, + Awaited< + ReturnType + >, TError, - { data: AgentCreate }, + { boardId: string; data: ApprovalCreate }, TContext > => { return useMutation( - getCreateAgentApiV1AgentAgentsPostMutationOptions(options), + getCreateApprovalApiV1AgentBoardsBoardIdApprovalsPostMutationOptions( + options, + ), queryClient, ); }; +/** + * Route a lead's ask-user request through the dedicated gateway agent. + * @summary Ask User Via Gateway Main + */ +export type askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostResponse200 = + { + data: GatewayMainAskUserResponse; + status: 200; + }; + +export type askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostResponse422 = + { + data: HTTPValidationError; + status: 422; + }; + +export type askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostResponseSuccess = + askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostResponse200 & { + headers: Headers; + }; +export type askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostResponseError = + askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostResponse422 & { + headers: Headers; + }; + +export type askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostResponse = + + | askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostResponseSuccess + | askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostResponseError; + +export const getAskUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostUrl = + (boardId: string) => { + return `/api/v1/agent/boards/${boardId}/gateway/main/ask-user`; + }; + +export const askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPost = + async ( + boardId: string, + gatewayMainAskUserRequest: GatewayMainAskUserRequest, + options?: RequestInit, + ): Promise => { + return customFetch( + getAskUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostUrl( + boardId, + ), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(gatewayMainAskUserRequest), + }, + ); + }; + +export const getAskUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostMutationOptions = + (options?: { + mutation?: UseMutationOptions< + Awaited< + ReturnType< + typeof askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPost + > + >, + TError, + { boardId: string; data: GatewayMainAskUserRequest }, + TContext + >; + request?: SecondParameter; + }): UseMutationOptions< + Awaited< + ReturnType< + typeof askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPost + > + >, + TError, + { boardId: string; data: GatewayMainAskUserRequest }, + TContext + > => { + const mutationKey = [ + "askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPost", + ]; + const { mutation: mutationOptions, request: requestOptions } = options + ? options.mutation && + "mutationKey" in options.mutation && + options.mutation.mutationKey + ? options + : { ...options, mutation: { ...options.mutation, mutationKey } } + : { mutation: { mutationKey }, request: undefined }; + + const mutationFn: MutationFunction< + Awaited< + ReturnType< + typeof askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPost + > + >, + { boardId: string; data: GatewayMainAskUserRequest } + > = (props) => { + const { boardId, data } = props ?? {}; + + return askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPost( + boardId, + data, + requestOptions, + ); + }; + + return { mutationFn, ...mutationOptions }; + }; + +export type AskUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostMutationResult = + NonNullable< + Awaited< + ReturnType< + typeof askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPost + > + > + >; +export type AskUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostMutationBody = + GatewayMainAskUserRequest; +export type AskUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostMutationError = + HTTPValidationError; + +/** + * @summary Ask User Via Gateway Main + */ +export const useAskUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPost = + ( + options?: { + mutation?: UseMutationOptions< + Awaited< + ReturnType< + typeof askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPost + > + >, + TError, + { boardId: string; data: GatewayMainAskUserRequest }, + TContext + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, + ): UseMutationResult< + Awaited< + ReturnType< + typeof askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPost + > + >, + TError, + { boardId: string; data: GatewayMainAskUserRequest }, + TContext + > => { + return useMutation( + getAskUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostMutationOptions( + options, + ), + queryClient, + ); + }; +/** + * List board memory entries with optional chat filtering. + * @summary List Board Memory + */ +export type listBoardMemoryApiV1AgentBoardsBoardIdMemoryGetResponse200 = { + data: LimitOffsetPageTypeVarCustomizedBoardMemoryRead; + status: 200; +}; + +export type listBoardMemoryApiV1AgentBoardsBoardIdMemoryGetResponse422 = { + data: HTTPValidationError; + status: 422; +}; + +export type listBoardMemoryApiV1AgentBoardsBoardIdMemoryGetResponseSuccess = + listBoardMemoryApiV1AgentBoardsBoardIdMemoryGetResponse200 & { + headers: Headers; + }; +export type listBoardMemoryApiV1AgentBoardsBoardIdMemoryGetResponseError = + listBoardMemoryApiV1AgentBoardsBoardIdMemoryGetResponse422 & { + headers: Headers; + }; + +export type listBoardMemoryApiV1AgentBoardsBoardIdMemoryGetResponse = + | listBoardMemoryApiV1AgentBoardsBoardIdMemoryGetResponseSuccess + | listBoardMemoryApiV1AgentBoardsBoardIdMemoryGetResponseError; + +export const getListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetUrl = ( + boardId: string, + params?: ListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetParams, +) => { + const normalizedParams = new URLSearchParams(); + + Object.entries(params || {}).forEach(([key, value]) => { + if (value !== undefined) { + normalizedParams.append(key, value === null ? "null" : value.toString()); + } + }); + + const stringifiedParams = normalizedParams.toString(); + + return stringifiedParams.length > 0 + ? `/api/v1/agent/boards/${boardId}/memory?${stringifiedParams}` + : `/api/v1/agent/boards/${boardId}/memory`; +}; + +export const listBoardMemoryApiV1AgentBoardsBoardIdMemoryGet = async ( + boardId: string, + params?: ListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetParams, + options?: RequestInit, +): Promise => { + return customFetch( + getListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetUrl(boardId, params), + { + ...options, + method: "GET", + }, + ); +}; + +export const getListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetQueryKey = ( + boardId: string, + params?: ListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetParams, +) => { + return [ + `/api/v1/agent/boards/${boardId}/memory`, + ...(params ? [params] : []), + ] as const; +}; + +export const getListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetQueryOptions = < + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + boardId: string, + params?: ListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetParams, + options?: { + query?: Partial< + UseQueryOptions< + Awaited< + ReturnType + >, + TError, + TData + > + >; + request?: SecondParameter; + }, +) => { + const { query: queryOptions, request: requestOptions } = options ?? {}; + + const queryKey = + queryOptions?.queryKey ?? + getListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetQueryKey(boardId, params); + + const queryFn: QueryFunction< + Awaited> + > = ({ signal }) => + listBoardMemoryApiV1AgentBoardsBoardIdMemoryGet(boardId, params, { + signal, + ...requestOptions, + }); + + return { + queryKey, + queryFn, + enabled: !!boardId, + ...queryOptions, + } as UseQueryOptions< + Awaited>, + TError, + TData + > & { queryKey: DataTag }; +}; + +export type ListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetQueryResult = + NonNullable< + Awaited> + >; +export type ListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetQueryError = + HTTPValidationError; + +export function useListBoardMemoryApiV1AgentBoardsBoardIdMemoryGet< + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + boardId: string, + params: undefined | ListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetParams, + options: { + query: Partial< + UseQueryOptions< + Awaited< + ReturnType + >, + TError, + TData + > + > & + Pick< + DefinedInitialDataOptions< + Awaited< + ReturnType + >, + TError, + Awaited< + ReturnType + > + >, + "initialData" + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): DefinedUseQueryResult & { + queryKey: DataTag; +}; +export function useListBoardMemoryApiV1AgentBoardsBoardIdMemoryGet< + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + boardId: string, + params?: ListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetParams, + options?: { + query?: Partial< + UseQueryOptions< + Awaited< + ReturnType + >, + TError, + TData + > + > & + Pick< + UndefinedInitialDataOptions< + Awaited< + ReturnType + >, + TError, + Awaited< + ReturnType + > + >, + "initialData" + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +}; +export function useListBoardMemoryApiV1AgentBoardsBoardIdMemoryGet< + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + boardId: string, + params?: ListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetParams, + options?: { + query?: Partial< + UseQueryOptions< + Awaited< + ReturnType + >, + TError, + TData + > + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +}; +/** + * @summary List Board Memory + */ + +export function useListBoardMemoryApiV1AgentBoardsBoardIdMemoryGet< + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + boardId: string, + params?: ListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetParams, + options?: { + query?: Partial< + UseQueryOptions< + Awaited< + ReturnType + >, + TError, + TData + > + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +} { + const queryOptions = + getListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetQueryOptions( + boardId, + params, + options, + ); + + const query = useQuery(queryOptions, queryClient) as UseQueryResult< + TData, + TError + > & { queryKey: DataTag }; + + return { ...query, queryKey: queryOptions.queryKey }; +} + +/** + * Create a board memory entry. + * @summary Create Board Memory + */ +export type createBoardMemoryApiV1AgentBoardsBoardIdMemoryPostResponse200 = { + data: BoardMemoryRead; + status: 200; +}; + +export type createBoardMemoryApiV1AgentBoardsBoardIdMemoryPostResponse422 = { + data: HTTPValidationError; + status: 422; +}; + +export type createBoardMemoryApiV1AgentBoardsBoardIdMemoryPostResponseSuccess = + createBoardMemoryApiV1AgentBoardsBoardIdMemoryPostResponse200 & { + headers: Headers; + }; +export type createBoardMemoryApiV1AgentBoardsBoardIdMemoryPostResponseError = + createBoardMemoryApiV1AgentBoardsBoardIdMemoryPostResponse422 & { + headers: Headers; + }; + +export type createBoardMemoryApiV1AgentBoardsBoardIdMemoryPostResponse = + | createBoardMemoryApiV1AgentBoardsBoardIdMemoryPostResponseSuccess + | createBoardMemoryApiV1AgentBoardsBoardIdMemoryPostResponseError; + +export const getCreateBoardMemoryApiV1AgentBoardsBoardIdMemoryPostUrl = ( + boardId: string, +) => { + return `/api/v1/agent/boards/${boardId}/memory`; +}; + +export const createBoardMemoryApiV1AgentBoardsBoardIdMemoryPost = async ( + boardId: string, + boardMemoryCreate: BoardMemoryCreate, + options?: RequestInit, +): Promise => { + return customFetch( + getCreateBoardMemoryApiV1AgentBoardsBoardIdMemoryPostUrl(boardId), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(boardMemoryCreate), + }, + ); +}; + +export const getCreateBoardMemoryApiV1AgentBoardsBoardIdMemoryPostMutationOptions = + (options?: { + mutation?: UseMutationOptions< + Awaited< + ReturnType + >, + TError, + { boardId: string; data: BoardMemoryCreate }, + TContext + >; + request?: SecondParameter; + }): UseMutationOptions< + Awaited< + ReturnType + >, + TError, + { boardId: string; data: BoardMemoryCreate }, + TContext + > => { + const mutationKey = ["createBoardMemoryApiV1AgentBoardsBoardIdMemoryPost"]; + const { mutation: mutationOptions, request: requestOptions } = options + ? options.mutation && + "mutationKey" in options.mutation && + options.mutation.mutationKey + ? options + : { ...options, mutation: { ...options.mutation, mutationKey } } + : { mutation: { mutationKey }, request: undefined }; + + const mutationFn: MutationFunction< + Awaited< + ReturnType + >, + { boardId: string; data: BoardMemoryCreate } + > = (props) => { + const { boardId, data } = props ?? {}; + + return createBoardMemoryApiV1AgentBoardsBoardIdMemoryPost( + boardId, + data, + requestOptions, + ); + }; + + return { mutationFn, ...mutationOptions }; + }; + +export type CreateBoardMemoryApiV1AgentBoardsBoardIdMemoryPostMutationResult = + NonNullable< + Awaited< + ReturnType + > + >; +export type CreateBoardMemoryApiV1AgentBoardsBoardIdMemoryPostMutationBody = + BoardMemoryCreate; +export type CreateBoardMemoryApiV1AgentBoardsBoardIdMemoryPostMutationError = + HTTPValidationError; + +/** + * @summary Create Board Memory + */ +export const useCreateBoardMemoryApiV1AgentBoardsBoardIdMemoryPost = < + TError = HTTPValidationError, + TContext = unknown, +>( + options?: { + mutation?: UseMutationOptions< + Awaited< + ReturnType + >, + TError, + { boardId: string; data: BoardMemoryCreate }, + TContext + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseMutationResult< + Awaited< + ReturnType + >, + TError, + { boardId: string; data: BoardMemoryCreate }, + TContext +> => { + return useMutation( + getCreateBoardMemoryApiV1AgentBoardsBoardIdMemoryPostMutationOptions( + options, + ), + queryClient, + ); +}; +/** + * Apply onboarding updates for a board. + * @summary Update Onboarding + */ +export type updateOnboardingApiV1AgentBoardsBoardIdOnboardingPostResponse200 = { + data: BoardOnboardingRead; + status: 200; +}; + +export type updateOnboardingApiV1AgentBoardsBoardIdOnboardingPostResponse422 = { + data: HTTPValidationError; + status: 422; +}; + +export type updateOnboardingApiV1AgentBoardsBoardIdOnboardingPostResponseSuccess = + updateOnboardingApiV1AgentBoardsBoardIdOnboardingPostResponse200 & { + headers: Headers; + }; +export type updateOnboardingApiV1AgentBoardsBoardIdOnboardingPostResponseError = + updateOnboardingApiV1AgentBoardsBoardIdOnboardingPostResponse422 & { + headers: Headers; + }; + +export type updateOnboardingApiV1AgentBoardsBoardIdOnboardingPostResponse = + | updateOnboardingApiV1AgentBoardsBoardIdOnboardingPostResponseSuccess + | updateOnboardingApiV1AgentBoardsBoardIdOnboardingPostResponseError; + +export const getUpdateOnboardingApiV1AgentBoardsBoardIdOnboardingPostUrl = ( + boardId: string, +) => { + return `/api/v1/agent/boards/${boardId}/onboarding`; +}; + +export const updateOnboardingApiV1AgentBoardsBoardIdOnboardingPost = async ( + boardId: string, + boardOnboardingAgentCompleteBoardOnboardingAgentQuestion: + | BoardOnboardingAgentComplete + | BoardOnboardingAgentQuestion, + options?: RequestInit, +): Promise => { + return customFetch( + getUpdateOnboardingApiV1AgentBoardsBoardIdOnboardingPostUrl(boardId), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify( + boardOnboardingAgentCompleteBoardOnboardingAgentQuestion, + ), + }, + ); +}; + +export const getUpdateOnboardingApiV1AgentBoardsBoardIdOnboardingPostMutationOptions = + (options?: { + mutation?: UseMutationOptions< + Awaited< + ReturnType + >, + TError, + { + boardId: string; + data: BoardOnboardingAgentComplete | BoardOnboardingAgentQuestion; + }, + TContext + >; + request?: SecondParameter; + }): UseMutationOptions< + Awaited< + ReturnType + >, + TError, + { + boardId: string; + data: BoardOnboardingAgentComplete | BoardOnboardingAgentQuestion; + }, + TContext + > => { + const mutationKey = [ + "updateOnboardingApiV1AgentBoardsBoardIdOnboardingPost", + ]; + const { mutation: mutationOptions, request: requestOptions } = options + ? options.mutation && + "mutationKey" in options.mutation && + options.mutation.mutationKey + ? options + : { ...options, mutation: { ...options.mutation, mutationKey } } + : { mutation: { mutationKey }, request: undefined }; + + const mutationFn: MutationFunction< + Awaited< + ReturnType + >, + { + boardId: string; + data: BoardOnboardingAgentComplete | BoardOnboardingAgentQuestion; + } + > = (props) => { + const { boardId, data } = props ?? {}; + + return updateOnboardingApiV1AgentBoardsBoardIdOnboardingPost( + boardId, + data, + requestOptions, + ); + }; + + return { mutationFn, ...mutationOptions }; + }; + +export type UpdateOnboardingApiV1AgentBoardsBoardIdOnboardingPostMutationResult = + NonNullable< + Awaited< + ReturnType + > + >; +export type UpdateOnboardingApiV1AgentBoardsBoardIdOnboardingPostMutationBody = + | BoardOnboardingAgentComplete + | BoardOnboardingAgentQuestion; +export type UpdateOnboardingApiV1AgentBoardsBoardIdOnboardingPostMutationError = + HTTPValidationError; + +/** + * @summary Update Onboarding + */ +export const useUpdateOnboardingApiV1AgentBoardsBoardIdOnboardingPost = < + TError = HTTPValidationError, + TContext = unknown, +>( + options?: { + mutation?: UseMutationOptions< + Awaited< + ReturnType + >, + TError, + { + boardId: string; + data: BoardOnboardingAgentComplete | BoardOnboardingAgentQuestion; + }, + TContext + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseMutationResult< + Awaited< + ReturnType + >, + TError, + { + boardId: string; + data: BoardOnboardingAgentComplete | BoardOnboardingAgentQuestion; + }, + TContext +> => { + return useMutation( + getUpdateOnboardingApiV1AgentBoardsBoardIdOnboardingPostMutationOptions( + options, + ), + queryClient, + ); +}; +/** + * List task tags available to the board's organization. + * @summary List Task Tags + */ +export type listTaskTagsApiV1AgentBoardsBoardIdTagsGetResponse200 = { + data: TaskTagRef[]; + status: 200; +}; + +export type listTaskTagsApiV1AgentBoardsBoardIdTagsGetResponse422 = { + data: HTTPValidationError; + status: 422; +}; + +export type listTaskTagsApiV1AgentBoardsBoardIdTagsGetResponseSuccess = + listTaskTagsApiV1AgentBoardsBoardIdTagsGetResponse200 & { + headers: Headers; + }; +export type listTaskTagsApiV1AgentBoardsBoardIdTagsGetResponseError = + listTaskTagsApiV1AgentBoardsBoardIdTagsGetResponse422 & { + headers: Headers; + }; + +export type listTaskTagsApiV1AgentBoardsBoardIdTagsGetResponse = + | listTaskTagsApiV1AgentBoardsBoardIdTagsGetResponseSuccess + | listTaskTagsApiV1AgentBoardsBoardIdTagsGetResponseError; + +export const getListTaskTagsApiV1AgentBoardsBoardIdTagsGetUrl = ( + boardId: string, +) => { + return `/api/v1/agent/boards/${boardId}/tags`; +}; + +export const listTaskTagsApiV1AgentBoardsBoardIdTagsGet = async ( + boardId: string, + options?: RequestInit, +): Promise => { + return customFetch( + getListTaskTagsApiV1AgentBoardsBoardIdTagsGetUrl(boardId), + { + ...options, + method: "GET", + }, + ); +}; + +export const getListTaskTagsApiV1AgentBoardsBoardIdTagsGetQueryKey = ( + boardId: string, +) => { + return [`/api/v1/agent/boards/${boardId}/tags`] as const; +}; + +export const getListTaskTagsApiV1AgentBoardsBoardIdTagsGetQueryOptions = < + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + boardId: string, + options?: { + query?: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + >; + request?: SecondParameter; + }, +) => { + const { query: queryOptions, request: requestOptions } = options ?? {}; + + const queryKey = + queryOptions?.queryKey ?? + getListTaskTagsApiV1AgentBoardsBoardIdTagsGetQueryKey(boardId); + + const queryFn: QueryFunction< + Awaited> + > = ({ signal }) => + listTaskTagsApiV1AgentBoardsBoardIdTagsGet(boardId, { + signal, + ...requestOptions, + }); + + return { + queryKey, + queryFn, + enabled: !!boardId, + ...queryOptions, + } as UseQueryOptions< + Awaited>, + TError, + TData + > & { queryKey: DataTag }; +}; + +export type ListTaskTagsApiV1AgentBoardsBoardIdTagsGetQueryResult = NonNullable< + Awaited> +>; +export type ListTaskTagsApiV1AgentBoardsBoardIdTagsGetQueryError = + HTTPValidationError; + +export function useListTaskTagsApiV1AgentBoardsBoardIdTagsGet< + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + boardId: string, + options: { + query: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + > & + Pick< + DefinedInitialDataOptions< + Awaited< + ReturnType + >, + TError, + Awaited> + >, + "initialData" + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): DefinedUseQueryResult & { + queryKey: DataTag; +}; +export function useListTaskTagsApiV1AgentBoardsBoardIdTagsGet< + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + boardId: string, + options?: { + query?: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + > & + Pick< + UndefinedInitialDataOptions< + Awaited< + ReturnType + >, + TError, + Awaited> + >, + "initialData" + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +}; +export function useListTaskTagsApiV1AgentBoardsBoardIdTagsGet< + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + boardId: string, + options?: { + query?: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +}; +/** + * @summary List Task Tags + */ + +export function useListTaskTagsApiV1AgentBoardsBoardIdTagsGet< + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + boardId: string, + options?: { + query?: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +} { + const queryOptions = + getListTaskTagsApiV1AgentBoardsBoardIdTagsGetQueryOptions(boardId, options); + + const query = useQuery(queryOptions, queryClient) as UseQueryResult< + TData, + TError + > & { queryKey: DataTag }; + + return { ...query, queryKey: queryOptions.queryKey }; +} + /** * List tasks on a board with optional status and assignment filters. * @summary List Tasks @@ -1803,1857 +3912,6 @@ export const useCreateTaskCommentApiV1AgentBoardsBoardIdTasksTaskIdCommentsPost queryClient, ); }; -/** - * List board memory entries with optional chat filtering. - * @summary List Board Memory - */ -export type listBoardMemoryApiV1AgentBoardsBoardIdMemoryGetResponse200 = { - data: LimitOffsetPageTypeVarCustomizedBoardMemoryRead; - status: 200; -}; - -export type listBoardMemoryApiV1AgentBoardsBoardIdMemoryGetResponse422 = { - data: HTTPValidationError; - status: 422; -}; - -export type listBoardMemoryApiV1AgentBoardsBoardIdMemoryGetResponseSuccess = - listBoardMemoryApiV1AgentBoardsBoardIdMemoryGetResponse200 & { - headers: Headers; - }; -export type listBoardMemoryApiV1AgentBoardsBoardIdMemoryGetResponseError = - listBoardMemoryApiV1AgentBoardsBoardIdMemoryGetResponse422 & { - headers: Headers; - }; - -export type listBoardMemoryApiV1AgentBoardsBoardIdMemoryGetResponse = - | listBoardMemoryApiV1AgentBoardsBoardIdMemoryGetResponseSuccess - | listBoardMemoryApiV1AgentBoardsBoardIdMemoryGetResponseError; - -export const getListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetUrl = ( - boardId: string, - params?: ListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetParams, -) => { - const normalizedParams = new URLSearchParams(); - - Object.entries(params || {}).forEach(([key, value]) => { - if (value !== undefined) { - normalizedParams.append(key, value === null ? "null" : value.toString()); - } - }); - - const stringifiedParams = normalizedParams.toString(); - - return stringifiedParams.length > 0 - ? `/api/v1/agent/boards/${boardId}/memory?${stringifiedParams}` - : `/api/v1/agent/boards/${boardId}/memory`; -}; - -export const listBoardMemoryApiV1AgentBoardsBoardIdMemoryGet = async ( - boardId: string, - params?: ListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetParams, - options?: RequestInit, -): Promise => { - return customFetch( - getListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetUrl(boardId, params), - { - ...options, - method: "GET", - }, - ); -}; - -export const getListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetQueryKey = ( - boardId: string, - params?: ListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetParams, -) => { - return [ - `/api/v1/agent/boards/${boardId}/memory`, - ...(params ? [params] : []), - ] as const; -}; - -export const getListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetQueryOptions = < - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - boardId: string, - params?: ListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetParams, - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - >; - request?: SecondParameter; - }, -) => { - const { query: queryOptions, request: requestOptions } = options ?? {}; - - const queryKey = - queryOptions?.queryKey ?? - getListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetQueryKey(boardId, params); - - const queryFn: QueryFunction< - Awaited> - > = ({ signal }) => - listBoardMemoryApiV1AgentBoardsBoardIdMemoryGet(boardId, params, { - signal, - ...requestOptions, - }); - - return { - queryKey, - queryFn, - enabled: !!boardId, - ...queryOptions, - } as UseQueryOptions< - Awaited>, - TError, - TData - > & { queryKey: DataTag }; -}; - -export type ListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetQueryResult = - NonNullable< - Awaited> - >; -export type ListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetQueryError = - HTTPValidationError; - -export function useListBoardMemoryApiV1AgentBoardsBoardIdMemoryGet< - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - boardId: string, - params: undefined | ListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetParams, - options: { - query: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - > & - Pick< - DefinedInitialDataOptions< - Awaited< - ReturnType - >, - TError, - Awaited< - ReturnType - > - >, - "initialData" - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): DefinedUseQueryResult & { - queryKey: DataTag; -}; -export function useListBoardMemoryApiV1AgentBoardsBoardIdMemoryGet< - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - boardId: string, - params?: ListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetParams, - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - > & - Pick< - UndefinedInitialDataOptions< - Awaited< - ReturnType - >, - TError, - Awaited< - ReturnType - > - >, - "initialData" - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -}; -export function useListBoardMemoryApiV1AgentBoardsBoardIdMemoryGet< - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - boardId: string, - params?: ListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetParams, - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -}; -/** - * @summary List Board Memory - */ - -export function useListBoardMemoryApiV1AgentBoardsBoardIdMemoryGet< - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - boardId: string, - params?: ListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetParams, - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -} { - const queryOptions = - getListBoardMemoryApiV1AgentBoardsBoardIdMemoryGetQueryOptions( - boardId, - params, - options, - ); - - const query = useQuery(queryOptions, queryClient) as UseQueryResult< - TData, - TError - > & { queryKey: DataTag }; - - return { ...query, queryKey: queryOptions.queryKey }; -} - -/** - * Create a board memory entry. - * @summary Create Board Memory - */ -export type createBoardMemoryApiV1AgentBoardsBoardIdMemoryPostResponse200 = { - data: BoardMemoryRead; - status: 200; -}; - -export type createBoardMemoryApiV1AgentBoardsBoardIdMemoryPostResponse422 = { - data: HTTPValidationError; - status: 422; -}; - -export type createBoardMemoryApiV1AgentBoardsBoardIdMemoryPostResponseSuccess = - createBoardMemoryApiV1AgentBoardsBoardIdMemoryPostResponse200 & { - headers: Headers; - }; -export type createBoardMemoryApiV1AgentBoardsBoardIdMemoryPostResponseError = - createBoardMemoryApiV1AgentBoardsBoardIdMemoryPostResponse422 & { - headers: Headers; - }; - -export type createBoardMemoryApiV1AgentBoardsBoardIdMemoryPostResponse = - | createBoardMemoryApiV1AgentBoardsBoardIdMemoryPostResponseSuccess - | createBoardMemoryApiV1AgentBoardsBoardIdMemoryPostResponseError; - -export const getCreateBoardMemoryApiV1AgentBoardsBoardIdMemoryPostUrl = ( - boardId: string, -) => { - return `/api/v1/agent/boards/${boardId}/memory`; -}; - -export const createBoardMemoryApiV1AgentBoardsBoardIdMemoryPost = async ( - boardId: string, - boardMemoryCreate: BoardMemoryCreate, - options?: RequestInit, -): Promise => { - return customFetch( - getCreateBoardMemoryApiV1AgentBoardsBoardIdMemoryPostUrl(boardId), - { - ...options, - method: "POST", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(boardMemoryCreate), - }, - ); -}; - -export const getCreateBoardMemoryApiV1AgentBoardsBoardIdMemoryPostMutationOptions = - (options?: { - mutation?: UseMutationOptions< - Awaited< - ReturnType - >, - TError, - { boardId: string; data: BoardMemoryCreate }, - TContext - >; - request?: SecondParameter; - }): UseMutationOptions< - Awaited< - ReturnType - >, - TError, - { boardId: string; data: BoardMemoryCreate }, - TContext - > => { - const mutationKey = ["createBoardMemoryApiV1AgentBoardsBoardIdMemoryPost"]; - const { mutation: mutationOptions, request: requestOptions } = options - ? options.mutation && - "mutationKey" in options.mutation && - options.mutation.mutationKey - ? options - : { ...options, mutation: { ...options.mutation, mutationKey } } - : { mutation: { mutationKey }, request: undefined }; - - const mutationFn: MutationFunction< - Awaited< - ReturnType - >, - { boardId: string; data: BoardMemoryCreate } - > = (props) => { - const { boardId, data } = props ?? {}; - - return createBoardMemoryApiV1AgentBoardsBoardIdMemoryPost( - boardId, - data, - requestOptions, - ); - }; - - return { mutationFn, ...mutationOptions }; - }; - -export type CreateBoardMemoryApiV1AgentBoardsBoardIdMemoryPostMutationResult = - NonNullable< - Awaited< - ReturnType - > - >; -export type CreateBoardMemoryApiV1AgentBoardsBoardIdMemoryPostMutationBody = - BoardMemoryCreate; -export type CreateBoardMemoryApiV1AgentBoardsBoardIdMemoryPostMutationError = - HTTPValidationError; - -/** - * @summary Create Board Memory - */ -export const useCreateBoardMemoryApiV1AgentBoardsBoardIdMemoryPost = < - TError = HTTPValidationError, - TContext = unknown, ->( - options?: { - mutation?: UseMutationOptions< - Awaited< - ReturnType - >, - TError, - { boardId: string; data: BoardMemoryCreate }, - TContext - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseMutationResult< - Awaited< - ReturnType - >, - TError, - { boardId: string; data: BoardMemoryCreate }, - TContext -> => { - return useMutation( - getCreateBoardMemoryApiV1AgentBoardsBoardIdMemoryPostMutationOptions( - options, - ), - queryClient, - ); -}; -/** - * List approvals for a board. - * @summary List Approvals - */ -export type listApprovalsApiV1AgentBoardsBoardIdApprovalsGetResponse200 = { - data: LimitOffsetPageTypeVarCustomizedApprovalRead; - status: 200; -}; - -export type listApprovalsApiV1AgentBoardsBoardIdApprovalsGetResponse422 = { - data: HTTPValidationError; - status: 422; -}; - -export type listApprovalsApiV1AgentBoardsBoardIdApprovalsGetResponseSuccess = - listApprovalsApiV1AgentBoardsBoardIdApprovalsGetResponse200 & { - headers: Headers; - }; -export type listApprovalsApiV1AgentBoardsBoardIdApprovalsGetResponseError = - listApprovalsApiV1AgentBoardsBoardIdApprovalsGetResponse422 & { - headers: Headers; - }; - -export type listApprovalsApiV1AgentBoardsBoardIdApprovalsGetResponse = - | listApprovalsApiV1AgentBoardsBoardIdApprovalsGetResponseSuccess - | listApprovalsApiV1AgentBoardsBoardIdApprovalsGetResponseError; - -export const getListApprovalsApiV1AgentBoardsBoardIdApprovalsGetUrl = ( - boardId: string, - params?: ListApprovalsApiV1AgentBoardsBoardIdApprovalsGetParams, -) => { - const normalizedParams = new URLSearchParams(); - - Object.entries(params || {}).forEach(([key, value]) => { - if (value !== undefined) { - normalizedParams.append(key, value === null ? "null" : value.toString()); - } - }); - - const stringifiedParams = normalizedParams.toString(); - - return stringifiedParams.length > 0 - ? `/api/v1/agent/boards/${boardId}/approvals?${stringifiedParams}` - : `/api/v1/agent/boards/${boardId}/approvals`; -}; - -export const listApprovalsApiV1AgentBoardsBoardIdApprovalsGet = async ( - boardId: string, - params?: ListApprovalsApiV1AgentBoardsBoardIdApprovalsGetParams, - options?: RequestInit, -): Promise => { - return customFetch( - getListApprovalsApiV1AgentBoardsBoardIdApprovalsGetUrl(boardId, params), - { - ...options, - method: "GET", - }, - ); -}; - -export const getListApprovalsApiV1AgentBoardsBoardIdApprovalsGetQueryKey = ( - boardId: string, - params?: ListApprovalsApiV1AgentBoardsBoardIdApprovalsGetParams, -) => { - return [ - `/api/v1/agent/boards/${boardId}/approvals`, - ...(params ? [params] : []), - ] as const; -}; - -export const getListApprovalsApiV1AgentBoardsBoardIdApprovalsGetQueryOptions = < - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - boardId: string, - params?: ListApprovalsApiV1AgentBoardsBoardIdApprovalsGetParams, - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - >; - request?: SecondParameter; - }, -) => { - const { query: queryOptions, request: requestOptions } = options ?? {}; - - const queryKey = - queryOptions?.queryKey ?? - getListApprovalsApiV1AgentBoardsBoardIdApprovalsGetQueryKey( - boardId, - params, - ); - - const queryFn: QueryFunction< - Awaited> - > = ({ signal }) => - listApprovalsApiV1AgentBoardsBoardIdApprovalsGet(boardId, params, { - signal, - ...requestOptions, - }); - - return { - queryKey, - queryFn, - enabled: !!boardId, - ...queryOptions, - } as UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > & { queryKey: DataTag }; -}; - -export type ListApprovalsApiV1AgentBoardsBoardIdApprovalsGetQueryResult = - NonNullable< - Awaited> - >; -export type ListApprovalsApiV1AgentBoardsBoardIdApprovalsGetQueryError = - HTTPValidationError; - -export function useListApprovalsApiV1AgentBoardsBoardIdApprovalsGet< - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - boardId: string, - params: undefined | ListApprovalsApiV1AgentBoardsBoardIdApprovalsGetParams, - options: { - query: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - > & - Pick< - DefinedInitialDataOptions< - Awaited< - ReturnType - >, - TError, - Awaited< - ReturnType - > - >, - "initialData" - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): DefinedUseQueryResult & { - queryKey: DataTag; -}; -export function useListApprovalsApiV1AgentBoardsBoardIdApprovalsGet< - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - boardId: string, - params?: ListApprovalsApiV1AgentBoardsBoardIdApprovalsGetParams, - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - > & - Pick< - UndefinedInitialDataOptions< - Awaited< - ReturnType - >, - TError, - Awaited< - ReturnType - > - >, - "initialData" - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -}; -export function useListApprovalsApiV1AgentBoardsBoardIdApprovalsGet< - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - boardId: string, - params?: ListApprovalsApiV1AgentBoardsBoardIdApprovalsGetParams, - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -}; -/** - * @summary List Approvals - */ - -export function useListApprovalsApiV1AgentBoardsBoardIdApprovalsGet< - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - boardId: string, - params?: ListApprovalsApiV1AgentBoardsBoardIdApprovalsGetParams, - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -} { - const queryOptions = - getListApprovalsApiV1AgentBoardsBoardIdApprovalsGetQueryOptions( - boardId, - params, - options, - ); - - const query = useQuery(queryOptions, queryClient) as UseQueryResult< - TData, - TError - > & { queryKey: DataTag }; - - return { ...query, queryKey: queryOptions.queryKey }; -} - -/** - * Create a board approval request. - * @summary Create Approval - */ -export type createApprovalApiV1AgentBoardsBoardIdApprovalsPostResponse200 = { - data: ApprovalRead; - status: 200; -}; - -export type createApprovalApiV1AgentBoardsBoardIdApprovalsPostResponse422 = { - data: HTTPValidationError; - status: 422; -}; - -export type createApprovalApiV1AgentBoardsBoardIdApprovalsPostResponseSuccess = - createApprovalApiV1AgentBoardsBoardIdApprovalsPostResponse200 & { - headers: Headers; - }; -export type createApprovalApiV1AgentBoardsBoardIdApprovalsPostResponseError = - createApprovalApiV1AgentBoardsBoardIdApprovalsPostResponse422 & { - headers: Headers; - }; - -export type createApprovalApiV1AgentBoardsBoardIdApprovalsPostResponse = - | createApprovalApiV1AgentBoardsBoardIdApprovalsPostResponseSuccess - | createApprovalApiV1AgentBoardsBoardIdApprovalsPostResponseError; - -export const getCreateApprovalApiV1AgentBoardsBoardIdApprovalsPostUrl = ( - boardId: string, -) => { - return `/api/v1/agent/boards/${boardId}/approvals`; -}; - -export const createApprovalApiV1AgentBoardsBoardIdApprovalsPost = async ( - boardId: string, - approvalCreate: ApprovalCreate, - options?: RequestInit, -): Promise => { - return customFetch( - getCreateApprovalApiV1AgentBoardsBoardIdApprovalsPostUrl(boardId), - { - ...options, - method: "POST", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(approvalCreate), - }, - ); -}; - -export const getCreateApprovalApiV1AgentBoardsBoardIdApprovalsPostMutationOptions = - (options?: { - mutation?: UseMutationOptions< - Awaited< - ReturnType - >, - TError, - { boardId: string; data: ApprovalCreate }, - TContext - >; - request?: SecondParameter; - }): UseMutationOptions< - Awaited< - ReturnType - >, - TError, - { boardId: string; data: ApprovalCreate }, - TContext - > => { - const mutationKey = ["createApprovalApiV1AgentBoardsBoardIdApprovalsPost"]; - const { mutation: mutationOptions, request: requestOptions } = options - ? options.mutation && - "mutationKey" in options.mutation && - options.mutation.mutationKey - ? options - : { ...options, mutation: { ...options.mutation, mutationKey } } - : { mutation: { mutationKey }, request: undefined }; - - const mutationFn: MutationFunction< - Awaited< - ReturnType - >, - { boardId: string; data: ApprovalCreate } - > = (props) => { - const { boardId, data } = props ?? {}; - - return createApprovalApiV1AgentBoardsBoardIdApprovalsPost( - boardId, - data, - requestOptions, - ); - }; - - return { mutationFn, ...mutationOptions }; - }; - -export type CreateApprovalApiV1AgentBoardsBoardIdApprovalsPostMutationResult = - NonNullable< - Awaited< - ReturnType - > - >; -export type CreateApprovalApiV1AgentBoardsBoardIdApprovalsPostMutationBody = - ApprovalCreate; -export type CreateApprovalApiV1AgentBoardsBoardIdApprovalsPostMutationError = - HTTPValidationError; - -/** - * @summary Create Approval - */ -export const useCreateApprovalApiV1AgentBoardsBoardIdApprovalsPost = < - TError = HTTPValidationError, - TContext = unknown, ->( - options?: { - mutation?: UseMutationOptions< - Awaited< - ReturnType - >, - TError, - { boardId: string; data: ApprovalCreate }, - TContext - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseMutationResult< - Awaited< - ReturnType - >, - TError, - { boardId: string; data: ApprovalCreate }, - TContext -> => { - return useMutation( - getCreateApprovalApiV1AgentBoardsBoardIdApprovalsPostMutationOptions( - options, - ), - queryClient, - ); -}; -/** - * Apply onboarding updates for a board. - * @summary Update Onboarding - */ -export type updateOnboardingApiV1AgentBoardsBoardIdOnboardingPostResponse200 = { - data: BoardOnboardingRead; - status: 200; -}; - -export type updateOnboardingApiV1AgentBoardsBoardIdOnboardingPostResponse422 = { - data: HTTPValidationError; - status: 422; -}; - -export type updateOnboardingApiV1AgentBoardsBoardIdOnboardingPostResponseSuccess = - updateOnboardingApiV1AgentBoardsBoardIdOnboardingPostResponse200 & { - headers: Headers; - }; -export type updateOnboardingApiV1AgentBoardsBoardIdOnboardingPostResponseError = - updateOnboardingApiV1AgentBoardsBoardIdOnboardingPostResponse422 & { - headers: Headers; - }; - -export type updateOnboardingApiV1AgentBoardsBoardIdOnboardingPostResponse = - | updateOnboardingApiV1AgentBoardsBoardIdOnboardingPostResponseSuccess - | updateOnboardingApiV1AgentBoardsBoardIdOnboardingPostResponseError; - -export const getUpdateOnboardingApiV1AgentBoardsBoardIdOnboardingPostUrl = ( - boardId: string, -) => { - return `/api/v1/agent/boards/${boardId}/onboarding`; -}; - -export const updateOnboardingApiV1AgentBoardsBoardIdOnboardingPost = async ( - boardId: string, - boardOnboardingAgentCompleteBoardOnboardingAgentQuestion: - | BoardOnboardingAgentComplete - | BoardOnboardingAgentQuestion, - options?: RequestInit, -): Promise => { - return customFetch( - getUpdateOnboardingApiV1AgentBoardsBoardIdOnboardingPostUrl(boardId), - { - ...options, - method: "POST", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify( - boardOnboardingAgentCompleteBoardOnboardingAgentQuestion, - ), - }, - ); -}; - -export const getUpdateOnboardingApiV1AgentBoardsBoardIdOnboardingPostMutationOptions = - (options?: { - mutation?: UseMutationOptions< - Awaited< - ReturnType - >, - TError, - { - boardId: string; - data: BoardOnboardingAgentComplete | BoardOnboardingAgentQuestion; - }, - TContext - >; - request?: SecondParameter; - }): UseMutationOptions< - Awaited< - ReturnType - >, - TError, - { - boardId: string; - data: BoardOnboardingAgentComplete | BoardOnboardingAgentQuestion; - }, - TContext - > => { - const mutationKey = [ - "updateOnboardingApiV1AgentBoardsBoardIdOnboardingPost", - ]; - const { mutation: mutationOptions, request: requestOptions } = options - ? options.mutation && - "mutationKey" in options.mutation && - options.mutation.mutationKey - ? options - : { ...options, mutation: { ...options.mutation, mutationKey } } - : { mutation: { mutationKey }, request: undefined }; - - const mutationFn: MutationFunction< - Awaited< - ReturnType - >, - { - boardId: string; - data: BoardOnboardingAgentComplete | BoardOnboardingAgentQuestion; - } - > = (props) => { - const { boardId, data } = props ?? {}; - - return updateOnboardingApiV1AgentBoardsBoardIdOnboardingPost( - boardId, - data, - requestOptions, - ); - }; - - return { mutationFn, ...mutationOptions }; - }; - -export type UpdateOnboardingApiV1AgentBoardsBoardIdOnboardingPostMutationResult = - NonNullable< - Awaited< - ReturnType - > - >; -export type UpdateOnboardingApiV1AgentBoardsBoardIdOnboardingPostMutationBody = - | BoardOnboardingAgentComplete - | BoardOnboardingAgentQuestion; -export type UpdateOnboardingApiV1AgentBoardsBoardIdOnboardingPostMutationError = - HTTPValidationError; - -/** - * @summary Update Onboarding - */ -export const useUpdateOnboardingApiV1AgentBoardsBoardIdOnboardingPost = < - TError = HTTPValidationError, - TContext = unknown, ->( - options?: { - mutation?: UseMutationOptions< - Awaited< - ReturnType - >, - TError, - { - boardId: string; - data: BoardOnboardingAgentComplete | BoardOnboardingAgentQuestion; - }, - TContext - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseMutationResult< - Awaited< - ReturnType - >, - TError, - { - boardId: string; - data: BoardOnboardingAgentComplete | BoardOnboardingAgentQuestion; - }, - TContext -> => { - return useMutation( - getUpdateOnboardingApiV1AgentBoardsBoardIdOnboardingPostMutationOptions( - options, - ), - queryClient, - ); -}; -/** - * Send a direct nudge message to a board agent. - * @summary Nudge Agent - */ -export type nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostResponse200 = - { - data: OkResponse; - status: 200; - }; - -export type nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostResponse422 = - { - data: HTTPValidationError; - status: 422; - }; - -export type nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostResponseSuccess = - nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostResponse200 & { - headers: Headers; - }; -export type nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostResponseError = - nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostResponse422 & { - headers: Headers; - }; - -export type nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostResponse = - | nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostResponseSuccess - | nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostResponseError; - -export const getNudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostUrl = ( - boardId: string, - agentId: string, -) => { - return `/api/v1/agent/boards/${boardId}/agents/${agentId}/nudge`; -}; - -export const nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePost = async ( - boardId: string, - agentId: string, - agentNudge: AgentNudge, - options?: RequestInit, -): Promise => { - return customFetch( - getNudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostUrl( - boardId, - agentId, - ), - { - ...options, - method: "POST", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(agentNudge), - }, - ); -}; - -export const getNudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostMutationOptions = - (options?: { - mutation?: UseMutationOptions< - Awaited< - ReturnType< - typeof nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePost - > - >, - TError, - { boardId: string; agentId: string; data: AgentNudge }, - TContext - >; - request?: SecondParameter; - }): UseMutationOptions< - Awaited< - ReturnType - >, - TError, - { boardId: string; agentId: string; data: AgentNudge }, - TContext - > => { - const mutationKey = [ - "nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePost", - ]; - const { mutation: mutationOptions, request: requestOptions } = options - ? options.mutation && - "mutationKey" in options.mutation && - options.mutation.mutationKey - ? options - : { ...options, mutation: { ...options.mutation, mutationKey } } - : { mutation: { mutationKey }, request: undefined }; - - const mutationFn: MutationFunction< - Awaited< - ReturnType< - typeof nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePost - > - >, - { boardId: string; agentId: string; data: AgentNudge } - > = (props) => { - const { boardId, agentId, data } = props ?? {}; - - return nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePost( - boardId, - agentId, - data, - requestOptions, - ); - }; - - return { mutationFn, ...mutationOptions }; - }; - -export type NudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostMutationResult = - NonNullable< - Awaited< - ReturnType - > - >; -export type NudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostMutationBody = - AgentNudge; -export type NudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostMutationError = - HTTPValidationError; - -/** - * @summary Nudge Agent - */ -export const useNudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePost = < - TError = HTTPValidationError, - TContext = unknown, ->( - options?: { - mutation?: UseMutationOptions< - Awaited< - ReturnType< - typeof nudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePost - > - >, - TError, - { boardId: string; agentId: string; data: AgentNudge }, - TContext - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseMutationResult< - Awaited< - ReturnType - >, - TError, - { boardId: string; agentId: string; data: AgentNudge }, - TContext -> => { - return useMutation( - getNudgeAgentApiV1AgentBoardsBoardIdAgentsAgentIdNudgePostMutationOptions( - options, - ), - queryClient, - ); -}; -/** - * Record heartbeat status for the authenticated agent. - * @summary Agent Heartbeat - */ -export type agentHeartbeatApiV1AgentHeartbeatPostResponse200 = { - data: AgentRead; - status: 200; -}; - -export type agentHeartbeatApiV1AgentHeartbeatPostResponse422 = { - data: HTTPValidationError; - status: 422; -}; - -export type agentHeartbeatApiV1AgentHeartbeatPostResponseSuccess = - agentHeartbeatApiV1AgentHeartbeatPostResponse200 & { - headers: Headers; - }; -export type agentHeartbeatApiV1AgentHeartbeatPostResponseError = - agentHeartbeatApiV1AgentHeartbeatPostResponse422 & { - headers: Headers; - }; - -export type agentHeartbeatApiV1AgentHeartbeatPostResponse = - | agentHeartbeatApiV1AgentHeartbeatPostResponseSuccess - | agentHeartbeatApiV1AgentHeartbeatPostResponseError; - -export const getAgentHeartbeatApiV1AgentHeartbeatPostUrl = () => { - return `/api/v1/agent/heartbeat`; -}; - -export const agentHeartbeatApiV1AgentHeartbeatPost = async ( - agentHeartbeatCreate: AgentHeartbeatCreate, - options?: RequestInit, -): Promise => { - return customFetch( - getAgentHeartbeatApiV1AgentHeartbeatPostUrl(), - { - ...options, - method: "POST", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(agentHeartbeatCreate), - }, - ); -}; - -export const getAgentHeartbeatApiV1AgentHeartbeatPostMutationOptions = < - TError = HTTPValidationError, - TContext = unknown, ->(options?: { - mutation?: UseMutationOptions< - Awaited>, - TError, - { data: AgentHeartbeatCreate }, - TContext - >; - request?: SecondParameter; -}): UseMutationOptions< - Awaited>, - TError, - { data: AgentHeartbeatCreate }, - TContext -> => { - const mutationKey = ["agentHeartbeatApiV1AgentHeartbeatPost"]; - const { mutation: mutationOptions, request: requestOptions } = options - ? options.mutation && - "mutationKey" in options.mutation && - options.mutation.mutationKey - ? options - : { ...options, mutation: { ...options.mutation, mutationKey } } - : { mutation: { mutationKey }, request: undefined }; - - const mutationFn: MutationFunction< - Awaited>, - { data: AgentHeartbeatCreate } - > = (props) => { - const { data } = props ?? {}; - - return agentHeartbeatApiV1AgentHeartbeatPost(data, requestOptions); - }; - - return { mutationFn, ...mutationOptions }; -}; - -export type AgentHeartbeatApiV1AgentHeartbeatPostMutationResult = NonNullable< - Awaited> ->; -export type AgentHeartbeatApiV1AgentHeartbeatPostMutationBody = - AgentHeartbeatCreate; -export type AgentHeartbeatApiV1AgentHeartbeatPostMutationError = - HTTPValidationError; - -/** - * @summary Agent Heartbeat - */ -export const useAgentHeartbeatApiV1AgentHeartbeatPost = < - TError = HTTPValidationError, - TContext = unknown, ->( - options?: { - mutation?: UseMutationOptions< - Awaited>, - TError, - { data: AgentHeartbeatCreate }, - TContext - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseMutationResult< - Awaited>, - TError, - { data: AgentHeartbeatCreate }, - TContext -> => { - return useMutation( - getAgentHeartbeatApiV1AgentHeartbeatPostMutationOptions(options), - queryClient, - ); -}; -/** - * Fetch the target agent's SOUL.md content from the gateway. - * @summary Get Agent Soul - */ -export type getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetResponse200 = - { - data: string; - status: 200; - }; - -export type getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetResponse422 = - { - data: HTTPValidationError; - status: 422; - }; - -export type getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetResponseSuccess = - getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetResponse200 & { - headers: Headers; - }; -export type getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetResponseError = - getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetResponse422 & { - headers: Headers; - }; - -export type getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetResponse = - | getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetResponseSuccess - | getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetResponseError; - -export const getGetAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetUrl = ( - boardId: string, - agentId: string, -) => { - return `/api/v1/agent/boards/${boardId}/agents/${agentId}/soul`; -}; - -export const getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet = async ( - boardId: string, - agentId: string, - options?: RequestInit, -): Promise => { - return customFetch( - getGetAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetUrl( - boardId, - agentId, - ), - { - ...options, - method: "GET", - }, - ); -}; - -export const getGetAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetQueryKey = - (boardId: string, agentId: string) => { - return [`/api/v1/agent/boards/${boardId}/agents/${agentId}/soul`] as const; - }; - -export const getGetAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetQueryOptions = - < - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, - >( - boardId: string, - agentId: string, - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType< - typeof getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet - > - >, - TError, - TData - > - >; - request?: SecondParameter; - }, - ) => { - const { query: queryOptions, request: requestOptions } = options ?? {}; - - const queryKey = - queryOptions?.queryKey ?? - getGetAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetQueryKey( - boardId, - agentId, - ); - - const queryFn: QueryFunction< - Awaited< - ReturnType< - typeof getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet - > - > - > = ({ signal }) => - getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet( - boardId, - agentId, - { signal, ...requestOptions }, - ); - - return { - queryKey, - queryFn, - enabled: !!(boardId && agentId), - ...queryOptions, - } as UseQueryOptions< - Awaited< - ReturnType< - typeof getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet - > - >, - TError, - TData - > & { queryKey: DataTag }; - }; - -export type GetAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetQueryResult = - NonNullable< - Awaited< - ReturnType - > - >; -export type GetAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetQueryError = - HTTPValidationError; - -export function useGetAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet< - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - boardId: string, - agentId: string, - options: { - query: Partial< - UseQueryOptions< - Awaited< - ReturnType< - typeof getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet - > - >, - TError, - TData - > - > & - Pick< - DefinedInitialDataOptions< - Awaited< - ReturnType< - typeof getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet - > - >, - TError, - Awaited< - ReturnType< - typeof getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet - > - > - >, - "initialData" - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): DefinedUseQueryResult & { - queryKey: DataTag; -}; -export function useGetAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet< - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - boardId: string, - agentId: string, - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType< - typeof getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet - > - >, - TError, - TData - > - > & - Pick< - UndefinedInitialDataOptions< - Awaited< - ReturnType< - typeof getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet - > - >, - TError, - Awaited< - ReturnType< - typeof getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet - > - > - >, - "initialData" - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -}; -export function useGetAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet< - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - boardId: string, - agentId: string, - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType< - typeof getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet - > - >, - TError, - TData - > - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -}; -/** - * @summary Get Agent Soul - */ - -export function useGetAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet< - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - boardId: string, - agentId: string, - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType< - typeof getAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGet - > - >, - TError, - TData - > - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -} { - const queryOptions = - getGetAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulGetQueryOptions( - boardId, - agentId, - options, - ); - - const query = useQuery(queryOptions, queryClient) as UseQueryResult< - TData, - TError - > & { queryKey: DataTag }; - - return { ...query, queryKey: queryOptions.queryKey }; -} - -/** - * Update an agent's SOUL.md content in DB and gateway. - * @summary Update Agent Soul - */ -export type updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutResponse200 = - { - data: OkResponse; - status: 200; - }; - -export type updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutResponse422 = - { - data: HTTPValidationError; - status: 422; - }; - -export type updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutResponseSuccess = - updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutResponse200 & { - headers: Headers; - }; -export type updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutResponseError = - updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutResponse422 & { - headers: Headers; - }; - -export type updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutResponse = - | updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutResponseSuccess - | updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutResponseError; - -export const getUpdateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutUrl = - (boardId: string, agentId: string) => { - return `/api/v1/agent/boards/${boardId}/agents/${agentId}/soul`; - }; - -export const updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPut = - async ( - boardId: string, - agentId: string, - soulUpdateRequest: SoulUpdateRequest, - options?: RequestInit, - ): Promise => { - return customFetch( - getUpdateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutUrl( - boardId, - agentId, - ), - { - ...options, - method: "PUT", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(soulUpdateRequest), - }, - ); - }; - -export const getUpdateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutMutationOptions = - (options?: { - mutation?: UseMutationOptions< - Awaited< - ReturnType< - typeof updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPut - > - >, - TError, - { boardId: string; agentId: string; data: SoulUpdateRequest }, - TContext - >; - request?: SecondParameter; - }): UseMutationOptions< - Awaited< - ReturnType< - typeof updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPut - > - >, - TError, - { boardId: string; agentId: string; data: SoulUpdateRequest }, - TContext - > => { - const mutationKey = [ - "updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPut", - ]; - const { mutation: mutationOptions, request: requestOptions } = options - ? options.mutation && - "mutationKey" in options.mutation && - options.mutation.mutationKey - ? options - : { ...options, mutation: { ...options.mutation, mutationKey } } - : { mutation: { mutationKey }, request: undefined }; - - const mutationFn: MutationFunction< - Awaited< - ReturnType< - typeof updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPut - > - >, - { boardId: string; agentId: string; data: SoulUpdateRequest } - > = (props) => { - const { boardId, agentId, data } = props ?? {}; - - return updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPut( - boardId, - agentId, - data, - requestOptions, - ); - }; - - return { mutationFn, ...mutationOptions }; - }; - -export type UpdateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutMutationResult = - NonNullable< - Awaited< - ReturnType< - typeof updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPut - > - > - >; -export type UpdateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutMutationBody = - SoulUpdateRequest; -export type UpdateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutMutationError = - HTTPValidationError; - -/** - * @summary Update Agent Soul - */ -export const useUpdateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPut = < - TError = HTTPValidationError, - TContext = unknown, ->( - options?: { - mutation?: UseMutationOptions< - Awaited< - ReturnType< - typeof updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPut - > - >, - TError, - { boardId: string; agentId: string; data: SoulUpdateRequest }, - TContext - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseMutationResult< - Awaited< - ReturnType< - typeof updateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPut - > - >, - TError, - { boardId: string; agentId: string; data: SoulUpdateRequest }, - TContext -> => { - return useMutation( - getUpdateAgentSoulApiV1AgentBoardsBoardIdAgentsAgentIdSoulPutMutationOptions( - options, - ), - queryClient, - ); -}; -/** - * Route a lead's ask-user request through the dedicated gateway agent. - * @summary Ask User Via Gateway Main - */ -export type askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostResponse200 = - { - data: GatewayMainAskUserResponse; - status: 200; - }; - -export type askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostResponse422 = - { - data: HTTPValidationError; - status: 422; - }; - -export type askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostResponseSuccess = - askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostResponse200 & { - headers: Headers; - }; -export type askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostResponseError = - askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostResponse422 & { - headers: Headers; - }; - -export type askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostResponse = - - | askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostResponseSuccess - | askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostResponseError; - -export const getAskUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostUrl = - (boardId: string) => { - return `/api/v1/agent/boards/${boardId}/gateway/main/ask-user`; - }; - -export const askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPost = - async ( - boardId: string, - gatewayMainAskUserRequest: GatewayMainAskUserRequest, - options?: RequestInit, - ): Promise => { - return customFetch( - getAskUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostUrl( - boardId, - ), - { - ...options, - method: "POST", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(gatewayMainAskUserRequest), - }, - ); - }; - -export const getAskUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostMutationOptions = - (options?: { - mutation?: UseMutationOptions< - Awaited< - ReturnType< - typeof askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPost - > - >, - TError, - { boardId: string; data: GatewayMainAskUserRequest }, - TContext - >; - request?: SecondParameter; - }): UseMutationOptions< - Awaited< - ReturnType< - typeof askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPost - > - >, - TError, - { boardId: string; data: GatewayMainAskUserRequest }, - TContext - > => { - const mutationKey = [ - "askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPost", - ]; - const { mutation: mutationOptions, request: requestOptions } = options - ? options.mutation && - "mutationKey" in options.mutation && - options.mutation.mutationKey - ? options - : { ...options, mutation: { ...options.mutation, mutationKey } } - : { mutation: { mutationKey }, request: undefined }; - - const mutationFn: MutationFunction< - Awaited< - ReturnType< - typeof askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPost - > - >, - { boardId: string; data: GatewayMainAskUserRequest } - > = (props) => { - const { boardId, data } = props ?? {}; - - return askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPost( - boardId, - data, - requestOptions, - ); - }; - - return { mutationFn, ...mutationOptions }; - }; - -export type AskUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostMutationResult = - NonNullable< - Awaited< - ReturnType< - typeof askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPost - > - > - >; -export type AskUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostMutationBody = - GatewayMainAskUserRequest; -export type AskUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostMutationError = - HTTPValidationError; - -/** - * @summary Ask User Via Gateway Main - */ -export const useAskUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPost = - ( - options?: { - mutation?: UseMutationOptions< - Awaited< - ReturnType< - typeof askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPost - > - >, - TError, - { boardId: string; data: GatewayMainAskUserRequest }, - TContext - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, - ): UseMutationResult< - Awaited< - ReturnType< - typeof askUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPost - > - >, - TError, - { boardId: string; data: GatewayMainAskUserRequest }, - TContext - > => { - return useMutation( - getAskUserViaGatewayMainApiV1AgentBoardsBoardIdGatewayMainAskUserPostMutationOptions( - options, - ), - queryClient, - ); - }; /** * Send a gateway-main message to a single board lead agent. * @summary Message Gateway Board Lead @@ -3964,3 +4222,123 @@ export const useBroadcastGatewayLeadMessageApiV1AgentGatewayLeadsBroadcastPost = queryClient, ); }; +/** + * Record heartbeat status for the authenticated agent. + * @summary Agent Heartbeat + */ +export type agentHeartbeatApiV1AgentHeartbeatPostResponse200 = { + data: AgentRead; + status: 200; +}; + +export type agentHeartbeatApiV1AgentHeartbeatPostResponse422 = { + data: HTTPValidationError; + status: 422; +}; + +export type agentHeartbeatApiV1AgentHeartbeatPostResponseSuccess = + agentHeartbeatApiV1AgentHeartbeatPostResponse200 & { + headers: Headers; + }; +export type agentHeartbeatApiV1AgentHeartbeatPostResponseError = + agentHeartbeatApiV1AgentHeartbeatPostResponse422 & { + headers: Headers; + }; + +export type agentHeartbeatApiV1AgentHeartbeatPostResponse = + | agentHeartbeatApiV1AgentHeartbeatPostResponseSuccess + | agentHeartbeatApiV1AgentHeartbeatPostResponseError; + +export const getAgentHeartbeatApiV1AgentHeartbeatPostUrl = () => { + return `/api/v1/agent/heartbeat`; +}; + +export const agentHeartbeatApiV1AgentHeartbeatPost = async ( + agentHeartbeatCreate: AgentHeartbeatCreate, + options?: RequestInit, +): Promise => { + return customFetch( + getAgentHeartbeatApiV1AgentHeartbeatPostUrl(), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(agentHeartbeatCreate), + }, + ); +}; + +export const getAgentHeartbeatApiV1AgentHeartbeatPostMutationOptions = < + TError = HTTPValidationError, + TContext = unknown, +>(options?: { + mutation?: UseMutationOptions< + Awaited>, + TError, + { data: AgentHeartbeatCreate }, + TContext + >; + request?: SecondParameter; +}): UseMutationOptions< + Awaited>, + TError, + { data: AgentHeartbeatCreate }, + TContext +> => { + const mutationKey = ["agentHeartbeatApiV1AgentHeartbeatPost"]; + const { mutation: mutationOptions, request: requestOptions } = options + ? options.mutation && + "mutationKey" in options.mutation && + options.mutation.mutationKey + ? options + : { ...options, mutation: { ...options.mutation, mutationKey } } + : { mutation: { mutationKey }, request: undefined }; + + const mutationFn: MutationFunction< + Awaited>, + { data: AgentHeartbeatCreate } + > = (props) => { + const { data } = props ?? {}; + + return agentHeartbeatApiV1AgentHeartbeatPost(data, requestOptions); + }; + + return { mutationFn, ...mutationOptions }; +}; + +export type AgentHeartbeatApiV1AgentHeartbeatPostMutationResult = NonNullable< + Awaited> +>; +export type AgentHeartbeatApiV1AgentHeartbeatPostMutationBody = + AgentHeartbeatCreate; +export type AgentHeartbeatApiV1AgentHeartbeatPostMutationError = + HTTPValidationError; + +/** + * @summary Agent Heartbeat + */ +export const useAgentHeartbeatApiV1AgentHeartbeatPost = < + TError = HTTPValidationError, + TContext = unknown, +>( + options?: { + mutation?: UseMutationOptions< + Awaited>, + TError, + { data: AgentHeartbeatCreate }, + TContext + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseMutationResult< + Awaited>, + TError, + { data: AgentHeartbeatCreate }, + TContext +> => { + return useMutation( + getAgentHeartbeatApiV1AgentHeartbeatPostMutationOptions(options), + queryClient, + ); +}; diff --git a/frontend/src/api/generated/agents/agents.ts b/frontend/src/api/generated/agents/agents.ts index 277c396a..81822c55 100644 --- a/frontend/src/api/generated/agents/agents.ts +++ b/frontend/src/api/generated/agents/agents.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -364,6 +364,134 @@ export const useCreateAgentApiV1AgentsPost = < queryClient, ); }; +/** + * Heartbeat an existing agent or create/provision one if needed. + * @summary Heartbeat Or Create Agent + */ +export type heartbeatOrCreateAgentApiV1AgentsHeartbeatPostResponse200 = { + data: AgentRead; + status: 200; +}; + +export type heartbeatOrCreateAgentApiV1AgentsHeartbeatPostResponse422 = { + data: HTTPValidationError; + status: 422; +}; + +export type heartbeatOrCreateAgentApiV1AgentsHeartbeatPostResponseSuccess = + heartbeatOrCreateAgentApiV1AgentsHeartbeatPostResponse200 & { + headers: Headers; + }; +export type heartbeatOrCreateAgentApiV1AgentsHeartbeatPostResponseError = + heartbeatOrCreateAgentApiV1AgentsHeartbeatPostResponse422 & { + headers: Headers; + }; + +export type heartbeatOrCreateAgentApiV1AgentsHeartbeatPostResponse = + | heartbeatOrCreateAgentApiV1AgentsHeartbeatPostResponseSuccess + | heartbeatOrCreateAgentApiV1AgentsHeartbeatPostResponseError; + +export const getHeartbeatOrCreateAgentApiV1AgentsHeartbeatPostUrl = () => { + return `/api/v1/agents/heartbeat`; +}; + +export const heartbeatOrCreateAgentApiV1AgentsHeartbeatPost = async ( + agentHeartbeatCreate: AgentHeartbeatCreate, + options?: RequestInit, +): Promise => { + return customFetch( + getHeartbeatOrCreateAgentApiV1AgentsHeartbeatPostUrl(), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(agentHeartbeatCreate), + }, + ); +}; + +export const getHeartbeatOrCreateAgentApiV1AgentsHeartbeatPostMutationOptions = + (options?: { + mutation?: UseMutationOptions< + Awaited< + ReturnType + >, + TError, + { data: AgentHeartbeatCreate }, + TContext + >; + request?: SecondParameter; + }): UseMutationOptions< + Awaited>, + TError, + { data: AgentHeartbeatCreate }, + TContext + > => { + const mutationKey = ["heartbeatOrCreateAgentApiV1AgentsHeartbeatPost"]; + const { mutation: mutationOptions, request: requestOptions } = options + ? options.mutation && + "mutationKey" in options.mutation && + options.mutation.mutationKey + ? options + : { ...options, mutation: { ...options.mutation, mutationKey } } + : { mutation: { mutationKey }, request: undefined }; + + const mutationFn: MutationFunction< + Awaited< + ReturnType + >, + { data: AgentHeartbeatCreate } + > = (props) => { + const { data } = props ?? {}; + + return heartbeatOrCreateAgentApiV1AgentsHeartbeatPost( + data, + requestOptions, + ); + }; + + return { mutationFn, ...mutationOptions }; + }; + +export type HeartbeatOrCreateAgentApiV1AgentsHeartbeatPostMutationResult = + NonNullable< + Awaited> + >; +export type HeartbeatOrCreateAgentApiV1AgentsHeartbeatPostMutationBody = + AgentHeartbeatCreate; +export type HeartbeatOrCreateAgentApiV1AgentsHeartbeatPostMutationError = + HTTPValidationError; + +/** + * @summary Heartbeat Or Create Agent + */ +export const useHeartbeatOrCreateAgentApiV1AgentsHeartbeatPost = < + TError = HTTPValidationError, + TContext = unknown, +>( + options?: { + mutation?: UseMutationOptions< + Awaited< + ReturnType + >, + TError, + { data: AgentHeartbeatCreate }, + TContext + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseMutationResult< + Awaited>, + TError, + { data: AgentHeartbeatCreate }, + TContext +> => { + return useMutation( + getHeartbeatOrCreateAgentApiV1AgentsHeartbeatPostMutationOptions(options), + queryClient, + ); +}; /** * Stream agent updates as SSE events. * @summary Stream Agents @@ -576,6 +704,123 @@ export function useStreamAgentsApiV1AgentsStreamGet< return { ...query, queryKey: queryOptions.queryKey }; } +/** + * Delete an agent and clean related task state. + * @summary Delete Agent + */ +export type deleteAgentApiV1AgentsAgentIdDeleteResponse200 = { + data: OkResponse; + status: 200; +}; + +export type deleteAgentApiV1AgentsAgentIdDeleteResponse422 = { + data: HTTPValidationError; + status: 422; +}; + +export type deleteAgentApiV1AgentsAgentIdDeleteResponseSuccess = + deleteAgentApiV1AgentsAgentIdDeleteResponse200 & { + headers: Headers; + }; +export type deleteAgentApiV1AgentsAgentIdDeleteResponseError = + deleteAgentApiV1AgentsAgentIdDeleteResponse422 & { + headers: Headers; + }; + +export type deleteAgentApiV1AgentsAgentIdDeleteResponse = + | deleteAgentApiV1AgentsAgentIdDeleteResponseSuccess + | deleteAgentApiV1AgentsAgentIdDeleteResponseError; + +export const getDeleteAgentApiV1AgentsAgentIdDeleteUrl = (agentId: string) => { + return `/api/v1/agents/${agentId}`; +}; + +export const deleteAgentApiV1AgentsAgentIdDelete = async ( + agentId: string, + options?: RequestInit, +): Promise => { + return customFetch( + getDeleteAgentApiV1AgentsAgentIdDeleteUrl(agentId), + { + ...options, + method: "DELETE", + }, + ); +}; + +export const getDeleteAgentApiV1AgentsAgentIdDeleteMutationOptions = < + TError = HTTPValidationError, + TContext = unknown, +>(options?: { + mutation?: UseMutationOptions< + Awaited>, + TError, + { agentId: string }, + TContext + >; + request?: SecondParameter; +}): UseMutationOptions< + Awaited>, + TError, + { agentId: string }, + TContext +> => { + const mutationKey = ["deleteAgentApiV1AgentsAgentIdDelete"]; + const { mutation: mutationOptions, request: requestOptions } = options + ? options.mutation && + "mutationKey" in options.mutation && + options.mutation.mutationKey + ? options + : { ...options, mutation: { ...options.mutation, mutationKey } } + : { mutation: { mutationKey }, request: undefined }; + + const mutationFn: MutationFunction< + Awaited>, + { agentId: string } + > = (props) => { + const { agentId } = props ?? {}; + + return deleteAgentApiV1AgentsAgentIdDelete(agentId, requestOptions); + }; + + return { mutationFn, ...mutationOptions }; +}; + +export type DeleteAgentApiV1AgentsAgentIdDeleteMutationResult = NonNullable< + Awaited> +>; + +export type DeleteAgentApiV1AgentsAgentIdDeleteMutationError = + HTTPValidationError; + +/** + * @summary Delete Agent + */ +export const useDeleteAgentApiV1AgentsAgentIdDelete = < + TError = HTTPValidationError, + TContext = unknown, +>( + options?: { + mutation?: UseMutationOptions< + Awaited>, + TError, + { agentId: string }, + TContext + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseMutationResult< + Awaited>, + TError, + { agentId: string }, + TContext +> => { + return useMutation( + getDeleteAgentApiV1AgentsAgentIdDeleteMutationOptions(options), + queryClient, + ); +}; /** * Get a single agent by id. * @summary Get Agent @@ -937,123 +1182,6 @@ export const useUpdateAgentApiV1AgentsAgentIdPatch = < queryClient, ); }; -/** - * Delete an agent and clean related task state. - * @summary Delete Agent - */ -export type deleteAgentApiV1AgentsAgentIdDeleteResponse200 = { - data: OkResponse; - status: 200; -}; - -export type deleteAgentApiV1AgentsAgentIdDeleteResponse422 = { - data: HTTPValidationError; - status: 422; -}; - -export type deleteAgentApiV1AgentsAgentIdDeleteResponseSuccess = - deleteAgentApiV1AgentsAgentIdDeleteResponse200 & { - headers: Headers; - }; -export type deleteAgentApiV1AgentsAgentIdDeleteResponseError = - deleteAgentApiV1AgentsAgentIdDeleteResponse422 & { - headers: Headers; - }; - -export type deleteAgentApiV1AgentsAgentIdDeleteResponse = - | deleteAgentApiV1AgentsAgentIdDeleteResponseSuccess - | deleteAgentApiV1AgentsAgentIdDeleteResponseError; - -export const getDeleteAgentApiV1AgentsAgentIdDeleteUrl = (agentId: string) => { - return `/api/v1/agents/${agentId}`; -}; - -export const deleteAgentApiV1AgentsAgentIdDelete = async ( - agentId: string, - options?: RequestInit, -): Promise => { - return customFetch( - getDeleteAgentApiV1AgentsAgentIdDeleteUrl(agentId), - { - ...options, - method: "DELETE", - }, - ); -}; - -export const getDeleteAgentApiV1AgentsAgentIdDeleteMutationOptions = < - TError = HTTPValidationError, - TContext = unknown, ->(options?: { - mutation?: UseMutationOptions< - Awaited>, - TError, - { agentId: string }, - TContext - >; - request?: SecondParameter; -}): UseMutationOptions< - Awaited>, - TError, - { agentId: string }, - TContext -> => { - const mutationKey = ["deleteAgentApiV1AgentsAgentIdDelete"]; - const { mutation: mutationOptions, request: requestOptions } = options - ? options.mutation && - "mutationKey" in options.mutation && - options.mutation.mutationKey - ? options - : { ...options, mutation: { ...options.mutation, mutationKey } } - : { mutation: { mutationKey }, request: undefined }; - - const mutationFn: MutationFunction< - Awaited>, - { agentId: string } - > = (props) => { - const { agentId } = props ?? {}; - - return deleteAgentApiV1AgentsAgentIdDelete(agentId, requestOptions); - }; - - return { mutationFn, ...mutationOptions }; -}; - -export type DeleteAgentApiV1AgentsAgentIdDeleteMutationResult = NonNullable< - Awaited> ->; - -export type DeleteAgentApiV1AgentsAgentIdDeleteMutationError = - HTTPValidationError; - -/** - * @summary Delete Agent - */ -export const useDeleteAgentApiV1AgentsAgentIdDelete = < - TError = HTTPValidationError, - TContext = unknown, ->( - options?: { - mutation?: UseMutationOptions< - Awaited>, - TError, - { agentId: string }, - TContext - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseMutationResult< - Awaited>, - TError, - { agentId: string }, - TContext -> => { - return useMutation( - getDeleteAgentApiV1AgentsAgentIdDeleteMutationOptions(options), - queryClient, - ); -}; /** * Record a heartbeat for a specific agent. * @summary Heartbeat Agent @@ -1182,131 +1310,3 @@ export const useHeartbeatAgentApiV1AgentsAgentIdHeartbeatPost = < queryClient, ); }; -/** - * Heartbeat an existing agent or create/provision one if needed. - * @summary Heartbeat Or Create Agent - */ -export type heartbeatOrCreateAgentApiV1AgentsHeartbeatPostResponse200 = { - data: AgentRead; - status: 200; -}; - -export type heartbeatOrCreateAgentApiV1AgentsHeartbeatPostResponse422 = { - data: HTTPValidationError; - status: 422; -}; - -export type heartbeatOrCreateAgentApiV1AgentsHeartbeatPostResponseSuccess = - heartbeatOrCreateAgentApiV1AgentsHeartbeatPostResponse200 & { - headers: Headers; - }; -export type heartbeatOrCreateAgentApiV1AgentsHeartbeatPostResponseError = - heartbeatOrCreateAgentApiV1AgentsHeartbeatPostResponse422 & { - headers: Headers; - }; - -export type heartbeatOrCreateAgentApiV1AgentsHeartbeatPostResponse = - | heartbeatOrCreateAgentApiV1AgentsHeartbeatPostResponseSuccess - | heartbeatOrCreateAgentApiV1AgentsHeartbeatPostResponseError; - -export const getHeartbeatOrCreateAgentApiV1AgentsHeartbeatPostUrl = () => { - return `/api/v1/agents/heartbeat`; -}; - -export const heartbeatOrCreateAgentApiV1AgentsHeartbeatPost = async ( - agentHeartbeatCreate: AgentHeartbeatCreate, - options?: RequestInit, -): Promise => { - return customFetch( - getHeartbeatOrCreateAgentApiV1AgentsHeartbeatPostUrl(), - { - ...options, - method: "POST", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(agentHeartbeatCreate), - }, - ); -}; - -export const getHeartbeatOrCreateAgentApiV1AgentsHeartbeatPostMutationOptions = - (options?: { - mutation?: UseMutationOptions< - Awaited< - ReturnType - >, - TError, - { data: AgentHeartbeatCreate }, - TContext - >; - request?: SecondParameter; - }): UseMutationOptions< - Awaited>, - TError, - { data: AgentHeartbeatCreate }, - TContext - > => { - const mutationKey = ["heartbeatOrCreateAgentApiV1AgentsHeartbeatPost"]; - const { mutation: mutationOptions, request: requestOptions } = options - ? options.mutation && - "mutationKey" in options.mutation && - options.mutation.mutationKey - ? options - : { ...options, mutation: { ...options.mutation, mutationKey } } - : { mutation: { mutationKey }, request: undefined }; - - const mutationFn: MutationFunction< - Awaited< - ReturnType - >, - { data: AgentHeartbeatCreate } - > = (props) => { - const { data } = props ?? {}; - - return heartbeatOrCreateAgentApiV1AgentsHeartbeatPost( - data, - requestOptions, - ); - }; - - return { mutationFn, ...mutationOptions }; - }; - -export type HeartbeatOrCreateAgentApiV1AgentsHeartbeatPostMutationResult = - NonNullable< - Awaited> - >; -export type HeartbeatOrCreateAgentApiV1AgentsHeartbeatPostMutationBody = - AgentHeartbeatCreate; -export type HeartbeatOrCreateAgentApiV1AgentsHeartbeatPostMutationError = - HTTPValidationError; - -/** - * @summary Heartbeat Or Create Agent - */ -export const useHeartbeatOrCreateAgentApiV1AgentsHeartbeatPost = < - TError = HTTPValidationError, - TContext = unknown, ->( - options?: { - mutation?: UseMutationOptions< - Awaited< - ReturnType - >, - TError, - { data: AgentHeartbeatCreate }, - TContext - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseMutationResult< - Awaited>, - TError, - { data: AgentHeartbeatCreate }, - TContext -> => { - return useMutation( - getHeartbeatOrCreateAgentApiV1AgentsHeartbeatPostMutationOptions(options), - queryClient, - ); -}; diff --git a/frontend/src/api/generated/approvals/approvals.ts b/frontend/src/api/generated/approvals/approvals.ts index 6d5a1dfb..f618b5ae 100644 --- a/frontend/src/api/generated/approvals/approvals.ts +++ b/frontend/src/api/generated/approvals/approvals.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/auth/auth.ts b/frontend/src/api/generated/auth/auth.ts index fd56bc0d..c9b5f50b 100644 --- a/frontend/src/api/generated/auth/auth.ts +++ b/frontend/src/api/generated/auth/auth.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/board-group-memory/board-group-memory.ts b/frontend/src/api/generated/board-group-memory/board-group-memory.ts index 628c8f99..9d41f506 100644 --- a/frontend/src/api/generated/board-group-memory/board-group-memory.ts +++ b/frontend/src/api/generated/board-group-memory/board-group-memory.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/board-groups/board-groups.ts b/frontend/src/api/generated/board-groups/board-groups.ts index e21c3d87..ceb6c86c 100644 --- a/frontend/src/api/generated/board-groups/board-groups.ts +++ b/frontend/src/api/generated/board-groups/board-groups.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -369,6 +369,129 @@ export const useCreateBoardGroupApiV1BoardGroupsPost = < queryClient, ); }; +/** + * Delete a board group. + * @summary Delete Board Group + */ +export type deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponse200 = { + data: OkResponse; + status: 200; +}; + +export type deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponse422 = { + data: HTTPValidationError; + status: 422; +}; + +export type deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponseSuccess = + deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponse200 & { + headers: Headers; + }; +export type deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponseError = + deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponse422 & { + headers: Headers; + }; + +export type deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponse = + | deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponseSuccess + | deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponseError; + +export const getDeleteBoardGroupApiV1BoardGroupsGroupIdDeleteUrl = ( + groupId: string, +) => { + return `/api/v1/board-groups/${groupId}`; +}; + +export const deleteBoardGroupApiV1BoardGroupsGroupIdDelete = async ( + groupId: string, + options?: RequestInit, +): Promise => { + return customFetch( + getDeleteBoardGroupApiV1BoardGroupsGroupIdDeleteUrl(groupId), + { + ...options, + method: "DELETE", + }, + ); +}; + +export const getDeleteBoardGroupApiV1BoardGroupsGroupIdDeleteMutationOptions = < + TError = HTTPValidationError, + TContext = unknown, +>(options?: { + mutation?: UseMutationOptions< + Awaited>, + TError, + { groupId: string }, + TContext + >; + request?: SecondParameter; +}): UseMutationOptions< + Awaited>, + TError, + { groupId: string }, + TContext +> => { + const mutationKey = ["deleteBoardGroupApiV1BoardGroupsGroupIdDelete"]; + const { mutation: mutationOptions, request: requestOptions } = options + ? options.mutation && + "mutationKey" in options.mutation && + options.mutation.mutationKey + ? options + : { ...options, mutation: { ...options.mutation, mutationKey } } + : { mutation: { mutationKey }, request: undefined }; + + const mutationFn: MutationFunction< + Awaited>, + { groupId: string } + > = (props) => { + const { groupId } = props ?? {}; + + return deleteBoardGroupApiV1BoardGroupsGroupIdDelete( + groupId, + requestOptions, + ); + }; + + return { mutationFn, ...mutationOptions }; +}; + +export type DeleteBoardGroupApiV1BoardGroupsGroupIdDeleteMutationResult = + NonNullable< + Awaited> + >; + +export type DeleteBoardGroupApiV1BoardGroupsGroupIdDeleteMutationError = + HTTPValidationError; + +/** + * @summary Delete Board Group + */ +export const useDeleteBoardGroupApiV1BoardGroupsGroupIdDelete = < + TError = HTTPValidationError, + TContext = unknown, +>( + options?: { + mutation?: UseMutationOptions< + Awaited>, + TError, + { groupId: string }, + TContext + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseMutationResult< + Awaited>, + TError, + { groupId: string }, + TContext +> => { + return useMutation( + getDeleteBoardGroupApiV1BoardGroupsGroupIdDeleteMutationOptions(options), + queryClient, + ); +}; /** * Get a board group by id. * @summary Get Board Group @@ -707,125 +830,161 @@ export const useUpdateBoardGroupApiV1BoardGroupsGroupIdPatch = < ); }; /** - * Delete a board group. - * @summary Delete Board Group + * Apply heartbeat settings to agents in a board group. + * @summary Apply Board Group Heartbeat */ -export type deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponse200 = { - data: OkResponse; - status: 200; -}; +export type applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponse200 = + { + data: BoardGroupHeartbeatApplyResult; + status: 200; + }; -export type deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponse422 = { - data: HTTPValidationError; - status: 422; -}; +export type applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponse422 = + { + data: HTTPValidationError; + status: 422; + }; -export type deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponseSuccess = - deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponse200 & { +export type applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponseSuccess = + applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponse200 & { headers: Headers; }; -export type deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponseError = - deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponse422 & { +export type applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponseError = + applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponse422 & { headers: Headers; }; -export type deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponse = - | deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponseSuccess - | deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponseError; +export type applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponse = -export const getDeleteBoardGroupApiV1BoardGroupsGroupIdDeleteUrl = ( - groupId: string, -) => { - return `/api/v1/board-groups/${groupId}`; -}; + | applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponseSuccess + | applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponseError; -export const deleteBoardGroupApiV1BoardGroupsGroupIdDelete = async ( - groupId: string, - options?: RequestInit, -): Promise => { - return customFetch( - getDeleteBoardGroupApiV1BoardGroupsGroupIdDeleteUrl(groupId), - { - ...options, - method: "DELETE", - }, - ); -}; +export const getApplyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostUrl = + (groupId: string) => { + return `/api/v1/board-groups/${groupId}/heartbeat`; + }; -export const getDeleteBoardGroupApiV1BoardGroupsGroupIdDeleteMutationOptions = < - TError = HTTPValidationError, - TContext = unknown, ->(options?: { - mutation?: UseMutationOptions< - Awaited>, - TError, - { groupId: string }, - TContext - >; - request?: SecondParameter; -}): UseMutationOptions< - Awaited>, - TError, - { groupId: string }, - TContext -> => { - const mutationKey = ["deleteBoardGroupApiV1BoardGroupsGroupIdDelete"]; - const { mutation: mutationOptions, request: requestOptions } = options - ? options.mutation && - "mutationKey" in options.mutation && - options.mutation.mutationKey - ? options - : { ...options, mutation: { ...options.mutation, mutationKey } } - : { mutation: { mutationKey }, request: undefined }; - - const mutationFn: MutationFunction< - Awaited>, - { groupId: string } - > = (props) => { - const { groupId } = props ?? {}; - - return deleteBoardGroupApiV1BoardGroupsGroupIdDelete( - groupId, - requestOptions, +export const applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPost = + async ( + groupId: string, + boardGroupHeartbeatApply: BoardGroupHeartbeatApply, + options?: RequestInit, + ): Promise => { + return customFetch( + getApplyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostUrl( + groupId, + ), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(boardGroupHeartbeatApply), + }, ); }; - return { mutationFn, ...mutationOptions }; -}; +export const getApplyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostMutationOptions = + (options?: { + mutation?: UseMutationOptions< + Awaited< + ReturnType< + typeof applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPost + > + >, + TError, + { groupId: string; data: BoardGroupHeartbeatApply }, + TContext + >; + request?: SecondParameter; + }): UseMutationOptions< + Awaited< + ReturnType< + typeof applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPost + > + >, + TError, + { groupId: string; data: BoardGroupHeartbeatApply }, + TContext + > => { + const mutationKey = [ + "applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPost", + ]; + const { mutation: mutationOptions, request: requestOptions } = options + ? options.mutation && + "mutationKey" in options.mutation && + options.mutation.mutationKey + ? options + : { ...options, mutation: { ...options.mutation, mutationKey } } + : { mutation: { mutationKey }, request: undefined }; -export type DeleteBoardGroupApiV1BoardGroupsGroupIdDeleteMutationResult = + const mutationFn: MutationFunction< + Awaited< + ReturnType< + typeof applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPost + > + >, + { groupId: string; data: BoardGroupHeartbeatApply } + > = (props) => { + const { groupId, data } = props ?? {}; + + return applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPost( + groupId, + data, + requestOptions, + ); + }; + + return { mutationFn, ...mutationOptions }; + }; + +export type ApplyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostMutationResult = NonNullable< - Awaited> + Awaited< + ReturnType< + typeof applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPost + > + > >; - -export type DeleteBoardGroupApiV1BoardGroupsGroupIdDeleteMutationError = +export type ApplyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostMutationBody = + BoardGroupHeartbeatApply; +export type ApplyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostMutationError = HTTPValidationError; /** - * @summary Delete Board Group + * @summary Apply Board Group Heartbeat */ -export const useDeleteBoardGroupApiV1BoardGroupsGroupIdDelete = < +export const useApplyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPost = < TError = HTTPValidationError, TContext = unknown, >( options?: { mutation?: UseMutationOptions< - Awaited>, + Awaited< + ReturnType< + typeof applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPost + > + >, TError, - { groupId: string }, + { groupId: string; data: BoardGroupHeartbeatApply }, TContext >; request?: SecondParameter; }, queryClient?: QueryClient, ): UseMutationResult< - Awaited>, + Awaited< + ReturnType< + typeof applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPost + > + >, TError, - { groupId: string }, + { groupId: string; data: BoardGroupHeartbeatApply }, TContext > => { return useMutation( - getDeleteBoardGroupApiV1BoardGroupsGroupIdDeleteMutationOptions(options), + getApplyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostMutationOptions( + options, + ), queryClient, ); }; @@ -1131,163 +1290,3 @@ export function useGetBoardGroupSnapshotApiV1BoardGroupsGroupIdSnapshotGet< return { ...query, queryKey: queryOptions.queryKey }; } - -/** - * Apply heartbeat settings to agents in a board group. - * @summary Apply Board Group Heartbeat - */ -export type applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponse200 = - { - data: BoardGroupHeartbeatApplyResult; - status: 200; - }; - -export type applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponse422 = - { - data: HTTPValidationError; - status: 422; - }; - -export type applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponseSuccess = - applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponse200 & { - headers: Headers; - }; -export type applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponseError = - applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponse422 & { - headers: Headers; - }; - -export type applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponse = - - | applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponseSuccess - | applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponseError; - -export const getApplyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostUrl = - (groupId: string) => { - return `/api/v1/board-groups/${groupId}/heartbeat`; - }; - -export const applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPost = - async ( - groupId: string, - boardGroupHeartbeatApply: BoardGroupHeartbeatApply, - options?: RequestInit, - ): Promise => { - return customFetch( - getApplyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostUrl( - groupId, - ), - { - ...options, - method: "POST", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(boardGroupHeartbeatApply), - }, - ); - }; - -export const getApplyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostMutationOptions = - (options?: { - mutation?: UseMutationOptions< - Awaited< - ReturnType< - typeof applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPost - > - >, - TError, - { groupId: string; data: BoardGroupHeartbeatApply }, - TContext - >; - request?: SecondParameter; - }): UseMutationOptions< - Awaited< - ReturnType< - typeof applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPost - > - >, - TError, - { groupId: string; data: BoardGroupHeartbeatApply }, - TContext - > => { - const mutationKey = [ - "applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPost", - ]; - const { mutation: mutationOptions, request: requestOptions } = options - ? options.mutation && - "mutationKey" in options.mutation && - options.mutation.mutationKey - ? options - : { ...options, mutation: { ...options.mutation, mutationKey } } - : { mutation: { mutationKey }, request: undefined }; - - const mutationFn: MutationFunction< - Awaited< - ReturnType< - typeof applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPost - > - >, - { groupId: string; data: BoardGroupHeartbeatApply } - > = (props) => { - const { groupId, data } = props ?? {}; - - return applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPost( - groupId, - data, - requestOptions, - ); - }; - - return { mutationFn, ...mutationOptions }; - }; - -export type ApplyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostMutationResult = - NonNullable< - Awaited< - ReturnType< - typeof applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPost - > - > - >; -export type ApplyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostMutationBody = - BoardGroupHeartbeatApply; -export type ApplyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostMutationError = - HTTPValidationError; - -/** - * @summary Apply Board Group Heartbeat - */ -export const useApplyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPost = < - TError = HTTPValidationError, - TContext = unknown, ->( - options?: { - mutation?: UseMutationOptions< - Awaited< - ReturnType< - typeof applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPost - > - >, - TError, - { groupId: string; data: BoardGroupHeartbeatApply }, - TContext - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseMutationResult< - Awaited< - ReturnType< - typeof applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPost - > - >, - TError, - { groupId: string; data: BoardGroupHeartbeatApply }, - TContext -> => { - return useMutation( - getApplyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostMutationOptions( - options, - ), - queryClient, - ); -}; diff --git a/frontend/src/api/generated/board-memory/board-memory.ts b/frontend/src/api/generated/board-memory/board-memory.ts index 946e3bfc..b5587071 100644 --- a/frontend/src/api/generated/board-memory/board-memory.ts +++ b/frontend/src/api/generated/board-memory/board-memory.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/board-onboarding/board-onboarding.ts b/frontend/src/api/generated/board-onboarding/board-onboarding.ts index 665d46cf..479bfd9a 100644 --- a/frontend/src/api/generated/board-onboarding/board-onboarding.ts +++ b/frontend/src/api/generated/board-onboarding/board-onboarding.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -274,298 +274,6 @@ export function useGetOnboardingApiV1BoardsBoardIdOnboardingGet< return { ...query, queryKey: queryOptions.queryKey }; } -/** - * Start onboarding and send instructions to the gateway agent. - * @summary Start Onboarding - */ -export type startOnboardingApiV1BoardsBoardIdOnboardingStartPostResponse200 = { - data: BoardOnboardingRead; - status: 200; -}; - -export type startOnboardingApiV1BoardsBoardIdOnboardingStartPostResponse422 = { - data: HTTPValidationError; - status: 422; -}; - -export type startOnboardingApiV1BoardsBoardIdOnboardingStartPostResponseSuccess = - startOnboardingApiV1BoardsBoardIdOnboardingStartPostResponse200 & { - headers: Headers; - }; -export type startOnboardingApiV1BoardsBoardIdOnboardingStartPostResponseError = - startOnboardingApiV1BoardsBoardIdOnboardingStartPostResponse422 & { - headers: Headers; - }; - -export type startOnboardingApiV1BoardsBoardIdOnboardingStartPostResponse = - | startOnboardingApiV1BoardsBoardIdOnboardingStartPostResponseSuccess - | startOnboardingApiV1BoardsBoardIdOnboardingStartPostResponseError; - -export const getStartOnboardingApiV1BoardsBoardIdOnboardingStartPostUrl = ( - boardId: string, -) => { - return `/api/v1/boards/${boardId}/onboarding/start`; -}; - -export const startOnboardingApiV1BoardsBoardIdOnboardingStartPost = async ( - boardId: string, - boardOnboardingStart: BoardOnboardingStart, - options?: RequestInit, -): Promise => { - return customFetch( - getStartOnboardingApiV1BoardsBoardIdOnboardingStartPostUrl(boardId), - { - ...options, - method: "POST", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(boardOnboardingStart), - }, - ); -}; - -export const getStartOnboardingApiV1BoardsBoardIdOnboardingStartPostMutationOptions = - (options?: { - mutation?: UseMutationOptions< - Awaited< - ReturnType - >, - TError, - { boardId: string; data: BoardOnboardingStart }, - TContext - >; - request?: SecondParameter; - }): UseMutationOptions< - Awaited< - ReturnType - >, - TError, - { boardId: string; data: BoardOnboardingStart }, - TContext - > => { - const mutationKey = [ - "startOnboardingApiV1BoardsBoardIdOnboardingStartPost", - ]; - const { mutation: mutationOptions, request: requestOptions } = options - ? options.mutation && - "mutationKey" in options.mutation && - options.mutation.mutationKey - ? options - : { ...options, mutation: { ...options.mutation, mutationKey } } - : { mutation: { mutationKey }, request: undefined }; - - const mutationFn: MutationFunction< - Awaited< - ReturnType - >, - { boardId: string; data: BoardOnboardingStart } - > = (props) => { - const { boardId, data } = props ?? {}; - - return startOnboardingApiV1BoardsBoardIdOnboardingStartPost( - boardId, - data, - requestOptions, - ); - }; - - return { mutationFn, ...mutationOptions }; - }; - -export type StartOnboardingApiV1BoardsBoardIdOnboardingStartPostMutationResult = - NonNullable< - Awaited< - ReturnType - > - >; -export type StartOnboardingApiV1BoardsBoardIdOnboardingStartPostMutationBody = - BoardOnboardingStart; -export type StartOnboardingApiV1BoardsBoardIdOnboardingStartPostMutationError = - HTTPValidationError; - -/** - * @summary Start Onboarding - */ -export const useStartOnboardingApiV1BoardsBoardIdOnboardingStartPost = < - TError = HTTPValidationError, - TContext = unknown, ->( - options?: { - mutation?: UseMutationOptions< - Awaited< - ReturnType - >, - TError, - { boardId: string; data: BoardOnboardingStart }, - TContext - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseMutationResult< - Awaited< - ReturnType - >, - TError, - { boardId: string; data: BoardOnboardingStart }, - TContext -> => { - return useMutation( - getStartOnboardingApiV1BoardsBoardIdOnboardingStartPostMutationOptions( - options, - ), - queryClient, - ); -}; -/** - * Send a user onboarding answer to the gateway agent. - * @summary Answer Onboarding - */ -export type answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostResponse200 = - { - data: BoardOnboardingRead; - status: 200; - }; - -export type answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostResponse422 = - { - data: HTTPValidationError; - status: 422; - }; - -export type answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostResponseSuccess = - answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostResponse200 & { - headers: Headers; - }; -export type answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostResponseError = - answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostResponse422 & { - headers: Headers; - }; - -export type answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostResponse = - | answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostResponseSuccess - | answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostResponseError; - -export const getAnswerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostUrl = ( - boardId: string, -) => { - return `/api/v1/boards/${boardId}/onboarding/answer`; -}; - -export const answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPost = async ( - boardId: string, - boardOnboardingAnswer: BoardOnboardingAnswer, - options?: RequestInit, -): Promise => { - return customFetch( - getAnswerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostUrl(boardId), - { - ...options, - method: "POST", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(boardOnboardingAnswer), - }, - ); -}; - -export const getAnswerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostMutationOptions = - (options?: { - mutation?: UseMutationOptions< - Awaited< - ReturnType< - typeof answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPost - > - >, - TError, - { boardId: string; data: BoardOnboardingAnswer }, - TContext - >; - request?: SecondParameter; - }): UseMutationOptions< - Awaited< - ReturnType - >, - TError, - { boardId: string; data: BoardOnboardingAnswer }, - TContext - > => { - const mutationKey = [ - "answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPost", - ]; - const { mutation: mutationOptions, request: requestOptions } = options - ? options.mutation && - "mutationKey" in options.mutation && - options.mutation.mutationKey - ? options - : { ...options, mutation: { ...options.mutation, mutationKey } } - : { mutation: { mutationKey }, request: undefined }; - - const mutationFn: MutationFunction< - Awaited< - ReturnType< - typeof answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPost - > - >, - { boardId: string; data: BoardOnboardingAnswer } - > = (props) => { - const { boardId, data } = props ?? {}; - - return answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPost( - boardId, - data, - requestOptions, - ); - }; - - return { mutationFn, ...mutationOptions }; - }; - -export type AnswerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostMutationResult = - NonNullable< - Awaited< - ReturnType - > - >; -export type AnswerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostMutationBody = - BoardOnboardingAnswer; -export type AnswerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostMutationError = - HTTPValidationError; - -/** - * @summary Answer Onboarding - */ -export const useAnswerOnboardingApiV1BoardsBoardIdOnboardingAnswerPost = < - TError = HTTPValidationError, - TContext = unknown, ->( - options?: { - mutation?: UseMutationOptions< - Awaited< - ReturnType< - typeof answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPost - > - >, - TError, - { boardId: string; data: BoardOnboardingAnswer }, - TContext - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseMutationResult< - Awaited< - ReturnType - >, - TError, - { boardId: string; data: BoardOnboardingAnswer }, - TContext -> => { - return useMutation( - getAnswerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostMutationOptions( - options, - ), - queryClient, - ); -}; /** * Store onboarding updates submitted by the gateway agent. * @summary Agent Onboarding Update @@ -741,6 +449,156 @@ export const useAgentOnboardingUpdateApiV1BoardsBoardIdOnboardingAgentPost = < queryClient, ); }; +/** + * Send a user onboarding answer to the gateway agent. + * @summary Answer Onboarding + */ +export type answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostResponse200 = + { + data: BoardOnboardingRead; + status: 200; + }; + +export type answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostResponse422 = + { + data: HTTPValidationError; + status: 422; + }; + +export type answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostResponseSuccess = + answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostResponse200 & { + headers: Headers; + }; +export type answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostResponseError = + answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostResponse422 & { + headers: Headers; + }; + +export type answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostResponse = + | answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostResponseSuccess + | answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostResponseError; + +export const getAnswerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostUrl = ( + boardId: string, +) => { + return `/api/v1/boards/${boardId}/onboarding/answer`; +}; + +export const answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPost = async ( + boardId: string, + boardOnboardingAnswer: BoardOnboardingAnswer, + options?: RequestInit, +): Promise => { + return customFetch( + getAnswerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostUrl(boardId), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(boardOnboardingAnswer), + }, + ); +}; + +export const getAnswerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostMutationOptions = + (options?: { + mutation?: UseMutationOptions< + Awaited< + ReturnType< + typeof answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPost + > + >, + TError, + { boardId: string; data: BoardOnboardingAnswer }, + TContext + >; + request?: SecondParameter; + }): UseMutationOptions< + Awaited< + ReturnType + >, + TError, + { boardId: string; data: BoardOnboardingAnswer }, + TContext + > => { + const mutationKey = [ + "answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPost", + ]; + const { mutation: mutationOptions, request: requestOptions } = options + ? options.mutation && + "mutationKey" in options.mutation && + options.mutation.mutationKey + ? options + : { ...options, mutation: { ...options.mutation, mutationKey } } + : { mutation: { mutationKey }, request: undefined }; + + const mutationFn: MutationFunction< + Awaited< + ReturnType< + typeof answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPost + > + >, + { boardId: string; data: BoardOnboardingAnswer } + > = (props) => { + const { boardId, data } = props ?? {}; + + return answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPost( + boardId, + data, + requestOptions, + ); + }; + + return { mutationFn, ...mutationOptions }; + }; + +export type AnswerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostMutationResult = + NonNullable< + Awaited< + ReturnType + > + >; +export type AnswerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostMutationBody = + BoardOnboardingAnswer; +export type AnswerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostMutationError = + HTTPValidationError; + +/** + * @summary Answer Onboarding + */ +export const useAnswerOnboardingApiV1BoardsBoardIdOnboardingAnswerPost = < + TError = HTTPValidationError, + TContext = unknown, +>( + options?: { + mutation?: UseMutationOptions< + Awaited< + ReturnType< + typeof answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPost + > + >, + TError, + { boardId: string; data: BoardOnboardingAnswer }, + TContext + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseMutationResult< + Awaited< + ReturnType + >, + TError, + { boardId: string; data: BoardOnboardingAnswer }, + TContext +> => { + return useMutation( + getAnswerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostMutationOptions( + options, + ), + queryClient, + ); +}; /** * Confirm onboarding results and provision the board lead agent. * @summary Confirm Onboarding @@ -895,3 +753,145 @@ export const useConfirmOnboardingApiV1BoardsBoardIdOnboardingConfirmPost = < queryClient, ); }; +/** + * Start onboarding and send instructions to the gateway agent. + * @summary Start Onboarding + */ +export type startOnboardingApiV1BoardsBoardIdOnboardingStartPostResponse200 = { + data: BoardOnboardingRead; + status: 200; +}; + +export type startOnboardingApiV1BoardsBoardIdOnboardingStartPostResponse422 = { + data: HTTPValidationError; + status: 422; +}; + +export type startOnboardingApiV1BoardsBoardIdOnboardingStartPostResponseSuccess = + startOnboardingApiV1BoardsBoardIdOnboardingStartPostResponse200 & { + headers: Headers; + }; +export type startOnboardingApiV1BoardsBoardIdOnboardingStartPostResponseError = + startOnboardingApiV1BoardsBoardIdOnboardingStartPostResponse422 & { + headers: Headers; + }; + +export type startOnboardingApiV1BoardsBoardIdOnboardingStartPostResponse = + | startOnboardingApiV1BoardsBoardIdOnboardingStartPostResponseSuccess + | startOnboardingApiV1BoardsBoardIdOnboardingStartPostResponseError; + +export const getStartOnboardingApiV1BoardsBoardIdOnboardingStartPostUrl = ( + boardId: string, +) => { + return `/api/v1/boards/${boardId}/onboarding/start`; +}; + +export const startOnboardingApiV1BoardsBoardIdOnboardingStartPost = async ( + boardId: string, + boardOnboardingStart: BoardOnboardingStart, + options?: RequestInit, +): Promise => { + return customFetch( + getStartOnboardingApiV1BoardsBoardIdOnboardingStartPostUrl(boardId), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(boardOnboardingStart), + }, + ); +}; + +export const getStartOnboardingApiV1BoardsBoardIdOnboardingStartPostMutationOptions = + (options?: { + mutation?: UseMutationOptions< + Awaited< + ReturnType + >, + TError, + { boardId: string; data: BoardOnboardingStart }, + TContext + >; + request?: SecondParameter; + }): UseMutationOptions< + Awaited< + ReturnType + >, + TError, + { boardId: string; data: BoardOnboardingStart }, + TContext + > => { + const mutationKey = [ + "startOnboardingApiV1BoardsBoardIdOnboardingStartPost", + ]; + const { mutation: mutationOptions, request: requestOptions } = options + ? options.mutation && + "mutationKey" in options.mutation && + options.mutation.mutationKey + ? options + : { ...options, mutation: { ...options.mutation, mutationKey } } + : { mutation: { mutationKey }, request: undefined }; + + const mutationFn: MutationFunction< + Awaited< + ReturnType + >, + { boardId: string; data: BoardOnboardingStart } + > = (props) => { + const { boardId, data } = props ?? {}; + + return startOnboardingApiV1BoardsBoardIdOnboardingStartPost( + boardId, + data, + requestOptions, + ); + }; + + return { mutationFn, ...mutationOptions }; + }; + +export type StartOnboardingApiV1BoardsBoardIdOnboardingStartPostMutationResult = + NonNullable< + Awaited< + ReturnType + > + >; +export type StartOnboardingApiV1BoardsBoardIdOnboardingStartPostMutationBody = + BoardOnboardingStart; +export type StartOnboardingApiV1BoardsBoardIdOnboardingStartPostMutationError = + HTTPValidationError; + +/** + * @summary Start Onboarding + */ +export const useStartOnboardingApiV1BoardsBoardIdOnboardingStartPost = < + TError = HTTPValidationError, + TContext = unknown, +>( + options?: { + mutation?: UseMutationOptions< + Awaited< + ReturnType + >, + TError, + { boardId: string; data: BoardOnboardingStart }, + TContext + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseMutationResult< + Awaited< + ReturnType + >, + TError, + { boardId: string; data: BoardOnboardingStart }, + TContext +> => { + return useMutation( + getStartOnboardingApiV1BoardsBoardIdOnboardingStartPostMutationOptions( + options, + ), + queryClient, + ); +}; diff --git a/frontend/src/api/generated/boards/boards.ts b/frontend/src/api/generated/boards/boards.ts index a5d7e717..85ac2253 100644 --- a/frontend/src/api/generated/boards/boards.ts +++ b/frontend/src/api/generated/boards/boards.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -363,6 +363,123 @@ export const useCreateBoardApiV1BoardsPost = < queryClient, ); }; +/** + * Delete a board and all dependent records. + * @summary Delete Board + */ +export type deleteBoardApiV1BoardsBoardIdDeleteResponse200 = { + data: OkResponse; + status: 200; +}; + +export type deleteBoardApiV1BoardsBoardIdDeleteResponse422 = { + data: HTTPValidationError; + status: 422; +}; + +export type deleteBoardApiV1BoardsBoardIdDeleteResponseSuccess = + deleteBoardApiV1BoardsBoardIdDeleteResponse200 & { + headers: Headers; + }; +export type deleteBoardApiV1BoardsBoardIdDeleteResponseError = + deleteBoardApiV1BoardsBoardIdDeleteResponse422 & { + headers: Headers; + }; + +export type deleteBoardApiV1BoardsBoardIdDeleteResponse = + | deleteBoardApiV1BoardsBoardIdDeleteResponseSuccess + | deleteBoardApiV1BoardsBoardIdDeleteResponseError; + +export const getDeleteBoardApiV1BoardsBoardIdDeleteUrl = (boardId: string) => { + return `/api/v1/boards/${boardId}`; +}; + +export const deleteBoardApiV1BoardsBoardIdDelete = async ( + boardId: string, + options?: RequestInit, +): Promise => { + return customFetch( + getDeleteBoardApiV1BoardsBoardIdDeleteUrl(boardId), + { + ...options, + method: "DELETE", + }, + ); +}; + +export const getDeleteBoardApiV1BoardsBoardIdDeleteMutationOptions = < + TError = HTTPValidationError, + TContext = unknown, +>(options?: { + mutation?: UseMutationOptions< + Awaited>, + TError, + { boardId: string }, + TContext + >; + request?: SecondParameter; +}): UseMutationOptions< + Awaited>, + TError, + { boardId: string }, + TContext +> => { + const mutationKey = ["deleteBoardApiV1BoardsBoardIdDelete"]; + const { mutation: mutationOptions, request: requestOptions } = options + ? options.mutation && + "mutationKey" in options.mutation && + options.mutation.mutationKey + ? options + : { ...options, mutation: { ...options.mutation, mutationKey } } + : { mutation: { mutationKey }, request: undefined }; + + const mutationFn: MutationFunction< + Awaited>, + { boardId: string } + > = (props) => { + const { boardId } = props ?? {}; + + return deleteBoardApiV1BoardsBoardIdDelete(boardId, requestOptions); + }; + + return { mutationFn, ...mutationOptions }; +}; + +export type DeleteBoardApiV1BoardsBoardIdDeleteMutationResult = NonNullable< + Awaited> +>; + +export type DeleteBoardApiV1BoardsBoardIdDeleteMutationError = + HTTPValidationError; + +/** + * @summary Delete Board + */ +export const useDeleteBoardApiV1BoardsBoardIdDelete = < + TError = HTTPValidationError, + TContext = unknown, +>( + options?: { + mutation?: UseMutationOptions< + Awaited>, + TError, + { boardId: string }, + TContext + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseMutationResult< + Awaited>, + TError, + { boardId: string }, + TContext +> => { + return useMutation( + getDeleteBoardApiV1BoardsBoardIdDeleteMutationOptions(options), + queryClient, + ); +}; /** * Get a board by id. * @summary Get Board @@ -683,362 +800,6 @@ export const useUpdateBoardApiV1BoardsBoardIdPatch = < queryClient, ); }; -/** - * Delete a board and all dependent records. - * @summary Delete Board - */ -export type deleteBoardApiV1BoardsBoardIdDeleteResponse200 = { - data: OkResponse; - status: 200; -}; - -export type deleteBoardApiV1BoardsBoardIdDeleteResponse422 = { - data: HTTPValidationError; - status: 422; -}; - -export type deleteBoardApiV1BoardsBoardIdDeleteResponseSuccess = - deleteBoardApiV1BoardsBoardIdDeleteResponse200 & { - headers: Headers; - }; -export type deleteBoardApiV1BoardsBoardIdDeleteResponseError = - deleteBoardApiV1BoardsBoardIdDeleteResponse422 & { - headers: Headers; - }; - -export type deleteBoardApiV1BoardsBoardIdDeleteResponse = - | deleteBoardApiV1BoardsBoardIdDeleteResponseSuccess - | deleteBoardApiV1BoardsBoardIdDeleteResponseError; - -export const getDeleteBoardApiV1BoardsBoardIdDeleteUrl = (boardId: string) => { - return `/api/v1/boards/${boardId}`; -}; - -export const deleteBoardApiV1BoardsBoardIdDelete = async ( - boardId: string, - options?: RequestInit, -): Promise => { - return customFetch( - getDeleteBoardApiV1BoardsBoardIdDeleteUrl(boardId), - { - ...options, - method: "DELETE", - }, - ); -}; - -export const getDeleteBoardApiV1BoardsBoardIdDeleteMutationOptions = < - TError = HTTPValidationError, - TContext = unknown, ->(options?: { - mutation?: UseMutationOptions< - Awaited>, - TError, - { boardId: string }, - TContext - >; - request?: SecondParameter; -}): UseMutationOptions< - Awaited>, - TError, - { boardId: string }, - TContext -> => { - const mutationKey = ["deleteBoardApiV1BoardsBoardIdDelete"]; - const { mutation: mutationOptions, request: requestOptions } = options - ? options.mutation && - "mutationKey" in options.mutation && - options.mutation.mutationKey - ? options - : { ...options, mutation: { ...options.mutation, mutationKey } } - : { mutation: { mutationKey }, request: undefined }; - - const mutationFn: MutationFunction< - Awaited>, - { boardId: string } - > = (props) => { - const { boardId } = props ?? {}; - - return deleteBoardApiV1BoardsBoardIdDelete(boardId, requestOptions); - }; - - return { mutationFn, ...mutationOptions }; -}; - -export type DeleteBoardApiV1BoardsBoardIdDeleteMutationResult = NonNullable< - Awaited> ->; - -export type DeleteBoardApiV1BoardsBoardIdDeleteMutationError = - HTTPValidationError; - -/** - * @summary Delete Board - */ -export const useDeleteBoardApiV1BoardsBoardIdDelete = < - TError = HTTPValidationError, - TContext = unknown, ->( - options?: { - mutation?: UseMutationOptions< - Awaited>, - TError, - { boardId: string }, - TContext - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseMutationResult< - Awaited>, - TError, - { boardId: string }, - TContext -> => { - return useMutation( - getDeleteBoardApiV1BoardsBoardIdDeleteMutationOptions(options), - queryClient, - ); -}; -/** - * Get a board snapshot view model. - * @summary Get Board Snapshot - */ -export type getBoardSnapshotApiV1BoardsBoardIdSnapshotGetResponse200 = { - data: BoardSnapshot; - status: 200; -}; - -export type getBoardSnapshotApiV1BoardsBoardIdSnapshotGetResponse422 = { - data: HTTPValidationError; - status: 422; -}; - -export type getBoardSnapshotApiV1BoardsBoardIdSnapshotGetResponseSuccess = - getBoardSnapshotApiV1BoardsBoardIdSnapshotGetResponse200 & { - headers: Headers; - }; -export type getBoardSnapshotApiV1BoardsBoardIdSnapshotGetResponseError = - getBoardSnapshotApiV1BoardsBoardIdSnapshotGetResponse422 & { - headers: Headers; - }; - -export type getBoardSnapshotApiV1BoardsBoardIdSnapshotGetResponse = - | getBoardSnapshotApiV1BoardsBoardIdSnapshotGetResponseSuccess - | getBoardSnapshotApiV1BoardsBoardIdSnapshotGetResponseError; - -export const getGetBoardSnapshotApiV1BoardsBoardIdSnapshotGetUrl = ( - boardId: string, -) => { - return `/api/v1/boards/${boardId}/snapshot`; -}; - -export const getBoardSnapshotApiV1BoardsBoardIdSnapshotGet = async ( - boardId: string, - options?: RequestInit, -): Promise => { - return customFetch( - getGetBoardSnapshotApiV1BoardsBoardIdSnapshotGetUrl(boardId), - { - ...options, - method: "GET", - }, - ); -}; - -export const getGetBoardSnapshotApiV1BoardsBoardIdSnapshotGetQueryKey = ( - boardId: string, -) => { - return [`/api/v1/boards/${boardId}/snapshot`] as const; -}; - -export const getGetBoardSnapshotApiV1BoardsBoardIdSnapshotGetQueryOptions = < - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - boardId: string, - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - >; - request?: SecondParameter; - }, -) => { - const { query: queryOptions, request: requestOptions } = options ?? {}; - - const queryKey = - queryOptions?.queryKey ?? - getGetBoardSnapshotApiV1BoardsBoardIdSnapshotGetQueryKey(boardId); - - const queryFn: QueryFunction< - Awaited> - > = ({ signal }) => - getBoardSnapshotApiV1BoardsBoardIdSnapshotGet(boardId, { - signal, - ...requestOptions, - }); - - return { - queryKey, - queryFn, - enabled: !!boardId, - ...queryOptions, - } as UseQueryOptions< - Awaited>, - TError, - TData - > & { queryKey: DataTag }; -}; - -export type GetBoardSnapshotApiV1BoardsBoardIdSnapshotGetQueryResult = - NonNullable< - Awaited> - >; -export type GetBoardSnapshotApiV1BoardsBoardIdSnapshotGetQueryError = - HTTPValidationError; - -export function useGetBoardSnapshotApiV1BoardsBoardIdSnapshotGet< - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - boardId: string, - options: { - query: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - > & - Pick< - DefinedInitialDataOptions< - Awaited< - ReturnType - >, - TError, - Awaited< - ReturnType - > - >, - "initialData" - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): DefinedUseQueryResult & { - queryKey: DataTag; -}; -export function useGetBoardSnapshotApiV1BoardsBoardIdSnapshotGet< - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - boardId: string, - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - > & - Pick< - UndefinedInitialDataOptions< - Awaited< - ReturnType - >, - TError, - Awaited< - ReturnType - > - >, - "initialData" - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -}; -export function useGetBoardSnapshotApiV1BoardsBoardIdSnapshotGet< - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - boardId: string, - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -}; -/** - * @summary Get Board Snapshot - */ - -export function useGetBoardSnapshotApiV1BoardsBoardIdSnapshotGet< - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - boardId: string, - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -} { - const queryOptions = - getGetBoardSnapshotApiV1BoardsBoardIdSnapshotGetQueryOptions( - boardId, - options, - ); - - const query = useQuery(queryOptions, queryClient) as UseQueryResult< - TData, - TError - > & { queryKey: DataTag }; - - return { ...query, queryKey: queryOptions.queryKey }; -} - /** * Get a grouped snapshot across related boards. * @summary Get Board Group Snapshot @@ -1341,3 +1102,242 @@ export function useGetBoardGroupSnapshotApiV1BoardsBoardIdGroupSnapshotGet< return { ...query, queryKey: queryOptions.queryKey }; } + +/** + * Get a board snapshot view model. + * @summary Get Board Snapshot + */ +export type getBoardSnapshotApiV1BoardsBoardIdSnapshotGetResponse200 = { + data: BoardSnapshot; + status: 200; +}; + +export type getBoardSnapshotApiV1BoardsBoardIdSnapshotGetResponse422 = { + data: HTTPValidationError; + status: 422; +}; + +export type getBoardSnapshotApiV1BoardsBoardIdSnapshotGetResponseSuccess = + getBoardSnapshotApiV1BoardsBoardIdSnapshotGetResponse200 & { + headers: Headers; + }; +export type getBoardSnapshotApiV1BoardsBoardIdSnapshotGetResponseError = + getBoardSnapshotApiV1BoardsBoardIdSnapshotGetResponse422 & { + headers: Headers; + }; + +export type getBoardSnapshotApiV1BoardsBoardIdSnapshotGetResponse = + | getBoardSnapshotApiV1BoardsBoardIdSnapshotGetResponseSuccess + | getBoardSnapshotApiV1BoardsBoardIdSnapshotGetResponseError; + +export const getGetBoardSnapshotApiV1BoardsBoardIdSnapshotGetUrl = ( + boardId: string, +) => { + return `/api/v1/boards/${boardId}/snapshot`; +}; + +export const getBoardSnapshotApiV1BoardsBoardIdSnapshotGet = async ( + boardId: string, + options?: RequestInit, +): Promise => { + return customFetch( + getGetBoardSnapshotApiV1BoardsBoardIdSnapshotGetUrl(boardId), + { + ...options, + method: "GET", + }, + ); +}; + +export const getGetBoardSnapshotApiV1BoardsBoardIdSnapshotGetQueryKey = ( + boardId: string, +) => { + return [`/api/v1/boards/${boardId}/snapshot`] as const; +}; + +export const getGetBoardSnapshotApiV1BoardsBoardIdSnapshotGetQueryOptions = < + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + boardId: string, + options?: { + query?: Partial< + UseQueryOptions< + Awaited< + ReturnType + >, + TError, + TData + > + >; + request?: SecondParameter; + }, +) => { + const { query: queryOptions, request: requestOptions } = options ?? {}; + + const queryKey = + queryOptions?.queryKey ?? + getGetBoardSnapshotApiV1BoardsBoardIdSnapshotGetQueryKey(boardId); + + const queryFn: QueryFunction< + Awaited> + > = ({ signal }) => + getBoardSnapshotApiV1BoardsBoardIdSnapshotGet(boardId, { + signal, + ...requestOptions, + }); + + return { + queryKey, + queryFn, + enabled: !!boardId, + ...queryOptions, + } as UseQueryOptions< + Awaited>, + TError, + TData + > & { queryKey: DataTag }; +}; + +export type GetBoardSnapshotApiV1BoardsBoardIdSnapshotGetQueryResult = + NonNullable< + Awaited> + >; +export type GetBoardSnapshotApiV1BoardsBoardIdSnapshotGetQueryError = + HTTPValidationError; + +export function useGetBoardSnapshotApiV1BoardsBoardIdSnapshotGet< + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + boardId: string, + options: { + query: Partial< + UseQueryOptions< + Awaited< + ReturnType + >, + TError, + TData + > + > & + Pick< + DefinedInitialDataOptions< + Awaited< + ReturnType + >, + TError, + Awaited< + ReturnType + > + >, + "initialData" + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): DefinedUseQueryResult & { + queryKey: DataTag; +}; +export function useGetBoardSnapshotApiV1BoardsBoardIdSnapshotGet< + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + boardId: string, + options?: { + query?: Partial< + UseQueryOptions< + Awaited< + ReturnType + >, + TError, + TData + > + > & + Pick< + UndefinedInitialDataOptions< + Awaited< + ReturnType + >, + TError, + Awaited< + ReturnType + > + >, + "initialData" + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +}; +export function useGetBoardSnapshotApiV1BoardsBoardIdSnapshotGet< + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + boardId: string, + options?: { + query?: Partial< + UseQueryOptions< + Awaited< + ReturnType + >, + TError, + TData + > + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +}; +/** + * @summary Get Board Snapshot + */ + +export function useGetBoardSnapshotApiV1BoardsBoardIdSnapshotGet< + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + boardId: string, + options?: { + query?: Partial< + UseQueryOptions< + Awaited< + ReturnType + >, + TError, + TData + > + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +} { + const queryOptions = + getGetBoardSnapshotApiV1BoardsBoardIdSnapshotGetQueryOptions( + boardId, + options, + ); + + const query = useQuery(queryOptions, queryClient) as UseQueryResult< + TData, + TError + > & { queryKey: DataTag }; + + return { ...query, queryKey: queryOptions.queryKey }; +} diff --git a/frontend/src/api/generated/default/default.ts b/frontend/src/api/generated/default/default.ts index d6ec918f..07088982 100644 --- a/frontend/src/api/generated/default/default.ts +++ b/frontend/src/api/generated/default/default.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/gateways/gateways.ts b/frontend/src/api/generated/gateways/gateways.ts index 0bed5183..63e1f9b1 100644 --- a/frontend/src/api/generated/gateways/gateways.ts +++ b/frontend/src/api/generated/gateways/gateways.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -48,34 +48,34 @@ import { customFetch } from "../../mutator"; type SecondParameter unknown> = Parameters[1]; /** - * Return gateway connectivity and session status. - * @summary Gateways Status + * List gateways for the caller's organization. + * @summary List Gateways */ -export type gatewaysStatusApiV1GatewaysStatusGetResponse200 = { - data: GatewaysStatusResponse; +export type listGatewaysApiV1GatewaysGetResponse200 = { + data: LimitOffsetPageTypeVarCustomizedGatewayRead; status: 200; }; -export type gatewaysStatusApiV1GatewaysStatusGetResponse422 = { +export type listGatewaysApiV1GatewaysGetResponse422 = { data: HTTPValidationError; status: 422; }; -export type gatewaysStatusApiV1GatewaysStatusGetResponseSuccess = - gatewaysStatusApiV1GatewaysStatusGetResponse200 & { +export type listGatewaysApiV1GatewaysGetResponseSuccess = + listGatewaysApiV1GatewaysGetResponse200 & { headers: Headers; }; -export type gatewaysStatusApiV1GatewaysStatusGetResponseError = - gatewaysStatusApiV1GatewaysStatusGetResponse422 & { +export type listGatewaysApiV1GatewaysGetResponseError = + listGatewaysApiV1GatewaysGetResponse422 & { headers: Headers; }; -export type gatewaysStatusApiV1GatewaysStatusGetResponse = - | gatewaysStatusApiV1GatewaysStatusGetResponseSuccess - | gatewaysStatusApiV1GatewaysStatusGetResponseError; +export type listGatewaysApiV1GatewaysGetResponse = + | listGatewaysApiV1GatewaysGetResponseSuccess + | listGatewaysApiV1GatewaysGetResponseError; -export const getGatewaysStatusApiV1GatewaysStatusGetUrl = ( - params?: GatewaysStatusApiV1GatewaysStatusGetParams, +export const getListGatewaysApiV1GatewaysGetUrl = ( + params?: ListGatewaysApiV1GatewaysGetParams, ) => { const normalizedParams = new URLSearchParams(); @@ -88,16 +88,16 @@ export const getGatewaysStatusApiV1GatewaysStatusGetUrl = ( const stringifiedParams = normalizedParams.toString(); return stringifiedParams.length > 0 - ? `/api/v1/gateways/status?${stringifiedParams}` - : `/api/v1/gateways/status`; + ? `/api/v1/gateways?${stringifiedParams}` + : `/api/v1/gateways`; }; -export const gatewaysStatusApiV1GatewaysStatusGet = async ( - params?: GatewaysStatusApiV1GatewaysStatusGetParams, +export const listGatewaysApiV1GatewaysGet = async ( + params?: ListGatewaysApiV1GatewaysGetParams, options?: RequestInit, -): Promise => { - return customFetch( - getGatewaysStatusApiV1GatewaysStatusGetUrl(params), +): Promise => { + return customFetch( + getListGatewaysApiV1GatewaysGetUrl(params), { ...options, method: "GET", @@ -105,21 +105,21 @@ export const gatewaysStatusApiV1GatewaysStatusGet = async ( ); }; -export const getGatewaysStatusApiV1GatewaysStatusGetQueryKey = ( - params?: GatewaysStatusApiV1GatewaysStatusGetParams, +export const getListGatewaysApiV1GatewaysGetQueryKey = ( + params?: ListGatewaysApiV1GatewaysGetParams, ) => { - return [`/api/v1/gateways/status`, ...(params ? [params] : [])] as const; + return [`/api/v1/gateways`, ...(params ? [params] : [])] as const; }; -export const getGatewaysStatusApiV1GatewaysStatusGetQueryOptions = < - TData = Awaited>, +export const getListGatewaysApiV1GatewaysGetQueryOptions = < + TData = Awaited>, TError = HTTPValidationError, >( - params?: GatewaysStatusApiV1GatewaysStatusGetParams, + params?: ListGatewaysApiV1GatewaysGetParams, options?: { query?: Partial< UseQueryOptions< - Awaited>, + Awaited>, TError, TData > @@ -130,45 +130,43 @@ export const getGatewaysStatusApiV1GatewaysStatusGetQueryOptions = < const { query: queryOptions, request: requestOptions } = options ?? {}; const queryKey = - queryOptions?.queryKey ?? - getGatewaysStatusApiV1GatewaysStatusGetQueryKey(params); + queryOptions?.queryKey ?? getListGatewaysApiV1GatewaysGetQueryKey(params); const queryFn: QueryFunction< - Awaited> + Awaited> > = ({ signal }) => - gatewaysStatusApiV1GatewaysStatusGet(params, { signal, ...requestOptions }); + listGatewaysApiV1GatewaysGet(params, { signal, ...requestOptions }); return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< - Awaited>, + Awaited>, TError, TData > & { queryKey: DataTag }; }; -export type GatewaysStatusApiV1GatewaysStatusGetQueryResult = NonNullable< - Awaited> +export type ListGatewaysApiV1GatewaysGetQueryResult = NonNullable< + Awaited> >; -export type GatewaysStatusApiV1GatewaysStatusGetQueryError = - HTTPValidationError; +export type ListGatewaysApiV1GatewaysGetQueryError = HTTPValidationError; -export function useGatewaysStatusApiV1GatewaysStatusGet< - TData = Awaited>, +export function useListGatewaysApiV1GatewaysGet< + TData = Awaited>, TError = HTTPValidationError, >( - params: undefined | GatewaysStatusApiV1GatewaysStatusGetParams, + params: undefined | ListGatewaysApiV1GatewaysGetParams, options: { query: Partial< UseQueryOptions< - Awaited>, + Awaited>, TError, TData > > & Pick< DefinedInitialDataOptions< - Awaited>, + Awaited>, TError, - Awaited> + Awaited> >, "initialData" >; @@ -178,24 +176,24 @@ export function useGatewaysStatusApiV1GatewaysStatusGet< ): DefinedUseQueryResult & { queryKey: DataTag; }; -export function useGatewaysStatusApiV1GatewaysStatusGet< - TData = Awaited>, +export function useListGatewaysApiV1GatewaysGet< + TData = Awaited>, TError = HTTPValidationError, >( - params?: GatewaysStatusApiV1GatewaysStatusGetParams, + params?: ListGatewaysApiV1GatewaysGetParams, options?: { query?: Partial< UseQueryOptions< - Awaited>, + Awaited>, TError, TData > > & Pick< UndefinedInitialDataOptions< - Awaited>, + Awaited>, TError, - Awaited> + Awaited> >, "initialData" >; @@ -205,15 +203,15 @@ export function useGatewaysStatusApiV1GatewaysStatusGet< ): UseQueryResult & { queryKey: DataTag; }; -export function useGatewaysStatusApiV1GatewaysStatusGet< - TData = Awaited>, +export function useListGatewaysApiV1GatewaysGet< + TData = Awaited>, TError = HTTPValidationError, >( - params?: GatewaysStatusApiV1GatewaysStatusGetParams, + params?: ListGatewaysApiV1GatewaysGetParams, options?: { query?: Partial< UseQueryOptions< - Awaited>, + Awaited>, TError, TData > @@ -225,18 +223,18 @@ export function useGatewaysStatusApiV1GatewaysStatusGet< queryKey: DataTag; }; /** - * @summary Gateways Status + * @summary List Gateways */ -export function useGatewaysStatusApiV1GatewaysStatusGet< - TData = Awaited>, +export function useListGatewaysApiV1GatewaysGet< + TData = Awaited>, TError = HTTPValidationError, >( - params?: GatewaysStatusApiV1GatewaysStatusGetParams, + params?: ListGatewaysApiV1GatewaysGetParams, options?: { query?: Partial< UseQueryOptions< - Awaited>, + Awaited>, TError, TData > @@ -247,7 +245,7 @@ export function useGatewaysStatusApiV1GatewaysStatusGet< ): UseQueryResult & { queryKey: DataTag; } { - const queryOptions = getGatewaysStatusApiV1GatewaysStatusGetQueryOptions( + const queryOptions = getListGatewaysApiV1GatewaysGetQueryOptions( params, options, ); @@ -260,6 +258,299 @@ export function useGatewaysStatusApiV1GatewaysStatusGet< return { ...query, queryKey: queryOptions.queryKey }; } +/** + * Create a gateway and provision or refresh its main agent. + * @summary Create Gateway + */ +export type createGatewayApiV1GatewaysPostResponse200 = { + data: GatewayRead; + status: 200; +}; + +export type createGatewayApiV1GatewaysPostResponse422 = { + data: HTTPValidationError; + status: 422; +}; + +export type createGatewayApiV1GatewaysPostResponseSuccess = + createGatewayApiV1GatewaysPostResponse200 & { + headers: Headers; + }; +export type createGatewayApiV1GatewaysPostResponseError = + createGatewayApiV1GatewaysPostResponse422 & { + headers: Headers; + }; + +export type createGatewayApiV1GatewaysPostResponse = + | createGatewayApiV1GatewaysPostResponseSuccess + | createGatewayApiV1GatewaysPostResponseError; + +export const getCreateGatewayApiV1GatewaysPostUrl = () => { + return `/api/v1/gateways`; +}; + +export const createGatewayApiV1GatewaysPost = async ( + gatewayCreate: GatewayCreate, + options?: RequestInit, +): Promise => { + return customFetch( + getCreateGatewayApiV1GatewaysPostUrl(), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(gatewayCreate), + }, + ); +}; + +export const getCreateGatewayApiV1GatewaysPostMutationOptions = < + TError = HTTPValidationError, + TContext = unknown, +>(options?: { + mutation?: UseMutationOptions< + Awaited>, + TError, + { data: GatewayCreate }, + TContext + >; + request?: SecondParameter; +}): UseMutationOptions< + Awaited>, + TError, + { data: GatewayCreate }, + TContext +> => { + const mutationKey = ["createGatewayApiV1GatewaysPost"]; + const { mutation: mutationOptions, request: requestOptions } = options + ? options.mutation && + "mutationKey" in options.mutation && + options.mutation.mutationKey + ? options + : { ...options, mutation: { ...options.mutation, mutationKey } } + : { mutation: { mutationKey }, request: undefined }; + + const mutationFn: MutationFunction< + Awaited>, + { data: GatewayCreate } + > = (props) => { + const { data } = props ?? {}; + + return createGatewayApiV1GatewaysPost(data, requestOptions); + }; + + return { mutationFn, ...mutationOptions }; +}; + +export type CreateGatewayApiV1GatewaysPostMutationResult = NonNullable< + Awaited> +>; +export type CreateGatewayApiV1GatewaysPostMutationBody = GatewayCreate; +export type CreateGatewayApiV1GatewaysPostMutationError = HTTPValidationError; + +/** + * @summary Create Gateway + */ +export const useCreateGatewayApiV1GatewaysPost = < + TError = HTTPValidationError, + TContext = unknown, +>( + options?: { + mutation?: UseMutationOptions< + Awaited>, + TError, + { data: GatewayCreate }, + TContext + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseMutationResult< + Awaited>, + TError, + { data: GatewayCreate }, + TContext +> => { + return useMutation( + getCreateGatewayApiV1GatewaysPostMutationOptions(options), + queryClient, + ); +}; +/** + * Return supported gateway protocol methods and events. + * @summary Gateway Commands + */ +export type gatewayCommandsApiV1GatewaysCommandsGetResponse200 = { + data: GatewayCommandsResponse; + status: 200; +}; + +export type gatewayCommandsApiV1GatewaysCommandsGetResponseSuccess = + gatewayCommandsApiV1GatewaysCommandsGetResponse200 & { + headers: Headers; + }; +export type gatewayCommandsApiV1GatewaysCommandsGetResponse = + gatewayCommandsApiV1GatewaysCommandsGetResponseSuccess; + +export const getGatewayCommandsApiV1GatewaysCommandsGetUrl = () => { + return `/api/v1/gateways/commands`; +}; + +export const gatewayCommandsApiV1GatewaysCommandsGet = async ( + options?: RequestInit, +): Promise => { + return customFetch( + getGatewayCommandsApiV1GatewaysCommandsGetUrl(), + { + ...options, + method: "GET", + }, + ); +}; + +export const getGatewayCommandsApiV1GatewaysCommandsGetQueryKey = () => { + return [`/api/v1/gateways/commands`] as const; +}; + +export const getGatewayCommandsApiV1GatewaysCommandsGetQueryOptions = < + TData = Awaited>, + TError = unknown, +>(options?: { + query?: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + >; + request?: SecondParameter; +}) => { + const { query: queryOptions, request: requestOptions } = options ?? {}; + + const queryKey = + queryOptions?.queryKey ?? + getGatewayCommandsApiV1GatewaysCommandsGetQueryKey(); + + const queryFn: QueryFunction< + Awaited> + > = ({ signal }) => + gatewayCommandsApiV1GatewaysCommandsGet({ signal, ...requestOptions }); + + return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< + Awaited>, + TError, + TData + > & { queryKey: DataTag }; +}; + +export type GatewayCommandsApiV1GatewaysCommandsGetQueryResult = NonNullable< + Awaited> +>; +export type GatewayCommandsApiV1GatewaysCommandsGetQueryError = unknown; + +export function useGatewayCommandsApiV1GatewaysCommandsGet< + TData = Awaited>, + TError = unknown, +>( + options: { + query: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + > & + Pick< + DefinedInitialDataOptions< + Awaited>, + TError, + Awaited> + >, + "initialData" + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): DefinedUseQueryResult & { + queryKey: DataTag; +}; +export function useGatewayCommandsApiV1GatewaysCommandsGet< + TData = Awaited>, + TError = unknown, +>( + options?: { + query?: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + > & + Pick< + UndefinedInitialDataOptions< + Awaited>, + TError, + Awaited> + >, + "initialData" + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +}; +export function useGatewayCommandsApiV1GatewaysCommandsGet< + TData = Awaited>, + TError = unknown, +>( + options?: { + query?: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +}; +/** + * @summary Gateway Commands + */ + +export function useGatewayCommandsApiV1GatewaysCommandsGet< + TData = Awaited>, + TError = unknown, +>( + options?: { + query?: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +} { + const queryOptions = + getGatewayCommandsApiV1GatewaysCommandsGetQueryOptions(options); + + const query = useQuery(queryOptions, queryClient) as UseQueryResult< + TData, + TError + > & { queryKey: DataTag }; + + return { ...query, queryKey: queryOptions.queryKey }; +} + /** * List sessions for a gateway associated with a board. * @summary List Gateway Sessions @@ -1283,209 +1574,34 @@ export const useSendGatewaySessionMessageApiV1GatewaysSessionsSessionIdMessagePo ); }; /** - * Return supported gateway protocol methods and events. - * @summary Gateway Commands + * Return gateway connectivity and session status. + * @summary Gateways Status */ -export type gatewayCommandsApiV1GatewaysCommandsGetResponse200 = { - data: GatewayCommandsResponse; +export type gatewaysStatusApiV1GatewaysStatusGetResponse200 = { + data: GatewaysStatusResponse; status: 200; }; -export type gatewayCommandsApiV1GatewaysCommandsGetResponseSuccess = - gatewayCommandsApiV1GatewaysCommandsGetResponse200 & { - headers: Headers; - }; -export type gatewayCommandsApiV1GatewaysCommandsGetResponse = - gatewayCommandsApiV1GatewaysCommandsGetResponseSuccess; - -export const getGatewayCommandsApiV1GatewaysCommandsGetUrl = () => { - return `/api/v1/gateways/commands`; -}; - -export const gatewayCommandsApiV1GatewaysCommandsGet = async ( - options?: RequestInit, -): Promise => { - return customFetch( - getGatewayCommandsApiV1GatewaysCommandsGetUrl(), - { - ...options, - method: "GET", - }, - ); -}; - -export const getGatewayCommandsApiV1GatewaysCommandsGetQueryKey = () => { - return [`/api/v1/gateways/commands`] as const; -}; - -export const getGatewayCommandsApiV1GatewaysCommandsGetQueryOptions = < - TData = Awaited>, - TError = unknown, ->(options?: { - query?: Partial< - UseQueryOptions< - Awaited>, - TError, - TData - > - >; - request?: SecondParameter; -}) => { - const { query: queryOptions, request: requestOptions } = options ?? {}; - - const queryKey = - queryOptions?.queryKey ?? - getGatewayCommandsApiV1GatewaysCommandsGetQueryKey(); - - const queryFn: QueryFunction< - Awaited> - > = ({ signal }) => - gatewayCommandsApiV1GatewaysCommandsGet({ signal, ...requestOptions }); - - return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< - Awaited>, - TError, - TData - > & { queryKey: DataTag }; -}; - -export type GatewayCommandsApiV1GatewaysCommandsGetQueryResult = NonNullable< - Awaited> ->; -export type GatewayCommandsApiV1GatewaysCommandsGetQueryError = unknown; - -export function useGatewayCommandsApiV1GatewaysCommandsGet< - TData = Awaited>, - TError = unknown, ->( - options: { - query: Partial< - UseQueryOptions< - Awaited>, - TError, - TData - > - > & - Pick< - DefinedInitialDataOptions< - Awaited>, - TError, - Awaited> - >, - "initialData" - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): DefinedUseQueryResult & { - queryKey: DataTag; -}; -export function useGatewayCommandsApiV1GatewaysCommandsGet< - TData = Awaited>, - TError = unknown, ->( - options?: { - query?: Partial< - UseQueryOptions< - Awaited>, - TError, - TData - > - > & - Pick< - UndefinedInitialDataOptions< - Awaited>, - TError, - Awaited> - >, - "initialData" - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -}; -export function useGatewayCommandsApiV1GatewaysCommandsGet< - TData = Awaited>, - TError = unknown, ->( - options?: { - query?: Partial< - UseQueryOptions< - Awaited>, - TError, - TData - > - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -}; -/** - * @summary Gateway Commands - */ - -export function useGatewayCommandsApiV1GatewaysCommandsGet< - TData = Awaited>, - TError = unknown, ->( - options?: { - query?: Partial< - UseQueryOptions< - Awaited>, - TError, - TData - > - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -} { - const queryOptions = - getGatewayCommandsApiV1GatewaysCommandsGetQueryOptions(options); - - const query = useQuery(queryOptions, queryClient) as UseQueryResult< - TData, - TError - > & { queryKey: DataTag }; - - return { ...query, queryKey: queryOptions.queryKey }; -} - -/** - * List gateways for the caller's organization. - * @summary List Gateways - */ -export type listGatewaysApiV1GatewaysGetResponse200 = { - data: LimitOffsetPageTypeVarCustomizedGatewayRead; - status: 200; -}; - -export type listGatewaysApiV1GatewaysGetResponse422 = { +export type gatewaysStatusApiV1GatewaysStatusGetResponse422 = { data: HTTPValidationError; status: 422; }; -export type listGatewaysApiV1GatewaysGetResponseSuccess = - listGatewaysApiV1GatewaysGetResponse200 & { +export type gatewaysStatusApiV1GatewaysStatusGetResponseSuccess = + gatewaysStatusApiV1GatewaysStatusGetResponse200 & { headers: Headers; }; -export type listGatewaysApiV1GatewaysGetResponseError = - listGatewaysApiV1GatewaysGetResponse422 & { +export type gatewaysStatusApiV1GatewaysStatusGetResponseError = + gatewaysStatusApiV1GatewaysStatusGetResponse422 & { headers: Headers; }; -export type listGatewaysApiV1GatewaysGetResponse = - | listGatewaysApiV1GatewaysGetResponseSuccess - | listGatewaysApiV1GatewaysGetResponseError; +export type gatewaysStatusApiV1GatewaysStatusGetResponse = + | gatewaysStatusApiV1GatewaysStatusGetResponseSuccess + | gatewaysStatusApiV1GatewaysStatusGetResponseError; -export const getListGatewaysApiV1GatewaysGetUrl = ( - params?: ListGatewaysApiV1GatewaysGetParams, +export const getGatewaysStatusApiV1GatewaysStatusGetUrl = ( + params?: GatewaysStatusApiV1GatewaysStatusGetParams, ) => { const normalizedParams = new URLSearchParams(); @@ -1498,16 +1614,16 @@ export const getListGatewaysApiV1GatewaysGetUrl = ( const stringifiedParams = normalizedParams.toString(); return stringifiedParams.length > 0 - ? `/api/v1/gateways?${stringifiedParams}` - : `/api/v1/gateways`; + ? `/api/v1/gateways/status?${stringifiedParams}` + : `/api/v1/gateways/status`; }; -export const listGatewaysApiV1GatewaysGet = async ( - params?: ListGatewaysApiV1GatewaysGetParams, +export const gatewaysStatusApiV1GatewaysStatusGet = async ( + params?: GatewaysStatusApiV1GatewaysStatusGetParams, options?: RequestInit, -): Promise => { - return customFetch( - getListGatewaysApiV1GatewaysGetUrl(params), +): Promise => { + return customFetch( + getGatewaysStatusApiV1GatewaysStatusGetUrl(params), { ...options, method: "GET", @@ -1515,21 +1631,21 @@ export const listGatewaysApiV1GatewaysGet = async ( ); }; -export const getListGatewaysApiV1GatewaysGetQueryKey = ( - params?: ListGatewaysApiV1GatewaysGetParams, +export const getGatewaysStatusApiV1GatewaysStatusGetQueryKey = ( + params?: GatewaysStatusApiV1GatewaysStatusGetParams, ) => { - return [`/api/v1/gateways`, ...(params ? [params] : [])] as const; + return [`/api/v1/gateways/status`, ...(params ? [params] : [])] as const; }; -export const getListGatewaysApiV1GatewaysGetQueryOptions = < - TData = Awaited>, +export const getGatewaysStatusApiV1GatewaysStatusGetQueryOptions = < + TData = Awaited>, TError = HTTPValidationError, >( - params?: ListGatewaysApiV1GatewaysGetParams, + params?: GatewaysStatusApiV1GatewaysStatusGetParams, options?: { query?: Partial< UseQueryOptions< - Awaited>, + Awaited>, TError, TData > @@ -1540,43 +1656,45 @@ export const getListGatewaysApiV1GatewaysGetQueryOptions = < const { query: queryOptions, request: requestOptions } = options ?? {}; const queryKey = - queryOptions?.queryKey ?? getListGatewaysApiV1GatewaysGetQueryKey(params); + queryOptions?.queryKey ?? + getGatewaysStatusApiV1GatewaysStatusGetQueryKey(params); const queryFn: QueryFunction< - Awaited> + Awaited> > = ({ signal }) => - listGatewaysApiV1GatewaysGet(params, { signal, ...requestOptions }); + gatewaysStatusApiV1GatewaysStatusGet(params, { signal, ...requestOptions }); return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< - Awaited>, + Awaited>, TError, TData > & { queryKey: DataTag }; }; -export type ListGatewaysApiV1GatewaysGetQueryResult = NonNullable< - Awaited> +export type GatewaysStatusApiV1GatewaysStatusGetQueryResult = NonNullable< + Awaited> >; -export type ListGatewaysApiV1GatewaysGetQueryError = HTTPValidationError; +export type GatewaysStatusApiV1GatewaysStatusGetQueryError = + HTTPValidationError; -export function useListGatewaysApiV1GatewaysGet< - TData = Awaited>, +export function useGatewaysStatusApiV1GatewaysStatusGet< + TData = Awaited>, TError = HTTPValidationError, >( - params: undefined | ListGatewaysApiV1GatewaysGetParams, + params: undefined | GatewaysStatusApiV1GatewaysStatusGetParams, options: { query: Partial< UseQueryOptions< - Awaited>, + Awaited>, TError, TData > > & Pick< DefinedInitialDataOptions< - Awaited>, + Awaited>, TError, - Awaited> + Awaited> >, "initialData" >; @@ -1586,24 +1704,24 @@ export function useListGatewaysApiV1GatewaysGet< ): DefinedUseQueryResult & { queryKey: DataTag; }; -export function useListGatewaysApiV1GatewaysGet< - TData = Awaited>, +export function useGatewaysStatusApiV1GatewaysStatusGet< + TData = Awaited>, TError = HTTPValidationError, >( - params?: ListGatewaysApiV1GatewaysGetParams, + params?: GatewaysStatusApiV1GatewaysStatusGetParams, options?: { query?: Partial< UseQueryOptions< - Awaited>, + Awaited>, TError, TData > > & Pick< UndefinedInitialDataOptions< - Awaited>, + Awaited>, TError, - Awaited> + Awaited> >, "initialData" >; @@ -1613,15 +1731,15 @@ export function useListGatewaysApiV1GatewaysGet< ): UseQueryResult & { queryKey: DataTag; }; -export function useListGatewaysApiV1GatewaysGet< - TData = Awaited>, +export function useGatewaysStatusApiV1GatewaysStatusGet< + TData = Awaited>, TError = HTTPValidationError, >( - params?: ListGatewaysApiV1GatewaysGetParams, + params?: GatewaysStatusApiV1GatewaysStatusGetParams, options?: { query?: Partial< UseQueryOptions< - Awaited>, + Awaited>, TError, TData > @@ -1633,18 +1751,18 @@ export function useListGatewaysApiV1GatewaysGet< queryKey: DataTag; }; /** - * @summary List Gateways + * @summary Gateways Status */ -export function useListGatewaysApiV1GatewaysGet< - TData = Awaited>, +export function useGatewaysStatusApiV1GatewaysStatusGet< + TData = Awaited>, TError = HTTPValidationError, >( - params?: ListGatewaysApiV1GatewaysGetParams, + params?: GatewaysStatusApiV1GatewaysStatusGetParams, options?: { query?: Partial< UseQueryOptions< - Awaited>, + Awaited>, TError, TData > @@ -1655,7 +1773,7 @@ export function useListGatewaysApiV1GatewaysGet< ): UseQueryResult & { queryKey: DataTag; } { - const queryOptions = getListGatewaysApiV1GatewaysGetQueryOptions( + const queryOptions = getGatewaysStatusApiV1GatewaysStatusGetQueryOptions( params, options, ); @@ -1669,69 +1787,69 @@ export function useListGatewaysApiV1GatewaysGet< } /** - * Create a gateway and provision or refresh its main agent. - * @summary Create Gateway + * Delete a gateway in the caller's organization. + * @summary Delete Gateway */ -export type createGatewayApiV1GatewaysPostResponse200 = { - data: GatewayRead; +export type deleteGatewayApiV1GatewaysGatewayIdDeleteResponse200 = { + data: OkResponse; status: 200; }; -export type createGatewayApiV1GatewaysPostResponse422 = { +export type deleteGatewayApiV1GatewaysGatewayIdDeleteResponse422 = { data: HTTPValidationError; status: 422; }; -export type createGatewayApiV1GatewaysPostResponseSuccess = - createGatewayApiV1GatewaysPostResponse200 & { +export type deleteGatewayApiV1GatewaysGatewayIdDeleteResponseSuccess = + deleteGatewayApiV1GatewaysGatewayIdDeleteResponse200 & { headers: Headers; }; -export type createGatewayApiV1GatewaysPostResponseError = - createGatewayApiV1GatewaysPostResponse422 & { +export type deleteGatewayApiV1GatewaysGatewayIdDeleteResponseError = + deleteGatewayApiV1GatewaysGatewayIdDeleteResponse422 & { headers: Headers; }; -export type createGatewayApiV1GatewaysPostResponse = - | createGatewayApiV1GatewaysPostResponseSuccess - | createGatewayApiV1GatewaysPostResponseError; +export type deleteGatewayApiV1GatewaysGatewayIdDeleteResponse = + | deleteGatewayApiV1GatewaysGatewayIdDeleteResponseSuccess + | deleteGatewayApiV1GatewaysGatewayIdDeleteResponseError; -export const getCreateGatewayApiV1GatewaysPostUrl = () => { - return `/api/v1/gateways`; +export const getDeleteGatewayApiV1GatewaysGatewayIdDeleteUrl = ( + gatewayId: string, +) => { + return `/api/v1/gateways/${gatewayId}`; }; -export const createGatewayApiV1GatewaysPost = async ( - gatewayCreate: GatewayCreate, +export const deleteGatewayApiV1GatewaysGatewayIdDelete = async ( + gatewayId: string, options?: RequestInit, -): Promise => { - return customFetch( - getCreateGatewayApiV1GatewaysPostUrl(), +): Promise => { + return customFetch( + getDeleteGatewayApiV1GatewaysGatewayIdDeleteUrl(gatewayId), { ...options, - method: "POST", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(gatewayCreate), + method: "DELETE", }, ); }; -export const getCreateGatewayApiV1GatewaysPostMutationOptions = < +export const getDeleteGatewayApiV1GatewaysGatewayIdDeleteMutationOptions = < TError = HTTPValidationError, TContext = unknown, >(options?: { mutation?: UseMutationOptions< - Awaited>, + Awaited>, TError, - { data: GatewayCreate }, + { gatewayId: string }, TContext >; request?: SecondParameter; }): UseMutationOptions< - Awaited>, + Awaited>, TError, - { data: GatewayCreate }, + { gatewayId: string }, TContext > => { - const mutationKey = ["createGatewayApiV1GatewaysPost"]; + const mutationKey = ["deleteGatewayApiV1GatewaysGatewayIdDelete"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && @@ -1741,48 +1859,50 @@ export const getCreateGatewayApiV1GatewaysPostMutationOptions = < : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< - Awaited>, - { data: GatewayCreate } + Awaited>, + { gatewayId: string } > = (props) => { - const { data } = props ?? {}; + const { gatewayId } = props ?? {}; - return createGatewayApiV1GatewaysPost(data, requestOptions); + return deleteGatewayApiV1GatewaysGatewayIdDelete(gatewayId, requestOptions); }; return { mutationFn, ...mutationOptions }; }; -export type CreateGatewayApiV1GatewaysPostMutationResult = NonNullable< - Awaited> ->; -export type CreateGatewayApiV1GatewaysPostMutationBody = GatewayCreate; -export type CreateGatewayApiV1GatewaysPostMutationError = HTTPValidationError; +export type DeleteGatewayApiV1GatewaysGatewayIdDeleteMutationResult = + NonNullable< + Awaited> + >; + +export type DeleteGatewayApiV1GatewaysGatewayIdDeleteMutationError = + HTTPValidationError; /** - * @summary Create Gateway + * @summary Delete Gateway */ -export const useCreateGatewayApiV1GatewaysPost = < +export const useDeleteGatewayApiV1GatewaysGatewayIdDelete = < TError = HTTPValidationError, TContext = unknown, >( options?: { mutation?: UseMutationOptions< - Awaited>, + Awaited>, TError, - { data: GatewayCreate }, + { gatewayId: string }, TContext >; request?: SecondParameter; }, queryClient?: QueryClient, ): UseMutationResult< - Awaited>, + Awaited>, TError, - { data: GatewayCreate }, + { gatewayId: string }, TContext > => { return useMutation( - getCreateGatewayApiV1GatewaysPostMutationOptions(options), + getDeleteGatewayApiV1GatewaysGatewayIdDeleteMutationOptions(options), queryClient, ); }; @@ -2122,126 +2242,6 @@ export const useUpdateGatewayApiV1GatewaysGatewayIdPatch = < queryClient, ); }; -/** - * Delete a gateway in the caller's organization. - * @summary Delete Gateway - */ -export type deleteGatewayApiV1GatewaysGatewayIdDeleteResponse200 = { - data: OkResponse; - status: 200; -}; - -export type deleteGatewayApiV1GatewaysGatewayIdDeleteResponse422 = { - data: HTTPValidationError; - status: 422; -}; - -export type deleteGatewayApiV1GatewaysGatewayIdDeleteResponseSuccess = - deleteGatewayApiV1GatewaysGatewayIdDeleteResponse200 & { - headers: Headers; - }; -export type deleteGatewayApiV1GatewaysGatewayIdDeleteResponseError = - deleteGatewayApiV1GatewaysGatewayIdDeleteResponse422 & { - headers: Headers; - }; - -export type deleteGatewayApiV1GatewaysGatewayIdDeleteResponse = - | deleteGatewayApiV1GatewaysGatewayIdDeleteResponseSuccess - | deleteGatewayApiV1GatewaysGatewayIdDeleteResponseError; - -export const getDeleteGatewayApiV1GatewaysGatewayIdDeleteUrl = ( - gatewayId: string, -) => { - return `/api/v1/gateways/${gatewayId}`; -}; - -export const deleteGatewayApiV1GatewaysGatewayIdDelete = async ( - gatewayId: string, - options?: RequestInit, -): Promise => { - return customFetch( - getDeleteGatewayApiV1GatewaysGatewayIdDeleteUrl(gatewayId), - { - ...options, - method: "DELETE", - }, - ); -}; - -export const getDeleteGatewayApiV1GatewaysGatewayIdDeleteMutationOptions = < - TError = HTTPValidationError, - TContext = unknown, ->(options?: { - mutation?: UseMutationOptions< - Awaited>, - TError, - { gatewayId: string }, - TContext - >; - request?: SecondParameter; -}): UseMutationOptions< - Awaited>, - TError, - { gatewayId: string }, - TContext -> => { - const mutationKey = ["deleteGatewayApiV1GatewaysGatewayIdDelete"]; - const { mutation: mutationOptions, request: requestOptions } = options - ? options.mutation && - "mutationKey" in options.mutation && - options.mutation.mutationKey - ? options - : { ...options, mutation: { ...options.mutation, mutationKey } } - : { mutation: { mutationKey }, request: undefined }; - - const mutationFn: MutationFunction< - Awaited>, - { gatewayId: string } - > = (props) => { - const { gatewayId } = props ?? {}; - - return deleteGatewayApiV1GatewaysGatewayIdDelete(gatewayId, requestOptions); - }; - - return { mutationFn, ...mutationOptions }; -}; - -export type DeleteGatewayApiV1GatewaysGatewayIdDeleteMutationResult = - NonNullable< - Awaited> - >; - -export type DeleteGatewayApiV1GatewaysGatewayIdDeleteMutationError = - HTTPValidationError; - -/** - * @summary Delete Gateway - */ -export const useDeleteGatewayApiV1GatewaysGatewayIdDelete = < - TError = HTTPValidationError, - TContext = unknown, ->( - options?: { - mutation?: UseMutationOptions< - Awaited>, - TError, - { gatewayId: string }, - TContext - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseMutationResult< - Awaited>, - TError, - { gatewayId: string }, - TContext -> => { - return useMutation( - getDeleteGatewayApiV1GatewaysGatewayIdDeleteMutationOptions(options), - queryClient, - ); -}; /** * Sync templates for a gateway and optionally rotate runtime settings. * @summary Sync Gateway Templates diff --git a/frontend/src/api/generated/metrics/metrics.ts b/frontend/src/api/generated/metrics/metrics.ts index 480d6185..63904c6a 100644 --- a/frontend/src/api/generated/metrics/metrics.ts +++ b/frontend/src/api/generated/metrics/metrics.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/activityEventRead.ts b/frontend/src/api/generated/model/activityEventRead.ts index 4e832211..19130403 100644 --- a/frontend/src/api/generated/model/activityEventRead.ts +++ b/frontend/src/api/generated/model/activityEventRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -9,10 +9,10 @@ * Serialized activity event payload returned by activity endpoints. */ export interface ActivityEventRead { - id: string; - event_type: string; - message: string | null; agent_id: string | null; - task_id: string | null; created_at: string; + event_type: string; + id: string; + message: string | null; + task_id: string | null; } diff --git a/frontend/src/api/generated/model/activityTaskCommentFeedItemRead.ts b/frontend/src/api/generated/model/activityTaskCommentFeedItemRead.ts index e12582fd..df534a51 100644 --- a/frontend/src/api/generated/model/activityTaskCommentFeedItemRead.ts +++ b/frontend/src/api/generated/model/activityTaskCommentFeedItemRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -9,14 +9,14 @@ * Denormalized task-comment feed item enriched with task and board fields. */ export interface ActivityTaskCommentFeedItemRead { - id: string; - created_at: string; - message: string | null; agent_id: string | null; agent_name?: string | null; agent_role?: string | null; - task_id: string; - task_title: string; board_id: string; board_name: string; + created_at: string; + id: string; + message: string | null; + task_id: string; + task_title: string; } diff --git a/frontend/src/api/generated/model/agentCreate.ts b/frontend/src/api/generated/model/agentCreate.ts index 17a9e768..e40ddd3c 100644 --- a/frontend/src/api/generated/model/agentCreate.ts +++ b/frontend/src/api/generated/model/agentCreate.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -12,11 +12,11 @@ import type { AgentCreateIdentityProfile } from "./agentCreateIdentityProfile"; */ export interface AgentCreate { board_id?: string | null; - /** @minLength 1 */ - name: string; - status?: string; heartbeat_config?: AgentCreateHeartbeatConfig; identity_profile?: AgentCreateIdentityProfile; identity_template?: string | null; + /** @minLength 1 */ + name: string; soul_template?: string | null; + status?: string; } diff --git a/frontend/src/api/generated/model/agentCreateHeartbeatConfig.ts b/frontend/src/api/generated/model/agentCreateHeartbeatConfig.ts index a243bb8b..39b48b6c 100644 --- a/frontend/src/api/generated/model/agentCreateHeartbeatConfig.ts +++ b/frontend/src/api/generated/model/agentCreateHeartbeatConfig.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/agentCreateIdentityProfile.ts b/frontend/src/api/generated/model/agentCreateIdentityProfile.ts index 10c8ab64..1971578c 100644 --- a/frontend/src/api/generated/model/agentCreateIdentityProfile.ts +++ b/frontend/src/api/generated/model/agentCreateIdentityProfile.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/agentHeartbeat.ts b/frontend/src/api/generated/model/agentHeartbeat.ts index 80ef3761..65b38549 100644 --- a/frontend/src/api/generated/model/agentHeartbeat.ts +++ b/frontend/src/api/generated/model/agentHeartbeat.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/agentHeartbeatCreate.ts b/frontend/src/api/generated/model/agentHeartbeatCreate.ts index d6e6b75b..c4b09c8b 100644 --- a/frontend/src/api/generated/model/agentHeartbeatCreate.ts +++ b/frontend/src/api/generated/model/agentHeartbeatCreate.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -9,8 +9,8 @@ * Heartbeat payload used to create an agent lazily. */ export interface AgentHeartbeatCreate { - status?: string | null; + board_id?: string | null; /** @minLength 1 */ name: string; - board_id?: string | null; + status?: string | null; } diff --git a/frontend/src/api/generated/model/agentNudge.ts b/frontend/src/api/generated/model/agentNudge.ts index 87603e4b..801ecb99 100644 --- a/frontend/src/api/generated/model/agentNudge.ts +++ b/frontend/src/api/generated/model/agentNudge.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/agentRead.ts b/frontend/src/api/generated/model/agentRead.ts index e7da99ff..90c34e14 100644 --- a/frontend/src/api/generated/model/agentRead.ts +++ b/frontend/src/api/generated/model/agentRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -12,19 +12,19 @@ import type { AgentReadIdentityProfile } from "./agentReadIdentityProfile"; */ export interface AgentRead { board_id?: string | null; - /** @minLength 1 */ - name: string; - status?: string; + created_at: string; + gateway_id: string; heartbeat_config?: AgentReadHeartbeatConfig; + id: string; identity_profile?: AgentReadIdentityProfile; identity_template?: string | null; - soul_template?: string | null; - id: string; - gateway_id: string; is_board_lead?: boolean; is_gateway_main?: boolean; - openclaw_session_id?: string | null; last_seen_at: string | null; - created_at: string; + /** @minLength 1 */ + name: string; + openclaw_session_id?: string | null; + soul_template?: string | null; + status?: string; updated_at: string; } diff --git a/frontend/src/api/generated/model/agentReadHeartbeatConfig.ts b/frontend/src/api/generated/model/agentReadHeartbeatConfig.ts index 859672f9..289b3f4f 100644 --- a/frontend/src/api/generated/model/agentReadHeartbeatConfig.ts +++ b/frontend/src/api/generated/model/agentReadHeartbeatConfig.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/agentReadIdentityProfile.ts b/frontend/src/api/generated/model/agentReadIdentityProfile.ts index defa63b0..013894cc 100644 --- a/frontend/src/api/generated/model/agentReadIdentityProfile.ts +++ b/frontend/src/api/generated/model/agentReadIdentityProfile.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/agentUpdate.ts b/frontend/src/api/generated/model/agentUpdate.ts index c9a6a1f1..2915b9d7 100644 --- a/frontend/src/api/generated/model/agentUpdate.ts +++ b/frontend/src/api/generated/model/agentUpdate.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -12,11 +12,11 @@ import type { AgentUpdateIdentityProfile } from "./agentUpdateIdentityProfile"; */ export interface AgentUpdate { board_id?: string | null; - is_gateway_main?: boolean | null; - name?: string | null; - status?: string | null; heartbeat_config?: AgentUpdateHeartbeatConfig; identity_profile?: AgentUpdateIdentityProfile; identity_template?: string | null; + is_gateway_main?: boolean | null; + name?: string | null; soul_template?: string | null; + status?: string | null; } diff --git a/frontend/src/api/generated/model/agentUpdateHeartbeatConfig.ts b/frontend/src/api/generated/model/agentUpdateHeartbeatConfig.ts index 7e3beab8..ce7c5810 100644 --- a/frontend/src/api/generated/model/agentUpdateHeartbeatConfig.ts +++ b/frontend/src/api/generated/model/agentUpdateHeartbeatConfig.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/agentUpdateIdentityProfile.ts b/frontend/src/api/generated/model/agentUpdateIdentityProfile.ts index effb7ed9..e7b1934f 100644 --- a/frontend/src/api/generated/model/agentUpdateIdentityProfile.ts +++ b/frontend/src/api/generated/model/agentUpdateIdentityProfile.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/approvalCreate.ts b/frontend/src/api/generated/model/approvalCreate.ts index 6f8c9afc..de25351d 100644 --- a/frontend/src/api/generated/model/approvalCreate.ts +++ b/frontend/src/api/generated/model/approvalCreate.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -13,10 +13,11 @@ import type { ApprovalCreateStatus } from "./approvalCreateStatus"; */ export interface ApprovalCreate { action_type: string; - task_id?: string | null; - payload?: ApprovalCreatePayload; + agent_id?: string | null; confidence: number; + payload?: ApprovalCreatePayload; rubric_scores?: ApprovalCreateRubricScores; status?: ApprovalCreateStatus; - agent_id?: string | null; + task_id?: string | null; + task_ids?: string[]; } diff --git a/frontend/src/api/generated/model/approvalCreatePayload.ts b/frontend/src/api/generated/model/approvalCreatePayload.ts index e6cbaaf0..76ec5205 100644 --- a/frontend/src/api/generated/model/approvalCreatePayload.ts +++ b/frontend/src/api/generated/model/approvalCreatePayload.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/approvalCreateRubricScores.ts b/frontend/src/api/generated/model/approvalCreateRubricScores.ts index bb36bada..39ba1cba 100644 --- a/frontend/src/api/generated/model/approvalCreateRubricScores.ts +++ b/frontend/src/api/generated/model/approvalCreateRubricScores.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/approvalCreateStatus.ts b/frontend/src/api/generated/model/approvalCreateStatus.ts index b3d053d2..79396167 100644 --- a/frontend/src/api/generated/model/approvalCreateStatus.ts +++ b/frontend/src/api/generated/model/approvalCreateStatus.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/approvalRead.ts b/frontend/src/api/generated/model/approvalRead.ts index 8740d689..3ad0546e 100644 --- a/frontend/src/api/generated/model/approvalRead.ts +++ b/frontend/src/api/generated/model/approvalRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -13,14 +13,15 @@ import type { ApprovalReadStatus } from "./approvalReadStatus"; */ export interface ApprovalRead { action_type: string; - task_id?: string | null; - payload?: ApprovalReadPayload; + agent_id?: string | null; + board_id: string; confidence: number; + created_at: string; + id: string; + payload?: ApprovalReadPayload; + resolved_at?: string | null; rubric_scores?: ApprovalReadRubricScores; status?: ApprovalReadStatus; - id: string; - board_id: string; - agent_id?: string | null; - created_at: string; - resolved_at?: string | null; + task_id?: string | null; + task_ids?: string[]; } diff --git a/frontend/src/api/generated/model/approvalReadPayload.ts b/frontend/src/api/generated/model/approvalReadPayload.ts index 685a9537..c5e7fa1d 100644 --- a/frontend/src/api/generated/model/approvalReadPayload.ts +++ b/frontend/src/api/generated/model/approvalReadPayload.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/approvalReadRubricScores.ts b/frontend/src/api/generated/model/approvalReadRubricScores.ts index 02a67489..e3aeff1d 100644 --- a/frontend/src/api/generated/model/approvalReadRubricScores.ts +++ b/frontend/src/api/generated/model/approvalReadRubricScores.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/approvalReadStatus.ts b/frontend/src/api/generated/model/approvalReadStatus.ts index 7210e355..e945fbb8 100644 --- a/frontend/src/api/generated/model/approvalReadStatus.ts +++ b/frontend/src/api/generated/model/approvalReadStatus.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/approvalUpdate.ts b/frontend/src/api/generated/model/approvalUpdate.ts index 14b68185..7503cd75 100644 --- a/frontend/src/api/generated/model/approvalUpdate.ts +++ b/frontend/src/api/generated/model/approvalUpdate.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/blockedTaskDetail.ts b/frontend/src/api/generated/model/blockedTaskDetail.ts index 1ceebfad..d9e71124 100644 --- a/frontend/src/api/generated/model/blockedTaskDetail.ts +++ b/frontend/src/api/generated/model/blockedTaskDetail.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -9,6 +9,6 @@ * Error detail payload listing blocking dependency task identifiers. */ export interface BlockedTaskDetail { - message: string; blocked_by_task_ids?: string[]; + message: string; } diff --git a/frontend/src/api/generated/model/blockedTaskError.ts b/frontend/src/api/generated/model/blockedTaskError.ts index c71edc00..3451e697 100644 --- a/frontend/src/api/generated/model/blockedTaskError.ts +++ b/frontend/src/api/generated/model/blockedTaskError.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/boardCreate.ts b/frontend/src/api/generated/model/boardCreate.ts index b4ac78ed..82f32481 100644 --- a/frontend/src/api/generated/model/boardCreate.ts +++ b/frontend/src/api/generated/model/boardCreate.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -10,15 +10,15 @@ import type { BoardCreateSuccessMetrics } from "./boardCreateSuccessMetrics"; * Payload for creating a board. */ export interface BoardCreate { - name: string; - slug: string; - description: string; - gateway_id?: string | null; board_group_id?: string | null; board_type?: string; - objective?: string | null; - success_metrics?: BoardCreateSuccessMetrics; - target_date?: string | null; + description: string; + gateway_id?: string | null; goal_confirmed?: boolean; goal_source?: string | null; + name: string; + objective?: string | null; + slug: string; + success_metrics?: BoardCreateSuccessMetrics; + target_date?: string | null; } diff --git a/frontend/src/api/generated/model/boardCreateSuccessMetrics.ts b/frontend/src/api/generated/model/boardCreateSuccessMetrics.ts index e52fb7ed..f078313a 100644 --- a/frontend/src/api/generated/model/boardCreateSuccessMetrics.ts +++ b/frontend/src/api/generated/model/boardCreateSuccessMetrics.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/boardGroupBoardSnapshot.ts b/frontend/src/api/generated/model/boardGroupBoardSnapshot.ts index 2308bbee..d51e5152 100644 --- a/frontend/src/api/generated/model/boardGroupBoardSnapshot.ts +++ b/frontend/src/api/generated/model/boardGroupBoardSnapshot.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/boardGroupBoardSnapshotTaskCounts.ts b/frontend/src/api/generated/model/boardGroupBoardSnapshotTaskCounts.ts index fe7b5767..4335b85d 100644 --- a/frontend/src/api/generated/model/boardGroupBoardSnapshotTaskCounts.ts +++ b/frontend/src/api/generated/model/boardGroupBoardSnapshotTaskCounts.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/boardGroupCreate.ts b/frontend/src/api/generated/model/boardGroupCreate.ts index 8c3dcc67..bd7da983 100644 --- a/frontend/src/api/generated/model/boardGroupCreate.ts +++ b/frontend/src/api/generated/model/boardGroupCreate.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -9,7 +9,7 @@ * Payload for creating a board group. */ export interface BoardGroupCreate { + description?: string | null; name: string; slug: string; - description?: string | null; } diff --git a/frontend/src/api/generated/model/boardGroupHeartbeatApply.ts b/frontend/src/api/generated/model/boardGroupHeartbeatApply.ts index 28b9444e..b7bd18ca 100644 --- a/frontend/src/api/generated/model/boardGroupHeartbeatApply.ts +++ b/frontend/src/api/generated/model/boardGroupHeartbeatApply.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -10,6 +10,6 @@ */ export interface BoardGroupHeartbeatApply { every: string; - target?: string | null; include_board_leads?: boolean; + target?: string | null; } diff --git a/frontend/src/api/generated/model/boardGroupHeartbeatApplyResult.ts b/frontend/src/api/generated/model/boardGroupHeartbeatApplyResult.ts index 2ff8158b..d5bb950a 100644 --- a/frontend/src/api/generated/model/boardGroupHeartbeatApplyResult.ts +++ b/frontend/src/api/generated/model/boardGroupHeartbeatApplyResult.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -11,7 +11,7 @@ import type { BoardGroupHeartbeatApplyResultRequested } from "./boardGroupHeartb */ export interface BoardGroupHeartbeatApplyResult { board_group_id: string; + failed_agent_ids: string[]; requested: BoardGroupHeartbeatApplyResultRequested; updated_agent_ids: string[]; - failed_agent_ids: string[]; } diff --git a/frontend/src/api/generated/model/boardGroupHeartbeatApplyResultRequested.ts b/frontend/src/api/generated/model/boardGroupHeartbeatApplyResultRequested.ts index 20defbd4..05ec5c5c 100644 --- a/frontend/src/api/generated/model/boardGroupHeartbeatApplyResultRequested.ts +++ b/frontend/src/api/generated/model/boardGroupHeartbeatApplyResultRequested.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/boardGroupMemoryCreate.ts b/frontend/src/api/generated/model/boardGroupMemoryCreate.ts index de1af46c..92bac015 100644 --- a/frontend/src/api/generated/model/boardGroupMemoryCreate.ts +++ b/frontend/src/api/generated/model/boardGroupMemoryCreate.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -11,6 +11,6 @@ export interface BoardGroupMemoryCreate { /** @minLength 1 */ content: string; - tags?: string[] | null; source?: string | null; + tags?: string[] | null; } diff --git a/frontend/src/api/generated/model/boardGroupMemoryRead.ts b/frontend/src/api/generated/model/boardGroupMemoryRead.ts index 7e4e8b32..364d468d 100644 --- a/frontend/src/api/generated/model/boardGroupMemoryRead.ts +++ b/frontend/src/api/generated/model/boardGroupMemoryRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -9,11 +9,11 @@ * Serialized board-group memory entry returned from read endpoints. */ export interface BoardGroupMemoryRead { - id: string; board_group_id: string; content: string; - tags?: string[] | null; - source?: string | null; - is_chat?: boolean; created_at: string; + id: string; + is_chat?: boolean; + source?: string | null; + tags?: string[] | null; } diff --git a/frontend/src/api/generated/model/boardGroupRead.ts b/frontend/src/api/generated/model/boardGroupRead.ts index 3e507583..174c3cc7 100644 --- a/frontend/src/api/generated/model/boardGroupRead.ts +++ b/frontend/src/api/generated/model/boardGroupRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -9,11 +9,11 @@ * Board-group payload returned from read endpoints. */ export interface BoardGroupRead { - name: string; - slug: string; + created_at: string; description?: string | null; id: string; + name: string; organization_id: string; - created_at: string; + slug: string; updated_at: string; } diff --git a/frontend/src/api/generated/model/boardGroupSnapshot.ts b/frontend/src/api/generated/model/boardGroupSnapshot.ts index 4c057278..7f6143d4 100644 --- a/frontend/src/api/generated/model/boardGroupSnapshot.ts +++ b/frontend/src/api/generated/model/boardGroupSnapshot.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -11,6 +11,6 @@ import type { BoardGroupRead } from "./boardGroupRead"; * Top-level board-group snapshot response payload. */ export interface BoardGroupSnapshot { - group?: BoardGroupRead | null; boards?: BoardGroupBoardSnapshot[]; + group?: BoardGroupRead | null; } diff --git a/frontend/src/api/generated/model/boardGroupTaskSummary.ts b/frontend/src/api/generated/model/boardGroupTaskSummary.ts index a6255336..24b0b1b8 100644 --- a/frontend/src/api/generated/model/boardGroupTaskSummary.ts +++ b/frontend/src/api/generated/model/boardGroupTaskSummary.ts @@ -1,24 +1,26 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 */ +import type { TaskTagRef } from "./taskTagRef"; /** * Task summary row used inside board-group snapshot responses. */ export interface BoardGroupTaskSummary { - id: string; - board_id: string; - board_name: string; - title: string; - status: string; - priority: string; assigned_agent_id?: string | null; assignee?: string | null; - due_at?: string | null; - in_progress_at?: string | null; + board_id: string; + board_name: string; created_at: string; + due_at?: string | null; + id: string; + in_progress_at?: string | null; + priority: string; + status: string; + tags?: TaskTagRef[]; + title: string; updated_at: string; } diff --git a/frontend/src/api/generated/model/boardGroupUpdate.ts b/frontend/src/api/generated/model/boardGroupUpdate.ts index d2de8627..b8318905 100644 --- a/frontend/src/api/generated/model/boardGroupUpdate.ts +++ b/frontend/src/api/generated/model/boardGroupUpdate.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -9,7 +9,7 @@ * Payload for partial board-group updates. */ export interface BoardGroupUpdate { + description?: string | null; name?: string | null; slug?: string | null; - description?: string | null; } diff --git a/frontend/src/api/generated/model/boardMemoryCreate.ts b/frontend/src/api/generated/model/boardMemoryCreate.ts index a617a479..f2b1afbc 100644 --- a/frontend/src/api/generated/model/boardMemoryCreate.ts +++ b/frontend/src/api/generated/model/boardMemoryCreate.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -11,6 +11,6 @@ export interface BoardMemoryCreate { /** @minLength 1 */ content: string; - tags?: string[] | null; source?: string | null; + tags?: string[] | null; } diff --git a/frontend/src/api/generated/model/boardMemoryRead.ts b/frontend/src/api/generated/model/boardMemoryRead.ts index e10bec26..805c493b 100644 --- a/frontend/src/api/generated/model/boardMemoryRead.ts +++ b/frontend/src/api/generated/model/boardMemoryRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -9,11 +9,11 @@ * Serialized board memory entry returned from read endpoints. */ export interface BoardMemoryRead { - id: string; board_id: string; content: string; - tags?: string[] | null; - source?: string | null; - is_chat?: boolean; created_at: string; + id: string; + is_chat?: boolean; + source?: string | null; + tags?: string[] | null; } diff --git a/frontend/src/api/generated/model/boardOnboardingAgentComplete.ts b/frontend/src/api/generated/model/boardOnboardingAgentComplete.ts index ff354b4a..a2be93e4 100644 --- a/frontend/src/api/generated/model/boardOnboardingAgentComplete.ts +++ b/frontend/src/api/generated/model/boardOnboardingAgentComplete.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -13,10 +13,10 @@ import type { BoardOnboardingUserProfile } from "./boardOnboardingUserProfile"; */ export interface BoardOnboardingAgentComplete { board_type: string; + lead_agent?: BoardOnboardingLeadAgentDraft | null; objective?: string | null; + status: "complete"; success_metrics?: BoardOnboardingAgentCompleteSuccessMetrics; target_date?: string | null; - status: "complete"; user_profile?: BoardOnboardingUserProfile | null; - lead_agent?: BoardOnboardingLeadAgentDraft | null; } diff --git a/frontend/src/api/generated/model/boardOnboardingAgentCompleteSuccessMetrics.ts b/frontend/src/api/generated/model/boardOnboardingAgentCompleteSuccessMetrics.ts index d6d3445d..c98eb042 100644 --- a/frontend/src/api/generated/model/boardOnboardingAgentCompleteSuccessMetrics.ts +++ b/frontend/src/api/generated/model/boardOnboardingAgentCompleteSuccessMetrics.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/boardOnboardingAgentQuestion.ts b/frontend/src/api/generated/model/boardOnboardingAgentQuestion.ts index ea92cef2..2ca429e9 100644 --- a/frontend/src/api/generated/model/boardOnboardingAgentQuestion.ts +++ b/frontend/src/api/generated/model/boardOnboardingAgentQuestion.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -10,8 +10,8 @@ import type { BoardOnboardingQuestionOption } from "./boardOnboardingQuestionOpt * Question payload emitted by the onboarding assistant. */ export interface BoardOnboardingAgentQuestion { - /** @minLength 1 */ - question: string; /** @minItems 1 */ options: BoardOnboardingQuestionOption[]; + /** @minLength 1 */ + question: string; } diff --git a/frontend/src/api/generated/model/boardOnboardingAnswer.ts b/frontend/src/api/generated/model/boardOnboardingAnswer.ts index 8c787b58..8b27ffe7 100644 --- a/frontend/src/api/generated/model/boardOnboardingAnswer.ts +++ b/frontend/src/api/generated/model/boardOnboardingAnswer.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/boardOnboardingConfirm.ts b/frontend/src/api/generated/model/boardOnboardingConfirm.ts index 63e2c914..acfc895e 100644 --- a/frontend/src/api/generated/model/boardOnboardingConfirm.ts +++ b/frontend/src/api/generated/model/boardOnboardingConfirm.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/boardOnboardingConfirmSuccessMetrics.ts b/frontend/src/api/generated/model/boardOnboardingConfirmSuccessMetrics.ts index e5fd7e79..3ba27e87 100644 --- a/frontend/src/api/generated/model/boardOnboardingConfirmSuccessMetrics.ts +++ b/frontend/src/api/generated/model/boardOnboardingConfirmSuccessMetrics.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/boardOnboardingLeadAgentDraft.ts b/frontend/src/api/generated/model/boardOnboardingLeadAgentDraft.ts index 12d6fb3d..a1bf356d 100644 --- a/frontend/src/api/generated/model/boardOnboardingLeadAgentDraft.ts +++ b/frontend/src/api/generated/model/boardOnboardingLeadAgentDraft.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -10,11 +10,11 @@ import type { BoardOnboardingLeadAgentDraftIdentityProfile } from "./boardOnboar * Editable lead-agent draft configuration. */ export interface BoardOnboardingLeadAgentDraft { - name?: string | null; - identity_profile?: BoardOnboardingLeadAgentDraftIdentityProfile; autonomy_level?: "ask_first" | "balanced" | "autonomous" | null; - verbosity?: "concise" | "balanced" | "detailed" | null; + custom_instructions?: string | null; + identity_profile?: BoardOnboardingLeadAgentDraftIdentityProfile; + name?: string | null; output_format?: "bullets" | "mixed" | "narrative" | null; update_cadence?: "asap" | "hourly" | "daily" | "weekly" | null; - custom_instructions?: string | null; + verbosity?: "concise" | "balanced" | "detailed" | null; } diff --git a/frontend/src/api/generated/model/boardOnboardingLeadAgentDraftIdentityProfile.ts b/frontend/src/api/generated/model/boardOnboardingLeadAgentDraftIdentityProfile.ts index 1547580d..5c229180 100644 --- a/frontend/src/api/generated/model/boardOnboardingLeadAgentDraftIdentityProfile.ts +++ b/frontend/src/api/generated/model/boardOnboardingLeadAgentDraftIdentityProfile.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/boardOnboardingQuestionOption.ts b/frontend/src/api/generated/model/boardOnboardingQuestionOption.ts index 80a1168b..98837bea 100644 --- a/frontend/src/api/generated/model/boardOnboardingQuestionOption.ts +++ b/frontend/src/api/generated/model/boardOnboardingQuestionOption.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/boardOnboardingRead.ts b/frontend/src/api/generated/model/boardOnboardingRead.ts index 509b7382..e93ae067 100644 --- a/frontend/src/api/generated/model/boardOnboardingRead.ts +++ b/frontend/src/api/generated/model/boardOnboardingRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -11,12 +11,12 @@ import type { BoardOnboardingReadMessages } from "./boardOnboardingReadMessages" * Stored onboarding session state returned by API endpoints. */ export interface BoardOnboardingRead { - id: string; board_id: string; + created_at: string; + draft_goal?: BoardOnboardingAgentComplete | null; + id: string; + messages?: BoardOnboardingReadMessages; session_key: string; status: string; - messages?: BoardOnboardingReadMessages; - draft_goal?: BoardOnboardingAgentComplete | null; - created_at: string; updated_at: string; } diff --git a/frontend/src/api/generated/model/boardOnboardingReadMessages.ts b/frontend/src/api/generated/model/boardOnboardingReadMessages.ts index 26a1264c..4826a269 100644 --- a/frontend/src/api/generated/model/boardOnboardingReadMessages.ts +++ b/frontend/src/api/generated/model/boardOnboardingReadMessages.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/boardOnboardingStart.ts b/frontend/src/api/generated/model/boardOnboardingStart.ts index 95253520..2d2c79d2 100644 --- a/frontend/src/api/generated/model/boardOnboardingStart.ts +++ b/frontend/src/api/generated/model/boardOnboardingStart.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/boardOnboardingUserProfile.ts b/frontend/src/api/generated/model/boardOnboardingUserProfile.ts index f40ced34..8c933ac7 100644 --- a/frontend/src/api/generated/model/boardOnboardingUserProfile.ts +++ b/frontend/src/api/generated/model/boardOnboardingUserProfile.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -9,9 +9,9 @@ * User-profile preferences gathered during onboarding. */ export interface BoardOnboardingUserProfile { + context?: string | null; + notes?: string | null; preferred_name?: string | null; pronouns?: string | null; timezone?: string | null; - notes?: string | null; - context?: string | null; } diff --git a/frontend/src/api/generated/model/boardRead.ts b/frontend/src/api/generated/model/boardRead.ts index 80514f09..e86b8f28 100644 --- a/frontend/src/api/generated/model/boardRead.ts +++ b/frontend/src/api/generated/model/boardRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -10,19 +10,19 @@ import type { BoardReadSuccessMetrics } from "./boardReadSuccessMetrics"; * Board payload returned from read endpoints. */ export interface BoardRead { - name: string; - slug: string; - description: string; - gateway_id?: string | null; board_group_id?: string | null; board_type?: string; - objective?: string | null; - success_metrics?: BoardReadSuccessMetrics; - target_date?: string | null; + created_at: string; + description: string; + gateway_id?: string | null; goal_confirmed?: boolean; goal_source?: string | null; id: string; + name: string; + objective?: string | null; organization_id: string; - created_at: string; + slug: string; + success_metrics?: BoardReadSuccessMetrics; + target_date?: string | null; updated_at: string; } diff --git a/frontend/src/api/generated/model/boardReadSuccessMetrics.ts b/frontend/src/api/generated/model/boardReadSuccessMetrics.ts index 6623dce6..85d9b3fa 100644 --- a/frontend/src/api/generated/model/boardReadSuccessMetrics.ts +++ b/frontend/src/api/generated/model/boardReadSuccessMetrics.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/boardSnapshot.ts b/frontend/src/api/generated/model/boardSnapshot.ts index 27f27a13..a7528218 100644 --- a/frontend/src/api/generated/model/boardSnapshot.ts +++ b/frontend/src/api/generated/model/boardSnapshot.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -14,10 +14,10 @@ import type { TaskCardRead } from "./taskCardRead"; * Aggregated board payload used by board snapshot endpoints. */ export interface BoardSnapshot { - board: BoardRead; - tasks: TaskCardRead[]; agents: AgentRead[]; approvals: ApprovalRead[]; + board: BoardRead; chat_messages: BoardMemoryRead[]; pending_approvals_count?: number; + tasks: TaskCardRead[]; } diff --git a/frontend/src/api/generated/model/boardUpdate.ts b/frontend/src/api/generated/model/boardUpdate.ts index 4ecfffd8..963becf3 100644 --- a/frontend/src/api/generated/model/boardUpdate.ts +++ b/frontend/src/api/generated/model/boardUpdate.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -10,15 +10,15 @@ import type { BoardUpdateSuccessMetrics } from "./boardUpdateSuccessMetrics"; * Payload for partial board updates. */ export interface BoardUpdate { - name?: string | null; - slug?: string | null; - description?: string | null; - gateway_id?: string | null; board_group_id?: string | null; board_type?: string | null; - objective?: string | null; - success_metrics?: BoardUpdateSuccessMetrics; - target_date?: string | null; + description?: string | null; + gateway_id?: string | null; goal_confirmed?: boolean | null; goal_source?: string | null; + name?: string | null; + objective?: string | null; + slug?: string | null; + success_metrics?: BoardUpdateSuccessMetrics; + target_date?: string | null; } diff --git a/frontend/src/api/generated/model/boardUpdateSuccessMetrics.ts b/frontend/src/api/generated/model/boardUpdateSuccessMetrics.ts index 87b8d04e..f105a04b 100644 --- a/frontend/src/api/generated/model/boardUpdateSuccessMetrics.ts +++ b/frontend/src/api/generated/model/boardUpdateSuccessMetrics.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/dashboardKpis.ts b/frontend/src/api/generated/model/dashboardKpis.ts index e291d462..e021dcda 100644 --- a/frontend/src/api/generated/model/dashboardKpis.ts +++ b/frontend/src/api/generated/model/dashboardKpis.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -10,7 +10,7 @@ */ export interface DashboardKpis { active_agents: number; - tasks_in_progress: number; error_rate_pct: number; median_cycle_time_hours_7d: number | null; + tasks_in_progress: number; } diff --git a/frontend/src/api/generated/model/dashboardMetrics.ts b/frontend/src/api/generated/model/dashboardMetrics.ts index e0d0a305..8995820a 100644 --- a/frontend/src/api/generated/model/dashboardMetrics.ts +++ b/frontend/src/api/generated/model/dashboardMetrics.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -13,11 +13,11 @@ import type { DashboardWipSeriesSet } from "./dashboardWipSeriesSet"; * Complete dashboard metrics response payload. */ export interface DashboardMetrics { - range: DashboardMetricsRange; - generated_at: string; - kpis: DashboardKpis; - throughput: DashboardSeriesSet; cycle_time: DashboardSeriesSet; error_rate: DashboardSeriesSet; + generated_at: string; + kpis: DashboardKpis; + range: DashboardMetricsRange; + throughput: DashboardSeriesSet; wip: DashboardWipSeriesSet; } diff --git a/frontend/src/api/generated/model/dashboardMetricsApiV1MetricsDashboardGetParams.ts b/frontend/src/api/generated/model/dashboardMetricsApiV1MetricsDashboardGetParams.ts index 85bf4244..83ffd4e8 100644 --- a/frontend/src/api/generated/model/dashboardMetricsApiV1MetricsDashboardGetParams.ts +++ b/frontend/src/api/generated/model/dashboardMetricsApiV1MetricsDashboardGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/dashboardMetricsApiV1MetricsDashboardGetRangeKey.ts b/frontend/src/api/generated/model/dashboardMetricsApiV1MetricsDashboardGetRangeKey.ts index 624de6e9..f140d43c 100644 --- a/frontend/src/api/generated/model/dashboardMetricsApiV1MetricsDashboardGetRangeKey.ts +++ b/frontend/src/api/generated/model/dashboardMetricsApiV1MetricsDashboardGetRangeKey.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/dashboardMetricsRange.ts b/frontend/src/api/generated/model/dashboardMetricsRange.ts index b1882b2c..4598ae36 100644 --- a/frontend/src/api/generated/model/dashboardMetricsRange.ts +++ b/frontend/src/api/generated/model/dashboardMetricsRange.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/dashboardRangeSeries.ts b/frontend/src/api/generated/model/dashboardRangeSeries.ts index 5d2066ef..f996bcfa 100644 --- a/frontend/src/api/generated/model/dashboardRangeSeries.ts +++ b/frontend/src/api/generated/model/dashboardRangeSeries.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -12,7 +12,7 @@ import type { DashboardSeriesPoint } from "./dashboardSeriesPoint"; * Series payload for a single range/bucket combination. */ export interface DashboardRangeSeries { - range: DashboardRangeSeriesRange; bucket: DashboardRangeSeriesBucket; points: DashboardSeriesPoint[]; + range: DashboardRangeSeriesRange; } diff --git a/frontend/src/api/generated/model/dashboardRangeSeriesBucket.ts b/frontend/src/api/generated/model/dashboardRangeSeriesBucket.ts index 1f8db99a..ddde0ff9 100644 --- a/frontend/src/api/generated/model/dashboardRangeSeriesBucket.ts +++ b/frontend/src/api/generated/model/dashboardRangeSeriesBucket.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/dashboardRangeSeriesRange.ts b/frontend/src/api/generated/model/dashboardRangeSeriesRange.ts index 1d4eb083..99e5d3db 100644 --- a/frontend/src/api/generated/model/dashboardRangeSeriesRange.ts +++ b/frontend/src/api/generated/model/dashboardRangeSeriesRange.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/dashboardSeriesPoint.ts b/frontend/src/api/generated/model/dashboardSeriesPoint.ts index 7bbe61de..f5d68e41 100644 --- a/frontend/src/api/generated/model/dashboardSeriesPoint.ts +++ b/frontend/src/api/generated/model/dashboardSeriesPoint.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/dashboardSeriesSet.ts b/frontend/src/api/generated/model/dashboardSeriesSet.ts index 14b903ed..086f4159 100644 --- a/frontend/src/api/generated/model/dashboardSeriesSet.ts +++ b/frontend/src/api/generated/model/dashboardSeriesSet.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -10,6 +10,6 @@ import type { DashboardRangeSeries } from "./dashboardRangeSeries"; * Primary vs comparison pair for generic series metrics. */ export interface DashboardSeriesSet { - primary: DashboardRangeSeries; comparison: DashboardRangeSeries; + primary: DashboardRangeSeries; } diff --git a/frontend/src/api/generated/model/dashboardWipPoint.ts b/frontend/src/api/generated/model/dashboardWipPoint.ts index 8016ba51..e3a794c7 100644 --- a/frontend/src/api/generated/model/dashboardWipPoint.ts +++ b/frontend/src/api/generated/model/dashboardWipPoint.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -9,8 +9,8 @@ * Work-in-progress point split by task status buckets. */ export interface DashboardWipPoint { - period: string; - inbox: number; in_progress: number; + inbox: number; + period: string; review: number; } diff --git a/frontend/src/api/generated/model/dashboardWipRangeSeries.ts b/frontend/src/api/generated/model/dashboardWipRangeSeries.ts index 05ab83fe..e439b044 100644 --- a/frontend/src/api/generated/model/dashboardWipRangeSeries.ts +++ b/frontend/src/api/generated/model/dashboardWipRangeSeries.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -12,7 +12,7 @@ import type { DashboardWipRangeSeriesRange } from "./dashboardWipRangeSeriesRang * WIP series payload for a single range/bucket combination. */ export interface DashboardWipRangeSeries { - range: DashboardWipRangeSeriesRange; bucket: DashboardWipRangeSeriesBucket; points: DashboardWipPoint[]; + range: DashboardWipRangeSeriesRange; } diff --git a/frontend/src/api/generated/model/dashboardWipRangeSeriesBucket.ts b/frontend/src/api/generated/model/dashboardWipRangeSeriesBucket.ts index e45ca78f..b625ea22 100644 --- a/frontend/src/api/generated/model/dashboardWipRangeSeriesBucket.ts +++ b/frontend/src/api/generated/model/dashboardWipRangeSeriesBucket.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/dashboardWipRangeSeriesRange.ts b/frontend/src/api/generated/model/dashboardWipRangeSeriesRange.ts index a8746ed0..3f4715a6 100644 --- a/frontend/src/api/generated/model/dashboardWipRangeSeriesRange.ts +++ b/frontend/src/api/generated/model/dashboardWipRangeSeriesRange.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/dashboardWipSeriesSet.ts b/frontend/src/api/generated/model/dashboardWipSeriesSet.ts index b54316fb..f2f9e9c6 100644 --- a/frontend/src/api/generated/model/dashboardWipSeriesSet.ts +++ b/frontend/src/api/generated/model/dashboardWipSeriesSet.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -10,6 +10,6 @@ import type { DashboardWipRangeSeries } from "./dashboardWipRangeSeries"; * Primary vs comparison pair for WIP status series metrics. */ export interface DashboardWipSeriesSet { - primary: DashboardWipRangeSeries; comparison: DashboardWipRangeSeries; + primary: DashboardWipRangeSeries; } diff --git a/frontend/src/api/generated/model/gatewayCommandsResponse.ts b/frontend/src/api/generated/model/gatewayCommandsResponse.ts index e142ed97..d763c033 100644 --- a/frontend/src/api/generated/model/gatewayCommandsResponse.ts +++ b/frontend/src/api/generated/model/gatewayCommandsResponse.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -9,7 +9,7 @@ * Gateway command catalog and protocol metadata. */ export interface GatewayCommandsResponse { - protocol_version: number; - methods: string[]; events: string[]; + methods: string[]; + protocol_version: number; } diff --git a/frontend/src/api/generated/model/gatewayCreate.ts b/frontend/src/api/generated/model/gatewayCreate.ts index 9634c2ec..9d468e99 100644 --- a/frontend/src/api/generated/model/gatewayCreate.ts +++ b/frontend/src/api/generated/model/gatewayCreate.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -10,7 +10,7 @@ */ export interface GatewayCreate { name: string; + token?: string | null; url: string; workspace_root: string; - token?: string | null; } diff --git a/frontend/src/api/generated/model/gatewayLeadBroadcastBoardResult.ts b/frontend/src/api/generated/model/gatewayLeadBroadcastBoardResult.ts index f6f39d7c..6125a147 100644 --- a/frontend/src/api/generated/model/gatewayLeadBroadcastBoardResult.ts +++ b/frontend/src/api/generated/model/gatewayLeadBroadcastBoardResult.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -10,8 +10,8 @@ */ export interface GatewayLeadBroadcastBoardResult { board_id: string; + error?: string | null; lead_agent_id?: string | null; lead_agent_name?: string | null; ok?: boolean; - error?: string | null; } diff --git a/frontend/src/api/generated/model/gatewayLeadBroadcastRequest.ts b/frontend/src/api/generated/model/gatewayLeadBroadcastRequest.ts index f87a6419..672fa182 100644 --- a/frontend/src/api/generated/model/gatewayLeadBroadcastRequest.ts +++ b/frontend/src/api/generated/model/gatewayLeadBroadcastRequest.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -10,11 +10,11 @@ import type { GatewayLeadBroadcastRequestKind } from "./gatewayLeadBroadcastRequ * Request payload for broadcasting a message to multiple board leads. */ export interface GatewayLeadBroadcastRequest { - kind?: GatewayLeadBroadcastRequestKind; - correlation_id?: string | null; + board_ids?: string[] | null; /** @minLength 1 */ content: string; - board_ids?: string[] | null; - reply_tags?: string[]; + correlation_id?: string | null; + kind?: GatewayLeadBroadcastRequestKind; reply_source?: string | null; + reply_tags?: string[]; } diff --git a/frontend/src/api/generated/model/gatewayLeadBroadcastRequestKind.ts b/frontend/src/api/generated/model/gatewayLeadBroadcastRequestKind.ts index 60cca602..25714407 100644 --- a/frontend/src/api/generated/model/gatewayLeadBroadcastRequestKind.ts +++ b/frontend/src/api/generated/model/gatewayLeadBroadcastRequestKind.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/gatewayLeadBroadcastResponse.ts b/frontend/src/api/generated/model/gatewayLeadBroadcastResponse.ts index f7bdcb6f..ac326a0e 100644 --- a/frontend/src/api/generated/model/gatewayLeadBroadcastResponse.ts +++ b/frontend/src/api/generated/model/gatewayLeadBroadcastResponse.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -10,8 +10,8 @@ import type { GatewayLeadBroadcastBoardResult } from "./gatewayLeadBroadcastBoar * Aggregate response for a lead broadcast operation. */ export interface GatewayLeadBroadcastResponse { - ok?: boolean; - sent?: number; failed?: number; + ok?: boolean; results?: GatewayLeadBroadcastBoardResult[]; + sent?: number; } diff --git a/frontend/src/api/generated/model/gatewayLeadMessageRequest.ts b/frontend/src/api/generated/model/gatewayLeadMessageRequest.ts index 4d124e75..694b6857 100644 --- a/frontend/src/api/generated/model/gatewayLeadMessageRequest.ts +++ b/frontend/src/api/generated/model/gatewayLeadMessageRequest.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -10,10 +10,10 @@ import type { GatewayLeadMessageRequestKind } from "./gatewayLeadMessageRequestK * Request payload for sending a message to a board lead agent. */ export interface GatewayLeadMessageRequest { - kind?: GatewayLeadMessageRequestKind; - correlation_id?: string | null; /** @minLength 1 */ content: string; - reply_tags?: string[]; + correlation_id?: string | null; + kind?: GatewayLeadMessageRequestKind; reply_source?: string | null; + reply_tags?: string[]; } diff --git a/frontend/src/api/generated/model/gatewayLeadMessageRequestKind.ts b/frontend/src/api/generated/model/gatewayLeadMessageRequestKind.ts index 9c2a8633..14bad10f 100644 --- a/frontend/src/api/generated/model/gatewayLeadMessageRequestKind.ts +++ b/frontend/src/api/generated/model/gatewayLeadMessageRequestKind.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/gatewayLeadMessageResponse.ts b/frontend/src/api/generated/model/gatewayLeadMessageResponse.ts index acc519b1..00604cc5 100644 --- a/frontend/src/api/generated/model/gatewayLeadMessageResponse.ts +++ b/frontend/src/api/generated/model/gatewayLeadMessageResponse.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -9,9 +9,9 @@ * Response payload for a lead-message dispatch attempt. */ export interface GatewayLeadMessageResponse { - ok?: boolean; board_id: string; lead_agent_id?: string | null; lead_agent_name?: string | null; lead_created?: boolean; + ok?: boolean; } diff --git a/frontend/src/api/generated/model/gatewayMainAskUserRequest.ts b/frontend/src/api/generated/model/gatewayMainAskUserRequest.ts index bbb614e7..9f410503 100644 --- a/frontend/src/api/generated/model/gatewayMainAskUserRequest.ts +++ b/frontend/src/api/generated/model/gatewayMainAskUserRequest.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -9,10 +9,10 @@ * Request payload for asking the end user via a main gateway agent. */ export interface GatewayMainAskUserRequest { - correlation_id?: string | null; /** @minLength 1 */ content: string; + correlation_id?: string | null; preferred_channel?: string | null; - reply_tags?: string[]; reply_source?: string | null; + reply_tags?: string[]; } diff --git a/frontend/src/api/generated/model/gatewayMainAskUserResponse.ts b/frontend/src/api/generated/model/gatewayMainAskUserResponse.ts index 3399f063..544807bb 100644 --- a/frontend/src/api/generated/model/gatewayMainAskUserResponse.ts +++ b/frontend/src/api/generated/model/gatewayMainAskUserResponse.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -9,8 +9,8 @@ * Response payload for user-question dispatch via gateway main agent. */ export interface GatewayMainAskUserResponse { - ok?: boolean; board_id: string; main_agent_id?: string | null; main_agent_name?: string | null; + ok?: boolean; } diff --git a/frontend/src/api/generated/model/gatewayRead.ts b/frontend/src/api/generated/model/gatewayRead.ts index 2c967ea2..50404490 100644 --- a/frontend/src/api/generated/model/gatewayRead.ts +++ b/frontend/src/api/generated/model/gatewayRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -9,12 +9,12 @@ * Gateway payload returned from read endpoints. */ export interface GatewayRead { - name: string; - url: string; - workspace_root: string; + created_at: string; id: string; + name: string; organization_id: string; token?: string | null; - created_at: string; updated_at: string; + url: string; + workspace_root: string; } diff --git a/frontend/src/api/generated/model/gatewaySessionHistoryResponse.ts b/frontend/src/api/generated/model/gatewaySessionHistoryResponse.ts index 3af15ed7..d0614478 100644 --- a/frontend/src/api/generated/model/gatewaySessionHistoryResponse.ts +++ b/frontend/src/api/generated/model/gatewaySessionHistoryResponse.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/gatewaySessionMessageRequest.ts b/frontend/src/api/generated/model/gatewaySessionMessageRequest.ts index b51497b6..5a70ed5a 100644 --- a/frontend/src/api/generated/model/gatewaySessionMessageRequest.ts +++ b/frontend/src/api/generated/model/gatewaySessionMessageRequest.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/gatewaySessionResponse.ts b/frontend/src/api/generated/model/gatewaySessionResponse.ts index d06e6549..609cd758 100644 --- a/frontend/src/api/generated/model/gatewaySessionResponse.ts +++ b/frontend/src/api/generated/model/gatewaySessionResponse.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/gatewaySessionsResponse.ts b/frontend/src/api/generated/model/gatewaySessionsResponse.ts index 2a3f4d82..8cf60e10 100644 --- a/frontend/src/api/generated/model/gatewaySessionsResponse.ts +++ b/frontend/src/api/generated/model/gatewaySessionsResponse.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -9,6 +9,6 @@ * Gateway sessions list response payload. */ export interface GatewaySessionsResponse { - sessions: unknown[]; main_session?: unknown | null; + sessions: unknown[]; } diff --git a/frontend/src/api/generated/model/gatewayTemplatesSyncError.ts b/frontend/src/api/generated/model/gatewayTemplatesSyncError.ts index 4a0ea553..bdc62053 100644 --- a/frontend/src/api/generated/model/gatewayTemplatesSyncError.ts +++ b/frontend/src/api/generated/model/gatewayTemplatesSyncError.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/gatewayTemplatesSyncResult.ts b/frontend/src/api/generated/model/gatewayTemplatesSyncResult.ts index 332b92b2..f6e19d8c 100644 --- a/frontend/src/api/generated/model/gatewayTemplatesSyncResult.ts +++ b/frontend/src/api/generated/model/gatewayTemplatesSyncResult.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -10,11 +10,11 @@ import type { GatewayTemplatesSyncError } from "./gatewayTemplatesSyncError"; * Summary payload returned by gateway template sync endpoints. */ export interface GatewayTemplatesSyncResult { + agents_skipped: number; + agents_updated: number; + errors?: GatewayTemplatesSyncError[]; gateway_id: string; include_main: boolean; - reset_sessions: boolean; - agents_updated: number; - agents_skipped: number; main_updated: boolean; - errors?: GatewayTemplatesSyncError[]; + reset_sessions: boolean; } diff --git a/frontend/src/api/generated/model/gatewayUpdate.ts b/frontend/src/api/generated/model/gatewayUpdate.ts index 8b02d0f4..512955f8 100644 --- a/frontend/src/api/generated/model/gatewayUpdate.ts +++ b/frontend/src/api/generated/model/gatewayUpdate.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -10,7 +10,7 @@ */ export interface GatewayUpdate { name?: string | null; - url?: string | null; token?: string | null; + url?: string | null; workspace_root?: string | null; } diff --git a/frontend/src/api/generated/model/gatewaysStatusApiV1GatewaysStatusGetParams.ts b/frontend/src/api/generated/model/gatewaysStatusApiV1GatewaysStatusGetParams.ts index f01ad6a9..1c4bc7ce 100644 --- a/frontend/src/api/generated/model/gatewaysStatusApiV1GatewaysStatusGetParams.ts +++ b/frontend/src/api/generated/model/gatewaysStatusApiV1GatewaysStatusGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/gatewaysStatusResponse.ts b/frontend/src/api/generated/model/gatewaysStatusResponse.ts index 9b0eb394..cea5a7a7 100644 --- a/frontend/src/api/generated/model/gatewaysStatusResponse.ts +++ b/frontend/src/api/generated/model/gatewaysStatusResponse.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -10,10 +10,10 @@ */ export interface GatewaysStatusResponse { connected: boolean; + error?: string | null; gateway_url: string; - sessions_count?: number | null; - sessions?: unknown[] | null; main_session?: unknown | null; main_session_error?: string | null; - error?: string | null; + sessions?: unknown[] | null; + sessions_count?: number | null; } diff --git a/frontend/src/api/generated/model/getBoardGroupSnapshotApiV1BoardGroupsGroupIdSnapshotGetParams.ts b/frontend/src/api/generated/model/getBoardGroupSnapshotApiV1BoardGroupsGroupIdSnapshotGetParams.ts index 6be2c791..ee5aaf20 100644 --- a/frontend/src/api/generated/model/getBoardGroupSnapshotApiV1BoardGroupsGroupIdSnapshotGetParams.ts +++ b/frontend/src/api/generated/model/getBoardGroupSnapshotApiV1BoardGroupsGroupIdSnapshotGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/getBoardGroupSnapshotApiV1BoardsBoardIdGroupSnapshotGetParams.ts b/frontend/src/api/generated/model/getBoardGroupSnapshotApiV1BoardsBoardIdGroupSnapshotGetParams.ts index 8222d9f0..4c1838b0 100644 --- a/frontend/src/api/generated/model/getBoardGroupSnapshotApiV1BoardsBoardIdGroupSnapshotGetParams.ts +++ b/frontend/src/api/generated/model/getBoardGroupSnapshotApiV1BoardsBoardIdGroupSnapshotGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/getGatewaySessionApiV1GatewaysSessionsSessionIdGetParams.ts b/frontend/src/api/generated/model/getGatewaySessionApiV1GatewaysSessionsSessionIdGetParams.ts index 8e6bd2ec..24dbb3ee 100644 --- a/frontend/src/api/generated/model/getGatewaySessionApiV1GatewaysSessionsSessionIdGetParams.ts +++ b/frontend/src/api/generated/model/getGatewaySessionApiV1GatewaysSessionsSessionIdGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/getSessionHistoryApiV1GatewaysSessionsSessionIdHistoryGetParams.ts b/frontend/src/api/generated/model/getSessionHistoryApiV1GatewaysSessionsSessionIdHistoryGetParams.ts index 2bb1eca5..5ff290a0 100644 --- a/frontend/src/api/generated/model/getSessionHistoryApiV1GatewaysSessionsSessionIdHistoryGetParams.ts +++ b/frontend/src/api/generated/model/getSessionHistoryApiV1GatewaysSessionsSessionIdHistoryGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/hTTPValidationError.ts b/frontend/src/api/generated/model/hTTPValidationError.ts index 4a403c5c..8edc3597 100644 --- a/frontend/src/api/generated/model/hTTPValidationError.ts +++ b/frontend/src/api/generated/model/hTTPValidationError.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/healthHealthGet200.ts b/frontend/src/api/generated/model/healthHealthGet200.ts index 5c023b94..3bdea59f 100644 --- a/frontend/src/api/generated/model/healthHealthGet200.ts +++ b/frontend/src/api/generated/model/healthHealthGet200.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/healthzHealthzGet200.ts b/frontend/src/api/generated/model/healthzHealthzGet200.ts index a4b906a3..0a81465f 100644 --- a/frontend/src/api/generated/model/healthzHealthzGet200.ts +++ b/frontend/src/api/generated/model/healthzHealthzGet200.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/index.ts b/frontend/src/api/generated/model/index.ts index 0261ddaa..c65dc66c 100644 --- a/frontend/src/api/generated/model/index.ts +++ b/frontend/src/api/generated/model/index.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -138,6 +138,7 @@ export * from "./limitOffsetPageTypeVarCustomizedOrganizationInviteRead"; export * from "./limitOffsetPageTypeVarCustomizedOrganizationMemberRead"; export * from "./limitOffsetPageTypeVarCustomizedTaskCommentRead"; export * from "./limitOffsetPageTypeVarCustomizedTaskRead"; +export * from "./limitOffsetPageTypeVarCustomizedTaskTagRead"; export * from "./listActivityApiV1ActivityGetParams"; export * from "./listAgentsApiV1AgentAgentsGetParams"; export * from "./listAgentsApiV1AgentsGetParams"; @@ -161,6 +162,7 @@ export * from "./listTaskCommentsApiV1AgentBoardsBoardIdTasksTaskIdCommentsGetPa export * from "./listTaskCommentsApiV1BoardsBoardIdTasksTaskIdCommentsGetParams"; export * from "./listTasksApiV1AgentBoardsBoardIdTasksGetParams"; export * from "./listTasksApiV1BoardsBoardIdTasksGetParams"; +export * from "./listTaskTagsApiV1TagsGetParams"; export * from "./okResponse"; export * from "./organizationActiveUpdate"; export * from "./organizationBoardAccessRead"; @@ -201,6 +203,10 @@ export * from "./taskCreate"; export * from "./taskCreateStatus"; export * from "./taskRead"; export * from "./taskReadStatus"; +export * from "./taskTagCreate"; +export * from "./taskTagRead"; +export * from "./taskTagRef"; +export * from "./taskTagUpdate"; export * from "./taskUpdate"; export * from "./updateAgentApiV1AgentsAgentIdPatchParams"; export * from "./userRead"; diff --git a/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedActivityEventRead.ts b/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedActivityEventRead.ts index e7eb3a00..78b90866 100644 --- a/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedActivityEventRead.ts +++ b/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedActivityEventRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -8,10 +8,10 @@ import type { ActivityEventRead } from "./activityEventRead"; export interface LimitOffsetPageTypeVarCustomizedActivityEventRead { items: ActivityEventRead[]; - /** @minimum 0 */ - total: number; /** @minimum 1 */ limit: number; /** @minimum 0 */ offset: number; + /** @minimum 0 */ + total: number; } diff --git a/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedActivityTaskCommentFeedItemRead.ts b/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedActivityTaskCommentFeedItemRead.ts index 88ed556b..f39d782b 100644 --- a/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedActivityTaskCommentFeedItemRead.ts +++ b/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedActivityTaskCommentFeedItemRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -8,10 +8,10 @@ import type { ActivityTaskCommentFeedItemRead } from "./activityTaskCommentFeedI export interface LimitOffsetPageTypeVarCustomizedActivityTaskCommentFeedItemRead { items: ActivityTaskCommentFeedItemRead[]; - /** @minimum 0 */ - total: number; /** @minimum 1 */ limit: number; /** @minimum 0 */ offset: number; + /** @minimum 0 */ + total: number; } diff --git a/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedAgentRead.ts b/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedAgentRead.ts index 28ae2480..7c254542 100644 --- a/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedAgentRead.ts +++ b/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedAgentRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -8,10 +8,10 @@ import type { AgentRead } from "./agentRead"; export interface LimitOffsetPageTypeVarCustomizedAgentRead { items: AgentRead[]; - /** @minimum 0 */ - total: number; /** @minimum 1 */ limit: number; /** @minimum 0 */ offset: number; + /** @minimum 0 */ + total: number; } diff --git a/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedApprovalRead.ts b/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedApprovalRead.ts index dbfacd4b..0d66176c 100644 --- a/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedApprovalRead.ts +++ b/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedApprovalRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -8,10 +8,10 @@ import type { ApprovalRead } from "./approvalRead"; export interface LimitOffsetPageTypeVarCustomizedApprovalRead { items: ApprovalRead[]; - /** @minimum 0 */ - total: number; /** @minimum 1 */ limit: number; /** @minimum 0 */ offset: number; + /** @minimum 0 */ + total: number; } diff --git a/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedBoardGroupMemoryRead.ts b/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedBoardGroupMemoryRead.ts index 0d8bde7e..5588cd95 100644 --- a/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedBoardGroupMemoryRead.ts +++ b/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedBoardGroupMemoryRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -8,10 +8,10 @@ import type { BoardGroupMemoryRead } from "./boardGroupMemoryRead"; export interface LimitOffsetPageTypeVarCustomizedBoardGroupMemoryRead { items: BoardGroupMemoryRead[]; - /** @minimum 0 */ - total: number; /** @minimum 1 */ limit: number; /** @minimum 0 */ offset: number; + /** @minimum 0 */ + total: number; } diff --git a/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedBoardGroupRead.ts b/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedBoardGroupRead.ts index fbf652e4..ea0633d8 100644 --- a/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedBoardGroupRead.ts +++ b/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedBoardGroupRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -8,10 +8,10 @@ import type { BoardGroupRead } from "./boardGroupRead"; export interface LimitOffsetPageTypeVarCustomizedBoardGroupRead { items: BoardGroupRead[]; - /** @minimum 0 */ - total: number; /** @minimum 1 */ limit: number; /** @minimum 0 */ offset: number; + /** @minimum 0 */ + total: number; } diff --git a/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedBoardMemoryRead.ts b/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedBoardMemoryRead.ts index a045271f..fdf4acda 100644 --- a/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedBoardMemoryRead.ts +++ b/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedBoardMemoryRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -8,10 +8,10 @@ import type { BoardMemoryRead } from "./boardMemoryRead"; export interface LimitOffsetPageTypeVarCustomizedBoardMemoryRead { items: BoardMemoryRead[]; - /** @minimum 0 */ - total: number; /** @minimum 1 */ limit: number; /** @minimum 0 */ offset: number; + /** @minimum 0 */ + total: number; } diff --git a/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedBoardRead.ts b/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedBoardRead.ts index bd9c340d..d182bde6 100644 --- a/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedBoardRead.ts +++ b/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedBoardRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -8,10 +8,10 @@ import type { BoardRead } from "./boardRead"; export interface LimitOffsetPageTypeVarCustomizedBoardRead { items: BoardRead[]; - /** @minimum 0 */ - total: number; /** @minimum 1 */ limit: number; /** @minimum 0 */ offset: number; + /** @minimum 0 */ + total: number; } diff --git a/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedGatewayRead.ts b/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedGatewayRead.ts index 137773df..3bae8a3d 100644 --- a/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedGatewayRead.ts +++ b/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedGatewayRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -8,10 +8,10 @@ import type { GatewayRead } from "./gatewayRead"; export interface LimitOffsetPageTypeVarCustomizedGatewayRead { items: GatewayRead[]; - /** @minimum 0 */ - total: number; /** @minimum 1 */ limit: number; /** @minimum 0 */ offset: number; + /** @minimum 0 */ + total: number; } diff --git a/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedOrganizationInviteRead.ts b/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedOrganizationInviteRead.ts index c97838f4..cb770aa4 100644 --- a/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedOrganizationInviteRead.ts +++ b/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedOrganizationInviteRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -8,10 +8,10 @@ import type { OrganizationInviteRead } from "./organizationInviteRead"; export interface LimitOffsetPageTypeVarCustomizedOrganizationInviteRead { items: OrganizationInviteRead[]; - /** @minimum 0 */ - total: number; /** @minimum 1 */ limit: number; /** @minimum 0 */ offset: number; + /** @minimum 0 */ + total: number; } diff --git a/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedOrganizationMemberRead.ts b/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedOrganizationMemberRead.ts index bd6e4738..f616673f 100644 --- a/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedOrganizationMemberRead.ts +++ b/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedOrganizationMemberRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -8,10 +8,10 @@ import type { OrganizationMemberRead } from "./organizationMemberRead"; export interface LimitOffsetPageTypeVarCustomizedOrganizationMemberRead { items: OrganizationMemberRead[]; - /** @minimum 0 */ - total: number; /** @minimum 1 */ limit: number; /** @minimum 0 */ offset: number; + /** @minimum 0 */ + total: number; } diff --git a/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedTaskCommentRead.ts b/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedTaskCommentRead.ts index e3ec06dc..dcb134f1 100644 --- a/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedTaskCommentRead.ts +++ b/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedTaskCommentRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -8,10 +8,10 @@ import type { TaskCommentRead } from "./taskCommentRead"; export interface LimitOffsetPageTypeVarCustomizedTaskCommentRead { items: TaskCommentRead[]; - /** @minimum 0 */ - total: number; /** @minimum 1 */ limit: number; /** @minimum 0 */ offset: number; + /** @minimum 0 */ + total: number; } diff --git a/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedTaskRead.ts b/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedTaskRead.ts index cd1205dd..789f482b 100644 --- a/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedTaskRead.ts +++ b/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedTaskRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -8,10 +8,10 @@ import type { TaskRead } from "./taskRead"; export interface LimitOffsetPageTypeVarCustomizedTaskRead { items: TaskRead[]; - /** @minimum 0 */ - total: number; /** @minimum 1 */ limit: number; /** @minimum 0 */ offset: number; + /** @minimum 0 */ + total: number; } diff --git a/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedTaskTagRead.ts b/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedTaskTagRead.ts new file mode 100644 index 00000000..d5562e6f --- /dev/null +++ b/frontend/src/api/generated/model/limitOffsetPageTypeVarCustomizedTaskTagRead.ts @@ -0,0 +1,17 @@ +/** + * Generated by orval v8.3.0 🍺 + * Do not edit manually. + * Mission Control API + * OpenAPI spec version: 0.1.0 + */ +import type { TaskTagRead } from "./taskTagRead"; + +export interface LimitOffsetPageTypeVarCustomizedTaskTagRead { + items: TaskTagRead[]; + /** @minimum 1 */ + limit: number; + /** @minimum 0 */ + offset: number; + /** @minimum 0 */ + total: number; +} diff --git a/frontend/src/api/generated/model/listActivityApiV1ActivityGetParams.ts b/frontend/src/api/generated/model/listActivityApiV1ActivityGetParams.ts index b389fe0b..050d7bce 100644 --- a/frontend/src/api/generated/model/listActivityApiV1ActivityGetParams.ts +++ b/frontend/src/api/generated/model/listActivityApiV1ActivityGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/listAgentsApiV1AgentAgentsGetParams.ts b/frontend/src/api/generated/model/listAgentsApiV1AgentAgentsGetParams.ts index 83b88510..13e6ac54 100644 --- a/frontend/src/api/generated/model/listAgentsApiV1AgentAgentsGetParams.ts +++ b/frontend/src/api/generated/model/listAgentsApiV1AgentAgentsGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/listAgentsApiV1AgentsGetParams.ts b/frontend/src/api/generated/model/listAgentsApiV1AgentsGetParams.ts index 1b17501f..d214191a 100644 --- a/frontend/src/api/generated/model/listAgentsApiV1AgentsGetParams.ts +++ b/frontend/src/api/generated/model/listAgentsApiV1AgentsGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/listApprovalsApiV1AgentBoardsBoardIdApprovalsGetParams.ts b/frontend/src/api/generated/model/listApprovalsApiV1AgentBoardsBoardIdApprovalsGetParams.ts index 927bcb00..a176afb0 100644 --- a/frontend/src/api/generated/model/listApprovalsApiV1AgentBoardsBoardIdApprovalsGetParams.ts +++ b/frontend/src/api/generated/model/listApprovalsApiV1AgentBoardsBoardIdApprovalsGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/listApprovalsApiV1BoardsBoardIdApprovalsGetParams.ts b/frontend/src/api/generated/model/listApprovalsApiV1BoardsBoardIdApprovalsGetParams.ts index af71f27b..4d865641 100644 --- a/frontend/src/api/generated/model/listApprovalsApiV1BoardsBoardIdApprovalsGetParams.ts +++ b/frontend/src/api/generated/model/listApprovalsApiV1BoardsBoardIdApprovalsGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/listBoardGroupMemoryApiV1BoardGroupsGroupIdMemoryGetParams.ts b/frontend/src/api/generated/model/listBoardGroupMemoryApiV1BoardGroupsGroupIdMemoryGetParams.ts index e70df963..a9192e9e 100644 --- a/frontend/src/api/generated/model/listBoardGroupMemoryApiV1BoardGroupsGroupIdMemoryGetParams.ts +++ b/frontend/src/api/generated/model/listBoardGroupMemoryApiV1BoardGroupsGroupIdMemoryGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/listBoardGroupMemoryForBoardApiV1BoardsBoardIdGroupMemoryGetParams.ts b/frontend/src/api/generated/model/listBoardGroupMemoryForBoardApiV1BoardsBoardIdGroupMemoryGetParams.ts index 84460860..957be7d9 100644 --- a/frontend/src/api/generated/model/listBoardGroupMemoryForBoardApiV1BoardsBoardIdGroupMemoryGetParams.ts +++ b/frontend/src/api/generated/model/listBoardGroupMemoryForBoardApiV1BoardsBoardIdGroupMemoryGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/listBoardGroupsApiV1BoardGroupsGetParams.ts b/frontend/src/api/generated/model/listBoardGroupsApiV1BoardGroupsGetParams.ts index 4d7d8ce0..f34ab980 100644 --- a/frontend/src/api/generated/model/listBoardGroupsApiV1BoardGroupsGetParams.ts +++ b/frontend/src/api/generated/model/listBoardGroupsApiV1BoardGroupsGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/listBoardMemoryApiV1AgentBoardsBoardIdMemoryGetParams.ts b/frontend/src/api/generated/model/listBoardMemoryApiV1AgentBoardsBoardIdMemoryGetParams.ts index 2123d555..219d7723 100644 --- a/frontend/src/api/generated/model/listBoardMemoryApiV1AgentBoardsBoardIdMemoryGetParams.ts +++ b/frontend/src/api/generated/model/listBoardMemoryApiV1AgentBoardsBoardIdMemoryGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/listBoardMemoryApiV1BoardsBoardIdMemoryGetParams.ts b/frontend/src/api/generated/model/listBoardMemoryApiV1BoardsBoardIdMemoryGetParams.ts index bd3aa75a..0fc8164e 100644 --- a/frontend/src/api/generated/model/listBoardMemoryApiV1BoardsBoardIdMemoryGetParams.ts +++ b/frontend/src/api/generated/model/listBoardMemoryApiV1BoardsBoardIdMemoryGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/listBoardsApiV1AgentBoardsGetParams.ts b/frontend/src/api/generated/model/listBoardsApiV1AgentBoardsGetParams.ts index 3fb85986..76f0efbb 100644 --- a/frontend/src/api/generated/model/listBoardsApiV1AgentBoardsGetParams.ts +++ b/frontend/src/api/generated/model/listBoardsApiV1AgentBoardsGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/listBoardsApiV1BoardsGetParams.ts b/frontend/src/api/generated/model/listBoardsApiV1BoardsGetParams.ts index 5b0880ac..0c32a788 100644 --- a/frontend/src/api/generated/model/listBoardsApiV1BoardsGetParams.ts +++ b/frontend/src/api/generated/model/listBoardsApiV1BoardsGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/listGatewaySessionsApiV1GatewaysSessionsGetParams.ts b/frontend/src/api/generated/model/listGatewaySessionsApiV1GatewaysSessionsGetParams.ts index 4e44c0b4..4a1281cb 100644 --- a/frontend/src/api/generated/model/listGatewaySessionsApiV1GatewaysSessionsGetParams.ts +++ b/frontend/src/api/generated/model/listGatewaySessionsApiV1GatewaysSessionsGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/listGatewaysApiV1GatewaysGetParams.ts b/frontend/src/api/generated/model/listGatewaysApiV1GatewaysGetParams.ts index d5d5b92d..d667ba9a 100644 --- a/frontend/src/api/generated/model/listGatewaysApiV1GatewaysGetParams.ts +++ b/frontend/src/api/generated/model/listGatewaysApiV1GatewaysGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/listOrgInvitesApiV1OrganizationsMeInvitesGetParams.ts b/frontend/src/api/generated/model/listOrgInvitesApiV1OrganizationsMeInvitesGetParams.ts index 0d4c9c55..81101492 100644 --- a/frontend/src/api/generated/model/listOrgInvitesApiV1OrganizationsMeInvitesGetParams.ts +++ b/frontend/src/api/generated/model/listOrgInvitesApiV1OrganizationsMeInvitesGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/listOrgMembersApiV1OrganizationsMeMembersGetParams.ts b/frontend/src/api/generated/model/listOrgMembersApiV1OrganizationsMeMembersGetParams.ts index 0f24bddd..7a186a33 100644 --- a/frontend/src/api/generated/model/listOrgMembersApiV1OrganizationsMeMembersGetParams.ts +++ b/frontend/src/api/generated/model/listOrgMembersApiV1OrganizationsMeMembersGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/listTaskCommentFeedApiV1ActivityTaskCommentsGetParams.ts b/frontend/src/api/generated/model/listTaskCommentFeedApiV1ActivityTaskCommentsGetParams.ts index c73c84a4..2d3eef40 100644 --- a/frontend/src/api/generated/model/listTaskCommentFeedApiV1ActivityTaskCommentsGetParams.ts +++ b/frontend/src/api/generated/model/listTaskCommentFeedApiV1ActivityTaskCommentsGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/listTaskCommentsApiV1AgentBoardsBoardIdTasksTaskIdCommentsGetParams.ts b/frontend/src/api/generated/model/listTaskCommentsApiV1AgentBoardsBoardIdTasksTaskIdCommentsGetParams.ts index 91e1f752..0bf1fa62 100644 --- a/frontend/src/api/generated/model/listTaskCommentsApiV1AgentBoardsBoardIdTasksTaskIdCommentsGetParams.ts +++ b/frontend/src/api/generated/model/listTaskCommentsApiV1AgentBoardsBoardIdTasksTaskIdCommentsGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/listTaskCommentsApiV1BoardsBoardIdTasksTaskIdCommentsGetParams.ts b/frontend/src/api/generated/model/listTaskCommentsApiV1BoardsBoardIdTasksTaskIdCommentsGetParams.ts index acadea95..ef2f72af 100644 --- a/frontend/src/api/generated/model/listTaskCommentsApiV1BoardsBoardIdTasksTaskIdCommentsGetParams.ts +++ b/frontend/src/api/generated/model/listTaskCommentsApiV1BoardsBoardIdTasksTaskIdCommentsGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/listTaskTagsApiV1TagsGetParams.ts b/frontend/src/api/generated/model/listTaskTagsApiV1TagsGetParams.ts new file mode 100644 index 00000000..980fed8f --- /dev/null +++ b/frontend/src/api/generated/model/listTaskTagsApiV1TagsGetParams.ts @@ -0,0 +1,18 @@ +/** + * Generated by orval v8.3.0 🍺 + * Do not edit manually. + * Mission Control API + * OpenAPI spec version: 0.1.0 + */ + +export type ListTaskTagsApiV1TagsGetParams = { + /** + * @minimum 1 + * @maximum 200 + */ + limit?: number; + /** + * @minimum 0 + */ + offset?: number; +}; diff --git a/frontend/src/api/generated/model/listTasksApiV1AgentBoardsBoardIdTasksGetParams.ts b/frontend/src/api/generated/model/listTasksApiV1AgentBoardsBoardIdTasksGetParams.ts index 3ee0378f..8e9f6c59 100644 --- a/frontend/src/api/generated/model/listTasksApiV1AgentBoardsBoardIdTasksGetParams.ts +++ b/frontend/src/api/generated/model/listTasksApiV1AgentBoardsBoardIdTasksGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/listTasksApiV1BoardsBoardIdTasksGetParams.ts b/frontend/src/api/generated/model/listTasksApiV1BoardsBoardIdTasksGetParams.ts index 6c5b7499..4652d385 100644 --- a/frontend/src/api/generated/model/listTasksApiV1BoardsBoardIdTasksGetParams.ts +++ b/frontend/src/api/generated/model/listTasksApiV1BoardsBoardIdTasksGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/okResponse.ts b/frontend/src/api/generated/model/okResponse.ts index f9e01125..8987e86c 100644 --- a/frontend/src/api/generated/model/okResponse.ts +++ b/frontend/src/api/generated/model/okResponse.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/organizationActiveUpdate.ts b/frontend/src/api/generated/model/organizationActiveUpdate.ts index 017c13f0..3a74a397 100644 --- a/frontend/src/api/generated/model/organizationActiveUpdate.ts +++ b/frontend/src/api/generated/model/organizationActiveUpdate.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/organizationBoardAccessRead.ts b/frontend/src/api/generated/model/organizationBoardAccessRead.ts index 9c527132..19b75f29 100644 --- a/frontend/src/api/generated/model/organizationBoardAccessRead.ts +++ b/frontend/src/api/generated/model/organizationBoardAccessRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -9,10 +9,10 @@ * Board access payload returned from read endpoints. */ export interface OrganizationBoardAccessRead { - id: string; board_id: string; can_read: boolean; can_write: boolean; created_at: string; + id: string; updated_at: string; } diff --git a/frontend/src/api/generated/model/organizationBoardAccessSpec.ts b/frontend/src/api/generated/model/organizationBoardAccessSpec.ts index d469b213..6bd28818 100644 --- a/frontend/src/api/generated/model/organizationBoardAccessSpec.ts +++ b/frontend/src/api/generated/model/organizationBoardAccessSpec.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/organizationCreate.ts b/frontend/src/api/generated/model/organizationCreate.ts index 0d80fd8f..339f2266 100644 --- a/frontend/src/api/generated/model/organizationCreate.ts +++ b/frontend/src/api/generated/model/organizationCreate.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/organizationInviteAccept.ts b/frontend/src/api/generated/model/organizationInviteAccept.ts index a53ff556..bd2d9eb1 100644 --- a/frontend/src/api/generated/model/organizationInviteAccept.ts +++ b/frontend/src/api/generated/model/organizationInviteAccept.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/organizationInviteCreate.ts b/frontend/src/api/generated/model/organizationInviteCreate.ts index 57fe6ed0..ef8e9074 100644 --- a/frontend/src/api/generated/model/organizationInviteCreate.ts +++ b/frontend/src/api/generated/model/organizationInviteCreate.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -10,9 +10,9 @@ import type { OrganizationBoardAccessSpec } from "./organizationBoardAccessSpec" * Payload for creating an organization invite. */ export interface OrganizationInviteCreate { - invited_email: string; - role?: string; all_boards_read?: boolean; all_boards_write?: boolean; board_access?: OrganizationBoardAccessSpec[]; + invited_email: string; + role?: string; } diff --git a/frontend/src/api/generated/model/organizationInviteRead.ts b/frontend/src/api/generated/model/organizationInviteRead.ts index 6e198f4c..5cba137c 100644 --- a/frontend/src/api/generated/model/organizationInviteRead.ts +++ b/frontend/src/api/generated/model/organizationInviteRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -9,16 +9,16 @@ * Organization invite payload returned from read endpoints. */ export interface OrganizationInviteRead { - id: string; - organization_id: string; - invited_email: string; - role: string; + accepted_at?: string | null; + accepted_by_user_id?: string | null; all_boards_read: boolean; all_boards_write: boolean; - token: string; - created_by_user_id?: string | null; - accepted_by_user_id?: string | null; - accepted_at?: string | null; created_at: string; + created_by_user_id?: string | null; + id: string; + invited_email: string; + organization_id: string; + role: string; + token: string; updated_at: string; } diff --git a/frontend/src/api/generated/model/organizationListItem.ts b/frontend/src/api/generated/model/organizationListItem.ts index f109262f..4c3cc08f 100644 --- a/frontend/src/api/generated/model/organizationListItem.ts +++ b/frontend/src/api/generated/model/organizationListItem.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -10,7 +10,7 @@ */ export interface OrganizationListItem { id: string; + is_active: boolean; name: string; role: string; - is_active: boolean; } diff --git a/frontend/src/api/generated/model/organizationMemberAccessUpdate.ts b/frontend/src/api/generated/model/organizationMemberAccessUpdate.ts index 4167a25d..32e442bf 100644 --- a/frontend/src/api/generated/model/organizationMemberAccessUpdate.ts +++ b/frontend/src/api/generated/model/organizationMemberAccessUpdate.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/organizationMemberRead.ts b/frontend/src/api/generated/model/organizationMemberRead.ts index 9b92b44c..5e91c9a9 100644 --- a/frontend/src/api/generated/model/organizationMemberRead.ts +++ b/frontend/src/api/generated/model/organizationMemberRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -11,14 +11,14 @@ import type { OrganizationUserRead } from "./organizationUserRead"; * Organization member payload including board-level access overrides. */ export interface OrganizationMemberRead { - id: string; - organization_id: string; - user_id: string; - role: string; all_boards_read: boolean; all_boards_write: boolean; + board_access?: OrganizationBoardAccessRead[]; created_at: string; + id: string; + organization_id: string; + role: string; updated_at: string; user?: OrganizationUserRead | null; - board_access?: OrganizationBoardAccessRead[]; + user_id: string; } diff --git a/frontend/src/api/generated/model/organizationMemberUpdate.ts b/frontend/src/api/generated/model/organizationMemberUpdate.ts index 9db99bf8..6307b4b5 100644 --- a/frontend/src/api/generated/model/organizationMemberUpdate.ts +++ b/frontend/src/api/generated/model/organizationMemberUpdate.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/organizationRead.ts b/frontend/src/api/generated/model/organizationRead.ts index ffa94118..8e45126d 100644 --- a/frontend/src/api/generated/model/organizationRead.ts +++ b/frontend/src/api/generated/model/organizationRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -9,8 +9,8 @@ * Organization payload returned by read endpoints. */ export interface OrganizationRead { + created_at: string; id: string; name: string; - created_at: string; updated_at: string; } diff --git a/frontend/src/api/generated/model/organizationUserRead.ts b/frontend/src/api/generated/model/organizationUserRead.ts index 6bc9b2ae..490973d0 100644 --- a/frontend/src/api/generated/model/organizationUserRead.ts +++ b/frontend/src/api/generated/model/organizationUserRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -9,8 +9,8 @@ * Embedded user fields included in organization member payloads. */ export interface OrganizationUserRead { - id: string; email?: string | null; + id: string; name?: string | null; preferred_name?: string | null; } diff --git a/frontend/src/api/generated/model/readyzReadyzGet200.ts b/frontend/src/api/generated/model/readyzReadyzGet200.ts index aabc7262..f2bf833c 100644 --- a/frontend/src/api/generated/model/readyzReadyzGet200.ts +++ b/frontend/src/api/generated/model/readyzReadyzGet200.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/searchApiV1SoulsDirectorySearchGetParams.ts b/frontend/src/api/generated/model/searchApiV1SoulsDirectorySearchGetParams.ts index 2999eb77..10e77ba3 100644 --- a/frontend/src/api/generated/model/searchApiV1SoulsDirectorySearchGetParams.ts +++ b/frontend/src/api/generated/model/searchApiV1SoulsDirectorySearchGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/sendGatewaySessionMessageApiV1GatewaysSessionsSessionIdMessagePostParams.ts b/frontend/src/api/generated/model/sendGatewaySessionMessageApiV1GatewaysSessionsSessionIdMessagePostParams.ts index b307f124..2e42fcd0 100644 --- a/frontend/src/api/generated/model/sendGatewaySessionMessageApiV1GatewaysSessionsSessionIdMessagePostParams.ts +++ b/frontend/src/api/generated/model/sendGatewaySessionMessageApiV1GatewaysSessionsSessionIdMessagePostParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/soulUpdateRequest.ts b/frontend/src/api/generated/model/soulUpdateRequest.ts index 8cf619fe..4e0e840f 100644 --- a/frontend/src/api/generated/model/soulUpdateRequest.ts +++ b/frontend/src/api/generated/model/soulUpdateRequest.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -10,6 +10,6 @@ */ export interface SoulUpdateRequest { content: string; - source_url?: string | null; reason?: string | null; + source_url?: string | null; } diff --git a/frontend/src/api/generated/model/soulsDirectoryMarkdownResponse.ts b/frontend/src/api/generated/model/soulsDirectoryMarkdownResponse.ts index 54f07e8c..a7af0d70 100644 --- a/frontend/src/api/generated/model/soulsDirectoryMarkdownResponse.ts +++ b/frontend/src/api/generated/model/soulsDirectoryMarkdownResponse.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -9,7 +9,7 @@ * Response payload containing rendered markdown for a soul. */ export interface SoulsDirectoryMarkdownResponse { + content: string; handle: string; slug: string; - content: string; } diff --git a/frontend/src/api/generated/model/soulsDirectorySearchResponse.ts b/frontend/src/api/generated/model/soulsDirectorySearchResponse.ts index d2a4fd61..32b3130f 100644 --- a/frontend/src/api/generated/model/soulsDirectorySearchResponse.ts +++ b/frontend/src/api/generated/model/soulsDirectorySearchResponse.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/soulsDirectorySoulRef.ts b/frontend/src/api/generated/model/soulsDirectorySoulRef.ts index d7700505..6c1bb0a4 100644 --- a/frontend/src/api/generated/model/soulsDirectorySoulRef.ts +++ b/frontend/src/api/generated/model/soulsDirectorySoulRef.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -10,7 +10,7 @@ */ export interface SoulsDirectorySoulRef { handle: string; - slug: string; page_url: string; raw_md_url: string; + slug: string; } diff --git a/frontend/src/api/generated/model/streamAgentsApiV1AgentsStreamGetParams.ts b/frontend/src/api/generated/model/streamAgentsApiV1AgentsStreamGetParams.ts index 7a4b4297..744f6c31 100644 --- a/frontend/src/api/generated/model/streamAgentsApiV1AgentsStreamGetParams.ts +++ b/frontend/src/api/generated/model/streamAgentsApiV1AgentsStreamGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/streamApprovalsApiV1BoardsBoardIdApprovalsStreamGetParams.ts b/frontend/src/api/generated/model/streamApprovalsApiV1BoardsBoardIdApprovalsStreamGetParams.ts index 1a1a24c1..4d0fb9a7 100644 --- a/frontend/src/api/generated/model/streamApprovalsApiV1BoardsBoardIdApprovalsStreamGetParams.ts +++ b/frontend/src/api/generated/model/streamApprovalsApiV1BoardsBoardIdApprovalsStreamGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/streamBoardGroupMemoryApiV1BoardGroupsGroupIdMemoryStreamGetParams.ts b/frontend/src/api/generated/model/streamBoardGroupMemoryApiV1BoardGroupsGroupIdMemoryStreamGetParams.ts index 70e73010..51dd5762 100644 --- a/frontend/src/api/generated/model/streamBoardGroupMemoryApiV1BoardGroupsGroupIdMemoryStreamGetParams.ts +++ b/frontend/src/api/generated/model/streamBoardGroupMemoryApiV1BoardGroupsGroupIdMemoryStreamGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/streamBoardGroupMemoryForBoardApiV1BoardsBoardIdGroupMemoryStreamGetParams.ts b/frontend/src/api/generated/model/streamBoardGroupMemoryForBoardApiV1BoardsBoardIdGroupMemoryStreamGetParams.ts index a23f7bb8..1006956a 100644 --- a/frontend/src/api/generated/model/streamBoardGroupMemoryForBoardApiV1BoardsBoardIdGroupMemoryStreamGetParams.ts +++ b/frontend/src/api/generated/model/streamBoardGroupMemoryForBoardApiV1BoardsBoardIdGroupMemoryStreamGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/streamBoardMemoryApiV1BoardsBoardIdMemoryStreamGetParams.ts b/frontend/src/api/generated/model/streamBoardMemoryApiV1BoardsBoardIdMemoryStreamGetParams.ts index a4304ba9..b16a7c30 100644 --- a/frontend/src/api/generated/model/streamBoardMemoryApiV1BoardsBoardIdMemoryStreamGetParams.ts +++ b/frontend/src/api/generated/model/streamBoardMemoryApiV1BoardsBoardIdMemoryStreamGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/streamTaskCommentFeedApiV1ActivityTaskCommentsStreamGetParams.ts b/frontend/src/api/generated/model/streamTaskCommentFeedApiV1ActivityTaskCommentsStreamGetParams.ts index 36de3a26..82e101bb 100644 --- a/frontend/src/api/generated/model/streamTaskCommentFeedApiV1ActivityTaskCommentsStreamGetParams.ts +++ b/frontend/src/api/generated/model/streamTaskCommentFeedApiV1ActivityTaskCommentsStreamGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/streamTasksApiV1BoardsBoardIdTasksStreamGetParams.ts b/frontend/src/api/generated/model/streamTasksApiV1BoardsBoardIdTasksStreamGetParams.ts index 3139a4a1..9907aae8 100644 --- a/frontend/src/api/generated/model/streamTasksApiV1BoardsBoardIdTasksStreamGetParams.ts +++ b/frontend/src/api/generated/model/streamTasksApiV1BoardsBoardIdTasksStreamGetParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/syncGatewayTemplatesApiV1GatewaysGatewayIdTemplatesSyncPostParams.ts b/frontend/src/api/generated/model/syncGatewayTemplatesApiV1GatewaysGatewayIdTemplatesSyncPostParams.ts index 0a1f6d73..fa0f06cb 100644 --- a/frontend/src/api/generated/model/syncGatewayTemplatesApiV1GatewaysGatewayIdTemplatesSyncPostParams.ts +++ b/frontend/src/api/generated/model/syncGatewayTemplatesApiV1GatewaysGatewayIdTemplatesSyncPostParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/taskCardRead.ts b/frontend/src/api/generated/model/taskCardRead.ts index 287fc9df..e9baef65 100644 --- a/frontend/src/api/generated/model/taskCardRead.ts +++ b/frontend/src/api/generated/model/taskCardRead.ts @@ -1,31 +1,34 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 */ import type { TaskCardReadStatus } from "./taskCardReadStatus"; +import type { TaskTagRef } from "./taskTagRef"; /** * Task read model enriched with assignee and approval counters. */ export interface TaskCardRead { - title: string; - description?: string | null; - status?: TaskCardReadStatus; - priority?: string; - due_at?: string | null; - assigned_agent_id?: string | null; - depends_on_task_ids?: string[]; - id: string; - board_id: string | null; - created_by_user_id: string | null; - in_progress_at: string | null; - created_at: string; - updated_at: string; - blocked_by_task_ids?: string[]; - is_blocked?: boolean; - assignee?: string | null; approvals_count?: number; approvals_pending_count?: number; + assigned_agent_id?: string | null; + assignee?: string | null; + blocked_by_task_ids?: string[]; + board_id: string | null; + created_at: string; + created_by_user_id: string | null; + depends_on_task_ids?: string[]; + description?: string | null; + due_at?: string | null; + id: string; + in_progress_at: string | null; + is_blocked?: boolean; + priority?: string; + status?: TaskCardReadStatus; + tag_ids?: string[]; + tags?: TaskTagRef[]; + title: string; + updated_at: string; } diff --git a/frontend/src/api/generated/model/taskCardReadStatus.ts b/frontend/src/api/generated/model/taskCardReadStatus.ts index 7fc0bcd6..656ae197 100644 --- a/frontend/src/api/generated/model/taskCardReadStatus.ts +++ b/frontend/src/api/generated/model/taskCardReadStatus.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/taskCommentCreate.ts b/frontend/src/api/generated/model/taskCommentCreate.ts index c67516bd..7bc255c5 100644 --- a/frontend/src/api/generated/model/taskCommentCreate.ts +++ b/frontend/src/api/generated/model/taskCommentCreate.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/taskCommentRead.ts b/frontend/src/api/generated/model/taskCommentRead.ts index 09fed42b..faec4310 100644 --- a/frontend/src/api/generated/model/taskCommentRead.ts +++ b/frontend/src/api/generated/model/taskCommentRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -9,9 +9,9 @@ * Task comment payload returned from read endpoints. */ export interface TaskCommentRead { + agent_id: string | null; + created_at: string; id: string; message: string | null; - agent_id: string | null; task_id: string | null; - created_at: string; } diff --git a/frontend/src/api/generated/model/taskCreate.ts b/frontend/src/api/generated/model/taskCreate.ts index 12b163eb..3f103974 100644 --- a/frontend/src/api/generated/model/taskCreate.ts +++ b/frontend/src/api/generated/model/taskCreate.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -10,12 +10,13 @@ import type { TaskCreateStatus } from "./taskCreateStatus"; * Payload for creating a task. */ export interface TaskCreate { - title: string; - description?: string | null; - status?: TaskCreateStatus; - priority?: string; - due_at?: string | null; assigned_agent_id?: string | null; - depends_on_task_ids?: string[]; created_by_user_id?: string | null; + depends_on_task_ids?: string[]; + description?: string | null; + due_at?: string | null; + priority?: string; + status?: TaskCreateStatus; + tag_ids?: string[]; + title: string; } diff --git a/frontend/src/api/generated/model/taskCreateStatus.ts b/frontend/src/api/generated/model/taskCreateStatus.ts index f184079c..2682406f 100644 --- a/frontend/src/api/generated/model/taskCreateStatus.ts +++ b/frontend/src/api/generated/model/taskCreateStatus.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/taskRead.ts b/frontend/src/api/generated/model/taskRead.ts index 30cf7de7..f16be8ab 100644 --- a/frontend/src/api/generated/model/taskRead.ts +++ b/frontend/src/api/generated/model/taskRead.ts @@ -1,28 +1,31 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 */ import type { TaskReadStatus } from "./taskReadStatus"; +import type { TaskTagRef } from "./taskTagRef"; /** * Task payload returned from read endpoints. */ export interface TaskRead { - title: string; - description?: string | null; - status?: TaskReadStatus; - priority?: string; - due_at?: string | null; assigned_agent_id?: string | null; - depends_on_task_ids?: string[]; - id: string; - board_id: string | null; - created_by_user_id: string | null; - in_progress_at: string | null; - created_at: string; - updated_at: string; blocked_by_task_ids?: string[]; + board_id: string | null; + created_at: string; + created_by_user_id: string | null; + depends_on_task_ids?: string[]; + description?: string | null; + due_at?: string | null; + id: string; + in_progress_at: string | null; is_blocked?: boolean; + priority?: string; + status?: TaskReadStatus; + tag_ids?: string[]; + tags?: TaskTagRef[]; + title: string; + updated_at: string; } diff --git a/frontend/src/api/generated/model/taskReadStatus.ts b/frontend/src/api/generated/model/taskReadStatus.ts index 66e5c36d..25e581e6 100644 --- a/frontend/src/api/generated/model/taskReadStatus.ts +++ b/frontend/src/api/generated/model/taskReadStatus.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/taskTagCreate.ts b/frontend/src/api/generated/model/taskTagCreate.ts new file mode 100644 index 00000000..a82c7347 --- /dev/null +++ b/frontend/src/api/generated/model/taskTagCreate.ts @@ -0,0 +1,17 @@ +/** + * Generated by orval v8.3.0 🍺 + * Do not edit manually. + * Mission Control API + * OpenAPI spec version: 0.1.0 + */ + +/** + * Payload for creating a task tag. + */ +export interface TaskTagCreate { + color?: string; + description?: string | null; + /** @minLength 1 */ + name: string; + slug?: string | null; +} diff --git a/frontend/src/api/generated/model/taskTagRead.ts b/frontend/src/api/generated/model/taskTagRead.ts new file mode 100644 index 00000000..46231670 --- /dev/null +++ b/frontend/src/api/generated/model/taskTagRead.ts @@ -0,0 +1,21 @@ +/** + * Generated by orval v8.3.0 🍺 + * Do not edit manually. + * Mission Control API + * OpenAPI spec version: 0.1.0 + */ + +/** + * Task-tag payload returned from API endpoints. + */ +export interface TaskTagRead { + color?: string; + created_at: string; + description?: string | null; + id: string; + name: string; + organization_id: string; + slug: string; + task_count?: number; + updated_at: string; +} diff --git a/frontend/src/api/generated/model/taskTagRef.ts b/frontend/src/api/generated/model/taskTagRef.ts new file mode 100644 index 00000000..bec49446 --- /dev/null +++ b/frontend/src/api/generated/model/taskTagRef.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v8.3.0 🍺 + * Do not edit manually. + * Mission Control API + * OpenAPI spec version: 0.1.0 + */ + +/** + * Compact task-tag representation embedded in task payloads. + */ +export interface TaskTagRef { + color: string; + id: string; + name: string; + slug: string; +} diff --git a/frontend/src/api/generated/model/taskTagUpdate.ts b/frontend/src/api/generated/model/taskTagUpdate.ts new file mode 100644 index 00000000..b1eeb577 --- /dev/null +++ b/frontend/src/api/generated/model/taskTagUpdate.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v8.3.0 🍺 + * Do not edit manually. + * Mission Control API + * OpenAPI spec version: 0.1.0 + */ + +/** + * Payload for partial task-tag updates. + */ +export interface TaskTagUpdate { + color?: string | null; + description?: string | null; + name?: string | null; + slug?: string | null; +} diff --git a/frontend/src/api/generated/model/taskUpdate.ts b/frontend/src/api/generated/model/taskUpdate.ts index 3a613e08..571eb6fb 100644 --- a/frontend/src/api/generated/model/taskUpdate.ts +++ b/frontend/src/api/generated/model/taskUpdate.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -9,12 +9,13 @@ * Payload for partial task updates. */ export interface TaskUpdate { - title?: string | null; - description?: string | null; - status?: "inbox" | "in_progress" | "review" | "done" | null; - priority?: string | null; - due_at?: string | null; assigned_agent_id?: string | null; - depends_on_task_ids?: string[] | null; comment?: string | null; + depends_on_task_ids?: string[] | null; + description?: string | null; + due_at?: string | null; + priority?: string | null; + status?: "inbox" | "in_progress" | "review" | "done" | null; + tag_ids?: string[] | null; + title?: string | null; } diff --git a/frontend/src/api/generated/model/updateAgentApiV1AgentsAgentIdPatchParams.ts b/frontend/src/api/generated/model/updateAgentApiV1AgentsAgentIdPatchParams.ts index 7a78a25d..9334a8ca 100644 --- a/frontend/src/api/generated/model/updateAgentApiV1AgentsAgentIdPatchParams.ts +++ b/frontend/src/api/generated/model/updateAgentApiV1AgentsAgentIdPatchParams.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/model/userRead.ts b/frontend/src/api/generated/model/userRead.ts index 25f97152..6c345868 100644 --- a/frontend/src/api/generated/model/userRead.ts +++ b/frontend/src/api/generated/model/userRead.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -10,13 +10,13 @@ */ export interface UserRead { clerk_user_id: string; + context?: string | null; email?: string | null; + id: string; + is_super_admin: boolean; name?: string | null; + notes?: string | null; preferred_name?: string | null; pronouns?: string | null; timezone?: string | null; - notes?: string | null; - context?: string | null; - id: string; - is_super_admin: boolean; } diff --git a/frontend/src/api/generated/model/userUpdate.ts b/frontend/src/api/generated/model/userUpdate.ts index 0697c43f..cc9ab997 100644 --- a/frontend/src/api/generated/model/userUpdate.ts +++ b/frontend/src/api/generated/model/userUpdate.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -9,10 +9,10 @@ * Payload for partial user profile updates. */ export interface UserUpdate { + context?: string | null; name?: string | null; + notes?: string | null; preferred_name?: string | null; pronouns?: string | null; timezone?: string | null; - notes?: string | null; - context?: string | null; } diff --git a/frontend/src/api/generated/model/validationError.ts b/frontend/src/api/generated/model/validationError.ts index cfb105f7..b40de80c 100644 --- a/frontend/src/api/generated/model/validationError.ts +++ b/frontend/src/api/generated/model/validationError.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -7,9 +7,9 @@ import type { ValidationErrorCtx } from "./validationErrorCtx"; export interface ValidationError { + ctx?: ValidationErrorCtx; + input?: unknown; loc: (string | number)[]; msg: string; type: string; - input?: unknown; - ctx?: ValidationErrorCtx; } diff --git a/frontend/src/api/generated/model/validationErrorCtx.ts b/frontend/src/api/generated/model/validationErrorCtx.ts index 43cb1c57..65511460 100644 --- a/frontend/src/api/generated/model/validationErrorCtx.ts +++ b/frontend/src/api/generated/model/validationErrorCtx.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/organizations/organizations.ts b/frontend/src/api/generated/organizations/organizations.ts index c97daa31..cb756331 100644 --- a/frontend/src/api/generated/organizations/organizations.ts +++ b/frontend/src/api/generated/organizations/organizations.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -165,276 +165,191 @@ export const useCreateOrganizationApiV1OrganizationsPost = < ); }; /** - * List organizations where the current user is a member. - * @summary List My Organizations + * Accept an invite and return resulting membership. + * @summary Accept Org Invite */ -export type listMyOrganizationsApiV1OrganizationsMeListGetResponse200 = { - data: OrganizationListItem[]; +export type acceptOrgInviteApiV1OrganizationsInvitesAcceptPostResponse200 = { + data: OrganizationMemberRead; status: 200; }; -export type listMyOrganizationsApiV1OrganizationsMeListGetResponseSuccess = - listMyOrganizationsApiV1OrganizationsMeListGetResponse200 & { - headers: Headers; - }; -export type listMyOrganizationsApiV1OrganizationsMeListGetResponse = - listMyOrganizationsApiV1OrganizationsMeListGetResponseSuccess; - -export const getListMyOrganizationsApiV1OrganizationsMeListGetUrl = () => { - return `/api/v1/organizations/me/list`; -}; - -export const listMyOrganizationsApiV1OrganizationsMeListGet = async ( - options?: RequestInit, -): Promise => { - return customFetch( - getListMyOrganizationsApiV1OrganizationsMeListGetUrl(), - { - ...options, - method: "GET", - }, - ); -}; - -export const getListMyOrganizationsApiV1OrganizationsMeListGetQueryKey = () => { - return [`/api/v1/organizations/me/list`] as const; -}; - -export const getListMyOrganizationsApiV1OrganizationsMeListGetQueryOptions = < - TData = Awaited< - ReturnType - >, - TError = unknown, ->(options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - >; - request?: SecondParameter; -}) => { - const { query: queryOptions, request: requestOptions } = options ?? {}; - - const queryKey = - queryOptions?.queryKey ?? - getListMyOrganizationsApiV1OrganizationsMeListGetQueryKey(); - - const queryFn: QueryFunction< - Awaited> - > = ({ signal }) => - listMyOrganizationsApiV1OrganizationsMeListGet({ - signal, - ...requestOptions, - }); - - return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< - Awaited>, - TError, - TData - > & { queryKey: DataTag }; -}; - -export type ListMyOrganizationsApiV1OrganizationsMeListGetQueryResult = - NonNullable< - Awaited> - >; -export type ListMyOrganizationsApiV1OrganizationsMeListGetQueryError = unknown; - -export function useListMyOrganizationsApiV1OrganizationsMeListGet< - TData = Awaited< - ReturnType - >, - TError = unknown, ->( - options: { - query: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - > & - Pick< - DefinedInitialDataOptions< - Awaited< - ReturnType - >, - TError, - Awaited< - ReturnType - > - >, - "initialData" - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): DefinedUseQueryResult & { - queryKey: DataTag; -}; -export function useListMyOrganizationsApiV1OrganizationsMeListGet< - TData = Awaited< - ReturnType - >, - TError = unknown, ->( - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - > & - Pick< - UndefinedInitialDataOptions< - Awaited< - ReturnType - >, - TError, - Awaited< - ReturnType - > - >, - "initialData" - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -}; -export function useListMyOrganizationsApiV1OrganizationsMeListGet< - TData = Awaited< - ReturnType - >, - TError = unknown, ->( - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -}; -/** - * @summary List My Organizations - */ - -export function useListMyOrganizationsApiV1OrganizationsMeListGet< - TData = Awaited< - ReturnType - >, - TError = unknown, ->( - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -} { - const queryOptions = - getListMyOrganizationsApiV1OrganizationsMeListGetQueryOptions(options); - - const query = useQuery(queryOptions, queryClient) as UseQueryResult< - TData, - TError - > & { queryKey: DataTag }; - - return { ...query, queryKey: queryOptions.queryKey }; -} - -/** - * Set the caller's active organization. - * @summary Set Active Org - */ -export type setActiveOrgApiV1OrganizationsMeActivePatchResponse200 = { - data: OrganizationRead; - status: 200; -}; - -export type setActiveOrgApiV1OrganizationsMeActivePatchResponse422 = { +export type acceptOrgInviteApiV1OrganizationsInvitesAcceptPostResponse422 = { data: HTTPValidationError; status: 422; }; -export type setActiveOrgApiV1OrganizationsMeActivePatchResponseSuccess = - setActiveOrgApiV1OrganizationsMeActivePatchResponse200 & { +export type acceptOrgInviteApiV1OrganizationsInvitesAcceptPostResponseSuccess = + acceptOrgInviteApiV1OrganizationsInvitesAcceptPostResponse200 & { headers: Headers; }; -export type setActiveOrgApiV1OrganizationsMeActivePatchResponseError = - setActiveOrgApiV1OrganizationsMeActivePatchResponse422 & { +export type acceptOrgInviteApiV1OrganizationsInvitesAcceptPostResponseError = + acceptOrgInviteApiV1OrganizationsInvitesAcceptPostResponse422 & { headers: Headers; }; -export type setActiveOrgApiV1OrganizationsMeActivePatchResponse = - | setActiveOrgApiV1OrganizationsMeActivePatchResponseSuccess - | setActiveOrgApiV1OrganizationsMeActivePatchResponseError; +export type acceptOrgInviteApiV1OrganizationsInvitesAcceptPostResponse = + | acceptOrgInviteApiV1OrganizationsInvitesAcceptPostResponseSuccess + | acceptOrgInviteApiV1OrganizationsInvitesAcceptPostResponseError; -export const getSetActiveOrgApiV1OrganizationsMeActivePatchUrl = () => { - return `/api/v1/organizations/me/active`; +export const getAcceptOrgInviteApiV1OrganizationsInvitesAcceptPostUrl = () => { + return `/api/v1/organizations/invites/accept`; }; -export const setActiveOrgApiV1OrganizationsMeActivePatch = async ( - organizationActiveUpdate: OrganizationActiveUpdate, +export const acceptOrgInviteApiV1OrganizationsInvitesAcceptPost = async ( + organizationInviteAccept: OrganizationInviteAccept, options?: RequestInit, -): Promise => { - return customFetch( - getSetActiveOrgApiV1OrganizationsMeActivePatchUrl(), +): Promise => { + return customFetch( + getAcceptOrgInviteApiV1OrganizationsInvitesAcceptPostUrl(), { ...options, - method: "PATCH", + method: "POST", headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(organizationActiveUpdate), + body: JSON.stringify(organizationInviteAccept), }, ); }; -export const getSetActiveOrgApiV1OrganizationsMeActivePatchMutationOptions = < +export const getAcceptOrgInviteApiV1OrganizationsInvitesAcceptPostMutationOptions = + (options?: { + mutation?: UseMutationOptions< + Awaited< + ReturnType + >, + TError, + { data: OrganizationInviteAccept }, + TContext + >; + request?: SecondParameter; + }): UseMutationOptions< + Awaited< + ReturnType + >, + TError, + { data: OrganizationInviteAccept }, + TContext + > => { + const mutationKey = ["acceptOrgInviteApiV1OrganizationsInvitesAcceptPost"]; + const { mutation: mutationOptions, request: requestOptions } = options + ? options.mutation && + "mutationKey" in options.mutation && + options.mutation.mutationKey + ? options + : { ...options, mutation: { ...options.mutation, mutationKey } } + : { mutation: { mutationKey }, request: undefined }; + + const mutationFn: MutationFunction< + Awaited< + ReturnType + >, + { data: OrganizationInviteAccept } + > = (props) => { + const { data } = props ?? {}; + + return acceptOrgInviteApiV1OrganizationsInvitesAcceptPost( + data, + requestOptions, + ); + }; + + return { mutationFn, ...mutationOptions }; + }; + +export type AcceptOrgInviteApiV1OrganizationsInvitesAcceptPostMutationResult = + NonNullable< + Awaited< + ReturnType + > + >; +export type AcceptOrgInviteApiV1OrganizationsInvitesAcceptPostMutationBody = + OrganizationInviteAccept; +export type AcceptOrgInviteApiV1OrganizationsInvitesAcceptPostMutationError = + HTTPValidationError; + +/** + * @summary Accept Org Invite + */ +export const useAcceptOrgInviteApiV1OrganizationsInvitesAcceptPost = < TError = HTTPValidationError, TContext = unknown, +>( + options?: { + mutation?: UseMutationOptions< + Awaited< + ReturnType + >, + TError, + { data: OrganizationInviteAccept }, + TContext + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseMutationResult< + Awaited< + ReturnType + >, + TError, + { data: OrganizationInviteAccept }, + TContext +> => { + return useMutation( + getAcceptOrgInviteApiV1OrganizationsInvitesAcceptPostMutationOptions( + options, + ), + queryClient, + ); +}; +/** + * Delete the active organization and related entities. + * @summary Delete My Org + */ +export type deleteMyOrgApiV1OrganizationsMeDeleteResponse200 = { + data: OkResponse; + status: 200; +}; + +export type deleteMyOrgApiV1OrganizationsMeDeleteResponseSuccess = + deleteMyOrgApiV1OrganizationsMeDeleteResponse200 & { + headers: Headers; + }; +export type deleteMyOrgApiV1OrganizationsMeDeleteResponse = + deleteMyOrgApiV1OrganizationsMeDeleteResponseSuccess; + +export const getDeleteMyOrgApiV1OrganizationsMeDeleteUrl = () => { + return `/api/v1/organizations/me`; +}; + +export const deleteMyOrgApiV1OrganizationsMeDelete = async ( + options?: RequestInit, +): Promise => { + return customFetch( + getDeleteMyOrgApiV1OrganizationsMeDeleteUrl(), + { + ...options, + method: "DELETE", + }, + ); +}; + +export const getDeleteMyOrgApiV1OrganizationsMeDeleteMutationOptions = < + TError = unknown, + TContext = unknown, >(options?: { mutation?: UseMutationOptions< - Awaited>, + Awaited>, TError, - { data: OrganizationActiveUpdate }, + void, TContext >; request?: SecondParameter; }): UseMutationOptions< - Awaited>, + Awaited>, TError, - { data: OrganizationActiveUpdate }, + void, TContext > => { - const mutationKey = ["setActiveOrgApiV1OrganizationsMeActivePatch"]; + const mutationKey = ["deleteMyOrgApiV1OrganizationsMeDelete"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && @@ -444,51 +359,46 @@ export const getSetActiveOrgApiV1OrganizationsMeActivePatchMutationOptions = < : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< - Awaited>, - { data: OrganizationActiveUpdate } - > = (props) => { - const { data } = props ?? {}; - - return setActiveOrgApiV1OrganizationsMeActivePatch(data, requestOptions); + Awaited>, + void + > = () => { + return deleteMyOrgApiV1OrganizationsMeDelete(requestOptions); }; return { mutationFn, ...mutationOptions }; }; -export type SetActiveOrgApiV1OrganizationsMeActivePatchMutationResult = - NonNullable< - Awaited> - >; -export type SetActiveOrgApiV1OrganizationsMeActivePatchMutationBody = - OrganizationActiveUpdate; -export type SetActiveOrgApiV1OrganizationsMeActivePatchMutationError = - HTTPValidationError; +export type DeleteMyOrgApiV1OrganizationsMeDeleteMutationResult = NonNullable< + Awaited> +>; + +export type DeleteMyOrgApiV1OrganizationsMeDeleteMutationError = unknown; /** - * @summary Set Active Org + * @summary Delete My Org */ -export const useSetActiveOrgApiV1OrganizationsMeActivePatch = < - TError = HTTPValidationError, +export const useDeleteMyOrgApiV1OrganizationsMeDelete = < + TError = unknown, TContext = unknown, >( options?: { mutation?: UseMutationOptions< - Awaited>, + Awaited>, TError, - { data: OrganizationActiveUpdate }, + void, TContext >; request?: SecondParameter; }, queryClient?: QueryClient, ): UseMutationResult< - Awaited>, + Awaited>, TError, - { data: OrganizationActiveUpdate }, + void, TContext > => { return useMutation( - getSetActiveOrgApiV1OrganizationsMeActivePatchMutationOptions(options), + getDeleteMyOrgApiV1OrganizationsMeDeleteMutationOptions(options), queryClient, ); }; @@ -666,55 +576,69 @@ export function useGetMyOrgApiV1OrganizationsMeGet< } /** - * Delete the active organization and related entities. - * @summary Delete My Org + * Set the caller's active organization. + * @summary Set Active Org */ -export type deleteMyOrgApiV1OrganizationsMeDeleteResponse200 = { - data: OkResponse; +export type setActiveOrgApiV1OrganizationsMeActivePatchResponse200 = { + data: OrganizationRead; status: 200; }; -export type deleteMyOrgApiV1OrganizationsMeDeleteResponseSuccess = - deleteMyOrgApiV1OrganizationsMeDeleteResponse200 & { - headers: Headers; - }; -export type deleteMyOrgApiV1OrganizationsMeDeleteResponse = - deleteMyOrgApiV1OrganizationsMeDeleteResponseSuccess; - -export const getDeleteMyOrgApiV1OrganizationsMeDeleteUrl = () => { - return `/api/v1/organizations/me`; +export type setActiveOrgApiV1OrganizationsMeActivePatchResponse422 = { + data: HTTPValidationError; + status: 422; }; -export const deleteMyOrgApiV1OrganizationsMeDelete = async ( +export type setActiveOrgApiV1OrganizationsMeActivePatchResponseSuccess = + setActiveOrgApiV1OrganizationsMeActivePatchResponse200 & { + headers: Headers; + }; +export type setActiveOrgApiV1OrganizationsMeActivePatchResponseError = + setActiveOrgApiV1OrganizationsMeActivePatchResponse422 & { + headers: Headers; + }; + +export type setActiveOrgApiV1OrganizationsMeActivePatchResponse = + | setActiveOrgApiV1OrganizationsMeActivePatchResponseSuccess + | setActiveOrgApiV1OrganizationsMeActivePatchResponseError; + +export const getSetActiveOrgApiV1OrganizationsMeActivePatchUrl = () => { + return `/api/v1/organizations/me/active`; +}; + +export const setActiveOrgApiV1OrganizationsMeActivePatch = async ( + organizationActiveUpdate: OrganizationActiveUpdate, options?: RequestInit, -): Promise => { - return customFetch( - getDeleteMyOrgApiV1OrganizationsMeDeleteUrl(), +): Promise => { + return customFetch( + getSetActiveOrgApiV1OrganizationsMeActivePatchUrl(), { ...options, - method: "DELETE", + method: "PATCH", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(organizationActiveUpdate), }, ); }; -export const getDeleteMyOrgApiV1OrganizationsMeDeleteMutationOptions = < - TError = unknown, +export const getSetActiveOrgApiV1OrganizationsMeActivePatchMutationOptions = < + TError = HTTPValidationError, TContext = unknown, >(options?: { mutation?: UseMutationOptions< - Awaited>, + Awaited>, TError, - void, + { data: OrganizationActiveUpdate }, TContext >; request?: SecondParameter; }): UseMutationOptions< - Awaited>, + Awaited>, TError, - void, + { data: OrganizationActiveUpdate }, TContext > => { - const mutationKey = ["deleteMyOrgApiV1OrganizationsMeDelete"]; + const mutationKey = ["setActiveOrgApiV1OrganizationsMeActivePatch"]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && @@ -724,1212 +648,54 @@ export const getDeleteMyOrgApiV1OrganizationsMeDeleteMutationOptions = < : { mutation: { mutationKey }, request: undefined }; const mutationFn: MutationFunction< - Awaited>, - void - > = () => { - return deleteMyOrgApiV1OrganizationsMeDelete(requestOptions); + Awaited>, + { data: OrganizationActiveUpdate } + > = (props) => { + const { data } = props ?? {}; + + return setActiveOrgApiV1OrganizationsMeActivePatch(data, requestOptions); }; return { mutationFn, ...mutationOptions }; }; -export type DeleteMyOrgApiV1OrganizationsMeDeleteMutationResult = NonNullable< - Awaited> ->; - -export type DeleteMyOrgApiV1OrganizationsMeDeleteMutationError = unknown; +export type SetActiveOrgApiV1OrganizationsMeActivePatchMutationResult = + NonNullable< + Awaited> + >; +export type SetActiveOrgApiV1OrganizationsMeActivePatchMutationBody = + OrganizationActiveUpdate; +export type SetActiveOrgApiV1OrganizationsMeActivePatchMutationError = + HTTPValidationError; /** - * @summary Delete My Org + * @summary Set Active Org */ -export const useDeleteMyOrgApiV1OrganizationsMeDelete = < - TError = unknown, +export const useSetActiveOrgApiV1OrganizationsMeActivePatch = < + TError = HTTPValidationError, TContext = unknown, >( options?: { mutation?: UseMutationOptions< - Awaited>, + Awaited>, TError, - void, + { data: OrganizationActiveUpdate }, TContext >; request?: SecondParameter; }, queryClient?: QueryClient, ): UseMutationResult< - Awaited>, + Awaited>, TError, - void, + { data: OrganizationActiveUpdate }, TContext > => { return useMutation( - getDeleteMyOrgApiV1OrganizationsMeDeleteMutationOptions(options), + getSetActiveOrgApiV1OrganizationsMeActivePatchMutationOptions(options), queryClient, ); }; -/** - * Get the caller's membership record in the active organization. - * @summary Get My Membership - */ -export type getMyMembershipApiV1OrganizationsMeMemberGetResponse200 = { - data: OrganizationMemberRead; - status: 200; -}; - -export type getMyMembershipApiV1OrganizationsMeMemberGetResponseSuccess = - getMyMembershipApiV1OrganizationsMeMemberGetResponse200 & { - headers: Headers; - }; -export type getMyMembershipApiV1OrganizationsMeMemberGetResponse = - getMyMembershipApiV1OrganizationsMeMemberGetResponseSuccess; - -export const getGetMyMembershipApiV1OrganizationsMeMemberGetUrl = () => { - return `/api/v1/organizations/me/member`; -}; - -export const getMyMembershipApiV1OrganizationsMeMemberGet = async ( - options?: RequestInit, -): Promise => { - return customFetch( - getGetMyMembershipApiV1OrganizationsMeMemberGetUrl(), - { - ...options, - method: "GET", - }, - ); -}; - -export const getGetMyMembershipApiV1OrganizationsMeMemberGetQueryKey = () => { - return [`/api/v1/organizations/me/member`] as const; -}; - -export const getGetMyMembershipApiV1OrganizationsMeMemberGetQueryOptions = < - TData = Awaited< - ReturnType - >, - TError = unknown, ->(options?: { - query?: Partial< - UseQueryOptions< - Awaited>, - TError, - TData - > - >; - request?: SecondParameter; -}) => { - const { query: queryOptions, request: requestOptions } = options ?? {}; - - const queryKey = - queryOptions?.queryKey ?? - getGetMyMembershipApiV1OrganizationsMeMemberGetQueryKey(); - - const queryFn: QueryFunction< - Awaited> - > = ({ signal }) => - getMyMembershipApiV1OrganizationsMeMemberGet({ signal, ...requestOptions }); - - return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< - Awaited>, - TError, - TData - > & { queryKey: DataTag }; -}; - -export type GetMyMembershipApiV1OrganizationsMeMemberGetQueryResult = - NonNullable< - Awaited> - >; -export type GetMyMembershipApiV1OrganizationsMeMemberGetQueryError = unknown; - -export function useGetMyMembershipApiV1OrganizationsMeMemberGet< - TData = Awaited< - ReturnType - >, - TError = unknown, ->( - options: { - query: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - > & - Pick< - DefinedInitialDataOptions< - Awaited< - ReturnType - >, - TError, - Awaited< - ReturnType - > - >, - "initialData" - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): DefinedUseQueryResult & { - queryKey: DataTag; -}; -export function useGetMyMembershipApiV1OrganizationsMeMemberGet< - TData = Awaited< - ReturnType - >, - TError = unknown, ->( - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - > & - Pick< - UndefinedInitialDataOptions< - Awaited< - ReturnType - >, - TError, - Awaited< - ReturnType - > - >, - "initialData" - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -}; -export function useGetMyMembershipApiV1OrganizationsMeMemberGet< - TData = Awaited< - ReturnType - >, - TError = unknown, ->( - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -}; -/** - * @summary Get My Membership - */ - -export function useGetMyMembershipApiV1OrganizationsMeMemberGet< - TData = Awaited< - ReturnType - >, - TError = unknown, ->( - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -} { - const queryOptions = - getGetMyMembershipApiV1OrganizationsMeMemberGetQueryOptions(options); - - const query = useQuery(queryOptions, queryClient) as UseQueryResult< - TData, - TError - > & { queryKey: DataTag }; - - return { ...query, queryKey: queryOptions.queryKey }; -} - -/** - * List members for the active organization. - * @summary List Org Members - */ -export type listOrgMembersApiV1OrganizationsMeMembersGetResponse200 = { - data: LimitOffsetPageTypeVarCustomizedOrganizationMemberRead; - status: 200; -}; - -export type listOrgMembersApiV1OrganizationsMeMembersGetResponse422 = { - data: HTTPValidationError; - status: 422; -}; - -export type listOrgMembersApiV1OrganizationsMeMembersGetResponseSuccess = - listOrgMembersApiV1OrganizationsMeMembersGetResponse200 & { - headers: Headers; - }; -export type listOrgMembersApiV1OrganizationsMeMembersGetResponseError = - listOrgMembersApiV1OrganizationsMeMembersGetResponse422 & { - headers: Headers; - }; - -export type listOrgMembersApiV1OrganizationsMeMembersGetResponse = - | listOrgMembersApiV1OrganizationsMeMembersGetResponseSuccess - | listOrgMembersApiV1OrganizationsMeMembersGetResponseError; - -export const getListOrgMembersApiV1OrganizationsMeMembersGetUrl = ( - params?: ListOrgMembersApiV1OrganizationsMeMembersGetParams, -) => { - const normalizedParams = new URLSearchParams(); - - Object.entries(params || {}).forEach(([key, value]) => { - if (value !== undefined) { - normalizedParams.append(key, value === null ? "null" : value.toString()); - } - }); - - const stringifiedParams = normalizedParams.toString(); - - return stringifiedParams.length > 0 - ? `/api/v1/organizations/me/members?${stringifiedParams}` - : `/api/v1/organizations/me/members`; -}; - -export const listOrgMembersApiV1OrganizationsMeMembersGet = async ( - params?: ListOrgMembersApiV1OrganizationsMeMembersGetParams, - options?: RequestInit, -): Promise => { - return customFetch( - getListOrgMembersApiV1OrganizationsMeMembersGetUrl(params), - { - ...options, - method: "GET", - }, - ); -}; - -export const getListOrgMembersApiV1OrganizationsMeMembersGetQueryKey = ( - params?: ListOrgMembersApiV1OrganizationsMeMembersGetParams, -) => { - return [ - `/api/v1/organizations/me/members`, - ...(params ? [params] : []), - ] as const; -}; - -export const getListOrgMembersApiV1OrganizationsMeMembersGetQueryOptions = < - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - params?: ListOrgMembersApiV1OrganizationsMeMembersGetParams, - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - >; - request?: SecondParameter; - }, -) => { - const { query: queryOptions, request: requestOptions } = options ?? {}; - - const queryKey = - queryOptions?.queryKey ?? - getListOrgMembersApiV1OrganizationsMeMembersGetQueryKey(params); - - const queryFn: QueryFunction< - Awaited> - > = ({ signal }) => - listOrgMembersApiV1OrganizationsMeMembersGet(params, { - signal, - ...requestOptions, - }); - - return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< - Awaited>, - TError, - TData - > & { queryKey: DataTag }; -}; - -export type ListOrgMembersApiV1OrganizationsMeMembersGetQueryResult = - NonNullable< - Awaited> - >; -export type ListOrgMembersApiV1OrganizationsMeMembersGetQueryError = - HTTPValidationError; - -export function useListOrgMembersApiV1OrganizationsMeMembersGet< - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - params: undefined | ListOrgMembersApiV1OrganizationsMeMembersGetParams, - options: { - query: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - > & - Pick< - DefinedInitialDataOptions< - Awaited< - ReturnType - >, - TError, - Awaited< - ReturnType - > - >, - "initialData" - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): DefinedUseQueryResult & { - queryKey: DataTag; -}; -export function useListOrgMembersApiV1OrganizationsMeMembersGet< - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - params?: ListOrgMembersApiV1OrganizationsMeMembersGetParams, - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - > & - Pick< - UndefinedInitialDataOptions< - Awaited< - ReturnType - >, - TError, - Awaited< - ReturnType - > - >, - "initialData" - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -}; -export function useListOrgMembersApiV1OrganizationsMeMembersGet< - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - params?: ListOrgMembersApiV1OrganizationsMeMembersGetParams, - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -}; -/** - * @summary List Org Members - */ - -export function useListOrgMembersApiV1OrganizationsMeMembersGet< - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - params?: ListOrgMembersApiV1OrganizationsMeMembersGetParams, - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -} { - const queryOptions = - getListOrgMembersApiV1OrganizationsMeMembersGetQueryOptions( - params, - options, - ); - - const query = useQuery(queryOptions, queryClient) as UseQueryResult< - TData, - TError - > & { queryKey: DataTag }; - - return { ...query, queryKey: queryOptions.queryKey }; -} - -/** - * Get a specific organization member by id. - * @summary Get Org Member - */ -export type getOrgMemberApiV1OrganizationsMeMembersMemberIdGetResponse200 = { - data: OrganizationMemberRead; - status: 200; -}; - -export type getOrgMemberApiV1OrganizationsMeMembersMemberIdGetResponse422 = { - data: HTTPValidationError; - status: 422; -}; - -export type getOrgMemberApiV1OrganizationsMeMembersMemberIdGetResponseSuccess = - getOrgMemberApiV1OrganizationsMeMembersMemberIdGetResponse200 & { - headers: Headers; - }; -export type getOrgMemberApiV1OrganizationsMeMembersMemberIdGetResponseError = - getOrgMemberApiV1OrganizationsMeMembersMemberIdGetResponse422 & { - headers: Headers; - }; - -export type getOrgMemberApiV1OrganizationsMeMembersMemberIdGetResponse = - | getOrgMemberApiV1OrganizationsMeMembersMemberIdGetResponseSuccess - | getOrgMemberApiV1OrganizationsMeMembersMemberIdGetResponseError; - -export const getGetOrgMemberApiV1OrganizationsMeMembersMemberIdGetUrl = ( - memberId: string, -) => { - return `/api/v1/organizations/me/members/${memberId}`; -}; - -export const getOrgMemberApiV1OrganizationsMeMembersMemberIdGet = async ( - memberId: string, - options?: RequestInit, -): Promise => { - return customFetch( - getGetOrgMemberApiV1OrganizationsMeMembersMemberIdGetUrl(memberId), - { - ...options, - method: "GET", - }, - ); -}; - -export const getGetOrgMemberApiV1OrganizationsMeMembersMemberIdGetQueryKey = ( - memberId: string, -) => { - return [`/api/v1/organizations/me/members/${memberId}`] as const; -}; - -export const getGetOrgMemberApiV1OrganizationsMeMembersMemberIdGetQueryOptions = - < - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, - >( - memberId: string, - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType< - typeof getOrgMemberApiV1OrganizationsMeMembersMemberIdGet - > - >, - TError, - TData - > - >; - request?: SecondParameter; - }, - ) => { - const { query: queryOptions, request: requestOptions } = options ?? {}; - - const queryKey = - queryOptions?.queryKey ?? - getGetOrgMemberApiV1OrganizationsMeMembersMemberIdGetQueryKey(memberId); - - const queryFn: QueryFunction< - Awaited< - ReturnType - > - > = ({ signal }) => - getOrgMemberApiV1OrganizationsMeMembersMemberIdGet(memberId, { - signal, - ...requestOptions, - }); - - return { - queryKey, - queryFn, - enabled: !!memberId, - ...queryOptions, - } as UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > & { queryKey: DataTag }; - }; - -export type GetOrgMemberApiV1OrganizationsMeMembersMemberIdGetQueryResult = - NonNullable< - Awaited< - ReturnType - > - >; -export type GetOrgMemberApiV1OrganizationsMeMembersMemberIdGetQueryError = - HTTPValidationError; - -export function useGetOrgMemberApiV1OrganizationsMeMembersMemberIdGet< - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - memberId: string, - options: { - query: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - > & - Pick< - DefinedInitialDataOptions< - Awaited< - ReturnType< - typeof getOrgMemberApiV1OrganizationsMeMembersMemberIdGet - > - >, - TError, - Awaited< - ReturnType< - typeof getOrgMemberApiV1OrganizationsMeMembersMemberIdGet - > - > - >, - "initialData" - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): DefinedUseQueryResult & { - queryKey: DataTag; -}; -export function useGetOrgMemberApiV1OrganizationsMeMembersMemberIdGet< - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - memberId: string, - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - > & - Pick< - UndefinedInitialDataOptions< - Awaited< - ReturnType< - typeof getOrgMemberApiV1OrganizationsMeMembersMemberIdGet - > - >, - TError, - Awaited< - ReturnType< - typeof getOrgMemberApiV1OrganizationsMeMembersMemberIdGet - > - > - >, - "initialData" - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -}; -export function useGetOrgMemberApiV1OrganizationsMeMembersMemberIdGet< - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - memberId: string, - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -}; -/** - * @summary Get Org Member - */ - -export function useGetOrgMemberApiV1OrganizationsMeMembersMemberIdGet< - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - memberId: string, - options?: { - query?: Partial< - UseQueryOptions< - Awaited< - ReturnType - >, - TError, - TData - > - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -} { - const queryOptions = - getGetOrgMemberApiV1OrganizationsMeMembersMemberIdGetQueryOptions( - memberId, - options, - ); - - const query = useQuery(queryOptions, queryClient) as UseQueryResult< - TData, - TError - > & { queryKey: DataTag }; - - return { ...query, queryKey: queryOptions.queryKey }; -} - -/** - * Update a member's role in the organization. - * @summary Update Org Member - */ -export type updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchResponse200 = - { - data: OrganizationMemberRead; - status: 200; - }; - -export type updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchResponse422 = - { - data: HTTPValidationError; - status: 422; - }; - -export type updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchResponseSuccess = - updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchResponse200 & { - headers: Headers; - }; -export type updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchResponseError = - updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchResponse422 & { - headers: Headers; - }; - -export type updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchResponse = - | updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchResponseSuccess - | updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchResponseError; - -export const getUpdateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchUrl = ( - memberId: string, -) => { - return `/api/v1/organizations/me/members/${memberId}`; -}; - -export const updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatch = async ( - memberId: string, - organizationMemberUpdate: OrganizationMemberUpdate, - options?: RequestInit, -): Promise => { - return customFetch( - getUpdateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchUrl(memberId), - { - ...options, - method: "PATCH", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(organizationMemberUpdate), - }, - ); -}; - -export const getUpdateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchMutationOptions = - (options?: { - mutation?: UseMutationOptions< - Awaited< - ReturnType< - typeof updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatch - > - >, - TError, - { memberId: string; data: OrganizationMemberUpdate }, - TContext - >; - request?: SecondParameter; - }): UseMutationOptions< - Awaited< - ReturnType - >, - TError, - { memberId: string; data: OrganizationMemberUpdate }, - TContext - > => { - const mutationKey = [ - "updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatch", - ]; - const { mutation: mutationOptions, request: requestOptions } = options - ? options.mutation && - "mutationKey" in options.mutation && - options.mutation.mutationKey - ? options - : { ...options, mutation: { ...options.mutation, mutationKey } } - : { mutation: { mutationKey }, request: undefined }; - - const mutationFn: MutationFunction< - Awaited< - ReturnType< - typeof updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatch - > - >, - { memberId: string; data: OrganizationMemberUpdate } - > = (props) => { - const { memberId, data } = props ?? {}; - - return updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatch( - memberId, - data, - requestOptions, - ); - }; - - return { mutationFn, ...mutationOptions }; - }; - -export type UpdateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchMutationResult = - NonNullable< - Awaited< - ReturnType - > - >; -export type UpdateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchMutationBody = - OrganizationMemberUpdate; -export type UpdateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchMutationError = - HTTPValidationError; - -/** - * @summary Update Org Member - */ -export const useUpdateOrgMemberApiV1OrganizationsMeMembersMemberIdPatch = < - TError = HTTPValidationError, - TContext = unknown, ->( - options?: { - mutation?: UseMutationOptions< - Awaited< - ReturnType< - typeof updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatch - > - >, - TError, - { memberId: string; data: OrganizationMemberUpdate }, - TContext - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseMutationResult< - Awaited< - ReturnType - >, - TError, - { memberId: string; data: OrganizationMemberUpdate }, - TContext -> => { - return useMutation( - getUpdateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchMutationOptions( - options, - ), - queryClient, - ); -}; -/** - * Remove a member from the active organization. - * @summary Remove Org Member - */ -export type removeOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteResponse200 = - { - data: OkResponse; - status: 200; - }; - -export type removeOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteResponse422 = - { - data: HTTPValidationError; - status: 422; - }; - -export type removeOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteResponseSuccess = - removeOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteResponse200 & { - headers: Headers; - }; -export type removeOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteResponseError = - removeOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteResponse422 & { - headers: Headers; - }; - -export type removeOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteResponse = - | removeOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteResponseSuccess - | removeOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteResponseError; - -export const getRemoveOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteUrl = ( - memberId: string, -) => { - return `/api/v1/organizations/me/members/${memberId}`; -}; - -export const removeOrgMemberApiV1OrganizationsMeMembersMemberIdDelete = async ( - memberId: string, - options?: RequestInit, -): Promise => { - return customFetch( - getRemoveOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteUrl(memberId), - { - ...options, - method: "DELETE", - }, - ); -}; - -export const getRemoveOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteMutationOptions = - (options?: { - mutation?: UseMutationOptions< - Awaited< - ReturnType< - typeof removeOrgMemberApiV1OrganizationsMeMembersMemberIdDelete - > - >, - TError, - { memberId: string }, - TContext - >; - request?: SecondParameter; - }): UseMutationOptions< - Awaited< - ReturnType< - typeof removeOrgMemberApiV1OrganizationsMeMembersMemberIdDelete - > - >, - TError, - { memberId: string }, - TContext - > => { - const mutationKey = [ - "removeOrgMemberApiV1OrganizationsMeMembersMemberIdDelete", - ]; - const { mutation: mutationOptions, request: requestOptions } = options - ? options.mutation && - "mutationKey" in options.mutation && - options.mutation.mutationKey - ? options - : { ...options, mutation: { ...options.mutation, mutationKey } } - : { mutation: { mutationKey }, request: undefined }; - - const mutationFn: MutationFunction< - Awaited< - ReturnType< - typeof removeOrgMemberApiV1OrganizationsMeMembersMemberIdDelete - > - >, - { memberId: string } - > = (props) => { - const { memberId } = props ?? {}; - - return removeOrgMemberApiV1OrganizationsMeMembersMemberIdDelete( - memberId, - requestOptions, - ); - }; - - return { mutationFn, ...mutationOptions }; - }; - -export type RemoveOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteMutationResult = - NonNullable< - Awaited< - ReturnType< - typeof removeOrgMemberApiV1OrganizationsMeMembersMemberIdDelete - > - > - >; - -export type RemoveOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteMutationError = - HTTPValidationError; - -/** - * @summary Remove Org Member - */ -export const useRemoveOrgMemberApiV1OrganizationsMeMembersMemberIdDelete = < - TError = HTTPValidationError, - TContext = unknown, ->( - options?: { - mutation?: UseMutationOptions< - Awaited< - ReturnType< - typeof removeOrgMemberApiV1OrganizationsMeMembersMemberIdDelete - > - >, - TError, - { memberId: string }, - TContext - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseMutationResult< - Awaited< - ReturnType - >, - TError, - { memberId: string }, - TContext -> => { - return useMutation( - getRemoveOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteMutationOptions( - options, - ), - queryClient, - ); -}; -/** - * Update board-level access settings for a member. - * @summary Update Member Access - */ -export type updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutResponse200 = - { - data: OrganizationMemberRead; - status: 200; - }; - -export type updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutResponse422 = - { - data: HTTPValidationError; - status: 422; - }; - -export type updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutResponseSuccess = - updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutResponse200 & { - headers: Headers; - }; -export type updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutResponseError = - updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutResponse422 & { - headers: Headers; - }; - -export type updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutResponse = - - | updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutResponseSuccess - | updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutResponseError; - -export const getUpdateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutUrl = - (memberId: string) => { - return `/api/v1/organizations/me/members/${memberId}/access`; - }; - -export const updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPut = - async ( - memberId: string, - organizationMemberAccessUpdate: OrganizationMemberAccessUpdate, - options?: RequestInit, - ): Promise => { - return customFetch( - getUpdateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutUrl( - memberId, - ), - { - ...options, - method: "PUT", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(organizationMemberAccessUpdate), - }, - ); - }; - -export const getUpdateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutMutationOptions = - (options?: { - mutation?: UseMutationOptions< - Awaited< - ReturnType< - typeof updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPut - > - >, - TError, - { memberId: string; data: OrganizationMemberAccessUpdate }, - TContext - >; - request?: SecondParameter; - }): UseMutationOptions< - Awaited< - ReturnType< - typeof updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPut - > - >, - TError, - { memberId: string; data: OrganizationMemberAccessUpdate }, - TContext - > => { - const mutationKey = [ - "updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPut", - ]; - const { mutation: mutationOptions, request: requestOptions } = options - ? options.mutation && - "mutationKey" in options.mutation && - options.mutation.mutationKey - ? options - : { ...options, mutation: { ...options.mutation, mutationKey } } - : { mutation: { mutationKey }, request: undefined }; - - const mutationFn: MutationFunction< - Awaited< - ReturnType< - typeof updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPut - > - >, - { memberId: string; data: OrganizationMemberAccessUpdate } - > = (props) => { - const { memberId, data } = props ?? {}; - - return updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPut( - memberId, - data, - requestOptions, - ); - }; - - return { mutationFn, ...mutationOptions }; - }; - -export type UpdateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutMutationResult = - NonNullable< - Awaited< - ReturnType< - typeof updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPut - > - > - >; -export type UpdateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutMutationBody = - OrganizationMemberAccessUpdate; -export type UpdateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutMutationError = - HTTPValidationError; - -/** - * @summary Update Member Access - */ -export const useUpdateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPut = - ( - options?: { - mutation?: UseMutationOptions< - Awaited< - ReturnType< - typeof updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPut - > - >, - TError, - { memberId: string; data: OrganizationMemberAccessUpdate }, - TContext - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, - ): UseMutationResult< - Awaited< - ReturnType< - typeof updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPut - > - >, - TError, - { memberId: string; data: OrganizationMemberAccessUpdate }, - TContext - > => { - return useMutation( - getUpdateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutMutationOptions( - options, - ), - queryClient, - ); - }; /** * List pending invites for the active organization. * @summary List Org Invites @@ -2457,71 +1223,737 @@ export const useRevokeOrgInviteApiV1OrganizationsMeInvitesInviteIdDelete = < ); }; /** - * Accept an invite and return resulting membership. - * @summary Accept Org Invite + * List organizations where the current user is a member. + * @summary List My Organizations */ -export type acceptOrgInviteApiV1OrganizationsInvitesAcceptPostResponse200 = { - data: OrganizationMemberRead; +export type listMyOrganizationsApiV1OrganizationsMeListGetResponse200 = { + data: OrganizationListItem[]; status: 200; }; -export type acceptOrgInviteApiV1OrganizationsInvitesAcceptPostResponse422 = { - data: HTTPValidationError; - status: 422; -}; - -export type acceptOrgInviteApiV1OrganizationsInvitesAcceptPostResponseSuccess = - acceptOrgInviteApiV1OrganizationsInvitesAcceptPostResponse200 & { - headers: Headers; - }; -export type acceptOrgInviteApiV1OrganizationsInvitesAcceptPostResponseError = - acceptOrgInviteApiV1OrganizationsInvitesAcceptPostResponse422 & { +export type listMyOrganizationsApiV1OrganizationsMeListGetResponseSuccess = + listMyOrganizationsApiV1OrganizationsMeListGetResponse200 & { headers: Headers; }; +export type listMyOrganizationsApiV1OrganizationsMeListGetResponse = + listMyOrganizationsApiV1OrganizationsMeListGetResponseSuccess; -export type acceptOrgInviteApiV1OrganizationsInvitesAcceptPostResponse = - | acceptOrgInviteApiV1OrganizationsInvitesAcceptPostResponseSuccess - | acceptOrgInviteApiV1OrganizationsInvitesAcceptPostResponseError; - -export const getAcceptOrgInviteApiV1OrganizationsInvitesAcceptPostUrl = () => { - return `/api/v1/organizations/invites/accept`; +export const getListMyOrganizationsApiV1OrganizationsMeListGetUrl = () => { + return `/api/v1/organizations/me/list`; }; -export const acceptOrgInviteApiV1OrganizationsInvitesAcceptPost = async ( - organizationInviteAccept: OrganizationInviteAccept, +export const listMyOrganizationsApiV1OrganizationsMeListGet = async ( options?: RequestInit, -): Promise => { - return customFetch( - getAcceptOrgInviteApiV1OrganizationsInvitesAcceptPostUrl(), +): Promise => { + return customFetch( + getListMyOrganizationsApiV1OrganizationsMeListGetUrl(), { ...options, - method: "POST", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(organizationInviteAccept), + method: "GET", }, ); }; -export const getAcceptOrgInviteApiV1OrganizationsInvitesAcceptPostMutationOptions = +export const getListMyOrganizationsApiV1OrganizationsMeListGetQueryKey = () => { + return [`/api/v1/organizations/me/list`] as const; +}; + +export const getListMyOrganizationsApiV1OrganizationsMeListGetQueryOptions = < + TData = Awaited< + ReturnType + >, + TError = unknown, +>(options?: { + query?: Partial< + UseQueryOptions< + Awaited< + ReturnType + >, + TError, + TData + > + >; + request?: SecondParameter; +}) => { + const { query: queryOptions, request: requestOptions } = options ?? {}; + + const queryKey = + queryOptions?.queryKey ?? + getListMyOrganizationsApiV1OrganizationsMeListGetQueryKey(); + + const queryFn: QueryFunction< + Awaited> + > = ({ signal }) => + listMyOrganizationsApiV1OrganizationsMeListGet({ + signal, + ...requestOptions, + }); + + return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< + Awaited>, + TError, + TData + > & { queryKey: DataTag }; +}; + +export type ListMyOrganizationsApiV1OrganizationsMeListGetQueryResult = + NonNullable< + Awaited> + >; +export type ListMyOrganizationsApiV1OrganizationsMeListGetQueryError = unknown; + +export function useListMyOrganizationsApiV1OrganizationsMeListGet< + TData = Awaited< + ReturnType + >, + TError = unknown, +>( + options: { + query: Partial< + UseQueryOptions< + Awaited< + ReturnType + >, + TError, + TData + > + > & + Pick< + DefinedInitialDataOptions< + Awaited< + ReturnType + >, + TError, + Awaited< + ReturnType + > + >, + "initialData" + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): DefinedUseQueryResult & { + queryKey: DataTag; +}; +export function useListMyOrganizationsApiV1OrganizationsMeListGet< + TData = Awaited< + ReturnType + >, + TError = unknown, +>( + options?: { + query?: Partial< + UseQueryOptions< + Awaited< + ReturnType + >, + TError, + TData + > + > & + Pick< + UndefinedInitialDataOptions< + Awaited< + ReturnType + >, + TError, + Awaited< + ReturnType + > + >, + "initialData" + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +}; +export function useListMyOrganizationsApiV1OrganizationsMeListGet< + TData = Awaited< + ReturnType + >, + TError = unknown, +>( + options?: { + query?: Partial< + UseQueryOptions< + Awaited< + ReturnType + >, + TError, + TData + > + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +}; +/** + * @summary List My Organizations + */ + +export function useListMyOrganizationsApiV1OrganizationsMeListGet< + TData = Awaited< + ReturnType + >, + TError = unknown, +>( + options?: { + query?: Partial< + UseQueryOptions< + Awaited< + ReturnType + >, + TError, + TData + > + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +} { + const queryOptions = + getListMyOrganizationsApiV1OrganizationsMeListGetQueryOptions(options); + + const query = useQuery(queryOptions, queryClient) as UseQueryResult< + TData, + TError + > & { queryKey: DataTag }; + + return { ...query, queryKey: queryOptions.queryKey }; +} + +/** + * Get the caller's membership record in the active organization. + * @summary Get My Membership + */ +export type getMyMembershipApiV1OrganizationsMeMemberGetResponse200 = { + data: OrganizationMemberRead; + status: 200; +}; + +export type getMyMembershipApiV1OrganizationsMeMemberGetResponseSuccess = + getMyMembershipApiV1OrganizationsMeMemberGetResponse200 & { + headers: Headers; + }; +export type getMyMembershipApiV1OrganizationsMeMemberGetResponse = + getMyMembershipApiV1OrganizationsMeMemberGetResponseSuccess; + +export const getGetMyMembershipApiV1OrganizationsMeMemberGetUrl = () => { + return `/api/v1/organizations/me/member`; +}; + +export const getMyMembershipApiV1OrganizationsMeMemberGet = async ( + options?: RequestInit, +): Promise => { + return customFetch( + getGetMyMembershipApiV1OrganizationsMeMemberGetUrl(), + { + ...options, + method: "GET", + }, + ); +}; + +export const getGetMyMembershipApiV1OrganizationsMeMemberGetQueryKey = () => { + return [`/api/v1/organizations/me/member`] as const; +}; + +export const getGetMyMembershipApiV1OrganizationsMeMemberGetQueryOptions = < + TData = Awaited< + ReturnType + >, + TError = unknown, +>(options?: { + query?: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + >; + request?: SecondParameter; +}) => { + const { query: queryOptions, request: requestOptions } = options ?? {}; + + const queryKey = + queryOptions?.queryKey ?? + getGetMyMembershipApiV1OrganizationsMeMemberGetQueryKey(); + + const queryFn: QueryFunction< + Awaited> + > = ({ signal }) => + getMyMembershipApiV1OrganizationsMeMemberGet({ signal, ...requestOptions }); + + return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< + Awaited>, + TError, + TData + > & { queryKey: DataTag }; +}; + +export type GetMyMembershipApiV1OrganizationsMeMemberGetQueryResult = + NonNullable< + Awaited> + >; +export type GetMyMembershipApiV1OrganizationsMeMemberGetQueryError = unknown; + +export function useGetMyMembershipApiV1OrganizationsMeMemberGet< + TData = Awaited< + ReturnType + >, + TError = unknown, +>( + options: { + query: Partial< + UseQueryOptions< + Awaited< + ReturnType + >, + TError, + TData + > + > & + Pick< + DefinedInitialDataOptions< + Awaited< + ReturnType + >, + TError, + Awaited< + ReturnType + > + >, + "initialData" + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): DefinedUseQueryResult & { + queryKey: DataTag; +}; +export function useGetMyMembershipApiV1OrganizationsMeMemberGet< + TData = Awaited< + ReturnType + >, + TError = unknown, +>( + options?: { + query?: Partial< + UseQueryOptions< + Awaited< + ReturnType + >, + TError, + TData + > + > & + Pick< + UndefinedInitialDataOptions< + Awaited< + ReturnType + >, + TError, + Awaited< + ReturnType + > + >, + "initialData" + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +}; +export function useGetMyMembershipApiV1OrganizationsMeMemberGet< + TData = Awaited< + ReturnType + >, + TError = unknown, +>( + options?: { + query?: Partial< + UseQueryOptions< + Awaited< + ReturnType + >, + TError, + TData + > + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +}; +/** + * @summary Get My Membership + */ + +export function useGetMyMembershipApiV1OrganizationsMeMemberGet< + TData = Awaited< + ReturnType + >, + TError = unknown, +>( + options?: { + query?: Partial< + UseQueryOptions< + Awaited< + ReturnType + >, + TError, + TData + > + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +} { + const queryOptions = + getGetMyMembershipApiV1OrganizationsMeMemberGetQueryOptions(options); + + const query = useQuery(queryOptions, queryClient) as UseQueryResult< + TData, + TError + > & { queryKey: DataTag }; + + return { ...query, queryKey: queryOptions.queryKey }; +} + +/** + * List members for the active organization. + * @summary List Org Members + */ +export type listOrgMembersApiV1OrganizationsMeMembersGetResponse200 = { + data: LimitOffsetPageTypeVarCustomizedOrganizationMemberRead; + status: 200; +}; + +export type listOrgMembersApiV1OrganizationsMeMembersGetResponse422 = { + data: HTTPValidationError; + status: 422; +}; + +export type listOrgMembersApiV1OrganizationsMeMembersGetResponseSuccess = + listOrgMembersApiV1OrganizationsMeMembersGetResponse200 & { + headers: Headers; + }; +export type listOrgMembersApiV1OrganizationsMeMembersGetResponseError = + listOrgMembersApiV1OrganizationsMeMembersGetResponse422 & { + headers: Headers; + }; + +export type listOrgMembersApiV1OrganizationsMeMembersGetResponse = + | listOrgMembersApiV1OrganizationsMeMembersGetResponseSuccess + | listOrgMembersApiV1OrganizationsMeMembersGetResponseError; + +export const getListOrgMembersApiV1OrganizationsMeMembersGetUrl = ( + params?: ListOrgMembersApiV1OrganizationsMeMembersGetParams, +) => { + const normalizedParams = new URLSearchParams(); + + Object.entries(params || {}).forEach(([key, value]) => { + if (value !== undefined) { + normalizedParams.append(key, value === null ? "null" : value.toString()); + } + }); + + const stringifiedParams = normalizedParams.toString(); + + return stringifiedParams.length > 0 + ? `/api/v1/organizations/me/members?${stringifiedParams}` + : `/api/v1/organizations/me/members`; +}; + +export const listOrgMembersApiV1OrganizationsMeMembersGet = async ( + params?: ListOrgMembersApiV1OrganizationsMeMembersGetParams, + options?: RequestInit, +): Promise => { + return customFetch( + getListOrgMembersApiV1OrganizationsMeMembersGetUrl(params), + { + ...options, + method: "GET", + }, + ); +}; + +export const getListOrgMembersApiV1OrganizationsMeMembersGetQueryKey = ( + params?: ListOrgMembersApiV1OrganizationsMeMembersGetParams, +) => { + return [ + `/api/v1/organizations/me/members`, + ...(params ? [params] : []), + ] as const; +}; + +export const getListOrgMembersApiV1OrganizationsMeMembersGetQueryOptions = < + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + params?: ListOrgMembersApiV1OrganizationsMeMembersGetParams, + options?: { + query?: Partial< + UseQueryOptions< + Awaited< + ReturnType + >, + TError, + TData + > + >; + request?: SecondParameter; + }, +) => { + const { query: queryOptions, request: requestOptions } = options ?? {}; + + const queryKey = + queryOptions?.queryKey ?? + getListOrgMembersApiV1OrganizationsMeMembersGetQueryKey(params); + + const queryFn: QueryFunction< + Awaited> + > = ({ signal }) => + listOrgMembersApiV1OrganizationsMeMembersGet(params, { + signal, + ...requestOptions, + }); + + return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< + Awaited>, + TError, + TData + > & { queryKey: DataTag }; +}; + +export type ListOrgMembersApiV1OrganizationsMeMembersGetQueryResult = + NonNullable< + Awaited> + >; +export type ListOrgMembersApiV1OrganizationsMeMembersGetQueryError = + HTTPValidationError; + +export function useListOrgMembersApiV1OrganizationsMeMembersGet< + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + params: undefined | ListOrgMembersApiV1OrganizationsMeMembersGetParams, + options: { + query: Partial< + UseQueryOptions< + Awaited< + ReturnType + >, + TError, + TData + > + > & + Pick< + DefinedInitialDataOptions< + Awaited< + ReturnType + >, + TError, + Awaited< + ReturnType + > + >, + "initialData" + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): DefinedUseQueryResult & { + queryKey: DataTag; +}; +export function useListOrgMembersApiV1OrganizationsMeMembersGet< + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + params?: ListOrgMembersApiV1OrganizationsMeMembersGetParams, + options?: { + query?: Partial< + UseQueryOptions< + Awaited< + ReturnType + >, + TError, + TData + > + > & + Pick< + UndefinedInitialDataOptions< + Awaited< + ReturnType + >, + TError, + Awaited< + ReturnType + > + >, + "initialData" + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +}; +export function useListOrgMembersApiV1OrganizationsMeMembersGet< + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + params?: ListOrgMembersApiV1OrganizationsMeMembersGetParams, + options?: { + query?: Partial< + UseQueryOptions< + Awaited< + ReturnType + >, + TError, + TData + > + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +}; +/** + * @summary List Org Members + */ + +export function useListOrgMembersApiV1OrganizationsMeMembersGet< + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + params?: ListOrgMembersApiV1OrganizationsMeMembersGetParams, + options?: { + query?: Partial< + UseQueryOptions< + Awaited< + ReturnType + >, + TError, + TData + > + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +} { + const queryOptions = + getListOrgMembersApiV1OrganizationsMeMembersGetQueryOptions( + params, + options, + ); + + const query = useQuery(queryOptions, queryClient) as UseQueryResult< + TData, + TError + > & { queryKey: DataTag }; + + return { ...query, queryKey: queryOptions.queryKey }; +} + +/** + * Remove a member from the active organization. + * @summary Remove Org Member + */ +export type removeOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteResponse200 = + { + data: OkResponse; + status: 200; + }; + +export type removeOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteResponse422 = + { + data: HTTPValidationError; + status: 422; + }; + +export type removeOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteResponseSuccess = + removeOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteResponse200 & { + headers: Headers; + }; +export type removeOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteResponseError = + removeOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteResponse422 & { + headers: Headers; + }; + +export type removeOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteResponse = + | removeOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteResponseSuccess + | removeOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteResponseError; + +export const getRemoveOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteUrl = ( + memberId: string, +) => { + return `/api/v1/organizations/me/members/${memberId}`; +}; + +export const removeOrgMemberApiV1OrganizationsMeMembersMemberIdDelete = async ( + memberId: string, + options?: RequestInit, +): Promise => { + return customFetch( + getRemoveOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteUrl(memberId), + { + ...options, + method: "DELETE", + }, + ); +}; + +export const getRemoveOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteMutationOptions = (options?: { mutation?: UseMutationOptions< Awaited< - ReturnType + ReturnType< + typeof removeOrgMemberApiV1OrganizationsMeMembersMemberIdDelete + > >, TError, - { data: OrganizationInviteAccept }, + { memberId: string }, TContext >; request?: SecondParameter; }): UseMutationOptions< Awaited< - ReturnType + ReturnType< + typeof removeOrgMemberApiV1OrganizationsMeMembersMemberIdDelete + > >, TError, - { data: OrganizationInviteAccept }, + { memberId: string }, TContext > => { - const mutationKey = ["acceptOrgInviteApiV1OrganizationsInvitesAcceptPost"]; + const mutationKey = [ + "removeOrgMemberApiV1OrganizationsMeMembersMemberIdDelete", + ]; const { mutation: mutationOptions, request: requestOptions } = options ? options.mutation && "mutationKey" in options.mutation && @@ -2532,13 +1964,422 @@ export const getAcceptOrgInviteApiV1OrganizationsInvitesAcceptPostMutationOption const mutationFn: MutationFunction< Awaited< - ReturnType + ReturnType< + typeof removeOrgMemberApiV1OrganizationsMeMembersMemberIdDelete + > >, - { data: OrganizationInviteAccept } + { memberId: string } > = (props) => { - const { data } = props ?? {}; + const { memberId } = props ?? {}; - return acceptOrgInviteApiV1OrganizationsInvitesAcceptPost( + return removeOrgMemberApiV1OrganizationsMeMembersMemberIdDelete( + memberId, + requestOptions, + ); + }; + + return { mutationFn, ...mutationOptions }; + }; + +export type RemoveOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteMutationResult = + NonNullable< + Awaited< + ReturnType< + typeof removeOrgMemberApiV1OrganizationsMeMembersMemberIdDelete + > + > + >; + +export type RemoveOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteMutationError = + HTTPValidationError; + +/** + * @summary Remove Org Member + */ +export const useRemoveOrgMemberApiV1OrganizationsMeMembersMemberIdDelete = < + TError = HTTPValidationError, + TContext = unknown, +>( + options?: { + mutation?: UseMutationOptions< + Awaited< + ReturnType< + typeof removeOrgMemberApiV1OrganizationsMeMembersMemberIdDelete + > + >, + TError, + { memberId: string }, + TContext + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseMutationResult< + Awaited< + ReturnType + >, + TError, + { memberId: string }, + TContext +> => { + return useMutation( + getRemoveOrgMemberApiV1OrganizationsMeMembersMemberIdDeleteMutationOptions( + options, + ), + queryClient, + ); +}; +/** + * Get a specific organization member by id. + * @summary Get Org Member + */ +export type getOrgMemberApiV1OrganizationsMeMembersMemberIdGetResponse200 = { + data: OrganizationMemberRead; + status: 200; +}; + +export type getOrgMemberApiV1OrganizationsMeMembersMemberIdGetResponse422 = { + data: HTTPValidationError; + status: 422; +}; + +export type getOrgMemberApiV1OrganizationsMeMembersMemberIdGetResponseSuccess = + getOrgMemberApiV1OrganizationsMeMembersMemberIdGetResponse200 & { + headers: Headers; + }; +export type getOrgMemberApiV1OrganizationsMeMembersMemberIdGetResponseError = + getOrgMemberApiV1OrganizationsMeMembersMemberIdGetResponse422 & { + headers: Headers; + }; + +export type getOrgMemberApiV1OrganizationsMeMembersMemberIdGetResponse = + | getOrgMemberApiV1OrganizationsMeMembersMemberIdGetResponseSuccess + | getOrgMemberApiV1OrganizationsMeMembersMemberIdGetResponseError; + +export const getGetOrgMemberApiV1OrganizationsMeMembersMemberIdGetUrl = ( + memberId: string, +) => { + return `/api/v1/organizations/me/members/${memberId}`; +}; + +export const getOrgMemberApiV1OrganizationsMeMembersMemberIdGet = async ( + memberId: string, + options?: RequestInit, +): Promise => { + return customFetch( + getGetOrgMemberApiV1OrganizationsMeMembersMemberIdGetUrl(memberId), + { + ...options, + method: "GET", + }, + ); +}; + +export const getGetOrgMemberApiV1OrganizationsMeMembersMemberIdGetQueryKey = ( + memberId: string, +) => { + return [`/api/v1/organizations/me/members/${memberId}`] as const; +}; + +export const getGetOrgMemberApiV1OrganizationsMeMembersMemberIdGetQueryOptions = + < + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, + >( + memberId: string, + options?: { + query?: Partial< + UseQueryOptions< + Awaited< + ReturnType< + typeof getOrgMemberApiV1OrganizationsMeMembersMemberIdGet + > + >, + TError, + TData + > + >; + request?: SecondParameter; + }, + ) => { + const { query: queryOptions, request: requestOptions } = options ?? {}; + + const queryKey = + queryOptions?.queryKey ?? + getGetOrgMemberApiV1OrganizationsMeMembersMemberIdGetQueryKey(memberId); + + const queryFn: QueryFunction< + Awaited< + ReturnType + > + > = ({ signal }) => + getOrgMemberApiV1OrganizationsMeMembersMemberIdGet(memberId, { + signal, + ...requestOptions, + }); + + return { + queryKey, + queryFn, + enabled: !!memberId, + ...queryOptions, + } as UseQueryOptions< + Awaited< + ReturnType + >, + TError, + TData + > & { queryKey: DataTag }; + }; + +export type GetOrgMemberApiV1OrganizationsMeMembersMemberIdGetQueryResult = + NonNullable< + Awaited< + ReturnType + > + >; +export type GetOrgMemberApiV1OrganizationsMeMembersMemberIdGetQueryError = + HTTPValidationError; + +export function useGetOrgMemberApiV1OrganizationsMeMembersMemberIdGet< + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + memberId: string, + options: { + query: Partial< + UseQueryOptions< + Awaited< + ReturnType + >, + TError, + TData + > + > & + Pick< + DefinedInitialDataOptions< + Awaited< + ReturnType< + typeof getOrgMemberApiV1OrganizationsMeMembersMemberIdGet + > + >, + TError, + Awaited< + ReturnType< + typeof getOrgMemberApiV1OrganizationsMeMembersMemberIdGet + > + > + >, + "initialData" + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): DefinedUseQueryResult & { + queryKey: DataTag; +}; +export function useGetOrgMemberApiV1OrganizationsMeMembersMemberIdGet< + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + memberId: string, + options?: { + query?: Partial< + UseQueryOptions< + Awaited< + ReturnType + >, + TError, + TData + > + > & + Pick< + UndefinedInitialDataOptions< + Awaited< + ReturnType< + typeof getOrgMemberApiV1OrganizationsMeMembersMemberIdGet + > + >, + TError, + Awaited< + ReturnType< + typeof getOrgMemberApiV1OrganizationsMeMembersMemberIdGet + > + > + >, + "initialData" + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +}; +export function useGetOrgMemberApiV1OrganizationsMeMembersMemberIdGet< + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + memberId: string, + options?: { + query?: Partial< + UseQueryOptions< + Awaited< + ReturnType + >, + TError, + TData + > + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +}; +/** + * @summary Get Org Member + */ + +export function useGetOrgMemberApiV1OrganizationsMeMembersMemberIdGet< + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + memberId: string, + options?: { + query?: Partial< + UseQueryOptions< + Awaited< + ReturnType + >, + TError, + TData + > + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +} { + const queryOptions = + getGetOrgMemberApiV1OrganizationsMeMembersMemberIdGetQueryOptions( + memberId, + options, + ); + + const query = useQuery(queryOptions, queryClient) as UseQueryResult< + TData, + TError + > & { queryKey: DataTag }; + + return { ...query, queryKey: queryOptions.queryKey }; +} + +/** + * Update a member's role in the organization. + * @summary Update Org Member + */ +export type updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchResponse200 = + { + data: OrganizationMemberRead; + status: 200; + }; + +export type updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchResponse422 = + { + data: HTTPValidationError; + status: 422; + }; + +export type updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchResponseSuccess = + updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchResponse200 & { + headers: Headers; + }; +export type updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchResponseError = + updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchResponse422 & { + headers: Headers; + }; + +export type updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchResponse = + | updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchResponseSuccess + | updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchResponseError; + +export const getUpdateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchUrl = ( + memberId: string, +) => { + return `/api/v1/organizations/me/members/${memberId}`; +}; + +export const updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatch = async ( + memberId: string, + organizationMemberUpdate: OrganizationMemberUpdate, + options?: RequestInit, +): Promise => { + return customFetch( + getUpdateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchUrl(memberId), + { + ...options, + method: "PATCH", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(organizationMemberUpdate), + }, + ); +}; + +export const getUpdateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchMutationOptions = + (options?: { + mutation?: UseMutationOptions< + Awaited< + ReturnType< + typeof updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatch + > + >, + TError, + { memberId: string; data: OrganizationMemberUpdate }, + TContext + >; + request?: SecondParameter; + }): UseMutationOptions< + Awaited< + ReturnType + >, + TError, + { memberId: string; data: OrganizationMemberUpdate }, + TContext + > => { + const mutationKey = [ + "updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatch", + ]; + const { mutation: mutationOptions, request: requestOptions } = options + ? options.mutation && + "mutationKey" in options.mutation && + options.mutation.mutationKey + ? options + : { ...options, mutation: { ...options.mutation, mutationKey } } + : { mutation: { mutationKey }, request: undefined }; + + const mutationFn: MutationFunction< + Awaited< + ReturnType< + typeof updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatch + > + >, + { memberId: string; data: OrganizationMemberUpdate } + > = (props) => { + const { memberId, data } = props ?? {}; + + return updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatch( + memberId, data, requestOptions, ); @@ -2547,31 +2388,33 @@ export const getAcceptOrgInviteApiV1OrganizationsInvitesAcceptPostMutationOption return { mutationFn, ...mutationOptions }; }; -export type AcceptOrgInviteApiV1OrganizationsInvitesAcceptPostMutationResult = +export type UpdateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchMutationResult = NonNullable< Awaited< - ReturnType + ReturnType > >; -export type AcceptOrgInviteApiV1OrganizationsInvitesAcceptPostMutationBody = - OrganizationInviteAccept; -export type AcceptOrgInviteApiV1OrganizationsInvitesAcceptPostMutationError = +export type UpdateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchMutationBody = + OrganizationMemberUpdate; +export type UpdateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchMutationError = HTTPValidationError; /** - * @summary Accept Org Invite + * @summary Update Org Member */ -export const useAcceptOrgInviteApiV1OrganizationsInvitesAcceptPost = < +export const useUpdateOrgMemberApiV1OrganizationsMeMembersMemberIdPatch = < TError = HTTPValidationError, TContext = unknown, >( options?: { mutation?: UseMutationOptions< Awaited< - ReturnType + ReturnType< + typeof updateOrgMemberApiV1OrganizationsMeMembersMemberIdPatch + > >, TError, - { data: OrganizationInviteAccept }, + { memberId: string; data: OrganizationMemberUpdate }, TContext >; request?: SecondParameter; @@ -2579,16 +2422,173 @@ export const useAcceptOrgInviteApiV1OrganizationsInvitesAcceptPost = < queryClient?: QueryClient, ): UseMutationResult< Awaited< - ReturnType + ReturnType >, TError, - { data: OrganizationInviteAccept }, + { memberId: string; data: OrganizationMemberUpdate }, TContext > => { return useMutation( - getAcceptOrgInviteApiV1OrganizationsInvitesAcceptPostMutationOptions( + getUpdateOrgMemberApiV1OrganizationsMeMembersMemberIdPatchMutationOptions( options, ), queryClient, ); }; +/** + * Update board-level access settings for a member. + * @summary Update Member Access + */ +export type updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutResponse200 = + { + data: OrganizationMemberRead; + status: 200; + }; + +export type updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutResponse422 = + { + data: HTTPValidationError; + status: 422; + }; + +export type updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutResponseSuccess = + updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutResponse200 & { + headers: Headers; + }; +export type updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutResponseError = + updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutResponse422 & { + headers: Headers; + }; + +export type updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutResponse = + + | updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutResponseSuccess + | updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutResponseError; + +export const getUpdateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutUrl = + (memberId: string) => { + return `/api/v1/organizations/me/members/${memberId}/access`; + }; + +export const updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPut = + async ( + memberId: string, + organizationMemberAccessUpdate: OrganizationMemberAccessUpdate, + options?: RequestInit, + ): Promise => { + return customFetch( + getUpdateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutUrl( + memberId, + ), + { + ...options, + method: "PUT", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(organizationMemberAccessUpdate), + }, + ); + }; + +export const getUpdateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutMutationOptions = + (options?: { + mutation?: UseMutationOptions< + Awaited< + ReturnType< + typeof updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPut + > + >, + TError, + { memberId: string; data: OrganizationMemberAccessUpdate }, + TContext + >; + request?: SecondParameter; + }): UseMutationOptions< + Awaited< + ReturnType< + typeof updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPut + > + >, + TError, + { memberId: string; data: OrganizationMemberAccessUpdate }, + TContext + > => { + const mutationKey = [ + "updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPut", + ]; + const { mutation: mutationOptions, request: requestOptions } = options + ? options.mutation && + "mutationKey" in options.mutation && + options.mutation.mutationKey + ? options + : { ...options, mutation: { ...options.mutation, mutationKey } } + : { mutation: { mutationKey }, request: undefined }; + + const mutationFn: MutationFunction< + Awaited< + ReturnType< + typeof updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPut + > + >, + { memberId: string; data: OrganizationMemberAccessUpdate } + > = (props) => { + const { memberId, data } = props ?? {}; + + return updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPut( + memberId, + data, + requestOptions, + ); + }; + + return { mutationFn, ...mutationOptions }; + }; + +export type UpdateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutMutationResult = + NonNullable< + Awaited< + ReturnType< + typeof updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPut + > + > + >; +export type UpdateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutMutationBody = + OrganizationMemberAccessUpdate; +export type UpdateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutMutationError = + HTTPValidationError; + +/** + * @summary Update Member Access + */ +export const useUpdateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPut = + ( + options?: { + mutation?: UseMutationOptions< + Awaited< + ReturnType< + typeof updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPut + > + >, + TError, + { memberId: string; data: OrganizationMemberAccessUpdate }, + TContext + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, + ): UseMutationResult< + Awaited< + ReturnType< + typeof updateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPut + > + >, + TError, + { memberId: string; data: OrganizationMemberAccessUpdate }, + TContext + > => { + return useMutation( + getUpdateMemberAccessApiV1OrganizationsMeMembersMemberIdAccessPutMutationOptions( + options, + ), + queryClient, + ); + }; diff --git a/frontend/src/api/generated/souls-directory/souls-directory.ts b/frontend/src/api/generated/souls-directory/souls-directory.ts index c6969a91..7a743f40 100644 --- a/frontend/src/api/generated/souls-directory/souls-directory.ts +++ b/frontend/src/api/generated/souls-directory/souls-directory.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 diff --git a/frontend/src/api/generated/tags/tags.ts b/frontend/src/api/generated/tags/tags.ts new file mode 100644 index 00000000..daab1aa8 --- /dev/null +++ b/frontend/src/api/generated/tags/tags.ts @@ -0,0 +1,798 @@ +/** + * Generated by orval v8.3.0 🍺 + * Do not edit manually. + * Mission Control API + * OpenAPI spec version: 0.1.0 + */ +import { useMutation, useQuery } from "@tanstack/react-query"; +import type { + DataTag, + DefinedInitialDataOptions, + DefinedUseQueryResult, + MutationFunction, + QueryClient, + QueryFunction, + QueryKey, + UndefinedInitialDataOptions, + UseMutationOptions, + UseMutationResult, + UseQueryOptions, + UseQueryResult, +} from "@tanstack/react-query"; + +import type { + HTTPValidationError, + LimitOffsetPageTypeVarCustomizedTaskTagRead, + ListTaskTagsApiV1TagsGetParams, + OkResponse, + TaskTagCreate, + TaskTagRead, + TaskTagUpdate, +} from ".././model"; + +import { customFetch } from "../../mutator"; + +type SecondParameter unknown> = Parameters[1]; + +/** + * List task tags for the active organization. + * @summary List Task Tags + */ +export type listTaskTagsApiV1TagsGetResponse200 = { + data: LimitOffsetPageTypeVarCustomizedTaskTagRead; + status: 200; +}; + +export type listTaskTagsApiV1TagsGetResponse422 = { + data: HTTPValidationError; + status: 422; +}; + +export type listTaskTagsApiV1TagsGetResponseSuccess = + listTaskTagsApiV1TagsGetResponse200 & { + headers: Headers; + }; +export type listTaskTagsApiV1TagsGetResponseError = + listTaskTagsApiV1TagsGetResponse422 & { + headers: Headers; + }; + +export type listTaskTagsApiV1TagsGetResponse = + | listTaskTagsApiV1TagsGetResponseSuccess + | listTaskTagsApiV1TagsGetResponseError; + +export const getListTaskTagsApiV1TagsGetUrl = ( + params?: ListTaskTagsApiV1TagsGetParams, +) => { + const normalizedParams = new URLSearchParams(); + + Object.entries(params || {}).forEach(([key, value]) => { + if (value !== undefined) { + normalizedParams.append(key, value === null ? "null" : value.toString()); + } + }); + + const stringifiedParams = normalizedParams.toString(); + + return stringifiedParams.length > 0 + ? `/api/v1/tags?${stringifiedParams}` + : `/api/v1/tags`; +}; + +export const listTaskTagsApiV1TagsGet = async ( + params?: ListTaskTagsApiV1TagsGetParams, + options?: RequestInit, +): Promise => { + return customFetch( + getListTaskTagsApiV1TagsGetUrl(params), + { + ...options, + method: "GET", + }, + ); +}; + +export const getListTaskTagsApiV1TagsGetQueryKey = ( + params?: ListTaskTagsApiV1TagsGetParams, +) => { + return [`/api/v1/tags`, ...(params ? [params] : [])] as const; +}; + +export const getListTaskTagsApiV1TagsGetQueryOptions = < + TData = Awaited>, + TError = HTTPValidationError, +>( + params?: ListTaskTagsApiV1TagsGetParams, + options?: { + query?: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + >; + request?: SecondParameter; + }, +) => { + const { query: queryOptions, request: requestOptions } = options ?? {}; + + const queryKey = + queryOptions?.queryKey ?? getListTaskTagsApiV1TagsGetQueryKey(params); + + const queryFn: QueryFunction< + Awaited> + > = ({ signal }) => + listTaskTagsApiV1TagsGet(params, { signal, ...requestOptions }); + + return { queryKey, queryFn, ...queryOptions } as UseQueryOptions< + Awaited>, + TError, + TData + > & { queryKey: DataTag }; +}; + +export type ListTaskTagsApiV1TagsGetQueryResult = NonNullable< + Awaited> +>; +export type ListTaskTagsApiV1TagsGetQueryError = HTTPValidationError; + +export function useListTaskTagsApiV1TagsGet< + TData = Awaited>, + TError = HTTPValidationError, +>( + params: undefined | ListTaskTagsApiV1TagsGetParams, + options: { + query: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + > & + Pick< + DefinedInitialDataOptions< + Awaited>, + TError, + Awaited> + >, + "initialData" + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): DefinedUseQueryResult & { + queryKey: DataTag; +}; +export function useListTaskTagsApiV1TagsGet< + TData = Awaited>, + TError = HTTPValidationError, +>( + params?: ListTaskTagsApiV1TagsGetParams, + options?: { + query?: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + > & + Pick< + UndefinedInitialDataOptions< + Awaited>, + TError, + Awaited> + >, + "initialData" + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +}; +export function useListTaskTagsApiV1TagsGet< + TData = Awaited>, + TError = HTTPValidationError, +>( + params?: ListTaskTagsApiV1TagsGetParams, + options?: { + query?: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +}; +/** + * @summary List Task Tags + */ + +export function useListTaskTagsApiV1TagsGet< + TData = Awaited>, + TError = HTTPValidationError, +>( + params?: ListTaskTagsApiV1TagsGetParams, + options?: { + query?: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +} { + const queryOptions = getListTaskTagsApiV1TagsGetQueryOptions(params, options); + + const query = useQuery(queryOptions, queryClient) as UseQueryResult< + TData, + TError + > & { queryKey: DataTag }; + + return { ...query, queryKey: queryOptions.queryKey }; +} + +/** + * Create a task tag within the active organization. + * @summary Create Task Tag + */ +export type createTaskTagApiV1TagsPostResponse200 = { + data: TaskTagRead; + status: 200; +}; + +export type createTaskTagApiV1TagsPostResponse422 = { + data: HTTPValidationError; + status: 422; +}; + +export type createTaskTagApiV1TagsPostResponseSuccess = + createTaskTagApiV1TagsPostResponse200 & { + headers: Headers; + }; +export type createTaskTagApiV1TagsPostResponseError = + createTaskTagApiV1TagsPostResponse422 & { + headers: Headers; + }; + +export type createTaskTagApiV1TagsPostResponse = + | createTaskTagApiV1TagsPostResponseSuccess + | createTaskTagApiV1TagsPostResponseError; + +export const getCreateTaskTagApiV1TagsPostUrl = () => { + return `/api/v1/tags`; +}; + +export const createTaskTagApiV1TagsPost = async ( + taskTagCreate: TaskTagCreate, + options?: RequestInit, +): Promise => { + return customFetch( + getCreateTaskTagApiV1TagsPostUrl(), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(taskTagCreate), + }, + ); +}; + +export const getCreateTaskTagApiV1TagsPostMutationOptions = < + TError = HTTPValidationError, + TContext = unknown, +>(options?: { + mutation?: UseMutationOptions< + Awaited>, + TError, + { data: TaskTagCreate }, + TContext + >; + request?: SecondParameter; +}): UseMutationOptions< + Awaited>, + TError, + { data: TaskTagCreate }, + TContext +> => { + const mutationKey = ["createTaskTagApiV1TagsPost"]; + const { mutation: mutationOptions, request: requestOptions } = options + ? options.mutation && + "mutationKey" in options.mutation && + options.mutation.mutationKey + ? options + : { ...options, mutation: { ...options.mutation, mutationKey } } + : { mutation: { mutationKey }, request: undefined }; + + const mutationFn: MutationFunction< + Awaited>, + { data: TaskTagCreate } + > = (props) => { + const { data } = props ?? {}; + + return createTaskTagApiV1TagsPost(data, requestOptions); + }; + + return { mutationFn, ...mutationOptions }; +}; + +export type CreateTaskTagApiV1TagsPostMutationResult = NonNullable< + Awaited> +>; +export type CreateTaskTagApiV1TagsPostMutationBody = TaskTagCreate; +export type CreateTaskTagApiV1TagsPostMutationError = HTTPValidationError; + +/** + * @summary Create Task Tag + */ +export const useCreateTaskTagApiV1TagsPost = < + TError = HTTPValidationError, + TContext = unknown, +>( + options?: { + mutation?: UseMutationOptions< + Awaited>, + TError, + { data: TaskTagCreate }, + TContext + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseMutationResult< + Awaited>, + TError, + { data: TaskTagCreate }, + TContext +> => { + return useMutation( + getCreateTaskTagApiV1TagsPostMutationOptions(options), + queryClient, + ); +}; +/** + * Delete a task tag and remove all associated task-tag links. + * @summary Delete Task Tag + */ +export type deleteTaskTagApiV1TagsTagIdDeleteResponse200 = { + data: OkResponse; + status: 200; +}; + +export type deleteTaskTagApiV1TagsTagIdDeleteResponse422 = { + data: HTTPValidationError; + status: 422; +}; + +export type deleteTaskTagApiV1TagsTagIdDeleteResponseSuccess = + deleteTaskTagApiV1TagsTagIdDeleteResponse200 & { + headers: Headers; + }; +export type deleteTaskTagApiV1TagsTagIdDeleteResponseError = + deleteTaskTagApiV1TagsTagIdDeleteResponse422 & { + headers: Headers; + }; + +export type deleteTaskTagApiV1TagsTagIdDeleteResponse = + | deleteTaskTagApiV1TagsTagIdDeleteResponseSuccess + | deleteTaskTagApiV1TagsTagIdDeleteResponseError; + +export const getDeleteTaskTagApiV1TagsTagIdDeleteUrl = (tagId: string) => { + return `/api/v1/tags/${tagId}`; +}; + +export const deleteTaskTagApiV1TagsTagIdDelete = async ( + tagId: string, + options?: RequestInit, +): Promise => { + return customFetch( + getDeleteTaskTagApiV1TagsTagIdDeleteUrl(tagId), + { + ...options, + method: "DELETE", + }, + ); +}; + +export const getDeleteTaskTagApiV1TagsTagIdDeleteMutationOptions = < + TError = HTTPValidationError, + TContext = unknown, +>(options?: { + mutation?: UseMutationOptions< + Awaited>, + TError, + { tagId: string }, + TContext + >; + request?: SecondParameter; +}): UseMutationOptions< + Awaited>, + TError, + { tagId: string }, + TContext +> => { + const mutationKey = ["deleteTaskTagApiV1TagsTagIdDelete"]; + const { mutation: mutationOptions, request: requestOptions } = options + ? options.mutation && + "mutationKey" in options.mutation && + options.mutation.mutationKey + ? options + : { ...options, mutation: { ...options.mutation, mutationKey } } + : { mutation: { mutationKey }, request: undefined }; + + const mutationFn: MutationFunction< + Awaited>, + { tagId: string } + > = (props) => { + const { tagId } = props ?? {}; + + return deleteTaskTagApiV1TagsTagIdDelete(tagId, requestOptions); + }; + + return { mutationFn, ...mutationOptions }; +}; + +export type DeleteTaskTagApiV1TagsTagIdDeleteMutationResult = NonNullable< + Awaited> +>; + +export type DeleteTaskTagApiV1TagsTagIdDeleteMutationError = + HTTPValidationError; + +/** + * @summary Delete Task Tag + */ +export const useDeleteTaskTagApiV1TagsTagIdDelete = < + TError = HTTPValidationError, + TContext = unknown, +>( + options?: { + mutation?: UseMutationOptions< + Awaited>, + TError, + { tagId: string }, + TContext + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseMutationResult< + Awaited>, + TError, + { tagId: string }, + TContext +> => { + return useMutation( + getDeleteTaskTagApiV1TagsTagIdDeleteMutationOptions(options), + queryClient, + ); +}; +/** + * Get a single task tag in the active organization. + * @summary Get Task Tag + */ +export type getTaskTagApiV1TagsTagIdGetResponse200 = { + data: TaskTagRead; + status: 200; +}; + +export type getTaskTagApiV1TagsTagIdGetResponse422 = { + data: HTTPValidationError; + status: 422; +}; + +export type getTaskTagApiV1TagsTagIdGetResponseSuccess = + getTaskTagApiV1TagsTagIdGetResponse200 & { + headers: Headers; + }; +export type getTaskTagApiV1TagsTagIdGetResponseError = + getTaskTagApiV1TagsTagIdGetResponse422 & { + headers: Headers; + }; + +export type getTaskTagApiV1TagsTagIdGetResponse = + | getTaskTagApiV1TagsTagIdGetResponseSuccess + | getTaskTagApiV1TagsTagIdGetResponseError; + +export const getGetTaskTagApiV1TagsTagIdGetUrl = (tagId: string) => { + return `/api/v1/tags/${tagId}`; +}; + +export const getTaskTagApiV1TagsTagIdGet = async ( + tagId: string, + options?: RequestInit, +): Promise => { + return customFetch( + getGetTaskTagApiV1TagsTagIdGetUrl(tagId), + { + ...options, + method: "GET", + }, + ); +}; + +export const getGetTaskTagApiV1TagsTagIdGetQueryKey = (tagId: string) => { + return [`/api/v1/tags/${tagId}`] as const; +}; + +export const getGetTaskTagApiV1TagsTagIdGetQueryOptions = < + TData = Awaited>, + TError = HTTPValidationError, +>( + tagId: string, + options?: { + query?: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + >; + request?: SecondParameter; + }, +) => { + const { query: queryOptions, request: requestOptions } = options ?? {}; + + const queryKey = + queryOptions?.queryKey ?? getGetTaskTagApiV1TagsTagIdGetQueryKey(tagId); + + const queryFn: QueryFunction< + Awaited> + > = ({ signal }) => + getTaskTagApiV1TagsTagIdGet(tagId, { signal, ...requestOptions }); + + return { + queryKey, + queryFn, + enabled: !!tagId, + ...queryOptions, + } as UseQueryOptions< + Awaited>, + TError, + TData + > & { queryKey: DataTag }; +}; + +export type GetTaskTagApiV1TagsTagIdGetQueryResult = NonNullable< + Awaited> +>; +export type GetTaskTagApiV1TagsTagIdGetQueryError = HTTPValidationError; + +export function useGetTaskTagApiV1TagsTagIdGet< + TData = Awaited>, + TError = HTTPValidationError, +>( + tagId: string, + options: { + query: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + > & + Pick< + DefinedInitialDataOptions< + Awaited>, + TError, + Awaited> + >, + "initialData" + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): DefinedUseQueryResult & { + queryKey: DataTag; +}; +export function useGetTaskTagApiV1TagsTagIdGet< + TData = Awaited>, + TError = HTTPValidationError, +>( + tagId: string, + options?: { + query?: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + > & + Pick< + UndefinedInitialDataOptions< + Awaited>, + TError, + Awaited> + >, + "initialData" + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +}; +export function useGetTaskTagApiV1TagsTagIdGet< + TData = Awaited>, + TError = HTTPValidationError, +>( + tagId: string, + options?: { + query?: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +}; +/** + * @summary Get Task Tag + */ + +export function useGetTaskTagApiV1TagsTagIdGet< + TData = Awaited>, + TError = HTTPValidationError, +>( + tagId: string, + options?: { + query?: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +} { + const queryOptions = getGetTaskTagApiV1TagsTagIdGetQueryOptions( + tagId, + options, + ); + + const query = useQuery(queryOptions, queryClient) as UseQueryResult< + TData, + TError + > & { queryKey: DataTag }; + + return { ...query, queryKey: queryOptions.queryKey }; +} + +/** + * Update a task tag in the active organization. + * @summary Update Task Tag + */ +export type updateTaskTagApiV1TagsTagIdPatchResponse200 = { + data: TaskTagRead; + status: 200; +}; + +export type updateTaskTagApiV1TagsTagIdPatchResponse422 = { + data: HTTPValidationError; + status: 422; +}; + +export type updateTaskTagApiV1TagsTagIdPatchResponseSuccess = + updateTaskTagApiV1TagsTagIdPatchResponse200 & { + headers: Headers; + }; +export type updateTaskTagApiV1TagsTagIdPatchResponseError = + updateTaskTagApiV1TagsTagIdPatchResponse422 & { + headers: Headers; + }; + +export type updateTaskTagApiV1TagsTagIdPatchResponse = + | updateTaskTagApiV1TagsTagIdPatchResponseSuccess + | updateTaskTagApiV1TagsTagIdPatchResponseError; + +export const getUpdateTaskTagApiV1TagsTagIdPatchUrl = (tagId: string) => { + return `/api/v1/tags/${tagId}`; +}; + +export const updateTaskTagApiV1TagsTagIdPatch = async ( + tagId: string, + taskTagUpdate: TaskTagUpdate, + options?: RequestInit, +): Promise => { + return customFetch( + getUpdateTaskTagApiV1TagsTagIdPatchUrl(tagId), + { + ...options, + method: "PATCH", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(taskTagUpdate), + }, + ); +}; + +export const getUpdateTaskTagApiV1TagsTagIdPatchMutationOptions = < + TError = HTTPValidationError, + TContext = unknown, +>(options?: { + mutation?: UseMutationOptions< + Awaited>, + TError, + { tagId: string; data: TaskTagUpdate }, + TContext + >; + request?: SecondParameter; +}): UseMutationOptions< + Awaited>, + TError, + { tagId: string; data: TaskTagUpdate }, + TContext +> => { + const mutationKey = ["updateTaskTagApiV1TagsTagIdPatch"]; + const { mutation: mutationOptions, request: requestOptions } = options + ? options.mutation && + "mutationKey" in options.mutation && + options.mutation.mutationKey + ? options + : { ...options, mutation: { ...options.mutation, mutationKey } } + : { mutation: { mutationKey }, request: undefined }; + + const mutationFn: MutationFunction< + Awaited>, + { tagId: string; data: TaskTagUpdate } + > = (props) => { + const { tagId, data } = props ?? {}; + + return updateTaskTagApiV1TagsTagIdPatch(tagId, data, requestOptions); + }; + + return { mutationFn, ...mutationOptions }; +}; + +export type UpdateTaskTagApiV1TagsTagIdPatchMutationResult = NonNullable< + Awaited> +>; +export type UpdateTaskTagApiV1TagsTagIdPatchMutationBody = TaskTagUpdate; +export type UpdateTaskTagApiV1TagsTagIdPatchMutationError = HTTPValidationError; + +/** + * @summary Update Task Tag + */ +export const useUpdateTaskTagApiV1TagsTagIdPatch = < + TError = HTTPValidationError, + TContext = unknown, +>( + options?: { + mutation?: UseMutationOptions< + Awaited>, + TError, + { tagId: string; data: TaskTagUpdate }, + TContext + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseMutationResult< + Awaited>, + TError, + { tagId: string; data: TaskTagUpdate }, + TContext +> => { + return useMutation( + getUpdateTaskTagApiV1TagsTagIdPatchMutationOptions(options), + queryClient, + ); +}; diff --git a/frontend/src/api/generated/tasks/tasks.ts b/frontend/src/api/generated/tasks/tasks.ts index 356b64b5..cf1f6ac2 100644 --- a/frontend/src/api/generated/tasks/tasks.ts +++ b/frontend/src/api/generated/tasks/tasks.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -40,259 +40,6 @@ import { customFetch } from "../../mutator"; type SecondParameter unknown> = Parameters[1]; -/** - * Stream task and task-comment events as SSE payloads. - * @summary Stream Tasks - */ -export type streamTasksApiV1BoardsBoardIdTasksStreamGetResponse200 = { - data: unknown; - status: 200; -}; - -export type streamTasksApiV1BoardsBoardIdTasksStreamGetResponse422 = { - data: HTTPValidationError; - status: 422; -}; - -export type streamTasksApiV1BoardsBoardIdTasksStreamGetResponseSuccess = - streamTasksApiV1BoardsBoardIdTasksStreamGetResponse200 & { - headers: Headers; - }; -export type streamTasksApiV1BoardsBoardIdTasksStreamGetResponseError = - streamTasksApiV1BoardsBoardIdTasksStreamGetResponse422 & { - headers: Headers; - }; - -export type streamTasksApiV1BoardsBoardIdTasksStreamGetResponse = - | streamTasksApiV1BoardsBoardIdTasksStreamGetResponseSuccess - | streamTasksApiV1BoardsBoardIdTasksStreamGetResponseError; - -export const getStreamTasksApiV1BoardsBoardIdTasksStreamGetUrl = ( - boardId: string, - params?: StreamTasksApiV1BoardsBoardIdTasksStreamGetParams, -) => { - const normalizedParams = new URLSearchParams(); - - Object.entries(params || {}).forEach(([key, value]) => { - if (value !== undefined) { - normalizedParams.append(key, value === null ? "null" : value.toString()); - } - }); - - const stringifiedParams = normalizedParams.toString(); - - return stringifiedParams.length > 0 - ? `/api/v1/boards/${boardId}/tasks/stream?${stringifiedParams}` - : `/api/v1/boards/${boardId}/tasks/stream`; -}; - -export const streamTasksApiV1BoardsBoardIdTasksStreamGet = async ( - boardId: string, - params?: StreamTasksApiV1BoardsBoardIdTasksStreamGetParams, - options?: RequestInit, -): Promise => { - return customFetch( - getStreamTasksApiV1BoardsBoardIdTasksStreamGetUrl(boardId, params), - { - ...options, - method: "GET", - }, - ); -}; - -export const getStreamTasksApiV1BoardsBoardIdTasksStreamGetQueryKey = ( - boardId: string, - params?: StreamTasksApiV1BoardsBoardIdTasksStreamGetParams, -) => { - return [ - `/api/v1/boards/${boardId}/tasks/stream`, - ...(params ? [params] : []), - ] as const; -}; - -export const getStreamTasksApiV1BoardsBoardIdTasksStreamGetQueryOptions = < - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - boardId: string, - params?: StreamTasksApiV1BoardsBoardIdTasksStreamGetParams, - options?: { - query?: Partial< - UseQueryOptions< - Awaited>, - TError, - TData - > - >; - request?: SecondParameter; - }, -) => { - const { query: queryOptions, request: requestOptions } = options ?? {}; - - const queryKey = - queryOptions?.queryKey ?? - getStreamTasksApiV1BoardsBoardIdTasksStreamGetQueryKey(boardId, params); - - const queryFn: QueryFunction< - Awaited> - > = ({ signal }) => - streamTasksApiV1BoardsBoardIdTasksStreamGet(boardId, params, { - signal, - ...requestOptions, - }); - - return { - queryKey, - queryFn, - enabled: !!boardId, - ...queryOptions, - } as UseQueryOptions< - Awaited>, - TError, - TData - > & { queryKey: DataTag }; -}; - -export type StreamTasksApiV1BoardsBoardIdTasksStreamGetQueryResult = - NonNullable< - Awaited> - >; -export type StreamTasksApiV1BoardsBoardIdTasksStreamGetQueryError = - HTTPValidationError; - -export function useStreamTasksApiV1BoardsBoardIdTasksStreamGet< - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - boardId: string, - params: undefined | StreamTasksApiV1BoardsBoardIdTasksStreamGetParams, - options: { - query: Partial< - UseQueryOptions< - Awaited>, - TError, - TData - > - > & - Pick< - DefinedInitialDataOptions< - Awaited< - ReturnType - >, - TError, - Awaited< - ReturnType - > - >, - "initialData" - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): DefinedUseQueryResult & { - queryKey: DataTag; -}; -export function useStreamTasksApiV1BoardsBoardIdTasksStreamGet< - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - boardId: string, - params?: StreamTasksApiV1BoardsBoardIdTasksStreamGetParams, - options?: { - query?: Partial< - UseQueryOptions< - Awaited>, - TError, - TData - > - > & - Pick< - UndefinedInitialDataOptions< - Awaited< - ReturnType - >, - TError, - Awaited< - ReturnType - > - >, - "initialData" - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -}; -export function useStreamTasksApiV1BoardsBoardIdTasksStreamGet< - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - boardId: string, - params?: StreamTasksApiV1BoardsBoardIdTasksStreamGetParams, - options?: { - query?: Partial< - UseQueryOptions< - Awaited>, - TError, - TData - > - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -}; -/** - * @summary Stream Tasks - */ - -export function useStreamTasksApiV1BoardsBoardIdTasksStreamGet< - TData = Awaited< - ReturnType - >, - TError = HTTPValidationError, ->( - boardId: string, - params?: StreamTasksApiV1BoardsBoardIdTasksStreamGetParams, - options?: { - query?: Partial< - UseQueryOptions< - Awaited>, - TError, - TData - > - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseQueryResult & { - queryKey: DataTag; -} { - const queryOptions = - getStreamTasksApiV1BoardsBoardIdTasksStreamGetQueryOptions( - boardId, - params, - options, - ); - - const query = useQuery(queryOptions, queryClient) as UseQueryResult< - TData, - TError - > & { queryKey: DataTag }; - - return { ...query, queryKey: queryOptions.queryKey }; -} - /** * List board tasks with optional status and assignment filters. * @summary List Tasks @@ -655,6 +402,385 @@ export const useCreateTaskApiV1BoardsBoardIdTasksPost = < queryClient, ); }; +/** + * Stream task and task-comment events as SSE payloads. + * @summary Stream Tasks + */ +export type streamTasksApiV1BoardsBoardIdTasksStreamGetResponse200 = { + data: unknown; + status: 200; +}; + +export type streamTasksApiV1BoardsBoardIdTasksStreamGetResponse422 = { + data: HTTPValidationError; + status: 422; +}; + +export type streamTasksApiV1BoardsBoardIdTasksStreamGetResponseSuccess = + streamTasksApiV1BoardsBoardIdTasksStreamGetResponse200 & { + headers: Headers; + }; +export type streamTasksApiV1BoardsBoardIdTasksStreamGetResponseError = + streamTasksApiV1BoardsBoardIdTasksStreamGetResponse422 & { + headers: Headers; + }; + +export type streamTasksApiV1BoardsBoardIdTasksStreamGetResponse = + | streamTasksApiV1BoardsBoardIdTasksStreamGetResponseSuccess + | streamTasksApiV1BoardsBoardIdTasksStreamGetResponseError; + +export const getStreamTasksApiV1BoardsBoardIdTasksStreamGetUrl = ( + boardId: string, + params?: StreamTasksApiV1BoardsBoardIdTasksStreamGetParams, +) => { + const normalizedParams = new URLSearchParams(); + + Object.entries(params || {}).forEach(([key, value]) => { + if (value !== undefined) { + normalizedParams.append(key, value === null ? "null" : value.toString()); + } + }); + + const stringifiedParams = normalizedParams.toString(); + + return stringifiedParams.length > 0 + ? `/api/v1/boards/${boardId}/tasks/stream?${stringifiedParams}` + : `/api/v1/boards/${boardId}/tasks/stream`; +}; + +export const streamTasksApiV1BoardsBoardIdTasksStreamGet = async ( + boardId: string, + params?: StreamTasksApiV1BoardsBoardIdTasksStreamGetParams, + options?: RequestInit, +): Promise => { + return customFetch( + getStreamTasksApiV1BoardsBoardIdTasksStreamGetUrl(boardId, params), + { + ...options, + method: "GET", + }, + ); +}; + +export const getStreamTasksApiV1BoardsBoardIdTasksStreamGetQueryKey = ( + boardId: string, + params?: StreamTasksApiV1BoardsBoardIdTasksStreamGetParams, +) => { + return [ + `/api/v1/boards/${boardId}/tasks/stream`, + ...(params ? [params] : []), + ] as const; +}; + +export const getStreamTasksApiV1BoardsBoardIdTasksStreamGetQueryOptions = < + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + boardId: string, + params?: StreamTasksApiV1BoardsBoardIdTasksStreamGetParams, + options?: { + query?: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + >; + request?: SecondParameter; + }, +) => { + const { query: queryOptions, request: requestOptions } = options ?? {}; + + const queryKey = + queryOptions?.queryKey ?? + getStreamTasksApiV1BoardsBoardIdTasksStreamGetQueryKey(boardId, params); + + const queryFn: QueryFunction< + Awaited> + > = ({ signal }) => + streamTasksApiV1BoardsBoardIdTasksStreamGet(boardId, params, { + signal, + ...requestOptions, + }); + + return { + queryKey, + queryFn, + enabled: !!boardId, + ...queryOptions, + } as UseQueryOptions< + Awaited>, + TError, + TData + > & { queryKey: DataTag }; +}; + +export type StreamTasksApiV1BoardsBoardIdTasksStreamGetQueryResult = + NonNullable< + Awaited> + >; +export type StreamTasksApiV1BoardsBoardIdTasksStreamGetQueryError = + HTTPValidationError; + +export function useStreamTasksApiV1BoardsBoardIdTasksStreamGet< + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + boardId: string, + params: undefined | StreamTasksApiV1BoardsBoardIdTasksStreamGetParams, + options: { + query: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + > & + Pick< + DefinedInitialDataOptions< + Awaited< + ReturnType + >, + TError, + Awaited< + ReturnType + > + >, + "initialData" + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): DefinedUseQueryResult & { + queryKey: DataTag; +}; +export function useStreamTasksApiV1BoardsBoardIdTasksStreamGet< + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + boardId: string, + params?: StreamTasksApiV1BoardsBoardIdTasksStreamGetParams, + options?: { + query?: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + > & + Pick< + UndefinedInitialDataOptions< + Awaited< + ReturnType + >, + TError, + Awaited< + ReturnType + > + >, + "initialData" + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +}; +export function useStreamTasksApiV1BoardsBoardIdTasksStreamGet< + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + boardId: string, + params?: StreamTasksApiV1BoardsBoardIdTasksStreamGetParams, + options?: { + query?: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +}; +/** + * @summary Stream Tasks + */ + +export function useStreamTasksApiV1BoardsBoardIdTasksStreamGet< + TData = Awaited< + ReturnType + >, + TError = HTTPValidationError, +>( + boardId: string, + params?: StreamTasksApiV1BoardsBoardIdTasksStreamGetParams, + options?: { + query?: Partial< + UseQueryOptions< + Awaited>, + TError, + TData + > + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseQueryResult & { + queryKey: DataTag; +} { + const queryOptions = + getStreamTasksApiV1BoardsBoardIdTasksStreamGetQueryOptions( + boardId, + params, + options, + ); + + const query = useQuery(queryOptions, queryClient) as UseQueryResult< + TData, + TError + > & { queryKey: DataTag }; + + return { ...query, queryKey: queryOptions.queryKey }; +} + +/** + * Delete a task and related records. + * @summary Delete Task + */ +export type deleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteResponse200 = { + data: OkResponse; + status: 200; +}; + +export type deleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteResponse422 = { + data: HTTPValidationError; + status: 422; +}; + +export type deleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteResponseSuccess = + deleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteResponse200 & { + headers: Headers; + }; +export type deleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteResponseError = + deleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteResponse422 & { + headers: Headers; + }; + +export type deleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteResponse = + | deleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteResponseSuccess + | deleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteResponseError; + +export const getDeleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteUrl = ( + boardId: string, + taskId: string, +) => { + return `/api/v1/boards/${boardId}/tasks/${taskId}`; +}; + +export const deleteTaskApiV1BoardsBoardIdTasksTaskIdDelete = async ( + boardId: string, + taskId: string, + options?: RequestInit, +): Promise => { + return customFetch( + getDeleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteUrl(boardId, taskId), + { + ...options, + method: "DELETE", + }, + ); +}; + +export const getDeleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteMutationOptions = < + TError = HTTPValidationError, + TContext = unknown, +>(options?: { + mutation?: UseMutationOptions< + Awaited>, + TError, + { boardId: string; taskId: string }, + TContext + >; + request?: SecondParameter; +}): UseMutationOptions< + Awaited>, + TError, + { boardId: string; taskId: string }, + TContext +> => { + const mutationKey = ["deleteTaskApiV1BoardsBoardIdTasksTaskIdDelete"]; + const { mutation: mutationOptions, request: requestOptions } = options + ? options.mutation && + "mutationKey" in options.mutation && + options.mutation.mutationKey + ? options + : { ...options, mutation: { ...options.mutation, mutationKey } } + : { mutation: { mutationKey }, request: undefined }; + + const mutationFn: MutationFunction< + Awaited>, + { boardId: string; taskId: string } + > = (props) => { + const { boardId, taskId } = props ?? {}; + + return deleteTaskApiV1BoardsBoardIdTasksTaskIdDelete( + boardId, + taskId, + requestOptions, + ); + }; + + return { mutationFn, ...mutationOptions }; +}; + +export type DeleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteMutationResult = + NonNullable< + Awaited> + >; + +export type DeleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteMutationError = + HTTPValidationError; + +/** + * @summary Delete Task + */ +export const useDeleteTaskApiV1BoardsBoardIdTasksTaskIdDelete = < + TError = HTTPValidationError, + TContext = unknown, +>( + options?: { + mutation?: UseMutationOptions< + Awaited>, + TError, + { boardId: string; taskId: string }, + TContext + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseMutationResult< + Awaited>, + TError, + { boardId: string; taskId: string }, + TContext +> => { + return useMutation( + getDeleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteMutationOptions(options), + queryClient, + ); +}; /** * Update task status, assignment, comment, and dependency state. * @summary Update Task @@ -794,132 +920,6 @@ export const useUpdateTaskApiV1BoardsBoardIdTasksTaskIdPatch = < queryClient, ); }; -/** - * Delete a task and related records. - * @summary Delete Task - */ -export type deleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteResponse200 = { - data: OkResponse; - status: 200; -}; - -export type deleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteResponse422 = { - data: HTTPValidationError; - status: 422; -}; - -export type deleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteResponseSuccess = - deleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteResponse200 & { - headers: Headers; - }; -export type deleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteResponseError = - deleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteResponse422 & { - headers: Headers; - }; - -export type deleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteResponse = - | deleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteResponseSuccess - | deleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteResponseError; - -export const getDeleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteUrl = ( - boardId: string, - taskId: string, -) => { - return `/api/v1/boards/${boardId}/tasks/${taskId}`; -}; - -export const deleteTaskApiV1BoardsBoardIdTasksTaskIdDelete = async ( - boardId: string, - taskId: string, - options?: RequestInit, -): Promise => { - return customFetch( - getDeleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteUrl(boardId, taskId), - { - ...options, - method: "DELETE", - }, - ); -}; - -export const getDeleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteMutationOptions = < - TError = HTTPValidationError, - TContext = unknown, ->(options?: { - mutation?: UseMutationOptions< - Awaited>, - TError, - { boardId: string; taskId: string }, - TContext - >; - request?: SecondParameter; -}): UseMutationOptions< - Awaited>, - TError, - { boardId: string; taskId: string }, - TContext -> => { - const mutationKey = ["deleteTaskApiV1BoardsBoardIdTasksTaskIdDelete"]; - const { mutation: mutationOptions, request: requestOptions } = options - ? options.mutation && - "mutationKey" in options.mutation && - options.mutation.mutationKey - ? options - : { ...options, mutation: { ...options.mutation, mutationKey } } - : { mutation: { mutationKey }, request: undefined }; - - const mutationFn: MutationFunction< - Awaited>, - { boardId: string; taskId: string } - > = (props) => { - const { boardId, taskId } = props ?? {}; - - return deleteTaskApiV1BoardsBoardIdTasksTaskIdDelete( - boardId, - taskId, - requestOptions, - ); - }; - - return { mutationFn, ...mutationOptions }; -}; - -export type DeleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteMutationResult = - NonNullable< - Awaited> - >; - -export type DeleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteMutationError = - HTTPValidationError; - -/** - * @summary Delete Task - */ -export const useDeleteTaskApiV1BoardsBoardIdTasksTaskIdDelete = < - TError = HTTPValidationError, - TContext = unknown, ->( - options?: { - mutation?: UseMutationOptions< - Awaited>, - TError, - { boardId: string; taskId: string }, - TContext - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseMutationResult< - Awaited>, - TError, - { boardId: string; taskId: string }, - TContext -> => { - return useMutation( - getDeleteTaskApiV1BoardsBoardIdTasksTaskIdDeleteMutationOptions(options), - queryClient, - ); -}; /** * List comments for a task in chronological order. * @summary List Task Comments diff --git a/frontend/src/api/generated/users/users.ts b/frontend/src/api/generated/users/users.ts index cf2e0a01..31c86e07 100644 --- a/frontend/src/api/generated/users/users.ts +++ b/frontend/src/api/generated/users/users.ts @@ -1,5 +1,5 @@ /** - * Generated by orval v8.2.0 🍺 + * Generated by orval v8.3.0 🍺 * Do not edit manually. * Mission Control API * OpenAPI spec version: 0.1.0 @@ -31,6 +31,108 @@ import { customFetch } from "../../mutator"; type SecondParameter unknown> = Parameters[1]; +/** + * Delete the authenticated account and any personal-only organizations. + * @summary Delete Me + */ +export type deleteMeApiV1UsersMeDeleteResponse200 = { + data: OkResponse; + status: 200; +}; + +export type deleteMeApiV1UsersMeDeleteResponseSuccess = + deleteMeApiV1UsersMeDeleteResponse200 & { + headers: Headers; + }; +export type deleteMeApiV1UsersMeDeleteResponse = + deleteMeApiV1UsersMeDeleteResponseSuccess; + +export const getDeleteMeApiV1UsersMeDeleteUrl = () => { + return `/api/v1/users/me`; +}; + +export const deleteMeApiV1UsersMeDelete = async ( + options?: RequestInit, +): Promise => { + return customFetch( + getDeleteMeApiV1UsersMeDeleteUrl(), + { + ...options, + method: "DELETE", + }, + ); +}; + +export const getDeleteMeApiV1UsersMeDeleteMutationOptions = < + TError = unknown, + TContext = unknown, +>(options?: { + mutation?: UseMutationOptions< + Awaited>, + TError, + void, + TContext + >; + request?: SecondParameter; +}): UseMutationOptions< + Awaited>, + TError, + void, + TContext +> => { + const mutationKey = ["deleteMeApiV1UsersMeDelete"]; + const { mutation: mutationOptions, request: requestOptions } = options + ? options.mutation && + "mutationKey" in options.mutation && + options.mutation.mutationKey + ? options + : { ...options, mutation: { ...options.mutation, mutationKey } } + : { mutation: { mutationKey }, request: undefined }; + + const mutationFn: MutationFunction< + Awaited>, + void + > = () => { + return deleteMeApiV1UsersMeDelete(requestOptions); + }; + + return { mutationFn, ...mutationOptions }; +}; + +export type DeleteMeApiV1UsersMeDeleteMutationResult = NonNullable< + Awaited> +>; + +export type DeleteMeApiV1UsersMeDeleteMutationError = unknown; + +/** + * @summary Delete Me + */ +export const useDeleteMeApiV1UsersMeDelete = < + TError = unknown, + TContext = unknown, +>( + options?: { + mutation?: UseMutationOptions< + Awaited>, + TError, + void, + TContext + >; + request?: SecondParameter; + }, + queryClient?: QueryClient, +): UseMutationResult< + Awaited>, + TError, + void, + TContext +> => { + return useMutation( + getDeleteMeApiV1UsersMeDeleteMutationOptions(options), + queryClient, + ); +}; /** * Return the authenticated user's current profile payload. * @summary Get Me @@ -201,108 +303,6 @@ export function useGetMeApiV1UsersMeGet< return { ...query, queryKey: queryOptions.queryKey }; } -/** - * Delete the authenticated account and any personal-only organizations. - * @summary Delete Me - */ -export type deleteMeApiV1UsersMeDeleteResponse200 = { - data: OkResponse; - status: 200; -}; - -export type deleteMeApiV1UsersMeDeleteResponseSuccess = - deleteMeApiV1UsersMeDeleteResponse200 & { - headers: Headers; - }; -export type deleteMeApiV1UsersMeDeleteResponse = - deleteMeApiV1UsersMeDeleteResponseSuccess; - -export const getDeleteMeApiV1UsersMeDeleteUrl = () => { - return `/api/v1/users/me`; -}; - -export const deleteMeApiV1UsersMeDelete = async ( - options?: RequestInit, -): Promise => { - return customFetch( - getDeleteMeApiV1UsersMeDeleteUrl(), - { - ...options, - method: "DELETE", - }, - ); -}; - -export const getDeleteMeApiV1UsersMeDeleteMutationOptions = < - TError = unknown, - TContext = unknown, ->(options?: { - mutation?: UseMutationOptions< - Awaited>, - TError, - void, - TContext - >; - request?: SecondParameter; -}): UseMutationOptions< - Awaited>, - TError, - void, - TContext -> => { - const mutationKey = ["deleteMeApiV1UsersMeDelete"]; - const { mutation: mutationOptions, request: requestOptions } = options - ? options.mutation && - "mutationKey" in options.mutation && - options.mutation.mutationKey - ? options - : { ...options, mutation: { ...options.mutation, mutationKey } } - : { mutation: { mutationKey }, request: undefined }; - - const mutationFn: MutationFunction< - Awaited>, - void - > = () => { - return deleteMeApiV1UsersMeDelete(requestOptions); - }; - - return { mutationFn, ...mutationOptions }; -}; - -export type DeleteMeApiV1UsersMeDeleteMutationResult = NonNullable< - Awaited> ->; - -export type DeleteMeApiV1UsersMeDeleteMutationError = unknown; - -/** - * @summary Delete Me - */ -export const useDeleteMeApiV1UsersMeDelete = < - TError = unknown, - TContext = unknown, ->( - options?: { - mutation?: UseMutationOptions< - Awaited>, - TError, - void, - TContext - >; - request?: SecondParameter; - }, - queryClient?: QueryClient, -): UseMutationResult< - Awaited>, - TError, - void, - TContext -> => { - return useMutation( - getDeleteMeApiV1UsersMeDeleteMutationOptions(options), - queryClient, - ); -}; /** * Apply partial profile updates for the authenticated user. * @summary Update Me diff --git a/frontend/src/app/boards/[boardId]/page.tsx b/frontend/src/app/boards/[boardId]/page.tsx index 4bee4332..2abf01fe 100644 --- a/frontend/src/app/boards/[boardId]/page.tsx +++ b/frontend/src/app/boards/[boardId]/page.tsx @@ -74,6 +74,10 @@ import { streamTasksApiV1BoardsBoardIdTasksStreamGet, updateTaskApiV1BoardsBoardIdTasksTaskIdPatch, } from "@/api/generated/tasks/tasks"; +import { + type listTaskTagsApiV1TagsGetResponse, + useListTaskTagsApiV1TagsGet, +} from "@/api/generated/tags/tags"; import type { AgentRead, ApprovalRead, @@ -84,6 +88,7 @@ import type { OrganizationMemberRead, TaskCardRead, TaskCommentRead, + TaskTagRead, TaskRead, } from "@/api/generated/model"; import { createExponentialBackoff } from "@/lib/backoff"; @@ -420,6 +425,12 @@ const normalizeApproval = (approval: ApprovalRead): Approval => ({ status: approval.status ?? "pending", }); +const normalizeTagColor = (value?: string | null) => { + const cleaned = (value ?? "").trim().replace(/^#/, "").toLowerCase(); + if (!/^[0-9a-f]{6}$/.test(cleaned)) return "9e9e9e"; + return cleaned; +}; + const priorities = [ { value: "low", label: "Low" }, { value: "medium", label: "Medium" }, @@ -668,6 +679,22 @@ export default function BoardDetailPage() { refetchOnMount: "always", }, }); + const taskTagsQuery = useListTaskTagsApiV1TagsGet< + listTaskTagsApiV1TagsGetResponse, + ApiError + >(undefined, { + query: { + enabled: Boolean(isSignedIn), + refetchOnMount: "always", + }, + }); + const taskTags = useMemo( + () => + taskTagsQuery.data?.status === 200 + ? (taskTagsQuery.data.data.items ?? []) + : [], + [taskTagsQuery.data], + ); const boardAccess = useMemo( () => @@ -976,6 +1003,7 @@ export default function BoardDetailPage() { const [title, setTitle] = useState(""); const [description, setDescription] = useState(""); const [priority, setPriority] = useState("medium"); + const [createTagIds, setCreateTagIds] = useState([]); const [createError, setCreateError] = useState(null); const [isCreating, setIsCreating] = useState(false); @@ -984,6 +1012,7 @@ export default function BoardDetailPage() { const [editStatus, setEditStatus] = useState("inbox"); const [editPriority, setEditPriority] = useState("medium"); const [editAssigneeId, setEditAssigneeId] = useState(""); + const [editTagIds, setEditTagIds] = useState([]); const [editDependsOnTaskIds, setEditDependsOnTaskIds] = useState( [], ); @@ -1458,6 +1487,7 @@ export default function BoardDetailPage() { setEditStatus("inbox"); setEditPriority("medium"); setEditAssigneeId(""); + setEditTagIds([]); setEditDependsOnTaskIds([]); setSaveTaskError(null); return; @@ -1467,6 +1497,7 @@ export default function BoardDetailPage() { setEditStatus(selectedTask.status); setEditPriority(selectedTask.priority); setEditAssigneeId(selectedTask.assigned_agent_id ?? ""); + setEditTagIds(selectedTask.tag_ids ?? []); setEditDependsOnTaskIds(selectedTask.depends_on_task_ids ?? []); setSaveTaskError(null); }, [selectedTask]); @@ -1773,6 +1804,7 @@ export default function BoardDetailPage() { setTitle(""); setDescription(""); setPriority("medium"); + setCreateTagIds([]); setCreateError(null); }; @@ -1791,6 +1823,7 @@ export default function BoardDetailPage() { description: description.trim() || null, status: "inbox", priority, + tag_ids: createTagIds, }); if (result.status !== 200) throw new Error("Unable to create task."); @@ -1943,6 +1976,32 @@ export default function BoardDetailPage() { [agents], ); + const taskTagById = useMemo(() => { + const map = new Map(); + taskTags.forEach((tag) => { + map.set(tag.id, tag); + }); + return map; + }, [taskTags]); + + const createTagOptions = useMemo(() => { + const selected = new Set(createTagIds); + return taskTags.map((tag) => ({ + value: tag.id, + label: `${tag.name} (#${normalizeTagColor(tag.color).toUpperCase()})`, + disabled: selected.has(tag.id), + })); + }, [createTagIds, taskTags]); + + const editTagOptions = useMemo(() => { + const selected = new Set(editTagIds); + return taskTags.map((tag) => ({ + value: tag.id, + label: `${tag.name} (#${normalizeTagColor(tag.color).toUpperCase()})`, + disabled: selected.has(tag.id), + })); + }, [editTagIds, taskTags]); + const dependencyOptions = useMemo(() => { if (!selectedTask) return []; const alreadySelected = new Set(editDependsOnTaskIds); @@ -1967,12 +2026,30 @@ export default function BoardDetailPage() { ); }, []); + const addEditTag = useCallback((tagId: string) => { + setEditTagIds((prev) => (prev.includes(tagId) ? prev : [...prev, tagId])); + }, []); + + const removeEditTag = useCallback((tagId: string) => { + setEditTagIds((prev) => prev.filter((value) => value !== tagId)); + }, []); + + const addCreateTag = useCallback((tagId: string) => { + setCreateTagIds((prev) => (prev.includes(tagId) ? prev : [...prev, tagId])); + }, []); + + const removeCreateTag = useCallback((tagId: string) => { + setCreateTagIds((prev) => prev.filter((value) => value !== tagId)); + }, []); + const hasTaskChanges = useMemo(() => { if (!selectedTask) return false; const normalizedTitle = editTitle.trim(); const normalizedDescription = editDescription.trim(); const currentDescription = (selectedTask.description ?? "").trim(); const currentAssignee = selectedTask.assigned_agent_id ?? ""; + const currentTags = [...(selectedTask.tag_ids ?? [])].sort().join("|"); + const nextTags = [...editTagIds].sort().join("|"); const currentDeps = [...(selectedTask.depends_on_task_ids ?? [])] .sort() .join("|"); @@ -1983,10 +2060,12 @@ export default function BoardDetailPage() { editStatus !== selectedTask.status || editPriority !== selectedTask.priority || editAssigneeId !== currentAssignee || + currentTags !== nextTags || currentDeps !== nextDeps ); }, [ editAssigneeId, + editTagIds, editDependsOnTaskIds, editDescription, editPriority, @@ -2205,6 +2284,9 @@ export default function BoardDetailPage() { .join("|"); const nextDeps = [...editDependsOnTaskIds].sort().join("|"); const depsChanged = currentDeps !== nextDeps; + const currentTags = [...(selectedTask.tag_ids ?? [])].sort().join("|"); + const nextTags = [...editTagIds].sort().join("|"); + const tagsChanged = currentTags !== nextTags; const updatePayload: Parameters< typeof updateTaskApiV1BoardsBoardIdTasksTaskIdPatch @@ -2219,6 +2301,9 @@ export default function BoardDetailPage() { if (depsChanged && selectedTask.status !== "done") { updatePayload.depends_on_task_ids = editDependsOnTaskIds; } + if (tagsChanged) { + updatePayload.tag_ids = editTagIds; + } const result = await updateTaskApiV1BoardsBoardIdTasksTaskIdPatch( boardId, @@ -2280,6 +2365,7 @@ export default function BoardDetailPage() { setEditStatus(selectedTask.status); setEditPriority(selectedTask.priority); setEditAssigneeId(selectedTask.assigned_agent_id ?? ""); + setEditTagIds(selectedTask.tag_ids ?? []); setEditDependsOnTaskIds(selectedTask.depends_on_task_ids ?? []); setSaveTaskError(null); }; @@ -2970,6 +3056,28 @@ export default function BoardDetailPage() { {task.assignee ?? "Unassigned"}

+ {task.tags?.length ? ( +
+ {task.tags + .slice(0, 3) + .map((tag) => ( + + + {tag.name} + + ))} +
+ ) : null} ))} {item.tasks.length > 3 ? ( @@ -3107,6 +3215,31 @@ export default function BoardDetailPage() { > {task.priority} + {task.tags?.length ? ( +
+ {task.tags.slice(0, 2).map((tag) => ( + + + {tag.name} + + ))} + {task.tags.length > 2 ? ( + + +{task.tags.length - 2} + + ) : null} +
+ ) : null} {task.assignee ?? "Unassigned"} @@ -3196,6 +3329,31 @@ export default function BoardDetailPage() {

)} +
+

+ Tags +

+ {selectedTask?.tags?.length ? ( +
+ {selectedTask.tags.map((tag) => ( + + + {tag.name} + + ))} +
+ ) : ( +

No tags assigned.

+ )} +

Dependencies @@ -3677,6 +3835,65 @@ export default function BoardDetailPage() {

) : null}
+
+
+ + +
+ + {editTagIds.length === 0 ? ( +

No tags assigned.

+ ) : ( +
+ {editTagIds.map((tagId) => { + const tag = taskTagById.get(tagId); + const label = tag?.name ?? tagId; + const color = normalizeTagColor(tag?.color); + return ( + + + {label} + + + ); + })} +
+ )} +
+
+
+ + +
+ + {createTagIds.length ? ( +
+ {createTagIds.map((tagId) => { + const tag = taskTagById.get(tagId); + const color = normalizeTagColor(tag?.color); + return ( + + + {tag?.name ?? tagId} + + + ); + })} +
+ ) : ( +

No tags assigned.

+ )} +
{createError ? (
{createError} diff --git a/frontend/src/app/tags/[tagId]/edit/page.tsx b/frontend/src/app/tags/[tagId]/edit/page.tsx new file mode 100644 index 00000000..3d9814f2 --- /dev/null +++ b/frontend/src/app/tags/[tagId]/edit/page.tsx @@ -0,0 +1,100 @@ +"use client"; + +export const dynamic = "force-dynamic"; + +import { useMemo } from "react"; +import { useParams, useRouter } from "next/navigation"; + +import { useAuth } from "@/auth/clerk"; + +import { ApiError } from "@/api/mutator"; +import { + type getTaskTagApiV1TagsTagIdGetResponse, + useGetTaskTagApiV1TagsTagIdGet, + useUpdateTaskTagApiV1TagsTagIdPatch, +} from "@/api/generated/tags/tags"; +import { TaskTagForm } from "@/components/tags/TaskTagForm"; +import { DashboardPageLayout } from "@/components/templates/DashboardPageLayout"; +import { useOrganizationMembership } from "@/lib/use-organization-membership"; + +export default function EditTaskTagPage() { + const router = useRouter(); + const params = useParams(); + const tagIdParam = params?.tagId; + const tagId = Array.isArray(tagIdParam) ? tagIdParam[0] : tagIdParam; + const { isSignedIn } = useAuth(); + const { isAdmin } = useOrganizationMembership(isSignedIn); + + const tagQuery = useGetTaskTagApiV1TagsTagIdGet< + getTaskTagApiV1TagsTagIdGetResponse, + ApiError + >(tagId ?? "", { + query: { + enabled: Boolean(isSignedIn && tagId), + refetchOnMount: "always", + retry: false, + }, + }); + + const updateMutation = useUpdateTaskTagApiV1TagsTagIdPatch({ + mutation: { + retry: false, + }, + }); + + const tag = useMemo( + () => (tagQuery.data?.status === 200 ? tagQuery.data.data : null), + [tagQuery.data], + ); + + return ( + + {tagQuery.isLoading ? ( +
+ Loading tag… +
+ ) : tagQuery.error ? ( +
+ {tagQuery.error.message} +
+ ) : !tag ? ( +
+ Tag not found. +
+ ) : ( + router.push("/tags")} + onSubmit={async (values) => { + const result = await updateMutation.mutateAsync({ + tagId: tag.id, + data: values, + }); + if (result.status !== 200) { + throw new Error("Unable to update tag."); + } + router.push("/tags"); + }} + /> + )} +
+ ); +} diff --git a/frontend/src/app/tags/add/page.tsx b/frontend/src/app/tags/add/page.tsx new file mode 100644 index 00000000..b3f2390f --- /dev/null +++ b/frontend/src/app/tags/add/page.tsx @@ -0,0 +1,55 @@ +"use client"; + +export const dynamic = "force-dynamic"; + +import { useRouter } from "next/navigation"; + +import { useAuth } from "@/auth/clerk"; + +import { ApiError } from "@/api/mutator"; +import { useCreateTaskTagApiV1TagsPost } from "@/api/generated/tags/tags"; +import { TaskTagForm } from "@/components/tags/TaskTagForm"; +import { DashboardPageLayout } from "@/components/templates/DashboardPageLayout"; +import { useOrganizationMembership } from "@/lib/use-organization-membership"; + +export default function NewTaskTagPage() { + const router = useRouter(); + const { isSignedIn } = useAuth(); + const { isAdmin } = useOrganizationMembership(isSignedIn); + + const createMutation = useCreateTaskTagApiV1TagsPost({ + mutation: { + retry: false, + }, + }); + + return ( + + router.push("/tags")} + onSubmit={async (values) => { + const result = await createMutation.mutateAsync({ + data: values, + }); + if (result.status !== 200) { + throw new Error("Unable to create tag."); + } + router.push("/tags"); + }} + /> + + ); +} diff --git a/frontend/src/app/tags/page.tsx b/frontend/src/app/tags/page.tsx new file mode 100644 index 00000000..75f22446 --- /dev/null +++ b/frontend/src/app/tags/page.tsx @@ -0,0 +1,157 @@ +"use client"; + +export const dynamic = "force-dynamic"; + +import { useMemo, useState } from "react"; +import Link from "next/link"; +import { useRouter } from "next/navigation"; + +import { useAuth } from "@/auth/clerk"; +import { useQueryClient } from "@tanstack/react-query"; + +import { ApiError } from "@/api/mutator"; +import { + getListTaskTagsApiV1TagsGetQueryKey, + type listTaskTagsApiV1TagsGetResponse, + useDeleteTaskTagApiV1TagsTagIdDelete, + useListTaskTagsApiV1TagsGet, +} from "@/api/generated/tags/tags"; +import type { TaskTagRead } from "@/api/generated/model"; +import { TaskTagsTable } from "@/components/tags/TaskTagsTable"; +import { DashboardPageLayout } from "@/components/templates/DashboardPageLayout"; +import { buttonVariants } from "@/components/ui/button"; +import { ConfirmActionDialog } from "@/components/ui/confirm-action-dialog"; +import { useOrganizationMembership } from "@/lib/use-organization-membership"; +import { useUrlSorting } from "@/lib/use-url-sorting"; + +const TAG_SORTABLE_COLUMNS = ["name", "task_count", "updated_at"]; + +const extractErrorMessage = (error: unknown, fallback: string) => { + if (error instanceof ApiError) return error.message || fallback; + if (error instanceof Error) return error.message || fallback; + return fallback; +}; + +export default function TaskTagsPage() { + const { isSignedIn } = useAuth(); + const { isAdmin } = useOrganizationMembership(isSignedIn); + const router = useRouter(); + const queryClient = useQueryClient(); + const { sorting, onSortingChange } = useUrlSorting({ + allowedColumnIds: TAG_SORTABLE_COLUMNS, + defaultSorting: [{ id: "name", desc: false }], + paramPrefix: "tags", + }); + + const [deleteTarget, setDeleteTarget] = useState(null); + + const tagsQuery = useListTaskTagsApiV1TagsGet< + listTaskTagsApiV1TagsGetResponse, + ApiError + >(undefined, { + query: { + enabled: Boolean(isSignedIn), + refetchOnMount: "always", + refetchInterval: 30_000, + }, + }); + const tags = useMemo( + () => + tagsQuery.data?.status === 200 ? (tagsQuery.data.data.items ?? []) : [], + [tagsQuery.data], + ); + const tagsKey = getListTaskTagsApiV1TagsGetQueryKey(); + + const deleteMutation = useDeleteTaskTagApiV1TagsTagIdDelete({ + mutation: { + onSuccess: async () => { + setDeleteTarget(null); + await queryClient.invalidateQueries({ queryKey: tagsKey }); + }, + }, + }); + + const handleDelete = () => { + if (!deleteTarget) return; + deleteMutation.mutate({ tagId: deleteTarget.id }); + }; + + return ( + <> + + New tag + + ) : null + } + isAdmin={isAdmin} + adminOnlyMessage="Only organization owners and admins can manage tags." + stickyHeader + > +
+ { + router.push(`/tags/${tag.id}/edit`); + } + : undefined + } + onDelete={isAdmin ? setDeleteTarget : undefined} + emptyState={{ + title: "No tags yet", + description: + "Create tags to classify and group tasks across your boards.", + actionHref: isAdmin ? "/tags/add" : undefined, + actionLabel: isAdmin ? "Create your first tag" : undefined, + }} + /> +
+ {tagsQuery.error ? ( +

+ {tagsQuery.error.message} +

+ ) : null} +
+ + { + if (!open) setDeleteTarget(null); + }} + ariaLabel="Delete tag" + title="Delete tag" + description={ + <> + This will remove {deleteTarget?.name} from all + tagged tasks. This action cannot be undone. + + } + errorMessage={ + deleteMutation.error + ? extractErrorMessage(deleteMutation.error, "Unable to delete tag.") + : undefined + } + onConfirm={handleDelete} + isConfirming={deleteMutation.isPending} + /> + + ); +} diff --git a/frontend/src/components/molecules/TaskCard.tsx b/frontend/src/components/molecules/TaskCard.tsx index 59a0c6a2..423fc596 100644 --- a/frontend/src/components/molecules/TaskCard.tsx +++ b/frontend/src/components/molecules/TaskCard.tsx @@ -11,6 +11,7 @@ interface TaskCardProps { assignee?: string; due?: string; approvalsPendingCount?: number; + tags?: Array<{ id: string; name: string; color: string }>; isBlocked?: boolean; blockedByCount?: number; onClick?: () => void; @@ -27,6 +28,7 @@ export function TaskCard({ assignee, due, approvalsPendingCount = 0, + tags = [], isBlocked = false, blockedByCount = 0, onClick, @@ -61,6 +63,7 @@ export function TaskCard({ }; const priorityLabel = priority ? priority.toUpperCase() : "MEDIUM"; + const visibleTags = tags.slice(0, 3); return (
) : null} + {visibleTags.length ? ( +
+ {visibleTags.map((tag) => ( + + + {tag.name} + + ))} + {tags.length > visibleTags.length ? ( + + +{tags.length - visibleTags.length} + + ) : null} +
+ ) : null}
Boards + + + Tags + ; depends_on_task_ids?: string[]; blocked_by_task_ids?: string[]; is_blocked?: boolean; @@ -453,6 +454,7 @@ export const TaskBoard = memo(function TaskBoard({ assignee={task.assignee ?? undefined} due={formatDueDate(task.due_at)} approvalsPendingCount={task.approvals_pending_count} + tags={task.tags} isBlocked={task.is_blocked} blockedByCount={task.blocked_by_task_ids?.length ?? 0} onClick={() => onTaskSelect?.(task)} diff --git a/frontend/src/components/tags/TaskTagForm.tsx b/frontend/src/components/tags/TaskTagForm.tsx new file mode 100644 index 00000000..51dbf3d1 --- /dev/null +++ b/frontend/src/components/tags/TaskTagForm.tsx @@ -0,0 +1,214 @@ +import { useMemo, useState } from "react"; + +import { ApiError } from "@/api/mutator"; +import { Button } from "@/components/ui/button"; +import { Input } from "@/components/ui/input"; +import { Textarea } from "@/components/ui/textarea"; + +export type TaskTagFormValues = { + name: string; + slug: string; + color: string; + description: string; +}; + +type TaskTagFormProps = { + initialValues?: TaskTagFormValues; + onSubmit: (values: { + name: string; + slug: string; + color: string; + description: string | null; + }) => Promise; + onCancel: () => void; + submitLabel: string; + submittingLabel: string; + isSubmitting: boolean; +}; + +const DEFAULT_VALUES: TaskTagFormValues = { + name: "", + slug: "", + color: "9e9e9e", + description: "", +}; + +const normalizeColorInput = (value: string) => { + const cleaned = value.trim().replace(/^#/, "").toLowerCase(); + return /^[0-9a-f]{6}$/.test(cleaned) ? cleaned : "9e9e9e"; +}; + +const slugify = (value: string) => + value + .toLowerCase() + .trim() + .replace(/[^a-z0-9]+/g, "-") + .replace(/^-+|-+$/g, ""); + +const extractErrorMessage = (error: unknown, fallback: string) => { + if (error instanceof ApiError) return error.message || fallback; + if (error instanceof Error) return error.message || fallback; + return fallback; +}; + +export function TaskTagForm({ + initialValues, + onSubmit, + onCancel, + submitLabel, + submittingLabel, + isSubmitting, +}: TaskTagFormProps) { + const resolvedInitial = initialValues ?? DEFAULT_VALUES; + const [name, setName] = useState(() => resolvedInitial.name); + const [slug, setSlug] = useState(() => resolvedInitial.slug); + const [color, setColor] = useState(() => + normalizeColorInput(resolvedInitial.color), + ); + const [description, setDescription] = useState( + () => resolvedInitial.description, + ); + const [errorMessage, setErrorMessage] = useState(null); + + const previewColor = useMemo(() => normalizeColorInput(color), [color]); + const suggestedSlug = useMemo(() => slugify(name.trim()), [name]); + + const handleSubmit = async (event: React.FormEvent) => { + event.preventDefault(); + const normalizedName = name.trim(); + if (!normalizedName) { + setErrorMessage("Tag name is required."); + return; + } + const normalizedSlug = slugify(slug.trim() || normalizedName); + if (!normalizedSlug) { + setErrorMessage("Tag slug is required."); + return; + } + setErrorMessage(null); + try { + await onSubmit({ + name: normalizedName, + slug: normalizedSlug, + color: normalizeColorInput(color), + description: description.trim() || null, + }); + } catch (error) { + setErrorMessage(extractErrorMessage(error, "Unable to save tag.")); + } + }; + + return ( +
+
+
+
+
+ + setName(event.target.value)} + placeholder="e.g. Backend" + disabled={isSubmitting} + /> +
+
+
+ + +
+ setSlug(event.target.value)} + placeholder="backend" + disabled={isSubmitting} + /> +
+
+

+ Leave slug blank to auto-generate from the tag name. +

+
+ +
+
+ +
+ # + setColor(event.target.value)} + placeholder="9e9e9e" + disabled={isSubmitting} + className="border-0 px-2 shadow-none focus-visible:ring-0" + /> +
+
+
+ +
+ + + #{previewColor.toUpperCase()} + +
+
+
+ +
+ +