Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ object ApplicationPreferences {
private const val SHOW_PLANS_IN_SIDEBAR_KEY = "ui.show_plans_in_sidebar"
private const val SHOW_SKILLS_IN_SIDEBAR_KEY = "ui.show_skills_in_sidebar"
private const val SHOW_PROJECTS_IN_SIDEBAR_KEY = "ui.show_projects_in_sidebar"
private const val SHOW_TOKEN_USAGE_CARD_KEY = "ui.show_token_usage_card"

fun getProjectSidePanelWidth(): Int = safeGetInt(PROJECT_SIDE_PANEL_WIDTH_KEY, DEFAULT_PROJECT_SIDE_PANEL_WIDTH)
fun setProjectSidePanelWidth(width: Int) = safePutInt(PROJECT_SIDE_PANEL_WIDTH_KEY, width)
Expand Down Expand Up @@ -120,6 +121,9 @@ object ApplicationPreferences {
fun getShowProjectsInSidebar(): Boolean = safeGetBoolean(SHOW_PROJECTS_IN_SIDEBAR_KEY, true)
fun setShowProjectsInSidebar(show: Boolean) = safePutBoolean(SHOW_PROJECTS_IN_SIDEBAR_KEY, show)

fun getShowTokenUsageCard(): Boolean = safeGetBoolean(SHOW_TOKEN_USAGE_CARD_KEY, true)
fun setShowTokenUsageCard(show: Boolean) = safePutBoolean(SHOW_TOKEN_USAGE_CARD_KEY, show)

// ============================================================
// LIFECYCLE
// ============================================================
Expand Down
475 changes: 319 additions & 156 deletions desktop-shared/src/main/kotlin/io/askimo/ui/discover/DiscoverView.kt

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions desktop-shared/src/main/resources/i18n/messages.properties
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,12 @@ discover.stat.projects=Projects
discover.stat.mcp=MCP Servers
discover.stat.plans=Plans
discover.stat.skills=Skills
discover.customize=Customize
discover.customize.show_token_usage=Show token usage card
discover.tokens.title=Top Models by Token Usage
discover.tokens.total={0} total
discover.tokens.view_details=View details
discover.tokens.empty=No token usage recorded yet. Start chatting to see stats here.
discover.explore.title=Explore Features
discover.explore.mcp.title=MCP Servers
discover.explore.mcp.desc=Extend Askimo with external tools and data sources via the Model Context Protocol.
Expand Down
6 changes: 6 additions & 0 deletions desktop-shared/src/main/resources/i18n/messages_de.properties
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,12 @@ discover.stat.projects=Projekte
discover.stat.mcp=MCP-Server
discover.stat.plans=Pläne
discover.stat.skills=Fähigkeiten
discover.customize=Anpassen
discover.customize.show_token_usage=Token-Nutzungskarte anzeigen
discover.tokens.title=Top-Modelle nach Token-Nutzung
discover.tokens.total={0} insgesamt
discover.tokens.view_details=Details anzeigen
discover.tokens.empty=Noch keine Token-Nutzung aufgezeichnet. Beginnen Sie zu chatten, um hier Statistiken zu sehen.
discover.explore.title=Funktionen entdecken
discover.explore.mcp.title=MCP-Server
discover.explore.mcp.desc=Erweitern Sie Askimo mit externen Tools und Datenquellen über das Model Context Protocol.
Expand Down
6 changes: 6 additions & 0 deletions desktop-shared/src/main/resources/i18n/messages_es.properties
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,12 @@ discover.stat.projects=Proyectos
discover.stat.mcp=Servidores MCP
discover.stat.plans=Planes
discover.stat.skills=Habilidades
discover.customize=Personalizar
discover.customize.show_token_usage=Mostrar tarjeta de uso de tokens
discover.tokens.title=Modelos principales por uso de tokens
discover.tokens.total={0} en total
discover.tokens.view_details=Ver detalles
discover.tokens.empty=Aún no se ha registrado el uso de tokens. Empiece a chatear para ver las estadísticas aquí.
discover.explore.title=Explorar funciones
discover.explore.mcp.title=Servidores MCP
discover.explore.mcp.desc=Amplía Askimo con herramientas externas y fuentes de datos mediante el Model Context Protocol.
Expand Down
6 changes: 6 additions & 0 deletions desktop-shared/src/main/resources/i18n/messages_fr.properties
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,12 @@ discover.stat.projects=Projets
discover.stat.mcp=Serveurs MCP
discover.stat.plans=Plans
discover.stat.skills=Compétences
discover.customize=Personnaliser
discover.customize.show_token_usage=Afficher la carte d'utilisation des jetons
discover.tokens.title=Meilleurs modèles par utilisation de jetons
discover.tokens.total={0} au total
discover.tokens.view_details=Voir les détails
discover.tokens.empty=Aucune utilisation de jetons enregistrée pour le moment. Commencez à discuter pour voir les statistiques ici.
discover.explore.title=Explorer les fonctionnalités
discover.explore.mcp.title=Serveurs MCP
discover.explore.mcp.desc=Étendez Askimo avec des outils externes et des sources de données via le Model Context Protocol.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,12 @@ discover.stat.projects=プロジェクト
discover.stat.mcp=MCPサーバー
discover.stat.plans=プラン
discover.stat.skills=スキル
discover.customize=カスタマイズ
discover.customize.show_token_usage=トークン使用量カードを表示
discover.tokens.title=トークン使用量別のトップモデル
discover.tokens.total=合計 {0}
discover.tokens.view_details=詳細を表示
discover.tokens.empty=トークンの使用記録がまだありません。チャットを開始して統計を表示してください。
discover.explore.title=機能を探索
discover.explore.mcp.title=MCPサーバー
discover.explore.mcp.desc=Model Context Protocolを介して、外部ツールやデータソースでAskimoを拡張します。
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,12 @@ discover.stat.projects=프로젝트
discover.stat.mcp=MCP 서버
discover.stat.plans=플랜
discover.stat.skills=스킬
discover.customize=사용자 지정
discover.customize.show_token_usage=토큰 사용량 카드 표시
discover.tokens.title=토큰 사용량 기준 상위 모델
discover.tokens.total=총 {0}
discover.tokens.view_details=세부 정보 보기
discover.tokens.empty=아직 기록된 토큰 사용량이 없습니다. 채팅을 시작하여 여기에서 통계를 확인하세요.
discover.explore.title=기능 살펴보기
discover.explore.mcp.title=MCP 서버
discover.explore.mcp.desc=Model Context Protocol을 통해 외부 도구와 데이터 소스로 Askimo를 확장하세요.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,12 @@ discover.stat.projects=Projetos
discover.stat.mcp=Servidores MCP
discover.stat.plans=Planos
discover.stat.skills=Habilidades
discover.customize=Personalizar
discover.customize.show_token_usage=Mostrar cartão de uso de tokens
discover.tokens.title=Principais modelos por uso de tokens
discover.tokens.total={0} no total
discover.tokens.view_details=Ver detalhes
discover.tokens.empty=Nenhum uso de token registrado ainda. Comece a conversar para ver as estatísticas aqui.
discover.explore.title=Explorar funcionalidades
discover.explore.mcp.title=Servidores MCP
discover.explore.mcp.desc=Expanda o Askimo com ferramentas externas e fontes de dados através do Model Context Protocol.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,12 @@ discover.stat.projects=Dự án
discover.stat.mcp=Máy chủ MCP
discover.stat.plans=Kế hoạch
discover.stat.skills=Kỹ năng
discover.customize=Tùy chỉnh
discover.customize.show_token_usage=Hiển thị thẻ sử dụng token
discover.tokens.title=Các model hàng đầu theo mức sử dụng token
discover.tokens.total=Tổng {0}
discover.tokens.view_details=Xem chi tiết
discover.tokens.empty=Chưa có dữ liệu sử dụng token. Hãy bắt đầu trò chuyện để xem thống kê tại đây.
discover.explore.title=Khám phá tính năng
discover.explore.mcp.title=Máy chủ MCP
discover.explore.mcp.desc=Mở rộng Askimo bằng các công cụ bên ngoài và nguồn dữ liệu thông qua Model Context Protocol.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,12 @@ discover.stat.projects=项目
discover.stat.mcp=MCP 服务器
discover.stat.plans=计划
discover.stat.skills=技能
discover.customize=自定义
discover.customize.show_token_usage=显示 Token 使用情况卡片
discover.tokens.title=按 Token 使用量排名的模型
discover.tokens.total=共 {0}
discover.tokens.view_details=查看详情
discover.tokens.empty=暂无 Token 使用记录。开始聊天以在此处查看统计信息。
discover.explore.title=探索功能
discover.explore.mcp.title=MCP 服务器
discover.explore.mcp.desc=通过 Model Context Protocol,使用外部工具和数据源扩展 Askimo。
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,12 @@ discover.stat.projects=專案
discover.stat.mcp=MCP 伺服器
discover.stat.plans=計劃
discover.stat.skills=技能
discover.customize=自訂
discover.customize.show_token_usage=顯示 Token 使用量卡片
discover.tokens.title=按 Token 使用量排名的模型
discover.tokens.total=共 {0}
discover.tokens.view_details=查看詳情
discover.tokens.empty=暫無 Token 使用記錄。開始聊天以在此處查看統計資訊。
discover.explore.title=探索功能
discover.explore.mcp.title=MCP 伺服器
discover.explore.mcp.desc=透過 Model Context Protocol,使用外部工具和資料來源擴充 Askimo。
Expand Down
17 changes: 17 additions & 0 deletions desktop/src/main/kotlin/io/askimo/desktop/Main.kt
Original file line number Diff line number Diff line change
Expand Up @@ -318,6 +318,7 @@ fun app(frameWindowScope: FrameWindowScope? = null, windowState: WindowState? =
var showPlansInSidebar by remember { mutableStateOf(ApplicationPreferences.getShowPlansInSidebar()) }
var showSkillsInSidebar by remember { mutableStateOf(ApplicationPreferences.getShowSkillsInSidebar()) }
var showProjectsInSidebar by remember { mutableStateOf(ApplicationPreferences.getShowProjectsInSidebar()) }
var showTokenUsageCard by remember { mutableStateOf(ApplicationPreferences.getShowTokenUsageCard()) }
var selectedProjectId by remember { mutableStateOf<String?>(null) }
var sidebarWidthFraction by remember { mutableStateOf(ThemePreferences.getMainSidebarWidthFraction()) }
var showQuitDialog by remember { mutableStateOf(false) }
Expand Down Expand Up @@ -1140,6 +1141,14 @@ fun app(frameWindowScope: FrameWindowScope? = null, windowState: WindowState? =
userAvatarPath = userProfile?.preferences?.get("avatarPath"),
userProfile = userProfile,
discoverViewModel = discoverViewModel,
showTokenUsageCard = showTokenUsageCard,
onToggleTokenUsageCard = { enabled ->
showTokenUsageCard = enabled
ApplicationPreferences.setShowTokenUsageCard(enabled)
},
onOpenSystemDiagnostics = {
showSystemDiagnosticsDialog = true
},
onNavigateToMcpSettings = {
settingsSection = SettingsSection.MCP_SERVERS
previousView = currentView
Expand Down Expand Up @@ -1961,7 +1970,11 @@ fun mainContent(
userAvatarPath: String? = null,
userProfile: UserProfile? = null,
discoverViewModel: DiscoverViewModel,
showTokenUsageCard: Boolean = true,
onToggleTokenUsageCard: (Boolean) -> Unit = {},
onOpenSystemDiagnostics: () -> Unit = {},
) {
val discoverMetrics by appContext.telemetry.metricsFlow.collectAsState()
Box(
modifier = Modifier
.fillMaxSize()
Expand All @@ -1985,6 +1998,10 @@ fun mainContent(
onNavigateToPlans = onNavigateToPlans,
onNavigateToSkills = onNavigateToSkills,
onNavigateToMcpSettings = onNavigateToMcpSettings,
showTokenUsageCard = showTokenUsageCard,
onToggleTokenUsageCard = onToggleTokenUsageCard,
onOpenSystemDiagnostics = onOpenSystemDiagnostics,
telemetryMetrics = discoverMetrics,
modifier = Modifier.fillMaxSize(),
)

Expand Down