From 78892c4637362ae401e81255b7860dac16a7fd62 Mon Sep 17 00:00:00 2001 From: lucaronin Date: Fri, 29 May 2026 00:46:59 +0200 Subject: [PATCH] feat: add side AI workspace --- index.html | 76 +- lara.lock | 5 +- public/ai-agent-icons/SOURCES.md | 8 + public/ai-agent-icons/claude-code.svg | 3 + public/ai-agent-icons/codex.svg | 3 + public/ai-agent-icons/gemini.svg | 10 + public/ai-agent-icons/kiro.svg | 11 + public/ai-agent-icons/opencode.svg | 18 + public/ai-agent-icons/pi.svg | 11 + src-tauri/Cargo.toml | 2 +- src-tauri/src/ai_agents.rs | 3 + src-tauri/src/ai_models.rs | 4 + src-tauri/src/commands/ai.rs | 86 +- src-tauri/src/mcp/paths.rs | 22 +- src-tauri/tauri.conf.json | 1 + src/App.tsx | 142 +++- src/components/AiAgentIcon.tsx | 55 ++ .../AiAgentsOnboardingPrompt.test.tsx | 3 + src/components/AiAgentsOnboardingPrompt.tsx | 17 +- src/components/AiMessage.test.tsx | 58 +- src/components/AiMessage.tsx | 199 ++++- src/components/AiPanel.test.tsx | 16 +- src/components/AiPanel.tsx | 41 +- src/components/AiPanelChrome.tsx | 37 +- src/components/AiWorkspace.test.tsx | 231 +++++- src/components/AiWorkspace.tsx | 757 ++++++++++++++++-- src/components/AiWorkspaceFloatingButton.tsx | 100 +++ src/components/AiWorkspaceSidebar.tsx | 14 +- src/components/AiWorkspaceWindowApp.tsx | 268 ++++++- src/components/AppAiWorkspaceSurface.tsx | 10 +- src/components/BreadcrumbBar.test.tsx | 9 +- src/components/BreadcrumbBar.tsx | 26 +- src/components/Editor.tsx | 8 +- src/components/InlineWikilinkInput.tsx | 3 + src/components/InlineWikilinkParts.tsx | 9 +- src/components/Inspector.test.tsx | 8 +- src/components/NoteItem.test.tsx | 3 + src/components/NoteItem.tsx | 17 +- src/components/SettingsPanel.test.tsx | 1 + src/components/SettingsPanel.tsx | 8 +- src/components/StatusBar.test.tsx | 1 + src/components/WikilinkChatInput.tsx | 3 + src/components/inspector/InspectorChrome.tsx | 14 +- .../status-bar/AiAgentsBadge.test.tsx | 3 + src/components/status-bar/AiAgentsBadge.tsx | 18 +- src/components/useAiPanelController.ts | 7 +- src/components/useRightPanelExclusion.ts | 4 - src/hooks/useAppAiWorkspaceBridge.ts | 67 +- src/hooks/useCliAiAgent.test.ts | 63 ++ src/hooks/useCliAiAgent.ts | 93 ++- src/hooks/useLayoutPanels.test.ts | 12 + src/hooks/useVaultConfig.ts | 2 +- src/index.css | 25 +- src/lib/aiAgentConversation.test.ts | 19 + src/lib/aiAgentConversation.ts | 5 +- src/lib/aiAgentSession.test.ts | 19 +- src/lib/aiAgentSession.ts | 42 +- src/lib/aiAgents.test.ts | 2 + src/lib/aiWorkspaceSessionStore.ts | 172 ++++ .../aiWorkspaceWindowSharedContext.test.ts | 94 +++ src/lib/aiWorkspaceWindowSharedContext.ts | 176 ++++ src/lib/locales/be-BY.json | 13 +- src/lib/locales/be-Latn.json | 11 +- src/lib/locales/de-DE.json | 13 +- src/lib/locales/en.json | 13 +- src/lib/locales/es-419.json | 13 +- src/lib/locales/es-ES.json | 13 +- src/lib/locales/fr-FR.json | 13 +- src/lib/locales/id-ID.json | 13 +- src/lib/locales/it-IT.json | 13 +- src/lib/locales/ja-JP.json | 13 +- src/lib/locales/ko-KR.json | 13 +- src/lib/locales/pl-PL.json | 13 +- src/lib/locales/pt-BR.json | 13 +- src/lib/locales/pt-PT.json | 13 +- src/lib/locales/ru-RU.json | 13 +- src/lib/locales/vi.json | 13 +- src/lib/locales/zh-CN.json | 13 +- src/lib/locales/zh-TW.json | 13 +- src/lib/productAnalytics.ts | 2 +- src/utils/ai-context.test.ts | 47 +- src/utils/ai-context.ts | 77 +- src/utils/ai-reference-content.ts | 26 + src/utils/aiConversationTitle.test.ts | 101 ++- src/utils/aiConversationTitle.ts | 148 +++- src/utils/aiPromptBridge.ts | 4 + src/utils/aiStreamEvents.ts | 7 + src/utils/openAiWorkspaceWindow.test.ts | 82 +- src/utils/openAiWorkspaceWindow.ts | 211 ++++- src/utils/streamAiAgent.test.ts | 87 +- src/utils/streamAiAgent.ts | 5 +- src/utils/streamAiModel.test.ts | 89 ++ src/utils/streamAiModel.ts | 5 +- src/utils/vaultConfigStore.ts | 1 + 94 files changed, 3763 insertions(+), 505 deletions(-) create mode 100644 public/ai-agent-icons/SOURCES.md create mode 100644 public/ai-agent-icons/claude-code.svg create mode 100644 public/ai-agent-icons/codex.svg create mode 100644 public/ai-agent-icons/gemini.svg create mode 100644 public/ai-agent-icons/kiro.svg create mode 100644 public/ai-agent-icons/opencode.svg create mode 100644 public/ai-agent-icons/pi.svg create mode 100644 src/components/AiAgentIcon.tsx create mode 100644 src/components/AiWorkspaceFloatingButton.tsx create mode 100644 src/lib/aiWorkspaceSessionStore.ts create mode 100644 src/lib/aiWorkspaceWindowSharedContext.test.ts create mode 100644 src/lib/aiWorkspaceWindowSharedContext.ts create mode 100644 src/utils/ai-reference-content.ts create mode 100644 src/utils/aiStreamEvents.ts create mode 100644 src/utils/streamAiModel.test.ts diff --git a/index.html b/index.html index 8ec27bf9..34f67089 100644 --- a/index.html +++ b/index.html @@ -7,25 +7,6 @@ - - Tolaria - - + + Tolaria + + +