Initial commit: RA-H Open Source Edition

Local-first knowledge management system with BYO API keys.

Features:
- 3-panel UI (Nodes | Focus | Helpers)
- SQLite + sqlite-vec for vector search
- Agent system (Easy/Hard mode orchestrators)
- Content extraction (YouTube, PDF, web)
- Integrate workflow for connection discovery
- Dimension system with auto-assignment

Tech stack:
- Next.js 15 + TypeScript + Tailwind CSS
- Anthropic (Claude) + OpenAI (GPT) via Vercel AI SDK

Setup:
  npm install && npm rebuild better-sqlite3
  scripts/dev/bootstrap-local.sh
  npm run dev

MIT License
This commit is contained in:
“BeeRad”
2025-12-15 16:14:28 +11:00
commit 733d1c3407
226 changed files with 46231 additions and 0 deletions
+128
View File
@@ -0,0 +1,128 @@
export interface UsageData {
inputTokens: number;
outputTokens: number;
totalTokens: number;
cacheWriteTokens?: number;
cacheReadTokens?: number;
cacheHit?: boolean;
cacheSavingsPct?: number;
estimatedCostUsd: number;
modelUsed: string;
provider: 'anthropic' | 'openai';
toolsUsed?: string[];
toolCallsCount?: number;
traceId?: string;
parentChatId?: number;
workflowKey?: string;
workflowNodeId?: number;
capsuleVersion?: number;
contextSourcesUsed?: number[];
validationStatus?: 'ok' | 'failed';
validationMessage?: string;
fallbackAction?: string;
mode?: 'easy' | 'hard';
}
export interface EnhancedChatMetadata {
timestamp: string;
session_id: string;
current_view: 'nodes' | 'memory';
open_tab_count: number;
has_focused_node: boolean;
message_count: number;
input_tokens?: number;
output_tokens?: number;
total_tokens?: number;
cache_write_tokens?: number;
cache_read_tokens?: number;
cache_hit?: boolean;
cache_savings_pct?: number;
estimated_cost_usd?: number;
model_used?: string;
provider?: 'anthropic' | 'openai';
tools_used?: string[];
tool_calls_count?: number;
trace_id?: string;
parent_chat_id?: number;
voice_tts_chars?: number;
voice_tts_cost_usd?: number;
voice_tts_chars_total?: number;
voice_tts_cost_usd_total?: number;
voice_request_id?: string;
voice_tts_request_count?: number;
voice_usage?: Array<{
request_id: string;
message_id?: string | null;
chars: number;
cost_usd: number;
voice?: string;
model?: string;
duration_ms?: number | null;
logged_at?: string;
}>;
}
export interface CostReport {
periodStart: string;
periodEnd: string;
totalCostUsd: number;
totalChats: number;
totalTokens: number;
inputTokens: number;
outputTokens: number;
cacheReadTokens: number;
cacheWriteTokens: number;
cacheHitRate: number;
cacheSavingsUsd: number;
avgCostPerChat: number;
avgTokensPerChat: number;
costByAgent: {
[agentName: string]: {
costUsd: number;
chats: number;
tokens: number;
};
};
costByModel: {
[modelId: string]: {
costUsd: number;
chats: number;
tokens: number;
};
};
}
export interface TraceCostSummary {
traceId: string;
totalCostUsd: number;
chatCount: number;
orchestratorCost: number;
executorCost: number;
plannerCost: number;
totalTokens: number;
interactions: Array<{
chatId: number;
agentName: string;
costUsd: number;
tokens: number;
createdAt: string;
}>;
}
export interface ModelPricing {
provider: 'anthropic' | 'openai';
inputPer1M: number;
outputPer1M: number;
cacheWritePer1M?: number;
cacheReadPer1M?: number;
}
export interface CacheEffectiveness {
totalRequests: number;
cacheHits: number;
cacheMisses: number;
hitRate: number;
totalCacheSavingsUsd: number;
avgSavingsPerHit: number;
totalTokensSaved: number;
}