@dinglebear/labby 1.20.1 → 2.2.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.
package/LICENSE CHANGED
@@ -659,3 +659,36 @@ specific requirements.
659
659
  if any, to sign a "copyright disclaimer" for the program, if necessary.
660
660
  For more information on this, and how to apply and follow the GNU AGPL, see
661
661
  <http://www.gnu.org/licenses/>.
662
+
663
+ -------------------------------------------------------------------------------
664
+ LABBY PROJECT LICENSING NOTICE
665
+ -------------------------------------------------------------------------------
666
+
667
+ Except for third-party material and files carrying a separate license or
668
+ copyright notice, the original software in Labby authored by Jacob Magar or
669
+ Dinglebear AI is licensed under the GNU Affero General Public License version
670
+ 3.0 only (SPDX: AGPL-3.0-only), whose complete and unmodified text appears
671
+ above.
672
+
673
+ This grant applies to revisions containing this notice. Earlier revisions
674
+ remain available under the licenses under which they were originally
675
+ published; those earlier grants are not revoked.
676
+
677
+ Dinglebear-owned portions are also available under separate written commercial
678
+ terms for organizations that need terms outside AGPL-3.0-only. No commercial
679
+ license is granted by this file. A commercial agreement covers only copyrights
680
+ owned or controlled by Dinglebear AI; it does not relicense third-party code,
681
+ dependencies, trademarks, data, artwork, or separately licensed material.
682
+
683
+ Files and directories containing their own license, copyright notice, or
684
+ upstream attribution remain under those original terms. Dependencies are
685
+ licensed by their respective authors.
686
+
687
+ External code contributions must not be merged until Dinglebear AI has a
688
+ contributor agreement or another documented grant permitting both AGPL and
689
+ commercial distribution. Issues, bug reports, and suggestions do not transfer
690
+ copyright.
691
+
692
+ To request separate commercial terms, contact Dinglebear AI through this
693
+ repository's GitHub contact channels and identify the intended product,
694
+ deployment model, distribution method, and support needs.
package/README.md CHANGED
@@ -66,7 +66,7 @@ After installing Labby, configure proxy defaults once and launch a JavaScript
66
66
  stdio server without proxy flags:
67
67
 
68
68
  ```bash
69
- labby setup proxy
69
+ labby config proxy set
70
70
  labby doctor proxy
71
71
  labby proxy /path/to/dist.js
72
72
  ```
@@ -85,10 +85,47 @@ development. Bearer and OAuth setup, exact-port resource audiences, safe Serve
85
85
  ownership, configuration precedence, output modes, and recovery are covered in
86
86
  the [stdio MCP proxy guide](./docs/guides/STDIO_MCP_PROXY.md).
87
87
 
88
- ### Install A Release
88
+ ### Install Labby with `$install-labby`
89
+
90
+ The first-class guided install path is the checked-in `install-labby` Agent Skill. Install that one skill, then ask a skill-aware agent to run it:
91
+
92
+ ```bash
93
+ npx skills add https://github.com/dinglebear-ai/labby --skill install-labby
94
+ ```
95
+
96
+ ```text
97
+ $install-labby
98
+ ```
99
+
100
+ The skill inspects the machine, asks for authentication/listener/deployment choices, drives the verified release installer plus `labby setup`, configures supported persistence and HTTPS exposure, helps register Labby in installed agents, and does not declare success until `labby doctor` plus a live MCP smoke pass. Security-sensitive durable writes remain owned by the Labby binary rather than duplicated in skill prose.
101
+
102
+ See [`plugins/labby/skills/install-labby/SKILL.md`](./plugins/labby/skills/install-labby/SKILL.md) for the orchestration contract and [`docs/adr/0001-install-labby-first-class-install-orchestrator.md`](./docs/adr/0001-install-labby-first-class-install-orchestrator.md) for the architecture decision.
103
+
104
+ #### Install through APM
105
+
106
+ Teams that standardize on the [Agent Package Manager](https://microsoft.github.io/apm/)
107
+ get the skills and the MCP registration in one step:
108
+
109
+ ```bash
110
+ apm install -g dinglebear-ai/labby
111
+ ```
112
+
113
+ That deploys `install-labby`, `using-labby`, and `creating-snippets` into
114
+ `~/.claude/skills` and `~/.agents/skills` and registers the `labby` stdio MCP
115
+ server (`npx -y @dinglebear/labby mcp`) for Claude Code and Codex; `apm.yml` at
116
+ the repository root is the manifest and `apm outdated -g` reports new
117
+ releases. APM does not install the `labby` binary or provision a gateway host:
118
+ run `$install-labby` (or the verified release installer below) and
119
+ `labby setup` for that.
120
+
121
+ #### Manual Verified Release
122
+
123
+ Prerequisites for the verified release path are `curl`, `tar`, a SHA-256 tool (`sha256sum` or `shasum`), and an authenticated GitHub CLI (`gh`) build that supports `gh attestation verify`. The installer checks all of these before resolving or downloading any Labby release, so a fresh machine fails fast with an actionable dependency message rather than downloading an artifact it cannot verify (the `gh auth status` probe itself contacts GitHub, so the guarantee is about release downloads, not all network use). Ubuntu 26.04's distro package currently ships `gh 2.46.0`, which is too old for this trust path; install or upgrade GitHub CLI from GitHub's current official packages/releases, verify `gh attestation verify --help`, then run `gh auth login` (or provide `GH_TOKEN` for headless automation).
89
124
 
90
125
  Linux/macOS:
91
126
 
127
+ > **Release compatibility gate:** select a release that publishes `labby-install.sh` and contains the documented first-run `labby setup --role ...` interface. Confirm the selected tag exposes the installer and checksum before continuing; do not assume an older release matches the current setup contract.
128
+
92
129
  ```bash
93
130
  version=vX.Y.Z
94
131
  base="https://github.com/dinglebear-ai/labby/releases/download/$version"
@@ -101,8 +138,6 @@ gh attestation verify labby-install.sh \
101
138
  --deny-self-hosted-runners
102
139
  shasum -a 256 -c labby-install.sh.sha256
103
140
  LABBY_INSTALL_VERSION="$version" sh ./labby-install.sh
104
- labby setup
105
- labby serve --host 127.0.0.1 --port 8765
106
141
  ```
107
142
 
108
143
  MCP clients that prefer npm launchers can run Labby through the Node wrapper:
@@ -111,33 +146,34 @@ MCP clients that prefer npm launchers can run Labby through the Node wrapper:
111
146
  npx -y @dinglebear/labby mcp
112
147
  ```
113
148
 
114
- Windows PowerShell:
115
-
116
- ```powershell
117
- $Version = "vX.Y.Z"
118
- $Base = "https://github.com/dinglebear-ai/labby/releases/download/$Version"
119
- Invoke-WebRequest "$Base/labby-install.ps1" -OutFile labby-install.ps1
120
- Invoke-WebRequest "$Base/labby-install.ps1.sha256" -OutFile labby-install.ps1.sha256
121
- gh attestation verify labby-install.ps1 `
122
- --repo dinglebear-ai/labby `
123
- --signer-workflow dinglebear-ai/labby/.github/workflows/release.yml `
124
- --source-ref "refs/tags/$Version" `
125
- --deny-self-hosted-runners
126
- $Expected = ((Get-Content labby-install.ps1.sha256) -split '\s+')[0]
127
- if ((Get-FileHash labby-install.ps1 -Algorithm SHA256).Hash.ToLower() -ne $Expected) { throw "installer digest mismatch" }
128
- $env:LABBY_INSTALL_VERSION = $Version
129
- & ./labby-install.ps1
130
- labby setup
131
- labby serve --host 127.0.0.1 --port 8765
132
- ```
149
+ The npm launcher is a weaker trust path than the installer scripts. It
150
+ downloads the release archive for the current platform and verifies only the
151
+ `.sha256` sidecar (or the `SHA256SUMS` manifest) published next to it on the
152
+ same release; it does not require `gh` and does not verify GitHub build
153
+ provenance. Use `labby-install.sh` on Linux or macOS when provenance
154
+ verification matters. Current releases do not publish Windows binaries or
155
+ installers.
133
156
 
134
157
  The separately downloaded and attested install scripts resolve an immutable GitHub Release containing the current
135
158
  platform asset, require `gh`, verify the archive's attestation against the
136
159
  Labby repository, `release.yml`, exact tag, and hosted-runner policy, verify its checksum, and install `labby` onto the
137
- user PATH. They do **not** perform
138
- operator provisioning or environment setup. The scripts only install the binary
139
- (from a release or fallback source build); all first-run provisioning is handled
140
- inside `labby` via `labby serve` bootstrap and `labby setup`.
160
+ user PATH. The shell installer then runs `labby setup`, which
161
+ asks whether this machine should run a server or connect to an existing one.
162
+ Server setup configures authentication and a managed native service, or an Incus
163
+ container on supported Linux hosts. Client setup saves the explicit gateway URL
164
+ and configures browser sign-in or a bearer token. Desktop installation is optional
165
+ and off by default; if the published desktop package is unavailable, setup reports
166
+ that and still completes.
167
+ For Labby's supported ChatGPT web connection, configure the server in OAuth mode
168
+ and expose it through a publicly reachable HTTPS `LABBY_PUBLIC_URL`; bearer-only
169
+ mode is for local/CLI clients and is not the supported ChatGPT web path. The web
170
+ UI offers bearer token sign-in only over HTTPS or a direct loopback connection;
171
+ behind a TLS-terminating proxy, set `LABBY_PUBLIC_URL=https://...` to unlock it.
172
+
173
+ For unattended shell installs, set `LABBY_SETUP_ROLE=server` or `client` and the
174
+ corresponding `LABBY_SETUP_*` options. For a binary-only install, set
175
+ `LABBY_INSTALL_NO_SETUP=1`. Manual and automatic `labby host update` operations always
176
+ skip first-run setup. See the [setup guide](./docs/services/SETUP.md) for examples.
141
177
 
142
178
  Override install behavior with `LABBY_INSTALL_DIR`, `LABBY_INSTALL_VERSION`, or
143
179
  `LABBY_INSTALL_REPO`. Source fallback is off by default. Opt in with
@@ -153,15 +189,9 @@ it without downloading or changing `$LABBY_HOME`:
153
189
  LABBY_INSTALL_ROLLBACK=1 sh ./labby-install.sh
154
190
  ```
155
191
 
156
- ```powershell
157
- $env:LABBY_INSTALL_ROLLBACK = '1'
158
- & .\labby-install.ps1
159
- ```
160
-
161
192
  Rollback switches only the installed executable and receipt. It does not
162
193
  downgrade or delete configuration, credentials, databases, or other durable
163
- state. Inspect the receipt at `<install-dir>/.labby-install/receipt` on Unix or
164
- `receipt.json` on Windows.
194
+ state. Inspect the receipt at `<install-dir>/.labby-install/receipt`.
165
195
 
166
196
  Release qualification can install an already-downloaded candidate without
167
197
  network or source fallback by setting `LABBY_INSTALL_LOCAL_BINARY` and its exact
@@ -192,16 +222,16 @@ updater job after the server passes its health check. See the
192
222
  For an installation without a persistent server, use the standalone daily job:
193
223
 
194
224
  ```bash
195
- labby update --auto-update enable
196
- labby update --auto-update status
197
- labby update --auto-update disable
225
+ labby host update auto enable
226
+ labby host update auto status
227
+ labby host update auto disable
198
228
  ```
199
229
 
200
230
  Both modes require Apple Silicon and GitHub CLI (`gh`) for release attestation
201
231
  verification. They skip drafts, prereleases, missing platform assets, and versions
202
232
  equal to or older than the installed binary. The installer verifies attestations
203
233
  and checksums before atomic replacement. No separate language runtime is required.
204
- Use `labby update --automatic --dry-run` to check without installing.
234
+ Use `labby host update --automatic --dry-run` to check without installing.
205
235
 
206
236
  ### Build From Source
207
237
 
@@ -287,9 +317,8 @@ checkout.
287
317
 
288
318
  The recommended self-hosted gateway substrate is an amd64 Ubuntu 26.04 Incus
289
319
  system container. Bare metal is the secondary supported shape for a dedicated
290
- gateway host or VM. Docker is retained for explicit development/image smoke,
291
- but it is not the recommended production boundary for Labby because stdio MCP
292
- servers and agent CLIs are installed and launched at runtime.
320
+ gateway host or VM. Labby does not ship a Docker image or Compose deployment;
321
+ stdio MCP servers and agent CLIs are installed and launched at runtime.
293
322
 
294
323
  ```bash
295
324
  scripts/incus-bootstrap.sh --version vX.Y.Z
@@ -321,40 +350,85 @@ set, it starts a standalone local gateway instead. See the
321
350
  [local bridge guide](./docs/surfaces/TRANSPORT.md#local-bridge-to-the-running-daemon)
322
351
  for client configuration and `LABBY_SERVER_URL` fail-closed behavior.
323
352
 
324
- ### Manage Upstream MCP Gateways
353
+ ### Discover Commands
354
+
355
+ ```bash
356
+ labby --help
357
+ labby help --all
358
+ labby help server --all
359
+ labby help --search oauth
360
+ labby help --all --json
361
+ ```
362
+
363
+ Public command names use separate words without hyphens. Flags and resource
364
+ names retain normal syntax. Help and completion work offline, even with broken
365
+ configuration. See the [CLI guide](./docs/surfaces/CLI.md) and
366
+ [breaking migration map](./docs/generated/cli-migration.md).
367
+
368
+ ### Select A Gateway
325
369
 
326
370
  ```bash
327
- labby gateway add \
328
- --name github \
371
+ labby context add homelab --server https://example.invalid --use
372
+ labby auth login --context homelab
373
+ labby --context homelab server list
374
+ labby config check
375
+ ```
376
+
377
+ Contexts save non-secret destinations in the existing host configuration.
378
+ Explicit `--server` or `--context` never borrows an unrelated environment token
379
+ and never falls back to local execution. Host-local commands remain local.
380
+
381
+ ### Manage Upstream MCP Servers
382
+
383
+ ```bash
384
+ labby server add github \
329
385
  --url https://example.com/mcp \
330
- --bearer-token-env GITHUB_MCP_TOKEN \
331
- -y
386
+ --bearer-token-env GITHUB_MCP_TOKEN
332
387
 
333
388
  labby gateway reload
334
- labby gateway list
389
+ labby server list
335
390
  ```
336
391
 
337
- Stdio upstreams execute local commands when tested or reconciled, so gateway
338
- tests and config mutations use the shared destructive-action confirmation gate.
392
+ Stdio upstreams can execute local commands when tested or reconciled. Review
393
+ configuration before adding or testing them; the CLI retains each operation's
394
+ existing authorization and confirmation requirements.
339
395
  The stdio spawn guard allows known runtimes such as `npx`, `uvx`, `docker`,
340
396
  `node`, `python`, `python3`, `deno`, `pipx`, and `dnx`; customize it in
341
397
  `[gateway]` inside `config.toml`.
342
398
 
399
+ Missing creation arguments can be filled by `labby server add` in an interactive
400
+ terminal. Scripts should use complete arguments and `--no-input --json`.
401
+ Timeouts use explicit units, such as `30s` or `2m`.
402
+
403
+ ```bash
404
+ labby server restart alpha beta --timeout 30s
405
+ labby server restart --all --dry-run
406
+ labby --context homelab completions refresh
407
+ labby completions zsh --resources
408
+ ```
409
+
410
+ Restart waits for observed completion and a connected replacement unless
411
+ `--no-wait` is explicit. Bulk operations report every target and return a failing
412
+ exit status when any target fails; uncertain operations are never replayed.
413
+ Optional cached completion is authority-scoped and offline on every Tab key.
414
+
343
415
  ### Use Code Mode
344
416
 
345
417
  When `[code_mode].enabled = true`, Labby hides raw proxied upstream tools from MCP
346
418
  `list_tools()` and exposes the canonical synthetic `codemode` tool.
347
419
 
348
420
  ```bash
349
- labby gateway code status
350
- labby gateway code enable
351
- labby gateway code exec --code 'async () => tools.length'
421
+ labby code status
422
+ labby code enable
423
+ labby code search 'github issues' --limit 5
424
+ labby code describe github.search_issues
425
+ labby code run --file ./task.js
352
426
  ```
353
427
 
354
428
  MCP call shapes:
355
429
 
356
430
  ```json
357
- { "code": "async () => (await codemode.search(\"github issues\")).results" }
431
+ { "code": "async () => (await codemode.search({\"query\":\"github issues\",\"limit\":5})).results" }
358
432
  ```
359
433
 
360
434
  ```json
@@ -371,12 +445,12 @@ from inside the sandbox.
371
445
  ### Work With Code Mode Snippets
372
446
 
373
447
  ```bash
374
- labby snippets list
375
- labby snippets get gateway-summary
376
- labby snippets create --name my-snippet --file ./my-snippet.js
377
- labby snippets validate my-snippet
378
- labby snippets exec my-snippet
379
- labby snippets test my-snippet
448
+ labby snippet list
449
+ labby snippet get gateway-summary
450
+ labby snippet add my-snippet --file ./my-snippet.js
451
+ labby snippet validate my-snippet
452
+ labby snippet run my-snippet
453
+ labby snippet test my-snippet
380
454
  ```
381
455
 
382
456
  Snippets are stored per-user under `$LABBY_HOME` and executed through the
@@ -388,18 +462,23 @@ without the `gateway` feature.
388
462
 
389
463
  ```bash
390
464
  labby doctor # audit every configured service
391
- labby doctor system # local env vars, Docker, disk, toolchain
465
+ labby doctor system # local env vars, disk, toolchain
392
466
  labby doctor auth # auth/OAuth env vars, files, permissions
393
467
  labby doctor proxy # zero-route stdio-proxy config/dependency preflight
394
468
  labby doctor proxy --app-url URL --mcp-url URL --route /path
395
469
  # routed public reverse-proxy checks remain available
396
- labby doctor oauth-relay
397
- labby health # lightweight liveness/readiness probe
398
- labby logs # tail the active deployment's service journal
470
+ labby doctor relay
471
+ labby gateway status # query the selected daemon and its upstream state
472
+ labby logs --lines 50 # bounded local rolling logs, without systemd
473
+ labby logs --level error --query REQUEST_ID --json
474
+ labby logs journal --follow # explicitly stream the deployment journal
399
475
  ```
400
476
 
401
477
  `labby doctor --json` is the CI-friendly form; the exit code reflects the worst
402
- severity found.
478
+ severity found. Runtime errors include their command, origin, side-effect
479
+ classification, recovery guidance, and a request ID. `--json` errors remain one
480
+ JSON envelope on stderr; command results stay on stdout. Use `-v` or `-vv` for
481
+ diagnostics. `--quiet` suppresses console logs but never hides the actual error.
403
482
 
404
483
  > **Removed surfaces.** Earlier releases documented `labby marketplace`,
405
484
  > `labby stash`, `labby nodes`, and `labby deploy`, along with ACP chat, the MCP
@@ -425,7 +504,7 @@ curl -s -X POST http://127.0.0.1:8765/v1/gateway \
425
504
  Dedicated product routes also exist for catalog discovery (`/v1/{service}/actions`),
426
505
  setup, doctor, snippets, filesystem, server logs, gateway OAuth
427
506
  (`/v1/gateway/oauth/*`), OAuth relay, auth allowlists (`/v1/auth/allowed-emails`),
428
- `/v1/openapi`, and the browser session routes under `/auth/*`. See
507
+ `/v1/openapi.json`, interactive API docs at `/v1/docs`, and the browser session routes under `/auth/*`. See
429
508
  [generated API routes](./docs/generated/api-routes.md) and
430
509
  [OpenAPI](./docs/generated/openapi.json).
431
510
 
@@ -580,21 +659,15 @@ just build # cargo build --workspace --all-features
580
659
  just build-release # release build, bin/labby install, ~/.local/bin symlink
581
660
  just service-install # build and install the native persistent gateway service
582
661
  just service-status # inspect the native service manager state
583
- labby setup host-service install --install-self -y # install current binary + start system service
584
- labby setup host-service restart --install-self -y # reinstall current binary + restart service
585
- labby setup host-service status --json # inspect the host Labby gateway service
662
+ labby host service install --install-self -y # install current binary + start system service
663
+ labby host service restart --install-self -y # reinstall current binary + restart service
664
+ labby host service status --json # inspect the host Labby gateway service
586
665
  just host-sync # repo dev shortcut: rebuild + install binary + restart host service
587
- just dev-container # explicit Docker compatibility/prod-like smoke path
588
- just dev-container-debug # explicit Docker debug binary path
589
666
  just web-build # cd apps/gateway-admin && pnpm build
590
667
  just web-watch # rebuild web assets when frontend files change
591
668
  just run -- help # cargo run --all-features -- <args>
592
669
  just chat-local # local Labby admin UI workflow with browser auth disabled
593
- just dev-up # start the explicit Docker compatibility stack
594
- just dev # alias for just dev-container
595
- just dev-debug # alias for just dev-container-debug
596
670
  just install # build-release + symlink ~/.local/bin/labby
597
- just prod-run # local prod-like image smoke on port 18765
598
671
  just mcp-token # rotate LABBY_MCP_HTTP_TOKEN in .env
599
672
  ```
600
673
 
@@ -621,31 +694,14 @@ in-box with `labby setup --provision`. Bare metal uses the same provisioner and
621
694
  system unit when the host or VM is dedicated to Labby. The default service is
622
695
  `/etc/systemd/system/labby.service`, running as `User=labby`, `Group=labby`, with
623
696
  `ExecStart=/usr/local/bin/labby serve`. From a source checkout, `just host-sync`
624
- remains the rebuild-and-restart developer shortcut. Docker remains available
625
- for prod-like image smoke and adapter-container work, but it is no longer the
626
- recommended agent gateway runtime.
627
-
628
- ### Dev Container
629
-
630
- The development Compose stack mirrors the production process controls: a
631
- read-only root filesystem, dropped capabilities, `no-new-privileges`, loopback
632
- port binding, bounded logs, and named volumes for durable state and data. It
633
- also bind-mounts the source repository read-only so locally built web assets are
634
- visible without rebuilding the image. The clean-checkout defaults mount the
635
- tracked, non-secret `config/config.example.toml` and `config/.env.example`.
636
- Set `LABBY_CONFIG_FILE` and `LABBY_ENV_FILE` to select local runtime files;
637
- Compose mounts both read-only at their canonical paths beneath `$LABBY_HOME`. Labby-owned runtime
638
- state remains writable in the surrounding `labby-home` named volume. Startup logs and the
639
- setup settings state report `/home/labby/.labby/config.toml` as the effective
640
- source. The image installs pinned Claude,
641
- Codex, and Gemini CLIs for stdio upstreams that invoke provider tools.
697
+ remains the rebuild-and-restart developer shortcut.
642
698
 
643
699
  ### Releases
644
700
 
645
701
  Release Please maintains the version/changelog pull request and creates the
646
702
  stable tag plus draft GitHub release when that pull request merges. The stable
647
- tag triggers the heavy GitHub-hosted candidate workflow. It builds Linux,
648
- macOS, and Windows archives with checksums, builds and smokes the Incus image,
703
+ tag triggers the heavy GitHub-hosted candidate workflow. It builds Linux and
704
+ macOS archives with checksums, builds and smokes the Incus image,
649
705
  publishes the npm launcher, and publishes Labby's
650
706
  `server.json` metadata to the official MCP Registry. Only after qualification
651
707
  and publication succeed does the workflow promote the draft GitHub release.
@@ -659,8 +715,9 @@ removed; operators run `labby setup` themselves. Do not reintroduce a `hooks/`
659
715
  directory, bundle a binary under `plugins/labby/bin/`, or add
660
716
  Docker/systemd bootstrap logic to plugin assets.
661
717
 
662
- `labby setup plugin-hook` remains a CLI command for on-demand audit and settings
663
- sync (`--no-repair` for read-only), exercised by `just validate-plugin`.
718
+ `just validate-plugin` runs the supported read-only `labby setup check` flow
719
+ against an isolated Labby home. Plugin lifecycle hooks and per-service plugin
720
+ mutation commands remain retired.
664
721
 
665
722
  ## Related Servers
666
723
 
@@ -675,7 +732,6 @@ sync (`--no-repair` for read-only), exercised by `just validate-plugin`.
675
732
  - [synapse-rmcp](https://github.com/dinglebear-ai/synapse) - Local Synapse workflow server for scout and flux actions.
676
733
  - [cortex](https://github.com/dinglebear-ai/cortex) - Syslog and homelab log aggregation MCP server.
677
734
  - [axon](https://github.com/dinglebear-ai/axon) - RAG, crawl, scrape, extract, and semantic search project.
678
- - [lumen](https://github.com/dinglebear-ai/lumen) - Local semantic code search MCP server.
679
735
 
680
736
  ## Documentation
681
737
 
@@ -694,4 +750,4 @@ Start at [docs/README.md](./docs/README.md). High-value entrypoints:
694
750
 
695
751
  ## License
696
752
 
697
- Original Dinglebear-authored portions of this project are licensed under [AGPL-3.0-only](LICENSE). Separate commercial licensing is available for organizations that need terms outside the AGPL. Third-party material remains under its original license. See [LICENSING.md](https://github.com/dinglebear-ai/labby/blob/main/LICENSING.md).
753
+ Original Dinglebear-authored portions of this project are licensed under [AGPL-3.0-only](LICENSE). The same file records the project-specific scope, third-party treatment, contribution policy, and availability of separately negotiated commercial terms.
package/lib/platform.js CHANGED
@@ -15,14 +15,6 @@ function targetFor(platform = process.platform, arch = process.arch) {
15
15
  };
16
16
  }
17
17
 
18
- if (platform === "win32" && arch === "x64") {
19
- return {
20
- asset: "lab-x86_64-pc-windows-msvc.zip",
21
- binary: "labby.exe",
22
- archiveType: "zip",
23
- };
24
- }
25
-
26
18
  if (platform === "darwin" && arch === "arm64") {
27
19
  return {
28
20
  asset: "lab-aarch64-apple-darwin.tar.gz",
@@ -32,7 +24,7 @@ function targetFor(platform = process.platform, arch = process.arch) {
32
24
  }
33
25
 
34
26
  throw new Error(
35
- `Unsupported platform ${platform}/${arch}. Supported targets: linux/x64, darwin/arm64, win32/x64.`,
27
+ `Unsupported platform ${platform}/${arch}. Supported targets: linux/x64, darwin/arm64.`,
36
28
  );
37
29
  }
38
30
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dinglebear/labby",
3
- "version": "1.20.1",
3
+ "version": "2.2.1",
4
4
  "license": "AGPL-3.0-only",
5
5
  "description": "Rust MCP gateway with Code Mode, authentication, setup, logs, CLI, HTTP API, and operator web UI.",
6
6
  "homepage": "https://github.com/dinglebear-ai/labby#readme",