loopctl-mcp-server 2.92.0 → 2.92.1

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.
Files changed (3) hide show
  1. package/README.md +1 -1
  2. package/index.js +3 -2
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -474,7 +474,7 @@ Enroll the dev machines that run the agent delivery loop, and see which are conn
474
474
  | `runner_enroll` | Enroll this machine as a runner (`POST /api/v1/runners`). Required: `name` (the machine name the runner declares when it joins) and `token_file` (absolute, or starting with `~/`). The credential is written to `token_file` with mode 0600 and is **never returned**: the result is only `{ runner: {id, name, inserted_at}, token_file }`, because a tool result lands in the transcript and the token lets its holder join as that machine. The file is created exclusively, so an existing path (or a symlink there) is refused before anything is enrolled; missing parent directories are created 0700. If the token cannot be written after enrollment, the runner is revoked before the error returns. Only a 4xx is treated as a refusal: any other failure (timeout, 5xx, a 2xx that did not parse) may have enrolled the runner, so its response body is never echoed, the runner is revoked when the response proves its id, and otherwise the error points at `runner_list` and `runner_revoke`. 422 (name malformed or taken) and 403 (`custody_tier_required`, `api_key_mint_forbidden`) pass through with their code. |
475
475
  | `runner_list` | List enrolled runners (`GET /api/v1/runners`). Optional: `include_revoked`. Enrollment only; connection state is `runner_pool`. |
476
476
  | `runner_revoke` | Revoke a runner (`DELETE /api/v1/runners/:id`): its credential stops authenticating and its live socket is disconnected. The undo for `runner_enroll`. Idempotent. Required: `id`. |
477
- | `runner_pool` | The tenant's connected runners from Presence (`GET /api/v1/runners/pool`): per machine name, `runner_id`, `joined_at`, `in_flight`, `draining`, `max_sessions`, the latest `sample`, and `live_sockets` (above 1 means more than one process holds the credential). Presence converges only within a cluster. |
477
+ | `runner_pool` | The tenant's connected runners from Presence (`GET /api/v1/runners/pool`): per machine name, `runner_id`, `joined_at`, `in_flight`, `draining`, `max_sessions`, the latest `sample`, `live_sockets` (above 1 means more than one process holds the credential), and the `node` and `machine_id` (Fly Machine) holding the socket. Presence converges only within a cluster. |
478
478
 
479
479
  ### Dispatch & Chain of Custody (v2) Tools
480
480
 
package/index.js CHANGED
@@ -7531,8 +7531,9 @@ const TOOLS = [
7531
7531
  description:
7532
7532
  "The tenant's CONNECTED runners, read from Presence (GET /api/v1/runners/pool): per machine " +
7533
7533
  "name, runner_id, joined_at, in_flight, draining, max_sessions, the latest health sample, " +
7534
- "and live_sockets. live_sockets above 1 means more than one process holds that runner's " +
7535
- "credential. A killed runner disappears once its socket closes. Presence converges only " +
7534
+ "live_sockets, and the node and machine_id (Fly Machine) holding the socket. live_sockets " +
7535
+ "above 1 means more than one process holds that runner's credential. A killed runner " +
7536
+ "disappears once its socket closes. Presence converges only " +
7536
7537
  "within a cluster, so on an unclustered multi-node deployment a runner on another node is " +
7537
7538
  "absent. Requires LOOPCTL_USER_KEY (user role).",
7538
7539
  inputSchema: { type: "object", properties: {} },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "loopctl-mcp-server",
3
- "version": "2.92.0",
3
+ "version": "2.92.1",
4
4
  "description": "MCP server for loopctl — structural trust for AI development loops",
5
5
  "type": "module",
6
6
  "main": "index.js",