|
|
há 3 meses atrás | |
|---|---|---|
| .. | ||
| src | há 3 meses atrás | |
| tests | há 3 meses atrás | |
| README.md | há 3 meses atrás | |
| package.json | há 3 meses atrás | |
| tsconfig.json | há 3 meses atrás | |
System prompt assembly registry. Plugins contribute ordered text sections and
tool-schema providers; the agent loop calls assemble() once per step.
SystemPrompt (ctx key: systemPrompt)ctx.systemPrompt.section(section: PromptSection): () => void
Contribute a section. Disposed with the calling fiber.ctx.systemPrompt.tools(provider: () => ToolSchema[]): () => void
Contribute tool schemas (evaluated at each assembly). Disposed with the calling
fiber.ctx.systemPrompt.assemble(): Promise<PromptAssembly>
Assemble the current prompt. Runs through the system-prompt/assemble waterfall.| Event | Mode | Purpose |
|---|---|---|
system-prompt/assemble |
waterfall | Mutate/extend the assembly before it reaches the model |
system-prompt/change |
emit | A section or tool provider was registered or unregistered |
PromptSection — { name, order, text: string | (() => string) }. Sections
are concatenated in ascending order.PromptAssembly — { sections: PromptSection[], tools: ToolSchema[] }.
Tool schemas are part of the assembly by design: "what the model is told it
can do" is one coherent thing, even though adapters transmit schemas as a
separate wire field.renderPrompt(assembly) — joins section texts with blank lines.Merge-extensible: plugins can declare extra fields on PromptAssembly via
declaration merging.
ToolRegistry registers itself as a tool provider
automatically.system-prompt/assemble waterfall: mutate or replace the assembly
(system-prompt configurability, dynamic tool filtering).agent/request seam in dsh-agent).