/** * Generated scoped-event routing-subject resolvers for dsh-invariants. * Do not edit by hand; run `pnpm run gen-scoped-events`. * * @module @deepseek-ai/dsh-invariants/scoped-events.generated */ import type { Events } from 'cordis' import type { Scoped } from '@deepseek-ai/dsh-scope' import type {} from '@deepseek-ai/dsh-agent' import type {} from '@deepseek-ai/dsh-session' import type {} from '@deepseek-ai/dsh-subagent' import type {} from '@deepseek-ai/dsh-system-prompt' import type {} from '@deepseek-ai/dsh-tools' import type {} from '@deepseek-ai/dsh-user-approval' type ScopedEventName = { [K in keyof Events]: ThisParameterType extends Scoped ? K : never }[keyof Events] type ScopedSubjectResolver = (args: readonly unknown[]) => unknown function adapt( resolver: (args: Parameters) => unknown, ): ScopedSubjectResolver { return args => resolver(args as Parameters) } const scopedSubjectResolvers = Object.freeze({ 'agent/created': adapt<'agent/created'>(args => args[0]), 'agent/disposed': adapt<'agent/disposed'>(args => args[0]), 'agent/error': adapt<'agent/error'>(args => args[0]), 'agent/pre-step': adapt<'agent/pre-step'>(args => args[0]), 'agent/prompt-submit': adapt<'agent/prompt-submit'>(args => args[0]), 'agent/queued': adapt<'agent/queued'>(args => args[0]), 'agent/request': adapt<'agent/request'>(args => args[0]), 'agent/session-prefix': adapt<'agent/session-prefix'>(args => args[0]), 'agent/session-start': adapt<'agent/session-start'>(args => args[0]), 'agent/status': adapt<'agent/status'>(args => args[0]), 'agent/step-result': adapt<'agent/step-result'>(args => args[0]), 'agent/turn-continuation': adapt<'agent/turn-continuation'>(args => args[0]), 'agent/turn-stop': adapt<'agent/turn-stop'>(args => args[0]), 'approval/request': adapt<'approval/request'>(args => args[0].agent), 'session/created': null, 'session/disposed': null, 'session/event': null, 'session/flush': null, 'subagent/end': null, 'subagent/start': null, 'system-prompt/assemble': adapt<'system-prompt/assemble'>(args => args[1].scope), 'tools/execute': adapt<'tools/execute'>(args => args[0].agent), 'tools/post-execute': adapt<'tools/post-execute'>(args => args[0].agent), 'tools/pre-execute': adapt<'tools/pre-execute'>(args => args[0].agent), 'tools/result': adapt<'tools/result'>(args => args[0].agent), } as const satisfies Readonly>) const scopedSubjectResolverIndex: Readonly> = scopedSubjectResolvers /** * Resolve the routing key named by one scoped event payload. A null * resolver means the payload cannot expose its external routing key, so the * invariant checks carrier presence only. * @param event - runtime Cordis event name. * @returns the generated subject resolver, null for presence-only, * or undefined when the event is not scope-filtered. */ export function scopedSubjectResolverFor(event: string): ScopedSubjectResolver | null | undefined { return scopedSubjectResolverIndex[event] }