Move exec to HookAPI, sessionManager/modelRegistry to HookEventContext
Breaking changes: - HookEventContext now has sessionManager and modelRegistry (moved from SessionEventBase) - HookAPI now has exec() method (moved from HookEventContext/HookCommandContext) - HookRunner constructor takes sessionManager and modelRegistry as required params - Session events no longer include sessionManager/modelRegistry fields Hook code migration: - event.sessionManager -> ctx.sessionManager - event.modelRegistry -> ctx.modelRegistry - ctx.exec() -> pi.exec() Updated: - src/core/hooks/types.ts - type changes - src/core/hooks/runner.ts - constructor, createContext - src/core/hooks/loader.ts - add exec to HookAPI - src/core/sdk.ts - pass sessionManager/modelRegistry to HookRunner - src/core/agent-session.ts - remove sessionManager/modelRegistry from events - src/modes/* - remove setSessionFile calls, update events - examples/hooks/* - update to new API
This commit is contained in:
@@ -369,7 +369,6 @@ export class InteractiveMode {
|
||||
|
||||
// Set UI context on hook runner
|
||||
hookRunner.setUIContext(uiContext, true);
|
||||
hookRunner.setSessionFile(this.session.sessionFile);
|
||||
|
||||
// Subscribe to hook errors
|
||||
hookRunner.onError((error) => {
|
||||
@@ -407,8 +406,6 @@ export class InteractiveMode {
|
||||
// Emit session event
|
||||
await hookRunner.emit({
|
||||
type: "session",
|
||||
sessionManager: this.session.sessionManager,
|
||||
modelRegistry: this.session.modelRegistry,
|
||||
reason: "start",
|
||||
});
|
||||
}
|
||||
@@ -1204,8 +1201,6 @@ export class InteractiveMode {
|
||||
if (hookRunner?.hasHandlers("session")) {
|
||||
await hookRunner.emit({
|
||||
type: "session",
|
||||
sessionManager: this.session.sessionManager,
|
||||
modelRegistry: this.session.modelRegistry,
|
||||
reason: "shutdown",
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user