@hanskristoffer/agentpool 0.25.0 → 0.25.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/README.md +24 -23
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -87,10 +87,10 @@ Each machine can show its own health: CPU, load, memory, disk, time spent waitin
|
|
|
87
87
|
|
|
88
88
|
`agentgate setup` writes a Claude config dir (whose `settings.json` points Claude Code at the daemon) and a Codex home. In T3 Code, add one provider instance per provider:
|
|
89
89
|
|
|
90
|
-
| Provider | T3 setting
|
|
91
|
-
|
|
92
|
-
| Claude
|
|
93
|
-
| Codex
|
|
90
|
+
| Provider | T3 setting |
|
|
91
|
+
| -------- | ------------------------------------------------------- |
|
|
92
|
+
| Claude | `CLAUDE_CONFIG_DIR path` = `~/.config/agentgate/claude` |
|
|
93
|
+
| Codex | `CODEX_HOME path` = `~/.config/agentgate/codex` |
|
|
94
94
|
|
|
95
95
|
One instance per provider covers every account; the daemon switches eligible accounts when quota is exhausted. Account-specific continuations require their original account; if it is unavailable, the client receives an explicit restart error. In the app's **Accounts** screen, click an account's pin to prefer it for its provider. The pin applies to the next request in every routed session and syncs to paired machines; while the pinned account has no room, the pool falls back to another one. Click the pin again to go back to automatic. The CLI equivalent is `agentgate accounts pin <id>` / `agentgate accounts unpin <id>`.
|
|
96
96
|
|
|
@@ -247,13 +247,13 @@ Running from a git checkout keeps its state in the checkout's gitignored `.agent
|
|
|
247
247
|
|
|
248
248
|
## Monorepo
|
|
249
249
|
|
|
250
|
-
| Workspace
|
|
251
|
-
|
|
252
|
-
| `apps/agentgate` (`@agentgate/daemon`)
|
|
253
|
-
| `apps/desktop` (`@agentgate/desktop`)
|
|
254
|
-
| `apps/site` (`@agentgate/site`)
|
|
255
|
-
| `apps/relay` (`@agentgate/relay`)
|
|
256
|
-
| `packages/protocol` (`@agentgate/protocol`) | Shared control API types and configuration schemas
|
|
250
|
+
| Workspace | Role |
|
|
251
|
+
| ------------------------------------------- | -------------------------------------------------------------------------------------------------- |
|
|
252
|
+
| `apps/agentgate` (`@agentgate/daemon`) | Bun daemon, standalone CLI, provider proxies, SQLite, sync, and MCP gateway |
|
|
253
|
+
| `apps/desktop` (`@agentgate/desktop`) | Tauri 2 shell with React/Vite, system appearance, translucent sidebar, and remembered window state |
|
|
254
|
+
| `apps/site` (`@agentgate/site`) | Static Astro landing page for Cloudflare Pages |
|
|
255
|
+
| `apps/relay` (`@agentgate/relay`) | Cloudflare Worker and Durable Objects for the encrypted sync relay |
|
|
256
|
+
| `packages/protocol` (`@agentgate/protocol`) | Shared control API types and configuration schemas |
|
|
257
257
|
|
|
258
258
|
The app uses Tauri commands to send HTTP requests from Rust. It has no browser HTTP fallback, server-rendered pages, cookies, or CORS management access. The daemon's `/api/*` management endpoints reject browser Origin/Fetch Metadata headers; remote requests require the node's admin bearer token. Status omits credentials, header values, command environments, and URL credentials/query strings. `/oauth/callback` is a small text response for MCP sign-in, including CLI sign-in. Provider and MCP traffic remains loopback-only. Backup export/restore and login-directory import require a local connection.
|
|
259
259
|
|
|
@@ -279,10 +279,11 @@ Network partitions can still cause separate machines to compete for a rotating u
|
|
|
279
279
|
|
|
280
280
|
## Development checks
|
|
281
281
|
|
|
282
|
-
Use Bun 1.4.
|
|
282
|
+
Use Bun 1.4.4 and the committed lockfile:
|
|
283
283
|
|
|
284
284
|
```sh
|
|
285
285
|
bun install --frozen-lockfile
|
|
286
|
+
bun fmt --no-script --check .
|
|
286
287
|
bun run typecheck
|
|
287
288
|
bun test
|
|
288
289
|
bun run build
|
|
@@ -297,17 +298,17 @@ bun scripts/codex-smoke.ts # optional: installed Codex CLI, f
|
|
|
297
298
|
|
|
298
299
|
Builds produce four macOS/Linux binaries and `dist/SHA256SUMS`. Releases use [release-please](https://github.com/googleapis/release-please): conventional commits on `main` (`feat:`, `fix:`) keep a release PR open with the next version and changelog, and merging it publishes the binaries to npm (`@hanskristoffer/agentpool` plus one `agentpool-<os>-<cpu>` package per binary, via `scripts/npm.ts`; npm trusted publishing is configured for each generated package) and to a GitHub release. The installer verifies the checksum from the same resolved release before replacing an installed binary. CI runs tests, typechecking, frontend builds, and compiled CLI checks on macOS and Linux, plus Rust checks and app packaging on macOS. Releases also attach a universal macOS DMG, signed with a Developer ID certificate and notarized (`.github/workflows/build-macos.yml`; run it by hand with a tag to rebuild one). It needs these repository secrets:
|
|
299
300
|
|
|
300
|
-
| Secret
|
|
301
|
-
|
|
302
|
-
| `APPLE_CERTIFICATE`
|
|
303
|
-
| `APPLE_CERTIFICATE_PASSWORD`
|
|
304
|
-
| `APPLE_SIGNING_IDENTITY`
|
|
305
|
-
| `APPLE_TEAM_ID`
|
|
306
|
-
| `APPLE_API_KEY`
|
|
307
|
-
| `APPLE_API_ISSUER`
|
|
308
|
-
| `APPLE_API_KEY_CONTENT`
|
|
309
|
-
| `TAURI_SIGNING_PRIVATE_KEY`
|
|
310
|
-
| `TAURI_SIGNING_PRIVATE_KEY_PASSWORD` | its password
|
|
301
|
+
| Secret | Value |
|
|
302
|
+
| ------------------------------------ | -------------------------------------------------------------------------------------------- |
|
|
303
|
+
| `APPLE_CERTIFICATE` | base64 of the Developer ID Application `.p12`, including the G2 intermediate |
|
|
304
|
+
| `APPLE_CERTIFICATE_PASSWORD` | its password |
|
|
305
|
+
| `APPLE_SIGNING_IDENTITY` | `Developer ID Application: Name (TEAMID)` |
|
|
306
|
+
| `APPLE_TEAM_ID` | ten-character team id |
|
|
307
|
+
| `APPLE_API_KEY` | App Store Connect API key id |
|
|
308
|
+
| `APPLE_API_ISSUER` | its issuer id |
|
|
309
|
+
| `APPLE_API_KEY_CONTENT` | contents of the `.p8` |
|
|
310
|
+
| `TAURI_SIGNING_PRIVATE_KEY` | contents of the updater key from `bun run --filter @agentgate/desktop tauri signer generate` |
|
|
311
|
+
| `TAURI_SIGNING_PRIVATE_KEY_PASSWORD` | its password |
|
|
311
312
|
|
|
312
313
|
The release also carries a signed app archive and `latest.json`. Installed apps check that on launch and every four hours and offer a restart to update; the public key in `tauri.conf.json` rejects anything not signed with the updater key. Keep that key: without it, installed copies can never update again. On launch, an updated app also replaces the daemon copy the service runs when it differs from the bundled one, then restarts the service.
|
|
313
314
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hanskristoffer/agentpool",
|
|
3
|
-
"version": "0.25.
|
|
3
|
+
"version": "0.25.1",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -22,9 +22,9 @@
|
|
|
22
22
|
"agentgate": "bin/agentpool.js"
|
|
23
23
|
},
|
|
24
24
|
"optionalDependencies": {
|
|
25
|
-
"agentpool-darwin-arm64": "0.25.
|
|
26
|
-
"agentpool-darwin-x64": "0.25.
|
|
27
|
-
"agentpool-linux-x64": "0.25.
|
|
28
|
-
"agentpool-linux-arm64": "0.25.
|
|
25
|
+
"agentpool-darwin-arm64": "0.25.1",
|
|
26
|
+
"agentpool-darwin-x64": "0.25.1",
|
|
27
|
+
"agentpool-linux-x64": "0.25.1",
|
|
28
|
+
"agentpool-linux-arm64": "0.25.1"
|
|
29
29
|
}
|
|
30
30
|
}
|