@adonis-agora/agent 0.58.1 → 0.60.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/CHANGELOG.md +71 -0
  2. package/dist/providers/agent_provider.d.ts.map +1 -1
  3. package/dist/providers/agent_provider.js +28 -6
  4. package/dist/providers/agent_provider.js.map +1 -1
  5. package/dist/src/agent-deps-factory.d.ts +35 -1
  6. package/dist/src/agent-deps-factory.d.ts.map +1 -1
  7. package/dist/src/agent-deps-factory.js +81 -0
  8. package/dist/src/agent-deps-factory.js.map +1 -1
  9. package/dist/src/agent-loop.d.ts +8 -2
  10. package/dist/src/agent-loop.d.ts.map +1 -1
  11. package/dist/src/agent-loop.js +105 -18
  12. package/dist/src/agent-loop.js.map +1 -1
  13. package/dist/src/agent-service.d.ts +40 -5
  14. package/dist/src/agent-service.d.ts.map +1 -1
  15. package/dist/src/agent-service.js +110 -22
  16. package/dist/src/agent-service.js.map +1 -1
  17. package/dist/src/chat-queue-service.d.ts +18 -2
  18. package/dist/src/chat-queue-service.d.ts.map +1 -1
  19. package/dist/src/chat-queue-service.js +24 -2
  20. package/dist/src/chat-queue-service.js.map +1 -1
  21. package/dist/src/index.d.ts +2 -2
  22. package/dist/src/index.d.ts.map +1 -1
  23. package/dist/src/index.js +1 -1
  24. package/dist/src/index.js.map +1 -1
  25. package/dist/src/lucid-token-stream-sink.d.ts.map +1 -1
  26. package/dist/src/lucid-token-stream-sink.js +11 -4
  27. package/dist/src/lucid-token-stream-sink.js.map +1 -1
  28. package/dist/src/personas.d.ts +43 -1
  29. package/dist/src/personas.d.ts.map +1 -1
  30. package/dist/src/personas.js +83 -0
  31. package/dist/src/personas.js.map +1 -1
  32. package/dist/src/spi/agent-store.d.ts +13 -1
  33. package/dist/src/spi/agent-store.d.ts.map +1 -1
  34. package/dist/src/spi/agent-store.js.map +1 -1
  35. package/dist/src/spi/chat-queue.d.ts +8 -0
  36. package/dist/src/spi/chat-queue.d.ts.map +1 -1
  37. package/dist/src/spi/chat-queue.js +1 -0
  38. package/dist/src/spi/chat-queue.js.map +1 -1
  39. package/dist/src/stores/lucid-confirm-tokens.d.ts.map +1 -1
  40. package/dist/src/stores/lucid-confirm-tokens.js +1 -12
  41. package/dist/src/stores/lucid-confirm-tokens.js.map +1 -1
  42. package/dist/src/stores/lucid-governance-queries.d.ts +1 -1
  43. package/dist/src/stores/lucid-governance-queries.d.ts.map +1 -1
  44. package/dist/src/stores/lucid-governance-queries.js +3 -9
  45. package/dist/src/stores/lucid-governance-queries.js.map +1 -1
  46. package/dist/src/stores/lucid-schema.d.ts +16 -0
  47. package/dist/src/stores/lucid-schema.d.ts.map +1 -1
  48. package/dist/src/stores/lucid-schema.js +92 -22
  49. package/dist/src/stores/lucid-schema.js.map +1 -1
  50. package/dist/src/stores/lucid.d.ts +13 -0
  51. package/dist/src/stores/lucid.d.ts.map +1 -1
  52. package/dist/src/stores/lucid.js +62 -27
  53. package/dist/src/stores/lucid.js.map +1 -1
  54. package/dist/src/stores/sql-dialect.d.ts +18 -0
  55. package/dist/src/stores/sql-dialect.d.ts.map +1 -0
  56. package/dist/src/stores/sql-dialect.js +32 -0
  57. package/dist/src/stores/sql-dialect.js.map +1 -0
  58. package/dist/src/testing/chat-queue-store-contract.d.ts.map +1 -1
  59. package/dist/src/testing/chat-queue-store-contract.js +3 -0
  60. package/dist/src/testing/chat-queue-store-contract.js.map +1 -1
  61. package/dist/src/testing/in-memory-store.d.ts +1 -0
  62. package/dist/src/testing/in-memory-store.d.ts.map +1 -1
  63. package/dist/src/testing/in-memory-store.js +8 -1
  64. package/dist/src/testing/in-memory-store.js.map +1 -1
  65. package/dist/src/thread-persona.d.ts +7 -0
  66. package/dist/src/thread-persona.d.ts.map +1 -0
  67. package/dist/src/thread-persona.js +12 -0
  68. package/dist/src/thread-persona.js.map +1 -0
  69. package/dist/src/tool-registry.d.ts +11 -2
  70. package/dist/src/tool-registry.d.ts.map +1 -1
  71. package/dist/src/tool-registry.js +8 -2
  72. package/dist/src/tool-registry.js.map +1 -1
  73. package/dist/src/types.d.ts +69 -5
  74. package/dist/src/types.d.ts.map +1 -1
  75. package/package.json +9 -2
  76. package/skills/agent-personas-agents/SKILL.md +36 -8
@@ -1,3 +1,4 @@
1
+ import { defaultPersonaOf, findPersona, intersectAllowLists, PersonaNotFoundError, personaCatalogEntry, resolvePersonaAlias, } from './personas.js';
1
2
  /** The synthesized `agent`-kind tool name for an edge to `target`: `ask_<target>`, or `start_<target>` for a detached one. */
2
3
  export function delegateToolName(target, options = {}) {
3
4
  const slug = target.replace(/[^a-zA-Z0-9]+/g, '_');
@@ -137,8 +138,67 @@ export class AgentDepsFactory {
137
138
  }
138
139
  return [...(definition.tools ?? []), ...delegated];
139
140
  }
141
+ /** Is `name` a registered agent — or the implicit default one? */
142
+ isAgent(name) {
143
+ return name === this.defaultAgentName() || this.config.agents.get(name) !== undefined;
144
+ }
145
+ /**
146
+ * The agent a name stands for: itself when it is a registered agent (or unknown — the bare
147
+ * assistant), else the agent whose persona took the name over ({@link Persona.aliases}) and that
148
+ * persona.
149
+ */
150
+ resolveAgent(name) {
151
+ if (this.isAgent(name)) {
152
+ return { agentName: name };
153
+ }
154
+ const alias = resolvePersonaAlias(this.agentDefinitions(), name);
155
+ return alias === undefined
156
+ ? { agentName: name }
157
+ : { agentName: alias.agent, persona: alias.persona };
158
+ }
159
+ /** `agentName`'s personas as a picker reads them. Empty when it declares none. */
160
+ personaCatalog(agentName) {
161
+ return (this.config.agents.get(agentName)?.personas ?? []).map(personaCatalogEntry);
162
+ }
163
+ /** The persona `agentName` runs under when nothing names one. Undefined → none. */
164
+ defaultPersona(agentName) {
165
+ return defaultPersonaOf(this.config.agents.get(agentName));
166
+ }
167
+ /** Does `agentName` declare a persona `id`? */
168
+ hasPersona(agentName, id) {
169
+ return findPersona(this.config.agents.get(agentName), id) !== undefined;
170
+ }
171
+ /**
172
+ * The persona a turn of `agentName` runs under, most specific first: the one the send names
173
+ * (refused with {@link PersonaNotFoundError} when the agent does not declare it), else the thread's
174
+ * pinned one when this agent declares it, else the agent's default. Undefined → none.
175
+ */
176
+ resolvePersona(args) {
177
+ if (args.requested !== undefined) {
178
+ if (!this.hasPersona(args.agentName, args.requested)) {
179
+ throw new PersonaNotFoundError(args.agentName, args.requested);
180
+ }
181
+ return args.requested;
182
+ }
183
+ const pinned = args.threadPersona ?? undefined;
184
+ if (pinned !== undefined && this.hasPersona(args.agentName, pinned)) {
185
+ return pinned;
186
+ }
187
+ return this.defaultPersona(args.agentName);
188
+ }
140
189
  forAgent(agentName) {
141
190
  const name = agentName ?? this.defaultAgentName();
191
+ // A name a persona took over (`Persona.aliases`): a run journaled under the old agent name — or a
192
+ // caller still naming it — is served by the agent that owns the persona, with it applied.
193
+ if (agentName !== undefined && !this.isAgent(agentName)) {
194
+ const alias = resolvePersonaAlias(this.agentDefinitions(), agentName);
195
+ const persona = alias === undefined
196
+ ? undefined
197
+ : findPersona(this.config.agents.get(alias.agent), alias.persona);
198
+ if (alias !== undefined && persona !== undefined) {
199
+ return this.withPersona(this.forAgent(alias.agent), persona);
200
+ }
201
+ }
142
202
  const definition = this.config.agents.get(name);
143
203
  const personas = new Map();
144
204
  for (const persona of definition?.personas ?? []) {
@@ -195,5 +255,26 @@ export class AgentDepsFactory {
195
255
  ...(definition?.intake !== undefined ? { intake: definition.intake } : {}),
196
256
  };
197
257
  }
258
+ /**
259
+ * A persona baked into an agent's deps — how a run journaled under an agent name that a persona has
260
+ * since taken over ({@link Persona.aliases}) is served. That run names no persona of its own (it
261
+ * predates the fold, and its input cannot change), so the persona applies the way the old agent's
262
+ * own config did: as config, re-read on every replay, with no checkpoint of its own.
263
+ */
264
+ withPersona(deps, persona) {
265
+ const base = deps.systemPrompt;
266
+ const resolve = async (prompt, ctx) => typeof prompt === 'function' ? prompt(ctx) : prompt;
267
+ const own = persona.systemPrompt;
268
+ const systemPrompt = async (ctx) => {
269
+ const scoped = { ...ctx, persona };
270
+ if (own === undefined) {
271
+ return resolve(base, scoped);
272
+ }
273
+ const basePrompt = typeof own === 'function' ? await resolve(base, scoped) : '';
274
+ return resolve(own, { ...scoped, basePrompt });
275
+ };
276
+ const toolAllowList = intersectAllowLists(deps.toolAllowList, persona.allowedTools);
277
+ return { ...deps, systemPrompt, ...(toolAllowList !== undefined ? { toolAllowList } : {}) };
278
+ }
198
279
  }
199
280
  //# sourceMappingURL=agent-deps-factory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-deps-factory.js","sourceRoot":"","sources":["../../src/agent-deps-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-deps-factory.js","sourceRoot":"","sources":["../../src/agent-deps-factory.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ import type { AiToolCtx } from './spi/tool.js';
16
16
  import type { AgentStreamErrorCode, AgentStreamEvent } from './stream-events.js';
17
17
  import { type ToolRegistry } from './tool-registry.js';
18
18
  import { type ToolTransientRetrySetting } from './tool-retry.js';
19
- import type { Actor, AgentRunInput, Decision, PromptBuilder, ToolCallRequest, ToolDefinition, ToolResult } from './types.js';
19
+ import type { Actor, AgentRunInput, Decision, Persona, PromptBuilder, ToolCallRequest, ToolDefinition, ToolResult } from './types.js';
20
20
  export interface AgentLoopDeps<TOutput = unknown> {
21
21
  model: ModelProvider;
22
22
  store: AgentStore;
@@ -49,6 +49,12 @@ export interface AgentLoopDeps<TOutput = unknown> {
49
49
  host?: unknown;
50
50
  /** Agent-level tool allow-list (intersected with the persona's). Undefined → all tools. */
51
51
  toolAllowList?: string[];
52
+ /**
53
+ * The agent's personas, by id. Read ONLY when the run names one by id (`AgentRunInput.persona`),
54
+ * and then only once, inside the `persona:resolve` checkpoint — so a replay runs under the persona
55
+ * the turn started with even after this changed. Undefined → no personas.
56
+ */
57
+ personas?: ReadonlyMap<string, Persona>;
52
58
  /**
53
59
  * How many agent→agent delegations deep a chain may go. Defaults to {@link MAX_DELEGATION_DEPTH}.
54
60
  *
@@ -429,5 +435,5 @@ export interface AgentLoopResult<TOutput = unknown> {
429
435
  * It drives the model→tools→model iteration; the runner supplies the `step`/`awaitApproval`
430
436
  * hooks that make the same loop body either in-process or a replay-safe durable workflow.
431
437
  */
432
- export declare function runAgentLoop<TOutput = unknown>(boundDeps: AgentLoopDeps<TOutput>, input: AgentRunInput, hooks: AgentLoopHooks): Promise<AgentLoopResult<TOutput>>;
438
+ export declare function runAgentLoop<TOutput = unknown>(boundDeps: AgentLoopDeps<TOutput>, requested: AgentRunInput, hooks: AgentLoopHooks): Promise<AgentLoopResult<TOutput>>;
433
439
  //# sourceMappingURL=agent-loop.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../../src/agent-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../../src/agent-loop.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { detachedDelivered, detachedStarted, } from './delegation.js';
3
3
  import { publishAgentDelegated, publishAgentMessage, publishAgentRetrieved, publishAgentRunFinished, publishAgentRunStarted, publishAgentToolCall, publishAgentToolRetry, spannedAgent, } from './diagnostics.js';
4
4
  import { ASK_TOOL_NAME, askInputSchema, askToolDefinition, DEFAULT_INTAKE_PREAMBLE, isHumanDecision, normalizeElicitationReply, settleElicitation, } from './elicitation.js';
5
5
  import { buildMemoryBlock, offerMemories, REMEMBER_TOOL_NAME, rememberInputSchema, rememberToolDefinition, writeMemory, } from './memory.js';
6
+ import { intersectAllowLists, personaFromTurn } from './personas.js';
6
7
  import { createFrameBuffer, createIncrementalGate, gateTail, releaseGatedFrames, resolveGateLookback, resolveOutputGateMode, runInputProcessors, runOutputProcessors, } from './processors.js';
7
8
  import { isReplayIntegrityError } from './replay-integrity.js';
8
9
  import { buildSkillsBlock, loadSkill, offerSkills, SKILL_TOOL_NAME, skillInputSchema, skillToolDefinition, } from './skills.js';
@@ -75,21 +76,84 @@ async function resolvePrompt(prompt, ctx) {
75
76
  return typeof prompt === 'function' ? prompt(ctx) : prompt;
76
77
  }
77
78
  /**
78
- * The effective system prompt for a turn: resolve the agent's base prompt first, then — if the
79
- * request selected a persona — resolve the persona prompt with that base as `basePrompt`, so a
80
- * persona builder can wrap the agent's base rather than discard it.
79
+ * The effective system prompt for a turn. A persona that carries a prompt stands in for the base —
80
+ * already resolved, with the base it may wrap, in {@link resolveTurnPersona} (inside `persona:resolve`
81
+ * for a run that names its persona by id), so a replay reads back the exact text the turn started
82
+ * with. Otherwise the agent's base prompt, which sees the persona too.
81
83
  */
82
- async function resolveSystemPrompt(deps, input) {
83
- const base = {
84
+ async function resolveSystemPrompt(deps, input, persona) {
85
+ if (persona?.prompt !== undefined) {
86
+ return persona.prompt;
87
+ }
88
+ return resolvePrompt(deps.systemPrompt, { ...promptContext(input, persona), basePrompt: '' });
89
+ }
90
+ /** What every prompt builder of a turn is handed, short of `basePrompt`. */
91
+ function promptContext(input, persona) {
92
+ return {
84
93
  actor: input.actor,
85
- ...(input.persona !== undefined ? { persona: input.persona } : {}),
94
+ ...(persona !== undefined ? { persona: personaFromTurn(persona) } : {}),
86
95
  ...(input.pageContext !== undefined ? { pageContext: input.pageContext } : {}),
87
96
  };
88
- const basePrompt = await resolvePrompt(deps.systemPrompt, { ...base, basePrompt: '' });
89
- if (input.persona === undefined) {
90
- return basePrompt;
97
+ }
98
+ /**
99
+ * Freeze `persona` for this turn: its id, label and allow-list, and its prompt resolved against the
100
+ * agent's base prompt. A flat prompt stands in for the base; a builder is handed the base as
101
+ * `ctx.basePrompt`; no prompt → the base, resolved per turn like any agent's.
102
+ */
103
+ async function freezePersona(deps, input, persona) {
104
+ const ref = {
105
+ id: persona.id,
106
+ label: persona.label,
107
+ ...(persona.allowedTools !== undefined ? { allowedTools: [...persona.allowedTools] } : {}),
108
+ };
109
+ if (persona.systemPrompt === undefined) {
110
+ return ref;
91
111
  }
92
- return resolvePrompt(input.persona.systemPrompt, { ...base, basePrompt });
112
+ const ctx = promptContext(input, ref);
113
+ const basePrompt = typeof persona.systemPrompt === 'function'
114
+ ? await resolvePrompt(deps.systemPrompt, { ...ctx, basePrompt: '' })
115
+ : '';
116
+ return { ...ref, prompt: await resolvePrompt(persona.systemPrompt, { ...ctx, basePrompt }) };
117
+ }
118
+ /**
119
+ * The `persona:resolve` checkpoint's body: the persona the run names, looked up in this process's
120
+ * config and FROZEN ({@link freezePersona}). `null` when the agent no longer declares it, which the
121
+ * turn runs as no persona at all.
122
+ *
123
+ * Reached only for a run whose input names a persona by id, and every such run was started by a
124
+ * release that has this checkpoint; a run started before it names none (or carries the whole persona
125
+ * in its input), spends no position here, and replays on the sequence it recorded.
126
+ */
127
+ async function resolveTurnPersona(deps, input, id) {
128
+ const persona = deps.personas?.get(id);
129
+ return persona === undefined ? null : freezePersona(deps, input, persona);
130
+ }
131
+ /**
132
+ * A persona handed over WHOLE in the run's input — by a direct caller, or recorded so by a release
133
+ * before 0.60. Applied as given, with no checkpoint (its journal has none). Its input went through
134
+ * JSON on a durable run, which drops a builder prompt, so a prompt the input lost is looked up by id
135
+ * in this process's config.
136
+ */
137
+ async function inlineTurnPersona(deps, input, persona) {
138
+ const prompt = persona.systemPrompt ?? deps.personas?.get(persona.id)?.systemPrompt;
139
+ return freezePersona(deps, input, {
140
+ ...persona,
141
+ ...(prompt !== undefined ? { systemPrompt: prompt } : {}),
142
+ });
143
+ }
144
+ /** `{ persona: id }` for a message the turn writes, when it runs under one. */
145
+ function personaProvenance(input) {
146
+ const persona = personaOf(input);
147
+ return persona === undefined ? {} : { persona: persona.id };
148
+ }
149
+ /** `{ persona }` for a tool's context, when the turn runs under one. */
150
+ function personaContext(input) {
151
+ const persona = personaOf(input);
152
+ return persona === undefined ? {} : { persona };
153
+ }
154
+ /** The turn's persona as a whole {@link Persona} — what the run input carries once it is resolved. */
155
+ function personaOf(input) {
156
+ return typeof input.persona === 'object' ? input.persona : undefined;
93
157
  }
94
158
  /** An `agent`-kind tool's input is `{ task }` by convention; fall back to a JSON dump. */
95
159
  function extractTask(input) {
@@ -185,7 +249,7 @@ async function resolveDelegation(deps, input, call, spec) {
185
249
  // resolvable spec must fail closed rather than fall through.
186
250
  throw new ToolForbiddenError(call.name);
187
251
  }
188
- const offeredAllow = intersectAllow(input.persona?.allowedTools, deps.toolAllowList);
252
+ const offeredAllow = intersectAllow(personaOf(input)?.allowedTools, deps.toolAllowList);
189
253
  if (offeredAllow !== undefined && !offeredAllow.includes(call.name)) {
190
254
  throw new ToolForbiddenError(call.name);
191
255
  }
@@ -494,7 +558,7 @@ async function runIntake(args) {
494
558
  content: preamble,
495
559
  runId: hooks.runId,
496
560
  toolCalls: [call],
497
- ...(input.persona !== undefined ? { persona: input.persona.id } : {}),
561
+ ...personaProvenance(input),
498
562
  });
499
563
  await deps.store.recordToolCall({
500
564
  toolCallId: request.id,
@@ -556,7 +620,7 @@ function elicitationContext(deps, input, hooks) {
556
620
  requestId: hooks.runId,
557
621
  emitUi: createNoopEmitUi(hooks.runId),
558
622
  ...(input.agentName !== undefined ? { agentName: input.agentName } : {}),
559
- ...(input.persona !== undefined ? { persona: input.persona } : {}),
623
+ ...personaContext(input),
560
624
  ...(input.pageContext !== undefined ? { pageContext: input.pageContext } : {}),
561
625
  ...(deps.host !== undefined ? { host: deps.host } : {}),
562
626
  };
@@ -588,7 +652,7 @@ const MESSAGE_TOOL_RESULTS_PATCH = 'agent:message-tool-results';
588
652
  */
589
653
  async function claimToolCall(turn, call) {
590
654
  const { deps, input, hooks, messageId, writer } = turn;
591
- const persona = input.persona;
655
+ const persona = personaOf(input);
592
656
  const persisted = (await hooks.step(`persist:toolcall:${call.id}`, async () => {
593
657
  // The kind the llm checkpoint stamped WINS: it came from the process that offered the tool,
594
658
  // whereas this one is only the process claiming the call — and the two disagree exactly when
@@ -750,6 +814,12 @@ function spanToolType(kind) {
750
814
  async function invokeClaimedTool(turn, claimed) {
751
815
  const { deps, hooks } = turn;
752
816
  const { call, ctx, toolType } = claimed;
817
+ // Under a persona with an allow-list, the same narrowing the offer had — agent ∩ persona — is what
818
+ // `invoke` holds the call to. Without one, nothing new is checked.
819
+ const personaAllow = personaOf(turn.input)?.allowedTools;
820
+ const invokeOptions = personaAllow === undefined
821
+ ? {}
822
+ : { allowedTools: intersectAllowLists(deps.toolAllowList, personaAllow) ?? [] };
753
823
  try {
754
824
  const raw = await hooks.step(`tool:${call.id}`, async () => {
755
825
  // Pushed components stream as they happen and ride this step's RESULT into the journal (see
@@ -775,7 +845,7 @@ async function invokeClaimedTool(turn, claimed) {
775
845
  toolType: spanToolType(toolType),
776
846
  }, () => invokeWithTransientRetry(() => {
777
847
  ui.restart();
778
- return deps.registry.invoke(call.name, call.input, toolCtx, deps.rolesPolicy);
848
+ return deps.registry.invoke(call.name, call.input, toolCtx, deps.rolesPolicy, invokeOptions);
779
849
  }, deps.toolTransientRetry ?? {}, {
780
850
  ...(hooks.isControlFlowError !== undefined
781
851
  ? { isControlFlowError: hooks.isControlFlowError }
@@ -1541,7 +1611,24 @@ export function streamErrorFrame(error, runId) {
1541
1611
  * It drives the model→tools→model iteration; the runner supplies the `step`/`awaitApproval`
1542
1612
  * hooks that make the same loop body either in-process or a replay-safe durable workflow.
1543
1613
  */
1544
- export async function runAgentLoop(boundDeps, input, hooks) {
1614
+ export async function runAgentLoop(boundDeps, requested, hooks) {
1615
+ // The persona, FIRST and only when the run names one by id: its definition is read from config
1616
+ // once and frozen in this checkpoint, so a run resumed after the persona was edited or removed
1617
+ // keeps the prompt and allow-list it started with. A run that names none spends no position here
1618
+ // — nor does one that carries the whole persona in its input (a direct caller, or a run recorded
1619
+ // by a release before this checkpoint existed), so those replay on the sequence they recorded.
1620
+ const turnPersona = typeof requested.persona === 'string'
1621
+ ? ((await hooks.step('persona:resolve', () => resolveTurnPersona(boundDeps, requested, requested.persona))) ?? undefined)
1622
+ : requested.persona !== undefined
1623
+ ? await inlineTurnPersona(boundDeps, requested, requested.persona)
1624
+ : undefined;
1625
+ // From here on the input carries the persona the turn actually runs under, whole and frozen — none,
1626
+ // when the one it named is no longer declared — so provenance and tool context never claim one
1627
+ // that did not apply.
1628
+ const { persona: _requestedPersona, ...withoutPersona } = requested;
1629
+ const input = turnPersona === undefined
1630
+ ? withoutPersona
1631
+ : { ...withoutPersona, persona: personaFromTurn(turnPersona) };
1545
1632
  // A turn with a selected model runs EVERY call it makes on it — the answer and a structured-output
1546
1633
  // pass — and labels its usage with it when the provider reports no model id. The pick rides the
1547
1634
  // run's input, so a durable replay makes the same choice.
@@ -1553,8 +1640,8 @@ export async function runAgentLoop(boundDeps, input, hooks) {
1553
1640
  modelId: input.model,
1554
1641
  };
1555
1642
  const maxSteps = deps.maxSteps ?? 8;
1556
- const persona = input.persona;
1557
- let system = await resolveSystemPrompt(deps, input);
1643
+ const persona = turnPersona;
1644
+ let system = await resolveSystemPrompt(deps, input, turnPersona);
1558
1645
  const inputProcessors = deps.inputProcessors ?? [];
1559
1646
  const outputProcessors = deps.outputProcessors ?? [];
1560
1647
  const gateMode = resolveOutputGateMode(outputProcessors);