mirror of
https://github.com/getcompanion-ai/co-mono.git
synced 2026-04-15 16:04:03 +00:00
Implement before_agent_start hook event
- Add BeforeAgentStartEvent and BeforeAgentStartEventResult types - Add emitBeforeAgentStart to HookRunner - Call in AgentSession.prompt() before agent.prompt() - Hook can return a message to inject into context (persisted + visible) - Add test hook demonstrating custom message rendering and before_agent_start
This commit is contained in:
parent
bbdc350394
commit
57146de202
6 changed files with 170 additions and 16 deletions
|
|
@ -490,6 +490,29 @@ export class AgentSession {
|
|||
// Expand file-based slash commands if requested
|
||||
const expandedText = expandCommands ? expandSlashCommand(text, [...this._fileCommands]) : text;
|
||||
|
||||
// Emit before_agent_start hook event
|
||||
if (this._hookRunner) {
|
||||
const result = await this._hookRunner.emitBeforeAgentStart(expandedText, options?.images);
|
||||
if (result?.message) {
|
||||
// Append hook message to agent state and session
|
||||
const hookMessage: HookMessage = {
|
||||
role: "hookMessage",
|
||||
customType: result.message.customType,
|
||||
content: result.message.content,
|
||||
display: result.message.display,
|
||||
details: result.message.details,
|
||||
timestamp: Date.now(),
|
||||
};
|
||||
this.agent.appendMessage(hookMessage);
|
||||
this.sessionManager.appendCustomMessageEntry(
|
||||
result.message.customType,
|
||||
result.message.content,
|
||||
result.message.display,
|
||||
result.message.details,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
await this.agent.prompt(expandedText, options?.images);
|
||||
await this.waitForRetry();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue