feat(tags): add tag management interfaces and update related schemas
This commit is contained in:
@@ -20,8 +20,8 @@ from app.db.pagination import paginate
|
|||||||
from app.db.session import get_session
|
from app.db.session import get_session
|
||||||
from app.models.agents import Agent
|
from app.models.agents import Agent
|
||||||
from app.models.boards import Board
|
from app.models.boards import Board
|
||||||
|
from app.models.tags import Tag
|
||||||
from app.models.task_dependencies import TaskDependency
|
from app.models.task_dependencies import TaskDependency
|
||||||
from app.models.task_tags import TaskTag
|
|
||||||
from app.models.tasks import Task
|
from app.models.tasks import Task
|
||||||
from app.schemas.agents import (
|
from app.schemas.agents import (
|
||||||
AgentCreate,
|
AgentCreate,
|
||||||
@@ -44,18 +44,18 @@ from app.schemas.gateway_coordination import (
|
|||||||
GatewayMainAskUserResponse,
|
GatewayMainAskUserResponse,
|
||||||
)
|
)
|
||||||
from app.schemas.pagination import DefaultLimitOffsetPage
|
from app.schemas.pagination import DefaultLimitOffsetPage
|
||||||
from app.schemas.task_tags import TaskTagRef
|
from app.schemas.tags import TagRef
|
||||||
from app.schemas.tasks import TaskCommentCreate, TaskCommentRead, TaskCreate, TaskRead, TaskUpdate
|
from app.schemas.tasks import TaskCommentCreate, TaskCommentRead, TaskCreate, TaskRead, TaskUpdate
|
||||||
from app.services.activity_log import record_activity
|
from app.services.activity_log import record_activity
|
||||||
from app.services.openclaw.coordination_service import GatewayCoordinationService
|
from app.services.openclaw.coordination_service import GatewayCoordinationService
|
||||||
from app.services.openclaw.policies import OpenClawAuthorizationPolicy
|
from app.services.openclaw.policies import OpenClawAuthorizationPolicy
|
||||||
from app.services.openclaw.provisioning_db import AgentLifecycleService
|
from app.services.openclaw.provisioning_db import AgentLifecycleService
|
||||||
|
from app.services.tags import replace_tags, validate_tag_ids
|
||||||
from app.services.task_dependencies import (
|
from app.services.task_dependencies import (
|
||||||
blocked_by_dependency_ids,
|
blocked_by_dependency_ids,
|
||||||
dependency_status_by_id,
|
dependency_status_by_id,
|
||||||
validate_dependency_update,
|
validate_dependency_update,
|
||||||
)
|
)
|
||||||
from app.services.task_tags import replace_task_tags, validate_task_tag_ids
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from collections.abc import Sequence
|
from collections.abc import Sequence
|
||||||
@@ -214,23 +214,23 @@ async def list_tasks(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@router.get("/boards/{board_id}/tags", response_model=list[TaskTagRef])
|
@router.get("/boards/{board_id}/tags", response_model=list[TagRef])
|
||||||
async def list_task_tags(
|
async def list_tags(
|
||||||
board: Board = BOARD_DEP,
|
board: Board = BOARD_DEP,
|
||||||
session: AsyncSession = SESSION_DEP,
|
session: AsyncSession = SESSION_DEP,
|
||||||
agent_ctx: AgentAuthContext = AGENT_CTX_DEP,
|
agent_ctx: AgentAuthContext = AGENT_CTX_DEP,
|
||||||
) -> list[TaskTagRef]:
|
) -> list[TagRef]:
|
||||||
"""List task tags available to the board's organization."""
|
"""List tags available to the board's organization."""
|
||||||
_guard_board_access(agent_ctx, board)
|
_guard_board_access(agent_ctx, board)
|
||||||
tags = (
|
tags = (
|
||||||
await session.exec(
|
await session.exec(
|
||||||
select(TaskTag)
|
select(Tag)
|
||||||
.where(col(TaskTag.organization_id) == board.organization_id)
|
.where(col(Tag.organization_id) == board.organization_id)
|
||||||
.order_by(func.lower(col(TaskTag.name)).asc(), col(TaskTag.created_at).asc()),
|
.order_by(func.lower(col(Tag.name)).asc(), col(Tag.created_at).asc()),
|
||||||
)
|
)
|
||||||
).all()
|
).all()
|
||||||
return [
|
return [
|
||||||
TaskTagRef(
|
TagRef(
|
||||||
id=tag.id,
|
id=tag.id,
|
||||||
name=tag.name,
|
name=tag.name,
|
||||||
slug=tag.slug,
|
slug=tag.slug,
|
||||||
@@ -265,7 +265,7 @@ async def create_task(
|
|||||||
task_id=task.id,
|
task_id=task.id,
|
||||||
depends_on_task_ids=depends_on_task_ids,
|
depends_on_task_ids=depends_on_task_ids,
|
||||||
)
|
)
|
||||||
normalized_tag_ids = await validate_task_tag_ids(
|
normalized_tag_ids = await validate_tag_ids(
|
||||||
session,
|
session,
|
||||||
organization_id=board.organization_id,
|
organization_id=board.organization_id,
|
||||||
tag_ids=tag_ids,
|
tag_ids=tag_ids,
|
||||||
@@ -310,7 +310,7 @@ async def create_task(
|
|||||||
depends_on_task_id=dep_id,
|
depends_on_task_id=dep_id,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
await replace_task_tags(
|
await replace_tags(
|
||||||
session,
|
session,
|
||||||
task_id=task.id,
|
task_id=task.id,
|
||||||
tag_ids=normalized_tag_ids,
|
tag_ids=normalized_tag_ids,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
"""Task-tag CRUD endpoints for organization-scoped task categorization."""
|
"""Tag CRUD endpoints for organization-scoped task categorization."""
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
@@ -14,13 +14,13 @@ from app.core.time import utcnow
|
|||||||
from app.db import crud
|
from app.db import crud
|
||||||
from app.db.pagination import paginate
|
from app.db.pagination import paginate
|
||||||
from app.db.session import get_session
|
from app.db.session import get_session
|
||||||
from app.models.task_tag_assignments import TaskTagAssignment
|
from app.models.tag_assignments import TagAssignment
|
||||||
from app.models.task_tags import TaskTag
|
from app.models.tags import Tag
|
||||||
from app.schemas.common import OkResponse
|
from app.schemas.common import OkResponse
|
||||||
from app.schemas.pagination import DefaultLimitOffsetPage
|
from app.schemas.pagination import DefaultLimitOffsetPage
|
||||||
from app.schemas.task_tags import TaskTagCreate, TaskTagRead, TaskTagUpdate
|
from app.schemas.tags import TagCreate, TagRead, TagUpdate
|
||||||
from app.services.organizations import OrganizationContext
|
from app.services.organizations import OrganizationContext
|
||||||
from app.services.task_tags import slugify_task_tag, task_counts_for_tags
|
from app.services.tags import slugify_tag, task_counts_for_tags
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from collections.abc import Sequence
|
from collections.abc import Sequence
|
||||||
@@ -36,16 +36,16 @@ ORG_ADMIN_DEP = Depends(require_org_admin)
|
|||||||
|
|
||||||
def _normalize_slug(slug: str | None, *, fallback_name: str) -> str:
|
def _normalize_slug(slug: str | None, *, fallback_name: str) -> str:
|
||||||
source = (slug or "").strip() or fallback_name
|
source = (slug or "").strip() or fallback_name
|
||||||
return slugify_task_tag(source)
|
return slugify_tag(source)
|
||||||
|
|
||||||
|
|
||||||
async def _require_org_task_tag(
|
async def _require_org_tag(
|
||||||
session: AsyncSession,
|
session: AsyncSession,
|
||||||
*,
|
*,
|
||||||
tag_id: UUID,
|
tag_id: UUID,
|
||||||
ctx: OrganizationContext,
|
ctx: OrganizationContext,
|
||||||
) -> TaskTag:
|
) -> Tag:
|
||||||
tag = await TaskTag.objects.by_id(tag_id).first(session)
|
tag = await Tag.objects.by_id(tag_id).first(session)
|
||||||
if tag is None:
|
if tag is None:
|
||||||
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND)
|
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND)
|
||||||
if tag.organization_id != ctx.organization.id:
|
if tag.organization_id != ctx.organization.id:
|
||||||
@@ -60,7 +60,7 @@ async def _ensure_slug_available(
|
|||||||
slug: str,
|
slug: str,
|
||||||
exclude_tag_id: UUID | None = None,
|
exclude_tag_id: UUID | None = None,
|
||||||
) -> None:
|
) -> None:
|
||||||
existing = await TaskTag.objects.filter_by(organization_id=organization_id, slug=slug).first(
|
existing = await Tag.objects.filter_by(organization_id=organization_id, slug=slug).first(
|
||||||
session
|
session
|
||||||
)
|
)
|
||||||
if existing is None:
|
if existing is None:
|
||||||
@@ -69,15 +69,15 @@ async def _ensure_slug_available(
|
|||||||
return
|
return
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_409_CONFLICT,
|
status_code=status.HTTP_409_CONFLICT,
|
||||||
detail="Task tag slug already exists in this organization.",
|
detail="Tag slug already exists in this organization.",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
async def _tag_read_page(
|
async def _tag_read_page(
|
||||||
*,
|
*,
|
||||||
session: AsyncSession,
|
session: AsyncSession,
|
||||||
items: Sequence[TaskTag],
|
items: Sequence[Tag],
|
||||||
) -> list[TaskTagRead]:
|
) -> list[TagRead]:
|
||||||
if not items:
|
if not items:
|
||||||
return []
|
return []
|
||||||
counts = await task_counts_for_tags(
|
counts = await task_counts_for_tags(
|
||||||
@@ -85,30 +85,30 @@ async def _tag_read_page(
|
|||||||
tag_ids=[item.id for item in items],
|
tag_ids=[item.id for item in items],
|
||||||
)
|
)
|
||||||
return [
|
return [
|
||||||
TaskTagRead.model_validate(item, from_attributes=True).model_copy(
|
TagRead.model_validate(item, from_attributes=True).model_copy(
|
||||||
update={"task_count": counts.get(item.id, 0)},
|
update={"task_count": counts.get(item.id, 0)},
|
||||||
)
|
)
|
||||||
for item in items
|
for item in items
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
@router.get("", response_model=DefaultLimitOffsetPage[TaskTagRead])
|
@router.get("", response_model=DefaultLimitOffsetPage[TagRead])
|
||||||
async def list_task_tags(
|
async def list_tags(
|
||||||
session: AsyncSession = SESSION_DEP,
|
session: AsyncSession = SESSION_DEP,
|
||||||
ctx: OrganizationContext = ORG_MEMBER_DEP,
|
ctx: OrganizationContext = ORG_MEMBER_DEP,
|
||||||
) -> LimitOffsetPage[TaskTagRead]:
|
) -> LimitOffsetPage[TagRead]:
|
||||||
"""List task tags for the active organization."""
|
"""List tags for the active organization."""
|
||||||
statement = (
|
statement = (
|
||||||
select(TaskTag)
|
select(Tag)
|
||||||
.where(col(TaskTag.organization_id) == ctx.organization.id)
|
.where(col(Tag.organization_id) == ctx.organization.id)
|
||||||
.order_by(func.lower(col(TaskTag.name)).asc(), col(TaskTag.created_at).asc())
|
.order_by(func.lower(col(Tag.name)).asc(), col(Tag.created_at).asc())
|
||||||
)
|
)
|
||||||
|
|
||||||
async def _transform(items: Sequence[object]) -> Sequence[object]:
|
async def _transform(items: Sequence[object]) -> Sequence[object]:
|
||||||
tags: list[TaskTag] = []
|
tags: list[Tag] = []
|
||||||
for item in items:
|
for item in items:
|
||||||
if not isinstance(item, TaskTag):
|
if not isinstance(item, Tag):
|
||||||
msg = "Expected TaskTag items from paginated query"
|
msg = "Expected Tag items from paginated query"
|
||||||
raise TypeError(msg)
|
raise TypeError(msg)
|
||||||
tags.append(item)
|
tags.append(item)
|
||||||
return await _tag_read_page(session=session, items=tags)
|
return await _tag_read_page(session=session, items=tags)
|
||||||
@@ -116,13 +116,13 @@ async def list_task_tags(
|
|||||||
return await paginate(session, statement, transformer=_transform)
|
return await paginate(session, statement, transformer=_transform)
|
||||||
|
|
||||||
|
|
||||||
@router.post("", response_model=TaskTagRead)
|
@router.post("", response_model=TagRead)
|
||||||
async def create_task_tag(
|
async def create_tag(
|
||||||
payload: TaskTagCreate,
|
payload: TagCreate,
|
||||||
session: AsyncSession = SESSION_DEP,
|
session: AsyncSession = SESSION_DEP,
|
||||||
ctx: OrganizationContext = ORG_ADMIN_DEP,
|
ctx: OrganizationContext = ORG_ADMIN_DEP,
|
||||||
) -> TaskTagRead:
|
) -> TagRead:
|
||||||
"""Create a task tag within the active organization."""
|
"""Create a tag within the active organization."""
|
||||||
slug = _normalize_slug(payload.slug, fallback_name=payload.name)
|
slug = _normalize_slug(payload.slug, fallback_name=payload.name)
|
||||||
await _ensure_slug_available(
|
await _ensure_slug_available(
|
||||||
session,
|
session,
|
||||||
@@ -131,49 +131,49 @@ async def create_task_tag(
|
|||||||
)
|
)
|
||||||
tag = await crud.create(
|
tag = await crud.create(
|
||||||
session,
|
session,
|
||||||
TaskTag,
|
Tag,
|
||||||
organization_id=ctx.organization.id,
|
organization_id=ctx.organization.id,
|
||||||
name=payload.name,
|
name=payload.name,
|
||||||
slug=slug,
|
slug=slug,
|
||||||
color=payload.color,
|
color=payload.color,
|
||||||
description=payload.description,
|
description=payload.description,
|
||||||
)
|
)
|
||||||
return TaskTagRead.model_validate(tag, from_attributes=True)
|
return TagRead.model_validate(tag, from_attributes=True)
|
||||||
|
|
||||||
|
|
||||||
@router.get("/{tag_id}", response_model=TaskTagRead)
|
@router.get("/{tag_id}", response_model=TagRead)
|
||||||
async def get_task_tag(
|
async def get_tag(
|
||||||
tag_id: UUID,
|
tag_id: UUID,
|
||||||
session: AsyncSession = SESSION_DEP,
|
session: AsyncSession = SESSION_DEP,
|
||||||
ctx: OrganizationContext = ORG_MEMBER_DEP,
|
ctx: OrganizationContext = ORG_MEMBER_DEP,
|
||||||
) -> TaskTagRead:
|
) -> TagRead:
|
||||||
"""Get a single task tag in the active organization."""
|
"""Get a single tag in the active organization."""
|
||||||
tag = await _require_org_task_tag(
|
tag = await _require_org_tag(
|
||||||
session,
|
session,
|
||||||
tag_id=tag_id,
|
tag_id=tag_id,
|
||||||
ctx=ctx,
|
ctx=ctx,
|
||||||
)
|
)
|
||||||
count = (
|
count = (
|
||||||
await session.exec(
|
await session.exec(
|
||||||
select(func.count(col(TaskTagAssignment.task_id))).where(
|
select(func.count(col(TagAssignment.task_id))).where(
|
||||||
col(TaskTagAssignment.tag_id) == tag.id,
|
col(TagAssignment.tag_id) == tag.id,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
).one()
|
).one()
|
||||||
return TaskTagRead.model_validate(tag, from_attributes=True).model_copy(
|
return TagRead.model_validate(tag, from_attributes=True).model_copy(
|
||||||
update={"task_count": int(count or 0)},
|
update={"task_count": int(count or 0)},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@router.patch("/{tag_id}", response_model=TaskTagRead)
|
@router.patch("/{tag_id}", response_model=TagRead)
|
||||||
async def update_task_tag(
|
async def update_tag(
|
||||||
tag_id: UUID,
|
tag_id: UUID,
|
||||||
payload: TaskTagUpdate,
|
payload: TagUpdate,
|
||||||
session: AsyncSession = SESSION_DEP,
|
session: AsyncSession = SESSION_DEP,
|
||||||
ctx: OrganizationContext = ORG_ADMIN_DEP,
|
ctx: OrganizationContext = ORG_ADMIN_DEP,
|
||||||
) -> TaskTagRead:
|
) -> TagRead:
|
||||||
"""Update a task tag in the active organization."""
|
"""Update a tag in the active organization."""
|
||||||
tag = await _require_org_task_tag(
|
tag = await _require_org_tag(
|
||||||
session,
|
session,
|
||||||
tag_id=tag_id,
|
tag_id=tag_id,
|
||||||
ctx=ctx,
|
ctx=ctx,
|
||||||
@@ -194,25 +194,25 @@ async def update_task_tag(
|
|||||||
)
|
)
|
||||||
updates["updated_at"] = utcnow()
|
updates["updated_at"] = utcnow()
|
||||||
updated = await crud.patch(session, tag, updates)
|
updated = await crud.patch(session, tag, updates)
|
||||||
return TaskTagRead.model_validate(updated, from_attributes=True)
|
return TagRead.model_validate(updated, from_attributes=True)
|
||||||
|
|
||||||
|
|
||||||
@router.delete("/{tag_id}", response_model=OkResponse)
|
@router.delete("/{tag_id}", response_model=OkResponse)
|
||||||
async def delete_task_tag(
|
async def delete_tag(
|
||||||
tag_id: UUID,
|
tag_id: UUID,
|
||||||
session: AsyncSession = SESSION_DEP,
|
session: AsyncSession = SESSION_DEP,
|
||||||
ctx: OrganizationContext = ORG_ADMIN_DEP,
|
ctx: OrganizationContext = ORG_ADMIN_DEP,
|
||||||
) -> OkResponse:
|
) -> OkResponse:
|
||||||
"""Delete a task tag and remove all associated task-tag links."""
|
"""Delete a tag and remove all associated tag links."""
|
||||||
tag = await _require_org_task_tag(
|
tag = await _require_org_tag(
|
||||||
session,
|
session,
|
||||||
tag_id=tag_id,
|
tag_id=tag_id,
|
||||||
ctx=ctx,
|
ctx=ctx,
|
||||||
)
|
)
|
||||||
await crud.delete_where(
|
await crud.delete_where(
|
||||||
session,
|
session,
|
||||||
TaskTagAssignment,
|
TagAssignment,
|
||||||
col(TaskTagAssignment.tag_id) == tag.id,
|
col(TagAssignment.tag_id) == tag.id,
|
||||||
commit=False,
|
commit=False,
|
||||||
)
|
)
|
||||||
await session.delete(tag)
|
await session.delete(tag)
|
||||||
@@ -32,9 +32,9 @@ from app.models.agents import Agent
|
|||||||
from app.models.approval_task_links import ApprovalTaskLink
|
from app.models.approval_task_links import ApprovalTaskLink
|
||||||
from app.models.approvals import Approval
|
from app.models.approvals import Approval
|
||||||
from app.models.boards import Board
|
from app.models.boards import Board
|
||||||
|
from app.models.tag_assignments import TagAssignment
|
||||||
from app.models.task_dependencies import TaskDependency
|
from app.models.task_dependencies import TaskDependency
|
||||||
from app.models.task_fingerprints import TaskFingerprint
|
from app.models.task_fingerprints import TaskFingerprint
|
||||||
from app.models.task_tag_assignments import TaskTagAssignment
|
|
||||||
from app.models.tasks import Task
|
from app.models.tasks import Task
|
||||||
from app.schemas.activity_events import ActivityEventRead
|
from app.schemas.activity_events import ActivityEventRead
|
||||||
from app.schemas.common import OkResponse
|
from app.schemas.common import OkResponse
|
||||||
@@ -48,6 +48,12 @@ from app.services.openclaw.gateway_dispatch import GatewayDispatchService
|
|||||||
from app.services.openclaw.gateway_rpc import GatewayConfig as GatewayClientConfig
|
from app.services.openclaw.gateway_rpc import GatewayConfig as GatewayClientConfig
|
||||||
from app.services.openclaw.gateway_rpc import OpenClawGatewayError
|
from app.services.openclaw.gateway_rpc import OpenClawGatewayError
|
||||||
from app.services.organizations import require_board_access
|
from app.services.organizations import require_board_access
|
||||||
|
from app.services.tags import (
|
||||||
|
TagState,
|
||||||
|
load_tag_state,
|
||||||
|
replace_tags,
|
||||||
|
validate_tag_ids,
|
||||||
|
)
|
||||||
from app.services.task_dependencies import (
|
from app.services.task_dependencies import (
|
||||||
blocked_by_dependency_ids,
|
blocked_by_dependency_ids,
|
||||||
dependency_ids_by_task_id,
|
dependency_ids_by_task_id,
|
||||||
@@ -56,12 +62,6 @@ from app.services.task_dependencies import (
|
|||||||
replace_task_dependencies,
|
replace_task_dependencies,
|
||||||
validate_dependency_update,
|
validate_dependency_update,
|
||||||
)
|
)
|
||||||
from app.services.task_tags import (
|
|
||||||
TaskTagState,
|
|
||||||
load_task_tag_state,
|
|
||||||
replace_task_tags,
|
|
||||||
validate_task_tag_ids,
|
|
||||||
)
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from collections.abc import AsyncIterator, Sequence
|
from collections.abc import AsyncIterator, Sequence
|
||||||
@@ -583,7 +583,7 @@ async def _task_read_page(
|
|||||||
return []
|
return []
|
||||||
|
|
||||||
task_ids = [task.id for task in tasks]
|
task_ids = [task.id for task in tasks]
|
||||||
tag_state_by_task_id = await load_task_tag_state(
|
tag_state_by_task_id = await load_tag_state(
|
||||||
session,
|
session,
|
||||||
task_ids=task_ids,
|
task_ids=task_ids,
|
||||||
)
|
)
|
||||||
@@ -603,7 +603,7 @@ async def _task_read_page(
|
|||||||
|
|
||||||
output: list[TaskRead] = []
|
output: list[TaskRead] = []
|
||||||
for task in tasks:
|
for task in tasks:
|
||||||
tag_state = tag_state_by_task_id.get(task.id, TaskTagState())
|
tag_state = tag_state_by_task_id.get(task.id, TagState())
|
||||||
dep_list = deps_map.get(task.id, [])
|
dep_list = deps_map.get(task.id, [])
|
||||||
blocked_by = blocked_by_dependency_ids(
|
blocked_by = blocked_by_dependency_ids(
|
||||||
dependency_ids=dep_list,
|
dependency_ids=dep_list,
|
||||||
@@ -630,14 +630,14 @@ async def _stream_task_state(
|
|||||||
*,
|
*,
|
||||||
board_id: UUID,
|
board_id: UUID,
|
||||||
rows: list[tuple[ActivityEvent, Task | None]],
|
rows: list[tuple[ActivityEvent, Task | None]],
|
||||||
) -> tuple[dict[UUID, list[UUID]], dict[UUID, str], dict[UUID, TaskTagState]]:
|
) -> tuple[dict[UUID, list[UUID]], dict[UUID, str], dict[UUID, TagState]]:
|
||||||
task_ids = [
|
task_ids = [
|
||||||
task.id for event, task in rows if task is not None and event.event_type != "task.comment"
|
task.id for event, task in rows if task is not None and event.event_type != "task.comment"
|
||||||
]
|
]
|
||||||
if not task_ids:
|
if not task_ids:
|
||||||
return {}, {}, {}
|
return {}, {}, {}
|
||||||
|
|
||||||
tag_state_by_task_id = await load_task_tag_state(
|
tag_state_by_task_id = await load_tag_state(
|
||||||
session,
|
session,
|
||||||
task_ids=list({*task_ids}),
|
task_ids=list({*task_ids}),
|
||||||
)
|
)
|
||||||
@@ -666,7 +666,7 @@ def _task_event_payload(
|
|||||||
*,
|
*,
|
||||||
deps_map: dict[UUID, list[UUID]],
|
deps_map: dict[UUID, list[UUID]],
|
||||||
dep_status: dict[UUID, str],
|
dep_status: dict[UUID, str],
|
||||||
tag_state_by_task_id: dict[UUID, TaskTagState],
|
tag_state_by_task_id: dict[UUID, TagState],
|
||||||
) -> dict[str, object]:
|
) -> dict[str, object]:
|
||||||
payload: dict[str, object] = {
|
payload: dict[str, object] = {
|
||||||
"type": event.event_type,
|
"type": event.event_type,
|
||||||
@@ -679,7 +679,7 @@ def _task_event_payload(
|
|||||||
payload["task"] = None
|
payload["task"] = None
|
||||||
return payload
|
return payload
|
||||||
|
|
||||||
tag_state = tag_state_by_task_id.get(task.id, TaskTagState())
|
tag_state = tag_state_by_task_id.get(task.id, TagState())
|
||||||
dep_list = deps_map.get(task.id, [])
|
dep_list = deps_map.get(task.id, [])
|
||||||
blocked_by = blocked_by_dependency_ids(
|
blocked_by = blocked_by_dependency_ids(
|
||||||
dependency_ids=dep_list,
|
dependency_ids=dep_list,
|
||||||
@@ -816,7 +816,7 @@ async def create_task(
|
|||||||
task_id=task.id,
|
task_id=task.id,
|
||||||
depends_on_task_ids=depends_on_task_ids,
|
depends_on_task_ids=depends_on_task_ids,
|
||||||
)
|
)
|
||||||
normalized_tag_ids = await validate_task_tag_ids(
|
normalized_tag_ids = await validate_tag_ids(
|
||||||
session,
|
session,
|
||||||
organization_id=board.organization_id,
|
organization_id=board.organization_id,
|
||||||
tag_ids=tag_ids,
|
tag_ids=tag_ids,
|
||||||
@@ -843,7 +843,7 @@ async def create_task(
|
|||||||
depends_on_task_id=dep_id,
|
depends_on_task_id=dep_id,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
await replace_task_tags(
|
await replace_tags(
|
||||||
session,
|
session,
|
||||||
task_id=task.id,
|
task_id=task.id,
|
||||||
tag_ids=normalized_tag_ids,
|
tag_ids=normalized_tag_ids,
|
||||||
@@ -994,8 +994,8 @@ async def delete_task(
|
|||||||
)
|
)
|
||||||
await crud.delete_where(
|
await crud.delete_where(
|
||||||
session,
|
session,
|
||||||
TaskTagAssignment,
|
TagAssignment,
|
||||||
col(TaskTagAssignment.task_id) == task.id,
|
col(TagAssignment.task_id) == task.id,
|
||||||
commit=False,
|
commit=False,
|
||||||
)
|
)
|
||||||
await session.delete(task)
|
await session.delete(task)
|
||||||
@@ -1231,9 +1231,9 @@ async def _task_read_response(
|
|||||||
board_id: UUID,
|
board_id: UUID,
|
||||||
) -> TaskRead:
|
) -> TaskRead:
|
||||||
dep_ids = await _task_dep_ids(session, board_id=board_id, task_id=task.id)
|
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(
|
tag_state = (await load_tag_state(session, task_ids=[task.id])).get(
|
||||||
task.id,
|
task.id,
|
||||||
TaskTagState(),
|
TagState(),
|
||||||
)
|
)
|
||||||
blocked_ids = await _task_blocked_ids(
|
blocked_ids = await _task_blocked_ids(
|
||||||
session,
|
session,
|
||||||
@@ -1337,7 +1337,7 @@ async def _normalized_update_tag_ids(
|
|||||||
session,
|
session,
|
||||||
board_id=update.board_id,
|
board_id=update.board_id,
|
||||||
)
|
)
|
||||||
return await validate_task_tag_ids(
|
return await validate_tag_ids(
|
||||||
session,
|
session,
|
||||||
organization_id=organization_id,
|
organization_id=organization_id,
|
||||||
tag_ids=update.tag_ids,
|
tag_ids=update.tag_ids,
|
||||||
@@ -1449,7 +1449,7 @@ async def _apply_lead_task_update(
|
|||||||
_lead_apply_status(update)
|
_lead_apply_status(update)
|
||||||
|
|
||||||
if normalized_tag_ids is not None:
|
if normalized_tag_ids is not None:
|
||||||
await replace_task_tags(
|
await replace_tags(
|
||||||
session,
|
session,
|
||||||
task_id=update.task.id,
|
task_id=update.task.id,
|
||||||
tag_ids=normalized_tag_ids,
|
tag_ids=normalized_tag_ids,
|
||||||
@@ -1723,7 +1723,7 @@ async def _finalize_updated_task(
|
|||||||
update=update,
|
update=update,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
await replace_task_tags(
|
await replace_tags(
|
||||||
session,
|
session,
|
||||||
task_id=update.task.id,
|
task_id=update.task.id,
|
||||||
tag_ids=normalized or [],
|
tag_ids=normalized or [],
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ from app.api.gateways import router as gateways_router
|
|||||||
from app.api.metrics import router as metrics_router
|
from app.api.metrics import router as metrics_router
|
||||||
from app.api.organizations import router as organizations_router
|
from app.api.organizations import router as organizations_router
|
||||||
from app.api.souls_directory import router as souls_directory_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.tags import router as tags_router
|
||||||
from app.api.tasks import router as tasks_router
|
from app.api.tasks import router as tasks_router
|
||||||
from app.api.users import router as users_router
|
from app.api.users import router as users_router
|
||||||
from app.core.config import settings
|
from app.core.config import settings
|
||||||
@@ -108,7 +108,7 @@ api_v1.include_router(board_memory_router)
|
|||||||
api_v1.include_router(board_onboarding_router)
|
api_v1.include_router(board_onboarding_router)
|
||||||
api_v1.include_router(approvals_router)
|
api_v1.include_router(approvals_router)
|
||||||
api_v1.include_router(tasks_router)
|
api_v1.include_router(tasks_router)
|
||||||
api_v1.include_router(task_tags_router)
|
api_v1.include_router(tags_router)
|
||||||
api_v1.include_router(users_router)
|
api_v1.include_router(users_router)
|
||||||
app.include_router(api_v1)
|
app.include_router(api_v1)
|
||||||
|
|
||||||
|
|||||||
@@ -15,10 +15,10 @@ from app.models.organization_invite_board_access import OrganizationInviteBoardA
|
|||||||
from app.models.organization_invites import OrganizationInvite
|
from app.models.organization_invites import OrganizationInvite
|
||||||
from app.models.organization_members import OrganizationMember
|
from app.models.organization_members import OrganizationMember
|
||||||
from app.models.organizations import Organization
|
from app.models.organizations import Organization
|
||||||
|
from app.models.tag_assignments import TagAssignment
|
||||||
|
from app.models.tags import Tag
|
||||||
from app.models.task_dependencies import TaskDependency
|
from app.models.task_dependencies import TaskDependency
|
||||||
from app.models.task_fingerprints import TaskFingerprint
|
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.tasks import Task
|
||||||
from app.models.users import User
|
from app.models.users import User
|
||||||
|
|
||||||
@@ -41,7 +41,7 @@ __all__ = [
|
|||||||
"TaskDependency",
|
"TaskDependency",
|
||||||
"Task",
|
"Task",
|
||||||
"TaskFingerprint",
|
"TaskFingerprint",
|
||||||
"TaskTag",
|
"Tag",
|
||||||
"TaskTagAssignment",
|
"TagAssignment",
|
||||||
"User",
|
"User",
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -14,19 +14,19 @@ from app.models.base import QueryModel
|
|||||||
RUNTIME_ANNOTATION_TYPES = (datetime,)
|
RUNTIME_ANNOTATION_TYPES = (datetime,)
|
||||||
|
|
||||||
|
|
||||||
class TaskTagAssignment(QueryModel, table=True):
|
class TagAssignment(QueryModel, table=True):
|
||||||
"""Association row mapping one task to one tag."""
|
"""Association row mapping one task to one tag."""
|
||||||
|
|
||||||
__tablename__ = "task_tag_assignments" # pyright: ignore[reportAssignmentType]
|
__tablename__ = "tag_assignments" # pyright: ignore[reportAssignmentType]
|
||||||
__table_args__ = (
|
__table_args__ = (
|
||||||
UniqueConstraint(
|
UniqueConstraint(
|
||||||
"task_id",
|
"task_id",
|
||||||
"tag_id",
|
"tag_id",
|
||||||
name="uq_task_tag_assignments_task_id_tag_id",
|
name="uq_tag_assignments_task_id_tag_id",
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
id: UUID = Field(default_factory=uuid4, primary_key=True)
|
id: UUID = Field(default_factory=uuid4, primary_key=True)
|
||||||
task_id: UUID = Field(foreign_key="tasks.id", index=True)
|
task_id: UUID = Field(foreign_key="tasks.id", index=True)
|
||||||
tag_id: UUID = Field(foreign_key="task_tags.id", index=True)
|
tag_id: UUID = Field(foreign_key="tags.id", index=True)
|
||||||
created_at: datetime = Field(default_factory=utcnow)
|
created_at: datetime = Field(default_factory=utcnow)
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
"""Task tag model for organization-scoped task categorization."""
|
"""Tag model for organization-scoped task categorization."""
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
@@ -14,15 +14,15 @@ from app.models.tenancy import TenantScoped
|
|||||||
RUNTIME_ANNOTATION_TYPES = (datetime,)
|
RUNTIME_ANNOTATION_TYPES = (datetime,)
|
||||||
|
|
||||||
|
|
||||||
class TaskTag(TenantScoped, table=True):
|
class Tag(TenantScoped, table=True):
|
||||||
"""Organization-scoped task tag used to classify and group tasks."""
|
"""Organization-scoped tag used to classify and group tasks."""
|
||||||
|
|
||||||
__tablename__ = "task_tags" # pyright: ignore[reportAssignmentType]
|
__tablename__ = "tags" # pyright: ignore[reportAssignmentType]
|
||||||
__table_args__ = (
|
__table_args__ = (
|
||||||
UniqueConstraint(
|
UniqueConstraint(
|
||||||
"organization_id",
|
"organization_id",
|
||||||
"slug",
|
"slug",
|
||||||
name="uq_task_tags_organization_id_slug",
|
name="uq_tags_organization_id_slug",
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -31,7 +31,7 @@ from app.schemas.souls_directory import (
|
|||||||
SoulsDirectorySearchResponse,
|
SoulsDirectorySearchResponse,
|
||||||
SoulsDirectorySoulRef,
|
SoulsDirectorySoulRef,
|
||||||
)
|
)
|
||||||
from app.schemas.task_tags import TaskTagCreate, TaskTagRead, TaskTagRef, TaskTagUpdate
|
from app.schemas.tags import TagCreate, TagRead, TagRef, TagUpdate
|
||||||
from app.schemas.tasks import TaskCreate, TaskRead, TaskUpdate
|
from app.schemas.tasks import TaskCreate, TaskRead, TaskUpdate
|
||||||
from app.schemas.users import UserCreate, UserRead, UserUpdate
|
from app.schemas.users import UserCreate, UserRead, UserUpdate
|
||||||
|
|
||||||
@@ -71,10 +71,10 @@ __all__ = [
|
|||||||
"SoulsDirectoryMarkdownResponse",
|
"SoulsDirectoryMarkdownResponse",
|
||||||
"SoulsDirectorySearchResponse",
|
"SoulsDirectorySearchResponse",
|
||||||
"SoulsDirectorySoulRef",
|
"SoulsDirectorySoulRef",
|
||||||
"TaskTagCreate",
|
"TagCreate",
|
||||||
"TaskTagRead",
|
"TagRead",
|
||||||
"TaskTagRef",
|
"TagRef",
|
||||||
"TaskTagUpdate",
|
"TagUpdate",
|
||||||
"TaskCreate",
|
"TaskCreate",
|
||||||
"TaskRead",
|
"TaskRead",
|
||||||
"TaskUpdate",
|
"TaskUpdate",
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
"""Schemas for task-tag CRUD payloads."""
|
"""Schemas for tag CRUD payloads."""
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
@@ -27,8 +27,8 @@ def _normalize_color(value: str | None) -> str | None:
|
|||||||
return cleaned
|
return cleaned
|
||||||
|
|
||||||
|
|
||||||
class TaskTagBase(SQLModel):
|
class TagBase(SQLModel):
|
||||||
"""Shared task-tag fields for create/read payloads."""
|
"""Shared tag fields for create/read payloads."""
|
||||||
|
|
||||||
name: str
|
name: str
|
||||||
slug: str
|
slug: str
|
||||||
@@ -36,8 +36,8 @@ class TaskTagBase(SQLModel):
|
|||||||
description: str | None = None
|
description: str | None = None
|
||||||
|
|
||||||
|
|
||||||
class TaskTagRef(SQLModel):
|
class TagRef(SQLModel):
|
||||||
"""Compact task-tag representation embedded in task payloads."""
|
"""Compact tag representation embedded in task payloads."""
|
||||||
|
|
||||||
id: UUID
|
id: UUID
|
||||||
name: str
|
name: str
|
||||||
@@ -45,8 +45,8 @@ class TaskTagRef(SQLModel):
|
|||||||
color: str
|
color: str
|
||||||
|
|
||||||
|
|
||||||
class TaskTagCreate(SQLModel):
|
class TagCreate(SQLModel):
|
||||||
"""Payload for creating a task tag."""
|
"""Payload for creating a tag."""
|
||||||
|
|
||||||
name: NonEmptyStr
|
name: NonEmptyStr
|
||||||
slug: str | None = None
|
slug: str | None = None
|
||||||
@@ -76,8 +76,8 @@ class TaskTagCreate(SQLModel):
|
|||||||
return value
|
return value
|
||||||
|
|
||||||
|
|
||||||
class TaskTagUpdate(SQLModel):
|
class TagUpdate(SQLModel):
|
||||||
"""Payload for partial task-tag updates."""
|
"""Payload for partial tag updates."""
|
||||||
|
|
||||||
name: NonEmptyStr | None = None
|
name: NonEmptyStr | None = None
|
||||||
slug: str | None = None
|
slug: str | None = None
|
||||||
@@ -116,8 +116,8 @@ class TaskTagUpdate(SQLModel):
|
|||||||
return self
|
return self
|
||||||
|
|
||||||
|
|
||||||
class TaskTagRead(TaskTagBase):
|
class TagRead(TagBase):
|
||||||
"""Task-tag payload returned from API endpoints."""
|
"""Tag payload returned from API endpoints."""
|
||||||
|
|
||||||
id: UUID
|
id: UUID
|
||||||
organization_id: UUID
|
organization_id: UUID
|
||||||
@@ -10,13 +10,13 @@ from pydantic import field_validator, model_validator
|
|||||||
from sqlmodel import Field, SQLModel
|
from sqlmodel import Field, SQLModel
|
||||||
|
|
||||||
from app.schemas.common import NonEmptyStr
|
from app.schemas.common import NonEmptyStr
|
||||||
from app.schemas.task_tags import TaskTagRef
|
from app.schemas.tags import TagRef
|
||||||
|
|
||||||
TaskStatus = Literal["inbox", "in_progress", "review", "done"]
|
TaskStatus = Literal["inbox", "in_progress", "review", "done"]
|
||||||
STATUS_REQUIRED_ERROR = "status is required"
|
STATUS_REQUIRED_ERROR = "status is required"
|
||||||
# Keep these symbols as runtime globals so Pydantic can resolve
|
# Keep these symbols as runtime globals so Pydantic can resolve
|
||||||
# deferred annotations reliably.
|
# deferred annotations reliably.
|
||||||
RUNTIME_ANNOTATION_TYPES = (datetime, UUID, NonEmptyStr, TaskTagRef)
|
RUNTIME_ANNOTATION_TYPES = (datetime, UUID, NonEmptyStr, TagRef)
|
||||||
|
|
||||||
|
|
||||||
class TaskBase(SQLModel):
|
class TaskBase(SQLModel):
|
||||||
@@ -80,7 +80,7 @@ class TaskRead(TaskBase):
|
|||||||
updated_at: datetime
|
updated_at: datetime
|
||||||
blocked_by_task_ids: list[UUID] = Field(default_factory=list)
|
blocked_by_task_ids: list[UUID] = Field(default_factory=list)
|
||||||
is_blocked: bool = False
|
is_blocked: bool = False
|
||||||
tags: list[TaskTagRef] = Field(default_factory=list)
|
tags: list[TagRef] = Field(default_factory=list)
|
||||||
|
|
||||||
|
|
||||||
class TaskCommentCreate(SQLModel):
|
class TaskCommentCreate(SQLModel):
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ from app.schemas.approvals import ApprovalRead
|
|||||||
from app.schemas.board_groups import BoardGroupRead
|
from app.schemas.board_groups import BoardGroupRead
|
||||||
from app.schemas.board_memory import BoardMemoryRead
|
from app.schemas.board_memory import BoardMemoryRead
|
||||||
from app.schemas.boards import BoardRead
|
from app.schemas.boards import BoardRead
|
||||||
from app.schemas.task_tags import TaskTagRef
|
from app.schemas.tags import TagRef
|
||||||
from app.schemas.tasks import TaskRead
|
from app.schemas.tasks import TaskRead
|
||||||
|
|
||||||
RUNTIME_ANNOTATION_TYPES = (
|
RUNTIME_ANNOTATION_TYPES = (
|
||||||
@@ -23,7 +23,7 @@ RUNTIME_ANNOTATION_TYPES = (
|
|||||||
BoardGroupRead,
|
BoardGroupRead,
|
||||||
BoardMemoryRead,
|
BoardMemoryRead,
|
||||||
BoardRead,
|
BoardRead,
|
||||||
TaskTagRef,
|
TagRef,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -59,7 +59,7 @@ class BoardGroupTaskSummary(SQLModel):
|
|||||||
assignee: str | None = None
|
assignee: str | None = None
|
||||||
due_at: datetime | None = None
|
due_at: datetime | None = None
|
||||||
in_progress_at: datetime | None = None
|
in_progress_at: datetime | None = None
|
||||||
tags: list[TaskTagRef] = Field(default_factory=list)
|
tags: list[TagRef] = Field(default_factory=list)
|
||||||
created_at: datetime
|
created_at: datetime
|
||||||
updated_at: datetime
|
updated_at: datetime
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ from app.schemas.view_models import (
|
|||||||
BoardGroupSnapshot,
|
BoardGroupSnapshot,
|
||||||
BoardGroupTaskSummary,
|
BoardGroupTaskSummary,
|
||||||
)
|
)
|
||||||
from app.services.task_tags import TaskTagState, load_task_tag_state
|
from app.services.tags import TagState, load_tag_state
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from sqlalchemy.sql.elements import ColumnElement
|
from sqlalchemy.sql.elements import ColumnElement
|
||||||
@@ -123,7 +123,7 @@ def _task_summaries_by_board(
|
|||||||
boards_by_id: dict[UUID, Board],
|
boards_by_id: dict[UUID, Board],
|
||||||
tasks: list[Task],
|
tasks: list[Task],
|
||||||
agent_name_by_id: dict[UUID, str],
|
agent_name_by_id: dict[UUID, str],
|
||||||
tag_state_by_task_id: dict[UUID, TaskTagState],
|
tag_state_by_task_id: dict[UUID, TagState],
|
||||||
per_board_task_limit: int,
|
per_board_task_limit: int,
|
||||||
) -> dict[UUID, list[BoardGroupTaskSummary]]:
|
) -> dict[UUID, list[BoardGroupTaskSummary]]:
|
||||||
"""Build limited per-board task summary lists."""
|
"""Build limited per-board task summary lists."""
|
||||||
@@ -156,7 +156,7 @@ def _task_summaries_by_board(
|
|||||||
),
|
),
|
||||||
due_at=task.due_at,
|
due_at=task.due_at,
|
||||||
in_progress_at=task.in_progress_at,
|
in_progress_at=task.in_progress_at,
|
||||||
tags=tag_state_by_task_id.get(task.id, TaskTagState()).tags,
|
tags=tag_state_by_task_id.get(task.id, TagState()).tags,
|
||||||
created_at=task.created_at,
|
created_at=task.created_at,
|
||||||
updated_at=task.updated_at,
|
updated_at=task.updated_at,
|
||||||
),
|
),
|
||||||
@@ -191,7 +191,7 @@ async def build_group_snapshot(
|
|||||||
include_done=include_done,
|
include_done=include_done,
|
||||||
)
|
)
|
||||||
agent_name_by_id = await _agent_names(session, tasks)
|
agent_name_by_id = await _agent_names(session, tasks)
|
||||||
tag_state_by_task_id = await load_task_tag_state(
|
tag_state_by_task_id = await load_tag_state(
|
||||||
session,
|
session,
|
||||||
task_ids=[task.id for task in tasks],
|
task_ids=[task.id for task in tasks],
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -17,12 +17,12 @@ from app.schemas.boards import BoardRead
|
|||||||
from app.schemas.view_models import BoardSnapshot, TaskCardRead
|
from app.schemas.view_models import BoardSnapshot, TaskCardRead
|
||||||
from app.services.approval_task_links import load_task_ids_by_approval, task_counts_for_board
|
from app.services.approval_task_links import load_task_ids_by_approval, task_counts_for_board
|
||||||
from app.services.openclaw.provisioning_db import AgentLifecycleService
|
from app.services.openclaw.provisioning_db import AgentLifecycleService
|
||||||
|
from app.services.tags import TagState, load_tag_state
|
||||||
from app.services.task_dependencies import (
|
from app.services.task_dependencies import (
|
||||||
blocked_by_dependency_ids,
|
blocked_by_dependency_ids,
|
||||||
dependency_ids_by_task_id,
|
dependency_ids_by_task_id,
|
||||||
dependency_status_by_id,
|
dependency_status_by_id,
|
||||||
)
|
)
|
||||||
from app.services.task_tags import TaskTagState, load_task_tag_state
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from uuid import UUID
|
from uuid import UUID
|
||||||
@@ -49,13 +49,13 @@ def _task_to_card(
|
|||||||
counts_by_task_id: dict[UUID, tuple[int, int]],
|
counts_by_task_id: dict[UUID, tuple[int, int]],
|
||||||
deps_by_task_id: dict[UUID, list[UUID]],
|
deps_by_task_id: dict[UUID, list[UUID]],
|
||||||
dependency_status_by_id_map: dict[UUID, str],
|
dependency_status_by_id_map: dict[UUID, str],
|
||||||
tag_state_by_task_id: dict[UUID, TaskTagState],
|
tag_state_by_task_id: dict[UUID, TagState],
|
||||||
) -> TaskCardRead:
|
) -> TaskCardRead:
|
||||||
card = TaskCardRead.model_validate(task, from_attributes=True)
|
card = TaskCardRead.model_validate(task, from_attributes=True)
|
||||||
approvals_count, approvals_pending_count = counts_by_task_id.get(task.id, (0, 0))
|
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
|
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, [])
|
depends_on_task_ids = deps_by_task_id.get(task.id, [])
|
||||||
tag_state = tag_state_by_task_id.get(task.id, TaskTagState())
|
tag_state = tag_state_by_task_id.get(task.id, TagState())
|
||||||
blocked_by_task_ids = blocked_by_dependency_ids(
|
blocked_by_task_ids = blocked_by_dependency_ids(
|
||||||
dependency_ids=depends_on_task_ids,
|
dependency_ids=depends_on_task_ids,
|
||||||
status_by_id=dependency_status_by_id_map,
|
status_by_id=dependency_status_by_id_map,
|
||||||
@@ -86,7 +86,7 @@ async def build_board_snapshot(session: AsyncSession, board: Board) -> BoardSnap
|
|||||||
.all(session),
|
.all(session),
|
||||||
)
|
)
|
||||||
task_ids = [task.id for task in tasks]
|
task_ids = [task.id for task in tasks]
|
||||||
tag_state_by_task_id = await load_task_tag_state(
|
tag_state_by_task_id = await load_tag_state(
|
||||||
session,
|
session,
|
||||||
task_ids=task_ids,
|
task_ids=task_ids,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
"""Helpers for validating and loading task tags and task-tag mappings."""
|
"""Helpers for validating and loading tags and tag mappings."""
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
@@ -13,9 +13,9 @@ from fastapi import HTTPException, status
|
|||||||
from sqlalchemy import delete, func
|
from sqlalchemy import delete, func
|
||||||
from sqlmodel import col, select
|
from sqlmodel import col, select
|
||||||
|
|
||||||
from app.models.task_tag_assignments import TaskTagAssignment
|
from app.models.tag_assignments import TagAssignment
|
||||||
from app.models.task_tags import TaskTag
|
from app.models.tags import Tag
|
||||||
from app.schemas.task_tags import TaskTagRef
|
from app.schemas.tags import TagRef
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from sqlmodel.ext.asyncio.session import AsyncSession
|
from sqlmodel.ext.asyncio.session import AsyncSession
|
||||||
@@ -23,7 +23,7 @@ if TYPE_CHECKING:
|
|||||||
SLUG_RE = re.compile(r"[^a-z0-9]+")
|
SLUG_RE = re.compile(r"[^a-z0-9]+")
|
||||||
|
|
||||||
|
|
||||||
def slugify_task_tag(value: str) -> str:
|
def slugify_tag(value: str) -> str:
|
||||||
"""Build a slug from arbitrary text using lowercase alphanumeric groups."""
|
"""Build a slug from arbitrary text using lowercase alphanumeric groups."""
|
||||||
slug = SLUG_RE.sub("-", value.lower()).strip("-")
|
slug = SLUG_RE.sub("-", value.lower()).strip("-")
|
||||||
return slug or "tag"
|
return slug or "tag"
|
||||||
@@ -40,22 +40,22 @@ def _dedupe_uuid_list(values: Sequence[UUID]) -> list[UUID]:
|
|||||||
return deduped
|
return deduped
|
||||||
|
|
||||||
|
|
||||||
async def validate_task_tag_ids(
|
async def validate_tag_ids(
|
||||||
session: AsyncSession,
|
session: AsyncSession,
|
||||||
*,
|
*,
|
||||||
organization_id: UUID,
|
organization_id: UUID,
|
||||||
tag_ids: Sequence[UUID],
|
tag_ids: Sequence[UUID],
|
||||||
) -> list[UUID]:
|
) -> list[UUID]:
|
||||||
"""Validate task-tag IDs within an organization and return deduped IDs."""
|
"""Validate tag IDs within an organization and return deduped IDs."""
|
||||||
normalized = _dedupe_uuid_list(tag_ids)
|
normalized = _dedupe_uuid_list(tag_ids)
|
||||||
if not normalized:
|
if not normalized:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
existing_ids = set(
|
existing_ids = set(
|
||||||
await session.exec(
|
await session.exec(
|
||||||
select(TaskTag.id)
|
select(Tag.id)
|
||||||
.where(col(TaskTag.organization_id) == organization_id)
|
.where(col(Tag.organization_id) == organization_id)
|
||||||
.where(col(TaskTag.id).in_(normalized)),
|
.where(col(Tag.id).in_(normalized)),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
missing = [tag_id for tag_id in normalized if tag_id not in existing_ids]
|
missing = [tag_id for tag_id in normalized if tag_id not in existing_ids]
|
||||||
@@ -63,7 +63,7 @@ async def validate_task_tag_ids(
|
|||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_404_NOT_FOUND,
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
detail={
|
detail={
|
||||||
"message": "One or more task tags do not exist in this organization.",
|
"message": "One or more tags do not exist in this organization.",
|
||||||
"missing_tag_ids": [str(tag_id) for tag_id in missing],
|
"missing_tag_ids": [str(tag_id) for tag_id in missing],
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
@@ -71,18 +71,18 @@ async def validate_task_tag_ids(
|
|||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
@dataclass(slots=True)
|
||||||
class TaskTagState:
|
class TagState:
|
||||||
"""Ordered task-tag state for a task payload."""
|
"""Ordered tag state for a task payload."""
|
||||||
|
|
||||||
tag_ids: list[UUID] = field(default_factory=list)
|
tag_ids: list[UUID] = field(default_factory=list)
|
||||||
tags: list[TaskTagRef] = field(default_factory=list)
|
tags: list[TagRef] = field(default_factory=list)
|
||||||
|
|
||||||
|
|
||||||
async def load_task_tag_state(
|
async def load_tag_state(
|
||||||
session: AsyncSession,
|
session: AsyncSession,
|
||||||
*,
|
*,
|
||||||
task_ids: Sequence[UUID],
|
task_ids: Sequence[UUID],
|
||||||
) -> dict[UUID, TaskTagState]:
|
) -> dict[UUID, TagState]:
|
||||||
"""Return ordered tag IDs and refs for each task id."""
|
"""Return ordered tag IDs and refs for each task id."""
|
||||||
normalized_task_ids = _dedupe_uuid_list(task_ids)
|
normalized_task_ids = _dedupe_uuid_list(task_ids)
|
||||||
if not normalized_task_ids:
|
if not normalized_task_ids:
|
||||||
@@ -91,25 +91,25 @@ async def load_task_tag_state(
|
|||||||
rows = list(
|
rows = list(
|
||||||
await session.exec(
|
await session.exec(
|
||||||
select(
|
select(
|
||||||
col(TaskTagAssignment.task_id),
|
col(TagAssignment.task_id),
|
||||||
TaskTag,
|
Tag,
|
||||||
)
|
)
|
||||||
.join(TaskTag, col(TaskTag.id) == col(TaskTagAssignment.tag_id))
|
.join(Tag, col(Tag.id) == col(TagAssignment.tag_id))
|
||||||
.where(col(TaskTagAssignment.task_id).in_(normalized_task_ids))
|
.where(col(TagAssignment.task_id).in_(normalized_task_ids))
|
||||||
.order_by(
|
.order_by(
|
||||||
col(TaskTagAssignment.task_id).asc(),
|
col(TagAssignment.task_id).asc(),
|
||||||
col(TaskTagAssignment.created_at).asc(),
|
col(TagAssignment.created_at).asc(),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
state_by_task_id: dict[UUID, TaskTagState] = defaultdict(TaskTagState)
|
state_by_task_id: dict[UUID, TagState] = defaultdict(TagState)
|
||||||
for task_id, tag in rows:
|
for task_id, tag in rows:
|
||||||
if task_id is None:
|
if task_id is None:
|
||||||
continue
|
continue
|
||||||
state = state_by_task_id[task_id]
|
state = state_by_task_id[task_id]
|
||||||
state.tag_ids.append(tag.id)
|
state.tag_ids.append(tag.id)
|
||||||
state.tags.append(
|
state.tags.append(
|
||||||
TaskTagRef(
|
TagRef(
|
||||||
id=tag.id,
|
id=tag.id,
|
||||||
name=tag.name,
|
name=tag.name,
|
||||||
slug=tag.slug,
|
slug=tag.slug,
|
||||||
@@ -119,7 +119,7 @@ async def load_task_tag_state(
|
|||||||
return dict(state_by_task_id)
|
return dict(state_by_task_id)
|
||||||
|
|
||||||
|
|
||||||
async def replace_task_tags(
|
async def replace_tags(
|
||||||
session: AsyncSession,
|
session: AsyncSession,
|
||||||
*,
|
*,
|
||||||
task_id: UUID,
|
task_id: UUID,
|
||||||
@@ -128,12 +128,12 @@ async def replace_task_tags(
|
|||||||
"""Replace all tag-assignment rows for a task."""
|
"""Replace all tag-assignment rows for a task."""
|
||||||
normalized = _dedupe_uuid_list(tag_ids)
|
normalized = _dedupe_uuid_list(tag_ids)
|
||||||
await session.exec(
|
await session.exec(
|
||||||
delete(TaskTagAssignment).where(
|
delete(TagAssignment).where(
|
||||||
col(TaskTagAssignment.task_id) == task_id,
|
col(TagAssignment.task_id) == task_id,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
for tag_id in normalized:
|
for tag_id in normalized:
|
||||||
session.add(TaskTagAssignment(task_id=task_id, tag_id=tag_id))
|
session.add(TagAssignment(task_id=task_id, tag_id=tag_id))
|
||||||
|
|
||||||
|
|
||||||
async def task_counts_for_tags(
|
async def task_counts_for_tags(
|
||||||
@@ -148,11 +148,11 @@ async def task_counts_for_tags(
|
|||||||
rows = list(
|
rows = list(
|
||||||
await session.exec(
|
await session.exec(
|
||||||
select(
|
select(
|
||||||
col(TaskTagAssignment.tag_id),
|
col(TagAssignment.tag_id),
|
||||||
func.count(col(TaskTagAssignment.task_id)),
|
func.count(col(TagAssignment.task_id)),
|
||||||
)
|
)
|
||||||
.where(col(TaskTagAssignment.tag_id).in_(normalized))
|
.where(col(TagAssignment.tag_id).in_(normalized))
|
||||||
.group_by(col(TaskTagAssignment.tag_id)),
|
.group_by(col(TagAssignment.tag_id)),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
return {tag_id: int(count or 0) for tag_id, count in rows}
|
return {tag_id: int(count or 0) for tag_id, count in rows}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
"""add task tags and task-tag assignments
|
"""add tags and tag assignments
|
||||||
|
|
||||||
Revision ID: d8c1e5a4f7b2
|
Revision ID: d8c1e5a4f7b2
|
||||||
Revises: 99cd6df95f85, b4338be78eec
|
Revises: 99cd6df95f85, b4338be78eec
|
||||||
@@ -38,28 +38,28 @@ def upgrade() -> None:
|
|||||||
sa.UniqueConstraint(
|
sa.UniqueConstraint(
|
||||||
"organization_id",
|
"organization_id",
|
||||||
"slug",
|
"slug",
|
||||||
name="uq_task_tags_organization_id_slug",
|
name="uq_tags_organization_id_slug",
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
task_tag_indexes = {item.get("name") for item in inspector.get_indexes("tags")}
|
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:
|
if op.f("ix_tags_organization_id") not in tag_indexes:
|
||||||
op.create_index(
|
op.create_index(
|
||||||
op.f("ix_task_tags_organization_id"),
|
op.f("ix_tags_organization_id"),
|
||||||
"tags",
|
"tags",
|
||||||
["organization_id"],
|
["organization_id"],
|
||||||
unique=False,
|
unique=False,
|
||||||
)
|
)
|
||||||
if op.f("ix_task_tags_slug") not in task_tag_indexes:
|
if op.f("ix_tags_slug") not in tag_indexes:
|
||||||
op.create_index(
|
op.create_index(
|
||||||
op.f("ix_task_tags_slug"),
|
op.f("ix_tags_slug"),
|
||||||
"tags",
|
"tags",
|
||||||
["slug"],
|
["slug"],
|
||||||
unique=False,
|
unique=False,
|
||||||
)
|
)
|
||||||
|
|
||||||
if not inspector.has_table("task_tag_assignments"):
|
if not inspector.has_table("tag_assignments"):
|
||||||
op.create_table(
|
op.create_table(
|
||||||
"task_tag_assignments",
|
"tag_assignments",
|
||||||
sa.Column("id", sa.Uuid(), nullable=False),
|
sa.Column("id", sa.Uuid(), nullable=False),
|
||||||
sa.Column("task_id", sa.Uuid(), nullable=False),
|
sa.Column("task_id", sa.Uuid(), nullable=False),
|
||||||
sa.Column("tag_id", sa.Uuid(), nullable=False),
|
sa.Column("tag_id", sa.Uuid(), nullable=False),
|
||||||
@@ -70,32 +70,32 @@ def upgrade() -> None:
|
|||||||
sa.UniqueConstraint(
|
sa.UniqueConstraint(
|
||||||
"task_id",
|
"task_id",
|
||||||
"tag_id",
|
"tag_id",
|
||||||
name="uq_task_tag_assignments_task_id_tag_id",
|
name="uq_tag_assignments_task_id_tag_id",
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
assignment_indexes = {
|
assignment_indexes = {
|
||||||
item.get("name") for item in inspector.get_indexes("task_tag_assignments")
|
item.get("name") for item in inspector.get_indexes("tag_assignments")
|
||||||
}
|
}
|
||||||
if op.f("ix_task_tag_assignments_task_id") not in assignment_indexes:
|
if op.f("ix_tag_assignments_task_id") not in assignment_indexes:
|
||||||
op.create_index(
|
op.create_index(
|
||||||
op.f("ix_task_tag_assignments_task_id"),
|
op.f("ix_tag_assignments_task_id"),
|
||||||
"task_tag_assignments",
|
"tag_assignments",
|
||||||
["task_id"],
|
["task_id"],
|
||||||
unique=False,
|
unique=False,
|
||||||
)
|
)
|
||||||
if op.f("ix_task_tag_assignments_tag_id") not in assignment_indexes:
|
if op.f("ix_tag_assignments_tag_id") not in assignment_indexes:
|
||||||
op.create_index(
|
op.create_index(
|
||||||
op.f("ix_task_tag_assignments_tag_id"),
|
op.f("ix_tag_assignments_tag_id"),
|
||||||
"task_tag_assignments",
|
"tag_assignments",
|
||||||
["tag_id"],
|
["tag_id"],
|
||||||
unique=False,
|
unique=False,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def downgrade() -> None:
|
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_tag_assignments_tag_id"), table_name="tag_assignments")
|
||||||
op.drop_index(op.f("ix_task_tag_assignments_task_id"), table_name="task_tag_assignments")
|
op.drop_index(op.f("ix_tag_assignments_task_id"), table_name="tag_assignments")
|
||||||
op.drop_table("task_tag_assignments")
|
op.drop_table("tag_assignments")
|
||||||
op.drop_index(op.f("ix_task_tags_slug"), table_name="tags")
|
op.drop_index(op.f("ix_tags_slug"), table_name="tags")
|
||||||
op.drop_index(op.f("ix_task_tags_organization_id"), table_name="tags")
|
op.drop_index(op.f("ix_tags_organization_id"), table_name="tags")
|
||||||
op.drop_table("tags")
|
op.drop_table("tags")
|
||||||
@@ -275,7 +275,7 @@ Body: {"depends_on_task_ids":["DEP_TASK_ID_1","DEP_TASK_ID_2"]}
|
|||||||
7) Creating new tasks:
|
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.
|
- 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.
|
- 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`.
|
- If 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`.
|
- Build and keep a local map: `slug/name -> tag_id`.
|
||||||
- Prefer 1-3 tags per task; avoid over-tagging.
|
- 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.
|
- 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.
|
||||||
|
|||||||
@@ -10,20 +10,20 @@ from app.api import agent as agent_api
|
|||||||
from app.core.agent_auth import AgentAuthContext
|
from app.core.agent_auth import AgentAuthContext
|
||||||
from app.models.agents import Agent
|
from app.models.agents import Agent
|
||||||
from app.models.boards import Board
|
from app.models.boards import Board
|
||||||
from app.models.task_tags import TaskTag
|
from app.models.tags import Tag
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class _FakeExecResult:
|
class _FakeExecResult:
|
||||||
tags: list[TaskTag]
|
tags: list[Tag]
|
||||||
|
|
||||||
def all(self) -> list[TaskTag]:
|
def all(self) -> list[Tag]:
|
||||||
return self.tags
|
return self.tags
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class _FakeSession:
|
class _FakeSession:
|
||||||
tags: list[TaskTag]
|
tags: list[Tag]
|
||||||
|
|
||||||
async def exec(self, _query: object) -> _FakeExecResult:
|
async def exec(self, _query: object) -> _FakeExecResult:
|
||||||
return _FakeExecResult(self.tags)
|
return _FakeExecResult(self.tags)
|
||||||
@@ -52,18 +52,18 @@ def _agent_ctx(*, board_id: UUID | None) -> AgentAuthContext:
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_list_task_tags_returns_task_tag_refs() -> None:
|
async def test_list_tags_returns_tag_refs() -> None:
|
||||||
board = _board()
|
board = _board()
|
||||||
session = _FakeSession(
|
session = _FakeSession(
|
||||||
tags=[
|
tags=[
|
||||||
TaskTag(
|
Tag(
|
||||||
id=uuid4(),
|
id=uuid4(),
|
||||||
organization_id=board.organization_id,
|
organization_id=board.organization_id,
|
||||||
name="Backend",
|
name="Backend",
|
||||||
slug="backend",
|
slug="backend",
|
||||||
color="0f172a",
|
color="0f172a",
|
||||||
),
|
),
|
||||||
TaskTag(
|
Tag(
|
||||||
id=uuid4(),
|
id=uuid4(),
|
||||||
organization_id=board.organization_id,
|
organization_id=board.organization_id,
|
||||||
name="Urgent",
|
name="Urgent",
|
||||||
@@ -73,7 +73,7 @@ async def test_list_task_tags_returns_task_tag_refs() -> None:
|
|||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
response = await agent_api.list_task_tags(
|
response = await agent_api.list_tags(
|
||||||
board=board,
|
board=board,
|
||||||
session=session, # type: ignore[arg-type]
|
session=session, # type: ignore[arg-type]
|
||||||
agent_ctx=_agent_ctx(board_id=board.id),
|
agent_ctx=_agent_ctx(board_id=board.id),
|
||||||
@@ -85,12 +85,12 @@ async def test_list_task_tags_returns_task_tag_refs() -> None:
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_list_task_tags_rejects_cross_board_agent() -> None:
|
async def test_list_tags_rejects_cross_board_agent() -> None:
|
||||||
board = _board()
|
board = _board()
|
||||||
session = _FakeSession(tags=[])
|
session = _FakeSession(tags=[])
|
||||||
|
|
||||||
with pytest.raises(HTTPException) as exc:
|
with pytest.raises(HTTPException) as exc:
|
||||||
await agent_api.list_task_tags(
|
await agent_api.list_tags(
|
||||||
board=board,
|
board=board,
|
||||||
session=session, # type: ignore[arg-type]
|
session=session, # type: ignore[arg-type]
|
||||||
agent_ctx=_agent_ctx(board_id=uuid4()),
|
agent_ctx=_agent_ctx(board_id=uuid4()),
|
||||||
@@ -7,8 +7,8 @@ from uuid import uuid4
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from app.models.task_tags import TaskTag
|
from app.models.tags import Tag
|
||||||
from app.services import task_tags
|
from app.services import tags
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
@@ -27,18 +27,18 @@ class _FakeSession:
|
|||||||
self.added.append(value)
|
self.added.append(value)
|
||||||
|
|
||||||
|
|
||||||
def test_slugify_task_tag_normalizes_text():
|
def test_slugify_tag_normalizes_text():
|
||||||
assert task_tags.slugify_task_tag("Release / QA") == "release-qa"
|
assert tags.slugify_tag("Release / QA") == "release-qa"
|
||||||
assert task_tags.slugify_task_tag(" ### ") == "tag"
|
assert tags.slugify_tag(" ### ") == "tag"
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_validate_task_tag_ids_dedupes_and_preserves_order():
|
async def test_validate_tag_ids_dedupes_and_preserves_order():
|
||||||
org_id = uuid4()
|
org_id = uuid4()
|
||||||
tag_a = uuid4()
|
tag_a = uuid4()
|
||||||
tag_b = uuid4()
|
tag_b = uuid4()
|
||||||
session = _FakeSession(exec_results=[{tag_a, tag_b}])
|
session = _FakeSession(exec_results=[{tag_a, tag_b}])
|
||||||
result = await task_tags.validate_task_tag_ids(
|
result = await tags.validate_tag_ids(
|
||||||
session,
|
session,
|
||||||
organization_id=org_id,
|
organization_id=org_id,
|
||||||
tag_ids=[tag_a, tag_b, tag_a],
|
tag_ids=[tag_a, tag_b, tag_a],
|
||||||
@@ -47,13 +47,13 @@ async def test_validate_task_tag_ids_dedupes_and_preserves_order():
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_validate_task_tag_ids_rejects_missing_tags():
|
async def test_validate_tag_ids_rejects_missing_tags():
|
||||||
org_id = uuid4()
|
org_id = uuid4()
|
||||||
tag_a = uuid4()
|
tag_a = uuid4()
|
||||||
missing = uuid4()
|
missing = uuid4()
|
||||||
session = _FakeSession(exec_results=[{tag_a}])
|
session = _FakeSession(exec_results=[{tag_a}])
|
||||||
with pytest.raises(task_tags.HTTPException) as exc:
|
with pytest.raises(tags.HTTPException) as exc:
|
||||||
await task_tags.validate_task_tag_ids(
|
await tags.validate_tag_ids(
|
||||||
session,
|
session,
|
||||||
organization_id=org_id,
|
organization_id=org_id,
|
||||||
tag_ids=[tag_a, missing],
|
tag_ids=[tag_a, missing],
|
||||||
@@ -63,7 +63,7 @@ async def test_validate_task_tag_ids_rejects_missing_tags():
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_load_task_tag_state_groups_rows_by_task_id():
|
async def test_load_tag_state_groups_rows_by_task_id():
|
||||||
task_a = uuid4()
|
task_a = uuid4()
|
||||||
task_b = uuid4()
|
task_b = uuid4()
|
||||||
tag_a = uuid4()
|
tag_a = uuid4()
|
||||||
@@ -73,7 +73,7 @@ async def test_load_task_tag_state_groups_rows_by_task_id():
|
|||||||
[
|
[
|
||||||
(
|
(
|
||||||
task_a,
|
task_a,
|
||||||
TaskTag(
|
Tag(
|
||||||
id=tag_a,
|
id=tag_a,
|
||||||
organization_id=uuid4(),
|
organization_id=uuid4(),
|
||||||
name="Backend",
|
name="Backend",
|
||||||
@@ -83,7 +83,7 @@ async def test_load_task_tag_state_groups_rows_by_task_id():
|
|||||||
),
|
),
|
||||||
(
|
(
|
||||||
task_a,
|
task_a,
|
||||||
TaskTag(
|
Tag(
|
||||||
id=tag_b,
|
id=tag_b,
|
||||||
organization_id=uuid4(),
|
organization_id=uuid4(),
|
||||||
name="Urgent",
|
name="Urgent",
|
||||||
@@ -93,7 +93,7 @@ async def test_load_task_tag_state_groups_rows_by_task_id():
|
|||||||
),
|
),
|
||||||
(
|
(
|
||||||
task_b,
|
task_b,
|
||||||
TaskTag(
|
Tag(
|
||||||
id=tag_b,
|
id=tag_b,
|
||||||
organization_id=uuid4(),
|
organization_id=uuid4(),
|
||||||
name="Urgent",
|
name="Urgent",
|
||||||
@@ -104,7 +104,7 @@ async def test_load_task_tag_state_groups_rows_by_task_id():
|
|||||||
],
|
],
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
state = await task_tags.load_task_tag_state(
|
state = await tags.load_tag_state(
|
||||||
session,
|
session,
|
||||||
task_ids=[task_a, task_b],
|
task_ids=[task_a, task_b],
|
||||||
)
|
)
|
||||||
@@ -114,12 +114,12 @@ async def test_load_task_tag_state_groups_rows_by_task_id():
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_replace_task_tags_replaces_existing_links():
|
async def test_replace_tags_replaces_existing_links():
|
||||||
task_id = uuid4()
|
task_id = uuid4()
|
||||||
tag_a = uuid4()
|
tag_a = uuid4()
|
||||||
tag_b = uuid4()
|
tag_b = uuid4()
|
||||||
session = _FakeSession(exec_results=[None])
|
session = _FakeSession(exec_results=[None])
|
||||||
await task_tags.replace_task_tags(
|
await tags.replace_tags(
|
||||||
session,
|
session,
|
||||||
task_id=task_id,
|
task_id=task_id,
|
||||||
tag_ids=[tag_a, tag_b, tag_a],
|
tag_ids=[tag_a, tag_b, tag_a],
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -364,134 +364,6 @@ export const useCreateAgentApiV1AgentsPost = <
|
|||||||
queryClient,
|
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<heartbeatOrCreateAgentApiV1AgentsHeartbeatPostResponse> => {
|
|
||||||
return customFetch<heartbeatOrCreateAgentApiV1AgentsHeartbeatPostResponse>(
|
|
||||||
getHeartbeatOrCreateAgentApiV1AgentsHeartbeatPostUrl(),
|
|
||||||
{
|
|
||||||
...options,
|
|
||||||
method: "POST",
|
|
||||||
headers: { "Content-Type": "application/json", ...options?.headers },
|
|
||||||
body: JSON.stringify(agentHeartbeatCreate),
|
|
||||||
},
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export const getHeartbeatOrCreateAgentApiV1AgentsHeartbeatPostMutationOptions =
|
|
||||||
<TError = HTTPValidationError, TContext = unknown>(options?: {
|
|
||||||
mutation?: UseMutationOptions<
|
|
||||||
Awaited<
|
|
||||||
ReturnType<typeof heartbeatOrCreateAgentApiV1AgentsHeartbeatPost>
|
|
||||||
>,
|
|
||||||
TError,
|
|
||||||
{ data: AgentHeartbeatCreate },
|
|
||||||
TContext
|
|
||||||
>;
|
|
||||||
request?: SecondParameter<typeof customFetch>;
|
|
||||||
}): UseMutationOptions<
|
|
||||||
Awaited<ReturnType<typeof heartbeatOrCreateAgentApiV1AgentsHeartbeatPost>>,
|
|
||||||
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<typeof heartbeatOrCreateAgentApiV1AgentsHeartbeatPost>
|
|
||||||
>,
|
|
||||||
{ data: AgentHeartbeatCreate }
|
|
||||||
> = (props) => {
|
|
||||||
const { data } = props ?? {};
|
|
||||||
|
|
||||||
return heartbeatOrCreateAgentApiV1AgentsHeartbeatPost(
|
|
||||||
data,
|
|
||||||
requestOptions,
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
return { mutationFn, ...mutationOptions };
|
|
||||||
};
|
|
||||||
|
|
||||||
export type HeartbeatOrCreateAgentApiV1AgentsHeartbeatPostMutationResult =
|
|
||||||
NonNullable<
|
|
||||||
Awaited<ReturnType<typeof heartbeatOrCreateAgentApiV1AgentsHeartbeatPost>>
|
|
||||||
>;
|
|
||||||
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<typeof heartbeatOrCreateAgentApiV1AgentsHeartbeatPost>
|
|
||||||
>,
|
|
||||||
TError,
|
|
||||||
{ data: AgentHeartbeatCreate },
|
|
||||||
TContext
|
|
||||||
>;
|
|
||||||
request?: SecondParameter<typeof customFetch>;
|
|
||||||
},
|
|
||||||
queryClient?: QueryClient,
|
|
||||||
): UseMutationResult<
|
|
||||||
Awaited<ReturnType<typeof heartbeatOrCreateAgentApiV1AgentsHeartbeatPost>>,
|
|
||||||
TError,
|
|
||||||
{ data: AgentHeartbeatCreate },
|
|
||||||
TContext
|
|
||||||
> => {
|
|
||||||
return useMutation(
|
|
||||||
getHeartbeatOrCreateAgentApiV1AgentsHeartbeatPostMutationOptions(options),
|
|
||||||
queryClient,
|
|
||||||
);
|
|
||||||
};
|
|
||||||
/**
|
/**
|
||||||
* Stream agent updates as SSE events.
|
* Stream agent updates as SSE events.
|
||||||
* @summary Stream Agents
|
* @summary Stream Agents
|
||||||
@@ -704,123 +576,6 @@ export function useStreamAgentsApiV1AgentsStreamGet<
|
|||||||
return { ...query, queryKey: queryOptions.queryKey };
|
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<deleteAgentApiV1AgentsAgentIdDeleteResponse> => {
|
|
||||||
return customFetch<deleteAgentApiV1AgentsAgentIdDeleteResponse>(
|
|
||||||
getDeleteAgentApiV1AgentsAgentIdDeleteUrl(agentId),
|
|
||||||
{
|
|
||||||
...options,
|
|
||||||
method: "DELETE",
|
|
||||||
},
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export const getDeleteAgentApiV1AgentsAgentIdDeleteMutationOptions = <
|
|
||||||
TError = HTTPValidationError,
|
|
||||||
TContext = unknown,
|
|
||||||
>(options?: {
|
|
||||||
mutation?: UseMutationOptions<
|
|
||||||
Awaited<ReturnType<typeof deleteAgentApiV1AgentsAgentIdDelete>>,
|
|
||||||
TError,
|
|
||||||
{ agentId: string },
|
|
||||||
TContext
|
|
||||||
>;
|
|
||||||
request?: SecondParameter<typeof customFetch>;
|
|
||||||
}): UseMutationOptions<
|
|
||||||
Awaited<ReturnType<typeof deleteAgentApiV1AgentsAgentIdDelete>>,
|
|
||||||
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<ReturnType<typeof deleteAgentApiV1AgentsAgentIdDelete>>,
|
|
||||||
{ agentId: string }
|
|
||||||
> = (props) => {
|
|
||||||
const { agentId } = props ?? {};
|
|
||||||
|
|
||||||
return deleteAgentApiV1AgentsAgentIdDelete(agentId, requestOptions);
|
|
||||||
};
|
|
||||||
|
|
||||||
return { mutationFn, ...mutationOptions };
|
|
||||||
};
|
|
||||||
|
|
||||||
export type DeleteAgentApiV1AgentsAgentIdDeleteMutationResult = NonNullable<
|
|
||||||
Awaited<ReturnType<typeof deleteAgentApiV1AgentsAgentIdDelete>>
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type DeleteAgentApiV1AgentsAgentIdDeleteMutationError =
|
|
||||||
HTTPValidationError;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @summary Delete Agent
|
|
||||||
*/
|
|
||||||
export const useDeleteAgentApiV1AgentsAgentIdDelete = <
|
|
||||||
TError = HTTPValidationError,
|
|
||||||
TContext = unknown,
|
|
||||||
>(
|
|
||||||
options?: {
|
|
||||||
mutation?: UseMutationOptions<
|
|
||||||
Awaited<ReturnType<typeof deleteAgentApiV1AgentsAgentIdDelete>>,
|
|
||||||
TError,
|
|
||||||
{ agentId: string },
|
|
||||||
TContext
|
|
||||||
>;
|
|
||||||
request?: SecondParameter<typeof customFetch>;
|
|
||||||
},
|
|
||||||
queryClient?: QueryClient,
|
|
||||||
): UseMutationResult<
|
|
||||||
Awaited<ReturnType<typeof deleteAgentApiV1AgentsAgentIdDelete>>,
|
|
||||||
TError,
|
|
||||||
{ agentId: string },
|
|
||||||
TContext
|
|
||||||
> => {
|
|
||||||
return useMutation(
|
|
||||||
getDeleteAgentApiV1AgentsAgentIdDeleteMutationOptions(options),
|
|
||||||
queryClient,
|
|
||||||
);
|
|
||||||
};
|
|
||||||
/**
|
/**
|
||||||
* Get a single agent by id.
|
* Get a single agent by id.
|
||||||
* @summary Get Agent
|
* @summary Get Agent
|
||||||
@@ -1182,6 +937,123 @@ export const useUpdateAgentApiV1AgentsAgentIdPatch = <
|
|||||||
queryClient,
|
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<deleteAgentApiV1AgentsAgentIdDeleteResponse> => {
|
||||||
|
return customFetch<deleteAgentApiV1AgentsAgentIdDeleteResponse>(
|
||||||
|
getDeleteAgentApiV1AgentsAgentIdDeleteUrl(agentId),
|
||||||
|
{
|
||||||
|
...options,
|
||||||
|
method: "DELETE",
|
||||||
|
},
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export const getDeleteAgentApiV1AgentsAgentIdDeleteMutationOptions = <
|
||||||
|
TError = HTTPValidationError,
|
||||||
|
TContext = unknown,
|
||||||
|
>(options?: {
|
||||||
|
mutation?: UseMutationOptions<
|
||||||
|
Awaited<ReturnType<typeof deleteAgentApiV1AgentsAgentIdDelete>>,
|
||||||
|
TError,
|
||||||
|
{ agentId: string },
|
||||||
|
TContext
|
||||||
|
>;
|
||||||
|
request?: SecondParameter<typeof customFetch>;
|
||||||
|
}): UseMutationOptions<
|
||||||
|
Awaited<ReturnType<typeof deleteAgentApiV1AgentsAgentIdDelete>>,
|
||||||
|
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<ReturnType<typeof deleteAgentApiV1AgentsAgentIdDelete>>,
|
||||||
|
{ agentId: string }
|
||||||
|
> = (props) => {
|
||||||
|
const { agentId } = props ?? {};
|
||||||
|
|
||||||
|
return deleteAgentApiV1AgentsAgentIdDelete(agentId, requestOptions);
|
||||||
|
};
|
||||||
|
|
||||||
|
return { mutationFn, ...mutationOptions };
|
||||||
|
};
|
||||||
|
|
||||||
|
export type DeleteAgentApiV1AgentsAgentIdDeleteMutationResult = NonNullable<
|
||||||
|
Awaited<ReturnType<typeof deleteAgentApiV1AgentsAgentIdDelete>>
|
||||||
|
>;
|
||||||
|
|
||||||
|
export type DeleteAgentApiV1AgentsAgentIdDeleteMutationError =
|
||||||
|
HTTPValidationError;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @summary Delete Agent
|
||||||
|
*/
|
||||||
|
export const useDeleteAgentApiV1AgentsAgentIdDelete = <
|
||||||
|
TError = HTTPValidationError,
|
||||||
|
TContext = unknown,
|
||||||
|
>(
|
||||||
|
options?: {
|
||||||
|
mutation?: UseMutationOptions<
|
||||||
|
Awaited<ReturnType<typeof deleteAgentApiV1AgentsAgentIdDelete>>,
|
||||||
|
TError,
|
||||||
|
{ agentId: string },
|
||||||
|
TContext
|
||||||
|
>;
|
||||||
|
request?: SecondParameter<typeof customFetch>;
|
||||||
|
},
|
||||||
|
queryClient?: QueryClient,
|
||||||
|
): UseMutationResult<
|
||||||
|
Awaited<ReturnType<typeof deleteAgentApiV1AgentsAgentIdDelete>>,
|
||||||
|
TError,
|
||||||
|
{ agentId: string },
|
||||||
|
TContext
|
||||||
|
> => {
|
||||||
|
return useMutation(
|
||||||
|
getDeleteAgentApiV1AgentsAgentIdDeleteMutationOptions(options),
|
||||||
|
queryClient,
|
||||||
|
);
|
||||||
|
};
|
||||||
/**
|
/**
|
||||||
* Record a heartbeat for a specific agent.
|
* Record a heartbeat for a specific agent.
|
||||||
* @summary Heartbeat Agent
|
* @summary Heartbeat Agent
|
||||||
@@ -1310,3 +1182,131 @@ export const useHeartbeatAgentApiV1AgentsAgentIdHeartbeatPost = <
|
|||||||
queryClient,
|
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<heartbeatOrCreateAgentApiV1AgentsHeartbeatPostResponse> => {
|
||||||
|
return customFetch<heartbeatOrCreateAgentApiV1AgentsHeartbeatPostResponse>(
|
||||||
|
getHeartbeatOrCreateAgentApiV1AgentsHeartbeatPostUrl(),
|
||||||
|
{
|
||||||
|
...options,
|
||||||
|
method: "POST",
|
||||||
|
headers: { "Content-Type": "application/json", ...options?.headers },
|
||||||
|
body: JSON.stringify(agentHeartbeatCreate),
|
||||||
|
},
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export const getHeartbeatOrCreateAgentApiV1AgentsHeartbeatPostMutationOptions =
|
||||||
|
<TError = HTTPValidationError, TContext = unknown>(options?: {
|
||||||
|
mutation?: UseMutationOptions<
|
||||||
|
Awaited<
|
||||||
|
ReturnType<typeof heartbeatOrCreateAgentApiV1AgentsHeartbeatPost>
|
||||||
|
>,
|
||||||
|
TError,
|
||||||
|
{ data: AgentHeartbeatCreate },
|
||||||
|
TContext
|
||||||
|
>;
|
||||||
|
request?: SecondParameter<typeof customFetch>;
|
||||||
|
}): UseMutationOptions<
|
||||||
|
Awaited<ReturnType<typeof heartbeatOrCreateAgentApiV1AgentsHeartbeatPost>>,
|
||||||
|
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<typeof heartbeatOrCreateAgentApiV1AgentsHeartbeatPost>
|
||||||
|
>,
|
||||||
|
{ data: AgentHeartbeatCreate }
|
||||||
|
> = (props) => {
|
||||||
|
const { data } = props ?? {};
|
||||||
|
|
||||||
|
return heartbeatOrCreateAgentApiV1AgentsHeartbeatPost(
|
||||||
|
data,
|
||||||
|
requestOptions,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
return { mutationFn, ...mutationOptions };
|
||||||
|
};
|
||||||
|
|
||||||
|
export type HeartbeatOrCreateAgentApiV1AgentsHeartbeatPostMutationResult =
|
||||||
|
NonNullable<
|
||||||
|
Awaited<ReturnType<typeof heartbeatOrCreateAgentApiV1AgentsHeartbeatPost>>
|
||||||
|
>;
|
||||||
|
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<typeof heartbeatOrCreateAgentApiV1AgentsHeartbeatPost>
|
||||||
|
>,
|
||||||
|
TError,
|
||||||
|
{ data: AgentHeartbeatCreate },
|
||||||
|
TContext
|
||||||
|
>;
|
||||||
|
request?: SecondParameter<typeof customFetch>;
|
||||||
|
},
|
||||||
|
queryClient?: QueryClient,
|
||||||
|
): UseMutationResult<
|
||||||
|
Awaited<ReturnType<typeof heartbeatOrCreateAgentApiV1AgentsHeartbeatPost>>,
|
||||||
|
TError,
|
||||||
|
{ data: AgentHeartbeatCreate },
|
||||||
|
TContext
|
||||||
|
> => {
|
||||||
|
return useMutation(
|
||||||
|
getHeartbeatOrCreateAgentApiV1AgentsHeartbeatPostMutationOptions(options),
|
||||||
|
queryClient,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|||||||
@@ -369,129 +369,6 @@ export const useCreateBoardGroupApiV1BoardGroupsPost = <
|
|||||||
queryClient,
|
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<deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponse> => {
|
|
||||||
return customFetch<deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponse>(
|
|
||||||
getDeleteBoardGroupApiV1BoardGroupsGroupIdDeleteUrl(groupId),
|
|
||||||
{
|
|
||||||
...options,
|
|
||||||
method: "DELETE",
|
|
||||||
},
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export const getDeleteBoardGroupApiV1BoardGroupsGroupIdDeleteMutationOptions = <
|
|
||||||
TError = HTTPValidationError,
|
|
||||||
TContext = unknown,
|
|
||||||
>(options?: {
|
|
||||||
mutation?: UseMutationOptions<
|
|
||||||
Awaited<ReturnType<typeof deleteBoardGroupApiV1BoardGroupsGroupIdDelete>>,
|
|
||||||
TError,
|
|
||||||
{ groupId: string },
|
|
||||||
TContext
|
|
||||||
>;
|
|
||||||
request?: SecondParameter<typeof customFetch>;
|
|
||||||
}): UseMutationOptions<
|
|
||||||
Awaited<ReturnType<typeof deleteBoardGroupApiV1BoardGroupsGroupIdDelete>>,
|
|
||||||
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<ReturnType<typeof deleteBoardGroupApiV1BoardGroupsGroupIdDelete>>,
|
|
||||||
{ groupId: string }
|
|
||||||
> = (props) => {
|
|
||||||
const { groupId } = props ?? {};
|
|
||||||
|
|
||||||
return deleteBoardGroupApiV1BoardGroupsGroupIdDelete(
|
|
||||||
groupId,
|
|
||||||
requestOptions,
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
return { mutationFn, ...mutationOptions };
|
|
||||||
};
|
|
||||||
|
|
||||||
export type DeleteBoardGroupApiV1BoardGroupsGroupIdDeleteMutationResult =
|
|
||||||
NonNullable<
|
|
||||||
Awaited<ReturnType<typeof deleteBoardGroupApiV1BoardGroupsGroupIdDelete>>
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type DeleteBoardGroupApiV1BoardGroupsGroupIdDeleteMutationError =
|
|
||||||
HTTPValidationError;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @summary Delete Board Group
|
|
||||||
*/
|
|
||||||
export const useDeleteBoardGroupApiV1BoardGroupsGroupIdDelete = <
|
|
||||||
TError = HTTPValidationError,
|
|
||||||
TContext = unknown,
|
|
||||||
>(
|
|
||||||
options?: {
|
|
||||||
mutation?: UseMutationOptions<
|
|
||||||
Awaited<ReturnType<typeof deleteBoardGroupApiV1BoardGroupsGroupIdDelete>>,
|
|
||||||
TError,
|
|
||||||
{ groupId: string },
|
|
||||||
TContext
|
|
||||||
>;
|
|
||||||
request?: SecondParameter<typeof customFetch>;
|
|
||||||
},
|
|
||||||
queryClient?: QueryClient,
|
|
||||||
): UseMutationResult<
|
|
||||||
Awaited<ReturnType<typeof deleteBoardGroupApiV1BoardGroupsGroupIdDelete>>,
|
|
||||||
TError,
|
|
||||||
{ groupId: string },
|
|
||||||
TContext
|
|
||||||
> => {
|
|
||||||
return useMutation(
|
|
||||||
getDeleteBoardGroupApiV1BoardGroupsGroupIdDeleteMutationOptions(options),
|
|
||||||
queryClient,
|
|
||||||
);
|
|
||||||
};
|
|
||||||
/**
|
/**
|
||||||
* Get a board group by id.
|
* Get a board group by id.
|
||||||
* @summary Get Board Group
|
* @summary Get Board Group
|
||||||
@@ -830,161 +707,125 @@ export const useUpdateBoardGroupApiV1BoardGroupsGroupIdPatch = <
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
* Apply heartbeat settings to agents in a board group.
|
* Delete a board group.
|
||||||
* @summary Apply Board Group Heartbeat
|
* @summary Delete Board Group
|
||||||
*/
|
*/
|
||||||
export type applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponse200 =
|
export type deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponse200 = {
|
||||||
{
|
data: OkResponse;
|
||||||
data: BoardGroupHeartbeatApplyResult;
|
status: 200;
|
||||||
status: 200;
|
};
|
||||||
};
|
|
||||||
|
|
||||||
export type applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponse422 =
|
export type deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponse422 = {
|
||||||
{
|
data: HTTPValidationError;
|
||||||
data: HTTPValidationError;
|
status: 422;
|
||||||
status: 422;
|
};
|
||||||
};
|
|
||||||
|
|
||||||
export type applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponseSuccess =
|
export type deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponseSuccess =
|
||||||
applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponse200 & {
|
deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponse200 & {
|
||||||
headers: Headers;
|
headers: Headers;
|
||||||
};
|
};
|
||||||
export type applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponseError =
|
export type deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponseError =
|
||||||
applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponse422 & {
|
deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponse422 & {
|
||||||
headers: Headers;
|
headers: Headers;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponse =
|
export type deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponse =
|
||||||
|
| deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponseSuccess
|
||||||
|
| deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponseError;
|
||||||
|
|
||||||
| applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponseSuccess
|
export const getDeleteBoardGroupApiV1BoardGroupsGroupIdDeleteUrl = (
|
||||||
| applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponseError;
|
groupId: string,
|
||||||
|
) => {
|
||||||
|
return `/api/v1/board-groups/${groupId}`;
|
||||||
|
};
|
||||||
|
|
||||||
export const getApplyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostUrl =
|
export const deleteBoardGroupApiV1BoardGroupsGroupIdDelete = async (
|
||||||
(groupId: string) => {
|
groupId: string,
|
||||||
return `/api/v1/board-groups/${groupId}/heartbeat`;
|
options?: RequestInit,
|
||||||
};
|
): Promise<deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponse> => {
|
||||||
|
return customFetch<deleteBoardGroupApiV1BoardGroupsGroupIdDeleteResponse>(
|
||||||
|
getDeleteBoardGroupApiV1BoardGroupsGroupIdDeleteUrl(groupId),
|
||||||
|
{
|
||||||
|
...options,
|
||||||
|
method: "DELETE",
|
||||||
|
},
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
export const applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPost =
|
export const getDeleteBoardGroupApiV1BoardGroupsGroupIdDeleteMutationOptions = <
|
||||||
async (
|
TError = HTTPValidationError,
|
||||||
groupId: string,
|
TContext = unknown,
|
||||||
boardGroupHeartbeatApply: BoardGroupHeartbeatApply,
|
>(options?: {
|
||||||
options?: RequestInit,
|
mutation?: UseMutationOptions<
|
||||||
): Promise<applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponse> => {
|
Awaited<ReturnType<typeof deleteBoardGroupApiV1BoardGroupsGroupIdDelete>>,
|
||||||
return customFetch<applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponse>(
|
TError,
|
||||||
getApplyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostUrl(
|
{ groupId: string },
|
||||||
groupId,
|
TContext
|
||||||
),
|
>;
|
||||||
{
|
request?: SecondParameter<typeof customFetch>;
|
||||||
...options,
|
}): UseMutationOptions<
|
||||||
method: "POST",
|
Awaited<ReturnType<typeof deleteBoardGroupApiV1BoardGroupsGroupIdDelete>>,
|
||||||
headers: { "Content-Type": "application/json", ...options?.headers },
|
TError,
|
||||||
body: JSON.stringify(boardGroupHeartbeatApply),
|
{ 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<ReturnType<typeof deleteBoardGroupApiV1BoardGroupsGroupIdDelete>>,
|
||||||
|
{ groupId: string }
|
||||||
|
> = (props) => {
|
||||||
|
const { groupId } = props ?? {};
|
||||||
|
|
||||||
|
return deleteBoardGroupApiV1BoardGroupsGroupIdDelete(
|
||||||
|
groupId,
|
||||||
|
requestOptions,
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export const getApplyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostMutationOptions =
|
return { mutationFn, ...mutationOptions };
|
||||||
<TError = HTTPValidationError, TContext = unknown>(options?: {
|
};
|
||||||
mutation?: UseMutationOptions<
|
|
||||||
Awaited<
|
|
||||||
ReturnType<
|
|
||||||
typeof applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPost
|
|
||||||
>
|
|
||||||
>,
|
|
||||||
TError,
|
|
||||||
{ groupId: string; data: BoardGroupHeartbeatApply },
|
|
||||||
TContext
|
|
||||||
>;
|
|
||||||
request?: SecondParameter<typeof customFetch>;
|
|
||||||
}): 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<
|
export type DeleteBoardGroupApiV1BoardGroupsGroupIdDeleteMutationResult =
|
||||||
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<
|
NonNullable<
|
||||||
Awaited<
|
Awaited<ReturnType<typeof deleteBoardGroupApiV1BoardGroupsGroupIdDelete>>
|
||||||
ReturnType<
|
|
||||||
typeof applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPost
|
|
||||||
>
|
|
||||||
>
|
|
||||||
>;
|
>;
|
||||||
export type ApplyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostMutationBody =
|
|
||||||
BoardGroupHeartbeatApply;
|
export type DeleteBoardGroupApiV1BoardGroupsGroupIdDeleteMutationError =
|
||||||
export type ApplyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostMutationError =
|
|
||||||
HTTPValidationError;
|
HTTPValidationError;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @summary Apply Board Group Heartbeat
|
* @summary Delete Board Group
|
||||||
*/
|
*/
|
||||||
export const useApplyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPost = <
|
export const useDeleteBoardGroupApiV1BoardGroupsGroupIdDelete = <
|
||||||
TError = HTTPValidationError,
|
TError = HTTPValidationError,
|
||||||
TContext = unknown,
|
TContext = unknown,
|
||||||
>(
|
>(
|
||||||
options?: {
|
options?: {
|
||||||
mutation?: UseMutationOptions<
|
mutation?: UseMutationOptions<
|
||||||
Awaited<
|
Awaited<ReturnType<typeof deleteBoardGroupApiV1BoardGroupsGroupIdDelete>>,
|
||||||
ReturnType<
|
|
||||||
typeof applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPost
|
|
||||||
>
|
|
||||||
>,
|
|
||||||
TError,
|
TError,
|
||||||
{ groupId: string; data: BoardGroupHeartbeatApply },
|
{ groupId: string },
|
||||||
TContext
|
TContext
|
||||||
>;
|
>;
|
||||||
request?: SecondParameter<typeof customFetch>;
|
request?: SecondParameter<typeof customFetch>;
|
||||||
},
|
},
|
||||||
queryClient?: QueryClient,
|
queryClient?: QueryClient,
|
||||||
): UseMutationResult<
|
): UseMutationResult<
|
||||||
Awaited<
|
Awaited<ReturnType<typeof deleteBoardGroupApiV1BoardGroupsGroupIdDelete>>,
|
||||||
ReturnType<
|
|
||||||
typeof applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPost
|
|
||||||
>
|
|
||||||
>,
|
|
||||||
TError,
|
TError,
|
||||||
{ groupId: string; data: BoardGroupHeartbeatApply },
|
{ groupId: string },
|
||||||
TContext
|
TContext
|
||||||
> => {
|
> => {
|
||||||
return useMutation(
|
return useMutation(
|
||||||
getApplyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostMutationOptions(
|
getDeleteBoardGroupApiV1BoardGroupsGroupIdDeleteMutationOptions(options),
|
||||||
options,
|
|
||||||
),
|
|
||||||
queryClient,
|
queryClient,
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
@@ -1290,3 +1131,163 @@ export function useGetBoardGroupSnapshotApiV1BoardGroupsGroupIdSnapshotGet<
|
|||||||
|
|
||||||
return { ...query, queryKey: queryOptions.queryKey };
|
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<applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponse> => {
|
||||||
|
return customFetch<applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostResponse>(
|
||||||
|
getApplyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostUrl(
|
||||||
|
groupId,
|
||||||
|
),
|
||||||
|
{
|
||||||
|
...options,
|
||||||
|
method: "POST",
|
||||||
|
headers: { "Content-Type": "application/json", ...options?.headers },
|
||||||
|
body: JSON.stringify(boardGroupHeartbeatApply),
|
||||||
|
},
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export const getApplyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostMutationOptions =
|
||||||
|
<TError = HTTPValidationError, TContext = unknown>(options?: {
|
||||||
|
mutation?: UseMutationOptions<
|
||||||
|
Awaited<
|
||||||
|
ReturnType<
|
||||||
|
typeof applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPost
|
||||||
|
>
|
||||||
|
>,
|
||||||
|
TError,
|
||||||
|
{ groupId: string; data: BoardGroupHeartbeatApply },
|
||||||
|
TContext
|
||||||
|
>;
|
||||||
|
request?: SecondParameter<typeof customFetch>;
|
||||||
|
}): 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<typeof customFetch>;
|
||||||
|
},
|
||||||
|
queryClient?: QueryClient,
|
||||||
|
): UseMutationResult<
|
||||||
|
Awaited<
|
||||||
|
ReturnType<
|
||||||
|
typeof applyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPost
|
||||||
|
>
|
||||||
|
>,
|
||||||
|
TError,
|
||||||
|
{ groupId: string; data: BoardGroupHeartbeatApply },
|
||||||
|
TContext
|
||||||
|
> => {
|
||||||
|
return useMutation(
|
||||||
|
getApplyBoardGroupHeartbeatApiV1BoardGroupsGroupIdHeartbeatPostMutationOptions(
|
||||||
|
options,
|
||||||
|
),
|
||||||
|
queryClient,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|||||||
@@ -274,6 +274,298 @@ export function useGetOnboardingApiV1BoardsBoardIdOnboardingGet<
|
|||||||
return { ...query, queryKey: queryOptions.queryKey };
|
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<startOnboardingApiV1BoardsBoardIdOnboardingStartPostResponse> => {
|
||||||
|
return customFetch<startOnboardingApiV1BoardsBoardIdOnboardingStartPostResponse>(
|
||||||
|
getStartOnboardingApiV1BoardsBoardIdOnboardingStartPostUrl(boardId),
|
||||||
|
{
|
||||||
|
...options,
|
||||||
|
method: "POST",
|
||||||
|
headers: { "Content-Type": "application/json", ...options?.headers },
|
||||||
|
body: JSON.stringify(boardOnboardingStart),
|
||||||
|
},
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export const getStartOnboardingApiV1BoardsBoardIdOnboardingStartPostMutationOptions =
|
||||||
|
<TError = HTTPValidationError, TContext = unknown>(options?: {
|
||||||
|
mutation?: UseMutationOptions<
|
||||||
|
Awaited<
|
||||||
|
ReturnType<typeof startOnboardingApiV1BoardsBoardIdOnboardingStartPost>
|
||||||
|
>,
|
||||||
|
TError,
|
||||||
|
{ boardId: string; data: BoardOnboardingStart },
|
||||||
|
TContext
|
||||||
|
>;
|
||||||
|
request?: SecondParameter<typeof customFetch>;
|
||||||
|
}): UseMutationOptions<
|
||||||
|
Awaited<
|
||||||
|
ReturnType<typeof startOnboardingApiV1BoardsBoardIdOnboardingStartPost>
|
||||||
|
>,
|
||||||
|
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<typeof startOnboardingApiV1BoardsBoardIdOnboardingStartPost>
|
||||||
|
>,
|
||||||
|
{ boardId: string; data: BoardOnboardingStart }
|
||||||
|
> = (props) => {
|
||||||
|
const { boardId, data } = props ?? {};
|
||||||
|
|
||||||
|
return startOnboardingApiV1BoardsBoardIdOnboardingStartPost(
|
||||||
|
boardId,
|
||||||
|
data,
|
||||||
|
requestOptions,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
return { mutationFn, ...mutationOptions };
|
||||||
|
};
|
||||||
|
|
||||||
|
export type StartOnboardingApiV1BoardsBoardIdOnboardingStartPostMutationResult =
|
||||||
|
NonNullable<
|
||||||
|
Awaited<
|
||||||
|
ReturnType<typeof startOnboardingApiV1BoardsBoardIdOnboardingStartPost>
|
||||||
|
>
|
||||||
|
>;
|
||||||
|
export type StartOnboardingApiV1BoardsBoardIdOnboardingStartPostMutationBody =
|
||||||
|
BoardOnboardingStart;
|
||||||
|
export type StartOnboardingApiV1BoardsBoardIdOnboardingStartPostMutationError =
|
||||||
|
HTTPValidationError;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @summary Start Onboarding
|
||||||
|
*/
|
||||||
|
export const useStartOnboardingApiV1BoardsBoardIdOnboardingStartPost = <
|
||||||
|
TError = HTTPValidationError,
|
||||||
|
TContext = unknown,
|
||||||
|
>(
|
||||||
|
options?: {
|
||||||
|
mutation?: UseMutationOptions<
|
||||||
|
Awaited<
|
||||||
|
ReturnType<typeof startOnboardingApiV1BoardsBoardIdOnboardingStartPost>
|
||||||
|
>,
|
||||||
|
TError,
|
||||||
|
{ boardId: string; data: BoardOnboardingStart },
|
||||||
|
TContext
|
||||||
|
>;
|
||||||
|
request?: SecondParameter<typeof customFetch>;
|
||||||
|
},
|
||||||
|
queryClient?: QueryClient,
|
||||||
|
): UseMutationResult<
|
||||||
|
Awaited<
|
||||||
|
ReturnType<typeof startOnboardingApiV1BoardsBoardIdOnboardingStartPost>
|
||||||
|
>,
|
||||||
|
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<answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostResponse> => {
|
||||||
|
return customFetch<answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostResponse>(
|
||||||
|
getAnswerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostUrl(boardId),
|
||||||
|
{
|
||||||
|
...options,
|
||||||
|
method: "POST",
|
||||||
|
headers: { "Content-Type": "application/json", ...options?.headers },
|
||||||
|
body: JSON.stringify(boardOnboardingAnswer),
|
||||||
|
},
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export const getAnswerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostMutationOptions =
|
||||||
|
<TError = HTTPValidationError, TContext = unknown>(options?: {
|
||||||
|
mutation?: UseMutationOptions<
|
||||||
|
Awaited<
|
||||||
|
ReturnType<
|
||||||
|
typeof answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPost
|
||||||
|
>
|
||||||
|
>,
|
||||||
|
TError,
|
||||||
|
{ boardId: string; data: BoardOnboardingAnswer },
|
||||||
|
TContext
|
||||||
|
>;
|
||||||
|
request?: SecondParameter<typeof customFetch>;
|
||||||
|
}): UseMutationOptions<
|
||||||
|
Awaited<
|
||||||
|
ReturnType<typeof answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPost>
|
||||||
|
>,
|
||||||
|
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<typeof answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPost>
|
||||||
|
>
|
||||||
|
>;
|
||||||
|
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<typeof customFetch>;
|
||||||
|
},
|
||||||
|
queryClient?: QueryClient,
|
||||||
|
): UseMutationResult<
|
||||||
|
Awaited<
|
||||||
|
ReturnType<typeof answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPost>
|
||||||
|
>,
|
||||||
|
TError,
|
||||||
|
{ boardId: string; data: BoardOnboardingAnswer },
|
||||||
|
TContext
|
||||||
|
> => {
|
||||||
|
return useMutation(
|
||||||
|
getAnswerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostMutationOptions(
|
||||||
|
options,
|
||||||
|
),
|
||||||
|
queryClient,
|
||||||
|
);
|
||||||
|
};
|
||||||
/**
|
/**
|
||||||
* Store onboarding updates submitted by the gateway agent.
|
* Store onboarding updates submitted by the gateway agent.
|
||||||
* @summary Agent Onboarding Update
|
* @summary Agent Onboarding Update
|
||||||
@@ -449,156 +741,6 @@ export const useAgentOnboardingUpdateApiV1BoardsBoardIdOnboardingAgentPost = <
|
|||||||
queryClient,
|
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<answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostResponse> => {
|
|
||||||
return customFetch<answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostResponse>(
|
|
||||||
getAnswerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostUrl(boardId),
|
|
||||||
{
|
|
||||||
...options,
|
|
||||||
method: "POST",
|
|
||||||
headers: { "Content-Type": "application/json", ...options?.headers },
|
|
||||||
body: JSON.stringify(boardOnboardingAnswer),
|
|
||||||
},
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export const getAnswerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostMutationOptions =
|
|
||||||
<TError = HTTPValidationError, TContext = unknown>(options?: {
|
|
||||||
mutation?: UseMutationOptions<
|
|
||||||
Awaited<
|
|
||||||
ReturnType<
|
|
||||||
typeof answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPost
|
|
||||||
>
|
|
||||||
>,
|
|
||||||
TError,
|
|
||||||
{ boardId: string; data: BoardOnboardingAnswer },
|
|
||||||
TContext
|
|
||||||
>;
|
|
||||||
request?: SecondParameter<typeof customFetch>;
|
|
||||||
}): UseMutationOptions<
|
|
||||||
Awaited<
|
|
||||||
ReturnType<typeof answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPost>
|
|
||||||
>,
|
|
||||||
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<typeof answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPost>
|
|
||||||
>
|
|
||||||
>;
|
|
||||||
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<typeof customFetch>;
|
|
||||||
},
|
|
||||||
queryClient?: QueryClient,
|
|
||||||
): UseMutationResult<
|
|
||||||
Awaited<
|
|
||||||
ReturnType<typeof answerOnboardingApiV1BoardsBoardIdOnboardingAnswerPost>
|
|
||||||
>,
|
|
||||||
TError,
|
|
||||||
{ boardId: string; data: BoardOnboardingAnswer },
|
|
||||||
TContext
|
|
||||||
> => {
|
|
||||||
return useMutation(
|
|
||||||
getAnswerOnboardingApiV1BoardsBoardIdOnboardingAnswerPostMutationOptions(
|
|
||||||
options,
|
|
||||||
),
|
|
||||||
queryClient,
|
|
||||||
);
|
|
||||||
};
|
|
||||||
/**
|
/**
|
||||||
* Confirm onboarding results and provision the board lead agent.
|
* Confirm onboarding results and provision the board lead agent.
|
||||||
* @summary Confirm Onboarding
|
* @summary Confirm Onboarding
|
||||||
@@ -753,145 +895,3 @@ export const useConfirmOnboardingApiV1BoardsBoardIdOnboardingConfirmPost = <
|
|||||||
queryClient,
|
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<startOnboardingApiV1BoardsBoardIdOnboardingStartPostResponse> => {
|
|
||||||
return customFetch<startOnboardingApiV1BoardsBoardIdOnboardingStartPostResponse>(
|
|
||||||
getStartOnboardingApiV1BoardsBoardIdOnboardingStartPostUrl(boardId),
|
|
||||||
{
|
|
||||||
...options,
|
|
||||||
method: "POST",
|
|
||||||
headers: { "Content-Type": "application/json", ...options?.headers },
|
|
||||||
body: JSON.stringify(boardOnboardingStart),
|
|
||||||
},
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export const getStartOnboardingApiV1BoardsBoardIdOnboardingStartPostMutationOptions =
|
|
||||||
<TError = HTTPValidationError, TContext = unknown>(options?: {
|
|
||||||
mutation?: UseMutationOptions<
|
|
||||||
Awaited<
|
|
||||||
ReturnType<typeof startOnboardingApiV1BoardsBoardIdOnboardingStartPost>
|
|
||||||
>,
|
|
||||||
TError,
|
|
||||||
{ boardId: string; data: BoardOnboardingStart },
|
|
||||||
TContext
|
|
||||||
>;
|
|
||||||
request?: SecondParameter<typeof customFetch>;
|
|
||||||
}): UseMutationOptions<
|
|
||||||
Awaited<
|
|
||||||
ReturnType<typeof startOnboardingApiV1BoardsBoardIdOnboardingStartPost>
|
|
||||||
>,
|
|
||||||
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<typeof startOnboardingApiV1BoardsBoardIdOnboardingStartPost>
|
|
||||||
>,
|
|
||||||
{ boardId: string; data: BoardOnboardingStart }
|
|
||||||
> = (props) => {
|
|
||||||
const { boardId, data } = props ?? {};
|
|
||||||
|
|
||||||
return startOnboardingApiV1BoardsBoardIdOnboardingStartPost(
|
|
||||||
boardId,
|
|
||||||
data,
|
|
||||||
requestOptions,
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
return { mutationFn, ...mutationOptions };
|
|
||||||
};
|
|
||||||
|
|
||||||
export type StartOnboardingApiV1BoardsBoardIdOnboardingStartPostMutationResult =
|
|
||||||
NonNullable<
|
|
||||||
Awaited<
|
|
||||||
ReturnType<typeof startOnboardingApiV1BoardsBoardIdOnboardingStartPost>
|
|
||||||
>
|
|
||||||
>;
|
|
||||||
export type StartOnboardingApiV1BoardsBoardIdOnboardingStartPostMutationBody =
|
|
||||||
BoardOnboardingStart;
|
|
||||||
export type StartOnboardingApiV1BoardsBoardIdOnboardingStartPostMutationError =
|
|
||||||
HTTPValidationError;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @summary Start Onboarding
|
|
||||||
*/
|
|
||||||
export const useStartOnboardingApiV1BoardsBoardIdOnboardingStartPost = <
|
|
||||||
TError = HTTPValidationError,
|
|
||||||
TContext = unknown,
|
|
||||||
>(
|
|
||||||
options?: {
|
|
||||||
mutation?: UseMutationOptions<
|
|
||||||
Awaited<
|
|
||||||
ReturnType<typeof startOnboardingApiV1BoardsBoardIdOnboardingStartPost>
|
|
||||||
>,
|
|
||||||
TError,
|
|
||||||
{ boardId: string; data: BoardOnboardingStart },
|
|
||||||
TContext
|
|
||||||
>;
|
|
||||||
request?: SecondParameter<typeof customFetch>;
|
|
||||||
},
|
|
||||||
queryClient?: QueryClient,
|
|
||||||
): UseMutationResult<
|
|
||||||
Awaited<
|
|
||||||
ReturnType<typeof startOnboardingApiV1BoardsBoardIdOnboardingStartPost>
|
|
||||||
>,
|
|
||||||
TError,
|
|
||||||
{ boardId: string; data: BoardOnboardingStart },
|
|
||||||
TContext
|
|
||||||
> => {
|
|
||||||
return useMutation(
|
|
||||||
getStartOnboardingApiV1BoardsBoardIdOnboardingStartPostMutationOptions(
|
|
||||||
options,
|
|
||||||
),
|
|
||||||
queryClient,
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|||||||
@@ -363,123 +363,6 @@ export const useCreateBoardApiV1BoardsPost = <
|
|||||||
queryClient,
|
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<deleteBoardApiV1BoardsBoardIdDeleteResponse> => {
|
|
||||||
return customFetch<deleteBoardApiV1BoardsBoardIdDeleteResponse>(
|
|
||||||
getDeleteBoardApiV1BoardsBoardIdDeleteUrl(boardId),
|
|
||||||
{
|
|
||||||
...options,
|
|
||||||
method: "DELETE",
|
|
||||||
},
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export const getDeleteBoardApiV1BoardsBoardIdDeleteMutationOptions = <
|
|
||||||
TError = HTTPValidationError,
|
|
||||||
TContext = unknown,
|
|
||||||
>(options?: {
|
|
||||||
mutation?: UseMutationOptions<
|
|
||||||
Awaited<ReturnType<typeof deleteBoardApiV1BoardsBoardIdDelete>>,
|
|
||||||
TError,
|
|
||||||
{ boardId: string },
|
|
||||||
TContext
|
|
||||||
>;
|
|
||||||
request?: SecondParameter<typeof customFetch>;
|
|
||||||
}): UseMutationOptions<
|
|
||||||
Awaited<ReturnType<typeof deleteBoardApiV1BoardsBoardIdDelete>>,
|
|
||||||
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<ReturnType<typeof deleteBoardApiV1BoardsBoardIdDelete>>,
|
|
||||||
{ boardId: string }
|
|
||||||
> = (props) => {
|
|
||||||
const { boardId } = props ?? {};
|
|
||||||
|
|
||||||
return deleteBoardApiV1BoardsBoardIdDelete(boardId, requestOptions);
|
|
||||||
};
|
|
||||||
|
|
||||||
return { mutationFn, ...mutationOptions };
|
|
||||||
};
|
|
||||||
|
|
||||||
export type DeleteBoardApiV1BoardsBoardIdDeleteMutationResult = NonNullable<
|
|
||||||
Awaited<ReturnType<typeof deleteBoardApiV1BoardsBoardIdDelete>>
|
|
||||||
>;
|
|
||||||
|
|
||||||
export type DeleteBoardApiV1BoardsBoardIdDeleteMutationError =
|
|
||||||
HTTPValidationError;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @summary Delete Board
|
|
||||||
*/
|
|
||||||
export const useDeleteBoardApiV1BoardsBoardIdDelete = <
|
|
||||||
TError = HTTPValidationError,
|
|
||||||
TContext = unknown,
|
|
||||||
>(
|
|
||||||
options?: {
|
|
||||||
mutation?: UseMutationOptions<
|
|
||||||
Awaited<ReturnType<typeof deleteBoardApiV1BoardsBoardIdDelete>>,
|
|
||||||
TError,
|
|
||||||
{ boardId: string },
|
|
||||||
TContext
|
|
||||||
>;
|
|
||||||
request?: SecondParameter<typeof customFetch>;
|
|
||||||
},
|
|
||||||
queryClient?: QueryClient,
|
|
||||||
): UseMutationResult<
|
|
||||||
Awaited<ReturnType<typeof deleteBoardApiV1BoardsBoardIdDelete>>,
|
|
||||||
TError,
|
|
||||||
{ boardId: string },
|
|
||||||
TContext
|
|
||||||
> => {
|
|
||||||
return useMutation(
|
|
||||||
getDeleteBoardApiV1BoardsBoardIdDeleteMutationOptions(options),
|
|
||||||
queryClient,
|
|
||||||
);
|
|
||||||
};
|
|
||||||
/**
|
/**
|
||||||
* Get a board by id.
|
* Get a board by id.
|
||||||
* @summary Get Board
|
* @summary Get Board
|
||||||
@@ -800,6 +683,362 @@ export const useUpdateBoardApiV1BoardsBoardIdPatch = <
|
|||||||
queryClient,
|
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<deleteBoardApiV1BoardsBoardIdDeleteResponse> => {
|
||||||
|
return customFetch<deleteBoardApiV1BoardsBoardIdDeleteResponse>(
|
||||||
|
getDeleteBoardApiV1BoardsBoardIdDeleteUrl(boardId),
|
||||||
|
{
|
||||||
|
...options,
|
||||||
|
method: "DELETE",
|
||||||
|
},
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export const getDeleteBoardApiV1BoardsBoardIdDeleteMutationOptions = <
|
||||||
|
TError = HTTPValidationError,
|
||||||
|
TContext = unknown,
|
||||||
|
>(options?: {
|
||||||
|
mutation?: UseMutationOptions<
|
||||||
|
Awaited<ReturnType<typeof deleteBoardApiV1BoardsBoardIdDelete>>,
|
||||||
|
TError,
|
||||||
|
{ boardId: string },
|
||||||
|
TContext
|
||||||
|
>;
|
||||||
|
request?: SecondParameter<typeof customFetch>;
|
||||||
|
}): UseMutationOptions<
|
||||||
|
Awaited<ReturnType<typeof deleteBoardApiV1BoardsBoardIdDelete>>,
|
||||||
|
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<ReturnType<typeof deleteBoardApiV1BoardsBoardIdDelete>>,
|
||||||
|
{ boardId: string }
|
||||||
|
> = (props) => {
|
||||||
|
const { boardId } = props ?? {};
|
||||||
|
|
||||||
|
return deleteBoardApiV1BoardsBoardIdDelete(boardId, requestOptions);
|
||||||
|
};
|
||||||
|
|
||||||
|
return { mutationFn, ...mutationOptions };
|
||||||
|
};
|
||||||
|
|
||||||
|
export type DeleteBoardApiV1BoardsBoardIdDeleteMutationResult = NonNullable<
|
||||||
|
Awaited<ReturnType<typeof deleteBoardApiV1BoardsBoardIdDelete>>
|
||||||
|
>;
|
||||||
|
|
||||||
|
export type DeleteBoardApiV1BoardsBoardIdDeleteMutationError =
|
||||||
|
HTTPValidationError;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @summary Delete Board
|
||||||
|
*/
|
||||||
|
export const useDeleteBoardApiV1BoardsBoardIdDelete = <
|
||||||
|
TError = HTTPValidationError,
|
||||||
|
TContext = unknown,
|
||||||
|
>(
|
||||||
|
options?: {
|
||||||
|
mutation?: UseMutationOptions<
|
||||||
|
Awaited<ReturnType<typeof deleteBoardApiV1BoardsBoardIdDelete>>,
|
||||||
|
TError,
|
||||||
|
{ boardId: string },
|
||||||
|
TContext
|
||||||
|
>;
|
||||||
|
request?: SecondParameter<typeof customFetch>;
|
||||||
|
},
|
||||||
|
queryClient?: QueryClient,
|
||||||
|
): UseMutationResult<
|
||||||
|
Awaited<ReturnType<typeof deleteBoardApiV1BoardsBoardIdDelete>>,
|
||||||
|
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<getBoardSnapshotApiV1BoardsBoardIdSnapshotGetResponse> => {
|
||||||
|
return customFetch<getBoardSnapshotApiV1BoardsBoardIdSnapshotGetResponse>(
|
||||||
|
getGetBoardSnapshotApiV1BoardsBoardIdSnapshotGetUrl(boardId),
|
||||||
|
{
|
||||||
|
...options,
|
||||||
|
method: "GET",
|
||||||
|
},
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export const getGetBoardSnapshotApiV1BoardsBoardIdSnapshotGetQueryKey = (
|
||||||
|
boardId: string,
|
||||||
|
) => {
|
||||||
|
return [`/api/v1/boards/${boardId}/snapshot`] as const;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const getGetBoardSnapshotApiV1BoardsBoardIdSnapshotGetQueryOptions = <
|
||||||
|
TData = Awaited<
|
||||||
|
ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>
|
||||||
|
>,
|
||||||
|
TError = HTTPValidationError,
|
||||||
|
>(
|
||||||
|
boardId: string,
|
||||||
|
options?: {
|
||||||
|
query?: Partial<
|
||||||
|
UseQueryOptions<
|
||||||
|
Awaited<
|
||||||
|
ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>
|
||||||
|
>,
|
||||||
|
TError,
|
||||||
|
TData
|
||||||
|
>
|
||||||
|
>;
|
||||||
|
request?: SecondParameter<typeof customFetch>;
|
||||||
|
},
|
||||||
|
) => {
|
||||||
|
const { query: queryOptions, request: requestOptions } = options ?? {};
|
||||||
|
|
||||||
|
const queryKey =
|
||||||
|
queryOptions?.queryKey ??
|
||||||
|
getGetBoardSnapshotApiV1BoardsBoardIdSnapshotGetQueryKey(boardId);
|
||||||
|
|
||||||
|
const queryFn: QueryFunction<
|
||||||
|
Awaited<ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>>
|
||||||
|
> = ({ signal }) =>
|
||||||
|
getBoardSnapshotApiV1BoardsBoardIdSnapshotGet(boardId, {
|
||||||
|
signal,
|
||||||
|
...requestOptions,
|
||||||
|
});
|
||||||
|
|
||||||
|
return {
|
||||||
|
queryKey,
|
||||||
|
queryFn,
|
||||||
|
enabled: !!boardId,
|
||||||
|
...queryOptions,
|
||||||
|
} as UseQueryOptions<
|
||||||
|
Awaited<ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>>,
|
||||||
|
TError,
|
||||||
|
TData
|
||||||
|
> & { queryKey: DataTag<QueryKey, TData, TError> };
|
||||||
|
};
|
||||||
|
|
||||||
|
export type GetBoardSnapshotApiV1BoardsBoardIdSnapshotGetQueryResult =
|
||||||
|
NonNullable<
|
||||||
|
Awaited<ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>>
|
||||||
|
>;
|
||||||
|
export type GetBoardSnapshotApiV1BoardsBoardIdSnapshotGetQueryError =
|
||||||
|
HTTPValidationError;
|
||||||
|
|
||||||
|
export function useGetBoardSnapshotApiV1BoardsBoardIdSnapshotGet<
|
||||||
|
TData = Awaited<
|
||||||
|
ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>
|
||||||
|
>,
|
||||||
|
TError = HTTPValidationError,
|
||||||
|
>(
|
||||||
|
boardId: string,
|
||||||
|
options: {
|
||||||
|
query: Partial<
|
||||||
|
UseQueryOptions<
|
||||||
|
Awaited<
|
||||||
|
ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>
|
||||||
|
>,
|
||||||
|
TError,
|
||||||
|
TData
|
||||||
|
>
|
||||||
|
> &
|
||||||
|
Pick<
|
||||||
|
DefinedInitialDataOptions<
|
||||||
|
Awaited<
|
||||||
|
ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>
|
||||||
|
>,
|
||||||
|
TError,
|
||||||
|
Awaited<
|
||||||
|
ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>
|
||||||
|
>
|
||||||
|
>,
|
||||||
|
"initialData"
|
||||||
|
>;
|
||||||
|
request?: SecondParameter<typeof customFetch>;
|
||||||
|
},
|
||||||
|
queryClient?: QueryClient,
|
||||||
|
): DefinedUseQueryResult<TData, TError> & {
|
||||||
|
queryKey: DataTag<QueryKey, TData, TError>;
|
||||||
|
};
|
||||||
|
export function useGetBoardSnapshotApiV1BoardsBoardIdSnapshotGet<
|
||||||
|
TData = Awaited<
|
||||||
|
ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>
|
||||||
|
>,
|
||||||
|
TError = HTTPValidationError,
|
||||||
|
>(
|
||||||
|
boardId: string,
|
||||||
|
options?: {
|
||||||
|
query?: Partial<
|
||||||
|
UseQueryOptions<
|
||||||
|
Awaited<
|
||||||
|
ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>
|
||||||
|
>,
|
||||||
|
TError,
|
||||||
|
TData
|
||||||
|
>
|
||||||
|
> &
|
||||||
|
Pick<
|
||||||
|
UndefinedInitialDataOptions<
|
||||||
|
Awaited<
|
||||||
|
ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>
|
||||||
|
>,
|
||||||
|
TError,
|
||||||
|
Awaited<
|
||||||
|
ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>
|
||||||
|
>
|
||||||
|
>,
|
||||||
|
"initialData"
|
||||||
|
>;
|
||||||
|
request?: SecondParameter<typeof customFetch>;
|
||||||
|
},
|
||||||
|
queryClient?: QueryClient,
|
||||||
|
): UseQueryResult<TData, TError> & {
|
||||||
|
queryKey: DataTag<QueryKey, TData, TError>;
|
||||||
|
};
|
||||||
|
export function useGetBoardSnapshotApiV1BoardsBoardIdSnapshotGet<
|
||||||
|
TData = Awaited<
|
||||||
|
ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>
|
||||||
|
>,
|
||||||
|
TError = HTTPValidationError,
|
||||||
|
>(
|
||||||
|
boardId: string,
|
||||||
|
options?: {
|
||||||
|
query?: Partial<
|
||||||
|
UseQueryOptions<
|
||||||
|
Awaited<
|
||||||
|
ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>
|
||||||
|
>,
|
||||||
|
TError,
|
||||||
|
TData
|
||||||
|
>
|
||||||
|
>;
|
||||||
|
request?: SecondParameter<typeof customFetch>;
|
||||||
|
},
|
||||||
|
queryClient?: QueryClient,
|
||||||
|
): UseQueryResult<TData, TError> & {
|
||||||
|
queryKey: DataTag<QueryKey, TData, TError>;
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
* @summary Get Board Snapshot
|
||||||
|
*/
|
||||||
|
|
||||||
|
export function useGetBoardSnapshotApiV1BoardsBoardIdSnapshotGet<
|
||||||
|
TData = Awaited<
|
||||||
|
ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>
|
||||||
|
>,
|
||||||
|
TError = HTTPValidationError,
|
||||||
|
>(
|
||||||
|
boardId: string,
|
||||||
|
options?: {
|
||||||
|
query?: Partial<
|
||||||
|
UseQueryOptions<
|
||||||
|
Awaited<
|
||||||
|
ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>
|
||||||
|
>,
|
||||||
|
TError,
|
||||||
|
TData
|
||||||
|
>
|
||||||
|
>;
|
||||||
|
request?: SecondParameter<typeof customFetch>;
|
||||||
|
},
|
||||||
|
queryClient?: QueryClient,
|
||||||
|
): UseQueryResult<TData, TError> & {
|
||||||
|
queryKey: DataTag<QueryKey, TData, TError>;
|
||||||
|
} {
|
||||||
|
const queryOptions =
|
||||||
|
getGetBoardSnapshotApiV1BoardsBoardIdSnapshotGetQueryOptions(
|
||||||
|
boardId,
|
||||||
|
options,
|
||||||
|
);
|
||||||
|
|
||||||
|
const query = useQuery(queryOptions, queryClient) as UseQueryResult<
|
||||||
|
TData,
|
||||||
|
TError
|
||||||
|
> & { queryKey: DataTag<QueryKey, TData, TError> };
|
||||||
|
|
||||||
|
return { ...query, queryKey: queryOptions.queryKey };
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a grouped snapshot across related boards.
|
* Get a grouped snapshot across related boards.
|
||||||
* @summary Get Board Group Snapshot
|
* @summary Get Board Group Snapshot
|
||||||
@@ -1102,242 +1341,3 @@ export function useGetBoardGroupSnapshotApiV1BoardsBoardIdGroupSnapshotGet<
|
|||||||
|
|
||||||
return { ...query, queryKey: queryOptions.queryKey };
|
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<getBoardSnapshotApiV1BoardsBoardIdSnapshotGetResponse> => {
|
|
||||||
return customFetch<getBoardSnapshotApiV1BoardsBoardIdSnapshotGetResponse>(
|
|
||||||
getGetBoardSnapshotApiV1BoardsBoardIdSnapshotGetUrl(boardId),
|
|
||||||
{
|
|
||||||
...options,
|
|
||||||
method: "GET",
|
|
||||||
},
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export const getGetBoardSnapshotApiV1BoardsBoardIdSnapshotGetQueryKey = (
|
|
||||||
boardId: string,
|
|
||||||
) => {
|
|
||||||
return [`/api/v1/boards/${boardId}/snapshot`] as const;
|
|
||||||
};
|
|
||||||
|
|
||||||
export const getGetBoardSnapshotApiV1BoardsBoardIdSnapshotGetQueryOptions = <
|
|
||||||
TData = Awaited<
|
|
||||||
ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>
|
|
||||||
>,
|
|
||||||
TError = HTTPValidationError,
|
|
||||||
>(
|
|
||||||
boardId: string,
|
|
||||||
options?: {
|
|
||||||
query?: Partial<
|
|
||||||
UseQueryOptions<
|
|
||||||
Awaited<
|
|
||||||
ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>
|
|
||||||
>,
|
|
||||||
TError,
|
|
||||||
TData
|
|
||||||
>
|
|
||||||
>;
|
|
||||||
request?: SecondParameter<typeof customFetch>;
|
|
||||||
},
|
|
||||||
) => {
|
|
||||||
const { query: queryOptions, request: requestOptions } = options ?? {};
|
|
||||||
|
|
||||||
const queryKey =
|
|
||||||
queryOptions?.queryKey ??
|
|
||||||
getGetBoardSnapshotApiV1BoardsBoardIdSnapshotGetQueryKey(boardId);
|
|
||||||
|
|
||||||
const queryFn: QueryFunction<
|
|
||||||
Awaited<ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>>
|
|
||||||
> = ({ signal }) =>
|
|
||||||
getBoardSnapshotApiV1BoardsBoardIdSnapshotGet(boardId, {
|
|
||||||
signal,
|
|
||||||
...requestOptions,
|
|
||||||
});
|
|
||||||
|
|
||||||
return {
|
|
||||||
queryKey,
|
|
||||||
queryFn,
|
|
||||||
enabled: !!boardId,
|
|
||||||
...queryOptions,
|
|
||||||
} as UseQueryOptions<
|
|
||||||
Awaited<ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>>,
|
|
||||||
TError,
|
|
||||||
TData
|
|
||||||
> & { queryKey: DataTag<QueryKey, TData, TError> };
|
|
||||||
};
|
|
||||||
|
|
||||||
export type GetBoardSnapshotApiV1BoardsBoardIdSnapshotGetQueryResult =
|
|
||||||
NonNullable<
|
|
||||||
Awaited<ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>>
|
|
||||||
>;
|
|
||||||
export type GetBoardSnapshotApiV1BoardsBoardIdSnapshotGetQueryError =
|
|
||||||
HTTPValidationError;
|
|
||||||
|
|
||||||
export function useGetBoardSnapshotApiV1BoardsBoardIdSnapshotGet<
|
|
||||||
TData = Awaited<
|
|
||||||
ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>
|
|
||||||
>,
|
|
||||||
TError = HTTPValidationError,
|
|
||||||
>(
|
|
||||||
boardId: string,
|
|
||||||
options: {
|
|
||||||
query: Partial<
|
|
||||||
UseQueryOptions<
|
|
||||||
Awaited<
|
|
||||||
ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>
|
|
||||||
>,
|
|
||||||
TError,
|
|
||||||
TData
|
|
||||||
>
|
|
||||||
> &
|
|
||||||
Pick<
|
|
||||||
DefinedInitialDataOptions<
|
|
||||||
Awaited<
|
|
||||||
ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>
|
|
||||||
>,
|
|
||||||
TError,
|
|
||||||
Awaited<
|
|
||||||
ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>
|
|
||||||
>
|
|
||||||
>,
|
|
||||||
"initialData"
|
|
||||||
>;
|
|
||||||
request?: SecondParameter<typeof customFetch>;
|
|
||||||
},
|
|
||||||
queryClient?: QueryClient,
|
|
||||||
): DefinedUseQueryResult<TData, TError> & {
|
|
||||||
queryKey: DataTag<QueryKey, TData, TError>;
|
|
||||||
};
|
|
||||||
export function useGetBoardSnapshotApiV1BoardsBoardIdSnapshotGet<
|
|
||||||
TData = Awaited<
|
|
||||||
ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>
|
|
||||||
>,
|
|
||||||
TError = HTTPValidationError,
|
|
||||||
>(
|
|
||||||
boardId: string,
|
|
||||||
options?: {
|
|
||||||
query?: Partial<
|
|
||||||
UseQueryOptions<
|
|
||||||
Awaited<
|
|
||||||
ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>
|
|
||||||
>,
|
|
||||||
TError,
|
|
||||||
TData
|
|
||||||
>
|
|
||||||
> &
|
|
||||||
Pick<
|
|
||||||
UndefinedInitialDataOptions<
|
|
||||||
Awaited<
|
|
||||||
ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>
|
|
||||||
>,
|
|
||||||
TError,
|
|
||||||
Awaited<
|
|
||||||
ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>
|
|
||||||
>
|
|
||||||
>,
|
|
||||||
"initialData"
|
|
||||||
>;
|
|
||||||
request?: SecondParameter<typeof customFetch>;
|
|
||||||
},
|
|
||||||
queryClient?: QueryClient,
|
|
||||||
): UseQueryResult<TData, TError> & {
|
|
||||||
queryKey: DataTag<QueryKey, TData, TError>;
|
|
||||||
};
|
|
||||||
export function useGetBoardSnapshotApiV1BoardsBoardIdSnapshotGet<
|
|
||||||
TData = Awaited<
|
|
||||||
ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>
|
|
||||||
>,
|
|
||||||
TError = HTTPValidationError,
|
|
||||||
>(
|
|
||||||
boardId: string,
|
|
||||||
options?: {
|
|
||||||
query?: Partial<
|
|
||||||
UseQueryOptions<
|
|
||||||
Awaited<
|
|
||||||
ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>
|
|
||||||
>,
|
|
||||||
TError,
|
|
||||||
TData
|
|
||||||
>
|
|
||||||
>;
|
|
||||||
request?: SecondParameter<typeof customFetch>;
|
|
||||||
},
|
|
||||||
queryClient?: QueryClient,
|
|
||||||
): UseQueryResult<TData, TError> & {
|
|
||||||
queryKey: DataTag<QueryKey, TData, TError>;
|
|
||||||
};
|
|
||||||
/**
|
|
||||||
* @summary Get Board Snapshot
|
|
||||||
*/
|
|
||||||
|
|
||||||
export function useGetBoardSnapshotApiV1BoardsBoardIdSnapshotGet<
|
|
||||||
TData = Awaited<
|
|
||||||
ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>
|
|
||||||
>,
|
|
||||||
TError = HTTPValidationError,
|
|
||||||
>(
|
|
||||||
boardId: string,
|
|
||||||
options?: {
|
|
||||||
query?: Partial<
|
|
||||||
UseQueryOptions<
|
|
||||||
Awaited<
|
|
||||||
ReturnType<typeof getBoardSnapshotApiV1BoardsBoardIdSnapshotGet>
|
|
||||||
>,
|
|
||||||
TError,
|
|
||||||
TData
|
|
||||||
>
|
|
||||||
>;
|
|
||||||
request?: SecondParameter<typeof customFetch>;
|
|
||||||
},
|
|
||||||
queryClient?: QueryClient,
|
|
||||||
): UseQueryResult<TData, TError> & {
|
|
||||||
queryKey: DataTag<QueryKey, TData, TError>;
|
|
||||||
} {
|
|
||||||
const queryOptions =
|
|
||||||
getGetBoardSnapshotApiV1BoardsBoardIdSnapshotGetQueryOptions(
|
|
||||||
boardId,
|
|
||||||
options,
|
|
||||||
);
|
|
||||||
|
|
||||||
const query = useQuery(queryOptions, queryClient) as UseQueryResult<
|
|
||||||
TData,
|
|
||||||
TError
|
|
||||||
> & { queryKey: DataTag<QueryKey, TData, TError> };
|
|
||||||
|
|
||||||
return { ...query, queryKey: queryOptions.queryKey };
|
|
||||||
}
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -9,10 +9,10 @@
|
|||||||
* Serialized activity event payload returned by activity endpoints.
|
* Serialized activity event payload returned by activity endpoints.
|
||||||
*/
|
*/
|
||||||
export interface ActivityEventRead {
|
export interface ActivityEventRead {
|
||||||
agent_id: string | null;
|
|
||||||
created_at: string;
|
|
||||||
event_type: string;
|
|
||||||
id: string;
|
id: string;
|
||||||
|
event_type: string;
|
||||||
message: string | null;
|
message: string | null;
|
||||||
|
agent_id: string | null;
|
||||||
task_id: string | null;
|
task_id: string | null;
|
||||||
|
created_at: string;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,14 +9,14 @@
|
|||||||
* Denormalized task-comment feed item enriched with task and board fields.
|
* Denormalized task-comment feed item enriched with task and board fields.
|
||||||
*/
|
*/
|
||||||
export interface ActivityTaskCommentFeedItemRead {
|
export interface ActivityTaskCommentFeedItemRead {
|
||||||
|
id: string;
|
||||||
|
created_at: string;
|
||||||
|
message: string | null;
|
||||||
agent_id: string | null;
|
agent_id: string | null;
|
||||||
agent_name?: string | null;
|
agent_name?: string | null;
|
||||||
agent_role?: string | null;
|
agent_role?: string | null;
|
||||||
board_id: string;
|
|
||||||
board_name: string;
|
|
||||||
created_at: string;
|
|
||||||
id: string;
|
|
||||||
message: string | null;
|
|
||||||
task_id: string;
|
task_id: string;
|
||||||
task_title: string;
|
task_title: string;
|
||||||
|
board_id: string;
|
||||||
|
board_name: string;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,11 +12,11 @@ import type { AgentCreateIdentityProfile } from "./agentCreateIdentityProfile";
|
|||||||
*/
|
*/
|
||||||
export interface AgentCreate {
|
export interface AgentCreate {
|
||||||
board_id?: string | null;
|
board_id?: string | null;
|
||||||
|
/** @minLength 1 */
|
||||||
|
name: string;
|
||||||
|
status?: string;
|
||||||
heartbeat_config?: AgentCreateHeartbeatConfig;
|
heartbeat_config?: AgentCreateHeartbeatConfig;
|
||||||
identity_profile?: AgentCreateIdentityProfile;
|
identity_profile?: AgentCreateIdentityProfile;
|
||||||
identity_template?: string | null;
|
identity_template?: string | null;
|
||||||
/** @minLength 1 */
|
|
||||||
name: string;
|
|
||||||
soul_template?: string | null;
|
soul_template?: string | null;
|
||||||
status?: string;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
/**
|
|
||||||
* Generated by orval v8.2.0 🍺
|
|
||||||
* Do not edit manually.
|
|
||||||
* Mission Control API
|
|
||||||
* OpenAPI spec version: 0.1.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
export interface AgentDeleteConfirm {
|
|
||||||
token: string;
|
|
||||||
}
|
|
||||||
@@ -9,8 +9,8 @@
|
|||||||
* Heartbeat payload used to create an agent lazily.
|
* Heartbeat payload used to create an agent lazily.
|
||||||
*/
|
*/
|
||||||
export interface AgentHeartbeatCreate {
|
export interface AgentHeartbeatCreate {
|
||||||
board_id?: string | null;
|
status?: string | null;
|
||||||
/** @minLength 1 */
|
/** @minLength 1 */
|
||||||
name: string;
|
name: string;
|
||||||
status?: string | null;
|
board_id?: string | null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
/**
|
|
||||||
* Generated by orval v8.2.0 🍺
|
|
||||||
* Do not edit manually.
|
|
||||||
* Mission Control API
|
|
||||||
* OpenAPI spec version: 0.1.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
export interface AgentProvisionConfirm {
|
|
||||||
token: string;
|
|
||||||
action?: string | null;
|
|
||||||
}
|
|
||||||
@@ -12,19 +12,19 @@ import type { AgentReadIdentityProfile } from "./agentReadIdentityProfile";
|
|||||||
*/
|
*/
|
||||||
export interface AgentRead {
|
export interface AgentRead {
|
||||||
board_id?: string | null;
|
board_id?: string | null;
|
||||||
created_at: string;
|
|
||||||
gateway_id: string;
|
|
||||||
heartbeat_config?: AgentReadHeartbeatConfig;
|
|
||||||
id: string;
|
|
||||||
identity_profile?: AgentReadIdentityProfile;
|
|
||||||
identity_template?: string | null;
|
|
||||||
is_board_lead?: boolean;
|
|
||||||
is_gateway_main?: boolean;
|
|
||||||
last_seen_at: string | null;
|
|
||||||
/** @minLength 1 */
|
/** @minLength 1 */
|
||||||
name: string;
|
name: string;
|
||||||
openclaw_session_id?: string | null;
|
|
||||||
soul_template?: string | null;
|
|
||||||
status?: string;
|
status?: string;
|
||||||
|
heartbeat_config?: AgentReadHeartbeatConfig;
|
||||||
|
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;
|
||||||
updated_at: string;
|
updated_at: string;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,11 +12,11 @@ import type { AgentUpdateIdentityProfile } from "./agentUpdateIdentityProfile";
|
|||||||
*/
|
*/
|
||||||
export interface AgentUpdate {
|
export interface AgentUpdate {
|
||||||
board_id?: string | null;
|
board_id?: string | null;
|
||||||
|
is_gateway_main?: boolean | null;
|
||||||
|
name?: string | null;
|
||||||
|
status?: string | null;
|
||||||
heartbeat_config?: AgentUpdateHeartbeatConfig;
|
heartbeat_config?: AgentUpdateHeartbeatConfig;
|
||||||
identity_profile?: AgentUpdateIdentityProfile;
|
identity_profile?: AgentUpdateIdentityProfile;
|
||||||
identity_template?: string | null;
|
identity_template?: string | null;
|
||||||
is_gateway_main?: boolean | null;
|
|
||||||
name?: string | null;
|
|
||||||
soul_template?: string | null;
|
soul_template?: string | null;
|
||||||
status?: string | null;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,11 +13,11 @@ import type { ApprovalCreateStatus } from "./approvalCreateStatus";
|
|||||||
*/
|
*/
|
||||||
export interface ApprovalCreate {
|
export interface ApprovalCreate {
|
||||||
action_type: string;
|
action_type: string;
|
||||||
agent_id?: string | null;
|
|
||||||
confidence: number;
|
|
||||||
payload?: ApprovalCreatePayload;
|
|
||||||
rubric_scores?: ApprovalCreateRubricScores;
|
|
||||||
status?: ApprovalCreateStatus;
|
|
||||||
task_id?: string | null;
|
task_id?: string | null;
|
||||||
task_ids?: string[];
|
task_ids?: string[];
|
||||||
|
payload?: ApprovalCreatePayload;
|
||||||
|
confidence: number;
|
||||||
|
rubric_scores?: ApprovalCreateRubricScores;
|
||||||
|
status?: ApprovalCreateStatus;
|
||||||
|
agent_id?: string | null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,15 +13,15 @@ import type { ApprovalReadStatus } from "./approvalReadStatus";
|
|||||||
*/
|
*/
|
||||||
export interface ApprovalRead {
|
export interface ApprovalRead {
|
||||||
action_type: string;
|
action_type: string;
|
||||||
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;
|
|
||||||
task_id?: string | null;
|
task_id?: string | null;
|
||||||
task_ids?: string[];
|
task_ids?: string[];
|
||||||
|
payload?: ApprovalReadPayload;
|
||||||
|
confidence: number;
|
||||||
|
rubric_scores?: ApprovalReadRubricScores;
|
||||||
|
status?: ApprovalReadStatus;
|
||||||
|
id: string;
|
||||||
|
board_id: string;
|
||||||
|
agent_id?: string | null;
|
||||||
|
created_at: string;
|
||||||
|
resolved_at?: string | null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,6 @@
|
|||||||
* Error detail payload listing blocking dependency task identifiers.
|
* Error detail payload listing blocking dependency task identifiers.
|
||||||
*/
|
*/
|
||||||
export interface BlockedTaskDetail {
|
export interface BlockedTaskDetail {
|
||||||
blocked_by_task_ids?: string[];
|
|
||||||
message: string;
|
message: string;
|
||||||
|
blocked_by_task_ids?: string[];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,15 +10,15 @@ import type { BoardCreateSuccessMetrics } from "./boardCreateSuccessMetrics";
|
|||||||
* Payload for creating a board.
|
* Payload for creating a board.
|
||||||
*/
|
*/
|
||||||
export interface BoardCreate {
|
export interface BoardCreate {
|
||||||
board_group_id?: string | null;
|
name: string;
|
||||||
board_type?: string;
|
slug: string;
|
||||||
description: string;
|
description: string;
|
||||||
gateway_id?: string | null;
|
gateway_id?: string | null;
|
||||||
goal_confirmed?: boolean;
|
board_group_id?: string | null;
|
||||||
goal_source?: string | null;
|
board_type?: string;
|
||||||
name: string;
|
|
||||||
objective?: string | null;
|
objective?: string | null;
|
||||||
slug: string;
|
|
||||||
success_metrics?: BoardCreateSuccessMetrics;
|
success_metrics?: BoardCreateSuccessMetrics;
|
||||||
target_date?: string | null;
|
target_date?: string | null;
|
||||||
|
goal_confirmed?: boolean;
|
||||||
|
goal_source?: string | null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
* Payload for creating a board group.
|
* Payload for creating a board group.
|
||||||
*/
|
*/
|
||||||
export interface BoardGroupCreate {
|
export interface BoardGroupCreate {
|
||||||
description?: string | null;
|
|
||||||
name: string;
|
name: string;
|
||||||
slug: string;
|
slug: string;
|
||||||
|
description?: string | null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,6 @@
|
|||||||
*/
|
*/
|
||||||
export interface BoardGroupHeartbeatApply {
|
export interface BoardGroupHeartbeatApply {
|
||||||
every: string;
|
every: string;
|
||||||
include_board_leads?: boolean;
|
|
||||||
target?: string | null;
|
target?: string | null;
|
||||||
|
include_board_leads?: boolean;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import type { BoardGroupHeartbeatApplyResultRequested } from "./boardGroupHeartb
|
|||||||
*/
|
*/
|
||||||
export interface BoardGroupHeartbeatApplyResult {
|
export interface BoardGroupHeartbeatApplyResult {
|
||||||
board_group_id: string;
|
board_group_id: string;
|
||||||
failed_agent_ids: string[];
|
|
||||||
requested: BoardGroupHeartbeatApplyResultRequested;
|
requested: BoardGroupHeartbeatApplyResultRequested;
|
||||||
updated_agent_ids: string[];
|
updated_agent_ids: string[];
|
||||||
|
failed_agent_ids: string[];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,6 @@
|
|||||||
export interface BoardGroupMemoryCreate {
|
export interface BoardGroupMemoryCreate {
|
||||||
/** @minLength 1 */
|
/** @minLength 1 */
|
||||||
content: string;
|
content: string;
|
||||||
source?: string | null;
|
|
||||||
tags?: string[] | null;
|
tags?: string[] | null;
|
||||||
|
source?: string | null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,11 +9,11 @@
|
|||||||
* Serialized board-group memory entry returned from read endpoints.
|
* Serialized board-group memory entry returned from read endpoints.
|
||||||
*/
|
*/
|
||||||
export interface BoardGroupMemoryRead {
|
export interface BoardGroupMemoryRead {
|
||||||
|
id: string;
|
||||||
board_group_id: string;
|
board_group_id: string;
|
||||||
content: string;
|
content: string;
|
||||||
created_at: string;
|
|
||||||
id: string;
|
|
||||||
is_chat?: boolean;
|
|
||||||
source?: string | null;
|
|
||||||
tags?: string[] | null;
|
tags?: string[] | null;
|
||||||
|
source?: string | null;
|
||||||
|
is_chat?: boolean;
|
||||||
|
created_at: string;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,11 +9,11 @@
|
|||||||
* Board-group payload returned from read endpoints.
|
* Board-group payload returned from read endpoints.
|
||||||
*/
|
*/
|
||||||
export interface BoardGroupRead {
|
export interface BoardGroupRead {
|
||||||
created_at: string;
|
name: string;
|
||||||
|
slug: string;
|
||||||
description?: string | null;
|
description?: string | null;
|
||||||
id: string;
|
id: string;
|
||||||
name: string;
|
|
||||||
organization_id: string;
|
organization_id: string;
|
||||||
slug: string;
|
created_at: string;
|
||||||
updated_at: string;
|
updated_at: string;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,6 @@ import type { BoardGroupRead } from "./boardGroupRead";
|
|||||||
* Top-level board-group snapshot response payload.
|
* Top-level board-group snapshot response payload.
|
||||||
*/
|
*/
|
||||||
export interface BoardGroupSnapshot {
|
export interface BoardGroupSnapshot {
|
||||||
boards?: BoardGroupBoardSnapshot[];
|
|
||||||
group?: BoardGroupRead | null;
|
group?: BoardGroupRead | null;
|
||||||
|
boards?: BoardGroupBoardSnapshot[];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,23 +4,23 @@
|
|||||||
* Mission Control API
|
* Mission Control API
|
||||||
* OpenAPI spec version: 0.1.0
|
* OpenAPI spec version: 0.1.0
|
||||||
*/
|
*/
|
||||||
import type { TaskTagRef } from "./taskTagRef";
|
import type { TagRef } from "./tagRef";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Task summary row used inside board-group snapshot responses.
|
* Task summary row used inside board-group snapshot responses.
|
||||||
*/
|
*/
|
||||||
export interface BoardGroupTaskSummary {
|
export interface BoardGroupTaskSummary {
|
||||||
assigned_agent_id?: string | null;
|
id: string;
|
||||||
assignee?: string | null;
|
|
||||||
board_id: string;
|
board_id: string;
|
||||||
board_name: 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;
|
title: string;
|
||||||
|
status: string;
|
||||||
|
priority: string;
|
||||||
|
assigned_agent_id?: string | null;
|
||||||
|
assignee?: string | null;
|
||||||
|
due_at?: string | null;
|
||||||
|
in_progress_at?: string | null;
|
||||||
|
tags?: TagRef[];
|
||||||
|
created_at: string;
|
||||||
updated_at: string;
|
updated_at: string;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
* Payload for partial board-group updates.
|
* Payload for partial board-group updates.
|
||||||
*/
|
*/
|
||||||
export interface BoardGroupUpdate {
|
export interface BoardGroupUpdate {
|
||||||
description?: string | null;
|
|
||||||
name?: string | null;
|
name?: string | null;
|
||||||
slug?: string | null;
|
slug?: string | null;
|
||||||
|
description?: string | null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,6 @@
|
|||||||
export interface BoardMemoryCreate {
|
export interface BoardMemoryCreate {
|
||||||
/** @minLength 1 */
|
/** @minLength 1 */
|
||||||
content: string;
|
content: string;
|
||||||
source?: string | null;
|
|
||||||
tags?: string[] | null;
|
tags?: string[] | null;
|
||||||
|
source?: string | null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,11 +9,11 @@
|
|||||||
* Serialized board memory entry returned from read endpoints.
|
* Serialized board memory entry returned from read endpoints.
|
||||||
*/
|
*/
|
||||||
export interface BoardMemoryRead {
|
export interface BoardMemoryRead {
|
||||||
|
id: string;
|
||||||
board_id: string;
|
board_id: string;
|
||||||
content: string;
|
content: string;
|
||||||
created_at: string;
|
|
||||||
id: string;
|
|
||||||
is_chat?: boolean;
|
|
||||||
source?: string | null;
|
|
||||||
tags?: string[] | null;
|
tags?: string[] | null;
|
||||||
|
source?: string | null;
|
||||||
|
is_chat?: boolean;
|
||||||
|
created_at: string;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,10 +13,10 @@ import type { BoardOnboardingUserProfile } from "./boardOnboardingUserProfile";
|
|||||||
*/
|
*/
|
||||||
export interface BoardOnboardingAgentComplete {
|
export interface BoardOnboardingAgentComplete {
|
||||||
board_type: string;
|
board_type: string;
|
||||||
lead_agent?: BoardOnboardingLeadAgentDraft | null;
|
|
||||||
objective?: string | null;
|
objective?: string | null;
|
||||||
status: "complete";
|
|
||||||
success_metrics?: BoardOnboardingAgentCompleteSuccessMetrics;
|
success_metrics?: BoardOnboardingAgentCompleteSuccessMetrics;
|
||||||
target_date?: string | null;
|
target_date?: string | null;
|
||||||
|
status: "complete";
|
||||||
user_profile?: BoardOnboardingUserProfile | null;
|
user_profile?: BoardOnboardingUserProfile | null;
|
||||||
|
lead_agent?: BoardOnboardingLeadAgentDraft | null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
/**
|
|
||||||
* Generated by orval v8.2.0 🍺
|
|
||||||
* Do not edit manually.
|
|
||||||
* Mission Control API
|
|
||||||
* OpenAPI spec version: 0.1.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
export type BoardOnboardingAgentCompleteStatus =
|
|
||||||
(typeof BoardOnboardingAgentCompleteStatus)[keyof typeof BoardOnboardingAgentCompleteStatus];
|
|
||||||
|
|
||||||
export const BoardOnboardingAgentCompleteStatus = {
|
|
||||||
complete: "complete",
|
|
||||||
} as const;
|
|
||||||
@@ -10,8 +10,8 @@ import type { BoardOnboardingQuestionOption } from "./boardOnboardingQuestionOpt
|
|||||||
* Question payload emitted by the onboarding assistant.
|
* Question payload emitted by the onboarding assistant.
|
||||||
*/
|
*/
|
||||||
export interface BoardOnboardingAgentQuestion {
|
export interface BoardOnboardingAgentQuestion {
|
||||||
/** @minItems 1 */
|
|
||||||
options: BoardOnboardingQuestionOption[];
|
|
||||||
/** @minLength 1 */
|
/** @minLength 1 */
|
||||||
question: string;
|
question: string;
|
||||||
|
/** @minItems 1 */
|
||||||
|
options: BoardOnboardingQuestionOption[];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,11 +10,11 @@ import type { BoardOnboardingLeadAgentDraftIdentityProfile } from "./boardOnboar
|
|||||||
* Editable lead-agent draft configuration.
|
* Editable lead-agent draft configuration.
|
||||||
*/
|
*/
|
||||||
export interface BoardOnboardingLeadAgentDraft {
|
export interface BoardOnboardingLeadAgentDraft {
|
||||||
autonomy_level?: "ask_first" | "balanced" | "autonomous" | null;
|
|
||||||
custom_instructions?: string | null;
|
|
||||||
identity_profile?: BoardOnboardingLeadAgentDraftIdentityProfile;
|
|
||||||
name?: string | null;
|
name?: string | null;
|
||||||
|
identity_profile?: BoardOnboardingLeadAgentDraftIdentityProfile;
|
||||||
|
autonomy_level?: "ask_first" | "balanced" | "autonomous" | null;
|
||||||
|
verbosity?: "concise" | "balanced" | "detailed" | null;
|
||||||
output_format?: "bullets" | "mixed" | "narrative" | null;
|
output_format?: "bullets" | "mixed" | "narrative" | null;
|
||||||
update_cadence?: "asap" | "hourly" | "daily" | "weekly" | null;
|
update_cadence?: "asap" | "hourly" | "daily" | "weekly" | null;
|
||||||
verbosity?: "concise" | "balanced" | "detailed" | null;
|
custom_instructions?: string | null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,12 +11,12 @@ import type { BoardOnboardingReadMessages } from "./boardOnboardingReadMessages"
|
|||||||
* Stored onboarding session state returned by API endpoints.
|
* Stored onboarding session state returned by API endpoints.
|
||||||
*/
|
*/
|
||||||
export interface BoardOnboardingRead {
|
export interface BoardOnboardingRead {
|
||||||
board_id: string;
|
|
||||||
created_at: string;
|
|
||||||
draft_goal?: BoardOnboardingAgentComplete | null;
|
|
||||||
id: string;
|
id: string;
|
||||||
messages?: BoardOnboardingReadMessages;
|
board_id: string;
|
||||||
session_key: string;
|
session_key: string;
|
||||||
status: string;
|
status: string;
|
||||||
|
messages?: BoardOnboardingReadMessages;
|
||||||
|
draft_goal?: BoardOnboardingAgentComplete | null;
|
||||||
|
created_at: string;
|
||||||
updated_at: string;
|
updated_at: string;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
/**
|
|
||||||
* Generated by orval v8.2.0 🍺
|
|
||||||
* Do not edit manually.
|
|
||||||
* Mission Control API
|
|
||||||
* OpenAPI spec version: 0.1.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
export type BoardOnboardingReadDraftGoal = { [key: string]: unknown } | null;
|
|
||||||
@@ -9,9 +9,9 @@
|
|||||||
* User-profile preferences gathered during onboarding.
|
* User-profile preferences gathered during onboarding.
|
||||||
*/
|
*/
|
||||||
export interface BoardOnboardingUserProfile {
|
export interface BoardOnboardingUserProfile {
|
||||||
context?: string | null;
|
|
||||||
notes?: string | null;
|
|
||||||
preferred_name?: string | null;
|
preferred_name?: string | null;
|
||||||
pronouns?: string | null;
|
pronouns?: string | null;
|
||||||
timezone?: string | null;
|
timezone?: string | null;
|
||||||
|
notes?: string | null;
|
||||||
|
context?: string | null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,19 +10,19 @@ import type { BoardReadSuccessMetrics } from "./boardReadSuccessMetrics";
|
|||||||
* Board payload returned from read endpoints.
|
* Board payload returned from read endpoints.
|
||||||
*/
|
*/
|
||||||
export interface BoardRead {
|
export interface BoardRead {
|
||||||
board_group_id?: string | null;
|
name: string;
|
||||||
board_type?: string;
|
slug: string;
|
||||||
created_at: string;
|
|
||||||
description: string;
|
description: string;
|
||||||
gateway_id?: string | null;
|
gateway_id?: string | null;
|
||||||
|
board_group_id?: string | null;
|
||||||
|
board_type?: string;
|
||||||
|
objective?: string | null;
|
||||||
|
success_metrics?: BoardReadSuccessMetrics;
|
||||||
|
target_date?: string | null;
|
||||||
goal_confirmed?: boolean;
|
goal_confirmed?: boolean;
|
||||||
goal_source?: string | null;
|
goal_source?: string | null;
|
||||||
id: string;
|
id: string;
|
||||||
name: string;
|
|
||||||
objective?: string | null;
|
|
||||||
organization_id: string;
|
organization_id: string;
|
||||||
slug: string;
|
created_at: string;
|
||||||
success_metrics?: BoardReadSuccessMetrics;
|
|
||||||
target_date?: string | null;
|
|
||||||
updated_at: string;
|
updated_at: string;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,10 +14,10 @@ import type { TaskCardRead } from "./taskCardRead";
|
|||||||
* Aggregated board payload used by board snapshot endpoints.
|
* Aggregated board payload used by board snapshot endpoints.
|
||||||
*/
|
*/
|
||||||
export interface BoardSnapshot {
|
export interface BoardSnapshot {
|
||||||
|
board: BoardRead;
|
||||||
|
tasks: TaskCardRead[];
|
||||||
agents: AgentRead[];
|
agents: AgentRead[];
|
||||||
approvals: ApprovalRead[];
|
approvals: ApprovalRead[];
|
||||||
board: BoardRead;
|
|
||||||
chat_messages: BoardMemoryRead[];
|
chat_messages: BoardMemoryRead[];
|
||||||
pending_approvals_count?: number;
|
pending_approvals_count?: number;
|
||||||
tasks: TaskCardRead[];
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,15 +10,15 @@ import type { BoardUpdateSuccessMetrics } from "./boardUpdateSuccessMetrics";
|
|||||||
* Payload for partial board updates.
|
* Payload for partial board updates.
|
||||||
*/
|
*/
|
||||||
export interface BoardUpdate {
|
export interface BoardUpdate {
|
||||||
board_group_id?: string | null;
|
name?: string | null;
|
||||||
board_type?: string | null;
|
slug?: string | null;
|
||||||
description?: string | null;
|
description?: string | null;
|
||||||
gateway_id?: string | null;
|
gateway_id?: string | null;
|
||||||
goal_confirmed?: boolean | null;
|
board_group_id?: string | null;
|
||||||
goal_source?: string | null;
|
board_type?: string | null;
|
||||||
name?: string | null;
|
|
||||||
objective?: string | null;
|
objective?: string | null;
|
||||||
slug?: string | null;
|
|
||||||
success_metrics?: BoardUpdateSuccessMetrics;
|
success_metrics?: BoardUpdateSuccessMetrics;
|
||||||
target_date?: string | null;
|
target_date?: string | null;
|
||||||
|
goal_confirmed?: boolean | null;
|
||||||
|
goal_source?: string | null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
/**
|
|
||||||
* Generated by orval v8.2.0 🍺
|
|
||||||
* Do not edit manually.
|
|
||||||
* Mission Control API
|
|
||||||
* OpenAPI spec version: 0.1.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
export type ConfirmDeleteAgentApiV1AgentsAgentIdDeleteConfirmPost200 = {
|
|
||||||
[key: string]: boolean;
|
|
||||||
};
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
/**
|
|
||||||
* Generated by orval v8.2.0 🍺
|
|
||||||
* Do not edit manually.
|
|
||||||
* Mission Control API
|
|
||||||
* OpenAPI spec version: 0.1.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
export type ConfirmProvisionAgentApiV1AgentsAgentIdProvisionConfirmPost200 = {
|
|
||||||
[key: string]: boolean;
|
|
||||||
};
|
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
*/
|
*/
|
||||||
export interface DashboardKpis {
|
export interface DashboardKpis {
|
||||||
active_agents: number;
|
active_agents: number;
|
||||||
|
tasks_in_progress: number;
|
||||||
error_rate_pct: number;
|
error_rate_pct: number;
|
||||||
median_cycle_time_hours_7d: number | null;
|
median_cycle_time_hours_7d: number | null;
|
||||||
tasks_in_progress: number;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,11 +13,11 @@ import type { DashboardWipSeriesSet } from "./dashboardWipSeriesSet";
|
|||||||
* Complete dashboard metrics response payload.
|
* Complete dashboard metrics response payload.
|
||||||
*/
|
*/
|
||||||
export interface DashboardMetrics {
|
export interface DashboardMetrics {
|
||||||
cycle_time: DashboardSeriesSet;
|
range: DashboardMetricsRange;
|
||||||
error_rate: DashboardSeriesSet;
|
|
||||||
generated_at: string;
|
generated_at: string;
|
||||||
kpis: DashboardKpis;
|
kpis: DashboardKpis;
|
||||||
range: DashboardMetricsRange;
|
|
||||||
throughput: DashboardSeriesSet;
|
throughput: DashboardSeriesSet;
|
||||||
|
cycle_time: DashboardSeriesSet;
|
||||||
|
error_rate: DashboardSeriesSet;
|
||||||
wip: DashboardWipSeriesSet;
|
wip: DashboardWipSeriesSet;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
/**
|
|
||||||
* Generated by orval v8.2.0 🍺
|
|
||||||
* Do not edit manually.
|
|
||||||
* Mission Control API
|
|
||||||
* OpenAPI spec version: 0.1.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
export type DashboardMetricsApiV1MetricsDashboardGetRange =
|
|
||||||
(typeof DashboardMetricsApiV1MetricsDashboardGetRange)[keyof typeof DashboardMetricsApiV1MetricsDashboardGetRange];
|
|
||||||
|
|
||||||
export const DashboardMetricsApiV1MetricsDashboardGetRange = {
|
|
||||||
"24h": "24h",
|
|
||||||
"7d": "7d",
|
|
||||||
} as const;
|
|
||||||
@@ -12,7 +12,7 @@ import type { DashboardSeriesPoint } from "./dashboardSeriesPoint";
|
|||||||
* Series payload for a single range/bucket combination.
|
* Series payload for a single range/bucket combination.
|
||||||
*/
|
*/
|
||||||
export interface DashboardRangeSeries {
|
export interface DashboardRangeSeries {
|
||||||
|
range: DashboardRangeSeriesRange;
|
||||||
bucket: DashboardRangeSeriesBucket;
|
bucket: DashboardRangeSeriesBucket;
|
||||||
points: DashboardSeriesPoint[];
|
points: DashboardSeriesPoint[];
|
||||||
range: DashboardRangeSeriesRange;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,6 @@ import type { DashboardRangeSeries } from "./dashboardRangeSeries";
|
|||||||
* Primary vs comparison pair for generic series metrics.
|
* Primary vs comparison pair for generic series metrics.
|
||||||
*/
|
*/
|
||||||
export interface DashboardSeriesSet {
|
export interface DashboardSeriesSet {
|
||||||
comparison: DashboardRangeSeries;
|
|
||||||
primary: DashboardRangeSeries;
|
primary: DashboardRangeSeries;
|
||||||
|
comparison: DashboardRangeSeries;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,8 +9,8 @@
|
|||||||
* Work-in-progress point split by task status buckets.
|
* Work-in-progress point split by task status buckets.
|
||||||
*/
|
*/
|
||||||
export interface DashboardWipPoint {
|
export interface DashboardWipPoint {
|
||||||
in_progress: number;
|
|
||||||
inbox: number;
|
|
||||||
period: string;
|
period: string;
|
||||||
|
inbox: number;
|
||||||
|
in_progress: number;
|
||||||
review: number;
|
review: number;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import type { DashboardWipRangeSeriesRange } from "./dashboardWipRangeSeriesRang
|
|||||||
* WIP series payload for a single range/bucket combination.
|
* WIP series payload for a single range/bucket combination.
|
||||||
*/
|
*/
|
||||||
export interface DashboardWipRangeSeries {
|
export interface DashboardWipRangeSeries {
|
||||||
|
range: DashboardWipRangeSeriesRange;
|
||||||
bucket: DashboardWipRangeSeriesBucket;
|
bucket: DashboardWipRangeSeriesBucket;
|
||||||
points: DashboardWipPoint[];
|
points: DashboardWipPoint[];
|
||||||
range: DashboardWipRangeSeriesRange;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,6 @@ import type { DashboardWipRangeSeries } from "./dashboardWipRangeSeries";
|
|||||||
* Primary vs comparison pair for WIP status series metrics.
|
* Primary vs comparison pair for WIP status series metrics.
|
||||||
*/
|
*/
|
||||||
export interface DashboardWipSeriesSet {
|
export interface DashboardWipSeriesSet {
|
||||||
comparison: DashboardWipRangeSeries;
|
|
||||||
primary: DashboardWipRangeSeries;
|
primary: DashboardWipRangeSeries;
|
||||||
|
comparison: DashboardWipRangeSeries;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
/**
|
|
||||||
* Generated by orval v8.2.0 🍺
|
|
||||||
* Do not edit manually.
|
|
||||||
* Mission Control API
|
|
||||||
* OpenAPI spec version: 0.1.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
export type DeleteAgentApiV1AgentsAgentIdDelete200 = { [key: string]: boolean };
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
/**
|
|
||||||
* Generated by orval v8.2.0 🍺
|
|
||||||
* Do not edit manually.
|
|
||||||
* Mission Control API
|
|
||||||
* OpenAPI spec version: 0.1.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
export type DeleteBoardApiV1BoardsBoardIdDelete200 = { [key: string]: boolean };
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
/**
|
|
||||||
* Generated by orval v8.2.0 🍺
|
|
||||||
* Do not edit manually.
|
|
||||||
* Mission Control API
|
|
||||||
* OpenAPI spec version: 0.1.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
export type DeleteTaskApiV1BoardsBoardIdTasksTaskIdDelete200 = {
|
|
||||||
[key: string]: boolean;
|
|
||||||
};
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
/**
|
|
||||||
* Generated by orval v8.2.0 🍺
|
|
||||||
* Do not edit manually.
|
|
||||||
* Mission Control API
|
|
||||||
* OpenAPI spec version: 0.1.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
export type GatewayCommandsApiV1GatewayCommandsGet200 = {
|
|
||||||
[key: string]: unknown;
|
|
||||||
};
|
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
* Gateway command catalog and protocol metadata.
|
* Gateway command catalog and protocol metadata.
|
||||||
*/
|
*/
|
||||||
export interface GatewayCommandsResponse {
|
export interface GatewayCommandsResponse {
|
||||||
events: string[];
|
|
||||||
methods: string[];
|
|
||||||
protocol_version: number;
|
protocol_version: number;
|
||||||
|
methods: string[];
|
||||||
|
events: string[];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
*/
|
*/
|
||||||
export interface GatewayCreate {
|
export interface GatewayCreate {
|
||||||
name: string;
|
name: string;
|
||||||
token?: string | null;
|
|
||||||
url: string;
|
url: string;
|
||||||
workspace_root: string;
|
workspace_root: string;
|
||||||
|
token?: string | null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,8 +10,8 @@
|
|||||||
*/
|
*/
|
||||||
export interface GatewayLeadBroadcastBoardResult {
|
export interface GatewayLeadBroadcastBoardResult {
|
||||||
board_id: string;
|
board_id: string;
|
||||||
error?: string | null;
|
|
||||||
lead_agent_id?: string | null;
|
lead_agent_id?: string | null;
|
||||||
lead_agent_name?: string | null;
|
lead_agent_name?: string | null;
|
||||||
ok?: boolean;
|
ok?: boolean;
|
||||||
|
error?: string | null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,11 +10,11 @@ import type { GatewayLeadBroadcastRequestKind } from "./gatewayLeadBroadcastRequ
|
|||||||
* Request payload for broadcasting a message to multiple board leads.
|
* Request payload for broadcasting a message to multiple board leads.
|
||||||
*/
|
*/
|
||||||
export interface GatewayLeadBroadcastRequest {
|
export interface GatewayLeadBroadcastRequest {
|
||||||
board_ids?: string[] | null;
|
kind?: GatewayLeadBroadcastRequestKind;
|
||||||
|
correlation_id?: string | null;
|
||||||
/** @minLength 1 */
|
/** @minLength 1 */
|
||||||
content: string;
|
content: string;
|
||||||
correlation_id?: string | null;
|
board_ids?: string[] | null;
|
||||||
kind?: GatewayLeadBroadcastRequestKind;
|
|
||||||
reply_source?: string | null;
|
|
||||||
reply_tags?: string[];
|
reply_tags?: string[];
|
||||||
|
reply_source?: string | null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ import type { GatewayLeadBroadcastBoardResult } from "./gatewayLeadBroadcastBoar
|
|||||||
* Aggregate response for a lead broadcast operation.
|
* Aggregate response for a lead broadcast operation.
|
||||||
*/
|
*/
|
||||||
export interface GatewayLeadBroadcastResponse {
|
export interface GatewayLeadBroadcastResponse {
|
||||||
failed?: number;
|
|
||||||
ok?: boolean;
|
ok?: boolean;
|
||||||
results?: GatewayLeadBroadcastBoardResult[];
|
|
||||||
sent?: number;
|
sent?: number;
|
||||||
|
failed?: number;
|
||||||
|
results?: GatewayLeadBroadcastBoardResult[];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,10 +10,10 @@ import type { GatewayLeadMessageRequestKind } from "./gatewayLeadMessageRequestK
|
|||||||
* Request payload for sending a message to a board lead agent.
|
* Request payload for sending a message to a board lead agent.
|
||||||
*/
|
*/
|
||||||
export interface GatewayLeadMessageRequest {
|
export interface GatewayLeadMessageRequest {
|
||||||
|
kind?: GatewayLeadMessageRequestKind;
|
||||||
|
correlation_id?: string | null;
|
||||||
/** @minLength 1 */
|
/** @minLength 1 */
|
||||||
content: string;
|
content: string;
|
||||||
correlation_id?: string | null;
|
|
||||||
kind?: GatewayLeadMessageRequestKind;
|
|
||||||
reply_source?: string | null;
|
|
||||||
reply_tags?: string[];
|
reply_tags?: string[];
|
||||||
|
reply_source?: string | null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,9 +9,9 @@
|
|||||||
* Response payload for a lead-message dispatch attempt.
|
* Response payload for a lead-message dispatch attempt.
|
||||||
*/
|
*/
|
||||||
export interface GatewayLeadMessageResponse {
|
export interface GatewayLeadMessageResponse {
|
||||||
|
ok?: boolean;
|
||||||
board_id: string;
|
board_id: string;
|
||||||
lead_agent_id?: string | null;
|
lead_agent_id?: string | null;
|
||||||
lead_agent_name?: string | null;
|
lead_agent_name?: string | null;
|
||||||
lead_created?: boolean;
|
lead_created?: boolean;
|
||||||
ok?: boolean;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,10 +9,10 @@
|
|||||||
* Request payload for asking the end user via a main gateway agent.
|
* Request payload for asking the end user via a main gateway agent.
|
||||||
*/
|
*/
|
||||||
export interface GatewayMainAskUserRequest {
|
export interface GatewayMainAskUserRequest {
|
||||||
|
correlation_id?: string | null;
|
||||||
/** @minLength 1 */
|
/** @minLength 1 */
|
||||||
content: string;
|
content: string;
|
||||||
correlation_id?: string | null;
|
|
||||||
preferred_channel?: string | null;
|
preferred_channel?: string | null;
|
||||||
reply_source?: string | null;
|
|
||||||
reply_tags?: string[];
|
reply_tags?: string[];
|
||||||
|
reply_source?: string | null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,8 +9,8 @@
|
|||||||
* Response payload for user-question dispatch via gateway main agent.
|
* Response payload for user-question dispatch via gateway main agent.
|
||||||
*/
|
*/
|
||||||
export interface GatewayMainAskUserResponse {
|
export interface GatewayMainAskUserResponse {
|
||||||
|
ok?: boolean;
|
||||||
board_id: string;
|
board_id: string;
|
||||||
main_agent_id?: string | null;
|
main_agent_id?: string | null;
|
||||||
main_agent_name?: string | null;
|
main_agent_name?: string | null;
|
||||||
ok?: boolean;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,12 +9,12 @@
|
|||||||
* Gateway payload returned from read endpoints.
|
* Gateway payload returned from read endpoints.
|
||||||
*/
|
*/
|
||||||
export interface GatewayRead {
|
export interface GatewayRead {
|
||||||
created_at: string;
|
|
||||||
id: string;
|
|
||||||
name: string;
|
name: string;
|
||||||
organization_id: string;
|
|
||||||
token?: string | null;
|
|
||||||
updated_at: string;
|
|
||||||
url: string;
|
url: string;
|
||||||
workspace_root: string;
|
workspace_root: string;
|
||||||
|
id: string;
|
||||||
|
organization_id: string;
|
||||||
|
token?: string | null;
|
||||||
|
created_at: string;
|
||||||
|
updated_at: string;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
/**
|
|
||||||
* Generated by orval v8.2.0 🍺
|
|
||||||
* Do not edit manually.
|
|
||||||
* Mission Control API
|
|
||||||
* OpenAPI spec version: 0.1.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Query parameters used to resolve which gateway to target.
|
|
||||||
*/
|
|
||||||
export interface GatewayResolveQuery {
|
|
||||||
board_id?: string | null;
|
|
||||||
gateway_url?: string | null;
|
|
||||||
gateway_token?: string | null;
|
|
||||||
}
|
|
||||||
@@ -9,6 +9,6 @@
|
|||||||
* Gateway sessions list response payload.
|
* Gateway sessions list response payload.
|
||||||
*/
|
*/
|
||||||
export interface GatewaySessionsResponse {
|
export interface GatewaySessionsResponse {
|
||||||
main_session?: unknown | null;
|
|
||||||
sessions: unknown[];
|
sessions: unknown[];
|
||||||
|
main_session?: unknown | null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
/**
|
|
||||||
* Generated by orval v8.2.0 🍺
|
|
||||||
* Do not edit manually.
|
|
||||||
* Mission Control API
|
|
||||||
* OpenAPI spec version: 0.1.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
export type GatewayStatusApiV1GatewayStatusGet200 = { [key: string]: unknown };
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
/**
|
|
||||||
* Generated by orval v8.2.0 🍺
|
|
||||||
* Do not edit manually.
|
|
||||||
* Mission Control API
|
|
||||||
* OpenAPI spec version: 0.1.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
export type GatewayStatusApiV1GatewayStatusGetParams = {
|
|
||||||
board_id?: string | null;
|
|
||||||
};
|
|
||||||
@@ -10,11 +10,11 @@ import type { GatewayTemplatesSyncError } from "./gatewayTemplatesSyncError";
|
|||||||
* Summary payload returned by gateway template sync endpoints.
|
* Summary payload returned by gateway template sync endpoints.
|
||||||
*/
|
*/
|
||||||
export interface GatewayTemplatesSyncResult {
|
export interface GatewayTemplatesSyncResult {
|
||||||
agents_skipped: number;
|
|
||||||
agents_updated: number;
|
|
||||||
errors?: GatewayTemplatesSyncError[];
|
|
||||||
gateway_id: string;
|
gateway_id: string;
|
||||||
include_main: boolean;
|
include_main: boolean;
|
||||||
main_updated: boolean;
|
|
||||||
reset_sessions: boolean;
|
reset_sessions: boolean;
|
||||||
|
agents_updated: number;
|
||||||
|
agents_skipped: number;
|
||||||
|
main_updated: boolean;
|
||||||
|
errors?: GatewayTemplatesSyncError[];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
*/
|
*/
|
||||||
export interface GatewayUpdate {
|
export interface GatewayUpdate {
|
||||||
name?: string | null;
|
name?: string | null;
|
||||||
token?: string | null;
|
|
||||||
url?: string | null;
|
url?: string | null;
|
||||||
|
token?: string | null;
|
||||||
workspace_root?: string | null;
|
workspace_root?: string | null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,10 +10,10 @@
|
|||||||
*/
|
*/
|
||||||
export interface GatewaysStatusResponse {
|
export interface GatewaysStatusResponse {
|
||||||
connected: boolean;
|
connected: boolean;
|
||||||
error?: string | null;
|
|
||||||
gateway_url: string;
|
gateway_url: string;
|
||||||
|
sessions_count?: number | null;
|
||||||
|
sessions?: unknown[] | null;
|
||||||
main_session?: unknown | null;
|
main_session?: unknown | null;
|
||||||
main_session_error?: string | null;
|
main_session_error?: string | null;
|
||||||
sessions?: unknown[] | null;
|
error?: string | null;
|
||||||
sessions_count?: number | null;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
/**
|
|
||||||
* Generated by orval v8.2.0 🍺
|
|
||||||
* Do not edit manually.
|
|
||||||
* Mission Control API
|
|
||||||
* OpenAPI spec version: 0.1.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
export type GetGatewaySessionApiV1GatewaySessionsSessionIdGet200 = {
|
|
||||||
[key: string]: unknown;
|
|
||||||
};
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
/**
|
|
||||||
* Generated by orval v8.2.0 🍺
|
|
||||||
* Do not edit manually.
|
|
||||||
* Mission Control API
|
|
||||||
* OpenAPI spec version: 0.1.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
export type GetGatewaySessionApiV1GatewaySessionsSessionIdGetParams = {
|
|
||||||
board_id?: string | null;
|
|
||||||
};
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
/**
|
|
||||||
* Generated by orval v8.2.0 🍺
|
|
||||||
* Do not edit manually.
|
|
||||||
* Mission Control API
|
|
||||||
* OpenAPI spec version: 0.1.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
export type GetSessionHistoryApiV1GatewaySessionsSessionIdHistoryGet200 = {
|
|
||||||
[key: string]: unknown;
|
|
||||||
};
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
/**
|
|
||||||
* Generated by orval v8.2.0 🍺
|
|
||||||
* Do not edit manually.
|
|
||||||
* Mission Control API
|
|
||||||
* OpenAPI spec version: 0.1.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
export type GetSessionHistoryApiV1GatewaySessionsSessionIdHistoryGetParams = {
|
|
||||||
board_id?: string | null;
|
|
||||||
};
|
|
||||||
@@ -10,11 +10,9 @@ export * from "./activityTaskCommentFeedItemRead";
|
|||||||
export * from "./agentCreate";
|
export * from "./agentCreate";
|
||||||
export * from "./agentCreateHeartbeatConfig";
|
export * from "./agentCreateHeartbeatConfig";
|
||||||
export * from "./agentCreateIdentityProfile";
|
export * from "./agentCreateIdentityProfile";
|
||||||
export * from "./agentDeleteConfirm";
|
|
||||||
export * from "./agentHeartbeat";
|
export * from "./agentHeartbeat";
|
||||||
export * from "./agentHeartbeatCreate";
|
export * from "./agentHeartbeatCreate";
|
||||||
export * from "./agentNudge";
|
export * from "./agentNudge";
|
||||||
export * from "./agentProvisionConfirm";
|
|
||||||
export * from "./agentRead";
|
export * from "./agentRead";
|
||||||
export * from "./agentReadHeartbeatConfig";
|
export * from "./agentReadHeartbeatConfig";
|
||||||
export * from "./agentReadIdentityProfile";
|
export * from "./agentReadIdentityProfile";
|
||||||
@@ -49,7 +47,6 @@ export * from "./boardGroupUpdate";
|
|||||||
export * from "./boardMemoryCreate";
|
export * from "./boardMemoryCreate";
|
||||||
export * from "./boardMemoryRead";
|
export * from "./boardMemoryRead";
|
||||||
export * from "./boardOnboardingAgentComplete";
|
export * from "./boardOnboardingAgentComplete";
|
||||||
export * from "./boardOnboardingAgentCompleteStatus";
|
|
||||||
export * from "./boardOnboardingAgentCompleteSuccessMetrics";
|
export * from "./boardOnboardingAgentCompleteSuccessMetrics";
|
||||||
export * from "./boardOnboardingAgentQuestion";
|
export * from "./boardOnboardingAgentQuestion";
|
||||||
export * from "./boardOnboardingAnswer";
|
export * from "./boardOnboardingAnswer";
|
||||||
@@ -59,7 +56,6 @@ export * from "./boardOnboardingLeadAgentDraft";
|
|||||||
export * from "./boardOnboardingLeadAgentDraftIdentityProfile";
|
export * from "./boardOnboardingLeadAgentDraftIdentityProfile";
|
||||||
export * from "./boardOnboardingQuestionOption";
|
export * from "./boardOnboardingQuestionOption";
|
||||||
export * from "./boardOnboardingRead";
|
export * from "./boardOnboardingRead";
|
||||||
export * from "./boardOnboardingReadDraftGoal";
|
|
||||||
export * from "./boardOnboardingReadMessages";
|
export * from "./boardOnboardingReadMessages";
|
||||||
export * from "./boardOnboardingStart";
|
export * from "./boardOnboardingStart";
|
||||||
export * from "./boardOnboardingUserProfile";
|
export * from "./boardOnboardingUserProfile";
|
||||||
@@ -68,12 +64,9 @@ export * from "./boardReadSuccessMetrics";
|
|||||||
export * from "./boardSnapshot";
|
export * from "./boardSnapshot";
|
||||||
export * from "./boardUpdate";
|
export * from "./boardUpdate";
|
||||||
export * from "./boardUpdateSuccessMetrics";
|
export * from "./boardUpdateSuccessMetrics";
|
||||||
export * from "./confirmDeleteAgentApiV1AgentsAgentIdDeleteConfirmPost200";
|
|
||||||
export * from "./confirmProvisionAgentApiV1AgentsAgentIdProvisionConfirmPost200";
|
|
||||||
export * from "./dashboardKpis";
|
export * from "./dashboardKpis";
|
||||||
export * from "./dashboardMetrics";
|
export * from "./dashboardMetrics";
|
||||||
export * from "./dashboardMetricsApiV1MetricsDashboardGetParams";
|
export * from "./dashboardMetricsApiV1MetricsDashboardGetParams";
|
||||||
export * from "./dashboardMetricsApiV1MetricsDashboardGetRange";
|
|
||||||
export * from "./dashboardMetricsApiV1MetricsDashboardGetRangeKey";
|
export * from "./dashboardMetricsApiV1MetricsDashboardGetRangeKey";
|
||||||
export * from "./dashboardMetricsRange";
|
export * from "./dashboardMetricsRange";
|
||||||
export * from "./dashboardRangeSeries";
|
export * from "./dashboardRangeSeries";
|
||||||
@@ -86,10 +79,6 @@ export * from "./dashboardWipRangeSeries";
|
|||||||
export * from "./dashboardWipRangeSeriesBucket";
|
export * from "./dashboardWipRangeSeriesBucket";
|
||||||
export * from "./dashboardWipRangeSeriesRange";
|
export * from "./dashboardWipRangeSeriesRange";
|
||||||
export * from "./dashboardWipSeriesSet";
|
export * from "./dashboardWipSeriesSet";
|
||||||
export * from "./deleteAgentApiV1AgentsAgentIdDelete200";
|
|
||||||
export * from "./deleteBoardApiV1BoardsBoardIdDelete200";
|
|
||||||
export * from "./deleteTaskApiV1BoardsBoardIdTasksTaskIdDelete200";
|
|
||||||
export * from "./gatewayCommandsApiV1GatewayCommandsGet200";
|
|
||||||
export * from "./gatewayCommandsResponse";
|
export * from "./gatewayCommandsResponse";
|
||||||
export * from "./gatewayCreate";
|
export * from "./gatewayCreate";
|
||||||
export * from "./gatewayLeadBroadcastBoardResult";
|
export * from "./gatewayLeadBroadcastBoardResult";
|
||||||
@@ -102,25 +91,18 @@ export * from "./gatewayLeadMessageResponse";
|
|||||||
export * from "./gatewayMainAskUserRequest";
|
export * from "./gatewayMainAskUserRequest";
|
||||||
export * from "./gatewayMainAskUserResponse";
|
export * from "./gatewayMainAskUserResponse";
|
||||||
export * from "./gatewayRead";
|
export * from "./gatewayRead";
|
||||||
export * from "./gatewayResolveQuery";
|
|
||||||
export * from "./gatewaySessionHistoryResponse";
|
export * from "./gatewaySessionHistoryResponse";
|
||||||
export * from "./gatewaySessionMessageRequest";
|
export * from "./gatewaySessionMessageRequest";
|
||||||
export * from "./gatewaySessionResponse";
|
export * from "./gatewaySessionResponse";
|
||||||
export * from "./gatewaySessionsResponse";
|
export * from "./gatewaySessionsResponse";
|
||||||
export * from "./gatewaysStatusApiV1GatewaysStatusGetParams";
|
export * from "./gatewaysStatusApiV1GatewaysStatusGetParams";
|
||||||
export * from "./gatewaysStatusResponse";
|
export * from "./gatewaysStatusResponse";
|
||||||
export * from "./gatewayStatusApiV1GatewayStatusGet200";
|
|
||||||
export * from "./gatewayStatusApiV1GatewayStatusGetParams";
|
|
||||||
export * from "./gatewayTemplatesSyncError";
|
export * from "./gatewayTemplatesSyncError";
|
||||||
export * from "./gatewayTemplatesSyncResult";
|
export * from "./gatewayTemplatesSyncResult";
|
||||||
export * from "./gatewayUpdate";
|
export * from "./gatewayUpdate";
|
||||||
export * from "./getBoardGroupSnapshotApiV1BoardGroupsGroupIdSnapshotGetParams";
|
export * from "./getBoardGroupSnapshotApiV1BoardGroupsGroupIdSnapshotGetParams";
|
||||||
export * from "./getBoardGroupSnapshotApiV1BoardsBoardIdGroupSnapshotGetParams";
|
export * from "./getBoardGroupSnapshotApiV1BoardsBoardIdGroupSnapshotGetParams";
|
||||||
export * from "./getGatewaySessionApiV1GatewaySessionsSessionIdGet200";
|
|
||||||
export * from "./getGatewaySessionApiV1GatewaySessionsSessionIdGetParams";
|
|
||||||
export * from "./getGatewaySessionApiV1GatewaysSessionsSessionIdGetParams";
|
export * from "./getGatewaySessionApiV1GatewaysSessionsSessionIdGetParams";
|
||||||
export * from "./getSessionHistoryApiV1GatewaySessionsSessionIdHistoryGet200";
|
|
||||||
export * from "./getSessionHistoryApiV1GatewaySessionsSessionIdHistoryGetParams";
|
|
||||||
export * from "./getSessionHistoryApiV1GatewaysSessionsSessionIdHistoryGetParams";
|
export * from "./getSessionHistoryApiV1GatewaysSessionsSessionIdHistoryGetParams";
|
||||||
export * from "./healthHealthGet200";
|
export * from "./healthHealthGet200";
|
||||||
export * from "./healthzHealthzGet200";
|
export * from "./healthzHealthzGet200";
|
||||||
@@ -136,9 +118,9 @@ export * from "./limitOffsetPageTypeVarCustomizedBoardRead";
|
|||||||
export * from "./limitOffsetPageTypeVarCustomizedGatewayRead";
|
export * from "./limitOffsetPageTypeVarCustomizedGatewayRead";
|
||||||
export * from "./limitOffsetPageTypeVarCustomizedOrganizationInviteRead";
|
export * from "./limitOffsetPageTypeVarCustomizedOrganizationInviteRead";
|
||||||
export * from "./limitOffsetPageTypeVarCustomizedOrganizationMemberRead";
|
export * from "./limitOffsetPageTypeVarCustomizedOrganizationMemberRead";
|
||||||
|
export * from "./limitOffsetPageTypeVarCustomizedTagRead";
|
||||||
export * from "./limitOffsetPageTypeVarCustomizedTaskCommentRead";
|
export * from "./limitOffsetPageTypeVarCustomizedTaskCommentRead";
|
||||||
export * from "./limitOffsetPageTypeVarCustomizedTaskRead";
|
export * from "./limitOffsetPageTypeVarCustomizedTaskRead";
|
||||||
export * from "./limitOffsetPageTypeVarCustomizedTaskTagRead";
|
|
||||||
export * from "./listActivityApiV1ActivityGetParams";
|
export * from "./listActivityApiV1ActivityGetParams";
|
||||||
export * from "./listAgentsApiV1AgentAgentsGetParams";
|
export * from "./listAgentsApiV1AgentAgentsGetParams";
|
||||||
export * from "./listAgentsApiV1AgentsGetParams";
|
export * from "./listAgentsApiV1AgentsGetParams";
|
||||||
@@ -155,14 +137,12 @@ export * from "./listGatewaysApiV1GatewaysGetParams";
|
|||||||
export * from "./listGatewaySessionsApiV1GatewaysSessionsGetParams";
|
export * from "./listGatewaySessionsApiV1GatewaysSessionsGetParams";
|
||||||
export * from "./listOrgInvitesApiV1OrganizationsMeInvitesGetParams";
|
export * from "./listOrgInvitesApiV1OrganizationsMeInvitesGetParams";
|
||||||
export * from "./listOrgMembersApiV1OrganizationsMeMembersGetParams";
|
export * from "./listOrgMembersApiV1OrganizationsMeMembersGetParams";
|
||||||
export * from "./listSessionsApiV1GatewaySessionsGet200";
|
export * from "./listTagsApiV1TagsGetParams";
|
||||||
export * from "./listSessionsApiV1GatewaySessionsGetParams";
|
|
||||||
export * from "./listTaskCommentFeedApiV1ActivityTaskCommentsGetParams";
|
export * from "./listTaskCommentFeedApiV1ActivityTaskCommentsGetParams";
|
||||||
export * from "./listTaskCommentsApiV1AgentBoardsBoardIdTasksTaskIdCommentsGetParams";
|
export * from "./listTaskCommentsApiV1AgentBoardsBoardIdTasksTaskIdCommentsGetParams";
|
||||||
export * from "./listTaskCommentsApiV1BoardsBoardIdTasksTaskIdCommentsGetParams";
|
export * from "./listTaskCommentsApiV1BoardsBoardIdTasksTaskIdCommentsGetParams";
|
||||||
export * from "./listTasksApiV1AgentBoardsBoardIdTasksGetParams";
|
export * from "./listTasksApiV1AgentBoardsBoardIdTasksGetParams";
|
||||||
export * from "./listTasksApiV1BoardsBoardIdTasksGetParams";
|
export * from "./listTasksApiV1BoardsBoardIdTasksGetParams";
|
||||||
export * from "./listTaskTagsApiV1TagsGetParams";
|
|
||||||
export * from "./okResponse";
|
export * from "./okResponse";
|
||||||
export * from "./organizationActiveUpdate";
|
export * from "./organizationActiveUpdate";
|
||||||
export * from "./organizationBoardAccessRead";
|
export * from "./organizationBoardAccessRead";
|
||||||
@@ -180,9 +160,6 @@ export * from "./organizationUserRead";
|
|||||||
export * from "./readyzReadyzGet200";
|
export * from "./readyzReadyzGet200";
|
||||||
export * from "./searchApiV1SoulsDirectorySearchGetParams";
|
export * from "./searchApiV1SoulsDirectorySearchGetParams";
|
||||||
export * from "./sendGatewaySessionMessageApiV1GatewaysSessionsSessionIdMessagePostParams";
|
export * from "./sendGatewaySessionMessageApiV1GatewaysSessionsSessionIdMessagePostParams";
|
||||||
export * from "./sendSessionMessageApiV1GatewaySessionsSessionIdMessagePost200";
|
|
||||||
export * from "./sendSessionMessageApiV1GatewaySessionsSessionIdMessagePostBody";
|
|
||||||
export * from "./sendSessionMessageApiV1GatewaySessionsSessionIdMessagePostParams";
|
|
||||||
export * from "./soulsDirectoryMarkdownResponse";
|
export * from "./soulsDirectoryMarkdownResponse";
|
||||||
export * from "./soulsDirectorySearchResponse";
|
export * from "./soulsDirectorySearchResponse";
|
||||||
export * from "./soulsDirectorySoulRef";
|
export * from "./soulsDirectorySoulRef";
|
||||||
@@ -195,6 +172,10 @@ export * from "./streamBoardMemoryApiV1BoardsBoardIdMemoryStreamGetParams";
|
|||||||
export * from "./streamTaskCommentFeedApiV1ActivityTaskCommentsStreamGetParams";
|
export * from "./streamTaskCommentFeedApiV1ActivityTaskCommentsStreamGetParams";
|
||||||
export * from "./streamTasksApiV1BoardsBoardIdTasksStreamGetParams";
|
export * from "./streamTasksApiV1BoardsBoardIdTasksStreamGetParams";
|
||||||
export * from "./syncGatewayTemplatesApiV1GatewaysGatewayIdTemplatesSyncPostParams";
|
export * from "./syncGatewayTemplatesApiV1GatewaysGatewayIdTemplatesSyncPostParams";
|
||||||
|
export * from "./tagCreate";
|
||||||
|
export * from "./tagRead";
|
||||||
|
export * from "./tagRef";
|
||||||
|
export * from "./tagUpdate";
|
||||||
export * from "./taskCardRead";
|
export * from "./taskCardRead";
|
||||||
export * from "./taskCardReadStatus";
|
export * from "./taskCardReadStatus";
|
||||||
export * from "./taskCommentCreate";
|
export * from "./taskCommentCreate";
|
||||||
@@ -203,10 +184,6 @@ export * from "./taskCreate";
|
|||||||
export * from "./taskCreateStatus";
|
export * from "./taskCreateStatus";
|
||||||
export * from "./taskRead";
|
export * from "./taskRead";
|
||||||
export * from "./taskReadStatus";
|
export * from "./taskReadStatus";
|
||||||
export * from "./taskTagCreate";
|
|
||||||
export * from "./taskTagRead";
|
|
||||||
export * from "./taskTagRef";
|
|
||||||
export * from "./taskTagUpdate";
|
|
||||||
export * from "./taskUpdate";
|
export * from "./taskUpdate";
|
||||||
export * from "./updateAgentApiV1AgentsAgentIdPatchParams";
|
export * from "./updateAgentApiV1AgentsAgentIdPatchParams";
|
||||||
export * from "./userRead";
|
export * from "./userRead";
|
||||||
|
|||||||
@@ -8,10 +8,10 @@ import type { ActivityEventRead } from "./activityEventRead";
|
|||||||
|
|
||||||
export interface LimitOffsetPageTypeVarCustomizedActivityEventRead {
|
export interface LimitOffsetPageTypeVarCustomizedActivityEventRead {
|
||||||
items: ActivityEventRead[];
|
items: ActivityEventRead[];
|
||||||
|
/** @minimum 0 */
|
||||||
|
total: number;
|
||||||
/** @minimum 1 */
|
/** @minimum 1 */
|
||||||
limit: number;
|
limit: number;
|
||||||
/** @minimum 0 */
|
/** @minimum 0 */
|
||||||
offset: number;
|
offset: number;
|
||||||
/** @minimum 0 */
|
|
||||||
total: number;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,10 +8,10 @@ import type { ActivityTaskCommentFeedItemRead } from "./activityTaskCommentFeedI
|
|||||||
|
|
||||||
export interface LimitOffsetPageTypeVarCustomizedActivityTaskCommentFeedItemRead {
|
export interface LimitOffsetPageTypeVarCustomizedActivityTaskCommentFeedItemRead {
|
||||||
items: ActivityTaskCommentFeedItemRead[];
|
items: ActivityTaskCommentFeedItemRead[];
|
||||||
|
/** @minimum 0 */
|
||||||
|
total: number;
|
||||||
/** @minimum 1 */
|
/** @minimum 1 */
|
||||||
limit: number;
|
limit: number;
|
||||||
/** @minimum 0 */
|
/** @minimum 0 */
|
||||||
offset: number;
|
offset: number;
|
||||||
/** @minimum 0 */
|
|
||||||
total: number;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,10 +8,10 @@ import type { AgentRead } from "./agentRead";
|
|||||||
|
|
||||||
export interface LimitOffsetPageTypeVarCustomizedAgentRead {
|
export interface LimitOffsetPageTypeVarCustomizedAgentRead {
|
||||||
items: AgentRead[];
|
items: AgentRead[];
|
||||||
|
/** @minimum 0 */
|
||||||
|
total: number;
|
||||||
/** @minimum 1 */
|
/** @minimum 1 */
|
||||||
limit: number;
|
limit: number;
|
||||||
/** @minimum 0 */
|
/** @minimum 0 */
|
||||||
offset: number;
|
offset: number;
|
||||||
/** @minimum 0 */
|
|
||||||
total: number;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,10 +8,10 @@ import type { ApprovalRead } from "./approvalRead";
|
|||||||
|
|
||||||
export interface LimitOffsetPageTypeVarCustomizedApprovalRead {
|
export interface LimitOffsetPageTypeVarCustomizedApprovalRead {
|
||||||
items: ApprovalRead[];
|
items: ApprovalRead[];
|
||||||
|
/** @minimum 0 */
|
||||||
|
total: number;
|
||||||
/** @minimum 1 */
|
/** @minimum 1 */
|
||||||
limit: number;
|
limit: number;
|
||||||
/** @minimum 0 */
|
/** @minimum 0 */
|
||||||
offset: number;
|
offset: number;
|
||||||
/** @minimum 0 */
|
|
||||||
total: number;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,10 +8,10 @@ import type { BoardGroupMemoryRead } from "./boardGroupMemoryRead";
|
|||||||
|
|
||||||
export interface LimitOffsetPageTypeVarCustomizedBoardGroupMemoryRead {
|
export interface LimitOffsetPageTypeVarCustomizedBoardGroupMemoryRead {
|
||||||
items: BoardGroupMemoryRead[];
|
items: BoardGroupMemoryRead[];
|
||||||
|
/** @minimum 0 */
|
||||||
|
total: number;
|
||||||
/** @minimum 1 */
|
/** @minimum 1 */
|
||||||
limit: number;
|
limit: number;
|
||||||
/** @minimum 0 */
|
/** @minimum 0 */
|
||||||
offset: number;
|
offset: number;
|
||||||
/** @minimum 0 */
|
|
||||||
total: number;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,10 +8,10 @@ import type { BoardGroupRead } from "./boardGroupRead";
|
|||||||
|
|
||||||
export interface LimitOffsetPageTypeVarCustomizedBoardGroupRead {
|
export interface LimitOffsetPageTypeVarCustomizedBoardGroupRead {
|
||||||
items: BoardGroupRead[];
|
items: BoardGroupRead[];
|
||||||
|
/** @minimum 0 */
|
||||||
|
total: number;
|
||||||
/** @minimum 1 */
|
/** @minimum 1 */
|
||||||
limit: number;
|
limit: number;
|
||||||
/** @minimum 0 */
|
/** @minimum 0 */
|
||||||
offset: number;
|
offset: number;
|
||||||
/** @minimum 0 */
|
|
||||||
total: number;
|
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user