world-model-optimizer 0.2.0__py3-none-any.whl
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.
- llm_waterfall/LICENSE +21 -0
- llm_waterfall/__init__.py +53 -0
- llm_waterfall/adapters/__init__.py +36 -0
- llm_waterfall/adapters/anthropic.py +105 -0
- llm_waterfall/adapters/aws_mantle.py +47 -0
- llm_waterfall/adapters/azure_openai.py +71 -0
- llm_waterfall/adapters/base.py +51 -0
- llm_waterfall/adapters/bedrock.py +309 -0
- llm_waterfall/adapters/openai.py +130 -0
- llm_waterfall/classify.py +184 -0
- llm_waterfall/pricing.py +110 -0
- llm_waterfall/py.typed +0 -0
- llm_waterfall/types.py +295 -0
- llm_waterfall/waterfall.py +255 -0
- wmo/__init__.py +38 -0
- wmo/agents/__init__.py +7 -0
- wmo/agents/default.py +29 -0
- wmo/agents/meta.py +55 -0
- wmo/agents/optimizer.py +55 -0
- wmo/agents/project.py +928 -0
- wmo/cli/__init__.py +5 -0
- wmo/cli/agent_session.py +1123 -0
- wmo/cli/app.py +2489 -0
- wmo/cli/e2b_cmds.py +212 -0
- wmo/cli/eval_closed_loop.py +207 -0
- wmo/cli/harness_app.py +1147 -0
- wmo/cli/harness_distill.py +659 -0
- wmo/cli/hosted_session.py +880 -0
- wmo/cli/ingest_cmd.py +165 -0
- wmo/cli/model_roles.py +82 -0
- wmo/cli/platform_cmds.py +372 -0
- wmo/cli/route_app.py +274 -0
- wmo/cli/session_state.py +243 -0
- wmo/cli/ui.py +1107 -0
- wmo/cli/workspace_sync.py +504 -0
- wmo/config/__init__.py +60 -0
- wmo/config/card.py +129 -0
- wmo/config/config.py +367 -0
- wmo/config/dotenv.py +67 -0
- wmo/config/settings.py +128 -0
- wmo/config/store.py +177 -0
- wmo/conftest.py +19 -0
- wmo/connect/__init__.py +88 -0
- wmo/connect/apps.py +78 -0
- wmo/connect/brave.py +284 -0
- wmo/connect/connector.py +79 -0
- wmo/connect/credentials.py +164 -0
- wmo/connect/github.py +321 -0
- wmo/connect/google.py +627 -0
- wmo/connect/notion.py +790 -0
- wmo/connect/oauth.py +461 -0
- wmo/connect/slack.py +555 -0
- wmo/connect/store.py +199 -0
- wmo/connect/types.py +156 -0
- wmo/core/__init__.py +21 -0
- wmo/core/parsing.py +281 -0
- wmo/core/render.py +271 -0
- wmo/core/text.py +40 -0
- wmo/core/types.py +116 -0
- wmo/distill/__init__.py +14 -0
- wmo/distill/agents.py +140 -0
- wmo/distill/config.py +1006 -0
- wmo/distill/cost.py +437 -0
- wmo/distill/data.py +921 -0
- wmo/distill/deadlines.py +254 -0
- wmo/distill/fake_tinker.py +734 -0
- wmo/distill/gate.py +122 -0
- wmo/distill/loop.py +3499 -0
- wmo/distill/renderers.py +399 -0
- wmo/distill/rendering.py +620 -0
- wmo/distill/rollouts.py +726 -0
- wmo/distill/samples.py +195 -0
- wmo/distill/store.py +829 -0
- wmo/distill/teacher.py +714 -0
- wmo/distill/tokens.py +535 -0
- wmo/distill/tracking.py +552 -0
- wmo/distill/tripwire.py +411 -0
- wmo/distill/xtoken/byte_offsets.py +152 -0
- wmo/distill/xtoken/chunks.py +457 -0
- wmo/distill/xtoken/prompt_logprobs.py +475 -0
- wmo/distill/xtoken/teacher_render.py +346 -0
- wmo/engine/__init__.py +28 -0
- wmo/engine/autoconfig.py +367 -0
- wmo/engine/build.py +346 -0
- wmo/engine/demo.py +77 -0
- wmo/engine/eval_suites.py +245 -0
- wmo/engine/grounding.py +491 -0
- wmo/engine/knowledge.py +291 -0
- wmo/engine/loader.py +36 -0
- wmo/engine/play.py +92 -0
- wmo/engine/prompts.py +99 -0
- wmo/engine/replay.py +443 -0
- wmo/engine/reporting.py +58 -0
- wmo/engine/workspace.py +468 -0
- wmo/engine/world_model.py +568 -0
- wmo/env/__init__.py +22 -0
- wmo/env/base.py +121 -0
- wmo/env/closed_loop.py +229 -0
- wmo/env/episode.py +107 -0
- wmo/env/llm_agent.py +93 -0
- wmo/env/scenarios.py +73 -0
- wmo/evals/__init__.py +52 -0
- wmo/evals/agreement.py +110 -0
- wmo/evals/base.py +45 -0
- wmo/evals/closed_loop.py +480 -0
- wmo/evals/failover.py +96 -0
- wmo/evals/gold.py +127 -0
- wmo/evals/grid.py +394 -0
- wmo/evals/grid_plot.py +205 -0
- wmo/evals/harbor/__init__.py +27 -0
- wmo/evals/harbor/agent.py +573 -0
- wmo/evals/harbor/ctrf.py +171 -0
- wmo/evals/harbor/e2b_environment.py +587 -0
- wmo/evals/harbor/e2b_template_policy.py +144 -0
- wmo/evals/harbor/scorer.py +875 -0
- wmo/evals/harbor/tasks.py +140 -0
- wmo/evals/open_loop.py +194 -0
- wmo/evals/tasks.py +53 -0
- wmo/harness/__init__.py +51 -0
- wmo/harness/code_runtime.py +288 -0
- wmo/harness/create.py +1191 -0
- wmo/harness/delta.py +220 -0
- wmo/harness/doc.py +556 -0
- wmo/harness/e2b_ledger.py +342 -0
- wmo/harness/e2b_reap.py +476 -0
- wmo/harness/e2b_sandbox.py +350 -0
- wmo/harness/environment.py +35 -0
- wmo/harness/live_session.py +543 -0
- wmo/harness/mutate.py +343 -0
- wmo/harness/pi_e2b.py +1710 -0
- wmo/harness/pi_entry/entry.ts +268 -0
- wmo/harness/pi_entry/runner_frames.ts +92 -0
- wmo/harness/pi_entry/runner_live.ts +587 -0
- wmo/harness/pi_entry/runner_service.ts +270 -0
- wmo/harness/pi_entry/runner_stdio.ts +374 -0
- wmo/harness/pi_entry/runner_termination.ts +142 -0
- wmo/harness/pi_local.py +262 -0
- wmo/harness/pi_runtime.py +495 -0
- wmo/harness/pi_vendor.py +65 -0
- wmo/harness/population.py +509 -0
- wmo/harness/project_proposer.py +569 -0
- wmo/harness/proposer.py +977 -0
- wmo/harness/runner_link.py +619 -0
- wmo/harness/runtime.py +389 -0
- wmo/harness/scoring.py +247 -0
- wmo/harness/skills.py +116 -0
- wmo/harness/source_tree.py +319 -0
- wmo/harness/store.py +176 -0
- wmo/harness/tools.py +105 -0
- wmo/harness/vendor/manifest.sha256 +58 -0
- wmo/harness/vendor/pi-agent/CHANGELOG.md +556 -0
- wmo/harness/vendor/pi-agent/LICENSE +21 -0
- wmo/harness/vendor/pi-agent/README.md +488 -0
- wmo/harness/vendor/pi-agent/VENDOR.md +39 -0
- wmo/harness/vendor/pi-agent/docs/agent-harness.md +486 -0
- wmo/harness/vendor/pi-agent/docs/durable-harness.md +212 -0
- wmo/harness/vendor/pi-agent/docs/hooks.md +445 -0
- wmo/harness/vendor/pi-agent/docs/models.md +966 -0
- wmo/harness/vendor/pi-agent/docs/observability.md +376 -0
- wmo/harness/vendor/pi-agent/package.json +60 -0
- wmo/harness/vendor/pi-agent/src/agent-loop.ts +748 -0
- wmo/harness/vendor/pi-agent/src/agent.ts +575 -0
- wmo/harness/vendor/pi-agent/src/harness/agent-harness.ts +1029 -0
- wmo/harness/vendor/pi-agent/src/harness/compaction/branch-summarization.ts +261 -0
- wmo/harness/vendor/pi-agent/src/harness/compaction/compaction.ts +747 -0
- wmo/harness/vendor/pi-agent/src/harness/compaction/utils.ts +144 -0
- wmo/harness/vendor/pi-agent/src/harness/env/nodejs.ts +550 -0
- wmo/harness/vendor/pi-agent/src/harness/messages.ts +164 -0
- wmo/harness/vendor/pi-agent/src/harness/prompt-templates.ts +267 -0
- wmo/harness/vendor/pi-agent/src/harness/session/jsonl-repo.ts +177 -0
- wmo/harness/vendor/pi-agent/src/harness/session/jsonl-storage.ts +293 -0
- wmo/harness/vendor/pi-agent/src/harness/session/memory-repo.ts +50 -0
- wmo/harness/vendor/pi-agent/src/harness/session/memory-storage.ts +131 -0
- wmo/harness/vendor/pi-agent/src/harness/session/repo-utils.ts +51 -0
- wmo/harness/vendor/pi-agent/src/harness/session/session.ts +267 -0
- wmo/harness/vendor/pi-agent/src/harness/session/uuid.ts +54 -0
- wmo/harness/vendor/pi-agent/src/harness/skills.ts +375 -0
- wmo/harness/vendor/pi-agent/src/harness/system-prompt.ts +34 -0
- wmo/harness/vendor/pi-agent/src/harness/types.ts +836 -0
- wmo/harness/vendor/pi-agent/src/harness/utils/shell-output.ts +135 -0
- wmo/harness/vendor/pi-agent/src/harness/utils/truncate.ts +344 -0
- wmo/harness/vendor/pi-agent/src/index.ts +44 -0
- wmo/harness/vendor/pi-agent/src/node.ts +2 -0
- wmo/harness/vendor/pi-agent/src/proxy.ts +367 -0
- wmo/harness/vendor/pi-agent/src/types.ts +428 -0
- wmo/harness/vendor/pi-agent/test/agent-loop.test.ts +1351 -0
- wmo/harness/vendor/pi-agent/test/agent.test.ts +699 -0
- wmo/harness/vendor/pi-agent/test/e2e.test.ts +404 -0
- wmo/harness/vendor/pi-agent/test/harness/agent-harness-stream.test.ts +213 -0
- wmo/harness/vendor/pi-agent/test/harness/agent-harness.test.ts +608 -0
- wmo/harness/vendor/pi-agent/test/harness/compaction.test.ts +655 -0
- wmo/harness/vendor/pi-agent/test/harness/nodejs-env.test.ts +321 -0
- wmo/harness/vendor/pi-agent/test/harness/prompt-templates.test.ts +90 -0
- wmo/harness/vendor/pi-agent/test/harness/repo.test.ts +68 -0
- wmo/harness/vendor/pi-agent/test/harness/resource-formatting.test.ts +24 -0
- wmo/harness/vendor/pi-agent/test/harness/session-test-utils.ts +55 -0
- wmo/harness/vendor/pi-agent/test/harness/session-uuid.test.ts +50 -0
- wmo/harness/vendor/pi-agent/test/harness/session.test.ts +156 -0
- wmo/harness/vendor/pi-agent/test/harness/skills.test.ts +116 -0
- wmo/harness/vendor/pi-agent/test/harness/storage.test.ts +299 -0
- wmo/harness/vendor/pi-agent/test/harness/system-prompt.test.ts +66 -0
- wmo/harness/vendor/pi-agent/test/harness/truncate.test.ts +169 -0
- wmo/harness/vendor/pi-agent/test/scratch/simple.ts +72 -0
- wmo/harness/vendor/pi-agent/test/utils/calculate.ts +32 -0
- wmo/harness/vendor/pi-agent/test/utils/get-current-time.ts +46 -0
- wmo/harness/vendor/pi-agent/tsconfig.build.json +13 -0
- wmo/harness/vendor/pi-agent/vitest.config.ts +19 -0
- wmo/harness/vendor/pi-agent/vitest.harness.config.ts +28 -0
- wmo/harness/vendor/vendor_pi.sh +59 -0
- wmo/harness/workspace_patch.py +270 -0
- wmo/ingest/__init__.py +47 -0
- wmo/ingest/adapter.py +72 -0
- wmo/ingest/base.py +114 -0
- wmo/ingest/braintrust.py +339 -0
- wmo/ingest/detect.py +126 -0
- wmo/ingest/langfuse.py +291 -0
- wmo/ingest/langsmith.py +444 -0
- wmo/ingest/mastra.py +330 -0
- wmo/ingest/messages.py +170 -0
- wmo/ingest/normalize.py +679 -0
- wmo/ingest/otel_genai.py +69 -0
- wmo/ingest/otel_writer.py +100 -0
- wmo/ingest/phoenix.py +150 -0
- wmo/ingest/postgres.py +246 -0
- wmo/ingest/posthog.py +320 -0
- wmo/ingest/quality.py +28 -0
- wmo/ingest/stream.py +209 -0
- wmo/ingest/testdata/sample_otlp.json +60 -0
- wmo/ingest/testdata/sample_spans.jsonl +3 -0
- wmo/optimize/__init__.py +25 -0
- wmo/optimize/base.py +143 -0
- wmo/optimize/gepa.py +806 -0
- wmo/optimize/judge.py +262 -0
- wmo/optimize/judge_quality.py +359 -0
- wmo/optimize/knn.py +468 -0
- wmo/optimize/numeric.py +152 -0
- wmo/optimize/outcomes.py +103 -0
- wmo/optimize/policy.py +669 -0
- wmo/optimize/report.py +231 -0
- wmo/optimize/reward.py +129 -0
- wmo/optimize/routing.py +373 -0
- wmo/platform/__init__.py +6 -0
- wmo/platform/auth.py +115 -0
- wmo/platform/client.py +551 -0
- wmo/platform/credentials.py +126 -0
- wmo/platform/transfer.py +158 -0
- wmo/providers/__init__.py +40 -0
- wmo/providers/_bedrock_chat.py +155 -0
- wmo/providers/_openai_common.py +182 -0
- wmo/providers/_responses_common.py +472 -0
- wmo/providers/anthropic.py +134 -0
- wmo/providers/azure_openai.py +296 -0
- wmo/providers/base.py +300 -0
- wmo/providers/bedrock.py +312 -0
- wmo/providers/models.py +205 -0
- wmo/providers/openai.py +143 -0
- wmo/providers/openai_responses.py +240 -0
- wmo/providers/pool.py +170 -0
- wmo/providers/registry.py +73 -0
- wmo/providers/retry.py +151 -0
- wmo/providers/tinker.py +936 -0
- wmo/providers/waterfall.py +336 -0
- wmo/research/__init__.py +81 -0
- wmo/research/ablation.py +133 -0
- wmo/research/concurrency_plot.py +523 -0
- wmo/research/concurrency_run.py +240 -0
- wmo/research/concurrency_scaling.py +270 -0
- wmo/research/gepa_scaling.py +274 -0
- wmo/research/pipeline.py +198 -0
- wmo/research/scaling_split.py +82 -0
- wmo/research/scenario_fidelity.py +198 -0
- wmo/research/scenario_recovery.py +92 -0
- wmo/research/seed_stability.py +90 -0
- wmo/research/trace_scaling.py +348 -0
- wmo/retrieval/__init__.py +6 -0
- wmo/retrieval/embedders.py +105 -0
- wmo/retrieval/leakfree.py +52 -0
- wmo/retrieval/retriever.py +173 -0
- wmo/scenarios/__init__.py +58 -0
- wmo/scenarios/builder.py +152 -0
- wmo/scenarios/mining/__init__.py +27 -0
- wmo/scenarios/mining/clustering.py +171 -0
- wmo/scenarios/mining/facets.py +226 -0
- wmo/scenarios/mining/selection.py +220 -0
- wmo/scenarios/synthesis/__init__.py +6 -0
- wmo/scenarios/synthesis/scenario_set.py +63 -0
- wmo/scenarios/synthesis/synthesizer.py +85 -0
- wmo/scenarios/verification/__init__.py +17 -0
- wmo/scenarios/verification/judge.py +97 -0
- wmo/scenarios/verification/verify.py +135 -0
- wmo/serving/__init__.py +5 -0
- wmo/serving/builds.py +451 -0
- wmo/serving/chat.py +878 -0
- wmo/serving/endpoint_config.py +64 -0
- wmo/serving/savings.py +250 -0
- wmo/serving/server.py +553 -0
- wmo/serving/traces_source.py +206 -0
- wmo/telemetry.py +213 -0
- wmo/tracking/__init__.py +36 -0
- wmo/tracking/clock.py +24 -0
- wmo/tracking/metered.py +125 -0
- wmo/tracking/pricing.py +99 -0
- wmo/tracking/store.py +31 -0
- wmo/tracking/tracker.py +149 -0
- world_model_optimizer-0.2.0.dist-info/METADATA +203 -0
- world_model_optimizer-0.2.0.dist-info/RECORD +308 -0
- world_model_optimizer-0.2.0.dist-info/WHEEL +4 -0
- world_model_optimizer-0.2.0.dist-info/entry_points.txt +2 -0
|
@@ -0,0 +1,556 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [0.80.3] - 2026-06-30
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Added `prepareNextTurnWithContext` for `Agent` users that need the next-turn loop context.
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- Fixed `Agent.prepareNextTurn` to keep receiving the run abort signal instead of the next-turn context.
|
|
12
|
+
|
|
13
|
+
## [0.80.2] - 2026-06-23
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- Renamed the public harness shell execution options type from `ExecutionEnvExecOptions` to `ShellExecOptions`.
|
|
18
|
+
|
|
19
|
+
## [0.80.1] - 2026-06-23
|
|
20
|
+
|
|
21
|
+
## [0.80.0] - 2026-06-23
|
|
22
|
+
|
|
23
|
+
### Breaking Changes
|
|
24
|
+
|
|
25
|
+
- `AgentHarnessOptions.models` is required and is the only auth path: the harness streams turns, compaction, and branch summarization through the provided `Models` instance (`models.streamSimple()`/`completeSimple()`), resolving auth through the providers. `AgentHarnessOptions.getApiKeyAndHeaders` is removed — apps that resolved keys per request now express that as provider auth (`ApiKeyAuth`/`OAuthAuth`) on the providers in the `Models` collection. Build one with `createModels()` + provider factories (or `builtinModels()` from `@earendil-works/pi-ai/providers/all`); tests use `fauxProvider()`.
|
|
26
|
+
- `compact()`, `generateSummary()`, and `generateBranchSummary()` take a `Models` parameter and no longer accept explicit `apiKey`/`headers`.
|
|
27
|
+
- `StreamFn` is defined structurally (`(model, context, options?) => AssistantMessageEventStream | Promise<...>`); `Models.streamSimple` satisfies it.
|
|
28
|
+
- Removed the `@earendil-works/pi-agent-core/base` selective-provider entrypoint; use the root package with an explicit `Models` instance instead.
|
|
29
|
+
|
|
30
|
+
### Fixed
|
|
31
|
+
|
|
32
|
+
- Fixed harness session names to normalize newline characters before storing labels ([#5999](https://github.com/earendil-works/pi/pull/5999) by [@haoqixu](https://github.com/haoqixu)).
|
|
33
|
+
- Fixed harness compaction estimates to ignore malformed all-zero assistant usage after truncated responses ([#5526](https://github.com/earendil-works/pi/pull/5526) by [@dmmulroy](https://github.com/dmmulroy)).
|
|
34
|
+
|
|
35
|
+
## [0.79.10] - 2026-06-22
|
|
36
|
+
|
|
37
|
+
## [0.79.9] - 2026-06-20
|
|
38
|
+
|
|
39
|
+
### Fixed
|
|
40
|
+
|
|
41
|
+
- Fixed Node execution environment commands through legacy WSL `bash.exe` to pass scripts over stdin so shell variables expand in the target bash ([#5893](https://github.com/earendil-works/pi/issues/5893)).
|
|
42
|
+
|
|
43
|
+
## [0.79.8] - 2026-06-19
|
|
44
|
+
|
|
45
|
+
### Added
|
|
46
|
+
|
|
47
|
+
- Added `@earendil-works/pi-agent-core/base` for bundlers that want to pair the agent core with selective `@earendil-works/pi-ai/base` provider registration ([#5348](https://github.com/earendil-works/pi/pull/5348) by [@FredKSchott](https://github.com/FredKSchott)).
|
|
48
|
+
|
|
49
|
+
## [0.79.7] - 2026-06-18
|
|
50
|
+
|
|
51
|
+
## [0.79.6] - 2026-06-16
|
|
52
|
+
|
|
53
|
+
## [0.79.5] - 2026-06-16
|
|
54
|
+
|
|
55
|
+
## [0.79.4] - 2026-06-15
|
|
56
|
+
|
|
57
|
+
## [0.79.3] - 2026-06-13
|
|
58
|
+
|
|
59
|
+
## [0.79.2] - 2026-06-12
|
|
60
|
+
|
|
61
|
+
### Fixed
|
|
62
|
+
|
|
63
|
+
- Fixed late tool progress callbacks after tool settlement to be ignored instead of emitting stale `tool_execution_update` events ([#5573](https://github.com/earendil-works/pi/issues/5573)).
|
|
64
|
+
|
|
65
|
+
## [0.79.1] - 2026-06-09
|
|
66
|
+
|
|
67
|
+
## [0.79.0] - 2026-06-08
|
|
68
|
+
|
|
69
|
+
### Fixed
|
|
70
|
+
|
|
71
|
+
- Fixed the compaction summarization system prompt to use neutral AI assistant wording for non-coding agents ([#5401](https://github.com/earendil-works/pi/issues/5401)).
|
|
72
|
+
|
|
73
|
+
## [0.78.1] - 2026-06-04
|
|
74
|
+
|
|
75
|
+
## [0.78.0] - 2026-05-29
|
|
76
|
+
|
|
77
|
+
## [0.77.0] - 2026-05-28
|
|
78
|
+
|
|
79
|
+
### Breaking Changes
|
|
80
|
+
|
|
81
|
+
- Renamed agent harness `model_select` and `thinking_level_select` events to `model_update` and `thinking_level_update`.
|
|
82
|
+
|
|
83
|
+
### Added
|
|
84
|
+
|
|
85
|
+
- Added agent harness tool registry APIs, `tools_update` events, branch-scoped active-tool persistence, and duplicate tool validation.
|
|
86
|
+
|
|
87
|
+
## [0.76.0] - 2026-05-27
|
|
88
|
+
|
|
89
|
+
### Fixed
|
|
90
|
+
|
|
91
|
+
- Fixed context token estimates to count user image attachments consistently with tool result images ([#4983](https://github.com/earendil-works/pi/issues/4983)).
|
|
92
|
+
|
|
93
|
+
## [0.75.5] - 2026-05-23
|
|
94
|
+
|
|
95
|
+
## [0.75.4] - 2026-05-20
|
|
96
|
+
|
|
97
|
+
### Changed
|
|
98
|
+
|
|
99
|
+
- Changed source syntax to avoid TypeScript constructs that require JavaScript emit, keeping the package compatible with Node.js strip-only TypeScript checks.
|
|
100
|
+
- Removed the package-level development watch script now that the root TypeScript check validates strip-only-compatible sources.
|
|
101
|
+
|
|
102
|
+
### Fixed
|
|
103
|
+
|
|
104
|
+
- Fixed tool-call preflight to stop preparing sibling tool calls after the run is aborted ([#4276](https://github.com/earendil-works/pi/issues/4276)).
|
|
105
|
+
- Fixed tail truncation for oversized single-line output that ends with a trailing newline ([#4715](https://github.com/earendil-works/pi/issues/4715)).
|
|
106
|
+
- Fixed Windows Node execution environment command spawns to hide helper console windows from background processes ([#4699](https://github.com/earendil-works/pi/issues/4699)).
|
|
107
|
+
|
|
108
|
+
## [0.75.3] - 2026-05-18
|
|
109
|
+
|
|
110
|
+
## [0.75.2] - 2026-05-18
|
|
111
|
+
|
|
112
|
+
## [0.75.1] - 2026-05-18
|
|
113
|
+
|
|
114
|
+
## [0.75.0] - 2026-05-17
|
|
115
|
+
|
|
116
|
+
### Breaking Changes
|
|
117
|
+
|
|
118
|
+
- Raised the minimum supported Node.js version to 22.19.0.
|
|
119
|
+
|
|
120
|
+
## [0.74.1] - 2026-05-16
|
|
121
|
+
|
|
122
|
+
## [0.74.0] - 2026-05-07
|
|
123
|
+
|
|
124
|
+
## [0.73.1] - 2026-05-07
|
|
125
|
+
|
|
126
|
+
## [0.73.0] - 2026-05-04
|
|
127
|
+
|
|
128
|
+
## [0.72.1] - 2026-05-02
|
|
129
|
+
|
|
130
|
+
### Changed
|
|
131
|
+
|
|
132
|
+
- Changed the default agent transport to `auto` so providers can use their best available transport by default ([#4083](https://github.com/badlogic/pi-mono/issues/4083)).
|
|
133
|
+
|
|
134
|
+
## [0.72.0] - 2026-05-01
|
|
135
|
+
|
|
136
|
+
### Added
|
|
137
|
+
|
|
138
|
+
- Added `shouldStopAfterTurn` to the low-level agent loop config for gracefully exiting after a completed turn before polling queued messages or starting another LLM call.
|
|
139
|
+
|
|
140
|
+
## [0.71.1] - 2026-05-01
|
|
141
|
+
|
|
142
|
+
## [0.71.0] - 2026-04-30
|
|
143
|
+
|
|
144
|
+
## [0.70.6] - 2026-04-28
|
|
145
|
+
|
|
146
|
+
## [0.70.5] - 2026-04-27
|
|
147
|
+
|
|
148
|
+
## [0.70.4] - 2026-04-27
|
|
149
|
+
|
|
150
|
+
## [0.70.3] - 2026-04-27
|
|
151
|
+
|
|
152
|
+
## [0.70.2] - 2026-04-24
|
|
153
|
+
|
|
154
|
+
## [0.70.1] - 2026-04-24
|
|
155
|
+
|
|
156
|
+
## [0.70.0] - 2026-04-23
|
|
157
|
+
|
|
158
|
+
## [0.69.0] - 2026-04-22
|
|
159
|
+
|
|
160
|
+
### Breaking Changes
|
|
161
|
+
|
|
162
|
+
- Migrated public TypeBox-facing types and examples from `@sinclair/typebox` 0.34.x to `typebox` 1.x. Install and import from `typebox` instead of relying on `@sinclair/typebox` transitively ([#3112](https://github.com/badlogic/pi-mono/issues/3112))
|
|
163
|
+
|
|
164
|
+
### Added
|
|
165
|
+
|
|
166
|
+
- Added `terminate: true` tool-result hints to skip the automatic follow-up LLM call when every finalized tool result in the current batch opts into early termination ([#3525](https://github.com/badlogic/pi-mono/issues/3525))
|
|
167
|
+
|
|
168
|
+
## [0.68.1] - 2026-04-22
|
|
169
|
+
|
|
170
|
+
### Fixed
|
|
171
|
+
|
|
172
|
+
- Fixed `streamProxy()` to preserve the proxy-safe serializable subset of stream options, including session, transport, retry-delay, metadata, header, cache-retention, and thinking-budget settings ([#3512](https://github.com/badlogic/pi-mono/issues/3512))
|
|
173
|
+
- Fixed parallel tool execution to emit `tool_execution_end` as soon as each tool is finalized, while still emitting persisted tool-result messages in assistant source order ([#3503](https://github.com/badlogic/pi-mono/issues/3503))
|
|
174
|
+
|
|
175
|
+
## [0.68.0] - 2026-04-20
|
|
176
|
+
|
|
177
|
+
### Changed
|
|
178
|
+
|
|
179
|
+
- Clarified parallel tool execution ordering docs to specify that final tool lifecycle and tool-result artifacts are emitted in tool completion order.
|
|
180
|
+
|
|
181
|
+
## [0.67.68] - 2026-04-17
|
|
182
|
+
|
|
183
|
+
## [0.67.67] - 2026-04-17
|
|
184
|
+
|
|
185
|
+
### Fixed
|
|
186
|
+
|
|
187
|
+
- Fixed parallel tool-call finalization to convert `afterToolCall` hook throws into error tool results instead of aborting the batch ([#3084](https://github.com/badlogic/pi-mono/issues/3084))
|
|
188
|
+
|
|
189
|
+
## [0.67.6] - 2026-04-16
|
|
190
|
+
|
|
191
|
+
## [0.67.5] - 2026-04-16
|
|
192
|
+
|
|
193
|
+
## [0.67.4] - 2026-04-16
|
|
194
|
+
|
|
195
|
+
## [0.67.3] - 2026-04-15
|
|
196
|
+
|
|
197
|
+
## [0.67.2] - 2026-04-14
|
|
198
|
+
|
|
199
|
+
## [0.67.1] - 2026-04-13
|
|
200
|
+
|
|
201
|
+
## [0.67.0] - 2026-04-13
|
|
202
|
+
|
|
203
|
+
## [0.66.1] - 2026-04-08
|
|
204
|
+
|
|
205
|
+
## [0.66.0] - 2026-04-08
|
|
206
|
+
|
|
207
|
+
## [0.65.2] - 2026-04-06
|
|
208
|
+
|
|
209
|
+
## [0.65.1] - 2026-04-05
|
|
210
|
+
|
|
211
|
+
## [0.65.0] - 2026-04-03
|
|
212
|
+
|
|
213
|
+
### Breaking Changes
|
|
214
|
+
|
|
215
|
+
- `AgentState` has been reshaped:
|
|
216
|
+
- `streamMessage` was renamed to `streamingMessage`
|
|
217
|
+
- `error` was renamed to `errorMessage`
|
|
218
|
+
- `isStreaming`, `streamingMessage`, `pendingToolCalls`, and `errorMessage` are now readonly in the public API
|
|
219
|
+
- `pendingToolCalls` is now typed as `ReadonlySet<string>`
|
|
220
|
+
- `tools` and `messages` are now accessor properties, and assigning either field copies the provided top-level array instead of preserving array identity
|
|
221
|
+
- `AgentOptions.initialState` no longer accepts runtime-owned fields. Remove `isStreaming`, `streamingMessage`, `pendingToolCalls`, and `errorMessage` from `initialState` values.
|
|
222
|
+
- Removed `Agent` mutator methods in favor of direct property access:
|
|
223
|
+
- `agent.setSystemPrompt(value)` -> `agent.state.systemPrompt = value`
|
|
224
|
+
- `agent.setModel(model)` -> `agent.state.model = model`
|
|
225
|
+
- `agent.setThinkingLevel(level)` -> `agent.state.thinkingLevel = level`
|
|
226
|
+
- `agent.setTools(tools)` -> `agent.state.tools = tools`
|
|
227
|
+
- `agent.replaceMessages(messages)` -> `agent.state.messages = messages`
|
|
228
|
+
- `agent.appendMessage(message)` -> `agent.state.messages.push(message)`
|
|
229
|
+
- `agent.clearMessages()` -> `agent.state.messages = []`
|
|
230
|
+
- `agent.setToolExecution(mode)` -> `agent.toolExecution = mode`
|
|
231
|
+
- `agent.setBeforeToolCall(fn)` -> `agent.beforeToolCall = fn`
|
|
232
|
+
- `agent.setAfterToolCall(fn)` -> `agent.afterToolCall = fn`
|
|
233
|
+
- `agent.setTransport(transport)` -> `agent.transport = transport`
|
|
234
|
+
- Removed queue mode getter/setter methods in favor of properties:
|
|
235
|
+
- `agent.setSteeringMode(mode)` -> `agent.steeringMode = mode`
|
|
236
|
+
- `agent.getSteeringMode()` -> `agent.steeringMode`
|
|
237
|
+
- `agent.setFollowUpMode(mode)` -> `agent.followUpMode = mode`
|
|
238
|
+
- `agent.getFollowUpMode()` -> `agent.followUpMode`
|
|
239
|
+
- `Agent.subscribe()` listeners are now awaited and receive the active `AbortSignal`:
|
|
240
|
+
- `agent.subscribe((event) => { ... })` -> `agent.subscribe(async (event, signal) => { ... })`
|
|
241
|
+
- `agent_end` is now the final emitted event for a run, but not the idle boundary
|
|
242
|
+
- `agent.waitForIdle()`, `agent.prompt(...)`, and `agent.continue()` now settle only after awaited `agent_end` listeners finish
|
|
243
|
+
- `agent.state.isStreaming` remains `true` until that settlement completes
|
|
244
|
+
|
|
245
|
+
## [0.64.0] - 2026-03-29
|
|
246
|
+
|
|
247
|
+
### Added
|
|
248
|
+
|
|
249
|
+
- Added `AgentTool.prepareArguments` hook to prepare raw tool call arguments before schema validation, enabling compatibility shims for resumed sessions with outdated tool schemas
|
|
250
|
+
|
|
251
|
+
## [0.63.2] - 2026-03-29
|
|
252
|
+
|
|
253
|
+
### Added
|
|
254
|
+
|
|
255
|
+
- Added `Agent.signal` to expose the active abort signal for the current turn, allowing callers to forward cancellation into nested async work ([#2660](https://github.com/badlogic/pi-mono/issues/2660))
|
|
256
|
+
|
|
257
|
+
## [0.63.1] - 2026-03-27
|
|
258
|
+
|
|
259
|
+
## [0.63.0] - 2026-03-27
|
|
260
|
+
|
|
261
|
+
## [0.62.0] - 2026-03-23
|
|
262
|
+
|
|
263
|
+
## [0.61.1] - 2026-03-20
|
|
264
|
+
|
|
265
|
+
## [0.61.0] - 2026-03-20
|
|
266
|
+
|
|
267
|
+
## [0.60.0] - 2026-03-18
|
|
268
|
+
|
|
269
|
+
## [0.59.0] - 2026-03-17
|
|
270
|
+
|
|
271
|
+
## [0.58.4] - 2026-03-16
|
|
272
|
+
|
|
273
|
+
### Fixed
|
|
274
|
+
|
|
275
|
+
- Fixed steering messages to wait until the current assistant message's tool-call batch fully finishes instead of skipping pending tool calls.
|
|
276
|
+
|
|
277
|
+
## [0.58.3] - 2026-03-15
|
|
278
|
+
|
|
279
|
+
## [0.58.2] - 2026-03-15
|
|
280
|
+
|
|
281
|
+
## [0.58.1] - 2026-03-14
|
|
282
|
+
|
|
283
|
+
## [0.58.0] - 2026-03-14
|
|
284
|
+
|
|
285
|
+
### Added
|
|
286
|
+
|
|
287
|
+
- Added `beforeToolCall` and `afterToolCall` hooks to `AgentOptions` and `AgentLoopConfig` for preflight blocking and post-execution tool result mutation.
|
|
288
|
+
|
|
289
|
+
### Changed
|
|
290
|
+
|
|
291
|
+
- Added configurable tool execution mode to `Agent` and `agentLoop` via `toolExecution: "parallel" | "sequential"`, with `parallel` as the default. Parallel mode preflights tool calls sequentially, executes allowed tools concurrently, and emits final tool results in assistant source order.
|
|
292
|
+
|
|
293
|
+
## [0.57.1] - 2026-03-07
|
|
294
|
+
|
|
295
|
+
## [0.57.0] - 2026-03-07
|
|
296
|
+
|
|
297
|
+
## [0.56.3] - 2026-03-06
|
|
298
|
+
|
|
299
|
+
## [0.56.2] - 2026-03-05
|
|
300
|
+
|
|
301
|
+
## [0.56.1] - 2026-03-05
|
|
302
|
+
|
|
303
|
+
## [0.56.0] - 2026-03-04
|
|
304
|
+
|
|
305
|
+
## [0.55.4] - 2026-03-02
|
|
306
|
+
|
|
307
|
+
## [0.55.3] - 2026-02-27
|
|
308
|
+
|
|
309
|
+
## [0.55.2] - 2026-02-27
|
|
310
|
+
|
|
311
|
+
## [0.55.1] - 2026-02-26
|
|
312
|
+
|
|
313
|
+
## [0.55.0] - 2026-02-24
|
|
314
|
+
|
|
315
|
+
## [0.54.2] - 2026-02-23
|
|
316
|
+
|
|
317
|
+
## [0.54.1] - 2026-02-22
|
|
318
|
+
|
|
319
|
+
## [0.54.0] - 2026-02-19
|
|
320
|
+
|
|
321
|
+
## [0.53.1] - 2026-02-19
|
|
322
|
+
|
|
323
|
+
## [0.53.0] - 2026-02-17
|
|
324
|
+
|
|
325
|
+
## [0.52.12] - 2026-02-13
|
|
326
|
+
|
|
327
|
+
### Added
|
|
328
|
+
|
|
329
|
+
- Added `transport` to `AgentOptions` and `AgentLoopConfig` forwarding, allowing stream transport preference (`"sse"`, `"websocket"`, `"auto"`) to flow into provider calls.
|
|
330
|
+
|
|
331
|
+
## [0.52.11] - 2026-02-13
|
|
332
|
+
|
|
333
|
+
## [0.52.10] - 2026-02-12
|
|
334
|
+
|
|
335
|
+
## [0.52.9] - 2026-02-08
|
|
336
|
+
|
|
337
|
+
## [0.52.8] - 2026-02-07
|
|
338
|
+
|
|
339
|
+
## [0.52.7] - 2026-02-06
|
|
340
|
+
|
|
341
|
+
### Fixed
|
|
342
|
+
|
|
343
|
+
- Fixed `continue()` to resume queued steering/follow-up messages when context currently ends in an assistant message, and preserved one-at-a-time steering ordering during assistant-tail resumes ([#1312](https://github.com/badlogic/pi-mono/pull/1312) by [@ferologics](https://github.com/ferologics))
|
|
344
|
+
|
|
345
|
+
## [0.52.6] - 2026-02-05
|
|
346
|
+
|
|
347
|
+
## [0.52.5] - 2026-02-05
|
|
348
|
+
|
|
349
|
+
## [0.52.4] - 2026-02-05
|
|
350
|
+
|
|
351
|
+
## [0.52.3] - 2026-02-05
|
|
352
|
+
|
|
353
|
+
## [0.52.2] - 2026-02-05
|
|
354
|
+
|
|
355
|
+
## [0.52.1] - 2026-02-05
|
|
356
|
+
|
|
357
|
+
## [0.52.0] - 2026-02-05
|
|
358
|
+
|
|
359
|
+
## [0.51.6] - 2026-02-04
|
|
360
|
+
|
|
361
|
+
## [0.51.5] - 2026-02-04
|
|
362
|
+
|
|
363
|
+
## [0.51.4] - 2026-02-03
|
|
364
|
+
|
|
365
|
+
## [0.51.3] - 2026-02-03
|
|
366
|
+
|
|
367
|
+
## [0.51.2] - 2026-02-03
|
|
368
|
+
|
|
369
|
+
## [0.51.1] - 2026-02-02
|
|
370
|
+
|
|
371
|
+
## [0.51.0] - 2026-02-01
|
|
372
|
+
|
|
373
|
+
## [0.50.9] - 2026-02-01
|
|
374
|
+
|
|
375
|
+
## [0.50.8] - 2026-02-01
|
|
376
|
+
|
|
377
|
+
### Added
|
|
378
|
+
|
|
379
|
+
- Added `maxRetryDelayMs` option to `AgentOptions` to cap server-requested retry delays. Passed through to the underlying stream function. ([#1123](https://github.com/badlogic/pi-mono/issues/1123))
|
|
380
|
+
|
|
381
|
+
## [0.50.7] - 2026-01-31
|
|
382
|
+
|
|
383
|
+
## [0.50.6] - 2026-01-30
|
|
384
|
+
|
|
385
|
+
## [0.50.5] - 2026-01-30
|
|
386
|
+
|
|
387
|
+
## [0.50.3] - 2026-01-29
|
|
388
|
+
|
|
389
|
+
## [0.50.2] - 2026-01-29
|
|
390
|
+
|
|
391
|
+
## [0.50.1] - 2026-01-26
|
|
392
|
+
|
|
393
|
+
## [0.50.0] - 2026-01-26
|
|
394
|
+
|
|
395
|
+
## [0.49.3] - 2026-01-22
|
|
396
|
+
|
|
397
|
+
## [0.49.2] - 2026-01-19
|
|
398
|
+
|
|
399
|
+
## [0.49.1] - 2026-01-18
|
|
400
|
+
|
|
401
|
+
## [0.49.0] - 2026-01-17
|
|
402
|
+
|
|
403
|
+
## [0.48.0] - 2026-01-16
|
|
404
|
+
|
|
405
|
+
## [0.47.0] - 2026-01-16
|
|
406
|
+
|
|
407
|
+
## [0.46.0] - 2026-01-15
|
|
408
|
+
|
|
409
|
+
## [0.45.7] - 2026-01-13
|
|
410
|
+
|
|
411
|
+
## [0.45.6] - 2026-01-13
|
|
412
|
+
|
|
413
|
+
## [0.45.5] - 2026-01-13
|
|
414
|
+
|
|
415
|
+
## [0.45.4] - 2026-01-13
|
|
416
|
+
|
|
417
|
+
## [0.45.3] - 2026-01-13
|
|
418
|
+
|
|
419
|
+
## [0.45.2] - 2026-01-13
|
|
420
|
+
|
|
421
|
+
## [0.45.1] - 2026-01-13
|
|
422
|
+
|
|
423
|
+
## [0.45.0] - 2026-01-13
|
|
424
|
+
|
|
425
|
+
## [0.44.0] - 2026-01-12
|
|
426
|
+
|
|
427
|
+
## [0.43.0] - 2026-01-11
|
|
428
|
+
|
|
429
|
+
## [0.42.5] - 2026-01-11
|
|
430
|
+
|
|
431
|
+
## [0.42.4] - 2026-01-10
|
|
432
|
+
|
|
433
|
+
## [0.42.3] - 2026-01-10
|
|
434
|
+
|
|
435
|
+
## [0.42.2] - 2026-01-10
|
|
436
|
+
|
|
437
|
+
## [0.42.1] - 2026-01-09
|
|
438
|
+
|
|
439
|
+
## [0.42.0] - 2026-01-09
|
|
440
|
+
|
|
441
|
+
## [0.41.0] - 2026-01-09
|
|
442
|
+
|
|
443
|
+
## [0.40.1] - 2026-01-09
|
|
444
|
+
|
|
445
|
+
## [0.40.0] - 2026-01-08
|
|
446
|
+
|
|
447
|
+
## [0.39.1] - 2026-01-08
|
|
448
|
+
|
|
449
|
+
## [0.39.0] - 2026-01-08
|
|
450
|
+
|
|
451
|
+
## [0.38.0] - 2026-01-08
|
|
452
|
+
|
|
453
|
+
### Added
|
|
454
|
+
|
|
455
|
+
- `thinkingBudgets` option on `Agent` and `AgentOptions` to customize token budgets per thinking level ([#529](https://github.com/badlogic/pi-mono/pull/529) by [@melihmucuk](https://github.com/melihmucuk))
|
|
456
|
+
|
|
457
|
+
## [0.37.8] - 2026-01-07
|
|
458
|
+
|
|
459
|
+
## [0.37.7] - 2026-01-07
|
|
460
|
+
|
|
461
|
+
## [0.37.6] - 2026-01-06
|
|
462
|
+
|
|
463
|
+
## [0.37.5] - 2026-01-06
|
|
464
|
+
|
|
465
|
+
## [0.37.4] - 2026-01-06
|
|
466
|
+
|
|
467
|
+
## [0.37.3] - 2026-01-06
|
|
468
|
+
|
|
469
|
+
### Added
|
|
470
|
+
|
|
471
|
+
- `sessionId` option on `Agent` to forward session identifiers to LLM providers for session-based caching.
|
|
472
|
+
|
|
473
|
+
## [0.37.2] - 2026-01-05
|
|
474
|
+
|
|
475
|
+
## [0.37.1] - 2026-01-05
|
|
476
|
+
|
|
477
|
+
## [0.37.0] - 2026-01-05
|
|
478
|
+
|
|
479
|
+
### Fixed
|
|
480
|
+
|
|
481
|
+
- `minimal` thinking level now maps to `minimal` reasoning effort instead of being treated as `low`.
|
|
482
|
+
|
|
483
|
+
## [0.36.0] - 2026-01-05
|
|
484
|
+
|
|
485
|
+
## [0.35.0] - 2026-01-05
|
|
486
|
+
|
|
487
|
+
## [0.34.2] - 2026-01-04
|
|
488
|
+
|
|
489
|
+
## [0.34.1] - 2026-01-04
|
|
490
|
+
|
|
491
|
+
## [0.34.0] - 2026-01-04
|
|
492
|
+
|
|
493
|
+
## [0.33.0] - 2026-01-04
|
|
494
|
+
|
|
495
|
+
## [0.32.3] - 2026-01-03
|
|
496
|
+
|
|
497
|
+
## [0.32.2] - 2026-01-03
|
|
498
|
+
|
|
499
|
+
## [0.32.1] - 2026-01-03
|
|
500
|
+
|
|
501
|
+
## [0.32.0] - 2026-01-03
|
|
502
|
+
|
|
503
|
+
### Breaking Changes
|
|
504
|
+
|
|
505
|
+
- **Queue API replaced with steer/followUp**: The `queueMessage()` method has been split into two methods with different delivery semantics ([#403](https://github.com/badlogic/pi-mono/issues/403)):
|
|
506
|
+
- `steer(msg)`: Interrupts the agent mid-run. Delivered after current tool execution, skips remaining tools.
|
|
507
|
+
- `followUp(msg)`: Waits until the agent finishes. Delivered only when there are no more tool calls or steering messages.
|
|
508
|
+
- **Queue mode renamed**: `queueMode` option renamed to `steeringMode`. Added new `followUpMode` option. Both control whether messages are delivered one-at-a-time or all at once.
|
|
509
|
+
- **AgentLoopConfig callbacks renamed**: `getQueuedMessages` split into `getSteeringMessages` and `getFollowUpMessages`.
|
|
510
|
+
- **Agent methods renamed**:
|
|
511
|
+
- `queueMessage()` → `steer()` and `followUp()`
|
|
512
|
+
- `clearMessageQueue()` → `clearSteeringQueue()`, `clearFollowUpQueue()`, `clearAllQueues()`
|
|
513
|
+
- `setQueueMode()`/`getQueueMode()` → `setSteeringMode()`/`getSteeringMode()` and `setFollowUpMode()`/`getFollowUpMode()`
|
|
514
|
+
|
|
515
|
+
### Fixed
|
|
516
|
+
|
|
517
|
+
- `prompt()` and `continue()` now throw if called while the agent is already streaming, preventing race conditions and corrupted state. Use `steer()` or `followUp()` to queue messages during streaming, or `await` the previous call.
|
|
518
|
+
|
|
519
|
+
## [0.31.1] - 2026-01-02
|
|
520
|
+
|
|
521
|
+
## [0.31.0] - 2026-01-02
|
|
522
|
+
|
|
523
|
+
### Breaking Changes
|
|
524
|
+
|
|
525
|
+
- **Transport abstraction removed**: `ProviderTransport`, `AppTransport`, and `AgentTransport` interface have been removed. Use the `streamFn` option directly for custom streaming implementations.
|
|
526
|
+
|
|
527
|
+
- **Agent options renamed**:
|
|
528
|
+
- `transport` → removed (use `streamFn` instead)
|
|
529
|
+
- `messageTransformer` → `convertToLlm`
|
|
530
|
+
- `preprocessor` → `transformContext`
|
|
531
|
+
|
|
532
|
+
- **`AppMessage` renamed to `AgentMessage`**: All references to `AppMessage` have been renamed to `AgentMessage` for consistency.
|
|
533
|
+
|
|
534
|
+
- **`CustomMessages` renamed to `CustomAgentMessages`**: The declaration merging interface has been renamed.
|
|
535
|
+
|
|
536
|
+
- **`UserMessageWithAttachments` and `Attachment` types removed**: Attachment handling is now the responsibility of the `convertToLlm` function.
|
|
537
|
+
|
|
538
|
+
- **Agent loop moved from `@mariozechner/pi-ai`**: The `agentLoop`, `agentLoopContinue`, and related types have moved to this package. Import from `@mariozechner/pi-agent-core` instead.
|
|
539
|
+
|
|
540
|
+
### Added
|
|
541
|
+
|
|
542
|
+
- `streamFn` option on `Agent` for custom stream implementations. Default uses `streamSimple` from pi-ai.
|
|
543
|
+
|
|
544
|
+
- `streamProxy()` utility function for browser apps that need to proxy LLM calls through a backend server. Replaces the removed `AppTransport`.
|
|
545
|
+
|
|
546
|
+
- `getApiKey` option for dynamic API key resolution (useful for expiring OAuth tokens like GitHub Copilot).
|
|
547
|
+
|
|
548
|
+
- `agentLoop()` and `agentLoopContinue()` low-level functions for running the agent loop without the `Agent` class wrapper.
|
|
549
|
+
|
|
550
|
+
- New exported types: `AgentLoopConfig`, `AgentContext`, `AgentTool`, `AgentToolResult`, `AgentToolUpdateCallback`, `StreamFn`.
|
|
551
|
+
|
|
552
|
+
### Changed
|
|
553
|
+
|
|
554
|
+
- `Agent` constructor now has all options optional (empty options use defaults).
|
|
555
|
+
|
|
556
|
+
- `queueMessage()` is now synchronous (no longer returns a Promise).
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Mario Zechner
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|