effect-uai 0.6.0 → 0.8.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 +57 -4
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,62 @@
|
|
|
1
1
|
# effect-uai
|
|
2
2
|
|
|
3
|
+
## 0.8.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 842d92b: 0.8 adds web search. A new `WebSearch` capability lands in core: a generic
|
|
8
|
+
service for "search the live web" that providers register against, a free
|
|
9
|
+
`search` helper, and a `webSearchTool` you hand to the agent loop so the
|
|
10
|
+
model can ground its answers in current results. Three search providers
|
|
11
|
+
debut behind it (`@effect-uai/perplexity`, `@effect-uai/exa`,
|
|
12
|
+
`@effect-uai/tavily`), and two recipes show the patterns end to end:
|
|
13
|
+
[grounded answer](https://effect-uai.betalyra.com/recipes/grounded-answer/)
|
|
14
|
+
(search, read, cite) and
|
|
15
|
+
[deep research](https://effect-uai.betalyra.com/recipes/deep-research/)
|
|
16
|
+
(plan, fan out parallel sub-agents, synthesize a cited report).
|
|
17
|
+
|
|
18
|
+
Like the request shape on every other capability, `CommonSearchRequest`
|
|
19
|
+
is the cross-provider intersection (`query`, `maxResults`, `recency`,
|
|
20
|
+
date range, `includeDomains` / `excludeDomains`, `country`, `language`);
|
|
21
|
+
each provider maps what it supports and `warnDropped`s the rest instead
|
|
22
|
+
of silently changing your query. Cost reporting is deliberately left off
|
|
23
|
+
`SearchResponse` for now, deferred to a unified usage-tracking pass.
|
|
24
|
+
|
|
25
|
+
**Purely additive. No migration needed.** Bump dependencies, run
|
|
26
|
+
typecheck, done. The new surface is in
|
|
27
|
+
[Migrating to 0.8](https://effect-uai.betalyra.com/migrations/v0-8/).
|
|
28
|
+
|
|
29
|
+
Every package outside core and the three new search providers
|
|
30
|
+
(`@effect-uai/responses`, `@effect-uai/anthropic`, `@effect-uai/google`,
|
|
31
|
+
`@effect-uai/jina`, `@effect-uai/openai`, `@effect-uai/elevenlabs`,
|
|
32
|
+
`@effect-uai/inworld`, `@effect-uai/microsandbox`, `@effect-uai/deno`)
|
|
33
|
+
has no functional changes this release; they bump for lockstep versioning
|
|
34
|
+
only.
|
|
35
|
+
|
|
36
|
+
## 0.7.0
|
|
37
|
+
|
|
38
|
+
### Minor Changes
|
|
39
|
+
|
|
40
|
+
- 602bfa9: 0.7 is a capability-honesty pass across every audio and embedding
|
|
41
|
+
surface. The unifying rule: where a provider cannot honor a request, the
|
|
42
|
+
call now fails with `AiError.Unsupported` (load-bearing gaps) or emits a
|
|
43
|
+
structured `warnDropped` (best-effort hints), instead of silently
|
|
44
|
+
substituting a different result. Alongside that, `Duration` replaces raw
|
|
45
|
+
`durationSeconds` everywhere audio carries a length, the `MusicGenerator`
|
|
46
|
+
surface is reshaped, an ElevenLabs music provider lands, and Gemini
|
|
47
|
+
`toolChoice` is now mapped.
|
|
48
|
+
|
|
49
|
+
Most of it is mechanical (find-and-replace renames plus a
|
|
50
|
+
`Duration.seconds(n)` wrap). The parts that need judgement are the
|
|
51
|
+
removed `GeminiTranscriber` (use OpenAI / ElevenLabs / Inworld instead)
|
|
52
|
+
and the requests that now error where they previously degraded silently.
|
|
53
|
+
The full before/after diffs and the recommended order live in
|
|
54
|
+
[Migrating to 0.7](https://effect-uai.betalyra.com/migrations/v0-7/).
|
|
55
|
+
|
|
56
|
+
`@effect-uai/anthropic`, `@effect-uai/microsandbox`, and
|
|
57
|
+
`@effect-uai/deno` have no functional changes this release; they bump for
|
|
58
|
+
lockstep versioning only.
|
|
59
|
+
|
|
3
60
|
## 0.6.0
|
|
4
61
|
|
|
5
62
|
### Minor Changes
|
|
@@ -56,8 +113,6 @@
|
|
|
56
113
|
`continueWithResults` body that folds tool results into history.
|
|
57
114
|
- `Toolkit.collectResults` — lower-level drain of a `Stream<ToolEvent>`
|
|
58
115
|
to its `ToolResult`s without advancing the loop.
|
|
59
|
-
- `Loop.emitValues(stream)` / `Loop.emitNext(effect)` — fork-helper
|
|
60
|
-
building blocks behind `Toolkit.continueWithResults`.
|
|
61
116
|
|
|
62
117
|
### Additive: sandboxes
|
|
63
118
|
|
|
@@ -78,8 +133,6 @@
|
|
|
78
133
|
### Additive: new recipes
|
|
79
134
|
- `sleeper-agent` — long-lived background agent waking on scheduled
|
|
80
135
|
triggers.
|
|
81
|
-
- `external-task-polling` — drive the loop from an external task
|
|
82
|
-
queue.
|
|
83
136
|
- `sandbox-code-interpreter` (in `recipes-extras/`) — agent writes
|
|
84
137
|
Python, sandbox runs it, stderr feeds back into the next turn.
|
|
85
138
|
|
package/package.json
CHANGED