2026-06-09 11:58:20 +03:30
|
|
|
using TeamUp.Modules.OrgBoard.Domain;
|
2026-06-09 23:49:28 +03:30
|
|
|
using TeamUp.SharedKernel.Access;
|
2026-06-09 11:58:20 +03:30
|
|
|
|
|
|
|
|
namespace TeamUp.Modules.OrgBoard.Endpoints;
|
|
|
|
|
|
|
|
|
|
internal sealed record CreateOrganizationRequest(Guid OrganizationId, string Name);
|
|
|
|
|
|
|
|
|
|
internal sealed record OrganizationResponse(Guid Id, string Name);
|
|
|
|
|
|
2026-06-10 18:13:52 +03:30
|
|
|
internal sealed record CreateTeamRequest(Guid OrganizationId, string Name, Guid? ProductId = null);
|
2026-06-09 11:58:20 +03:30
|
|
|
|
2026-06-10 18:13:52 +03:30
|
|
|
internal sealed record TeamResponse(Guid Id, Guid OrganizationId, string Name, Guid? ProductId = null);
|
|
|
|
|
|
|
|
|
|
internal sealed record CreateDivisionRequest(Guid OrganizationId, string Name);
|
|
|
|
|
|
|
|
|
|
internal sealed record DivisionResponse(Guid Id, Guid OrganizationId, string Name);
|
|
|
|
|
|
|
|
|
|
internal sealed record CreateProductRequest(Guid OrganizationId, string Name, ProductKind Kind, Guid? DivisionId = null);
|
|
|
|
|
|
|
|
|
|
internal sealed record ProductResponse(Guid Id, Guid OrganizationId, Guid? DivisionId, string Name, string Kind);
|
2026-06-09 11:58:20 +03:30
|
|
|
|
|
|
|
|
internal sealed record CreateTaskRequest(Guid TeamId, string Title, string? Description, WorkItemType Type);
|
|
|
|
|
|
|
|
|
|
internal sealed record MoveTaskRequest(WorkItemStatus Status);
|
|
|
|
|
|
|
|
|
|
internal sealed record AssignTaskRequest(Guid MemberId);
|
|
|
|
|
|
|
|
|
|
internal sealed record TaskResponse(
|
|
|
|
|
Guid Id,
|
|
|
|
|
Guid TeamId,
|
|
|
|
|
string Title,
|
|
|
|
|
string? Description,
|
|
|
|
|
string Type,
|
|
|
|
|
string Status,
|
|
|
|
|
string AssigneeKind,
|
|
|
|
|
Guid? AssigneeId,
|
|
|
|
|
Guid? ParentId);
|
|
|
|
|
|
|
|
|
|
internal sealed record BoardColumn(string Status, IReadOnlyList<TaskResponse> Items);
|
|
|
|
|
|
|
|
|
|
internal sealed record BoardResponse(Guid TeamId, IReadOnlyList<BoardColumn> Columns);
|
2026-06-09 23:49:28 +03:30
|
|
|
|
|
|
|
|
internal sealed record CreateSeatRequest(Guid TeamId, string RoleName);
|
|
|
|
|
|
|
|
|
|
internal sealed record SeatResponse(Guid Id, Guid TeamId, string RoleName, string State, Guid? MemberId, Guid? AgentId);
|
|
|
|
|
|
|
|
|
|
internal sealed record ConfigureAgentRequest(
|
|
|
|
|
string Name,
|
|
|
|
|
string? Monogram,
|
|
|
|
|
Autonomy Autonomy,
|
|
|
|
|
Guid ApiConfigId,
|
|
|
|
|
Guid? FallbackApiConfigId,
|
|
|
|
|
List<string> SkillKeys,
|
2026-06-13 19:25:43 +03:30
|
|
|
List<Guid> McpServerIds,
|
2026-06-14 09:18:37 +03:30
|
|
|
List<string> Docs,
|
|
|
|
|
string? Persona = null);
|
2026-06-09 23:49:28 +03:30
|
|
|
|
|
|
|
|
internal sealed record AgentResponse(
|
|
|
|
|
Guid Id,
|
|
|
|
|
Guid SeatId,
|
|
|
|
|
string Name,
|
|
|
|
|
string? Monogram,
|
|
|
|
|
string Autonomy,
|
|
|
|
|
Guid ApiConfigId,
|
|
|
|
|
Guid? FallbackApiConfigId,
|
|
|
|
|
List<string> SkillKeys,
|
2026-06-13 19:25:43 +03:30
|
|
|
List<Guid> McpServerIds,
|
2026-06-14 09:18:37 +03:30
|
|
|
List<string> Docs,
|
|
|
|
|
string? Persona);
|
|
|
|
|
|
|
|
|
|
// --- Agent profiles (AGENTS.md): a per-org library of reusable agent definitions ---
|
|
|
|
|
|
|
|
|
|
internal sealed record UploadAgentProfileRequest(Guid OrganizationId, string Content);
|
|
|
|
|
|
|
|
|
|
internal sealed record PublishAgentProfileRequest(Guid OrganizationId, string Version);
|
|
|
|
|
|
|
|
|
|
internal sealed record ForkAgentProfileRequest(Guid OrganizationId, string Version, string? Name = null);
|
|
|
|
|
|
|
|
|
|
internal sealed record InstallAgentProfileRequest(Guid OrganizationId, Guid SourceProfileId);
|
|
|
|
|
|
|
|
|
|
internal sealed record AgentProfileSummary(
|
|
|
|
|
Guid Id,
|
|
|
|
|
Guid? OrganizationId,
|
|
|
|
|
string Origin,
|
|
|
|
|
string ProfileKey,
|
|
|
|
|
string Name,
|
|
|
|
|
string Version,
|
|
|
|
|
string? Summary,
|
|
|
|
|
List<string> Roles,
|
|
|
|
|
string? Monogram,
|
|
|
|
|
string RecommendedAutonomy,
|
|
|
|
|
List<string> SkillKeys,
|
|
|
|
|
string Visibility,
|
|
|
|
|
string Status);
|
|
|
|
|
|
|
|
|
|
internal sealed record AgentProfileDetail(AgentProfileSummary Profile, string Body);
|
|
|
|
|
|
|
|
|
|
internal sealed record MarketplaceProfileEntry(AgentProfileSummary Profile, bool AlreadyInLibrary);
|