business-as-code
Version:
Define, launch, experiment, iterate, and grow your business entirely in code
98 lines (88 loc) • 1.91 kB
text/typescript
export class Agent {}
export class Human {}
export class Workflow {}
/**
* Business configuration interface
*/
export interface BusinessConfig {
name: string
url?: string
vision?: string
goals?: Array<{
objective: string
keyResults?: string[]
}>
roles?: Record<string, Human>
agents?: Record<string, Agent>
departments?: Record<
string,
{
name: string
lead: Human | Agent
members?: Array<Human | Agent>
}
>
processes?: Record<string, Workflow>
}
/**
* Business instance returned by the Business function
*/
export interface BusinessInstance {
name: string
url?: string
vision?: string
goals?: Array<{
objective: string
keyResults?: string[]
}>
roles?: Record<string, Human>
agents?: Record<string, Agent>
departments?: Record<
string,
{
name: string
lead: Human | Agent
members?: Array<Human | Agent>
}
>
processes?: Record<string, Workflow>
on: (event: string, handler: Function) => void
every: (schedule: string, operation: Function) => void
assign: (task: string, to: Human | Agent) => void
track: (metric: string, value: any) => void
}
/**
* Permission level enum for human-AI collaboration
*/
export enum PermissionLevel {
VIEW = 'view',
SUGGEST = 'suggest',
EXECUTE = 'execute',
APPROVE = 'approve',
ADMIN = 'admin',
}
/**
* Task assignment interface
*/
export interface Task {
id: string
title: string
description?: string
assignee?: Human | Agent
dueDate?: Date
status?: 'pending' | 'in_progress' | 'completed' | 'blocked'
priority?: 'low' | 'medium' | 'high' | 'critical'
requiredPermission?: PermissionLevel
dependencies?: string[]
timestamp?: Date
}
/**
* Event interface for business events
*/
export interface BusinessEvent {
type: string
data: any
source?: string
timestamp: Date
requiredApproval?: Human[]
}