feat: add native runtime customization
OpenCode and Continue customization was previously planned but unavailable, and Runtime-native capabilities were not represented consistently across providers. GoodBuddy now provides secure Main-owned customization settings, truthful native inventories, OpenCode Agents and Commands, Continue Rules and Prompts, DSH Web Search/Fetch, MCP Prompt and Resource metadata, and manual compaction where supported. Native capabilities are presented in eleven accessible tabs with Tools separated from Commands, LSP, and Formatters. Tool source and Ask/Execute availability are explicit, external OpenCode remains connection-only, Continue reports unsupported static tool discovery instead of advertising unreachable Skills, and disposable inventory probes avoid retaining background runtimes. Ask remains read-only at the Runtime boundary, Execute keeps the existing authorization controls, and credentials remain confined to Main. Release note: 新增 OpenCode、Continue 与 DeepSeek Harness 的 Runtime 原生定制与真实能力清单;工具来源、Ask/Execute 可用性、上下文压缩和 MCP 元数据现在可清晰查看,同时继续保持 Main 进程凭据保护与现有权限边界。
This commit is contained in:
@@ -15,6 +15,11 @@ import {
|
||||
type KnowledgeSearchReference,
|
||||
type KnowledgeSnapshot,
|
||||
type PastedImageInput,
|
||||
type RuntimeConversationCompactInput,
|
||||
type RuntimeConversationCompactResult,
|
||||
type RuntimeCustomizationSettings,
|
||||
type RuntimeNativeSnapshot,
|
||||
type RuntimeNativeSnapshotInput,
|
||||
type RuntimeSettings,
|
||||
type RuntimeSettingsInput,
|
||||
type RuntimeConfigActionInput,
|
||||
@@ -219,6 +224,11 @@ const desktopApi: DesktopApi = {
|
||||
answers: answers ?? []
|
||||
})
|
||||
},
|
||||
compactConversation: (input: RuntimeConversationCompactInput) =>
|
||||
ipcRenderer.invoke(
|
||||
ipcChannels.agentCompactConversation,
|
||||
input
|
||||
) as Promise<RuntimeConversationCompactResult>,
|
||||
onEvent: (listener) => {
|
||||
const handler = (_event: Electron.IpcRendererEvent, payload: AgentEvent): void =>
|
||||
listener(payload)
|
||||
@@ -876,6 +886,22 @@ const desktopApi: DesktopApi = {
|
||||
action
|
||||
) as Promise<RuntimeExtensionMarketplaceSnapshot>
|
||||
},
|
||||
runtimeCustomization: {
|
||||
getSettings: () =>
|
||||
ipcRenderer.invoke(
|
||||
ipcChannels.runtimeCustomizationGet
|
||||
) as Promise<RuntimeCustomizationSettings>,
|
||||
updateSettings: (settings: RuntimeCustomizationSettings) =>
|
||||
ipcRenderer.invoke(
|
||||
ipcChannels.runtimeCustomizationUpdate,
|
||||
settings
|
||||
) as Promise<RuntimeCustomizationSettings>,
|
||||
getNativeSnapshot: (input: RuntimeNativeSnapshotInput) =>
|
||||
ipcRenderer.invoke(
|
||||
ipcChannels.runtimeNativeSnapshot,
|
||||
input
|
||||
) as Promise<RuntimeNativeSnapshot>
|
||||
},
|
||||
context: {
|
||||
selectFiles: () =>
|
||||
ipcRenderer.invoke(
|
||||
|
||||
Reference in New Issue
Block a user