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:
@@ -46,6 +46,7 @@ import { SpeechModelSettingsSection } from './SpeechModelSettingsSection'
|
||||
import { EmbeddingSettingsSection } from './EmbeddingSettingsSection'
|
||||
import { DocumentParsingSettingsSection } from './DocumentParsingSettingsSection'
|
||||
import { DshMarketplaceSection } from './DshMarketplaceSection'
|
||||
import { RuntimeCustomizationSection } from './RuntimeCustomizationSection'
|
||||
import { PageHeader, SegmentedControl } from './WorkspacePrimitives'
|
||||
import {
|
||||
SettingsCategoryHeader,
|
||||
@@ -1888,6 +1889,17 @@ export function SettingsPanel({
|
||||
</details>
|
||||
</div>
|
||||
)}
|
||||
{agentRuntimeType === 'opencode' && (
|
||||
<RuntimeCustomizationSection
|
||||
onNotify={onNotify}
|
||||
profileId={
|
||||
opencodeModelSource.kind === 'profile'
|
||||
? opencodeModelSource.profileId
|
||||
: undefined
|
||||
}
|
||||
provider="opencode"
|
||||
/>
|
||||
)}
|
||||
|
||||
{agentRuntimeType === 'continue' && (
|
||||
<div className="settings-section">
|
||||
@@ -2096,6 +2108,17 @@ export function SettingsPanel({
|
||||
</details>
|
||||
</div>
|
||||
)}
|
||||
{agentRuntimeType === 'continue' && (
|
||||
<RuntimeCustomizationSection
|
||||
onNotify={onNotify}
|
||||
profileId={
|
||||
continueModelSource.kind === 'profile'
|
||||
? continueModelSource.profileId
|
||||
: undefined
|
||||
}
|
||||
provider="continue"
|
||||
/>
|
||||
)}
|
||||
{agentRuntimeType === 'deepseek-harness' && (
|
||||
<div className="settings-section">
|
||||
<div className="settings-section__title">
|
||||
@@ -2194,6 +2217,17 @@ export function SettingsPanel({
|
||||
</details>
|
||||
</div>
|
||||
)}
|
||||
{agentRuntimeType === 'deepseek-harness' && (
|
||||
<RuntimeCustomizationSection
|
||||
onNotify={onNotify}
|
||||
profileId={
|
||||
deepseekHarnessModelSource.kind === 'profile'
|
||||
? deepseekHarnessModelSource.profileId
|
||||
: undefined
|
||||
}
|
||||
provider="deepseek-harness"
|
||||
/>
|
||||
)}
|
||||
{agentRuntimeType === 'deepseek-harness' && (
|
||||
<DshMarketplaceSection onNotify={onNotify} />
|
||||
)}
|
||||
|
||||
Reference in New Issue
Block a user