feat: prepare GoodBuddy 0.8.0

This commit is contained in:
lofyer
2026-08-05 19:40:40 +08:00
parent 38ac2206f2
commit 39a457ded8
96 changed files with 14221 additions and 1027 deletions
+23 -7
View File
@@ -12,7 +12,10 @@ import {
import { homedir } from 'node:os'
import { dirname, join } from 'node:path'
import { ipcChannels } from '../shared/ipc-channels'
import { createAgentRuntime } from './agent/create-runtime'
import {
createAgentRuntime,
createDefaultModelRuntime
} from './agent/create-runtime'
import { AgentRuntimeController } from './agent/runtime-controller'
import { CapabilityService } from './capabilities/capability-service'
import { ContextManager } from './context-manager'
@@ -20,7 +23,7 @@ import { registerIpcHandlers } from './ipc'
import { KnowledgeService } from './knowledge/knowledge-service'
import { AssistantDatabase } from './assistant/assistant-database'
import { createModelGraphExtractor } from './knowledge/model-extractor'
import { OllamaEmbeddingClient } from './knowledge/ollama-embedding-client'
import { OpenAIEmbeddingClient } from './knowledge/openai-embedding-client'
import { RuntimeSettingsStore } from './runtime-settings-store'
import type { ResolvedRuntimeSettings } from './runtime-settings-store'
import { ToolApprovalBroker } from './tool-approval-broker'
@@ -38,6 +41,7 @@ import type {
} from './agent/continue-host-adapter'
import { resolvePortableUserDataPath } from './portable-user-data'
import { BrowserService } from './browser/browser-service'
import { SubagentService } from './assistant/subagent-service'
const shortcut = 'CommandOrControl+Shift+Space'
const portableUserDataPath = resolvePortableUserDataPath({
@@ -68,11 +72,12 @@ let browserService: BrowserService | undefined
function createEmbeddingProvider(
settings: ResolvedRuntimeSettings
): OllamaEmbeddingClient | undefined {
): OpenAIEmbeddingClient | undefined {
return settings.knowledgeEmbeddingEnabled
? new OllamaEmbeddingClient({
url: settings.knowledgeEmbeddingBaseUrl,
model: settings.knowledgeEmbeddingModel
? new OpenAIEmbeddingClient({
endpoint: settings.knowledgeEmbeddingBaseUrl,
model: settings.knowledgeEmbeddingModel,
apiKey: settings.knowledgeEmbeddingApiKey
})
: undefined
}
@@ -250,6 +255,13 @@ if (hasSingleInstanceLock) {
join(app.getPath('userData'), 'assistant.sqlite')
)
assistantDatabase.initialize(defaultWorkspace)
const subagentService = new SubagentService(
createDefaultModelRuntime(
defaultWorkspace,
await settingsStore.getResolvedSettings()
),
assistantDatabase
)
const createConfiguredRuntime = async () => {
const settings = await settingsStore.getResolvedSettings()
const useOpenCode =
@@ -329,11 +341,15 @@ if (hasSingleInstanceLock) {
await createConfiguredRuntime()
)
}
await subagentService.replaceRuntime(
createDefaultModelRuntime(defaultWorkspace, settings)
)
},
async () => {
await browserService?.clearSessions()
},
browserService
browserService,
subagentService
)
loadMainWindow(mainWindow)