Implement original onboarding bootstrap

This commit is contained in:
ZacharyZhang-NY committed 2026-05-21 08:43:50 -04:00
1 parent 49c1dd2888
commit 6992b3e70e
16 files changed
+873 -47

No files matched your search

+37
View File
@@ -7,9 +7,13 @@ import type {
export interface CreateOrganizationInput {
organizationName: string;
description?: string;
mission: string;
goal: string;
employeeName: string;
executionMode?: "ai_ceo" | "ai_cofounder";
autoApproveHires?: boolean;
reviewDeliverables?: boolean;
}
export interface CreateAgentInput {
@@ -21,6 +25,12 @@ export interface CreateAgentInput {
modelId: string | null;
budgetCents: number;
managerAgentId: string | null;
title?: string;
roleLevel?: string;
modelStrategy?: string;
workspaceId?: string | null;
heartbeatEnabled?: boolean;
heartbeatIntervalSec?: number;
}
export interface CreateTaskInput {
@@ -119,6 +129,33 @@ export interface CreateMigrationReportInput {
sourceDatabasePath: string;
}
export interface BootstrapOnboardingInput {
companyName: string;
companyDescription: string;
employeeName: string;
workspacePath: string;
executionMode: "ai_ceo" | "ai_cofounder";
autoApproveHires: boolean;
reviewDeliverables: boolean;
goalTitle: string;
goalDescription: string;
providerKey: string;
providerSecret: string;
providerModel: string;
}
export interface BootstrapOnboardingSummary {
orgId: string;
employeeId: string;
ceoAgentId: string;
workspaceId: string | null;
goalId: string;
projectId: string;
taskId: string;
runId: string;
providerId: string;
}
export interface NativeDialogResult {
canceled: boolean;
filePaths: string[];
@@ -2,6 +2,8 @@ import type { DesktopResult } from "./result";
import type { AppSnapshot } from "./domain";
import type {
BindSkillInput,
BootstrapOnboardingInput,
BootstrapOnboardingSummary,
CreateAgentInput,
CreateApprovalInput,
CreateMigrationReportInput,
@@ -25,6 +27,7 @@ export interface RendererEvent {
export interface DesktopApi {
loadSnapshot(): Promise<DesktopResult<AppSnapshot>>;
bootstrapOnboarding(input: BootstrapOnboardingInput): Promise<DesktopResult<BootstrapOnboardingSummary>>;
createOrganization(input: CreateOrganizationInput): Promise<DesktopResult<AppSnapshot>>;
createAgent(input: CreateAgentInput): Promise<DesktopResult<AppSnapshot>>;
createTask(input: CreateTaskInput): Promise<DesktopResult<AppSnapshot>>;
+69
View File
@@ -50,6 +50,10 @@ export interface OrganizationRecord {
name: string;
mission: string;
goal: string;
description: string;
executionMode: string;
autoApproveHires: boolean;
reviewDeliverables: boolean;
createdAt: string;
}
@@ -71,6 +75,12 @@ export interface AgentRecord {
modelId: string | null;
budgetCents: number;
managerAgentId: string | null;
title: string;
roleLevel: string;
modelStrategy: string;
workspaceId: string | null;
heartbeatEnabled: boolean;
heartbeatIntervalSec: number;
lifecycle: string;
createdAt: string;
}
@@ -83,10 +93,65 @@ export interface TaskRecord {
status: TaskStatus;
assigneeAgentId: string | null;
risk: RiskLevel;
projectId: string | null;
goalId: string | null;
workspaceId: string | null;
priority: string;
requiresFilesystem: boolean;
createdAt: string;
updatedAt: string;
}
export interface WorkspaceRecord {
id: string;
orgId: string;
name: string;
localPath: string;
repoUrl: string;
repoRef: string;
projectId: string | null;
isPrimary: boolean;
createdAt: string;
updatedAt: string;
}
export interface GoalRecord {
id: string;
orgId: string;
title: string;
description: string;
status: string;
ownerAgentId: string | null;
createdAt: string;
updatedAt: string;
}
export interface ProjectRecord {
id: string;
orgId: string;
goalId: string | null;
name: string;
description: string;
leadAgentId: string | null;
status: string;
createdAt: string;
updatedAt: string;
}
export interface TaskRunRecord {
id: string;
orgId: string;
taskId: string;
agentId: string | null;
providerId: string | null;
trigger: string;
state: string;
createdAt: string;
startedAt: string | null;
completedAt: string | null;
errorMessage: string | null;
}
export interface ApprovalRecord {
id: string;
orgId: string;
@@ -289,6 +354,10 @@ export interface AppSnapshot {
employees: EmployeeRecord[];
agents: AgentRecord[];
tasks: TaskRecord[];
workspaces: WorkspaceRecord[];
goals: GoalRecord[];
projects: ProjectRecord[];
taskRuns: TaskRunRecord[];
approvals: ApprovalRecord[];
chatSpaces: ChatSpaceRecord[];
chatMessages: ChatMessageRecord[];
+1
View File
@@ -1,5 +1,6 @@
export const IPC_CHANNELS = {
loadSnapshot: "agentcompany:load-snapshot",
bootstrapOnboarding: "agentcompany:bootstrap-onboarding",
createOrganization: "agentcompany:create-organization",
createAgent: "agentcompany:create-agent",
createTask: "agentcompany:create-task",