43e1f82303
ExtractFn = (schema, prompt, ctx) => Promise<T> extractPrompt stays in RoleDefinition (definition layer), not in context (state layer). Callers pass their own prompt — engine uses roleDef.extractPrompt, cursor agent uses its own. 小橘 <xiaoju@shazhou.work>