@mono-agent/agent-runtime 0.20.11 → 0.20.14
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/MIGRATION.md +264 -25
- package/README.md +139 -448
- package/package.json +7 -43
- package/src/agent/tools/agent-tool.js +5 -5
- package/src/agent/tools/bash.js +1 -24
- package/src/agent/tools/codex-subscription-search.js +1 -1
- package/src/agent/tools/index.js +7 -0
- package/src/agent/tools/monitor.js +140 -0
- package/src/agent/tools/pi-bridge.js +92 -7
- package/src/agent/tools/shared/bash-environment.js +31 -0
- package/src/agent/tools/shared/monitors.js +274 -0
- package/src/agent/tools/shared/process-runner.js +23 -5
- package/src/ai/cost.js +13 -68
- package/src/ai/index.js +4 -17
- package/src/ai/pi-interop.js +65 -1
- package/src/ai/pi-oauth-compat.js +1 -1
- package/src/ai/providers/codex/app-server-client.js +592 -0
- package/src/ai/providers/pi-models.js +18 -10
- package/src/ai/providers/pi-native/compaction-driver.js +49 -21
- package/src/ai/providers/pi-native/harness-adapter.js +338 -0
- package/src/ai/providers/pi-native/result-builder.js +10 -10
- package/src/ai/providers/pi-native/session-lifecycle.js +95 -40
- package/src/ai/providers/pi-native/stream-subscriber.js +23 -5
- package/src/ai/providers/pi-native/turn-runner.js +34 -15
- package/src/ai/providers/pi-native.js +48 -22
- package/src/ai/runtime/capabilities.js +11 -56
- package/src/ai/runtime/model-refs.js +118 -153
- package/src/ai/runtime/registry.js +22 -56
- package/src/ai/runtime/router.js +48 -408
- package/src/ai/runtime/session-liveness.js +3 -4
- package/src/ai/runtime/sessions.js +4 -5
- package/src/ai/runtime/tool-policy.js +0 -2
- package/src/ai/types.js +12 -108
- package/src/index.js +0 -6
- package/src/runtime.js +8 -14
- package/types/agent/tools/agent-tool.d.ts +1 -2
- package/types/agent/tools/codex-subscription-search.d.ts +1 -1
- package/types/agent/tools/index.d.ts +1 -0
- package/types/agent/tools/monitor.d.ts +44 -0
- package/types/agent/tools/pi-bridge.d.ts +3 -2
- package/types/agent/tools/shared/bash-environment.d.ts +4 -0
- package/types/agent/tools/shared/monitors.d.ts +83 -0
- package/types/agent/tools/shared/process-runner.d.ts +11 -2
- package/types/ai/cost.d.ts +1 -2
- package/types/ai/index.d.ts +1 -4
- package/types/ai/pi-interop.d.ts +20 -0
- package/types/ai/providers/codex/app-server-client.d.ts +37 -0
- package/types/ai/providers/pi-native/harness-adapter.d.ts +56 -0
- package/types/ai/providers/pi-native/result-builder.d.ts +3 -3
- package/types/ai/providers/pi-native/session-lifecycle.d.ts +2 -1
- package/types/ai/providers/pi-native/stream-subscriber.d.ts +2 -2
- package/types/ai/providers/pi-native/turn-runner.d.ts +33 -6
- package/types/ai/providers/pi-native.d.ts +21 -4
- package/types/ai/runtime/capabilities.d.ts +21 -70
- package/types/ai/runtime/model-refs.d.ts +0 -24
- package/types/ai/runtime/router.d.ts +3 -10
- package/types/ai/runtime/tool-policy.d.ts +0 -2
- package/types/ai/types.d.ts +28 -250
- package/types/index.d.ts +0 -1
- package/src/ai/providers/acp-client.js +0 -1149
- package/src/ai/providers/acp-privacy.js +0 -124
- package/src/ai/providers/acp-public.js +0 -21
- package/src/ai/providers/acp-session-tokens.js +0 -282
- package/src/ai/providers/acp-transport.js +0 -356
- package/src/ai/providers/acp.js +0 -543
- package/src/ai/providers/claude-cli.js +0 -883
- package/src/ai/providers/claude-sandbox.js +0 -71
- package/src/ai/providers/claude-sdk-discovery-worker.js +0 -53
- package/src/ai/providers/claude-sdk-discovery.js +0 -352
- package/src/ai/providers/claude-sdk.js +0 -1127
- package/src/ai/providers/claude-subagent-activity.js +0 -719
- package/src/ai/providers/claude-subagents.js +0 -88
- package/src/ai/providers/codex-app.js +0 -2946
- package/src/ai/providers/opencode-app.js +0 -1109
- package/src/ai/providers/opencode-discovery.js +0 -39
- package/src/ai/providers/opencode-server.js +0 -508
- package/src/ai/runtime/context-windows.js +0 -46
- package/src/ai/runtime/fast-mode.js +0 -8
- package/src/ai/streaming/codex-events.js +0 -146
- package/src/ai/streaming/opencode-events.js +0 -59
- package/types/ai/providers/acp-client.d.ts +0 -227
- package/types/ai/providers/acp-privacy.d.ts +0 -25
- package/types/ai/providers/acp-public.d.ts +0 -7
- package/types/ai/providers/acp-session-tokens.d.ts +0 -41
- package/types/ai/providers/acp-transport.d.ts +0 -45
- package/types/ai/providers/acp.d.ts +0 -93
- package/types/ai/providers/claude-cli.d.ts +0 -305
- package/types/ai/providers/claude-sandbox.d.ts +0 -79
- package/types/ai/providers/claude-sdk-discovery-worker.d.ts +0 -1
- package/types/ai/providers/claude-sdk-discovery.d.ts +0 -97
- package/types/ai/providers/claude-sdk.d.ts +0 -138
- package/types/ai/providers/claude-subagent-activity.d.ts +0 -53
- package/types/ai/providers/claude-subagents.d.ts +0 -18
- package/types/ai/providers/codex-app.d.ts +0 -151
- package/types/ai/providers/opencode-app.d.ts +0 -96
- package/types/ai/providers/opencode-discovery.d.ts +0 -4
- package/types/ai/providers/opencode-server.d.ts +0 -20
- package/types/ai/runtime/context-windows.d.ts +0 -9
- package/types/ai/runtime/fast-mode.d.ts +0 -2
- package/types/ai/streaming/codex-events.d.ts +0 -40
- package/types/ai/streaming/opencode-events.d.ts +0 -42
package/MIGRATION.md
CHANGED
|
@@ -6,10 +6,9 @@ current pre-1.0 contract. `createRuntime()` remains the package entry point;
|
|
|
6
6
|
`@mono-agent/runtime-adapter`. Provider-session input/output uses
|
|
7
7
|
`providerSessionId`, with `disposeSession()` and `disposeAllSessions()` retained.
|
|
8
8
|
|
|
9
|
-
Review every section that matches your usage.
|
|
10
|
-
|
|
11
|
-
behavior, and revised provider-session semantics
|
|
12
|
-
primary route.
|
|
9
|
+
Review every section that matches your usage. As of `0.21.0` the package runs
|
|
10
|
+
exactly one runtime — Pi — behind an explicit exports map, with typed policy
|
|
11
|
+
objects, stricter sandbox behavior, and revised provider-session semantics.
|
|
13
12
|
|
|
14
13
|
Migration policy: every newly introduced fail-closed validation belongs in the
|
|
15
14
|
first affected version section, even when it tightens behavior without changing
|
|
@@ -17,6 +16,255 @@ the configuration schema.
|
|
|
17
16
|
|
|
18
17
|
---
|
|
19
18
|
|
|
19
|
+
## 0.21.0
|
|
20
|
+
|
|
21
|
+
**This is the largest breaking change since `0.3.x`.** mono-agent shipped six
|
|
22
|
+
runtime bridges behind a dispatch table; it now runs only its Pi implementation.
|
|
23
|
+
Read the whole section before upgrading a live agent, and migrate its config
|
|
24
|
+
before restarting one.
|
|
25
|
+
|
|
26
|
+
### Pi 0.85 dependency migration
|
|
27
|
+
|
|
28
|
+
The runtime exact-pins Pi AI and Pi Agent Core at `0.85.0`; the TUI pins Pi TUI
|
|
29
|
+
at the same version. Pi's harness is now created asynchronously and exposes
|
|
30
|
+
prompt, navigation, compaction, abort, event, and transcript operations through
|
|
31
|
+
its `main` lane with an explicit operation context. mono-agent absorbs that API
|
|
32
|
+
change in its Pi compatibility adapter; hosts do not need a config migration.
|
|
33
|
+
|
|
34
|
+
Pi's JSONL store now writes v4 transcripts. Existing v3 transcripts are
|
|
35
|
+
upgraded by Pi when opened and retain their conversation context. An unfinished
|
|
36
|
+
durable operation is aborted before mono-agent accepts a new prompt because
|
|
37
|
+
mono-agent tools do not yet use Pi's replay-memo contract; this prevents an
|
|
38
|
+
interrupted side-effecting tool from being executed twice.
|
|
39
|
+
|
|
40
|
+
### Deleted runtime bridges
|
|
41
|
+
|
|
42
|
+
`claude-sdk`, `claude-code-cli`, `codex-app-cli`, `opencode-app-cli` and
|
|
43
|
+
`acp-stdio` are gone. `pi-sdk` remains and is no longer *a* backend — it is the
|
|
44
|
+
runtime. The backend descriptor table, the selection table and
|
|
45
|
+
`MonoRuntimeBackendId` are removed with them.
|
|
46
|
+
|
|
47
|
+
### What is NOT deleted
|
|
48
|
+
|
|
49
|
+
Four surfaces share names with the deleted bridges and are unaffected. If you
|
|
50
|
+
use any of them, nothing changes:
|
|
51
|
+
|
|
52
|
+
- **The ACP *server* bridge** (`mono-agent bridge acp`) — mono-agent still
|
|
53
|
+
serves ACP to clients. Only the ACP *client* backend was removed.
|
|
54
|
+
- **`install-skill --target claude|codex`** — writes skills into those tools'
|
|
55
|
+
directories.
|
|
56
|
+
- **`docs-mcp-pairing`** — pairs the docs MCP with Claude Code and Codex.
|
|
57
|
+
- **The Codex web-search backend** (`tools.web.search.backend: "codex"`) — it
|
|
58
|
+
drives a real Codex app-server through an extracted client.
|
|
59
|
+
|
|
60
|
+
Note also that `openai-codex` and `opencode-go` are **Pi provider ids**, not
|
|
61
|
+
references to the deleted bridges. Routes naming them keep working.
|
|
62
|
+
|
|
63
|
+
### Model reference grammar
|
|
64
|
+
|
|
65
|
+
Old: `<sdk>:[<provider>:]<model>`. New: **`<provider>:<model>`**, split at the
|
|
66
|
+
first colon only.
|
|
67
|
+
|
|
68
|
+
| before | after |
|
|
69
|
+
| --- | --- |
|
|
70
|
+
| `pi:openai-codex:gpt-5.6-sol` | `openai-codex:gpt-5.6-sol` |
|
|
71
|
+
| `pi:anthropic:claude-opus-5` | `anthropic:claude-opus-5` |
|
|
72
|
+
| `ollama:llama3.1:8b` | unchanged — only the first colon splits |
|
|
73
|
+
| `codex:gpt-5.6-terra` | **rejected**; no mechanical replacement |
|
|
74
|
+
|
|
75
|
+
A leading `pi:` is canonicalized away automatically, so those refs keep working
|
|
76
|
+
and stripping the prefix is optional tidying rather than a migration step.
|
|
77
|
+
`codex:`, `claude:`, `claude-code:`, `codex-cli:`, `acp:` and `vercel:` are
|
|
78
|
+
rejected at load with the replacement named in the message `doctor`,
|
|
79
|
+
`mono-agent validate`, `mono-agent config` and the startup error all print. They
|
|
80
|
+
are **not** migrated automatically: `codex:gpt-5.6-terra` →
|
|
81
|
+
`openai-codex:gpt-5.6-terra` looks mechanical but changes which auth store the
|
|
82
|
+
agent reads, and refs paired with `executionMode: "cli"` have no Pi equivalent
|
|
83
|
+
at all. A human has to choose.
|
|
84
|
+
|
|
85
|
+
### Retired configuration keys
|
|
86
|
+
|
|
87
|
+
Each has an environment twin, and both now fail at load with the repair for the
|
|
88
|
+
surface they were set on, instead of a generic unknown-key error. A single load
|
|
89
|
+
is exhaustive *within one class*: every retired key present is named in one
|
|
90
|
+
message, and every retired variable set is named in one message — not one per
|
|
91
|
+
run. It is not exhaustive *across* classes. A config carrying both a retired key
|
|
92
|
+
and a retired variable stops at the key, and names the variable only on the next
|
|
93
|
+
run; see [Migrating a config](#migrating-a-config) for the order the classes are
|
|
94
|
+
checked in. An empty assignment (`KEY=`) is treated as unset and does not fail.
|
|
95
|
+
|
|
96
|
+
| key | environment twin | replacement |
|
|
97
|
+
| --- | --- | --- |
|
|
98
|
+
| `runtime.executionMode` | `MONO_AGENT_EXECUTION_MODE` | delete it — only the Pi runtime remains |
|
|
99
|
+
| `memory.llm.executionMode` | `MONO_AGENT_MEMORY_LLM_EXECUTION_MODE` | delete it, same reason |
|
|
100
|
+
| `runtime.routeSafety` | `MONO_AGENT_ROUTE_SAFETY` | delete it — every route is Pi-native, so `per-route-native` has no meaning |
|
|
101
|
+
| `runtime.fallbackModels` | `MONO_AGENT_FALLBACK_MODELS` | `runtime.fallbacks: [{ "model": "..." }]` for the key, `MONO_AGENT_FALLBACKS_JSON` for the variable |
|
|
102
|
+
|
|
103
|
+
`runtime.fallbacks` stays uncapped: `runtime.model` plus its fallbacks are the
|
|
104
|
+
default route and its backups, nothing more.
|
|
105
|
+
|
|
106
|
+
### New: `providers`
|
|
107
|
+
|
|
108
|
+
`providers` declares which providers the agent supports, and widens what is
|
|
109
|
+
*selectable* to those providers' full catalogs — previously you could only pick
|
|
110
|
+
`runtime.model` or a declared fallback, so trying a new model meant editing
|
|
111
|
+
config and restarting. `ollama` and `lmstudio` are zero-config autodiscovered on
|
|
112
|
+
`localhost:11434` and `localhost:1234`; an explicit entry only overrides
|
|
113
|
+
endpoint or credentials. `providers.local[]` migrates on load.
|
|
114
|
+
|
|
115
|
+
Agents advertise the catalog additively: a slim `providers` array on `/v1/info`
|
|
116
|
+
plus a lazy `GET /v1/models`. `TUI_WIRE_SCHEMA` is **not** bumped, so existing
|
|
117
|
+
consoles keep working.
|
|
118
|
+
|
|
119
|
+
### Removed deep exports
|
|
120
|
+
|
|
121
|
+
Subpath exports went from 26 to 17. The removed subpaths all belonged to deleted
|
|
122
|
+
bridges; import the Pi equivalents from the package root.
|
|
123
|
+
|
|
124
|
+
### Removed host options
|
|
125
|
+
|
|
126
|
+
Three `createRuntime()` host options went with the ACP *client* backend that was
|
|
127
|
+
their only consumer: `resolveAcpProfile`, `onAcpInteractionRequest` and
|
|
128
|
+
`acpSessionTokenKey`. The `0.18.0` and `0.18.1` sections below still describe
|
|
129
|
+
them as required — that is a correct record of what those releases needed, and
|
|
130
|
+
those sections are deliberately unchanged. As of `0.21.0` the runtime no longer
|
|
131
|
+
binds them, and passing them is inert.
|
|
132
|
+
|
|
133
|
+
This does **not** affect the ACP *server* bridge (`mono-agent bridge acp`),
|
|
134
|
+
which never used them; see [What is NOT deleted](#what-is-not-deleted).
|
|
135
|
+
|
|
136
|
+
### Web console store
|
|
137
|
+
|
|
138
|
+
Schema v10 → v12, in two guarded steps: v11 adds per-thread `run_model` /
|
|
139
|
+
`run_effort`, and v12 adds `agents.providers_json`, the persisted summary of the
|
|
140
|
+
providers an agent advertises. Each step is guarded on `PRAGMA table_info` and
|
|
141
|
+
re-runnable, and adds columns only — no rows are rewritten. Per-conversation
|
|
142
|
+
model and effort overrides now persist server-side, so they roam between devices
|
|
143
|
+
instead of living in one browser's localStorage.
|
|
144
|
+
|
|
145
|
+
### Migrating a config
|
|
146
|
+
|
|
147
|
+
There is no codemod. `mono-agent migrate-config` was written for this release and
|
|
148
|
+
then removed before it shipped: it rewrote a live agent's config while the agent
|
|
149
|
+
itself could be writing the same file, and that race could not be closed — only
|
|
150
|
+
narrowed. Migrating by hand is a few minutes per agent and cannot lose data.
|
|
151
|
+
|
|
152
|
+
The loader does the finding for you. Every retired key, retired environment
|
|
153
|
+
variable and rejected model reference fails at load naming its own repair, so an
|
|
154
|
+
unmigrated agent refuses to start and tells you what to change:
|
|
155
|
+
|
|
156
|
+
```text
|
|
157
|
+
MonoAgentConfigError: invalid_json
|
|
158
|
+
`runtime.executionMode` was removed; mono-agent runs only the Pi runtime (SDK).
|
|
159
|
+
Delete the key.
|
|
160
|
+
|
|
161
|
+
MonoAgentConfigError: invalid_env
|
|
162
|
+
`MONO_AGENT_FALLBACK_MODELS` was replaced by `MONO_AGENT_FALLBACKS_JSON`, a JSON
|
|
163
|
+
array of `{ "model": "..." }` objects. Remove the variable and re-express the
|
|
164
|
+
chain there, or drop it into `runtime.fallbacks` in mono-agent.config.json.
|
|
165
|
+
|
|
166
|
+
MonoAgentConfigError: invalid_model_reference
|
|
167
|
+
runtime.model `codex:gpt-5.6-terra` is not a valid runtime model reference:
|
|
168
|
+
codex is no longer a runtime backend; use openai-codex:gpt-5.6-terra
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
A model supplied through the environment is attributed to the variable
|
|
172
|
+
(`MONO_AGENT_MODEL ...`) rather than the JSON path, so the message always names
|
|
173
|
+
the place you edit to fix it.
|
|
174
|
+
|
|
175
|
+
What it does *not* do is report everything at once. Within a class it is
|
|
176
|
+
exhaustive — all retired JSON keys in one message, all retired environment
|
|
177
|
+
variables in one message, all unknown keys in one message — but the load stops at
|
|
178
|
+
the first failing class, in this order: retired JSON keys, unknown JSON keys,
|
|
179
|
+
retired environment variables, model references, then the remaining shape checks.
|
|
180
|
+
Expect to run `mono-agent validate` a few times per agent, not once.
|
|
181
|
+
|
|
182
|
+
#### Required — the load fails until each of these is done
|
|
183
|
+
|
|
184
|
+
In `mono-agent.config.json`:
|
|
185
|
+
|
|
186
|
+
1. Delete `runtime.executionMode`, `memory.llm.executionMode` and
|
|
187
|
+
`runtime.routeSafety`.
|
|
188
|
+
2. Convert `runtime.fallbackModels: ["a", "b"]` to
|
|
189
|
+
`runtime.fallbacks: [{ "model": "a" }, { "model": "b" }]`.
|
|
190
|
+
3. Replace every `codex:`, `claude:`, `claude-code:`, `codex-cli:`, `acp:`,
|
|
191
|
+
`vercel:<provider>:<model>` and nested `opencode:<provider>:<model>` reference
|
|
192
|
+
— in `runtime.model`, every `runtime.fallbacks[].model`, every
|
|
193
|
+
`subagents.definitions[].model`, an `agent-host` `memory.llm.model`, and every
|
|
194
|
+
per-trigger `model` override. The `vercel:`/`opencode:` wrappers unwrap to the
|
|
195
|
+
inner pair; the rest do not — `codex:gpt-5.6-terra` becomes
|
|
196
|
+
`openai-codex:gpt-5.6-terra`, which is a different auth store, so that
|
|
197
|
+
substitution is a decision, not a rename. The load error names the exact
|
|
198
|
+
replacement for each form.
|
|
199
|
+
|
|
200
|
+
In the environment — the shell, the `.env` the agent is started with, and any
|
|
201
|
+
`EnvironmentVariables` block in its launchd plist:
|
|
202
|
+
|
|
203
|
+
4. Remove `MONO_AGENT_EXECUTION_MODE`, `MONO_AGENT_ROUTE_SAFETY` and
|
|
204
|
+
`MONO_AGENT_MEMORY_LLM_EXECUTION_MODE`. There is no replacement variable.
|
|
205
|
+
5. Remove `MONO_AGENT_FALLBACK_MODELS` and re-express the chain as
|
|
206
|
+
`MONO_AGENT_FALLBACKS_JSON` (a JSON array of `{ "model": "..." }` objects), or
|
|
207
|
+
move it into `runtime.fallbacks` in the config file. Pointing this one at the
|
|
208
|
+
JSON key alone is not a repair: an operator whose chain lives only in `.env`
|
|
209
|
+
has no `runtime.fallbackModels` key to rewrite.
|
|
210
|
+
6. Apply step 3 to any model reference carried in `MONO_AGENT_MODEL`,
|
|
211
|
+
`MONO_AGENT_FALLBACKS_JSON`, `MONO_AGENT_SUBAGENTS_JSON` or
|
|
212
|
+
`MONO_AGENT_MEMORY_LLM_MODEL`.
|
|
213
|
+
|
|
214
|
+
And in trigger frontmatter:
|
|
215
|
+
|
|
216
|
+
7. The same step-3 fix to `model:` in every `*.md` under the cron and webhook
|
|
217
|
+
trigger folders (`cron.dir` / `webhook.dir` if renamed, resolved from the
|
|
218
|
+
agent root).
|
|
219
|
+
|
|
220
|
+
An empty assignment (`KEY=`) is *not* a migration item: every reader here treats
|
|
221
|
+
an empty environment value as unset, so an inert leftover line in a deployed
|
|
222
|
+
`.env` neither configured anything before nor fails the load now.
|
|
223
|
+
|
|
224
|
+
#### Optional — accepted either way
|
|
225
|
+
|
|
226
|
+
8. A leading `pi:` on a runtime reference is canonicalized away at load, so
|
|
227
|
+
`pi:openai-codex:gpt-5.6-terra` loads today and resolves to
|
|
228
|
+
`openai-codex:gpt-5.6-terra`. Stripping it from `runtime.model` and
|
|
229
|
+
`runtime.fallbacks[].model` is cosmetic — do it if you want the file to match
|
|
230
|
+
what `mono-agent config` prints. `pi:codex:...` is still rejected: the inner
|
|
231
|
+
pair is checked after the wrapper comes off.
|
|
232
|
+
9. Strip `pi:` from `memory.llm.model` **only** when `memory.llm.provider` is
|
|
233
|
+
`agent-host`. Under the default `ollama` provider that field is a raw service
|
|
234
|
+
model string, where the colon in `qwen3:8b` is a tag separator — rewriting it
|
|
235
|
+
would repoint memory at a model that does not exist.
|
|
236
|
+
|
|
237
|
+
#### `configVersion: 1` files are not covered by this checklist
|
|
238
|
+
|
|
239
|
+
`configVersion` belonged to an experimental schema (`runtimes`, `routing`,
|
|
240
|
+
`policy`, `state`, `$use` dependency injection) that the shipped loader has never
|
|
241
|
+
accepted. None of steps 1–9 apply, because none of those keys exist in such a
|
|
242
|
+
file; it is rejected whole, as unknown keys:
|
|
243
|
+
|
|
244
|
+
```text
|
|
245
|
+
mono-agent.config.json contains unknown keys: agent.id, agent.instructions,
|
|
246
|
+
agent.workspace, channels.operator, configVersion, context.skills, policy,
|
|
247
|
+
routing, runtimes, session, state. Remove or correct them; unknown keys are not
|
|
248
|
+
ignored.
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
Re-author such a config against the current schema (or `mono-agent init` a fresh
|
|
252
|
+
one and port the values across); there is no `configVersion: 1` upgrade path.
|
|
253
|
+
|
|
254
|
+
### Deployment order
|
|
255
|
+
|
|
256
|
+
```text
|
|
257
|
+
merge → release 0.21.0 → per agent: stop it, edit the config, mono-agent validate
|
|
258
|
+
→ mono-agent start
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
Edit with the agent stopped. `mono-agent validate` runs the same load as startup
|
|
262
|
+
without starting a turn or spending a model call, so it finds these problems for
|
|
263
|
+
free — but it reports one failing class per run (see above), so re-run it after
|
|
264
|
+
each edit until it comes back clean.
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
20
268
|
## 0.19.0
|
|
21
269
|
|
|
22
270
|
- **Oversized `Read` images:** raster image results with an edge above 8,000
|
|
@@ -422,17 +670,16 @@ key-resolution contract is unchanged**: an `apiKeys` map entry wins, else the ho
|
|
|
422
670
|
falls back to its own env vars, exactly as returning `undefined` from the old hook
|
|
423
671
|
did). **No host action needed** — `resolvePiApiKey` behaves as before.
|
|
424
672
|
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
`0.80.
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
natively (section 3), and model-native `max` reasoning plus Pi's request-wide
|
|
673
|
+
Current dependency pins: **`@earendil-works/pi-ai` and
|
|
674
|
+
`@earendil-works/pi-agent-core` are both `0.85.0`** (the initial Pi 0.80
|
|
675
|
+
migration landed at `0.80.5`, from `^0.79.1`). Pi 0.85's durable lane harness is
|
|
676
|
+
adapted behind the runtime's existing public API. Compaction remains owned by
|
|
677
|
+
mono-agent policy, and model-native `max` reasoning plus Pi's request-wide
|
|
431
678
|
pricing tiers are preserved.
|
|
432
679
|
|
|
433
|
-
Packed npm consumers
|
|
434
|
-
|
|
435
|
-
|
|
680
|
+
Packed npm consumers resolve the runtime-owned exact Pi AI 0.85.0 copy for both
|
|
681
|
+
the runtime and Agent Core's `^0.85.0` dependency. The release guard verifies
|
|
682
|
+
both resolution paths independently.
|
|
436
683
|
|
|
437
684
|
The 0.83 upgrade carries two upstream removals, both absorbed inside the runtime
|
|
438
685
|
so hosts need no action:
|
|
@@ -458,7 +705,7 @@ now a loud failure (guarded by `scripts/verify-deep-imports.mjs`).
|
|
|
458
705
|
<!-- public-api-js-subpaths:start -->
|
|
459
706
|
<!-- Generated by scripts/generate-public-api-docs.mjs. Do not edit by hand. -->
|
|
460
707
|
|
|
461
|
-
The package exposes **
|
|
708
|
+
The package exposes **14 named deep `.js` subpaths**:
|
|
462
709
|
|
|
463
710
|
```text
|
|
464
711
|
@mono-agent/agent-runtime/agent/allowlists.js
|
|
@@ -472,17 +719,9 @@ The package exposes **22 named deep `.js` subpaths**:
|
|
|
472
719
|
@mono-agent/agent-runtime/ai/failure.js
|
|
473
720
|
@mono-agent/agent-runtime/ai/file-change-stats.js
|
|
474
721
|
@mono-agent/agent-runtime/ai/live-input-prompt.js
|
|
475
|
-
@mono-agent/agent-runtime/ai/providers/
|
|
476
|
-
@mono-agent/agent-runtime/ai/providers/claude-cli.js
|
|
477
|
-
@mono-agent/agent-runtime/ai/providers/claude-sdk-discovery.js
|
|
478
|
-
@mono-agent/agent-runtime/ai/providers/claude-sdk.js
|
|
479
|
-
@mono-agent/agent-runtime/ai/providers/codex-app.js
|
|
480
|
-
@mono-agent/agent-runtime/ai/providers/opencode-discovery.js
|
|
481
|
-
@mono-agent/agent-runtime/ai/runtime/context-windows.js
|
|
482
|
-
@mono-agent/agent-runtime/ai/runtime/fast-mode.js
|
|
722
|
+
@mono-agent/agent-runtime/ai/providers/codex/app-server-client.js
|
|
483
723
|
@mono-agent/agent-runtime/ai/runtime/model-refs.js
|
|
484
724
|
@mono-agent/agent-runtime/ai/runtime/registry.js
|
|
485
|
-
@mono-agent/agent-runtime/ai/streaming/codex-events.js
|
|
486
725
|
```
|
|
487
726
|
<!-- public-api-js-subpaths:end -->
|
|
488
727
|
|
|
@@ -517,7 +756,7 @@ Worklab's runtime fork:
|
|
|
517
756
|
`@earendil-works/pi-ai`, its separate Pi version constraint, and local copies
|
|
518
757
|
of provider bridge code. Move tests off Pi's faux-provider helpers too; until
|
|
519
758
|
that is complete, isolate the fixture or pin its development-only dependencies
|
|
520
|
-
|
|
759
|
+
to the exact Pi AI `0.85.0` and Pi Agent Core `0.85.0` compatibility pins
|
|
521
760
|
rather than floating ranges. Do not restore the
|
|
522
761
|
removed `pi-sdk.js` subpath.
|
|
523
762
|
3. **Use the public Pi surfaces.** Run models through
|
|
@@ -525,7 +764,7 @@ Worklab's runtime fork:
|
|
|
525
764
|
`listPiBuiltinModels`, `getPiBuiltinModel`,
|
|
526
765
|
`reasoningLevelsForPiModel`, `resolvePiOAuthApiKey`, and `loginPiOAuth` for
|
|
527
766
|
catalog and OAuth integration. Those façades keep Pi provider objects and the
|
|
528
|
-
|
|
767
|
+
exact Pi AI `0.85.0` and Pi Agent Core `0.85.0` compatibility pins inside the runtime. OAuth login adapters
|
|
529
768
|
must supply `onAuth`, `onDeviceCode`, `onPrompt`, and `onSelect`; the façade
|
|
530
769
|
rejects an incomplete callback contract before starting provider login.
|
|
531
770
|
4. **Inject Claude tests.** Replace package-level mocks of
|