effect-uai 0.5.2 → 0.7.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 +103 -0
- package/README.md +4 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,108 @@
|
|
|
1
1
|
# effect-uai
|
|
2
2
|
|
|
3
|
+
## 0.7.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 602bfa9: 0.7 is a capability-honesty pass across every audio and embedding
|
|
8
|
+
surface. The unifying rule: where a provider cannot honor a request, the
|
|
9
|
+
call now fails with `AiError.Unsupported` (load-bearing gaps) or emits a
|
|
10
|
+
structured `warnDropped` (best-effort hints), instead of silently
|
|
11
|
+
substituting a different result. Alongside that, `Duration` replaces raw
|
|
12
|
+
`durationSeconds` everywhere audio carries a length, the `MusicGenerator`
|
|
13
|
+
surface is reshaped, an ElevenLabs music provider lands, and Gemini
|
|
14
|
+
`toolChoice` is now mapped.
|
|
15
|
+
|
|
16
|
+
Most of it is mechanical (find-and-replace renames plus a
|
|
17
|
+
`Duration.seconds(n)` wrap). The parts that need judgement are the
|
|
18
|
+
removed `GeminiTranscriber` (use OpenAI / ElevenLabs / Inworld instead)
|
|
19
|
+
and the requests that now error where they previously degraded silently.
|
|
20
|
+
The full before/after diffs and the recommended order live in
|
|
21
|
+
[Migrating to 0.7](https://effect-uai.betalyra.com/migrations/v0-7/).
|
|
22
|
+
|
|
23
|
+
`@effect-uai/anthropic`, `@effect-uai/microsandbox`, and
|
|
24
|
+
`@effect-uai/deno` have no functional changes this release; they bump for
|
|
25
|
+
lockstep versioning only.
|
|
26
|
+
|
|
27
|
+
## 0.6.0
|
|
28
|
+
|
|
29
|
+
### Minor Changes
|
|
30
|
+
|
|
31
|
+
- a332f0a: 0.6 bundles one large-but-mechanical naming sweep with a set of
|
|
32
|
+
additive features. The breaking part is source-level only — **the wire
|
|
33
|
+
format is unchanged** (`function_call` / `function_call_output` still
|
|
34
|
+
go out on the wire, so no provider payloads change). Almost every
|
|
35
|
+
rewrite is find-and-replace; the full before/after diffs and the
|
|
36
|
+
recommended order live in [Migrating to 0.6](https://effect-uai.betalyra.com/migrations/v0-6/).
|
|
37
|
+
|
|
38
|
+
### Breaking: "function call" → "tool call" terminology
|
|
39
|
+
|
|
40
|
+
Every public name that said "function call" now says "tool call":
|
|
41
|
+
- `Item` → `HistoryItem`; `FunctionCall` → `ToolCall`;
|
|
42
|
+
`FunctionCallOutput` → `ToolCallOutput`.
|
|
43
|
+
- `Items.functionCallOutput` → `Items.toolCallOutput`;
|
|
44
|
+
`Items.isFunctionCall` → `Items.isToolCall`;
|
|
45
|
+
`Items.isFunctionCallOutput` → `Items.isToolCallOutput`.
|
|
46
|
+
- `Turn.functionCalls` → `Turn.getToolCalls`.
|
|
47
|
+
|
|
48
|
+
### Breaking: module renames
|
|
49
|
+
- `@effect-uai/core/Outcome` → `@effect-uai/core/ToolResult`. Also
|
|
50
|
+
`ToolResult.Value` → `ToolResult.Ok`, `isValue` → `isOk`,
|
|
51
|
+
`rejected(...)` → `failed(...)`, `toFunctionCallOutput` →
|
|
52
|
+
`toToolCallOutput`.
|
|
53
|
+
- `@effect-uai/core/Resolvers` → `@effect-uai/core/Approval`. Also
|
|
54
|
+
`fromApprovalMap` → `fromMap`, `fromVerdictQueue` → `fromQueue`,
|
|
55
|
+
`ToolCallDecision` → `ApprovalDecision`, and the queue helper's
|
|
56
|
+
`announce` field → `approvalRequests`.
|
|
57
|
+
|
|
58
|
+
### Breaking: Turn / Toolkit / Tool / ToolEvent renames
|
|
59
|
+
- `Turn.appendTurn` → `Turn.appendToHistory`.
|
|
60
|
+
- `Turn.toStructured` → `Turn.decodeStructured`.
|
|
61
|
+
- `Toolkit.executeAll` → `Toolkit.run`.
|
|
62
|
+
- `Toolkit.continueWith` → `Toolkit.continueWithResults`.
|
|
63
|
+
- `Toolkit.make(...)` + `Toolkit.toDescriptors(kit)` → just
|
|
64
|
+
`Tool.toDescriptors([...])`. The homogeneous-toolkit wrapper is gone.
|
|
65
|
+
- `Tool.AnyKindTool` → `Tool.AnyTool`.
|
|
66
|
+
- `ToolEvent.Intermediate` → `ToolEvent.Progress`;
|
|
67
|
+
`isIntermediate` → `isProgress`.
|
|
68
|
+
|
|
69
|
+
### Breaking: Loop helper trim
|
|
70
|
+
- `Loop.loopFrom(...)` → `Loop.loopOver(...)`.
|
|
71
|
+
- `Loop.Event<A, S>` → `Loop.Step<A, S>`.
|
|
72
|
+
- `return stop` → `return stop()`.
|
|
73
|
+
- `Loop.stopWith(state)` → `Loop.stop(state)`.
|
|
74
|
+
- `nextAfter` / `stopAfter` / `stopWithAfter` / `stopEvent` /
|
|
75
|
+
`nextAfterFold` are removed — compose with `Stream.concat` instead.
|
|
76
|
+
See the migration doc for one-line replacements.
|
|
77
|
+
|
|
78
|
+
### Additive: new Toolkit / Loop helpers
|
|
79
|
+
- `Toolkit.appendToolResults(state, turn)` — shorthand for the canonical
|
|
80
|
+
`continueWithResults` body that folds tool results into history.
|
|
81
|
+
- `Toolkit.collectResults` — lower-level drain of a `Stream<ToolEvent>`
|
|
82
|
+
to its `ToolResult`s without advancing the loop.
|
|
83
|
+
|
|
84
|
+
### Additive: sandboxes
|
|
85
|
+
|
|
86
|
+
A new `Sandbox` capability in `@effect-uai/core/sandbox` for running
|
|
87
|
+
untrusted code, commands, or LLM-generated scripts inside an isolated
|
|
88
|
+
microVM. Two new provider packages ship behind the same
|
|
89
|
+
`SandboxService`:
|
|
90
|
+
- **`@effect-uai/microsandbox`** — local Firecracker microVMs via
|
|
91
|
+
[microsandbox](https://github.com/microsandbox/microsandbox).
|
|
92
|
+
- **`@effect-uai/deno`** — hosted Firecracker microVMs on
|
|
93
|
+
[Deno Deploy](https://docs.deno.com/deploy/).
|
|
94
|
+
|
|
95
|
+
Both cover `create` / `exec` / `execStream` / volumes / snapshots /
|
|
96
|
+
network policies / bound secrets / OCI image references. The
|
|
97
|
+
`recipes-extras/sandbox-code-interpreter` recipe shows the "run, fix,
|
|
98
|
+
repeat" pattern.
|
|
99
|
+
|
|
100
|
+
### Additive: new recipes
|
|
101
|
+
- `sleeper-agent` — long-lived background agent waking on scheduled
|
|
102
|
+
triggers.
|
|
103
|
+
- `sandbox-code-interpreter` (in `recipes-extras/`) — agent writes
|
|
104
|
+
Python, sandbox runs it, stderr feeds back into the next turn.
|
|
105
|
+
|
|
3
106
|
## 0.5.2
|
|
4
107
|
|
|
5
108
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -19,5 +19,9 @@ packages live under the `@effect-uai/*` scope:
|
|
|
19
19
|
Inworld speech.
|
|
20
20
|
- [`@effect-uai/jina`](https://www.npmjs.com/package/@effect-uai/jina) —
|
|
21
21
|
Jina embeddings (dense / sparse / multivector).
|
|
22
|
+
- [`@effect-uai/microsandbox`](https://www.npmjs.com/package/@effect-uai/microsandbox) —
|
|
23
|
+
Local microVM sandboxes via [microsandbox](https://github.com/microsandbox/microsandbox).
|
|
24
|
+
- [`@effect-uai/deno`](https://www.npmjs.com/package/@effect-uai/deno) —
|
|
25
|
+
Hosted Firecracker microVMs on Deno Deploy.
|
|
22
26
|
|
|
23
27
|
Project repository: https://github.com/betalyra/effect-uai
|
package/package.json
CHANGED