eve 0.30.7 → 0.30.8
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 +7 -0
- package/dist/src/chunks/{use-eve-agent-BXMIf5fR.js → use-eve-agent-Bx-ONuyb.js} +22 -0
- package/dist/src/chunks/{use-eve-agent-k-XHfrJT.js → use-eve-agent-DDoDDmJ2.js} +22 -0
- package/dist/src/cli/commands/registry-metadata.d.ts +15 -0
- package/dist/src/cli/commands/registry-metadata.js +1 -0
- package/dist/src/cli/commands/registry-package.d.ts +46 -0
- package/dist/src/cli/commands/registry-package.js +1 -0
- package/dist/src/cli/commands/registry.d.ts +1 -1
- package/dist/src/cli/commands/registry.js +4 -4
- package/dist/src/cli/dev/tui/terminal-renderer.js +2 -2
- package/dist/src/client/index.d.ts +1 -1
- package/dist/src/client/message-reducer-types.d.ts +3 -0
- package/dist/src/client/message-reducer.js +1 -1
- package/dist/src/compiler/extension-compatibility.d.ts +10 -10
- package/dist/src/compiler/extension-compatibility.js +1 -1
- package/dist/src/execution/tool-auth.d.ts +1 -1
- package/dist/src/execution/tool-auth.js +1 -1
- package/dist/src/harness/emission-state.d.ts +25 -0
- package/dist/src/harness/emission-state.js +1 -0
- package/dist/src/harness/emission.d.ts +4 -36
- package/dist/src/harness/emission.js +1 -1
- package/dist/src/harness/ordered-stream-emitter.d.ts +3 -2
- package/dist/src/harness/ordered-stream-emitter.js +1 -1
- package/dist/src/harness/tools.d.ts +1 -1
- package/dist/src/harness/tools.js +1 -1
- package/dist/src/internal/application/package.js +1 -1
- package/dist/src/protocol/message.d.ts +23 -3
- package/dist/src/protocol/message.js +2 -2
- package/dist/src/public/channels/discord/discordChannel.d.ts +1 -0
- package/dist/src/public/channels/github/githubChannel.d.ts +1 -0
- package/dist/src/public/channels/linear/linearChannel.d.ts +1 -0
- package/dist/src/public/channels/slack/slackChannel.d.ts +1 -0
- package/dist/src/public/channels/teams/teamsChannel.d.ts +1 -0
- package/dist/src/public/channels/telegram/telegramChannel.d.ts +1 -0
- package/dist/src/public/channels/twilio/twilioChannel.d.ts +1 -0
- package/dist/src/public/definitions/channel.d.ts +1 -0
- package/dist/src/public/definitions/channel.js +1 -1
- package/dist/src/public/definitions/hook.d.ts +1 -0
- package/dist/src/public/definitions/tool.d.ts +5 -5
- package/dist/src/setup/integrations/linear/setup.js +1 -1
- package/dist/src/setup/scaffold/create/project.js +1 -1
- package/dist/src/shared/async-iterable.d.ts +2 -0
- package/dist/src/shared/async-iterable.js +1 -0
- package/dist/src/shared/tool-definition.d.ts +1 -1
- package/dist/src/svelte/index.js +1 -1
- package/dist/src/svelte/use-eve-agent.js +1 -1
- package/dist/src/vue/index.js +1 -1
- package/dist/src/vue/use-eve-agent.js +1 -1
- package/docs/channels/linear.mdx +4 -2
- package/docs/concepts/sessions-runs-and-streaming.md +3 -0
- package/docs/guides/client/streaming.mdx +1 -0
- package/docs/guides/hooks.md +1 -1
- package/docs/install-integrations.mdx +4 -2
- package/docs/reference/cli.md +4 -1
- package/docs/tools/overview.mdx +26 -2
- package/package.json +1 -1
|
@@ -99,6 +99,7 @@ The most common UI events are:
|
|
|
99
99
|
| `reasoning.appended` | Render reasoning deltas when the model provides them. |
|
|
100
100
|
| `message.appended` | Render assistant text deltas. |
|
|
101
101
|
| `actions.requested` | Show tool calls as the model requests them, before execution. |
|
|
102
|
+
| `action.partial` | Update a generator tool's provisional output snapshot. |
|
|
102
103
|
| `action.result` | Show tool call results. |
|
|
103
104
|
| `input.requested` | Pause the UI for approval or a question answer. |
|
|
104
105
|
| `result.completed` | Read structured output from an [output schema](./output-schema). |
|
package/docs/guides/hooks.md
CHANGED
|
@@ -26,7 +26,7 @@ The slug is the path-relative basename. `agent/hooks/audit.ts` becomes `"audit"`
|
|
|
26
26
|
|
|
27
27
|
`defineHook`, `HookDefinition`, and `HookContext` live on `eve/hooks`.
|
|
28
28
|
|
|
29
|
-
A hook file declares stream-event subscribers under the `events` map, keyed by event type, with `*` matching every event. Subscribe to any event in the runtime stream vocabulary documented in [Sessions, runs and streaming](../concepts/sessions-runs-and-streaming), including the lifecycle events `session.started`, `turn.completed`, `message.completed`, and `action.result`. Handlers are observe-only. They cannot inject model context. To contribute runtime model messages, use `defineDynamic` and `defineInstructions` in `agent/instructions/`.
|
|
29
|
+
A hook file declares stream-event subscribers under the `events` map, keyed by event type, with `*` matching every event. Subscribe to any event in the runtime stream vocabulary documented in [Sessions, runs and streaming](../concepts/sessions-runs-and-streaming), including the lifecycle events `session.started`, `turn.completed`, `message.completed`, `action.partial`, and `action.result`. Handlers are observe-only. They cannot inject model context. To contribute runtime model messages, use `defineDynamic` and `defineInstructions` in `agent/instructions/`.
|
|
30
30
|
|
|
31
31
|
## Hook structure and context
|
|
32
32
|
|
|
@@ -12,13 +12,15 @@ Run `eve add` from an eve agent project. This installs the integration's depende
|
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
14
|
eve add extension/agent-browser
|
|
15
|
-
eve add
|
|
15
|
+
eve add linear
|
|
16
16
|
eve add instrumentation/braintrust
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
Extensions may create a mount under `agent/extensions/`. Connections write their initial definition under `agent/connections/` and install `@vercel/connect` when required. Instrumentation providers write `agent/instrumentation.ts`; because an agent has one instrumentation file, compose multiple exporters there by hand. Configure generated files and required environment variables before running your agent.
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
Some integrations package several independently installable components. For example, `eve add linear` lets you choose the Linear Channel, Linear MCP, or both; both are selected by default. The specific `eve add channel/linear-agent` and `eve add connection/linear` commands remain available.
|
|
22
|
+
|
|
23
|
+
When an official item declares an interactive setup flow or flows, eve asks whether to run them after installation and runs multiple flows in declaration order. Run the printed `eve add <item> --skip-install` command to resume a skipped or cancelled setup later; it reruns the selected components' declared flows from the beginning.
|
|
22
24
|
|
|
23
25
|
## Find an integration
|
|
24
26
|
|
package/docs/reference/cli.md
CHANGED
|
@@ -87,6 +87,7 @@ Commands for installing and discovering [shadcn registry](https://ui.shadcn.com/
|
|
|
87
87
|
|
|
88
88
|
```bash
|
|
89
89
|
eve add extension/agent-browser
|
|
90
|
+
eve add linear
|
|
90
91
|
eve add channel/slack --skip-install
|
|
91
92
|
eve add https://example.com/r/my-extension.json --overwrite
|
|
92
93
|
eve registry add @acme=https://example.com/r/{name}.json
|
|
@@ -97,7 +98,9 @@ eve registry view @acme/my-extension
|
|
|
97
98
|
eve add @acme/my-extension
|
|
98
99
|
```
|
|
99
100
|
|
|
100
|
-
`eve add` asks before running setup declared by an official item and
|
|
101
|
+
`eve add` asks before running setup declared by an official item and runs multiple declared flows in declaration order. Product-level packages can offer independently installable components: `eve add linear` lets you select the Linear Channel, Linear MCP, or both, with both selected by default. `--yes` installs a package's default components.
|
|
102
|
+
|
|
103
|
+
When setup is skipped or cancelled, eve prints the matching `eve add <item> --skip-install` command. `--skip-install` reruns the selected components' declared flows from the beginning without reinstalling them.
|
|
101
104
|
|
|
102
105
|
`eve registry add` records configured sources in `package.json#registries`. `eve registry list` aggregates the official catalog and all configured sources by default. `eve registry search` also includes [skills.sh](https://skills.sh), available without configuration at `@skills`, and groups results by source with each source's available result count. Search returns up to 10 matches per source by default; pass `--limit <count>` to request between 1 and 100. Either command can browse one supplied URL or namespace. Official and other universal items with explicit file targets do not require shadcn project configuration.
|
|
103
106
|
|
package/docs/tools/overview.mdx
CHANGED
|
@@ -28,10 +28,34 @@ A tool definition needs:
|
|
|
28
28
|
- a filename slug under `agent/tools/`, the model-facing name.
|
|
29
29
|
- a `description`: what the tool does, written for the model.
|
|
30
30
|
- an `inputSchema`: a Zod schema (or any Standard Schema, or a plain JSON Schema object). Required. For no input, pass `z.object({})`. Zod and Standard Schema infer the `input` type in `execute`. Plain JSON Schema types it as `Record<string, unknown>`.
|
|
31
|
-
- an `execute(input, ctx)`: the implementation. May be sync or async.
|
|
31
|
+
- an `execute(input, ctx)`: the implementation. May be sync, async, or an async generator.
|
|
32
32
|
|
|
33
33
|
When a tool returns structured data, add an optional `outputSchema`. With Zod or Standard Schema it also types the `execute` return.
|
|
34
34
|
|
|
35
|
+
### Stream preliminary tool results
|
|
36
|
+
|
|
37
|
+
An async generator lets a long-running tool stream complete output snapshots
|
|
38
|
+
before it finishes. Each `yield` replaces the previous snapshot; the final
|
|
39
|
+
yield is the normal tool result the model receives:
|
|
40
|
+
|
|
41
|
+
```ts title="agent/tools/build_report.ts"
|
|
42
|
+
export default defineTool({
|
|
43
|
+
description: "Build a project report.",
|
|
44
|
+
inputSchema: z.object({ project: z.string() }),
|
|
45
|
+
async *execute({ project }) {
|
|
46
|
+
yield { phase: "collecting", report: null };
|
|
47
|
+
const report = await buildReport(project);
|
|
48
|
+
yield { phase: "complete", report };
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
eve publishes every earlier yield as an `action.partial` stream event. The
|
|
54
|
+
snapshot is visible to channels, hooks, and clients but never enters model
|
|
55
|
+
history or `toModelOutput`; only the final yield does. Treat snapshots as
|
|
56
|
+
last-write-wins by tool call id, not append-only progress. The durable runtime
|
|
57
|
+
can retry a step and replay overlapping snapshots.
|
|
58
|
+
|
|
35
59
|
### The `ctx` parameter
|
|
36
60
|
|
|
37
61
|
`execute` gets a `ctx` carrying the runtime accessors:
|
|
@@ -78,7 +102,7 @@ toModelOutput(output) {
|
|
|
78
102
|
},
|
|
79
103
|
```
|
|
80
104
|
|
|
81
|
-
`toModelOutput` receives the
|
|
105
|
+
`toModelOutput` receives the final, typed `execute` return and only affects the model. Channel event handlers and hooks still get the full output on `action.result`, so a channel can render rich platform output (Slack Block Kit, say) the model never sees. Return `{ type: "text", value }` for a summary, or `{ type: "json", value }` for a smaller object.
|
|
82
106
|
|
|
83
107
|
Tool outputs must be JSON-serializable. Return plain objects, arrays, strings, numbers, booleans, or `null`; convert values like `Date`, `Map`, `Set`, `NaN`, and cyclic objects before returning them from `execute` or from a `{ type: "json" }` `toModelOutput`.
|
|
84
108
|
|