feat: Expose BuildSystemPromptOptions on before-agent-start event. (#3473)
Resolves: #3463
This commit is contained in:
@@ -465,6 +465,15 @@ pi.on("before_agent_start", async (event, ctx) => {
|
||||
// event.prompt - user's prompt text
|
||||
// event.images - attached images (if any)
|
||||
// event.systemPrompt - current system prompt
|
||||
// event.systemPromptOptions - structured options used to build the system prompt
|
||||
// .customPrompt - any custom system prompt (from --system-prompt, SYSTEM.md, or custom templates)
|
||||
// .selectedTools - tools currently active in the prompt
|
||||
// .toolSnippets - one-line descriptions for each tool
|
||||
// .promptGuidelines - custom guideline bullets
|
||||
// .appendSystemPrompt - text from --append-system-prompt flags
|
||||
// .cwd - working directory
|
||||
// .contextFiles - AGENTS.md files and other loaded context files
|
||||
// .skills - loaded skills
|
||||
|
||||
return {
|
||||
// Inject a persistent message (stored in session, sent to LLM)
|
||||
@@ -479,6 +488,8 @@ pi.on("before_agent_start", async (event, ctx) => {
|
||||
});
|
||||
```
|
||||
|
||||
The `systemPromptOptions` field gives extensions access to the same structured data Pi uses to build the system prompt. This lets you inspect what Pi has loaded — custom prompts, guidelines, tool snippets, context files, skills — without re-discovering resources or re-parsing flags. Use it when your extension needs to make deep, informed changes to the system prompt while respecting user-provided configuration.
|
||||
|
||||
#### agent_start / agent_end
|
||||
|
||||
Fired once per user prompt.
|
||||
@@ -2320,6 +2331,7 @@ All examples in [examples/extensions/](../examples/extensions/).
|
||||
| `provider-payload.ts` | Inspect payloads and provider response headers | `on("before_provider_request")`, `on("after_provider_response")` |
|
||||
| `system-prompt-header.ts` | Display system prompt info | `on("agent_start")`, `getSystemPrompt` |
|
||||
| `claude-rules.ts` | Load rules from files | `on("session_start")`, `on("before_agent_start")` |
|
||||
| `prompt-customizer.ts` | Add context-aware tool guidance using `systemPromptOptions` | `on("before_agent_start")`, `BuildSystemPromptOptions` |
|
||||
| `file-trigger.ts` | File watcher triggers messages | `sendMessage` |
|
||||
| **Compaction & Sessions** |||
|
||||
| `custom-compaction.ts` | Custom compaction summary | `on("session_before_compact")` |
|
||||
|
||||
Reference in New Issue
Block a user