From cbda2b9d43dc201db435d6c6251db8c6570a8da8 Mon Sep 17 00:00:00 2001 From: pku-xht Date: Fri, 7 Aug 2026 22:43:21 +0800 Subject: [PATCH] fix(schedule): narrow persistence error operation --- packages/schedule/tool-schedule/src/tools.ts | 2 +- packages/schedule/tool-schedule/src/types.ts | 4 ++-- packages/schedule/tool-schedule/tests/tools.spec.ts | 6 ++++++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/schedule/tool-schedule/src/tools.ts b/packages/schedule/tool-schedule/src/tools.ts index 0f81387f18..1f952e5a56 100644 --- a/packages/schedule/tool-schedule/src/tools.ts +++ b/packages/schedule/tool-schedule/src/tools.ts @@ -71,7 +71,7 @@ const PERSISTENCE_ERROR_SCHEMA = { properties: { code: { type: 'string', required: true, const: 'persistence_uncertain' }, message: { type: 'string', required: true }, - operation: { type: 'string', required: true, enum: ['create', 'list', 'delete', 'dispatch'] }, + operation: { type: 'string', required: true, enum: ['create', 'list', 'delete'] }, id: { type: 'string' }, }, } as const diff --git a/packages/schedule/tool-schedule/src/types.ts b/packages/schedule/tool-schedule/src/types.ts index 5755ad38d2..1840a30949 100644 --- a/packages/schedule/tool-schedule/src/types.ts +++ b/packages/schedule/tool-schedule/src/types.ts @@ -76,8 +76,8 @@ export interface ScheduleReminderPresentation { readonly deliveryMode: ScheduleDeliveryMode } -/** Operations whose persistence barrier may be uncertain. */ -export type SchedulePersistenceOperation = 'create' | 'list' | 'delete' | 'dispatch' +/** Management operations whose persistence barrier may be uncertain. */ +export type SchedulePersistenceOperation = 'create' | 'list' | 'delete' /** Stable error returned for an empty reminder prompt. */ export interface InvalidPromptError { diff --git a/packages/schedule/tool-schedule/tests/tools.spec.ts b/packages/schedule/tool-schedule/tests/tools.spec.ts index cb211990a9..8490e379ab 100644 --- a/packages/schedule/tool-schedule/tests/tools.spec.ts +++ b/packages/schedule/tool-schedule/tests/tools.spec.ts @@ -103,6 +103,12 @@ describe('Schedule tool protocol', () => { const test = await harness() expect(['schedule_create', 'schedule_list', 'schedule_delete'].map(name => test.ctx.tools.get(name)?.name)) .toEqual(['schedule_create', 'schedule_list', 'schedule_delete']) + const outputSchema = test.ctx.tools.get('schedule_create')?.output.schema as { + oneOf?: Array<{ properties?: { code?: { const?: string }; operation?: { enum?: string[] } } }> + } + const persistenceError = outputSchema.oneOf?.find(schema => + schema.properties?.code?.const === 'persistence_uncertain') + expect(persistenceError?.properties?.operation?.enum).toEqual(['create', 'list', 'delete']) for (const name of ['schedule_create', 'schedule_list', 'schedule_delete']) { expect(test.ctx.tools.executionMode({ signal, callId: CallId(name), name, arguments: {}, agent: test.agent })) .toEqual({ kind: 'exclusive' })