chore: prepare GoodBuddy 0.8.2
Cross-platform packages / Validate source (push) Waiting to run
Cross-platform packages / ${{ matrix.platform }} ${{ matrix.arch }} (arm64, macos, macos-15) (push) Blocked by required conditions
Cross-platform packages / ${{ matrix.platform }} ${{ matrix.arch }} (arm64, windows, windows-2025) (push) Blocked by required conditions
Cross-platform packages / ${{ matrix.platform }} ${{ matrix.arch }} (x64, linux, ubuntu-24.04) (push) Blocked by required conditions
Cross-platform packages / ${{ matrix.platform }} ${{ matrix.arch }} (x64, macos, macos-15-intel) (push) Blocked by required conditions
Cross-platform packages / ${{ matrix.platform }} ${{ matrix.arch }} (x64, windows, windows-2025) (push) Blocked by required conditions
Cross-platform packages / Publish GitHub Release (push) Blocked by required conditions
Cross-platform packages / ${{ matrix.platform }} ${{ matrix.arch }} (arm64, linux, ubuntu-24.04-arm) (push) Blocked by required conditions
Cross-platform packages / Validate source (push) Waiting to run
Cross-platform packages / ${{ matrix.platform }} ${{ matrix.arch }} (arm64, macos, macos-15) (push) Blocked by required conditions
Cross-platform packages / ${{ matrix.platform }} ${{ matrix.arch }} (arm64, windows, windows-2025) (push) Blocked by required conditions
Cross-platform packages / ${{ matrix.platform }} ${{ matrix.arch }} (x64, linux, ubuntu-24.04) (push) Blocked by required conditions
Cross-platform packages / ${{ matrix.platform }} ${{ matrix.arch }} (x64, macos, macos-15-intel) (push) Blocked by required conditions
Cross-platform packages / ${{ matrix.platform }} ${{ matrix.arch }} (x64, windows, windows-2025) (push) Blocked by required conditions
Cross-platform packages / Publish GitHub Release (push) Blocked by required conditions
Cross-platform packages / ${{ matrix.platform }} ${{ matrix.arch }} (arm64, linux, ubuntu-24.04-arm) (push) Blocked by required conditions
This commit is contained in:
@@ -107,4 +107,57 @@ describe('SubagentService', () => {
|
||||
)
|
||||
await service.dispose()
|
||||
})
|
||||
|
||||
it('uses an expert model profile and falls back to the default runtime', async () => {
|
||||
const calls: string[] = []
|
||||
const createRuntime = (label: string): AgentRuntime =>
|
||||
({
|
||||
run: async function* (request: AgentExecutionRequest) {
|
||||
calls.push(label)
|
||||
yield {
|
||||
requestId: request.requestId,
|
||||
type: 'text',
|
||||
delta: label
|
||||
} as const
|
||||
yield { requestId: request.requestId, type: 'done' } as const
|
||||
},
|
||||
releaseConversation: vi.fn(async () => undefined),
|
||||
dispose: vi.fn(async () => undefined)
|
||||
}) as unknown as AgentRuntime
|
||||
const defaultRuntime = createRuntime('default')
|
||||
const profileRuntime = createRuntime('profile')
|
||||
const profileId = '00000000-0000-4000-8000-000000000002'
|
||||
const service = new SubagentService(
|
||||
defaultRuntime,
|
||||
database() as never,
|
||||
new SubagentScheduler({ timeoutMs: 1_000 }),
|
||||
new Map([[profileId, profileRuntime]])
|
||||
)
|
||||
|
||||
const selected = await service.run({
|
||||
parentRequest,
|
||||
expert: { ...expert, modelProfileId: profileId },
|
||||
routingMode: 'manual',
|
||||
signal: new AbortController().signal,
|
||||
onEvent: vi.fn()
|
||||
})
|
||||
const fallback = await service.run({
|
||||
parentRequest: {
|
||||
...parentRequest,
|
||||
requestId: '00000000-0000-4000-8000-000000000011'
|
||||
},
|
||||
expert: {
|
||||
...expert,
|
||||
modelProfileId: '00000000-0000-4000-8000-000000000099'
|
||||
},
|
||||
routingMode: 'manual',
|
||||
signal: new AbortController().signal,
|
||||
onEvent: vi.fn()
|
||||
})
|
||||
|
||||
expect(selected.output).toBe('profile')
|
||||
expect(fallback.output).toBe('default')
|
||||
expect(calls).toEqual(['profile', 'default'])
|
||||
await service.dispose()
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user