Implement original onboarding bootstrap
This commit is contained in:
1 parent
49c1dd2888
commit
6992b3e70e
16 files changed
+873
-47
No files matched your search
@@ -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>>;
|
||||
|
||||
@@ -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,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",
|
||||
|
||||
Reference in new issue
Block a user