chore: prepare GoodBuddy 0.8.6
Cross-platform packages / Validate source (push) Has been cancelled
Cross-platform packages / ${{ matrix.platform }} ${{ matrix.arch }} (arm64, linux, ubuntu-24.04-arm) (push) Has been cancelled
Cross-platform packages / ${{ matrix.platform }} ${{ matrix.arch }} (arm64, macos, macos-15) (push) Has been cancelled
Cross-platform packages / ${{ matrix.platform }} ${{ matrix.arch }} (arm64, windows, windows-2025) (push) Has been cancelled
Cross-platform packages / ${{ matrix.platform }} ${{ matrix.arch }} (x64, linux, ubuntu-24.04) (push) Has been cancelled
Cross-platform packages / ${{ matrix.platform }} ${{ matrix.arch }} (x64, macos, macos-15-intel) (push) Has been cancelled
Cross-platform packages / ${{ matrix.platform }} ${{ matrix.arch }} (x64, windows, windows-2025) (push) Has been cancelled
Cross-platform packages / Publish GitHub Release (push) Has been cancelled

This commit is contained in:
lofyer
2026-08-07 13:11:45 +08:00
parent 32aba176c8
commit 2c715e5e81
40 changed files with 3079 additions and 358 deletions
+51 -2
View File
@@ -7,7 +7,8 @@ import type {
CapabilitySnapshot,
ComputerCapabilityId,
McpServerInput,
McpServerTestResult
McpServerTestResult,
SkillImportKind
} from './capability-contracts'
import {
assistantIdSchema,
@@ -93,6 +94,29 @@ export const workspaceFileRequestSchema = z
})
.strict()
export const workspaceOpenPathRequestSchema = z
.object({
projectId: assistantIdSchema,
path: workspaceRelativePathSchema,
type: z.enum(['file', 'directory'])
})
.strict()
export const agentQuestionAnswerSchema = z
.array(z.string().trim().min(1).max(2_000))
.max(20)
export const agentQuestionResponseSchema = z
.object({
questionId: z.string().trim().min(1).max(128),
answers: z.array(agentQuestionAnswerSchema).max(4)
})
.strict()
export type AgentQuestionAnswer = z.infer<
typeof agentQuestionAnswerSchema
>
export const conversationIdSchema = z.string().min(1).max(128)
export const agentRequestSchema = z
@@ -648,6 +672,21 @@ export type AgentEvent =
argumentSummary?: string
allowPermanent?: boolean
}
| {
requestId: string
type: 'question'
questionId: string
questions: Array<{
header: string
question: string
options: Array<{
label: string
description: string
}>
multiple: boolean
custom: boolean
}>
}
| {
requestId: string
type: 'artifact'
@@ -873,6 +912,10 @@ export type DesktopApi = {
approvalId: string,
decision: ApprovalDecision
) => Promise<void>
respondQuestion: (
questionId: string,
answers?: AgentQuestionAnswer[]
) => Promise<void>
onEvent: (listener: (event: AgentEvent) => void) => () => void
}
browser: {
@@ -949,6 +992,7 @@ export type DesktopApi = {
input: ProjectCreateInput
) => Promise<AssistantProject>
setArchived: (projectId: string, archived: boolean) => Promise<void>
delete: (projectId: string, confirmation: string) => Promise<void>
}
conversations: {
list: () => Promise<ConversationSnapshot[]>
@@ -964,6 +1008,11 @@ export type DesktopApi = {
projectId: string,
path: string
) => Promise<WorkspaceFilePreview>
openPath: (
projectId: string,
path: string,
type: 'file' | 'directory'
) => Promise<void>
}
tasks: {
list: () => Promise<AssistantTask[]>
@@ -1026,7 +1075,7 @@ export type DesktopApi = {
}
capabilities: {
getSnapshot: () => Promise<CapabilitySnapshot>
importSkill: () => Promise<CapabilitySnapshot>
importSkill: (kind: SkillImportKind) => Promise<CapabilitySnapshot>
removeSkill: (skillId: string) => Promise<CapabilitySnapshot>
setSkillEnabled: (
skillId: string,