mu-agent 0.2.3 → 0.2.5
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 +24 -0
- package/README.md +3 -3
- package/dist/bundle/chunks/{chunk-HPQUXAZK.js → chunk-C4L65EFW.js} +2 -2
- package/dist/bundle/chunks/{chunk-FGOMFVJ2.js → chunk-VPSGIO2O.js} +1 -1
- package/dist/bundle/chunks/{openai-completions-UOA7MELD.js → openai-completions-WALPQ6HP.js} +4 -2
- package/dist/bundle/chunks/{virtual-modules-6BAN7L2H.js → virtual-modules-4BSUQTRT.js} +1 -1
- package/dist/bundle/cli-runtime.js +1 -1
- package/dist/bundle/index.js +1 -1
- package/dist/bundle/rpc-entry.js +1 -1
- package/docs/models-configuration.md +5 -5
- package/docs/models.md +23 -1
- package/judge/dist/auth.js +62 -12
- package/judge/dist/mude.js +38 -21
- package/judge/dist/setup.js +44 -27
- package/judge/manifest.json +15 -28
- package/judge/mu/{chunk-JZ4X4HQO.js → chunk-JK2OO2CN.js} +5 -4
- package/judge/mu/{cloud-code-PDKLWJEG.js → cloud-code-K5ONKXO7.js} +1 -1
- package/judge/mu/index.js +978 -546
- package/kyrn/bin/kyrn-doctor +11 -25
- package/kyrn/bin/mu.mjs +84 -106
- package/package.json +2 -2
- package/kyrn/bin/kyrn-judge-local +0 -160
- package/kyrn/local-judge/requirements.lock.txt +0 -26
- package/kyrn/local-judge/server.py +0 -344
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,30 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [0.2.5] - 2026-10-24
|
|
6
|
+
|
|
7
|
+
**0.2.5 removes Laya from mu's built-in judges. A configuration that still names it switches to mude 1.0 or Jev on its own.**
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- A configuration that still names Laya keeps working. `laya` in `tiers` or a route, and a judge of type `local`, are read without it: mude 1.0 takes its place when it is installed on this Mac and its key (`MU_JUDGE_MUDE_KEY`) is set, otherwise the judges left do, or Jev when none is left. A route left with no judge goes back to `tiers`. The first session with a terminal or the desktop app (not `mu --print` or json mode) writes that to mu.json once. It changes only those values, keeps a copy in `~/.mu/backups`, and says so once: `judge.notice` with the code `laya_removed` and the `judge`, then the line itself. A mu.json that isn't plain JSON is left alone. `MU_JUDGE=laya` is skipped in every session that has it. For such a configuration the launcher starts mude's server in the background, as it does for `mude`.
|
|
12
|
+
- `/mu judge laya` and `/mu route <point> laya` say that Laya is no longer built in. An `http` judge needs a `baseUrl`; its client is `HttpJudgeProvider` (it was `LocalJudgeProvider`).
|
|
13
|
+
|
|
14
|
+
### Removed
|
|
15
|
+
|
|
16
|
+
- Laya, the third-party local judge, is no longer built in: the `laya` judge, the `local` judge type, its sidecar (`kyrn/bin/kyrn-judge-local`, `kyrn/local-judge/server.py` and its lock, no longer in the package) and `mu judge setup | start | stop | status | run`. Those commands now say so and point to `mu judge mude install` and `mu judge model add <link>`; `mu judge` alone prints the judge commands. The launcher no longer starts a sidecar, and `mu doctor` drops its rows.
|
|
17
|
+
- `continuation.localPromised`, which only Laya used, and the one-question-at-a-time path of a `local` judge: `tool.admission` and `tool.injection` always ask in batches, and the questions about a message start together.
|
|
18
|
+
|
|
19
|
+
## [0.2.4] - 2026-10-24
|
|
20
|
+
|
|
21
|
+
**0.2.4 brings Gemini 4 Argon through Google Antigravity and fixes third-party OpenAI-compatible providers that turned away the `developer` role.**
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
- Signed in with Google Antigravity, mu now lists Gemini 4 Argon (`gemini-4-argon-low`, `-medium` and `-high`) and the Gemini 3.8 Flash tiers, and can use them. mu introduced itself to Antigravity as its IDE, version 1.107.0 (`antigravity/1.107.0 darwin/arm64`). Google lists and serves those models only to the Antigravity command line from 1.3.0, and answered 404 for them. mu now introduces itself as the command line (`antigravity/cli/1.4.0`; `MU_ANTIGRAVITY_VERSION` still raises the version). Gemini 4 Argon thinks at low, medium or high, never off. A placeholder for a model the account may not use, such as `gemini-4-argon-disabled`, is left out. The context Antigravity gives a model (1 million tokens for Claude Opus and Sonnet 5.5) is now used.
|
|
26
|
+
- An account that was already signed in to Antigravity gets the new models without signing in again. Its list was read only at sign-in; now the terminal and the desktop app also read it in the background as a session starts. Print and JSON runs don't, nor does `PI_OFFLINE`. Signing out still drops the account's models, these included.
|
|
27
|
+
- A custom OpenAI-compatible provider (`"api": "openai-completions"` in `models.json`) no longer fails with "unknown role developer" for a thinking model. Only `api.openai.com`, Azure OpenAI and Xiaomi MiMo get `developer` messages and `max_completion_tokens`; other endpoints get `system`, `max_tokens` and no `store`. When an endpoint still rejects the `developer` role, the max tokens field, `reasoning_effort`, `stream_options`, `store` or the prompt cache fields with a 400 (or a gateway's 5xx wrapping one), mu sends the request once more without it, before any output, and remembers that for the model until it restarts. `compat` in `models.json` overrides the defaults.
|
|
28
|
+
|
|
5
29
|
## [0.2.3] - 2026-10-24
|
|
6
30
|
|
|
7
31
|
**0.2.3 adds `mu judge model` for decision models from Hugging Face, makes mu decide when a mid-run message reaches the work, and makes Sign in with ChatGPT cope with a busy port 1455.**
|
package/README.md
CHANGED
|
@@ -27,13 +27,13 @@ mu is built on [pi](https://github.com/earendil-works/pi). It hands the small qu
|
|
|
27
27
|
|
|
28
28
|
## Choose a judge
|
|
29
29
|
|
|
30
|
-
Out of the box, the judge is Jev 1.13, TypeSafe's hosted judge model, free on OpenCode Zen for a limited time and with no key needed. What it judges goes to OpenCode, which doesn't train on it, and mu reminds you of that once a day. To send nothing anywhere, run `mu setup --judge off` (or choose "Not now" when `mu setup` asks): no decision point asks a judge, and mu's features keep working on their rules. Or
|
|
30
|
+
Out of the box, the judge is Jev 1.13, TypeSafe's hosted judge model, free on OpenCode Zen for a limited time and with no key needed. What it judges goes to OpenCode, which doesn't train on it, and mu reminds you of that once a day. To send nothing anywhere, run `mu setup --judge off` (or choose "Not now" when `mu setup` asks): no decision point asks a judge, and mu's features keep working on their rules. Or, on a Mac with Apple silicon, use mude 1.0 with `--local-only`.
|
|
31
31
|
|
|
32
32
|
- **Jev** (hosted): set `TYPESAFE_API_KEY` (TypeSafe), `MU_JUDGE_OPENROUTER_API_KEY` (Jev on OpenRouter), `AI_GATEWAY_API_KEY` (Vercel AI Gateway), `OPENCODE_API_KEY` (OpenCode Zen) or `CLOUDFLARE_API_KEY` with `CLOUDFLARE_ACCOUNT_ID` (Cloudflare Workers AI) in your environment, or add it to `~/.mu/.env` as `KEY=value`. `mu setup` asks for a key and writes it there. mu reads that file as data, never prints it and starts using the key automatically.
|
|
33
33
|
- **Another classifier** from pi's catalog: `/mu judge classifier:<provider>/<model>`, for example Cloudflare's Clef (`clef`, `clef-flash`) or a System One model on OpenRouter, with that provider's key.
|
|
34
34
|
- **CLM** (self-hosted; its encoder needs a GPU): start `clm-serve` from [Contrastive-LM/CLM](https://github.com/Contrastive-LM/CLM), then run `/mu judge clm`. For a server on another machine, add `"judges": { "clm": { "type": "clm", "baseUrl": "http://<host>:8700" } }` to `~/.mu/agent/mu.json`. If the server was started with `CLM_API_KEY`, set the same value in `MU_JUDGE_CLM_API_KEY`. `mu doctor` checks the server.
|
|
35
35
|
- **mude 1.0** (local, a Mac with Apple silicon, macOS 14+), mu's own decision model, optimized for coding: `mu judge mude install` downloads it (1.8 GB), sets it up in `~/.mu/local-judge/mude`, starts its server on 127.0.0.1 and puts it first. What it can't answer goes to the judges you had before, which are hosted; `mu judge mude enable --local-only` keeps everything on your Mac. Its server uses about 4 GB of memory until `mu judge mude stop`.
|
|
36
|
-
- **
|
|
36
|
+
- **Other decision models from Hugging Face** (local, a Mac with Apple silicon): `mu judge model add <link>` adds one that is packaged like mude 1.0 and makes it the judge. Laya is no longer included: a `mu.json` that still names it gets mude 1.0 in its place when mude is set up, otherwise the remaining judges or Jev, and mu says so once.
|
|
37
37
|
- **Any model you already use:** `/mu judge llm:<provider>/<model>`.
|
|
38
38
|
|
|
39
39
|
34 of the 40 decision points act on their verdicts from the start (`active`). To only record what the judge would do, run `/mu mode default shadow`, or put `"modes": { "default": "shadow" }` in `~/.mu/agent/mu.json`.
|
|
@@ -47,7 +47,7 @@ mu -p "prompt" run one prompt, print the answer and exit
|
|
|
47
47
|
mu -c | -r continue the last session | pick a session to resume
|
|
48
48
|
mu setup connect a model and choose a judge (see mu setup --help for scripting and services)
|
|
49
49
|
mu judge mude <cmd> mude 1.0 on this Mac: install | enable | disable | start | stop | status | uninstall
|
|
50
|
-
mu judge <cmd>
|
|
50
|
+
mu judge model <cmd> other decision models from Hugging Face: add <link> | list | use | remove
|
|
51
51
|
mu ledger [n] [--json] print the judge's verdicts from the last n sessions
|
|
52
52
|
mu import <file>... import Claude Code, Codex and ZCode conversations; --list shows them (mu import --help)
|
|
53
53
|
mu doctor check the installation, the judges and the connections
|