K-10 pipeline transcripciones + settings IA + cache-aside + session doc
Nuevos modulos: - services/ai.ts: cliente IA provider-agnostico (OpenRouter, MiniMax) - services/db.ts: Dexie core con tabla settings + project_docs - services/storage.ts: Cache-Aside + Write-Through (L1 Map → L2 Dexie → L3 localStorage) - services/parse-transcription.ts: parser .docx/.vtt/.txt/.md - services/session-analyzer.ts: extraccion IA de sesiones (resumen, tareas, decisiones) - services/project-doc.ts: documento maestro MD (Bloque 1 resumen + Bloque 2 sesiones) - stores/settings.ts: proveedores IA, modelos, API keys separadas por provider - stores/transcriptions.ts: pipeline upload → analyze → create HU en KAPPA - views/SettingsView.vue: configuracion IA (OpenRouter, MiniMax, OpenCode bridge) - views/TranscriptionsView.vue: subida multiple + analisis sesion + visor MD + calendario - components/AiProjectChat.vue: chat contextual por proyecto con selector de modelo Cambios en existentes: - stores/auth.ts, kappa-api.ts, upload-hu.ts: migrados a storage service (Dexie + localStorage) - stores/projects.ts, workitems.ts: kappa_last_project via storage - DashboardView.vue: descripcion reemplazada por AiProjectChat - NewDashboardView.vue: tabs transcriptions + settings + navigate-settings events - NavMain.vue: items Transcripciones + Configuracion - SiteHeader.vue: labels tabs + language via storage - LoginView.vue: remember_email via storage - i18n: +80 keys español/ingles - vite.config.ts: proxy CORS para MiniMax - package.json: +mammoth.js
This commit is contained in:
+100
-2
@@ -2,6 +2,7 @@
|
||||
"nav": {
|
||||
"quickCreate": "Create project",
|
||||
"board": "Metrics",
|
||||
"transcriptions": "Transcriptions",
|
||||
"projects": "Projects",
|
||||
"lifecycle": "Lifecycle",
|
||||
"analytics": "Analytics",
|
||||
@@ -10,7 +11,8 @@
|
||||
"dataLibrary": "Data Library",
|
||||
"reports": "Reports",
|
||||
"wordAssistant": "Word Assistant",
|
||||
"templates": "Templates"
|
||||
"templates": "Templates",
|
||||
"settings": "Settings"
|
||||
},
|
||||
"siteHeader": {
|
||||
"title": "Dashboard",
|
||||
@@ -21,6 +23,7 @@
|
||||
},
|
||||
"settings": {
|
||||
"title": "Settings",
|
||||
"subtitle": "Manage AI providers, models, and preferences",
|
||||
"language": "Language",
|
||||
"theme": "Theme",
|
||||
"light": "Light",
|
||||
@@ -28,7 +31,37 @@
|
||||
"system": "System",
|
||||
"about": "About",
|
||||
"documentation": "Documentation",
|
||||
"logout": "Log out"
|
||||
"logout": "Log out",
|
||||
"aiProvider": "AI Provider",
|
||||
"aiProviderDesc": "Choose which AI engine to use for transcript analysis and story generation",
|
||||
"recommended": "Recommended",
|
||||
"bridge": "Bridge",
|
||||
"openrouterDesc": "Access 200+ models with a single API key. Free and paid tiers available.",
|
||||
"minimaxDesc": "High-performance Chinese models (MiniMax Text-01). Use your Token Plan API key from platform.minimax.io.",
|
||||
"opencodeDesc": "Inherit model configuration from OpenCode (reads auth.json)",
|
||||
"keyHelp": "You need an API key for this provider.",
|
||||
"minimaxKeyHelp": "You need a User Token (not sk-... API key) from User Center → Interface Key. The token starts with 'eyJ...' or is a long string:",
|
||||
"minimaxGroupId": "Group ID (optional)",
|
||||
"minimaxGroupIdPlaceholder": "mg-...",
|
||||
"minimaxGroupIdHelp": "Required if using a Group API Key. Find it at: platform.minimaxi.com → Group management.",
|
||||
"apiKey": "API Key",
|
||||
"apiKeyPlaceholder": "sk-or-v1-...",
|
||||
"keyConfigured": "API key configured",
|
||||
"saveKey": "Save",
|
||||
"removeKey": "Remove",
|
||||
"keySaved": "API key saved successfully",
|
||||
"opencodeInfoTitle": "OpenCode Integration",
|
||||
"opencodeInfoDesc": "Alpha can read API keys you've already configured in OpenCode from:",
|
||||
"opencodeInfoFuture": "In the future, this will happen automatically when Alpha runs on Tauri (direct filesystem access). For now, configure OpenRouter manually.",
|
||||
"opencodeFallback": "In the meantime, use",
|
||||
"model": "AI Model",
|
||||
"modelDesc": "Select which model to use for transcript analysis",
|
||||
"freeModels": "Free",
|
||||
"cheapModels": "Cheap",
|
||||
"premiumModels": "Premium",
|
||||
"currentModel": "Current model",
|
||||
"account": "Account",
|
||||
"loggedInAs": "Logged in as"
|
||||
},
|
||||
"login": {
|
||||
"title": "Sign in",
|
||||
@@ -214,6 +247,71 @@
|
||||
"trendingUp": "Trending up",
|
||||
"trendingDown": "Trending down"
|
||||
},
|
||||
"transcriptions": {
|
||||
"title": "Transcriptions",
|
||||
"subtitle": "Manage project sessions. Upload transcripts, analyze with AI, and maintain an incremental document.",
|
||||
"configureAI": "Configure AI",
|
||||
"aiKeyTitle": "OpenRouter API Key",
|
||||
"aiKeyDesc": "You need an OpenRouter API key to analyze transcripts with DeepSeek.",
|
||||
"apiKeyLabel": "OpenRouter API Key",
|
||||
"apiKeyPlaceholder": "sk-or-v1-...",
|
||||
"saveKey": "Save",
|
||||
"selectProject": "Target project",
|
||||
"projectPlaceholder": "Select a project...",
|
||||
"dropzone": "Drop a file here",
|
||||
"dropzoneFormats": "DOCX, VTT, TXT or MD",
|
||||
"selectFile": "Select file",
|
||||
"parsing": "Processing file...",
|
||||
"addMore": "Add files",
|
||||
"changeFile": "Change file",
|
||||
"analyze": "Analyze with AI",
|
||||
"chars": "characters",
|
||||
"analyzingTitle": "Analyzing transcript...",
|
||||
"analyzingDesc": "DeepSeek model is extracting user stories. This may take a few seconds.",
|
||||
"error": "Error",
|
||||
"tryAgain": "Try again",
|
||||
"clear": "Clear all",
|
||||
"summary": "Analysis summary",
|
||||
"husFound": "{count} stories found",
|
||||
"selected": "selected",
|
||||
"createInKappa": "Create {count} in KAPPA",
|
||||
"type": "Type",
|
||||
"title": "Title",
|
||||
"priority": "Priority",
|
||||
"selectProjectToCreate": "Select a project above to create stories in KAPPA",
|
||||
"analyzeSession": "Analyze session",
|
||||
"sessionError": "Error analyzing session",
|
||||
"sessionSummary": "Summary",
|
||||
"sessionObjectives": "Objectives",
|
||||
"sessionDecisions": "Decisions",
|
||||
"sessionTasks": "Pending tasks",
|
||||
"sessionCommitments": "Commitments",
|
||||
"sessionKeyPoints": "Key points",
|
||||
"generateDoc": "Update document",
|
||||
"docUpdated": "Document updated",
|
||||
"downloadDoc": "Download .md",
|
||||
"docSaved": "Document saved to local database.",
|
||||
"sessionCountTitle": "Sessions",
|
||||
"sessionsRecorded": "sessions recorded",
|
||||
"sessionDates": "Session calendar",
|
||||
"noSessions": "No sessions recorded",
|
||||
"sessionsLabel": "sessions",
|
||||
"updatedAt": "Updated:",
|
||||
"docViewer": "Session document",
|
||||
"selectProjectHint": "Select a project to view its sessions",
|
||||
"sessionCount": "{count} sessions | {count} session | {count} sessions"
|
||||
},
|
||||
"projectAi": {
|
||||
"title": "Project AI Assistant",
|
||||
"configure": "Configure",
|
||||
"noKey": "No API key",
|
||||
"keyReady": "Ready",
|
||||
"configureLink": "Set up an AI provider",
|
||||
"placeholder": "Ask something about the project...",
|
||||
"thinking": "Thinking...",
|
||||
"switchModel": "Switch model",
|
||||
"settings": "Settings..."
|
||||
},
|
||||
"workitems": {
|
||||
"unnamedEpic": "Epic {id}"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user