Add goal, project, and workspace CRUD

Full-stack: IPC channels, command types, OrganizationService methods,
IPC handlers, preload bridge, desktop-api types, and UI dialogs on the
Work page. Users can now create goals and projects directly instead of
relying on the onboarding bootstrap.
This commit is contained in:
ZacharyZhang-NY committed 2026-06-07 17:36:25 -04:00
1 parent 2ef721774f
commit 5f92cd0d75
9 files changed
+218 -1

No files matched your search

+22
View File
@@ -88,6 +88,28 @@ export interface RunTaskInput {
taskId: string;
}
export interface CreateGoalInput {
orgId: string;
title: string;
description: string;
ownerAgentId: string | null;
}
export interface CreateProjectInput {
orgId: string;
goalId: string | null;
name: string;
description: string;
leadAgentId: string | null;
}
export interface CreateWorkspaceInput {
orgId: string;
name: string;
localPath: string;
projectId: string | null;
}
export interface CreateApprovalInput {
orgId: string;
kind: string;
@@ -9,6 +9,9 @@ import type {
CreateAgentInput,
UpdateAgentInput,
CreateApprovalInput,
CreateGoalInput,
CreateProjectInput,
CreateWorkspaceInput,
CreateAuditReplayInput,
CreateChatSpaceInput,
CreateComplianceExportInput,
@@ -90,6 +93,9 @@ export interface DesktopApi {
createTask(input: CreateTaskInput): Promise<DesktopResult<AppSnapshot>>;
updateTaskStatus(input: UpdateTaskStatusInput): Promise<DesktopResult<AppSnapshot>>;
runTask(input: RunTaskInput): Promise<DesktopResult<AppSnapshot>>;
createGoal(input: CreateGoalInput): Promise<DesktopResult<AppSnapshot>>;
createProject(input: CreateProjectInput): Promise<DesktopResult<AppSnapshot>>;
createWorkspace(input: CreateWorkspaceInput): Promise<DesktopResult<AppSnapshot>>;
createApproval(input: CreateApprovalInput): Promise<DesktopResult<AppSnapshot>>;
decideApproval(input: DecideApprovalInput): Promise<DesktopResult<AppSnapshot>>;
syncEmployeeIdentity(input: SyncEmployeeIdentityInput): Promise<DesktopResult<AppSnapshot>>;
+3
View File
@@ -57,6 +57,9 @@ export const IPC_CHANNELS = {
setLegalHoldState: "agentcompany:set-legal-hold-state",
createRetentionFreeze: "agentcompany:create-retention-freeze",
setRetentionFreezeState: "agentcompany:set-retention-freeze-state",
createGoal: "agentcompany:create-goal",
createProject: "agentcompany:create-project",
createWorkspace: "agentcompany:create-workspace",
search: "agentcompany:search",
rendererEvent: "agentcompany:renderer-event",
windowMinimize: "agentcompany:window-minimize",