Files
goodbuddy/src/shared/ipc-channels.ts
T
mesalogo 48d7526b7e feat: configure supervisor model and story graph use per conversation
Add a supervisor text-model selector using existing connections and a per-conversation story graph switch above knowledge settings. Hide the switch when Supervisor is disabled and enforce conversation preferences at local and remote tool execution boundaries.

Release note: Choose a dedicated supervisor model and control whether each conversation can query existing stories and experiences. Enabling graph access does not start a review or automatically insert context.
2026-10-03 19:16:35 +08:00

399 lines
19 KiB
TypeScript

export const ipcChannels = {
sharingSettingsGet: 'sharing:settings-get',
sharingSettingsSave: 'sharing:settings-save',
sharingRegister: 'sharing:register',
sharingCatalog: 'sharing:catalog',
sharingPublish: 'sharing:publish',
sharingRevoke: 'sharing:revoke',
localInferenceGet: 'local-inference:get',
localInferenceAct: 'local-inference:act',
localInferenceCancel: 'local-inference:cancel',
localInferenceOpenSettings: 'local-inference:open-settings',
storageUpgradeProgress: 'app:storage-upgrade:progress',
storageUpgradeAction: 'app:storage-upgrade:action',
externalInstancesList: 'knowledge:external-instances:list',
externalInstancesSave: 'knowledge:external-instances:save',
externalInstancesTest: 'knowledge:external-instances:test',
externalInstancesSetEnabled: 'knowledge:external-instances:set-enabled',
externalInstancesDelete: 'knowledge:external-instances:delete',
externalCatalogList: 'knowledge:external-catalog:list',
externalCatalogGet: 'knowledge:external-catalog:get',
externalBindingsCreate: 'knowledge:external-bindings:create',
externalBindingsUpdate: 'knowledge:external-bindings:update',
externalRetrievalTest: 'knowledge:external-retrieval:test',
appInfo: 'app:get-info',
appShow: 'app:show',
appHide: 'app:hide',
windowMinimize: 'window:minimize',
windowToggleMaximize: 'window:toggle-maximize',
windowClose: 'window:close',
windowIsMaximized: 'window:is-maximized',
windowMaximizedChanged: 'window:maximized-changed',
windowPreviewEscape: 'window:preview-escape',
appRendererPersistenceReady: 'app:renderer-persistence-ready',
appRendererPersistenceRequest: 'app:renderer-persistence-request',
appRendererPersistenceComplete: 'app:renderer-persistence-complete',
appClearLocalData: 'app:clear-local-data',
clipboardReadText: 'clipboard:read-text',
clipboardWriteText: 'clipboard:write-text',
conversationNew: 'conversation:new',
settingsOpen: 'settings:open',
agentStatus: 'agent:get-status',
agentRun: 'agent:run',
agentCancel: 'agent:cancel',
agentApprovalRespond: 'agent:approval:respond',
agentQuestionRespond: 'agent:question:respond',
agentCompactConversation: 'agent:context:compact',
agentEvent: 'agent:event',
browserCreateTab: 'browser:tab:create',
browserListTabs: 'browser:tab:list',
browserCloseTab: 'browser:tab:close',
browserNavigate: 'browser:navigate',
browserBack: 'browser:back',
browserReload: 'browser:reload',
browserStopLoading: 'browser:stop-loading',
browserSnapshot: 'browser:snapshot',
browserClick: 'browser:click',
browserType: 'browser:type',
browserSelect: 'browser:select',
browserScreenshot: 'browser:screenshot',
browserSetViewport: 'browser:set-viewport',
browserStop: 'browser:stop',
browserState: 'browser:state',
terminalCreate: 'terminal:create',
runtimeNativeClientOpen: 'runtime-native-client:open',
runtimeNativeClientGet: 'runtime-native-client:get',
runtimeNativeClientStop: 'runtime-native-client:stop',
terminalWrite: 'terminal:write',
terminalResize: 'terminal:resize',
terminalClose: 'terminal:close',
terminalSnapshot: 'terminal:snapshot',
terminalAck: 'terminal:ack',
terminalEvent: 'terminal:event',
runtimeSettingsGet: 'settings:runtime:get',
runtimeSettingsUpdate: 'settings:runtime:update',
runtimeSettingsSelectWorkspace: 'settings:runtime:select-workspace',
runtimeSettingsDetect: 'settings:runtime:detect',
runtimeSettingsSelectFile: 'settings:runtime:select-file',
runtimeSettingsOpenConfig: 'settings:runtime:open-config',
runtimeSettingsTestModel: 'settings:runtime:test-model',
runtimeSettingsTest: 'settings:runtime:test',
runtimeCustomizationGet: 'settings:runtime-customization:get',
runtimeCustomizationUpdate: 'settings:runtime-customization:update',
runtimeNativeSnapshot: 'settings:runtime-native:snapshot',
sshHostsGet: 'settings:ssh-hosts:get',
sshHostsRemove: 'settings:ssh-hosts:remove',
sshHostsInspectDraftKey: 'settings:ssh-hosts:inspect-draft-key',
sshHostsDiscardCandidate:
'settings:ssh-hosts:discard-candidate',
sshHostsValidateAndSave:
'settings:ssh-hosts:validate-and-save',
sshHostsAgentPackageInventory:
'settings:ssh-hosts:agent-package:inventory',
sshHostsAgentPackageDownload:
'settings:ssh-hosts:agent-package:download',
sshHostsAgentPackageImport:
'settings:ssh-hosts:agent-package:import',
sshHostsAgentPackageExport:
'settings:ssh-hosts:agent-package:export',
sshHostsAgentPackageProgress:
'settings:ssh-hosts:agent-package:progress',
sshHostsRemoteEnvironment:
'settings:ssh-hosts:remote-environment',
sshHostsUpdateRemoteEnvironment:
'settings:ssh-hosts:remote-environment:update',
sshHostsCancelRemoteEnvironmentUpdate:
'settings:ssh-hosts:remote-environment:update:cancel',
sshHostsRemoteEnvironmentUpdateProgress:
'settings:ssh-hosts:remote-environment:update:progress',
sshHostsBrowseDirectories:
'settings:ssh-hosts:directories:browse',
sshHostsCancelDirectoryBrowse:
'settings:ssh-hosts:directories:cancel',
sshHostsAgentConnectionStatus:
'settings:ssh-hosts:agent-connection-status',
channelSettingsGet: 'settings:channels:get',
channelSettingsApply: 'settings:channels:apply',
channelSettingsTest: 'settings:channels:test',
weixinBindingGet: 'settings:channels:weixin:binding:get',
weixinBindingStart: 'settings:channels:weixin:binding:start',
weixinBindingVerify: 'settings:channels:weixin:binding:verify',
weixinBindingDisconnect:
'settings:channels:weixin:binding:disconnect',
weixinBindingChanged:
'settings:channels:weixin:binding:changed',
remoteChannelActivity: 'channels:remote-activity',
applicationSettingsGet: 'settings:application:get',
applicationSettingsUpdate: 'settings:application:update',
applicationSettingsChanged: 'settings:application:changed',
localToolEnvironmentGet: 'settings:local-tools:get',
localToolEnvironmentUpdate: 'settings:local-tools:update',
localToolEnvironmentRefresh: 'settings:local-tools:refresh',
localToolEnvironmentSelectExecutable:
'settings:local-tools:select-executable',
localToolEnvironmentDiagnose: 'settings:local-tools:diagnose',
localToolEnvironmentInstallPython:
'settings:local-tools:python:install',
localToolEnvironmentCancelPython:
'settings:local-tools:python:cancel',
localToolEnvironmentRemovePython:
'settings:local-tools:python:remove',
localToolEnvironmentProgress: 'settings:local-tools:progress',
shortcutSettingsGet: 'settings:shortcut:get',
shortcutSettingsUpdate: 'settings:shortcut:update',
versionCheck: 'application:update:check',
versionOpenReleasePage: 'application:update:open-release-page',
versionCheckResult: 'application:update:result',
feedbackSubmit: 'feedback:submit',
releaseNotesGetPending: 'application:release-notes:get-pending',
releaseNotesAcknowledge: 'application:release-notes:acknowledge',
speechModelsGet: 'settings:speech-models:get',
speechModelsInstall: 'settings:speech-models:install',
speechModelsCancel: 'settings:speech-models:cancel',
speechModelsRemove: 'settings:speech-models:remove',
speechModelsSelect: 'settings:speech-models:select',
speechModelsImportArchive: 'settings:speech-models:import-archive',
speechModelsExportArchive: 'settings:speech-models:export-archive',
speechModelsOpenRepository: 'settings:speech-models:open-repository',
speechModelsOpenDirectory: 'settings:speech-models:open-directory',
speechTranscribe: 'speech:transcribe',
speechTranscriptionCancel: 'speech:transcription:cancel',
embeddingSettingsGet: 'settings:embedding:get',
embeddingDiagnose: 'settings:embedding:diagnose',
embeddingSetCurrent: 'settings:embedding:set-current',
embeddingModelsProgress: 'settings:embedding-models:progress',
embeddingModelsInstall: 'settings:embedding-models:install',
embeddingModelsCancel: 'settings:embedding-models:cancel',
embeddingModelsImportArchive:
'settings:embedding-models:import-archive',
embeddingModelsRemove: 'settings:embedding-models:remove',
documentParsingGet: 'settings:document-parsing:get',
documentParsingCheckHttp: 'settings:document-parsing:check-http',
documentParsingResult: 'document-parsing:result',
documentParsingImage: 'document-parsing:image',
documentParsingOriginal: 'document-parsing:original',
documentParsingRelease: 'document-parsing:release',
documentParsingCancel: 'document-parsing:cancel',
contextGetDraft: 'context:get-draft',
contextSaveDraft: 'context:save-draft',
contextAddResultImages: 'context:add-result-images',
contextDraftChanged: 'context:draft-changed',
contextReparse: 'context:reparse',
contextCancelParsing: 'context:cancel-parsing',
contextSendOriginal: 'context:send-original',
contextOpenOriginal: 'context:open-original',
contextCancelImport: 'context:cancel-import',
contextPendingParsing: 'context:pending-parsing',
contextRetryParsing: 'context:retry-parsing',
contextDismissParsing: 'context:dismiss-parsing',
contextCopyToDraft: 'context:copy-to-draft',
contextImageCapability: 'context:image-capability',
conversationQueueRestoreDraft: 'conversation-queue:restore-draft',
conversationQueueAttachments: 'conversation-queue:attachments',
documentOcrModelsProgress:
'settings:document-ocr-models:progress',
documentParsingUpdate: 'settings:document-parsing:update',
documentParsingTest: 'settings:document-parsing:test',
documentOcrModelsInstall: 'settings:document-ocr-models:install',
documentOcrModelsCancel: 'settings:document-ocr-models:cancel',
documentOcrModelsRemove: 'settings:document-ocr-models:remove',
documentOcrModelsImportArchive:
'settings:document-ocr-models:import-archive',
documentOcrModelsExportArchive:
'settings:document-ocr-models:export-archive',
documentOcrModelsOpenRepository:
'settings:document-ocr-models:open-repository',
documentOcrModelsOpenDirectory:
'settings:document-ocr-models:open-directory',
documentParsingOcrAssets: 'document-parsing:ocr:assets',
documentParsingOcrRequest: 'document-parsing:ocr:request',
documentParsingOcrRespond: 'document-parsing:ocr:respond',
documentParsingOcrCancel: 'document-parsing:ocr:cancel',
projectsList: 'projects:list',
projectsCreate: 'projects:create',
projectsUpdate: 'projects:update',
projectsSetArchived: 'projects:set-archived',
projectsDelete: 'projects:delete',
remoteProjectSave: 'projects:remote:save',
remoteProjectCancelCurrent: 'projects:remote:cancel-current',
remoteProjectSaveProgress: 'projects:remote:save-progress',
remoteProjectRecoveryGet: 'projects:remote:recovery:get',
remoteProjectRecoveryRetry: 'projects:remote:recovery:retry',
remoteProjectRecoveryProgress:
'projects:remote:recovery:progress',
conversationsList: 'conversations:list',
conversationsListSummaries: 'conversations:list-summaries',
conversationsGet: 'conversations:get',
conversationsSearch: 'conversations:search',
conversationsReplace: 'conversations:replace',
conversationsSaveLocal: 'conversations:save-local',
conversationsSetPinned: 'conversations:set-pinned',
conversationsSetStoryGraph: 'conversations:set-story-graph',
conversationsBranchLocal: 'conversations:branch-local',
conversationsDeleteLocal: 'conversations:delete-local',
conversationsChanged: 'conversations:changed',
imageOperationCancel: 'image-operation:cancel',
imageOperationRegenerate: 'image-operation:regenerate',
imageOperationChanged: 'image-operation:changed',
conversationQueueList: 'conversation-queue:list',
conversationQueueEnqueueUser: 'conversation-queue:enqueue-user',
conversationQueueRemove: 'conversation-queue:remove',
conversationQueueInterruptAndRun:
'conversation-queue:interrupt-and-run',
conversationQueueReleaseUser: 'conversation-queue:release-user',
conversationQueueReady: 'conversation-queue:ready',
conversationQueueChanged: 'conversation-queue:changed',
conversationQueueDispatch: 'conversation-queue:dispatch',
workspaceChangesGet: 'workspace:changes:get',
workspaceManage: 'workspace:manage',
workspaceFileDiff: 'workspace:file:diff',
workspaceDirectoryList: 'workspace:directory:list',
workspaceFileRead: 'workspace:file:read',
workspacePathOpen: 'workspace:path:open',
tasksList: 'tasks:list',
tasksExecutionStats: 'tasks:execution-stats',
tasksSetStatus: 'tasks:set-status',
activityHistoryGet: 'activity-history:get',
activityHistoryReplace: 'activity-history:replace',
activityHistoryUpdate: 'activity-history:update',
tokenUsageSummary: 'usage:token-summary',
tokenUsageChanged: 'usage:token-changed',
artifactsList: 'artifacts:list',
artifactsGet: 'artifacts:get',
artifactsImportFiles: 'artifacts:import-files',
memoryList: 'memory:list',
memoryCreate: 'memory:create',
memorySetStatus: 'memory:set-status',
memoryRemove: 'memory:remove',
schedulesList: 'schedules:list',
schedulesCreate: 'schedules:create',
schedulesSetEnabled: 'schedules:set-enabled',
schedulesRemove: 'schedules:remove',
schedulesRunNow: 'schedules:run-now',
heartbeatsList: 'heartbeats:list',
heartbeatsCreate: 'heartbeats:create',
heartbeatsUpdate: 'heartbeats:update',
heartbeatsSetPaused: 'heartbeats:set-paused',
heartbeatsRemove: 'heartbeats:remove',
heartbeatsRunNow: 'heartbeats:run-now',
heartbeatsHistory: 'heartbeats:history',
supervisionOverview: 'supervision:overview',
supervisionActivity: 'supervision:activity',
supervisionPause: 'supervision:pause',
supervisionCancel: 'supervision:cancel',
supervisionSuggestions: 'supervision:suggestions',
supervisionSuggestionAction: 'supervision:suggestion-action',
supervisionRetrySuggestions: 'supervision:retry-suggestions',
supervisionExecution: 'supervision:execution',
supervisionResume: 'supervision:resume',
supervisionBatches: 'supervision:batches',
supervisionRun: 'supervision:run',
supervisionGraph: 'supervision:graph',
supervisionSource: 'supervision:source',
supervisionEntityAction: 'supervision:entity-action',
supervisionRelationAction: 'supervision:relation-action',
supervisionSourceContext: 'supervision:source-context',
supervisionContinueContext: 'supervision:continue-context',
supervisionContinue: 'supervision:continue',
supervisionKnowledgePreview: 'supervision:knowledge-preview',
supervisionKnowledgeCommit: 'supervision:knowledge-commit',
supervisionStories: 'supervision:stories',
supervisionStoryAction: 'supervision:story-action',
supervisionRetryStories: 'supervision:retry-stories',
expertsList: 'experts:list',
expertsCreate: 'experts:create',
expertsUpdate: 'experts:update',
expertsRemove: 'experts:remove',
capabilitiesSnapshot: 'capabilities:snapshot',
capabilitiesUpdateObsidianSettings: 'capabilities:obsidian:update',
capabilitiesTestObsidianConnection: 'capabilities:obsidian:test',
capabilitiesSelectObsidianVault: 'capabilities:obsidian:select-vault',
capabilitiesImportSkill: 'capabilities:skill:import',
capabilitiesRemoveSkill: 'capabilities:skill:remove',
capabilitiesToggleSkill: 'capabilities:skill:toggle',
capabilitiesAssignSkill: 'capabilities:skill:assign',
capabilitiesToggleBuiltinMcp: 'capabilities:builtin-mcp:toggle',
capabilitiesAssignBuiltinMcp: 'capabilities:builtin-mcp:assign',
capabilitiesSaveMcp: 'capabilities:mcp:save',
capabilitiesRemoveMcp: 'capabilities:mcp:remove',
capabilitiesTestMcp: 'capabilities:mcp:test',
capabilitiesToggleWebSearch: 'capabilities:web-search:toggle',
capabilitiesTestWebSearch: 'capabilities:web-search:test',
capabilitiesToggleComputer: 'capabilities:computer:toggle',
capabilitiesConfigureComputer: 'capabilities:computer:configure',
capabilitiesDiagnoseComputer: 'capabilities:computer:diagnose',
capabilitiesCreateBrowserProfile: 'capabilities:browser-profile:create',
capabilitiesRenameBrowserProfile: 'capabilities:browser-profile:rename',
capabilitiesDefaultBrowserProfile: 'capabilities:browser-profile:default',
capabilitiesRemoveBrowserProfile: 'capabilities:browser-profile:remove',
runtimeExtensionsSnapshot: 'runtime-extensions:snapshot',
runtimeExtensionsApply: 'runtime-extensions:apply',
contextSelectFiles: 'context:select-files',
contextImportFiles: 'context:import-files',
contextFileSelectionProgress: 'context:file-selection-progress',
contextAddPastedImage: 'context:add-pasted-image',
contextCaptureScreen: 'context:capture-screen',
contextListWindows: 'context:list-windows',
contextCaptureWindow: 'context:capture-window',
contextReadClipboard: 'context:read-clipboard',
contextRemove: 'context:remove',
magicNotesList: 'magic-notes:list',
magicNotesSearch: 'magic-notes:search',
magicNotesGet: 'magic-notes:get',
magicNotesCreate: 'magic-notes:create',
magicNotesUpdate: 'magic-notes:update',
magicNotesDelete: 'magic-notes:delete',
magicNotesRenameTag: 'magic-notes:rename-tag',
magicNotesDeleteTag: 'magic-notes:delete-tag',
magicNotesCreateEntry: 'magic-notes:create-entry',
magicNotesUpdateEntry: 'magic-notes:update-entry',
magicNotesDeleteEntry: 'magic-notes:delete-entry',
magicNotesAnalyze: 'magic-notes:analyze',
magicNotesAnalyzeDraft: 'magic-notes:analyze-draft',
magicNotesAnalysisEvent: 'magic-notes:analysis-event',
magicTodosList: 'magic-todos:list',
magicTodosStatus: 'magic-todos:status',
magicTodosStatusChanged: 'magic-todos:status-changed',
magicNotesChanged: 'magic-notes:changed',
magicTodosUpdate: 'magic-todos:update',
magicTodosAnalyze: 'magic-todos:analyze',
knowledgeSnapshot: 'knowledge:snapshot',
knowledgeCreateLibrary: 'knowledge:library:create',
knowledgeUpdateLibrary: 'knowledge:library:update',
knowledgeDeleteLibrary: 'knowledge:library:delete',
knowledgeReextractGraph: 'knowledge:graph:reextract',
knowledgeSelectFiles: 'knowledge:source:select-files',
knowledgeSelectDirectory: 'knowledge:source:select-directory',
knowledgeImportPaths: 'knowledge:source:import-paths',
knowledgeImportUrl: 'knowledge:source:import-url',
knowledgeSyncSource: 'knowledge:source:sync',
knowledgePauseSource: 'knowledge:source:pause',
knowledgeRetrySource: 'knowledge:source:retry',
knowledgeRemoveSource: 'knowledge:source:remove',
knowledgeSearch: 'knowledge:search',
knowledgeRetrieve: 'knowledge:retrieve',
knowledgeUpdateSettings: 'knowledge:settings:update',
knowledgeListChunks: 'knowledge:chunks:list',
knowledgeUpdateChunk: 'knowledge:chunk:update',
knowledgeDeleteChunk: 'knowledge:chunk:delete',
knowledgeRebuildDocument: 'knowledge:document:rebuild',
knowledgeOpenDocumentSource: 'knowledge:document:open-source',
knowledgeRebuildLibrary: 'knowledge:library:rebuild',
knowledgeCancelRebuild: 'knowledge:library:rebuild:cancel',
knowledgeEmbeddingIndexGet: 'knowledge:embedding-index:get',
knowledgeEmbeddingIndexRebuild: 'knowledge:embedding-index:rebuild',
knowledgeEmbeddingIndexCancel: 'knowledge:embedding-index:cancel',
knowledgeTaskCancel: 'knowledge:task:cancel',
knowledgeTaskRetry: 'knowledge:task:retry',
knowledgeReferenceContext: 'knowledge:reference:context',
knowledgeOpenReferenceSource: 'knowledge:reference:open-source',
knowledgeCreateEntity: 'knowledge:entity:create',
knowledgeUpdateEntity: 'knowledge:entity:update',
knowledgeMoveEntity: 'knowledge:entity:move',
knowledgeDeleteEntity: 'knowledge:entity:delete',
knowledgeMergeEntities: 'knowledge:entity:merge',
knowledgeCreateRelation: 'knowledge:relation:create',
knowledgeUpdateRelation: 'knowledge:relation:update',
knowledgeDeleteRelation: 'knowledge:relation:delete'
} as const