refactor: narrow synchronous extension contracts

This commit is contained in:
Tianyi Cui
2026-07-13 11:58:55 +08:00
parent f7b9cea733
commit f32cfafa1a
33 changed files with 148 additions and 126 deletions

View File

@@ -116,7 +116,7 @@ describe('scoped tool providers and toolOrder × restriction', () => {
const ctx = await mount()
const scope = await mintScope(ctx, 'child')
const dispose = scope.ctx.systemPrompt.tools(() => ({ schemas: [schema('scoped_tool')] }))
await dispose()
dispose()
const after = await ctx.systemPrompt.assemble({ scope: scopeKeyOf(scope) })
expect(after.tools.map(t => t.name)).toEqual([])
// Re-registering through the same scope starts a fresh layer.

View File

@@ -316,7 +316,7 @@ describe('SystemPrompt', () => {
// registration emits change
expect(changeCount).toBe(1)
await dispose()
dispose()
// disposal emits change again
expect(changeCount).toBe(2)
})
@@ -341,7 +341,7 @@ describe('SystemPrompt', () => {
const dispose = ctx.systemPrompt.section({ name: 'direct', order: 0, text: 'direct section' })
expect(contributed(await ctx.systemPrompt.assemble())).toHaveLength(1)
await dispose()
dispose()
expect(contributed(await ctx.systemPrompt.assemble())).toHaveLength(0)
})
@@ -352,7 +352,7 @@ describe('SystemPrompt', () => {
const dispose = ctx.systemPrompt.tools(() => ({ schemas: [{ name: 'direct-tool', description: '', parameters: {} }] }))
expect((await ctx.systemPrompt.assemble()).tools).toHaveLength(1)
await dispose()
dispose()
expect((await ctx.systemPrompt.assemble()).tools).toHaveLength(0)
})
@@ -370,7 +370,7 @@ describe('SystemPrompt', () => {
// A provider returning undefined records "registered but no value here".
expect((await ctx.systemPrompt.assemble()).variables).toEqual({ who: undefined })
await dispose()
dispose()
expect(changeCount).toBe(2)
expect((await ctx.systemPrompt.assemble()).variables).toEqual({})
})