@adonis-agora/agent 0.65.1 → 0.66.1
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 +53 -0
- package/dist/src/ag-ui/core/encoder.d.ts.map +1 -1
- package/dist/src/ag-ui/core/encoder.js +6 -1
- package/dist/src/ag-ui/core/encoder.js.map +1 -1
- package/dist/src/ag-ui/frames.d.ts.map +1 -1
- package/dist/src/ag-ui/frames.js +1 -0
- package/dist/src/ag-ui/frames.js.map +1 -1
- package/dist/src/agent-loop.d.ts +12 -1
- package/dist/src/agent-loop.d.ts.map +1 -1
- package/dist/src/agent-loop.js +100 -14
- package/dist/src/agent-loop.js.map +1 -1
- package/dist/src/agent-service.d.ts +6 -0
- package/dist/src/agent-service.d.ts.map +1 -1
- package/dist/src/agent-service.js +10 -4
- package/dist/src/agent-service.js.map +1 -1
- package/dist/src/ai-sdk/ai-sdk-model.js +6 -2
- package/dist/src/ai-sdk/ai-sdk-model.js.map +1 -1
- package/dist/src/authz/authz-tool-authorizer.d.ts +1 -1
- package/dist/src/authz/authz-tool-authorizer.js +1 -1
- package/dist/src/channels/handler.d.ts.map +1 -1
- package/dist/src/channels/handler.js +6 -0
- package/dist/src/channels/handler.js.map +1 -1
- package/dist/src/client/chat-client.d.ts.map +1 -1
- package/dist/src/client/chat-client.js +5 -1
- package/dist/src/client/chat-client.js.map +1 -1
- package/dist/src/client/index.d.ts +1 -1
- package/dist/src/client/index.d.ts.map +1 -1
- package/dist/src/client/index.js +1 -1
- package/dist/src/client/index.js.map +1 -1
- package/dist/src/client/sse.d.ts +12 -0
- package/dist/src/client/sse.d.ts.map +1 -1
- package/dist/src/client/sse.js +18 -0
- package/dist/src/client/sse.js.map +1 -1
- package/dist/src/define_config.d.ts +1 -1
- package/dist/src/genui/catalog.d.ts +13 -0
- package/dist/src/genui/catalog.d.ts.map +1 -1
- package/dist/src/genui/catalog.js +4 -0
- package/dist/src/genui/catalog.js.map +1 -1
- package/dist/src/genui/index.d.ts +3 -2
- package/dist/src/genui/index.d.ts.map +1 -1
- package/dist/src/genui/index.js +3 -2
- package/dist/src/genui/index.js.map +1 -1
- package/dist/src/genui/progressive.d.ts +44 -0
- package/dist/src/genui/progressive.d.ts.map +1 -0
- package/dist/src/genui/progressive.js +101 -0
- package/dist/src/genui/progressive.js.map +1 -0
- package/dist/src/genui/public.d.ts +3 -2
- package/dist/src/genui/public.d.ts.map +1 -1
- package/dist/src/genui/public.js +1 -0
- package/dist/src/genui/public.js.map +1 -1
- package/dist/src/genui/tools.d.ts +29 -6
- package/dist/src/genui/tools.d.ts.map +1 -1
- package/dist/src/genui/tools.js +40 -6
- package/dist/src/genui/tools.js.map +1 -1
- package/dist/src/genui/tree.d.ts +26 -5
- package/dist/src/genui/tree.d.ts.map +1 -1
- package/dist/src/genui/tree.js +81 -12
- package/dist/src/genui/tree.js.map +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/partial-json.d.ts +28 -0
- package/dist/src/partial-json.d.ts.map +1 -0
- package/dist/src/partial-json.js +231 -0
- package/dist/src/partial-json.js.map +1 -0
- package/dist/src/react/core/agent-chat-transport.d.ts.map +1 -1
- package/dist/src/react/core/agent-chat-transport.js +3 -0
- package/dist/src/react/core/agent-chat-transport.js.map +1 -1
- package/dist/src/react/core/approvals/use-action-proposals.d.ts +7 -0
- package/dist/src/react/core/approvals/use-action-proposals.d.ts.map +1 -1
- package/dist/src/react/core/approvals/use-action-proposals.js +54 -8
- package/dist/src/react/core/approvals/use-action-proposals.js.map +1 -1
- package/dist/src/react/core/genui/generative-ui.d.ts +29 -4
- package/dist/src/react/core/genui/generative-ui.d.ts.map +1 -1
- package/dist/src/react/core/genui/generative-ui.js +96 -40
- package/dist/src/react/core/genui/generative-ui.js.map +1 -1
- package/dist/src/react/core/genui/index.d.ts +2 -2
- package/dist/src/react/core/genui/index.d.ts.map +1 -1
- package/dist/src/react/core/genui/index.js +1 -1
- package/dist/src/react/core/genui/index.js.map +1 -1
- package/dist/src/react/core/genui/json-render.d.ts.map +1 -1
- package/dist/src/react/core/genui/json-render.js +3 -1
- package/dist/src/react/core/genui/json-render.js.map +1 -1
- package/dist/src/react/core/genui/share-structure.d.ts +13 -0
- package/dist/src/react/core/genui/share-structure.d.ts.map +1 -0
- package/dist/src/react/core/genui/share-structure.js +49 -0
- package/dist/src/react/core/genui/share-structure.js.map +1 -0
- package/dist/src/react/core/genui/types.d.ts +33 -0
- package/dist/src/react/core/genui/types.d.ts.map +1 -1
- package/dist/src/react/core/genui/use-generative-ui.d.ts.map +1 -1
- package/dist/src/react/core/genui/use-generative-ui.js +4 -0
- package/dist/src/react/core/genui/use-generative-ui.js.map +1 -1
- package/dist/src/react/core/transcript/model.d.ts +5 -0
- package/dist/src/react/core/transcript/model.d.ts.map +1 -1
- package/dist/src/react/core/transcript/model.js +17 -0
- package/dist/src/react/core/transcript/model.js.map +1 -1
- package/dist/src/react/core/transcript/use-chat-transcript.d.ts.map +1 -1
- package/dist/src/react/core/transcript/use-chat-transcript.js +15 -2
- package/dist/src/react/core/transcript/use-chat-transcript.js.map +1 -1
- package/dist/src/runners/inline-agent-runner.d.ts +9 -0
- package/dist/src/runners/inline-agent-runner.d.ts.map +1 -1
- package/dist/src/runners/inline-agent-runner.js +28 -4
- package/dist/src/runners/inline-agent-runner.js.map +1 -1
- package/dist/src/spi/token-stream-sink.d.ts +2 -0
- package/dist/src/spi/token-stream-sink.d.ts.map +1 -1
- package/dist/src/spi/token-stream-sink.js.map +1 -1
- package/dist/src/spi/tool.d.ts +54 -2
- package/dist/src/spi/tool.d.ts.map +1 -1
- package/dist/src/sse.d.ts.map +1 -1
- package/dist/src/sse.js +1 -0
- package/dist/src/sse.js.map +1 -1
- package/dist/src/stores/factory.d.ts +2 -2
- package/dist/src/stores/factory.js +2 -2
- package/dist/src/stream-events.d.ts +7 -0
- package/dist/src/stream-events.d.ts.map +1 -1
- package/dist/src/testing/fake-model-provider.d.ts +9 -1
- package/dist/src/testing/fake-model-provider.d.ts.map +1 -1
- package/dist/src/testing/fake-model-provider.js +12 -1
- package/dist/src/testing/fake-model-provider.js.map +1 -1
- package/dist/src/tool-input-preview.d.ts +34 -0
- package/dist/src/tool-input-preview.d.ts.map +1 -0
- package/dist/src/tool-input-preview.js +137 -0
- package/dist/src/tool-input-preview.js.map +1 -0
- package/dist/src/tool-registry.d.ts +8 -2
- package/dist/src/tool-registry.d.ts.map +1 -1
- package/dist/src/tool-registry.js +34 -1
- package/dist/src/tool-registry.js.map +1 -1
- package/dist/src/turn-frames.d.ts.map +1 -1
- package/dist/src/turn-frames.js +5 -0
- package/dist/src/turn-frames.js.map +1 -1
- package/dist/stubs/config/agent.stub +10 -2
- package/package.json +1 -1
- package/skills/agent-setup/SKILL.md +10 -0
- package/skills/agent-testing/SKILL.md +3 -1
- package/skills/agent-tools/SKILL.md +14 -3
package/dist/src/turn-frames.js
CHANGED
|
@@ -33,6 +33,11 @@ export function observeTurnFrames(writer, now = Date.now) {
|
|
|
33
33
|
return;
|
|
34
34
|
}
|
|
35
35
|
closeBurst();
|
|
36
|
+
// A preview of a call's streaming input is shown, never kept: the call's own push is.
|
|
37
|
+
if ((frame.t === 'component' && frame.partial === true) ||
|
|
38
|
+
(frame.t === 'event' && frame.event.kind === 'ui' && frame.event.partial === true)) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
36
41
|
// A repeat id replaces the props but keeps the component where it first appeared, exactly as
|
|
37
42
|
// the client's data part does.
|
|
38
43
|
if (frame.t === 'event' && frame.event.kind === 'ui') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn-frames.js","sourceRoot":"","sources":["../../src/turn-frames.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"turn-frames.js","sourceRoot":"","sources":["../../src/turn-frames.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,8 @@ import { defineConfig, stores } from '@adonis-agora/agent'
|
|
|
6
6
|
// import { attachmentStores } from '@adonis-agora/agent'
|
|
7
7
|
// import { aiSdkModel } from '@adonis-agora/agent/ai-sdk'
|
|
8
8
|
// import { openai } from '@ai-sdk/openai'
|
|
9
|
+
// import { defineCatalog, genui } from '@adonis-agora/agent/genui'
|
|
10
|
+
// import { BUILTIN_COMPONENTS, LAYOUT_COMPONENTS } from '@adonis-agora/agent/genui/builtins'
|
|
9
11
|
|
|
10
12
|
/**
|
|
11
13
|
* Configuration for @adonis-agora/agent. Only \`model\` is required. Pick a \`store\` by name from the
|
|
@@ -21,10 +23,10 @@ export default defineConfig({
|
|
|
21
23
|
* The LLM provider. Wrap the Vercel AI SDK via \`aiSdkModel(...)\` (from \`@adonis-agora/agent/ai-sdk\`)
|
|
22
24
|
* or supply any \`ModelProvider\`. A lazy thunk keeps the provider SDK peer imported only at boot:
|
|
23
25
|
*
|
|
24
|
-
* model: () => aiSdkModel(
|
|
26
|
+
* model: () => aiSdkModel(openai('gpt-4o-mini')),
|
|
25
27
|
*/
|
|
26
28
|
model: () => {
|
|
27
|
-
throw new Error('Configure a model in config/agent.ts (e.g. aiSdkModel(
|
|
29
|
+
throw new Error('Configure a model in config/agent.ts (e.g. aiSdkModel(openai(...)))')
|
|
28
30
|
},
|
|
29
31
|
|
|
30
32
|
store: 'lucid',
|
|
@@ -53,6 +55,12 @@ export default defineConfig({
|
|
|
53
55
|
// disk). Mounts POST /agent/attachments; a send names uploads as { mediaId }, resolved server-side.
|
|
54
56
|
// attachments: attachmentStores.media(),
|
|
55
57
|
|
|
58
|
+
// Generative UI: the model composes catalog components (tables, charts, cards, …) into one
|
|
59
|
+
// \`ui__render\` tree, validated before it streams; your client renders each by name. Keep the
|
|
60
|
+
// catalog in its own file to share it with the browser. \`mode: 'per-component'\` gives one
|
|
61
|
+
// \`ui__show_*\` tool per component instead.
|
|
62
|
+
// genui: genui({ catalog: defineCatalog([...BUILTIN_COMPONENTS, ...LAYOUT_COMPONENTS]) }),
|
|
63
|
+
|
|
56
64
|
// The implicit default agent (base prompt, personas, tool allow-list). Omit for a bare assistant.
|
|
57
65
|
// defaultAgent: {
|
|
58
66
|
// systemPrompt: 'You are a helpful assistant.',
|
package/package.json
CHANGED
|
@@ -315,6 +315,16 @@ Agora owns its catalog (`@adonis-agora/agent/genui`), browser rendering
|
|
|
315
315
|
(`@adonis-agora/agent/react/media`). Protocol compatibility does not require installing
|
|
316
316
|
Aviary packages.
|
|
317
317
|
|
|
318
|
+
`genui({ catalog })` in `config/agent.ts` registers ONE model tool, `ui__render`, taking a
|
|
319
|
+
component tree (`{ type, props, children? }`; a single node is a valid tree and is pushed as
|
|
320
|
+
that component). Its input schema is exact per component. Put `LAYOUT_COMPONENTS` (`Stack`,
|
|
321
|
+
`Card`, …) in the catalog next to `BUILTIN_COMPONENTS` and register a React renderer for each
|
|
322
|
+
layout you use. `mode: 'per-component'` instead registers one `ui__show_<component>` tool per
|
|
323
|
+
standalone component — for small models or when each tool should carry its own exact schema.
|
|
324
|
+
`streaming: 'partial'` draws the tree while the model writes it; renderers then read
|
|
325
|
+
`useGenuiNode()?.incomplete` and must tolerate half-written props. Source:
|
|
326
|
+
`packages/adonis/docs/generative-ui.mdx`.
|
|
327
|
+
|
|
318
328
|
For static HTML, use `createReactComponentRegistry` and `createReactServerRenderer` from
|
|
319
329
|
`@adonis-agora/agent/react/genui/server`; install matching `react` and `react-dom` peers.
|
|
320
330
|
Keep this server entry out of browser bundles: it reads trusted filesystem stylesheets
|
|
@@ -78,7 +78,9 @@ Source: `packages/adonis/README.md` ("Framework-agnostic core"),
|
|
|
78
78
|
### Pattern 1 — script a tool-call round-trip
|
|
79
79
|
|
|
80
80
|
`FakeModelProvider` takes a script — a pure function of `(args, turnIndex)`. `turnIndex`
|
|
81
|
-
counts assistant turns already in history, so there is no internal counter to reset
|
|
81
|
+
counts assistant turns already in history, so there is no internal counter to reset. A tool
|
|
82
|
+
call's id is `call-<turnIndex>-<name>`, with a `-2`, `-3`… suffix when that provider instance
|
|
83
|
+
already issued it (another thread's same turn), so one provider can serve many threads:
|
|
82
84
|
|
|
83
85
|
```ts
|
|
84
86
|
import { FakeModelProvider } from '@adonis-agora/agent/testing'
|
|
@@ -241,6 +241,14 @@ export const listRecords = defineTool({
|
|
|
241
241
|
`table` and `chart` present the builtin `DataTable` and `Chart` definitions: put them in the
|
|
242
242
|
genui catalog (`BUILTIN_COMPONENTS` from `@adonis-agora/agent/genui/builtins`, or the two
|
|
243
243
|
definitions) and register app renderers under those names. Builtins carry no visuals.
|
|
244
|
+
`genui({ catalog })` also offers the model one `ui__render` tree tool over that catalog (the
|
|
245
|
+
default mode; `mode: 'per-component'` gives `ui__show_*` tools instead).
|
|
246
|
+
A tool that knows its component before it reads can push a skeleton first: `ctx.emitUi(name,
|
|
247
|
+
{ state: 'loading', … })`, then the data with `{ id }` from that push (the component's props
|
|
248
|
+
schema must accept the placeholder variant; mark it `internal: true`). Always end on that id
|
|
249
|
+
(data, `empty` or `error`), and only push the skeleton when the component is declared in
|
|
250
|
+
`ctx.uiCapabilities` and `ctx.pageContext.channel` is unset. A tool that throws persists none
|
|
251
|
+
of its pushes. See `packages/adonis/docs/genui-loading-states.mdx`.
|
|
244
252
|
Use `createComponent` for custom definitions and one `createComponentRegistry` per app
|
|
245
253
|
or tenant. Input `props` may transform; if the transform changes shape or is not
|
|
246
254
|
idempotent, declare `outputProps` to validate the normalized JSON persisted in frames.
|
|
@@ -267,10 +275,13 @@ canUse(actor: Actor) { return this.plans.includesDocs(actor.tenantRef) }
|
|
|
267
275
|
|
|
268
276
|
`defineTool` / `defineConfirmedTool` take `enabled` and `canUse` as options; `mcpServers[]`
|
|
269
277
|
takes both per server. Order on the offered list AND on invoke: allow-list → `enabled` →
|
|
270
|
-
`RolesPolicy` → `canUse`; none can widen.
|
|
271
|
-
|
|
278
|
+
`RolesPolicy` → `canUse`; none can widen. `invoke` additionally re-asks `describe()` with the
|
|
279
|
+
call's actor, thread, agent and `uiCapabilities`: a tool answering `available: false` for that
|
|
280
|
+
scope was never offered, and calling it anyway throws `ToolNotFoundError`. A disabled tool is
|
|
281
|
+
never shown to the model and invoking one throws `ToolDisabledError` (not `ToolForbiddenError`). Prefer these to registering a
|
|
272
282
|
tool conditionally, and to refusing inside `execute` (which costs the model a turn).
|
|
273
|
-
Source: `packages/adonis/docs/authoring/tools.mdx`, `packages/adonis/src/tool-filters.ts
|
|
283
|
+
Source: `packages/adonis/docs/authoring/tools.mdx`, `packages/adonis/src/tool-filters.ts`,
|
|
284
|
+
`packages/adonis/src/tool-registry.ts` (`validated`, `describeScopeOf`).
|
|
274
285
|
|
|
275
286
|
## Common mistakes
|
|
276
287
|
|