refactor(agent): unify agent-scoped event signatures as payload objects
All agent/* and agent-loop/config-start-failed events take one payload object carrying the agent subject; waterfall/serial payloads require a signal and keep next as the final argument. PreStepContext and RequestFailureContext are unfolded into payloads and retired. goal/changed follows the same shape so agentEvents keeps its listener error containment. ReactLoopAgent builds its scope carrier once in the constructor. Regenerates scope resolvers, tool-cordis api catalog, and docs catalogs; updates all affected listeners, tests, and the core-data-structures docs (en + zh).
This commit is contained in:
@@ -76,7 +76,7 @@ export function apply(ctx: Context): void {
|
||||
|
||||
// Before each request, persist everything committed by the preceding step;
|
||||
// the first step's call is an intentional no-op beyond any prompt intake.
|
||||
ctx.on('agent/pre-step', async (agent, _messages, _context, next): Promise<PreStepDecision> => {
|
||||
ctx.on('agent/pre-step', async ({ agent }, next): Promise<PreStepDecision> => {
|
||||
await ctx.sessions.flush(agent.session)
|
||||
return next()
|
||||
})
|
||||
|
||||
@@ -228,7 +228,7 @@ describe('session-checkpoint-policy tool and step boundaries', () => {
|
||||
ctx.on('session/flush', (current) => { flushed.push(current.id) })
|
||||
const signal = new AbortController().signal
|
||||
await agentEvents(ctx, agent).waterfall(
|
||||
'agent/pre-step', [], { turn: 1, step: 1, signal },
|
||||
'agent/pre-step', { messages: [], turn: 1, step: 1, signal },
|
||||
() => Promise.resolve({ kind: 'enter', messages: [] }),
|
||||
)
|
||||
expect(flushed).toEqual([session.id])
|
||||
|
||||
Reference in New Issue
Block a user