@adonis-agora/agent 0.59.0 → 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.
- package/CHANGELOG.md +41 -0
- package/dist/providers/agent_provider.d.ts.map +1 -1
- package/dist/providers/agent_provider.js +28 -6
- package/dist/providers/agent_provider.js.map +1 -1
- package/dist/src/agent-deps-factory.d.ts +35 -1
- package/dist/src/agent-deps-factory.d.ts.map +1 -1
- package/dist/src/agent-deps-factory.js +81 -0
- package/dist/src/agent-deps-factory.js.map +1 -1
- package/dist/src/agent-loop.d.ts +8 -2
- package/dist/src/agent-loop.d.ts.map +1 -1
- package/dist/src/agent-loop.js +105 -18
- package/dist/src/agent-loop.js.map +1 -1
- package/dist/src/agent-service.d.ts +40 -5
- package/dist/src/agent-service.d.ts.map +1 -1
- package/dist/src/agent-service.js +110 -22
- package/dist/src/agent-service.js.map +1 -1
- package/dist/src/chat-queue-service.d.ts +18 -2
- package/dist/src/chat-queue-service.d.ts.map +1 -1
- package/dist/src/chat-queue-service.js +24 -2
- package/dist/src/chat-queue-service.js.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/personas.d.ts +43 -1
- package/dist/src/personas.d.ts.map +1 -1
- package/dist/src/personas.js +83 -0
- package/dist/src/personas.js.map +1 -1
- package/dist/src/spi/agent-store.d.ts +13 -1
- package/dist/src/spi/agent-store.d.ts.map +1 -1
- package/dist/src/spi/agent-store.js.map +1 -1
- package/dist/src/spi/chat-queue.d.ts +8 -0
- package/dist/src/spi/chat-queue.d.ts.map +1 -1
- package/dist/src/spi/chat-queue.js +1 -0
- package/dist/src/spi/chat-queue.js.map +1 -1
- package/dist/src/stores/lucid-schema.d.ts.map +1 -1
- package/dist/src/stores/lucid-schema.js +3 -0
- package/dist/src/stores/lucid-schema.js.map +1 -1
- package/dist/src/stores/lucid.d.ts +1 -0
- package/dist/src/stores/lucid.d.ts.map +1 -1
- package/dist/src/stores/lucid.js +23 -5
- package/dist/src/stores/lucid.js.map +1 -1
- package/dist/src/testing/chat-queue-store-contract.d.ts.map +1 -1
- package/dist/src/testing/chat-queue-store-contract.js +3 -0
- package/dist/src/testing/chat-queue-store-contract.js.map +1 -1
- package/dist/src/testing/in-memory-store.d.ts +1 -0
- package/dist/src/testing/in-memory-store.d.ts.map +1 -1
- package/dist/src/testing/in-memory-store.js +8 -1
- package/dist/src/testing/in-memory-store.js.map +1 -1
- package/dist/src/thread-persona.d.ts +7 -0
- package/dist/src/thread-persona.d.ts.map +1 -0
- package/dist/src/thread-persona.js +12 -0
- package/dist/src/thread-persona.js.map +1 -0
- package/dist/src/tool-registry.d.ts +11 -2
- package/dist/src/tool-registry.d.ts.map +1 -1
- package/dist/src/tool-registry.js +8 -2
- package/dist/src/tool-registry.js.map +1 -1
- package/dist/src/types.d.ts +69 -5
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +2 -1
- package/skills/agent-personas-agents/SKILL.md +36 -8
package/dist/src/types.d.ts
CHANGED
|
@@ -246,13 +246,55 @@ export interface PromptContext {
|
|
|
246
246
|
* once per turn from stable inputs (actor/persona/pageContext), so it stays replay-safe.
|
|
247
247
|
*/
|
|
248
248
|
export type PromptBuilder = (ctx: PromptContext) => string | Promise<string>;
|
|
249
|
+
/**
|
|
250
|
+
* A named variant of ONE agent: its own prompt and, optionally, a narrower tool allow-list. The
|
|
251
|
+
* caller picks one per send (`POST <path>/chat { persona }`); everything else — the agent's model,
|
|
252
|
+
* its access rules, its handoffs, its history — stays the agent's. A variant that needs any of those
|
|
253
|
+
* to differ is a different agent, not a persona. The same shape as `@dudousxd/nestjs-agent`'s.
|
|
254
|
+
*/
|
|
249
255
|
export interface Persona {
|
|
256
|
+
/** Unique within its agent — what a send names and what a message records. */
|
|
257
|
+
id: string;
|
|
258
|
+
/** What a picker shows. */
|
|
259
|
+
label: string;
|
|
260
|
+
/** One line about what the persona is for, for a picker. */
|
|
261
|
+
description?: string;
|
|
262
|
+
/**
|
|
263
|
+
* The persona's prompt. A flat string STANDS IN FOR the agent's base prompt; a
|
|
264
|
+
* {@link PromptBuilder} is handed that base as `ctx.basePrompt`, so it can wrap it instead. Omit →
|
|
265
|
+
* the agent's base prompt, unchanged (which can itself read `ctx.persona`).
|
|
266
|
+
*/
|
|
267
|
+
systemPrompt?: string | PromptBuilder;
|
|
268
|
+
/**
|
|
269
|
+
* Only these tool names are offered — and only these may be invoked, handoffs included — under
|
|
270
|
+
* this persona. Layered AFTER the agent's own allow-list, `enabled`, the roles policy and `canUse`:
|
|
271
|
+
* it narrows, never widens. Omit → whatever the agent offers.
|
|
272
|
+
*/
|
|
273
|
+
allowedTools?: string[];
|
|
274
|
+
/**
|
|
275
|
+
* Agent names this persona answers for: a send, a queued message, a thread's `defaultAgent` or an
|
|
276
|
+
* in-flight run that names one of them runs as THIS agent under THIS persona. For an app that folds
|
|
277
|
+
* separate agents into personas of one — what recorded the old agent name keeps resolving, with no
|
|
278
|
+
* data migration. A name that is still a registered agent is never an alias.
|
|
279
|
+
*/
|
|
280
|
+
aliases?: string[];
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* A persona as a turn RESOLVED it, journaled in the `persona:resolve` checkpoint — so every replay of
|
|
284
|
+
* the run uses this, and not whatever the persona's configuration says by the time it resumes.
|
|
285
|
+
*/
|
|
286
|
+
export interface TurnPersona {
|
|
250
287
|
id: string;
|
|
251
288
|
label: string;
|
|
252
|
-
/** A flat prompt, or a {@link PromptBuilder} composed per request from {@link PromptContext}. */
|
|
253
|
-
systemPrompt: string | PromptBuilder;
|
|
254
|
-
/** If set, only these tool names are offered (after role filtering). */
|
|
255
289
|
allowedTools?: string[];
|
|
290
|
+
/** The persona's prompt, resolved (with the base prompt it wraps). Absent → the base prompt. */
|
|
291
|
+
prompt?: string;
|
|
292
|
+
}
|
|
293
|
+
/** One persona as `GET <path>/agents` lists it — what a persona picker renders. */
|
|
294
|
+
export interface PersonaCatalogEntry {
|
|
295
|
+
id: string;
|
|
296
|
+
label: string;
|
|
297
|
+
description?: string;
|
|
256
298
|
}
|
|
257
299
|
/** One agent as `GET <path>/agents` lists it — what an agent picker renders. */
|
|
258
300
|
export interface AgentCatalogEntry {
|
|
@@ -266,6 +308,10 @@ export interface AgentCatalogEntry {
|
|
|
266
308
|
* `locked`.
|
|
267
309
|
*/
|
|
268
310
|
lockedModel?: string;
|
|
311
|
+
/** The agent's personas, for a persona picker. Omitted when it declares none. */
|
|
312
|
+
personas?: PersonaCatalogEntry[];
|
|
313
|
+
/** The persona a send runs under when it names none. Omitted when the agent has no default. */
|
|
314
|
+
defaultPersona?: string;
|
|
269
315
|
}
|
|
270
316
|
/** Everything needed to run one agent turn. */
|
|
271
317
|
export interface AgentRunInput {
|
|
@@ -275,7 +321,15 @@ export interface AgentRunInput {
|
|
|
275
321
|
userText: string;
|
|
276
322
|
/** Files attached to the latest user message (image/PDF). Persisted with it and sent to the model. */
|
|
277
323
|
attachments?: MessageAttachment[];
|
|
278
|
-
|
|
324
|
+
/**
|
|
325
|
+
* The persona of {@link agentName} this turn runs under. An id ({@link Persona.id}) is the durable
|
|
326
|
+
* form: the service resolves it from the send, the thread's pin and the agent's default BEFORE the
|
|
327
|
+
* run starts, and the loop looks its definition up once, in the `persona:resolve` checkpoint. A
|
|
328
|
+
* whole {@link Persona} is applied as given, with no checkpoint — what a caller of `runAgentLoop`
|
|
329
|
+
* may hand it, and what a run started by a release before 0.60 recorded in its input. Omitted → no
|
|
330
|
+
* persona, and no checkpoint spent on one.
|
|
331
|
+
*/
|
|
332
|
+
persona?: string | Persona;
|
|
279
333
|
pageContext?: PageContext;
|
|
280
334
|
/**
|
|
281
335
|
* Answer the thread's last user message again instead of appending {@link userText} (ignored):
|
|
@@ -392,7 +446,12 @@ export interface AgentDefinition {
|
|
|
392
446
|
* carries.
|
|
393
447
|
*/
|
|
394
448
|
delegatesTo?: (string | DelegateEdge)[];
|
|
449
|
+
/** Named variants of this agent — see {@link Persona}. Undefined → none. */
|
|
395
450
|
personas?: Persona[];
|
|
451
|
+
/**
|
|
452
|
+
* The persona a send runs under when neither it nor its thread names one. Undefined → the persona
|
|
453
|
+
* whose id is `'default'`, when the agent declares one; else none.
|
|
454
|
+
*/
|
|
396
455
|
defaultPersona?: string;
|
|
397
456
|
modelId?: string;
|
|
398
457
|
maxSteps?: number;
|
|
@@ -432,7 +491,12 @@ export interface AgentDefinition {
|
|
|
432
491
|
export interface ThreadSummary {
|
|
433
492
|
id: string;
|
|
434
493
|
title: string;
|
|
435
|
-
|
|
494
|
+
/**
|
|
495
|
+
* The persona this thread's turns run under when a send names none — the last one a send on it
|
|
496
|
+
* named, or `PATCH <path>/threads/:id { persona }`. `null` → none pinned (the agent's default
|
|
497
|
+
* applies). The routes report a pin the thread's agent no longer declares as `null` too.
|
|
498
|
+
*/
|
|
499
|
+
persona: string | null;
|
|
436
500
|
pinnedAt?: string;
|
|
437
501
|
transient: boolean;
|
|
438
502
|
createdAt: string;
|
package/dist/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adonis-agora/agent",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.60.0",
|
|
4
4
|
"description": "Governed, durable-backed AI agent (chat + tool-calling + governance) for AdonisJS — part of the Agora ecosystem.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -293,6 +293,7 @@
|
|
|
293
293
|
"@types/react-dom": "19.3.0",
|
|
294
294
|
"agent-0-56": "npm:@adonis-agora/agent@0.56.0",
|
|
295
295
|
"agent-0-58": "npm:@adonis-agora/agent@0.58.0",
|
|
296
|
+
"agent-0-59": "npm:@adonis-agora/agent@0.59.0",
|
|
296
297
|
"ai": "7.0.102",
|
|
297
298
|
"ajv": "^8.20.0",
|
|
298
299
|
"better-sqlite3": "13.0.3",
|
|
@@ -2,14 +2,16 @@
|
|
|
2
2
|
name: agent-personas-agents
|
|
3
3
|
description: >-
|
|
4
4
|
Shape @adonis-agora/agent behavior per request: personas (Persona { id, label,
|
|
5
|
-
systemPrompt
|
|
6
|
-
|
|
5
|
+
systemPrompt, allowedTools, aliases }, defaultPersona, send → thread pin → default,
|
|
6
|
+
PATCH threads/:id { persona }, 400 persona_not_found, GET /agent/agents, the
|
|
7
|
+
persona:resolve durable checkpoint), named agents (agents: AgentDefinition[] with
|
|
7
8
|
tools/maxSteps/actorResolver overrides), delegatesTo multi-agent delegation via
|
|
8
9
|
synthesized ask_<target> agent-kind tools and DelegateEdge { agent, roles, ability, detached }
|
|
9
10
|
(detached → start_<target>, a background run that posts its answer back into the thread),
|
|
10
11
|
HITL approval flow over POST /agent/tool-call/approve|reject with pending_approval
|
|
11
12
|
status, maxSteps budgeting, and PromptContext/basePrompt composition. Use for
|
|
12
|
-
"persona picker", "
|
|
13
|
+
"persona picker", "persona not applied after resume", "fold agents into personas",
|
|
14
|
+
"orchestrator delegates to specialists", "ask_researcher denied",
|
|
13
15
|
"action tool hangs waiting for approval", "prompt builder".
|
|
14
16
|
metadata:
|
|
15
17
|
type: core
|
|
@@ -33,7 +35,8 @@ synthesized `ask_<target>` tools.
|
|
|
33
35
|
## Setup
|
|
34
36
|
|
|
35
37
|
Personas on the implicit default agent; the caller selects one via `POST /agent/chat`'s
|
|
36
|
-
`persona` field, and
|
|
38
|
+
`persona` field (AG-UI: `forwardedProps.persona`), and a persona a send NAMES is pinned on
|
|
39
|
+
the thread:
|
|
37
40
|
|
|
38
41
|
```ts
|
|
39
42
|
// config/agent.ts
|
|
@@ -63,10 +66,19 @@ export default defineConfig({
|
|
|
63
66
|
})
|
|
64
67
|
```
|
|
65
68
|
|
|
66
|
-
A persona
|
|
67
|
-
`
|
|
68
|
-
|
|
69
|
-
|
|
69
|
+
A flat persona `systemPrompt` stands in for the base prompt; a `PromptBuilder`
|
|
70
|
+
(`(ctx: PromptContext) => string | Promise<string>`) gets the base as `ctx.basePrompt` and
|
|
71
|
+
can wrap it; no `systemPrompt` keeps the base. `allowedTools` narrows the offer AND what
|
|
72
|
+
`ToolRegistry.invoke` will run (handoffs included). A send runs under: its own `persona` →
|
|
73
|
+
the thread's pin (if this agent declares it) → `defaultPersona` → none. Unknown id → `400`
|
|
74
|
+
`code: 'persona_not_found'`. `PATCH /agent/threads/:id { persona }` pins (`null` clears).
|
|
75
|
+
Render a picker from `GET /agent/agents` (`personas`, `defaultPersona` per agent).
|
|
76
|
+
|
|
77
|
+
Durable: the service resolves the persona to an id; the loop freezes the definition (prompt,
|
|
78
|
+
allow-list) in a `persona:resolve` checkpoint, so a parked run resumes on the persona it
|
|
79
|
+
started with even if config changed. Queued messages store their persona. `aliases: ['old-agent']`
|
|
80
|
+
on a persona keeps an old agent name (sends, thread `defaultAgent`, queued messages, in-flight
|
|
81
|
+
runs) resolving to this agent + persona.
|
|
70
82
|
|
|
71
83
|
Source: `packages/adonis/docs/authoring/personas-and-agents.mdx`.
|
|
72
84
|
|
|
@@ -213,6 +225,22 @@ whose approvals nobody answers hangs. Source:
|
|
|
213
225
|
`packages/adonis/docs/durability/durable-runner.mdx` ("Answering a sub-agent"),
|
|
214
226
|
`packages/adonis/src/spi/token-stream-sink.ts` (`StreamFrame`).
|
|
215
227
|
|
|
228
|
+
### MEDIUM — expecting an edited persona to reach a run that is already parked
|
|
229
|
+
|
|
230
|
+
```ts
|
|
231
|
+
// Symptom — you changed `systemPrompt`/`allowedTools`, approved a parked call, and the run
|
|
232
|
+
// still answers with the old prompt and tools.
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
```ts
|
|
236
|
+
// Correct — that is the contract: `persona:resolve` froze the definition when the run
|
|
237
|
+
// started. New sends (new runs) pick up the edit; a parked run never changes persona mid-run.
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
Mechanism: the persona is journaled once per run so a durable replay is deterministic.
|
|
241
|
+
Source: `packages/adonis/src/agent-loop.ts` (`resolveTurnPersona`),
|
|
242
|
+
`packages/adonis/docs/authoring/personas-and-agents.mdx` ("Durable").
|
|
243
|
+
|
|
216
244
|
### LOW — using wall-clock time or randomness inside a PromptBuilder
|
|
217
245
|
|
|
218
246
|
```ts
|