bots-garden/mini-mepublic Fork
⑂ a9409af
Commits
⬇ Clone ▾
git clone https://git.rickub.com/bots-garden/mini-me.git
git clone ssh://git@rickub.com/bots-garden/mini-me.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Download ZIP

🛟 Updated.

k33g committed 2026-11-11T09:11:03+01:00 Browse files
a9409af parent: eafbba2
modified .tickets/milestones.yaml +1 -1
@@ -55,5 +55,5 @@ milestones:
5555 state: closed
5656 dueOn: 2026-10-31
5757 - title: v1.0.6
58- state: open
58+ state: closed
5959 dueOn: 2026-11-15
@@ -55,5 +55,5 @@ milestones:
55 state: closed55 state: closed
56 dueOn: 2026-10-3156 dueOn: 2026-10-31
57 - title: v1.0.657 - title: v1.0.6
58- state: open58+ state: closed
59 dueOn: 2026-11-1559 dueOn: 2026-11-15
modified INSTALL.LINUX.md +1 -1
@@ -2,7 +2,7 @@
22
33 ```bash
44 # download the binary release in https://rickub.com/bots-garden/mini-me/releases
5-VERSION=1.0.4
5+VERSION=1.0.6
66 case "$(uname -m)" in
77 x86_64) ARCH=amd64 ;;
88 aarch64|arm64) ARCH=arm64 ;;
@@ -2,7 +2,7 @@
2 2
3 ```bash3 ```bash
4 # download the binary release in https://rickub.com/bots-garden/mini-me/releases4 # download the binary release in https://rickub.com/bots-garden/mini-me/releases
5-VERSION=1.0.45+VERSION=1.0.6
6 case "$(uname -m)" in6 case "$(uname -m)" in
7 x86_64) ARCH=amd64 ;;7 x86_64) ARCH=amd64 ;;
8 aarch64|arm64) ARCH=arm64 ;;8 aarch64|arm64) ARCH=arm64 ;;
modified INSTALL.MACOS.md +4 -4
@@ -2,7 +2,7 @@
22
33 Short version:
44 ```bash
5-VERSION=1.0.5
5+VERSION=1.0.6
66 curl -fsSLO "https://rickub.com/bots-garden/mini-me/releases/download/v${VERSION}/mm-${VERSION}-darwin-arm64"
77 chmod +x ./mm-${VERSION}-darwin-arm64
88 sudo rm -f /usr/local/bin/mm
@@ -14,7 +14,7 @@ From v1.0.5, the macOS binary is signed with a Developer ID and notarized by App
1414
1515 ```bash
1616 # download the binary release in https://rickub.com/bots-garden/mini-me/releases
17-VERSION=1.0.5
17+VERSION=1.0.6
1818 curl -fsSLO "https://rickub.com/bots-garden/mini-me/releases/download/v${VERSION}/mm-${VERSION}-darwin-arm64"
1919
2020 # optional: check the download against the release's checksums
@@ -34,8 +34,8 @@ mm --version
3434 The signature check should print:
3535
3636 ```
37-./mm-1.0.5-darwin-arm64: valid on disk
38-./mm-1.0.5-darwin-arm64: satisfies its Designated Requirement
37+./mm-1.0.6-darwin-arm64: valid on disk
38+./mm-1.0.6-darwin-arm64: satisfies its Designated Requirement
3939 Identifier=com.bots-garden.mm
4040 Authority=Developer ID Application: Philippe Charriere (SNLLBZP9V9)
4141 TeamIdentifier=SNLLBZP9V9
@@ -2,7 +2,7 @@
2 2
3 Short version:3 Short version:
4 ```bash4 ```bash
5-VERSION=1.0.55+VERSION=1.0.6
6 curl -fsSLO "https://rickub.com/bots-garden/mini-me/releases/download/v${VERSION}/mm-${VERSION}-darwin-arm64"6 curl -fsSLO "https://rickub.com/bots-garden/mini-me/releases/download/v${VERSION}/mm-${VERSION}-darwin-arm64"
7 chmod +x ./mm-${VERSION}-darwin-arm647 chmod +x ./mm-${VERSION}-darwin-arm64
8 sudo rm -f /usr/local/bin/mm8 sudo rm -f /usr/local/bin/mm
@@ -14,7 +14,7 @@ From v1.0.5, the macOS binary is signed with a Developer ID and notarized by App
14 14
15 ```bash15 ```bash
16 # download the binary release in https://rickub.com/bots-garden/mini-me/releases16 # download the binary release in https://rickub.com/bots-garden/mini-me/releases
17-VERSION=1.0.517+VERSION=1.0.6
18 curl -fsSLO "https://rickub.com/bots-garden/mini-me/releases/download/v${VERSION}/mm-${VERSION}-darwin-arm64"18 curl -fsSLO "https://rickub.com/bots-garden/mini-me/releases/download/v${VERSION}/mm-${VERSION}-darwin-arm64"
19 19
20 # optional: check the download against the release's checksums20 # optional: check the download against the release's checksums
@@ -34,8 +34,8 @@ mm --version
34 The signature check should print:34 The signature check should print:
35 35
36 ```36 ```
37-./mm-1.0.5-darwin-arm64: valid on disk37+./mm-1.0.6-darwin-arm64: valid on disk
38-./mm-1.0.5-darwin-arm64: satisfies its Designated Requirement38+./mm-1.0.6-darwin-arm64: satisfies its Designated Requirement
39 Identifier=com.bots-garden.mm39 Identifier=com.bots-garden.mm
40 Authority=Developer ID Application: Philippe Charriere (SNLLBZP9V9)40 Authority=Developer ID Application: Philippe Charriere (SNLLBZP9V9)
41 TeamIdentifier=SNLLBZP9V941 TeamIdentifier=SNLLBZP9V9
modified INSTALL.WINDOWS.md +1 -1
@@ -4,7 +4,7 @@ In PowerShell (no administrator rights needed):
44
55 ```powershell
66 # download the binary release in https://rickub.com/bots-garden/mini-me/releases
7-$Version = "1.0.4"
7+$Version = "1.0.6"
88 $Arch = if ($env:PROCESSOR_ARCHITECTURE -eq "ARM64") { "arm64" } else { "amd64" }
99 $Asset = "mm-$Version-windows-$Arch.exe"
1010 $Base = "https://rickub.com/bots-garden/mini-me/releases/download/v$Version"
@@ -4,7 +4,7 @@ In PowerShell (no administrator rights needed):
4 4
5 ```powershell5 ```powershell
6 # download the binary release in https://rickub.com/bots-garden/mini-me/releases6 # download the binary release in https://rickub.com/bots-garden/mini-me/releases
7-$Version = "1.0.4"7+$Version = "1.0.6"
8 $Arch = if ($env:PROCESSOR_ARCHITECTURE -eq "ARM64") { "arm64" } else { "amd64" }8 $Arch = if ($env:PROCESSOR_ARCHITECTURE -eq "ARM64") { "arm64" } else { "amd64" }
9 $Asset = "mm-$Version-windows-$Arch.exe"9 $Asset = "mm-$Version-windows-$Arch.exe"
10 $Base = "https://rickub.com/bots-garden/mini-me/releases/download/v$Version"10 $Base = "https://rickub.com/bots-garden/mini-me/releases/download/v$Version"
modified release-notes/README.md +2 -1
@@ -4,7 +4,8 @@ One note per tag, in English (`.en.md`) and French (`.fr.md`). Rebuilt on 2026-1
44
55 | Version | Date | Summary | |
66 |---|---|---|---|
7-| [v1.0.5](v1.0.5.en.md) | not tagged yet | `mm dockerinit` and `mm sbxinit` write the files to run mini-me in a container or a Docker Sandbox, `mm init` gives the agent its name, two vibe-coding demos (Go and Swift), and a macOS binary signed and notarized by Apple. | [FR](v1.0.5.fr.md) |
7+| [v1.0.6](v1.0.6.en.md) | not tagged yet | An ACP client can lend the agent its own functions as tools, and mini-me runs on Kronk, the Go inference server of Ardan Labs. | [FR](v1.0.6.fr.md) |
8+| [v1.0.5](v1.0.5.en.md) | 2026-11-07 | `mm dockerinit` and `mm sbxinit` write the files to run mini-me in a container or a Docker Sandbox, `mm init` gives the agent its name, two vibe-coding demos (Go and Swift), and a macOS binary signed and notarized by Apple. | [FR](v1.0.5.fr.md) |
89 | [v1.0.4](v1.0.4.en.md) | 2026-11-02 | A security update: mm now builds with `golang.org/x/net` v0.62.0, which fixes two vulnerabilities in its HTML parser. | [FR](v1.0.4.fr.md) |
910 | [v1.0.3](v1.0.3.en.md) | 2026-10-26 | `mm init` writes agents for any OpenAI-compatible service — it asks the endpoint and the API key's variable, then lists the service's models or lets you type one — and its text answers can be edited with the arrow keys. | [FR](v1.0.3.fr.md) |
1011 | [v1.0.2](v1.0.2.en.md) | 2026-10-26 | Use mini-me as a library from Node.js, test what a model can do with mini-me itself, and send OpenAI models only the sampling settings you wrote. | [FR](v1.0.2.fr.md) |
@@ -4,7 +4,8 @@ One note per tag, in English (`.en.md`) and French (`.fr.md`). Rebuilt on 2026-1
4 4
5 | Version | Date | Summary | |5 | Version | Date | Summary | |
6 |---|---|---|---|6 |---|---|---|---|
7-| [v1.0.5](v1.0.5.en.md) | not tagged yet | `mm dockerinit` and `mm sbxinit` write the files to run mini-me in a container or a Docker Sandbox, `mm init` gives the agent its name, two vibe-coding demos (Go and Swift), and a macOS binary signed and notarized by Apple. | [FR](v1.0.5.fr.md) |7+| [v1.0.6](v1.0.6.en.md) | not tagged yet | An ACP client can lend the agent its own functions as tools, and mini-me runs on Kronk, the Go inference server of Ardan Labs. | [FR](v1.0.6.fr.md) |
8+| [v1.0.5](v1.0.5.en.md) | 2026-11-07 | `mm dockerinit` and `mm sbxinit` write the files to run mini-me in a container or a Docker Sandbox, `mm init` gives the agent its name, two vibe-coding demos (Go and Swift), and a macOS binary signed and notarized by Apple. | [FR](v1.0.5.fr.md) |
8 | [v1.0.4](v1.0.4.en.md) | 2026-11-02 | A security update: mm now builds with `golang.org/x/net` v0.62.0, which fixes two vulnerabilities in its HTML parser. | [FR](v1.0.4.fr.md) |9 | [v1.0.4](v1.0.4.en.md) | 2026-11-02 | A security update: mm now builds with `golang.org/x/net` v0.62.0, which fixes two vulnerabilities in its HTML parser. | [FR](v1.0.4.fr.md) |
9 | [v1.0.3](v1.0.3.en.md) | 2026-10-26 | `mm init` writes agents for any OpenAI-compatible service — it asks the endpoint and the API key's variable, then lists the service's models or lets you type one — and its text answers can be edited with the arrow keys. | [FR](v1.0.3.fr.md) |10 | [v1.0.3](v1.0.3.en.md) | 2026-10-26 | `mm init` writes agents for any OpenAI-compatible service — it asks the endpoint and the API key's variable, then lists the service's models or lets you type one — and its text answers can be edited with the arrow keys. | [FR](v1.0.3.fr.md) |
10 | [v1.0.2](v1.0.2.en.md) | 2026-10-26 | Use mini-me as a library from Node.js, test what a model can do with mini-me itself, and send OpenAI models only the sampling settings you wrote. | [FR](v1.0.2.fr.md) |11 | [v1.0.2](v1.0.2.en.md) | 2026-10-26 | Use mini-me as a library from Node.js, test what a model can do with mini-me itself, and send OpenAI models only the sampling settings you wrote. | [FR](v1.0.2.fr.md) |
added release-notes/v1.0.6.en.md +83 -0
new file mode 100644
@@ -0,0 +1,83 @@
1+# mini-me v1.0.6
2+
3+*[Version française](v1.0.6.fr.md)*
4+
5+An ACP client can lend the agent its own functions as tools, and mini-me runs on Kronk, the Go inference server of Ardan Labs.
6+
7+## New
8+
9+### Tools lent by an ACP client (#202)
10+
11+In ACP mode, the program that drives mm can now give the agent tools of its own. Examples are an editor's open buffers, an application's data, or a device. The model calls them like `bash` or `read_file`, under the name `client_<name>`. mm forwards each call to the client as an ACP extension request and gives the answer back to the model. ACP defines no way to describe such a tool, so mm defines one under its own namespace, `org.mini-me`. A client that does not use it sends nothing, and nothing changes.
12+
13+- **Two ways to announce the tools**, set with `acp.clientTools.discovery`.
14+ - `meta` (the default): the client lists its tools in `initialize`.
15+ - `request`: the client only says it has tools, and mm asks for the list each time a session is opened, loaded or resumed. This is for tools that depend on the session.
16+- **Permissions**, set with `acp.clientTools.permissions`.
17+ - `auto` (the default) asks the client only when `yolo` is `false`.
18+ - `ask` asks before every call.
19+ - The default is `auto`, where MCP's is `ask`: a client tool is a function of the very program that started mm.
20+- **Errors never end the turn.** A client that fails, does not answer within `acp.clientTools.timeout` (`30s`), or answers `Method not found` gives the model a `[client tool error: …]` text. An entry of the list that cannot be used is skipped with a line on stderr.
21+- **Turn it off** with `acp.clientTools.enabled: false`. The tools exist only in ACP mode: the terminal and the window have no client to lend them.
22+
23+The specification is written for client authors: the exact JSON of the announcement, of the list request, of a call and of its answer. The Go package of `demo.acp.sdk` offers tools with `Options.Tools` and `ToolDiscovery`.
24+
25+Checked with Qwen3.5 4B on llmman: the Go example, in both modes, and the Node.js demo, in `meta`, `request` and `yolo: false`. The Node.js demo was also run on macOS.
26+
27+See [How to offer tools from your ACP client](../docs/en/how-to/offer-tools-from-an-acp-client.md), the [specification](../docs/en/reference/acp-client-tools.md) and [why it is designed this way](../docs/en/explanation/acp-client-tools.md).
28+
29+### Kronk provider (#75)
30+
31+`provider: kronk` runs mini-me on [Kronk](https://www.kronkai.com), the Go inference server of Ardan Labs. Kronk embeds llama.cpp without a `llama-server` process. mm uses its OpenAI-compatible API at `http://127.0.0.1:11435/v1`. From a sandbox, mm falls back to `http://host.docker.internal:11435/v1`.
32+
33+- **The window is known at start-up.** It is the one Kronk serves the model with, read from Kronk whether the model is loaded or not, for example `ctx: 131072 (/v1/kronk/models)`.
34+- **`autoPull`** downloads a model Kronk does not have, and **`/unload`** and the `unload_model` tool free its memory.
35+- **The summary of a compaction turns reasoning off** with `chat_template_kwargs`, which Kronk obeys; `reasoning_effort: none` is ignored by Kronk. There is no `Reading the prompt …` line: Kronk sends no progress while it reads.
36+- **A protected Kronk** (`authenticated` or `full-protected` modes) takes its token from `KRONK_TOKEN`. A refused token is a start-up warning that names the variable.
37+- **`mm init --provider kronk`** lists Kronk's models and reads, from Kronk, the window, the GGUF's sampling and the chat template's reasoning switch.
38+- **Kronk profiles.** Kronk also lists configuration profiles, `provider/modelID/PROFILE` (for example `…/Qwopus3.5-4B-Coder.Q8_0/AGENT`). A profile is the same model with its own settings in Kronk's `model_config.yaml`.
39+ - `mm init` says what a profile is, and copies its sampling into the file. Without the copy, it would never apply: mm sends `temperature`, `top_p` and `max_tokens` with every request, even without a `sampling:` block, and a request's value wins over a profile's.
40+ - The window shows a profile as `Qwopus3.5-4B-Coder.Q8…/AGENT` instead of just `AGENT`.
41+
42+From a Docker Sandbox, start Kronk on the host with `kronk server start --api-host 0.0.0.0:11435`: by default it listens on the loopback only. The id Kronk serves a model under is not always the one it was pulled with: `unsloth/Qwen3.5-2B-GGUF:Q4_K_M` is served as `unsloth/Qwen3.5-2B-Q4_K_M`. Use the id `GET /v1/models` gives.
43+
44+Checked against Kronk 1.33.2 with Qwopus3.5 4B Coder and Qwen3.5 2B:
45+- a turn with tool calls;
46+- `/unload`;
47+- `mm init --provider kronk --check`;
48+- a profile's window and sampling.
49+
50+**Not tried**: a real download through `autoPull` (only the answer to an already installed model was read), a compaction, and a protected Kronk.
51+
52+See [How to run mini-me on Kronk](../docs/en/how-to/run-with-kronk.md).
53+
54+## Demos
55+
56+- [`demos/kronk/`](../demos/kronk/README.en.md): a coding agent on Kronk with `mradermacher/Qwopus3.5-4B-Coder.Q8_0`, and the line to change for Qwen3.5 2B.
57+- [`demo.acp.sdk/client-tools-nodejs/`](../demo.acp.sdk/client-tools-nodejs/README.en.md): a Node.js client with no dependency that lends the agent one tool, `host_info`, the operating system, CPU, memory or uptime of the client's machine. The agent has no shell, so that tool is its only way to know.
58+- [`demo.acp.sdk/go/`](../demo.acp.sdk/go/README.en.md): `Options.Tools`, and `examples/clienttools`, a to-do list the agent fills and reads.
59+
60+## Documentation
61+
62+- New:
63+ - [How to offer tools from your ACP client](../docs/en/how-to/offer-tools-from-an-acp-client.md);
64+ - [ACP client tools](../docs/en/reference/acp-client-tools.md), the specification;
65+ - [ACP client tools — explanation](../docs/en/explanation/acp-client-tools.md);
66+ - [How to run mini-me on Kronk](../docs/en/how-to/run-with-kronk.md).
67+- Updated for Kronk and client tools:
68+ - the configuration, CLI and tools references;
69+ - the explanations of providers, `mm init` and thinking models;
70+ - the guides to turning reasoning off, freeing a model's memory, and running in a Docker Sandbox.
71+- The macOS install guide shows how to check the binary's signature, with `codesign`, before installing it.
72+
73+## Upgrading
74+
75+- **Agent files do not change.** Replace the binary: see the install guides for [macOS](../INSTALL.MACOS.md), [Linux](../INSTALL.LINUX.md) and [Windows](../INSTALL.WINDOWS.md).
76+- New keys:
77+ - `acp.clientTools.enabled` (`true`);
78+ - `acp.clientTools.discovery` (`meta`);
79+ - `acp.clientTools.permissions` (`auto`);
80+ - `acp.clientTools.timeout` (`30s`).
81+
82+ An ACP client that advertises no tool sees no difference.
83+- New provider value: `kronk`. `unknown provider` now lists `dmr, kronk, llamacpp, llmman, ollama, openai`.
new file mode 100644
@@ -0,0 +1,83 @@
1+# mini-me v1.0.6
2+
3+*[Version française](v1.0.6.fr.md)*
4+
5+An ACP client can lend the agent its own functions as tools, and mini-me runs on Kronk, the Go inference server of Ardan Labs.
6+
7+## New
8+
9+### Tools lent by an ACP client (#202)
10+
11+In ACP mode, the program that drives mm can now give the agent tools of its own. Examples are an editor's open buffers, an application's data, or a device. The model calls them like `bash` or `read_file`, under the name `client_<name>`. mm forwards each call to the client as an ACP extension request and gives the answer back to the model. ACP defines no way to describe such a tool, so mm defines one under its own namespace, `org.mini-me`. A client that does not use it sends nothing, and nothing changes.
12+
13+- **Two ways to announce the tools**, set with `acp.clientTools.discovery`.
14+ - `meta` (the default): the client lists its tools in `initialize`.
15+ - `request`: the client only says it has tools, and mm asks for the list each time a session is opened, loaded or resumed. This is for tools that depend on the session.
16+- **Permissions**, set with `acp.clientTools.permissions`.
17+ - `auto` (the default) asks the client only when `yolo` is `false`.
18+ - `ask` asks before every call.
19+ - The default is `auto`, where MCP's is `ask`: a client tool is a function of the very program that started mm.
20+- **Errors never end the turn.** A client that fails, does not answer within `acp.clientTools.timeout` (`30s`), or answers `Method not found` gives the model a `[client tool error: …]` text. An entry of the list that cannot be used is skipped with a line on stderr.
21+- **Turn it off** with `acp.clientTools.enabled: false`. The tools exist only in ACP mode: the terminal and the window have no client to lend them.
22+
23+The specification is written for client authors: the exact JSON of the announcement, of the list request, of a call and of its answer. The Go package of `demo.acp.sdk` offers tools with `Options.Tools` and `ToolDiscovery`.
24+
25+Checked with Qwen3.5 4B on llmman: the Go example, in both modes, and the Node.js demo, in `meta`, `request` and `yolo: false`. The Node.js demo was also run on macOS.
26+
27+See [How to offer tools from your ACP client](../docs/en/how-to/offer-tools-from-an-acp-client.md), the [specification](../docs/en/reference/acp-client-tools.md) and [why it is designed this way](../docs/en/explanation/acp-client-tools.md).
28+
29+### Kronk provider (#75)
30+
31+`provider: kronk` runs mini-me on [Kronk](https://www.kronkai.com), the Go inference server of Ardan Labs. Kronk embeds llama.cpp without a `llama-server` process. mm uses its OpenAI-compatible API at `http://127.0.0.1:11435/v1`. From a sandbox, mm falls back to `http://host.docker.internal:11435/v1`.
32+
33+- **The window is known at start-up.** It is the one Kronk serves the model with, read from Kronk whether the model is loaded or not, for example `ctx: 131072 (/v1/kronk/models)`.
34+- **`autoPull`** downloads a model Kronk does not have, and **`/unload`** and the `unload_model` tool free its memory.
35+- **The summary of a compaction turns reasoning off** with `chat_template_kwargs`, which Kronk obeys; `reasoning_effort: none` is ignored by Kronk. There is no `Reading the prompt …` line: Kronk sends no progress while it reads.
36+- **A protected Kronk** (`authenticated` or `full-protected` modes) takes its token from `KRONK_TOKEN`. A refused token is a start-up warning that names the variable.
37+- **`mm init --provider kronk`** lists Kronk's models and reads, from Kronk, the window, the GGUF's sampling and the chat template's reasoning switch.
38+- **Kronk profiles.** Kronk also lists configuration profiles, `provider/modelID/PROFILE` (for example `…/Qwopus3.5-4B-Coder.Q8_0/AGENT`). A profile is the same model with its own settings in Kronk's `model_config.yaml`.
39+ - `mm init` says what a profile is, and copies its sampling into the file. Without the copy, it would never apply: mm sends `temperature`, `top_p` and `max_tokens` with every request, even without a `sampling:` block, and a request's value wins over a profile's.
40+ - The window shows a profile as `Qwopus3.5-4B-Coder.Q8…/AGENT` instead of just `AGENT`.
41+
42+From a Docker Sandbox, start Kronk on the host with `kronk server start --api-host 0.0.0.0:11435`: by default it listens on the loopback only. The id Kronk serves a model under is not always the one it was pulled with: `unsloth/Qwen3.5-2B-GGUF:Q4_K_M` is served as `unsloth/Qwen3.5-2B-Q4_K_M`. Use the id `GET /v1/models` gives.
43+
44+Checked against Kronk 1.33.2 with Qwopus3.5 4B Coder and Qwen3.5 2B:
45+- a turn with tool calls;
46+- `/unload`;
47+- `mm init --provider kronk --check`;
48+- a profile's window and sampling.
49+
50+**Not tried**: a real download through `autoPull` (only the answer to an already installed model was read), a compaction, and a protected Kronk.
51+
52+See [How to run mini-me on Kronk](../docs/en/how-to/run-with-kronk.md).
53+
54+## Demos
55+
56+- [`demos/kronk/`](../demos/kronk/README.en.md): a coding agent on Kronk with `mradermacher/Qwopus3.5-4B-Coder.Q8_0`, and the line to change for Qwen3.5 2B.
57+- [`demo.acp.sdk/client-tools-nodejs/`](../demo.acp.sdk/client-tools-nodejs/README.en.md): a Node.js client with no dependency that lends the agent one tool, `host_info`, the operating system, CPU, memory or uptime of the client's machine. The agent has no shell, so that tool is its only way to know.
58+- [`demo.acp.sdk/go/`](../demo.acp.sdk/go/README.en.md): `Options.Tools`, and `examples/clienttools`, a to-do list the agent fills and reads.
59+
60+## Documentation
61+
62+- New:
63+ - [How to offer tools from your ACP client](../docs/en/how-to/offer-tools-from-an-acp-client.md);
64+ - [ACP client tools](../docs/en/reference/acp-client-tools.md), the specification;
65+ - [ACP client tools — explanation](../docs/en/explanation/acp-client-tools.md);
66+ - [How to run mini-me on Kronk](../docs/en/how-to/run-with-kronk.md).
67+- Updated for Kronk and client tools:
68+ - the configuration, CLI and tools references;
69+ - the explanations of providers, `mm init` and thinking models;
70+ - the guides to turning reasoning off, freeing a model's memory, and running in a Docker Sandbox.
71+- The macOS install guide shows how to check the binary's signature, with `codesign`, before installing it.
72+
73+## Upgrading
74+
75+- **Agent files do not change.** Replace the binary: see the install guides for [macOS](../INSTALL.MACOS.md), [Linux](../INSTALL.LINUX.md) and [Windows](../INSTALL.WINDOWS.md).
76+- New keys:
77+ - `acp.clientTools.enabled` (`true`);
78+ - `acp.clientTools.discovery` (`meta`);
79+ - `acp.clientTools.permissions` (`auto`);
80+ - `acp.clientTools.timeout` (`30s`).
81+
82+ An ACP client that advertises no tool sees no difference.
83+- New provider value: `kronk`. `unknown provider` now lists `dmr, kronk, llamacpp, llmman, ollama, openai`.
added release-notes/v1.0.6.fr.md +83 -0
new file mode 100644
@@ -0,0 +1,83 @@
1+# mini-me v1.0.6
2+
3+*[English version](v1.0.6.en.md)*
4+
5+Un client ACP peut prêter à l'agent ses propres fonctions comme outils, et mini-me tourne sur Kronk, le serveur d'inférence Go d'Ardan Labs.
6+
7+## Nouveautés
8+
9+### Des outils prêtés par un client ACP (#202)
10+
11+En mode ACP, le programme qui pilote mm peut maintenant donner à l'agent ses propres outils. Par exemple les buffers ouverts d'un éditeur, les données d'une application ou un appareil. Le modèle les appelle comme `bash` ou `read_file`, sous le nom `client_<nom>`. mm transmet chaque appel au client sous forme de requête d'extension ACP et rend la réponse au modèle. ACP ne définit aucun moyen de décrire un tel outil : mm en définit donc un, sous son propre espace de noms, `org.mini-me`. Un client qui ne s'en sert pas n'envoie rien, et rien ne change.
12+
13+- **Deux façons d'annoncer les outils**, réglées par `acp.clientTools.discovery`.
14+ - `meta` (par défaut) : le client liste ses outils dans `initialize`.
15+ - `request` : le client dit seulement qu'il a des outils, et mm demande la liste à chaque ouverture, chargement ou reprise de session. C'est pour des outils qui dépendent de la session.
16+- **Permissions**, réglées par `acp.clientTools.permissions`.
17+ - `auto` (par défaut) ne demande au client que si `yolo` vaut `false`.
18+ - `ask` demande avant chaque appel.
19+ - Le défaut est `auto`, là où celui de MCP est `ask` : un outil client est une fonction du programme même qui a lancé mm.
20+- **Les erreurs ne terminent jamais le tour.** Un client qui échoue, ne répond pas dans `acp.clientTools.timeout` (`30s`), ou répond `Method not found` donne au modèle un texte `[client tool error: …]`. Une entrée inutilisable de la liste est ignorée avec une ligne sur stderr.
21+- **Pour le couper** : `acp.clientTools.enabled: false`. Les outils n'existent qu'en mode ACP : le terminal et la fenêtre n'ont pas de client pour les prêter.
22+
23+La spécification est écrite pour les auteurs de clients : le JSON exact de l'annonce, de la requête de liste, d'un appel et de sa réponse. Le paquet Go de `demo.acp.sdk` propose des outils avec `Options.Tools` et `ToolDiscovery`.
24+
25+Vérifié avec Qwen3.5 4B sur llmman : l'exemple Go, dans les deux modes, et la démo Node.js, en `meta`, `request` et `yolo: false`. La démo Node.js a aussi tourné sur macOS.
26+
27+Voir [Proposer des outils depuis votre client ACP](../docs/fr/how-to/offer-tools-from-an-acp-client.md), la [spécification](../docs/fr/reference/acp-client-tools.md) et [pourquoi elle a cette forme](../docs/fr/explanation/acp-client-tools.md).
28+
29+### Fournisseur Kronk (#75)
30+
31+`provider: kronk` fait tourner mini-me sur [Kronk](https://www.kronkai.com), le serveur d'inférence Go d'Ardan Labs. Kronk embarque llama.cpp sans processus `llama-server`. mm utilise son API compatible OpenAI sur `http://127.0.0.1:11435/v1`. Depuis une sandbox, mm se replie sur `http://host.docker.internal:11435/v1`.
32+
33+- **La fenêtre est connue dès le démarrage.** C'est celle avec laquelle Kronk sert le modèle, lue auprès de Kronk que le modèle soit chargé ou non, par exemple `ctx: 131072 (/v1/kronk/models)`.
34+- **`autoPull`** télécharge un modèle que Kronk n'a pas, et **`/unload`** et l'outil `unload_model` libèrent sa mémoire.
35+- **Le résumé d'une compaction coupe le raisonnement** avec `chat_template_kwargs`, que Kronk respecte ; Kronk ignore `reasoning_effort: none`. Pas de ligne `Reading the prompt …` : Kronk n'envoie pas d'avancement pendant qu'il lit.
36+- **Un Kronk protégé** (modes `authenticated` ou `full-protected`) prend son jeton dans `KRONK_TOKEN`. Un jeton refusé donne au démarrage un avertissement qui nomme la variable.
37+- **`mm init --provider kronk`** liste les modèles de Kronk et lit, auprès de Kronk, la fenêtre, l'échantillonnage du GGUF et l'interrupteur de raisonnement du chat template.
38+- **Les profils Kronk.** Kronk liste aussi des profils de configuration, `provider/modelID/PROFIL` (par exemple `…/Qwopus3.5-4B-Coder.Q8_0/AGENT`). Un profil, c'est le même modèle avec ses propres réglages dans le `model_config.yaml` de Kronk.
39+ - `mm init` dit ce qu'est un profil, et recopie son échantillonnage dans le fichier. Sans cette copie, il ne s'appliquerait jamais : mm envoie `temperature`, `top_p` et `max_tokens` à chaque requête, même sans bloc `sampling:`, et une valeur de la requête l'emporte sur celle du profil.
40+ - La fenêtre affiche un profil comme `Qwopus3.5-4B-Coder.Q8…/AGENT` au lieu de `AGENT` seul.
41+
42+Depuis un Docker Sandbox, lancez Kronk sur l'hôte avec `kronk server start --api-host 0.0.0.0:11435` : par défaut, il n'écoute que sur la boucle locale. L'id sous lequel Kronk sert un modèle n'est pas toujours celui du téléchargement : `unsloth/Qwen3.5-2B-GGUF:Q4_K_M` est servi comme `unsloth/Qwen3.5-2B-Q4_K_M`. Prenez l'id que donne `GET /v1/models`.
43+
44+Vérifié avec Kronk 1.33.2, Qwopus3.5 4B Coder et Qwen3.5 2B :
45+- un tour avec appels d'outils ;
46+- `/unload` ;
47+- `mm init --provider kronk --check` ;
48+- la fenêtre et l'échantillonnage d'un profil.
49+
50+**Pas essayé** : un vrai téléchargement par `autoPull` (seule la réponse pour un modèle déjà installé a été lue), une compaction, et un Kronk protégé.
51+
52+Voir [Faire tourner mini-me sur Kronk](../docs/fr/how-to/run-with-kronk.md).
53+
54+## Démos
55+
56+- [`demos/kronk/`](../demos/kronk/README.fr.md) : un agent de code sur Kronk avec `mradermacher/Qwopus3.5-4B-Coder.Q8_0`, et la ligne à changer pour Qwen3.5 2B.
57+- [`demo.acp.sdk/client-tools-nodejs/`](../demo.acp.sdk/client-tools-nodejs/README.fr.md) : un client Node.js sans dépendance qui prête à l'agent un outil, `host_info`, le système, le CPU, la mémoire ou l'uptime de la machine du client. L'agent n'a pas de shell : cet outil est son seul moyen de savoir.
58+- [`demo.acp.sdk/go/`](../demo.acp.sdk/go/README.fr.md) : `Options.Tools`, et `examples/clienttools`, une liste de tâches que l'agent remplit et lit.
59+
60+## Documentation
61+
62+- Nouveau :
63+ - [Proposer des outils depuis votre client ACP](../docs/fr/how-to/offer-tools-from-an-acp-client.md) ;
64+ - [Outils du client ACP](../docs/fr/reference/acp-client-tools.md), la spécification ;
65+ - [Outils du client ACP — explication](../docs/fr/explanation/acp-client-tools.md) ;
66+ - [Faire tourner mini-me sur Kronk](../docs/fr/how-to/run-with-kronk.md).
67+- Mis à jour pour Kronk et les outils client :
68+ - les références de configuration, de la CLI et des outils ;
69+ - les explications sur les fournisseurs, `mm init` et les modèles qui réfléchissent ;
70+ - les guides pour couper le raisonnement, libérer la mémoire d'un modèle et tourner dans un Docker Sandbox.
71+- Le guide d'installation macOS montre comment vérifier la signature du binaire, avec `codesign`, avant de l'installer.
72+
73+## Mise à jour
74+
75+- **Les fichiers d'agent ne changent pas.** Remplacez le binaire : voir les guides d'installation pour [macOS](../INSTALL.MACOS.md), [Linux](../INSTALL.LINUX.md) et [Windows](../INSTALL.WINDOWS.md).
76+- Nouvelles clés :
77+ - `acp.clientTools.enabled` (`true`) ;
78+ - `acp.clientTools.discovery` (`meta`) ;
79+ - `acp.clientTools.permissions` (`auto`) ;
80+ - `acp.clientTools.timeout` (`30s`).
81+
82+ Un client ACP qui n'annonce aucun outil ne voit aucune différence.
83+- Nouvelle valeur de `provider` : `kronk`. `unknown provider` liste maintenant `dmr, kronk, llamacpp, llmman, ollama, openai`.
new file mode 100644
@@ -0,0 +1,83 @@
1+# mini-me v1.0.6
2+
3+*[English version](v1.0.6.en.md)*
4+
5+Un client ACP peut prêter à l'agent ses propres fonctions comme outils, et mini-me tourne sur Kronk, le serveur d'inférence Go d'Ardan Labs.
6+
7+## Nouveautés
8+
9+### Des outils prêtés par un client ACP (#202)
10+
11+En mode ACP, le programme qui pilote mm peut maintenant donner à l'agent ses propres outils. Par exemple les buffers ouverts d'un éditeur, les données d'une application ou un appareil. Le modèle les appelle comme `bash` ou `read_file`, sous le nom `client_<nom>`. mm transmet chaque appel au client sous forme de requête d'extension ACP et rend la réponse au modèle. ACP ne définit aucun moyen de décrire un tel outil : mm en définit donc un, sous son propre espace de noms, `org.mini-me`. Un client qui ne s'en sert pas n'envoie rien, et rien ne change.
12+
13+- **Deux façons d'annoncer les outils**, réglées par `acp.clientTools.discovery`.
14+ - `meta` (par défaut) : le client liste ses outils dans `initialize`.
15+ - `request` : le client dit seulement qu'il a des outils, et mm demande la liste à chaque ouverture, chargement ou reprise de session. C'est pour des outils qui dépendent de la session.
16+- **Permissions**, réglées par `acp.clientTools.permissions`.
17+ - `auto` (par défaut) ne demande au client que si `yolo` vaut `false`.
18+ - `ask` demande avant chaque appel.
19+ - Le défaut est `auto`, là où celui de MCP est `ask` : un outil client est une fonction du programme même qui a lancé mm.
20+- **Les erreurs ne terminent jamais le tour.** Un client qui échoue, ne répond pas dans `acp.clientTools.timeout` (`30s`), ou répond `Method not found` donne au modèle un texte `[client tool error: …]`. Une entrée inutilisable de la liste est ignorée avec une ligne sur stderr.
21+- **Pour le couper** : `acp.clientTools.enabled: false`. Les outils n'existent qu'en mode ACP : le terminal et la fenêtre n'ont pas de client pour les prêter.
22+
23+La spécification est écrite pour les auteurs de clients : le JSON exact de l'annonce, de la requête de liste, d'un appel et de sa réponse. Le paquet Go de `demo.acp.sdk` propose des outils avec `Options.Tools` et `ToolDiscovery`.
24+
25+Vérifié avec Qwen3.5 4B sur llmman : l'exemple Go, dans les deux modes, et la démo Node.js, en `meta`, `request` et `yolo: false`. La démo Node.js a aussi tourné sur macOS.
26+
27+Voir [Proposer des outils depuis votre client ACP](../docs/fr/how-to/offer-tools-from-an-acp-client.md), la [spécification](../docs/fr/reference/acp-client-tools.md) et [pourquoi elle a cette forme](../docs/fr/explanation/acp-client-tools.md).
28+
29+### Fournisseur Kronk (#75)
30+
31+`provider: kronk` fait tourner mini-me sur [Kronk](https://www.kronkai.com), le serveur d'inférence Go d'Ardan Labs. Kronk embarque llama.cpp sans processus `llama-server`. mm utilise son API compatible OpenAI sur `http://127.0.0.1:11435/v1`. Depuis une sandbox, mm se replie sur `http://host.docker.internal:11435/v1`.
32+
33+- **La fenêtre est connue dès le démarrage.** C'est celle avec laquelle Kronk sert le modèle, lue auprès de Kronk que le modèle soit chargé ou non, par exemple `ctx: 131072 (/v1/kronk/models)`.
34+- **`autoPull`** télécharge un modèle que Kronk n'a pas, et **`/unload`** et l'outil `unload_model` libèrent sa mémoire.
35+- **Le résumé d'une compaction coupe le raisonnement** avec `chat_template_kwargs`, que Kronk respecte ; Kronk ignore `reasoning_effort: none`. Pas de ligne `Reading the prompt …` : Kronk n'envoie pas d'avancement pendant qu'il lit.
36+- **Un Kronk protégé** (modes `authenticated` ou `full-protected`) prend son jeton dans `KRONK_TOKEN`. Un jeton refusé donne au démarrage un avertissement qui nomme la variable.
37+- **`mm init --provider kronk`** liste les modèles de Kronk et lit, auprès de Kronk, la fenêtre, l'échantillonnage du GGUF et l'interrupteur de raisonnement du chat template.
38+- **Les profils Kronk.** Kronk liste aussi des profils de configuration, `provider/modelID/PROFIL` (par exemple `…/Qwopus3.5-4B-Coder.Q8_0/AGENT`). Un profil, c'est le même modèle avec ses propres réglages dans le `model_config.yaml` de Kronk.
39+ - `mm init` dit ce qu'est un profil, et recopie son échantillonnage dans le fichier. Sans cette copie, il ne s'appliquerait jamais : mm envoie `temperature`, `top_p` et `max_tokens` à chaque requête, même sans bloc `sampling:`, et une valeur de la requête l'emporte sur celle du profil.
40+ - La fenêtre affiche un profil comme `Qwopus3.5-4B-Coder.Q8…/AGENT` au lieu de `AGENT` seul.
41+
42+Depuis un Docker Sandbox, lancez Kronk sur l'hôte avec `kronk server start --api-host 0.0.0.0:11435` : par défaut, il n'écoute que sur la boucle locale. L'id sous lequel Kronk sert un modèle n'est pas toujours celui du téléchargement : `unsloth/Qwen3.5-2B-GGUF:Q4_K_M` est servi comme `unsloth/Qwen3.5-2B-Q4_K_M`. Prenez l'id que donne `GET /v1/models`.
43+
44+Vérifié avec Kronk 1.33.2, Qwopus3.5 4B Coder et Qwen3.5 2B :
45+- un tour avec appels d'outils ;
46+- `/unload` ;
47+- `mm init --provider kronk --check` ;
48+- la fenêtre et l'échantillonnage d'un profil.
49+
50+**Pas essayé** : un vrai téléchargement par `autoPull` (seule la réponse pour un modèle déjà installé a été lue), une compaction, et un Kronk protégé.
51+
52+Voir [Faire tourner mini-me sur Kronk](../docs/fr/how-to/run-with-kronk.md).
53+
54+## Démos
55+
56+- [`demos/kronk/`](../demos/kronk/README.fr.md) : un agent de code sur Kronk avec `mradermacher/Qwopus3.5-4B-Coder.Q8_0`, et la ligne à changer pour Qwen3.5 2B.
57+- [`demo.acp.sdk/client-tools-nodejs/`](../demo.acp.sdk/client-tools-nodejs/README.fr.md) : un client Node.js sans dépendance qui prête à l'agent un outil, `host_info`, le système, le CPU, la mémoire ou l'uptime de la machine du client. L'agent n'a pas de shell : cet outil est son seul moyen de savoir.
58+- [`demo.acp.sdk/go/`](../demo.acp.sdk/go/README.fr.md) : `Options.Tools`, et `examples/clienttools`, une liste de tâches que l'agent remplit et lit.
59+
60+## Documentation
61+
62+- Nouveau :
63+ - [Proposer des outils depuis votre client ACP](../docs/fr/how-to/offer-tools-from-an-acp-client.md) ;
64+ - [Outils du client ACP](../docs/fr/reference/acp-client-tools.md), la spécification ;
65+ - [Outils du client ACP — explication](../docs/fr/explanation/acp-client-tools.md) ;
66+ - [Faire tourner mini-me sur Kronk](../docs/fr/how-to/run-with-kronk.md).
67+- Mis à jour pour Kronk et les outils client :
68+ - les références de configuration, de la CLI et des outils ;
69+ - les explications sur les fournisseurs, `mm init` et les modèles qui réfléchissent ;
70+ - les guides pour couper le raisonnement, libérer la mémoire d'un modèle et tourner dans un Docker Sandbox.
71+- Le guide d'installation macOS montre comment vérifier la signature du binaire, avec `codesign`, avant de l'installer.
72+
73+## Mise à jour
74+
75+- **Les fichiers d'agent ne changent pas.** Remplacez le binaire : voir les guides d'installation pour [macOS](../INSTALL.MACOS.md), [Linux](../INSTALL.LINUX.md) et [Windows](../INSTALL.WINDOWS.md).
76+- Nouvelles clés :
77+ - `acp.clientTools.enabled` (`true`) ;
78+ - `acp.clientTools.discovery` (`meta`) ;
79+ - `acp.clientTools.permissions` (`auto`) ;
80+ - `acp.clientTools.timeout` (`30s`).
81+
82+ Un client ACP qui n'annonce aucun outil ne voit aucune différence.
83+- Nouvelle valeur de `provider` : `kronk`. `unknown provider` liste maintenant `dmr, kronk, llamacpp, llmman, ollama, openai`.