/** * Foundation Core Types * * Shared type definitions used across all modules: * - Demerzel (codebase intelligence) * - Gaia (workflow patterns + memory) * - Provider (shared LLM provider registry) */ export interface FoundationConfig { version: string; defaults: DefaultsConfig; providers: ProvidersConfig; roles: Record; argus: ArgusConfig; worktrees: WorktreeConfig; } export interface DefaultsConfig { temperature: number; max_tokens: number; timeout_ms: number; } export interface ProvidersConfig { anthropic?: AnthropicProviderConfig; openai?: OpenAIProviderConfig; google?: GoogleProviderConfig; deepseek?: DeepSeekProviderConfig; groq?: GroqProviderConfig; together?: TogetherProviderConfig; fireworks?: FireworksProviderConfig; openrouter?: OpenRouterProviderConfig; zai?: ZAIProviderConfig; kimi?: KimiProviderConfig; ollama?: OllamaProviderConfig; perplexity?: PerplexityProviderConfig; } export interface BaseProviderConfig { api_key?: string; default_model?: string; timeout_ms?: number; } export interface AnthropicProviderConfig extends BaseProviderConfig { access_mode?: 'api' | 'session' | 'auto'; } export interface OpenAIProviderConfig extends BaseProviderConfig { organization?: string; } export interface GoogleProviderConfig extends BaseProviderConfig { } export interface DeepSeekProviderConfig extends BaseProviderConfig { } export interface GroqProviderConfig extends BaseProviderConfig { } export interface TogetherProviderConfig extends BaseProviderConfig { } export interface FireworksProviderConfig extends BaseProviderConfig { } export interface OpenRouterProviderConfig extends BaseProviderConfig { } export interface ZAIProviderConfig extends BaseProviderConfig { } export interface KimiProviderConfig extends BaseProviderConfig { } export interface PerplexityProviderConfig extends BaseProviderConfig { } export interface OllamaProviderConfig { base_url: string; default_model?: string; timeout_ms?: number; } export interface RoleConfig { provider: ProviderName; model?: string; temperature?: number; max_tokens?: number; system_prompt?: string; needs_worktree?: boolean; fallback_chain?: FallbackConfig[]; } export interface FallbackConfig { provider: ProviderName; model?: string; } export interface ArgusConfig { provider?: ProviderName; model?: string; snapshot_max_age_hours?: number; auto_refresh?: boolean; } export interface WorktreeConfig { base_dir: string; max_count: number; auto_cleanup: boolean; stale_after_hours: number; } export type ProviderName = 'anthropic' | 'openai' | 'google' | 'deepseek' | 'groq' | 'together' | 'fireworks' | 'openrouter' | 'zai' | 'kimi' | 'ollama' | 'perplexity'; export type AgentRole = 'orchestrator' | 'coder' | 'critic' | 'reviewer' | 'designer' | 'researcher' | 'verifier'; export interface ProviderHealth { provider: ProviderName; healthy: boolean; lastCheck: number; lastSuccess?: number; lastError?: string; successRate: number; avgLatencyMs: number; circuitOpen: boolean; } export interface ProviderInvokeResult { success: boolean; output: string; provider: ProviderName; model: string; tokensUsed?: number; latencyMs: number; error?: string; failedOver?: boolean; failoverChain?: string[]; } export interface ArgusSnapshot { path: string; lastUpdated: number; fileCount: number; lineCount: number; status: 'fresh' | 'stale' | 'missing' | 'creating'; enhanced: boolean; } export interface ArgusSearchResult { file: string; line: number; content: string; context?: string[]; } export interface ArgusSymbol { name: string; type: 'function' | 'class' | 'type' | 'const' | 'variable' | 'interface'; file: string; line: number; exported: boolean; } export interface ArgusImportGraph { file: string; imports: string[]; importedBy: string[]; } export interface Worktree { id: string; path: string; branch: string; baseBranch: string; alias?: string; purpose?: string; sessionId?: string; status: WorktreeStatus; createdAt: number; lastAccessedAt: number; } export type WorktreeStatus = 'active' | 'stale' | 'merged' | 'conflict' | 'orphaned'; export interface Session { id: string; purpose: string; taskType: SessionTaskType; project?: string; worktreeId?: string; status: SessionStatus; notes: string[]; startedAt: number; lastActivityAt: number; completedAt?: number; } export type SessionTaskType = 'feature' | 'bugfix' | 'refactor' | 'review' | 'exploration' | 'documentation'; export type SessionStatus = 'active' | 'paused' | 'completed' | 'abandoned'; export interface ContextSnapshot { id: string; name: string; description?: string; data: ContextData; createdAt: number; } export interface ContextData { gitBranch?: string; gitStatus?: string; gitLog?: string[]; claudeMd?: string; packageJson?: Record; openFiles?: string[]; notes?: string; custom?: Record; } export interface SessionHandoff { sessionId: string; purpose: string; summary: string; gitStatus?: string; recentChanges?: string[]; nextSteps: string[]; openQuestions?: string[]; relevantFiles?: string[]; generatedAt: number; } export interface CheckpointDecision { topic: string; decision: string; rationale: string; timestamp: number; } export interface CheckpointProgress { task: string; status: 'pending' | 'in_progress' | 'completed' | 'blocked'; details?: string; } export interface CheckpointChange { file: string; action: 'created' | 'modified' | 'deleted'; summary: string; } export interface CheckpointContext { branch?: string; openQuestions?: string[]; relevantFiles?: string[]; notes?: string; } export interface CheckpointSections { decisions: CheckpointDecision[]; progress: CheckpointProgress[]; changes: CheckpointChange[]; context: CheckpointContext; } export interface Checkpoint { id: string; version: number; createdAt: number; project?: string; summary: string; purpose: string; sections: CheckpointSections; } export type CheckpointSection = 'decisions' | 'progress' | 'changes' | 'context'; export interface StorageState { worktrees: Worktree[]; sessions: Session[]; snapshots: ContextSnapshot[]; providerHealth: ProviderHealth[]; } export interface ToolResult { success: boolean; message: string; data?: unknown; } export interface ToolError { code: string; message: string; details?: unknown; } //# sourceMappingURL=index.d.ts.map