using TeamUp.Modules.OrgBoard.Domain; using TeamUp.SharedKernel.Access; namespace TeamUp.Modules.OrgBoard.Endpoints; internal sealed record CreateOrganizationRequest(Guid OrganizationId, string Name); internal sealed record OrganizationResponse(Guid Id, string Name); internal sealed record CreateTeamRequest(Guid OrganizationId, string Name, Guid? ProductId = null); 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); internal sealed record SetProductIdentityRequest(string? Identity); internal sealed record ProductIdentityResponse(Guid ProductId, string Name, string? Identity); 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 Items); internal sealed record BoardResponse(Guid TeamId, IReadOnlyList Columns); 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 SkillKeys, List McpServerIds, List Docs, string? Persona = null); internal sealed record AgentResponse( Guid Id, Guid SeatId, string Name, string? Monogram, string Autonomy, Guid ApiConfigId, Guid? FallbackApiConfigId, List SkillKeys, List McpServerIds, List 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 Roles, string? Monogram, string RecommendedAutonomy, List SkillKeys, string Visibility, string Status); internal sealed record AgentProfileDetail(AgentProfileSummary Profile, string Body); internal sealed record MarketplaceProfileEntry(AgentProfileSummary Profile, bool AlreadyInLibrary); internal sealed record UploadProductProfileRequest(Guid OrganizationId, string Content); internal sealed record PublishProductProfileRequest(Guid OrganizationId, string Version); internal sealed record ForkProductProfileRequest(Guid OrganizationId, string Version, string? Name = null); internal sealed record InstallProductProfileRequest(Guid OrganizationId, Guid SourceProfileId); internal sealed record ApplyProductProfileRequest(Guid OrganizationId, Guid ProductId, string Version); internal sealed record ProductProfileSummary( Guid Id, Guid? OrganizationId, string Origin, string ProfileKey, string Name, string Version, string? Summary, string Visibility, string Status); internal sealed record ProductProfileDetail(ProductProfileSummary Profile, string Body); internal sealed record MarketplaceProductProfileEntry(ProductProfileSummary Profile, bool AlreadyInLibrary);