GoodBuddy Agents / Validate Agent source (push) Canceled after 0s
GoodBuddy Agents / Build Linux arm64 Agent (push) Canceled after 0s
GoodBuddy Agents / Build Linux x64 Agent (push) Canceled after 0s
GoodBuddy Agent Release / Authorize Agent release (push) Canceled after 0s
Cross-platform packages / Validate source (push) Canceled after 0s
Cross-platform packages / windows x64 (push) Canceled after 0s
Cross-platform packages / Publish GitHub and OSS release (push) Canceled after 0s
GoodBuddy Agent Release / Build Linux arm64 compound package (push) Canceled after 0s
GoodBuddy Agent Release / Build Linux x64 compound package (push) Canceled after 0s
GoodBuddy Agent Release / Sign cumulative Agent catalog (push) Canceled after 0s
GoodBuddy Agent Release / Publish Agent to GitHub and OSS (push) Canceled after 0s
Cross-platform packages / Authorize desktop packaging (push) Canceled after 0s
Cross-platform packages / linux arm64 (push) Canceled after 0s
Cross-platform packages / macos arm64 (push) Canceled after 0s
Cross-platform packages / windows arm64 (push) Canceled after 0s
Cross-platform packages / linux x64 (push) Canceled after 0s
Cross-platform packages / macos x64 (push) Canceled after 0s
The desktop runtime still pinned the rc.6 Harness family. It now uses the coherent rc.8 package set, adapts the revised image-attachment limits and error contract, and derives release checks from the lockfile. The managed SSH Agent package remains unchanged. Release note: 内置 DeepSeek Harness 已升级至 0.1.0-rc.8,并适配新版图片附件限制;托管 SSH Agent 包不受影响。
69 lines
2.0 KiB
TypeScript
69 lines
2.0 KiB
TypeScript
import { mkdtemp, realpath } from 'node:fs/promises'
|
|
import { tmpdir } from 'node:os'
|
|
import { join } from 'node:path'
|
|
import { describe, expect, it } from 'vitest'
|
|
import { startControlledDeepSeekHarnessHost } from './deepseek-harness-host'
|
|
|
|
const entrypoint =
|
|
process.env.GOODBUDDY_DSH_PLUGIN_ENTRYPOINT?.trim()
|
|
|
|
describe.skipIf(!entrypoint)(
|
|
'controlled DeepSeek Harness third-party plugin',
|
|
() => {
|
|
it('loads and executes a real marketplace tool with full Execute capability', async () => {
|
|
const workspace = await realpath(
|
|
await mkdtemp(
|
|
join(tmpdir(), 'goodbuddy-harness-marketplace-e2e-')
|
|
)
|
|
)
|
|
const inbound = new TransformStream<
|
|
Record<string, unknown>,
|
|
Record<string, unknown>
|
|
>()
|
|
const outbound = new TransformStream<
|
|
Record<string, unknown>,
|
|
Record<string, unknown>
|
|
>()
|
|
const host = await startControlledDeepSeekHarnessHost({
|
|
workspace,
|
|
dshHome: workspace,
|
|
baseUrl: 'https://api.deepseek.com',
|
|
api: 'openai-completions',
|
|
provider: 'goodbuddy',
|
|
model: 'deepseek-test',
|
|
harnessVersion: '0.1.0-rc.8',
|
|
credentialRefs: ['GOODBUDDY_API_KEY'],
|
|
skillPackages: [],
|
|
extensionPackages: [
|
|
{
|
|
id: 'marketplace-e2e',
|
|
entrypoint: entrypoint!,
|
|
configuration: {}
|
|
}
|
|
],
|
|
stream: {
|
|
readable: inbound.readable,
|
|
writable: outbound.writable
|
|
} as never
|
|
})
|
|
|
|
expect(host.extensionFailures).toEqual([])
|
|
expect(
|
|
host.context.tools.schemas().map((tool) => tool.name)
|
|
).toContain('greet')
|
|
await expect(
|
|
host.context.tools.execute({
|
|
callId: 'marketplace-greet',
|
|
name: 'greet',
|
|
arguments: { name: 'Ada' },
|
|
signal: new AbortController().signal
|
|
} as never)
|
|
).resolves.toMatchObject({
|
|
isError: false,
|
|
value: 'Hello, Ada!'
|
|
})
|
|
await host.dispose()
|
|
})
|
|
}
|
|
)
|