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.
Files changed (56) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/src/chunks/{use-eve-agent-BXMIf5fR.js → use-eve-agent-Bx-ONuyb.js} +22 -0
  3. package/dist/src/chunks/{use-eve-agent-k-XHfrJT.js → use-eve-agent-DDoDDmJ2.js} +22 -0
  4. package/dist/src/cli/commands/registry-metadata.d.ts +15 -0
  5. package/dist/src/cli/commands/registry-metadata.js +1 -0
  6. package/dist/src/cli/commands/registry-package.d.ts +46 -0
  7. package/dist/src/cli/commands/registry-package.js +1 -0
  8. package/dist/src/cli/commands/registry.d.ts +1 -1
  9. package/dist/src/cli/commands/registry.js +4 -4
  10. package/dist/src/cli/dev/tui/terminal-renderer.js +2 -2
  11. package/dist/src/client/index.d.ts +1 -1
  12. package/dist/src/client/message-reducer-types.d.ts +3 -0
  13. package/dist/src/client/message-reducer.js +1 -1
  14. package/dist/src/compiler/extension-compatibility.d.ts +10 -10
  15. package/dist/src/compiler/extension-compatibility.js +1 -1
  16. package/dist/src/execution/tool-auth.d.ts +1 -1
  17. package/dist/src/execution/tool-auth.js +1 -1
  18. package/dist/src/harness/emission-state.d.ts +25 -0
  19. package/dist/src/harness/emission-state.js +1 -0
  20. package/dist/src/harness/emission.d.ts +4 -36
  21. package/dist/src/harness/emission.js +1 -1
  22. package/dist/src/harness/ordered-stream-emitter.d.ts +3 -2
  23. package/dist/src/harness/ordered-stream-emitter.js +1 -1
  24. package/dist/src/harness/tools.d.ts +1 -1
  25. package/dist/src/harness/tools.js +1 -1
  26. package/dist/src/internal/application/package.js +1 -1
  27. package/dist/src/protocol/message.d.ts +23 -3
  28. package/dist/src/protocol/message.js +2 -2
  29. package/dist/src/public/channels/discord/discordChannel.d.ts +1 -0
  30. package/dist/src/public/channels/github/githubChannel.d.ts +1 -0
  31. package/dist/src/public/channels/linear/linearChannel.d.ts +1 -0
  32. package/dist/src/public/channels/slack/slackChannel.d.ts +1 -0
  33. package/dist/src/public/channels/teams/teamsChannel.d.ts +1 -0
  34. package/dist/src/public/channels/telegram/telegramChannel.d.ts +1 -0
  35. package/dist/src/public/channels/twilio/twilioChannel.d.ts +1 -0
  36. package/dist/src/public/definitions/channel.d.ts +1 -0
  37. package/dist/src/public/definitions/channel.js +1 -1
  38. package/dist/src/public/definitions/hook.d.ts +1 -0
  39. package/dist/src/public/definitions/tool.d.ts +5 -5
  40. package/dist/src/setup/integrations/linear/setup.js +1 -1
  41. package/dist/src/setup/scaffold/create/project.js +1 -1
  42. package/dist/src/shared/async-iterable.d.ts +2 -0
  43. package/dist/src/shared/async-iterable.js +1 -0
  44. package/dist/src/shared/tool-definition.d.ts +1 -1
  45. package/dist/src/svelte/index.js +1 -1
  46. package/dist/src/svelte/use-eve-agent.js +1 -1
  47. package/dist/src/vue/index.js +1 -1
  48. package/dist/src/vue/use-eve-agent.js +1 -1
  49. package/docs/channels/linear.mdx +4 -2
  50. package/docs/concepts/sessions-runs-and-streaming.md +3 -0
  51. package/docs/guides/client/streaming.mdx +1 -0
  52. package/docs/guides/hooks.md +1 -1
  53. package/docs/install-integrations.mdx +4 -2
  54. package/docs/reference/cli.md +4 -1
  55. package/docs/tools/overview.mdx +26 -2
  56. 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). |
@@ -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 connection/linear
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
- When an official item has an interactive setup flow, eve asks whether to run it after installation. Run the printed `eve add <item> --skip-install` command to resume a skipped or cancelled setup later.
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
 
@@ -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 prints the matching `eve add <item> --skip-install` command when setup is skipped or cancelled. `--skip-install` reruns setup without reinstalling the item.
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
 
@@ -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 full, 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.
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
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eve",
3
- "version": "0.30.7",
3
+ "version": "0.30.8",
4
4
  "private": false,
5
5
  "description": "Filesystem-first framework for durable backend AI agents that run anywhere.",
6
6
  "keywords": [