fix(preset): align minimal agent with RL composition

This commit is contained in:
Yichen Jiang
2026-08-10 18:02:11 +08:00
parent d2321d210a
commit 86d5dd4384
48 changed files with 484 additions and 406 deletions

View File

@@ -38,23 +38,27 @@ export interface Config {
* variables. Empty text drops the section at render, matching the registry.
*/
text: string
/** Make this persona the complete system prompt, suppressing every other section. */
complete?: boolean
}
/** Runtime schema for the persona row. */
export const Config: z<Config> = z.object({
text: z.string().required(),
complete: z.boolean().default(false),
})
/**
* Register the persona section for the mounting context's scope.
* @param ctx - an agent scope context; an unscoped context collides with the
* prompt registry's own persona registration and rejects.
* @param config - the persona text.
* @param config - the persona text and complete-prompt policy.
*/
export function apply(ctx: Context, config: Config): void {
ctx.effect(() => ctx.systemPrompt.section({
name: PERSONA_SECTION,
order: PERSONA_ORDER,
text: config.text,
complete: config.complete ?? false,
}), 'persona.section()')
}

View File

@@ -16,7 +16,8 @@ export const inject = ['invariants']
/**
* No runtime invariant: this row owns no event stream or mutable runtime data — it registers one
* prompt section and the prompt registry owns section identity, shadowing, and disposal.
* prompt section and the prompt registry owns identity, complete-prompt enforcement, shadowing,
* and disposal.
*/
const install: InvariantInstaller = () => {}