mirror of
https://github.com/getpaseo/paseo.git
synced 2026-10-21 16:52:40 +00:00
* feat(plugins): unify source installation and simplify plugin settings * feat(plugins): install npm sources and review CLI updates Treat install selectors as one-time choices. Keep source identity separate from the installed revision, and resolve ordinary updates from the current upstream default. npm only acquires directories; plugin loading remains independent of npm. * fix(plugins): preserve CLI diagnostics and exercise reviewed updates Move new source capability coverage to real browser journeys. Update the requirements regression to exercise preview and apply, and preserve the existing duplicate-selector diagnostic across positional option scopes. * test(plugins): remove unused pending helper * test(plugins): pack registry fixtures with the Windows command runner * test(plugins): assert failed client contribution setup * docs(plugins): consolidate guides and document npm publishing * docs(plugins): introduce publishing choices before npm instructions * test(plugins): own browser journey cleanup in a fixture * feat(plugins): prepare scaffolded packages for publishing
37 lines
2.0 KiB
Markdown
37 lines
2.0 KiB
Markdown
# Lifecycle actions
|
|
|
|
Small callbacks using the existing SDK:
|
|
|
|
- Send `Try again.` when the latest output contains `out of credits`.
|
|
- Decline a shell request matching `rm -rf`; approve exactly `git status`; leave other requests alone.
|
|
- Inject `PASEO_HOOK_CREATE_EXAMPLE=created` on creation and `PASEO_HOOK_OPEN_EXAMPLE=opened` on each session opening.
|
|
- Change requested Codex agents to Claude Haiku before creation.
|
|
- Create a worktree when a directory creation request is titled `Isolated lifecycle example`.
|
|
|
|
This is a demonstration plugin: installing it enables all these behaviors on its host. Install it
|
|
alongside `lifecycle-logger` on a test daemon with plugins enabled:
|
|
|
|
```bash
|
|
paseo plugin install /absolute/path/to/plugin-examples/lifecycle-actions
|
|
paseo plugin install /absolute/path/to/plugin-examples/lifecycle-logger
|
|
paseo plugin logs lifecycle-logger
|
|
```
|
|
|
|
Outside the Paseo repository, `server/inspect.ts` needs `@getpaseo/protocol` installed for its
|
|
type imports. Add it to your plugin development dependencies at the same version as
|
|
`@getpaseo/plugin` before installing this example.
|
|
|
|
Copy the callbacks you need into your own plugin. The follow-up example sends a new message; it does
|
|
not replay attachments or undo previous tool effects. If the provider keeps returning the matching
|
|
phrase, it keeps sending follow-ups. Add limits or delay in your plugin when your workflow needs them.
|
|
The command regex illustrates a policy; it does not parse shell syntax or cover every deletion command.
|
|
|
|
`server/inspect.ts` joins provider text chunks and excludes earlier turns and the current user prompt
|
|
from the phrase match. The failing-first regression test records the split text observed with a real
|
|
Claude agent.
|
|
|
|
See [agent configuration](../agent-configuration) for a focused example that injects MCP servers and
|
|
changes Codex sandbox and approval options while preserving other settings.
|
|
|
|
See the [lifecycle reference](../../public-docs/plugins/reference.md#lifecycle-hooks) for the API.
|