Files
paseo/plugin-examples/lifecycle-logger/index.server.ts
T
Mohamed Boudra 9c8d775895 Let plugins customize agent creation and observe lifecycle events (#4435)
* feat(plugins): expose agent and workspace lifecycle hooks

* test(plugins): verify lifecycle examples with version requirements

* fix(plugins): publish archive hooks for closed agents

* test(plugins): remove diagnostic catch from lifecycle test

* refactor(plugins): define hook handlers in lifecycle module
2026-09-07 19:17:42 +02:00

54 lines
1.3 KiB
TypeScript

import type { PluginServerContext } from "@getpaseo/plugin";
import { logHook } from "./server/log";
export default function contribute(server: PluginServerContext) {
server.before("workspace.create", ({ request }) => {
logHook("before workspace.create", { request });
return request;
});
server.on("workspace.created", (event) => {
logHook("workspace.created", event);
});
server.on("workspace.archived", (event) => {
logHook("workspace.archived", event);
});
server.before("agent.create", ({ request }) => {
logHook("before agent.create", { request });
return request;
});
server.before("agent.session_open", ({ request }) => {
logHook("before agent.session_open", { request });
return request;
});
server.on("agent.created", (event) => {
logHook("agent.created", event);
});
server.on("agent.turn_started", (event) => {
logHook("agent.turn_started", event);
});
server.on("agent.turn_ended", (event) => {
logHook("agent.turn_ended", event);
});
server.on("agent.permission_requested", (event) => {
logHook("agent.permission_requested", event);
});
server.on("agent.permission_resolved", (event) => {
logHook("agent.permission_resolved", event);
});
server.on("agent.archived", (event) => {
logHook("agent.archived", event);
});
return () => {};
}