@0xmaxma/claude-gateway 1.8.6 → 1.8.8

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 (109) hide show
  1. package/README.md +159 -4
  2. package/dist/agent/dreaming/config.d.ts +3 -1
  3. package/dist/agent/dreaming/config.d.ts.map +1 -1
  4. package/dist/agent/dreaming/config.js +14 -3
  5. package/dist/agent/dreaming/config.js.map +1 -1
  6. package/dist/agent/dreaming/index.d.ts +2 -0
  7. package/dist/agent/dreaming/index.d.ts.map +1 -1
  8. package/dist/agent/dreaming/index.js +1 -1
  9. package/dist/agent/dreaming/index.js.map +1 -1
  10. package/dist/agent/knowledge/config.d.ts +3 -1
  11. package/dist/agent/knowledge/config.d.ts.map +1 -1
  12. package/dist/agent/knowledge/config.js +13 -3
  13. package/dist/agent/knowledge/config.js.map +1 -1
  14. package/dist/agent/runner.d.ts +66 -1
  15. package/dist/agent/runner.d.ts.map +1 -1
  16. package/dist/agent/runner.js +165 -12
  17. package/dist/agent/runner.js.map +1 -1
  18. package/dist/agent/skill-learning/config.d.ts +3 -1
  19. package/dist/agent/skill-learning/config.d.ts.map +1 -1
  20. package/dist/agent/skill-learning/config.js +13 -3
  21. package/dist/agent/skill-learning/config.js.map +1 -1
  22. package/dist/agent/skill-learning/index.d.ts +2 -0
  23. package/dist/agent/skill-learning/index.d.ts.map +1 -1
  24. package/dist/agent/skill-learning/index.js +1 -1
  25. package/dist/agent/skill-learning/index.js.map +1 -1
  26. package/dist/api/connectors-router.d.ts +50 -0
  27. package/dist/api/connectors-router.d.ts.map +1 -0
  28. package/dist/api/connectors-router.js +650 -0
  29. package/dist/api/connectors-router.js.map +1 -0
  30. package/dist/api/gateway-router.d.ts +4 -0
  31. package/dist/api/gateway-router.d.ts.map +1 -1
  32. package/dist/api/gateway-router.js +26 -0
  33. package/dist/api/gateway-router.js.map +1 -1
  34. package/dist/api/oauth-connectors-router.d.ts +43 -0
  35. package/dist/api/oauth-connectors-router.d.ts.map +1 -0
  36. package/dist/api/oauth-connectors-router.js +384 -0
  37. package/dist/api/oauth-connectors-router.js.map +1 -0
  38. package/dist/api/router.d.ts.map +1 -1
  39. package/dist/api/router.js +101 -9
  40. package/dist/api/router.js.map +1 -1
  41. package/dist/apps/agent-manager.d.ts +6 -2
  42. package/dist/apps/agent-manager.d.ts.map +1 -1
  43. package/dist/apps/agent-manager.js +14 -17
  44. package/dist/apps/agent-manager.js.map +1 -1
  45. package/dist/apps/installer.d.ts +3 -1
  46. package/dist/apps/installer.d.ts.map +1 -1
  47. package/dist/apps/installer.js +8 -2
  48. package/dist/apps/installer.js.map +1 -1
  49. package/dist/cli/commands/service.d.ts +34 -4
  50. package/dist/cli/commands/service.d.ts.map +1 -1
  51. package/dist/cli/commands/service.js +552 -96
  52. package/dist/cli/commands/service.js.map +1 -1
  53. package/dist/config/bootstrap.d.ts.map +1 -1
  54. package/dist/config/bootstrap.js +4 -1
  55. package/dist/config/bootstrap.js.map +1 -1
  56. package/dist/config/config-write-lock.d.ts +45 -0
  57. package/dist/config/config-write-lock.d.ts.map +1 -0
  58. package/dist/config/config-write-lock.js +164 -0
  59. package/dist/config/config-write-lock.js.map +1 -0
  60. package/dist/config/loader.d.ts.map +1 -1
  61. package/dist/config/loader.js +36 -0
  62. package/dist/config/loader.js.map +1 -1
  63. package/dist/config/migrator.d.ts.map +1 -1
  64. package/dist/config/migrator.js +12 -1
  65. package/dist/config/migrator.js.map +1 -1
  66. package/dist/config/watcher.d.ts.map +1 -1
  67. package/dist/config/watcher.js +29 -0
  68. package/dist/config/watcher.js.map +1 -1
  69. package/dist/connectors/custom-connectors-store.d.ts +54 -0
  70. package/dist/connectors/custom-connectors-store.d.ts.map +1 -0
  71. package/dist/connectors/custom-connectors-store.js +204 -0
  72. package/dist/connectors/custom-connectors-store.js.map +1 -0
  73. package/dist/connectors/custom.d.ts +69 -0
  74. package/dist/connectors/custom.d.ts.map +1 -0
  75. package/dist/connectors/custom.js +158 -0
  76. package/dist/connectors/custom.js.map +1 -0
  77. package/dist/connectors/mcp-oauth.d.ts +152 -0
  78. package/dist/connectors/mcp-oauth.d.ts.map +1 -0
  79. package/dist/connectors/mcp-oauth.js +522 -0
  80. package/dist/connectors/mcp-oauth.js.map +1 -0
  81. package/dist/connectors/oauth-refresh-sweep.d.ts +71 -0
  82. package/dist/connectors/oauth-refresh-sweep.d.ts.map +1 -0
  83. package/dist/connectors/oauth-refresh-sweep.js +337 -0
  84. package/dist/connectors/oauth-refresh-sweep.js.map +1 -0
  85. package/dist/connectors/pending-oauth-store.d.ts +39 -0
  86. package/dist/connectors/pending-oauth-store.d.ts.map +1 -0
  87. package/dist/connectors/pending-oauth-store.js +50 -0
  88. package/dist/connectors/pending-oauth-store.js.map +1 -0
  89. package/dist/connectors/resolve.d.ts +52 -0
  90. package/dist/connectors/resolve.d.ts.map +1 -0
  91. package/dist/connectors/resolve.js +176 -0
  92. package/dist/connectors/resolve.js.map +1 -0
  93. package/dist/connectors/token-env.d.ts +93 -0
  94. package/dist/connectors/token-env.d.ts.map +1 -0
  95. package/dist/connectors/token-env.js +323 -0
  96. package/dist/connectors/token-env.js.map +1 -0
  97. package/dist/connectors/types.d.ts +126 -0
  98. package/dist/connectors/types.d.ts.map +1 -0
  99. package/dist/connectors/types.js +13 -0
  100. package/dist/connectors/types.js.map +1 -0
  101. package/dist/index.js +37 -4
  102. package/dist/index.js.map +1 -1
  103. package/dist/session/process.d.ts +23 -0
  104. package/dist/session/process.d.ts.map +1 -1
  105. package/dist/session/process.js +97 -4
  106. package/dist/session/process.js.map +1 -1
  107. package/dist/types.d.ts +46 -1
  108. package/dist/types.d.ts.map +1 -1
  109. package/package.json +1 -1
package/README.md CHANGED
@@ -126,6 +126,12 @@ non-interactive run is refused rather than left hanging). Always stop the gatewa
126
126
  `service uninstall` or `systemctl --user stop claude-gateway.service` — a bare `kill <pid>` bypasses
127
127
  systemd's own stop tracking, so `Restart=always` brings it right back regardless of exit code.
128
128
 
129
+ `install`'s exit code distinguishes three outcomes: `0` fully healthy, `1` install/enable itself
130
+ failed or a validation/confirmation gate refused (nothing was written), `2` install/enable
131
+ succeeded but `/health` never answered within the poll window. A script that only checks the exit
132
+ code — not the JSON result on stdout — can still tell "didn't happen" apart from "happened, health
133
+ unconfirmed" this way.
134
+
129
135
  `install` also refuses (rather than just warning) if a `claude-gateway.service` unit already
130
136
  exists and is enabled or active at *system* scope (e.g. one written by provisioning outside this
131
137
  CLI) — installing a second, independent unit alongside it would race for the port on the next
@@ -134,9 +140,51 @@ pass `--force` to install anyway.
134
140
 
135
141
  The systemd path writes `~/.config/systemd/user/claude-gateway.service`. Run
136
142
  `loginctl enable-linger $USER` once if it must keep running while you're logged out.
143
+ The unit sets `OOMPolicy=continue` so that an OOM-killed child process (e.g. a dev server an
144
+ agent spawned on its own) doesn't take the whole gateway down with it — only `Restart=always`
145
+ restarting the *gateway's own* process is intended. Re-running `claude-gateway service install`
146
+ against an already-active unit whose rendered content changed (a newer CLI version, or different
147
+ flags) automatically restarts it via `systemctl ... restart`, so the update takes effect
148
+ immediately; re-running with unchanged content leaves the running unit alone.
137
149
  Prefer [PM2](https://pm2.keymetrics.io)? `claude-gateway service install --manager pm2` registers
138
150
  and saves the process instead (run `pm2 startup` separately for boot-time start).
139
151
 
152
+ **System-scope installs (for automated/infra provisioning)**
153
+
154
+ Pass `--scope system` to install a root-owned unit at `/etc/systemd/system/claude-gateway.service`
155
+ instead — for provisioning that needs the gateway to run under a fixed system account rather than
156
+ whoever happens to run the install interactively. It requires:
157
+
158
+ ```bash
159
+ sudo claude-gateway service install --scope system --run-as gwuser --yes
160
+ ```
161
+
162
+ - The caller must already be root — `--scope system` never escalates via `sudo` on its own, and
163
+ refuses immediately if it isn't.
164
+ - `--run-as <user>` is required and becomes the unit's `User=`; `WantedBy=` is
165
+ `multi-user.target` instead of `default.target`, so it starts at boot regardless of any login
166
+ session (the `loginctl enable-linger` hint is skipped — it's meaningless here).
167
+ - `WorkingDirectory=`/`HOME=`/the config path all resolve to `--run-as`'s own home directory
168
+ (looked up via `getent passwd`, not the installing root process's home) — the unit runs as that
169
+ user, so its paths must be theirs. A `~/...` in `--config`/`--env-file` expands against that same
170
+ home. `$GATEWAY_CONFIG` from the installing (root) process's own environment is **not** consulted
171
+ for a system-scope install — only an explicit `--config` is — since it belongs to root's
172
+ environment, not `--run-as`'s. If the user's `~/.claude-gateway` doesn't exist yet, the install
173
+ creates it and `chown`s it to them; if it already exists but is owned by someone else (e.g. a
174
+ prior install used a different `--run-as`), ownership is reassigned to match. An
175
+ already-correctly-owned directory is left untouched. Refuses if `--run-as` doesn't resolve to a
176
+ real user on this host.
177
+ - A system-scope install never refuses itself over the system-scope conflict check described
178
+ above — that check exists to protect a *user*-scope install from colliding with an externally
179
+ provisioned system-scope unit, and a system-scope install *is* that unit.
180
+ - `--after <target1,target2>`, `--env-file <path>`, and `--env KEY=VALUE[,KEY=VALUE...]` further
181
+ customize the generated unit (both scopes): extra `After=` ordering targets, an
182
+ `EnvironmentFile=-<path>` for feeding secrets in without ever writing them into the unit text,
183
+ and additional non-secret `Environment=` lines. `--env` refuses to override `HOME`, `PATH`, or
184
+ `GATEWAY_CONFIG` (the installer's own reserved names) — use `--env-file` for anything sensitive.
185
+ - `service status --scope system` and `service uninstall --scope system` work the same way against
186
+ the system-scope unit (uninstall also requires root).
187
+
140
188
  Once installed, drive it through the CLI — it detects whichever manager owns the process:
141
189
 
142
190
  ```bash
@@ -270,6 +318,17 @@ Config lives at `~/.claude-gateway/config.json` (or set `GATEWAY_CONFIG` env var
270
318
  }
271
319
  ```
272
320
 
321
+ ### `gateway.timezone` (optional)
322
+
323
+ IANA timezone, default `"UTC"`. Shared default for the per-feature scheduling
324
+ timezones below when they are unset or invalid: `gateway.history.cleanupTimezone`,
325
+ `gateway.appBackup.cleanupTimezone`, `gateway.skillLearning.pruneTimezone`,
326
+ `gateway.dreaming.dreamTimezone`, and `gateway.knowledge.reflection.timezone`. A
327
+ valid per-feature field still overrides this shared default for that one feature;
328
+ an invalid per-feature value falls through to `gateway.timezone` rather than being
329
+ treated as set. An invalid `gateway.timezone` itself falls back to `"UTC"` rather
330
+ than crashing that scheduler.
331
+
273
332
  ### `gateway.publicUrl` (optional)
274
333
 
275
334
  The externally reachable gateway base URL. Set it manually to enable short-lived
@@ -293,6 +352,91 @@ public base — e.g. LINE, which derives its host from the inbound webhook — b
293
352
  `<base>/shared/<token>` themselves. HTTP is accepted only for local development
294
353
  hosts such as `http://host.docker.internal:10850/gateway`.
295
354
 
355
+ ### `gateway.oauthReturnUrl` (optional)
356
+
357
+ Where to send the browser after a connector OAuth sign-in finishes. The gateway is
358
+ product-agnostic and never hardcodes a downstream app's domain, so this is opt-in.
359
+
360
+ ```json
361
+ {
362
+ "gateway": {
363
+ "oauthReturnUrl": "https://app.example.com/settings/connectors"
364
+ }
365
+ }
366
+ ```
367
+
368
+ Set, the callback issues a real `302` to it on **every** terminal outcome — success, and
369
+ also a denied, expired or failed sign-in, which carries `?connector_oauth_error=<code>`.
370
+ Unset, the callback renders a plain "Connected — you can close this tab" page instead.
371
+ The value is validated once at startup: anything that isn't a well-formed `http(s)` URL
372
+ is logged and ignored rather than injecting a broken redirect into every future callback.
373
+ The scheme is part of that check — this value becomes the `Location` of a redirect sent
374
+ to the end user's own browser from a public route, so a `javascript:` or `data:` URL
375
+ here would be script running on every sign-in, and is refused like any other malformed
376
+ value.
377
+
378
+ ### `gateway.customConnectors` (optional)
379
+
380
+ User-pasted MCP connectors, keyed by a slugified id. Normally written through the API
381
+ (`POST /api/v1/connectors/custom`) rather than by hand.
382
+
383
+ ```json
384
+ {
385
+ "gateway": {
386
+ "customConnectors": {
387
+ "firecrawl": {
388
+ "label": "Firecrawl",
389
+ "config": {
390
+ "type": "streamable-http",
391
+ "url": "https://mcp.firecrawl.dev/v2/mcp-oauth",
392
+ "headers": { "Authorization": "Bearer {access_token}" }
393
+ },
394
+ "secretNames": ["access_token"],
395
+ "credentialOwner": "gateway"
396
+ }
397
+ }
398
+ }
399
+ }
400
+ ```
401
+
402
+ Each entry is raw `mcpServers`-entry JSON with `{placeholder}` tokens standing in for
403
+ secrets. `credentialOwner` records who holds the credential and keeps it valid — `none`,
404
+ `static` (a pasted value), `gateway` (this gateway ran the OAuth flow and refreshes the
405
+ token itself) or `external` (a control plane pushes tokens in). It is written by the
406
+ route that creates the entry; see [API.md](./API.md#connectors-api). **Only the placeholder names are stored here** — the values live in
407
+ `~/.claude-gateway/mcp-token.env` (mode `0600`), namespaced
408
+ `CUSTOM__<connectorId>__<placeholderName>`, and are substituted in when a session spawns.
409
+ Override that file's path with `GATEWAY_MCP_TOKEN_ENV_PATH`.
410
+
411
+ Custom connectors are **admin-trusted but not code-reviewed** — the config is whatever
412
+ the admin pasted, and it becomes an MCP server in every agent's session. Per-agent
413
+ enablement is opt-out and lives on the agent instead (`PATCH /api/v1/agents/:id` with
414
+ `connectors`); connecting a connector at all is the security gate. See
415
+ [API.md](./API.md#connectors-api) for the full model, the OAuth flow, and the refresh
416
+ behaviour.
417
+
418
+ ### `gateway.connectorsDefaultEnabled` (optional)
419
+
420
+ Whether a connected connector is available to an agent that has no explicit entry in its
421
+ own `connectors` map. Defaults to `true` — opt-out: connecting a connector makes it
422
+ available everywhere, and an agent only misses it if explicitly disabled.
423
+
424
+ ```json
425
+ {
426
+ "gateway": {
427
+ "connectorsDefaultEnabled": false
428
+ }
429
+ }
430
+ ```
431
+
432
+ Set it to `false` on a gateway that hosts agents for **more than one person**. The default
433
+ suits the common single-operator install, but with several owners it hands a credential
434
+ connected by one of them to every agent on the box — including agents whose chat users are
435
+ not that person. With `false`, each agent has to be opted in explicitly (`PATCH
436
+ /api/v1/agents/:id` with `{"connectors": {"<id>": {"enabled": true}}}`).
437
+
438
+ Changing this affects the next session spawn, like any other connector change.
439
+
296
440
  ### `gateway.logs` (optional)
297
441
 
298
442
  Verbosity, rotation and retention for the files in `logDir`. The whole block is optional —
@@ -347,7 +491,7 @@ Global default retention policy. Can be overridden per-agent with an `history` k
347
491
  | `retentionDays` | `null` (keep forever) | Delete messages older than N days on each cleanup cycle |
348
492
  | `maxHistoryMessages` | `50` | Max history messages re-injected into a session at spawn. Lower it to shrink the context loaded at session start. `0` = inject no history |
349
493
  | `cleanupHour` | `3` | Hour of day to run cleanup (24h, in `cleanupTimezone`) |
350
- | `cleanupTimezone` | `"UTC"` | IANA timezone for the cleanup schedule |
494
+ | `cleanupTimezone` | `"UTC"` | IANA timezone for the cleanup schedule; falls back to `gateway.timezone` when unset or invalid |
351
495
 
352
496
  Per-agent override example:
353
497
  ```json
@@ -436,7 +580,7 @@ Controls [skill self-improvement](#skill-self-improvement) — agents learning r
436
580
  | `maxAgeDays` | `30` | Curator prunes auto-skills older than this (with too few uses) |
437
581
  | `minUsesToKeep` | `2` | Auto-skills used fewer times than this are prune candidates |
438
582
  | `maxReviewsPerDay` | `20` | Per-day cap on background review runs |
439
- | `pruneHour` / `pruneTimezone` | `3` / `UTC` | When the daily curator runs |
583
+ | `pruneHour` / `pruneTimezone` | `3` / `UTC` | When the daily curator runs; `pruneTimezone` falls back to `gateway.timezone` when unset or invalid |
440
584
  | `notify` | `true` | Push a per-write ping to every configured channel (see [notifications](#skill-self-improvement)); the `SKILLS_LEARNED.md` diary is written regardless |
441
585
 
442
586
  ```json
@@ -491,7 +635,7 @@ Nightly memory **dreaming** — background consolidation of an agent's long-term
491
635
  |-------|---------|-------------|
492
636
  | `enabled` | `true` | Master switch (`false` ⇒ no scheduler, no run) |
493
637
  | `mode` | `"auto"` | `auto` = apply ops via the safe applier (backup, bounded-loss, net-negative); `propose` = diary-only dry-run |
494
- | `dreamHour` / `dreamTimezone` | `3` / `UTC` | When the nightly dream runs (invalid tz → UTC) |
638
+ | `dreamHour` / `dreamTimezone` | `3` / `UTC` | When the nightly dream runs (invalid tz → `gateway.timezone`, then UTC); `dreamTimezone` falls back to `gateway.timezone` when unset or invalid |
495
639
  | `dreamMinute` | `0` | Minute-of-hour the dream fires at, paired with `dreamHour` (0–59). Set with `staggerWindowMinutes: 0` to fire at an exact `HH:MM` (e.g. for a controlled re-test) |
496
640
  | `quietMinutes` | `30` | Skip a run if a session was active within this window |
497
641
  | `lookbackDays` | `3` | How far back to scan sessions |
@@ -531,7 +675,7 @@ Two read-only MCP tools expose it to the agent: **`memory_search`** (keyword/FTS
531
675
  | `shared.graph` | `false` | Compile the memory-wiki graph + dashboards over the shared vault to `<vault>/reports/*.md` (opt-in). Independent of the dashboard **Knowledge base** tab, which computes its graph on-demand |
532
676
  | `shared.staleness` | *(object)* | Shared-note TTL lifecycle GC; uses the same fields/defaults as `dreaming.staleness` (whole notes only; no numeric `supersedes #N` syntax) |
533
677
  | `reflection.enabled` | `true` | Enable the singleton, per-shared-vault reflection scheduler (daily timer; see cadence note below) |
534
- | `reflection.dayOfWeek` / `hour` / `minute` / `timezone` | `0` / `4` / `0` / `UTC` | `hour`/`minute` is the **daily** staleness-GC slot; `dayOfWeek` selects the weekday that additionally runs LLM consolidation (Sunday 04:00 UTC by default; invalid timezone falls back to UTC) |
678
+ | `reflection.dayOfWeek` / `hour` / `minute` / `timezone` | `0` / `4` / `0` / `UTC` | `hour`/`minute` is the **daily** staleness-GC slot; `dayOfWeek` selects the weekday that additionally runs LLM consolidation (Sunday 04:00 UTC by default; invalid timezone falls back to `gateway.timezone`, then `UTC`) |
535
679
  | `reflection.maxClustersPerRun` / `reviewModel` | `5` / `claude-haiku-4-5-…` | Hard cap on changed linked-note clusters per consolidation run and the bounded synthesis model |
536
680
 
537
681
  **Shared KB.** A shared SQLite/FTS5 vault outside any single agent's workspace lets agents build a common knowledge base. Notes under `<root>/<project>/notes/*.md` are indexed and reachable via `memory_search` with `corpus:"shared"` (the shared vault) or `corpus:"all"` (this agent's memory + shared, merged by relevance). Concurrent writers are safe without a lock — atomic note writes (temp+rename) plus a cross-process `PRAGMA busy_timeout` on the index. Per-agent overrides under the agent's own `knowledge` block. The MCP layer runs under Bun, so the read tools query `kb.sqlite` via `bun:sqlite`. Two write paths feed the vault, sharing one freeform-name namespace (issue #386, no agent-id prefix, no ownership scoping): the nightly dreaming promoter (gated by `mode:"auto"`; it promotes only content that carries a real fact — content that is nothing but `MEMORY.md` index-pointer bullets is skipped, since those links resolve only inside the promoting agent's own workspace — and names each note after the proposal's `topic` slug when the reviewer supplied one, falling back to its `reason`, so a recurring fact updates the same note across nights instead of piling up near-duplicates; a fallback name that reads as an editing instruction rather than the name of a fact is passed over, and the note is named from the fact itself instead — the promotion is only abandoned when nothing nameable remains, and every skip is logged — including a write the note-size cap refuses and an unexpected write failure. A name that doesn't collide is checked against a near-duplicate search, but an unattended **merge** now also requires real token containment against the candidate — below that bar the fact gets its own note, since two notes are recoverable while two unrelated facts fused into one are not. `[[wikilink]]`s to related notes use a lower bar than merges, because a link is additive where a merge is destructive — and they are attached whether the fact merges or lands as a new note, so a note below the merge bar is never a disconnected graph node. Containment is scored against each candidate's full body rather than the matched chunk, though against a capped seed — the bar means "half of the fact's leading topic words are already here", not half of the whole fact. Retired `stale__*` notes are never merge targets; a recurrence of a retired name folds the retired body back in and removes the twin on both the create and the update path, because a retired note stays searchable and a twin beside a live note of the same name would answer every query twice forever. The twin is only dropped once the merged write lands (issue #398)) and the **`memory_shared_create`**/**`memory_shared_get`**/**`memory_shared_update`**/**`memory_shared_delete`** MCP tools, which let any agent create, read, update, or delete any note on demand regardless of `mode`. `memory_shared_create` warns instead of writing when it finds content-similar existing notes (pass `confirm:true` to proceed — related notes get `[[wikilink]]`ed into the new note rather than left disconnected); `memory_shared_update` warns instead of writing when the edit would drop 50%+ of the existing note's lines (same `confirm:true` escape hatch). Immediate reindex after every write or delete.
@@ -685,6 +829,8 @@ Tools are **prefixed by channel name** to avoid collisions. Each module controls
685
829
 
686
830
  **Adding a new channel** (e.g. Slack) means implementing `ChannelModule` interface in `mcp/tools/slack/module.ts` and registering it in `server.ts`.
687
831
 
832
+ **Connectors** are the other half of the MCP picture: where the modules above are tools the gateway itself implements, a connector is an **external** MCP server the gateway injects into a session's `mcp-config.json`. The gateway stores only the connector definition, the per-connector secret (`~/.claude-gateway/mcp-token.env`) and the per-agent enablement — Claude Code then talks to that server directly. See [`gateway.customConnectors`](#gatewaycustomconnectors-optional) and [API.md](./API.md#connectors-api).
833
+
688
834
  ### Process Modes
689
835
 
690
836
  | Mode | Process | Behaviour |
@@ -859,6 +1005,14 @@ Pass API key via `X-Api-Key: <key>` or `Authorization: Bearer <key>` header.
859
1005
  | `POST` | `/api/v1/apps/:name/start\|stop\|restart` | Start/stop/restart app containers (admin) |
860
1006
  | `POST` | `/api/v1/apps/:name/update` | Blue-green update with auto-rollback → `jobId` (admin) |
861
1007
  | `POST` | `/api/v1/apps/:name/reconfigure` | Change env vars / host ports on an installed app, with rollback → `jobId` (admin) |
1008
+ | `GET` | `/api/v1/connectors` | List connectors with connected state |
1009
+ | `GET` | `/api/v1/connectors/:id/status` | Connected state for one connector (for polling) |
1010
+ | `POST` | `/api/v1/connectors/:id/connect` | Store a pasted token (admin) |
1011
+ | `POST` | `/api/v1/connectors/:id/oauth/receive` | Accept a token pushed by an external control plane (admin) |
1012
+ | `DELETE` | `/api/v1/connectors/:id` | Disconnect a connector (admin) |
1013
+ | `POST` | `/api/v1/connectors/custom` | Add a user-pasted connector (admin) |
1014
+ | `POST` | `/api/v1/connectors/custom/:id/oauth/start` | Begin OAuth 2.1 + PKCE sign-in → `authorizeUrl` (admin) |
1015
+ | `GET` | `/oauth/mcp/callback` | OAuth redirect target (public — guarded by a single-use `state`) |
862
1016
  | `GET` | `/app/:name/:portName/*` | Reverse proxy to installed app (no auth) |
863
1017
 
864
1018
  **Wizard API** — create agents programmatically with the same flow as the interactive `claude-gateway agents create` terminal wizard. The wizard generates workspace files via Claude, writes them on confirm, and optionally pairs a Telegram/Discord bot. State is in-memory with a 30-minute TTL; nothing is written until `/confirm`. See [API.md](./API.md) for the full wizard flow.
@@ -1023,6 +1177,7 @@ claude-gateway/
1023
1177
  ```
1024
1178
  ~/.claude-gateway/
1025
1179
  ├── config.json ← gateway config
1180
+ ├── mcp-token.env ← connector secrets, mode 0600 (see `gateway.customConnectors`)
1026
1181
  ├── logs/
1027
1182
  │ ├── alfred.log
1028
1183
  │ ├── alfred.log.1 ← rotated generation (see `gateway.logs`)
@@ -21,5 +21,7 @@ export declare const DREAMING_DEFAULTS: ResolvedDreamingCfg;
21
21
  * default when absent/non-boolean; numerics are sanitized like the parent config.
22
22
  */
23
23
  export declare function resolveStalenessConfig(agentCfg?: StalenessConfig, globalCfg?: StalenessConfig): ResolvedStalenessCfg;
24
- export declare function resolveDreamingConfig(agentCfg?: DreamingConfig, globalCfg?: DreamingConfig): ResolvedDreamingCfg;
24
+ export declare function resolveDreamingConfig(agentCfg?: DreamingConfig, globalCfg?: DreamingConfig,
25
+ /** `gateway.timezone` — the shared default when neither override sets `dreamTimezone`. */
26
+ gatewayTimezone?: string): ResolvedDreamingCfg;
25
27
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/agent/dreaming/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1G,oDAAoD;AACpD,eAAO,MAAM,kBAAkB,EAAE,oBAQhC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,mBAe/B,CAAC;AASF;;;;;GAKG;AAEH;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,CAAC,EAAE,eAAe,EAC1B,SAAS,CAAC,EAAE,eAAe,GAC1B,oBAAoB,CAoBtB;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,CAAC,EAAE,cAAc,EACzB,SAAS,CAAC,EAAE,cAAc,GACzB,mBAAmB,CA+BrB"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/agent/dreaming/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1G,oDAAoD;AACpD,eAAO,MAAM,kBAAkB,EAAE,oBAQhC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,mBAe/B,CAAC;AASF;;;;;GAKG;AAEH;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,CAAC,EAAE,eAAe,EAC1B,SAAS,CAAC,EAAE,eAAe,GAC1B,oBAAoB,CAoBtB;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,CAAC,EAAE,cAAc,EACzB,SAAS,CAAC,EAAE,cAAc;AAC1B,0FAA0F;AAC1F,eAAe,CAAC,EAAE,MAAM,GACvB,mBAAmB,CAwCrB"}
@@ -73,9 +73,20 @@ function resolveStalenessConfig(agentCfg, globalCfg) {
73
73
  maxInvalidationsPerRun: (0, config_num_1.numOr)(pick(agentCfg?.maxInvalidationsPerRun, globalCfg?.maxInvalidationsPerRun, d.maxInvalidationsPerRun), d.maxInvalidationsPerRun, 0, Infinity),
74
74
  };
75
75
  }
76
- function resolveDreamingConfig(agentCfg, globalCfg) {
76
+ function resolveDreamingConfig(agentCfg, globalCfg,
77
+ /** `gateway.timezone` — the shared default when neither override sets `dreamTimezone`. */
78
+ gatewayTimezone) {
77
79
  const d = exports.DREAMING_DEFAULTS;
78
- const rawTz = pick(agentCfg?.dreamTimezone, globalCfg?.dreamTimezone, d.dreamTimezone);
80
+ // Each precedence level is validated in turn — an invalid-but-present agent/global
81
+ // override does not count as "set" and falls through to the next level, same as
82
+ // resolveSkillLearningConfig and AppInstaller's cleanupTimezone (issue #462 review).
83
+ const dreamTimezone = (0, config_1.isValidTimezone)(agentCfg?.dreamTimezone)
84
+ ? agentCfg.dreamTimezone
85
+ : (0, config_1.isValidTimezone)(globalCfg?.dreamTimezone)
86
+ ? globalCfg.dreamTimezone
87
+ : (0, config_1.isValidTimezone)(gatewayTimezone)
88
+ ? gatewayTimezone
89
+ : d.dreamTimezone;
79
90
  const mode = pick(agentCfg?.mode, globalCfg?.mode, d.mode);
80
91
  return {
81
92
  enabled: pick(agentCfg?.enabled, globalCfg?.enabled, d.enabled),
@@ -84,7 +95,7 @@ function resolveDreamingConfig(agentCfg, globalCfg) {
84
95
  dreamHour: (0, config_num_1.numOr)(pick(agentCfg?.dreamHour, globalCfg?.dreamHour, d.dreamHour), d.dreamHour, 0, 23),
85
96
  // dreamMinute pairs with dreamHour for minute-level scheduling — clamp 0..59.
86
97
  dreamMinute: (0, config_num_1.numOr)(pick(agentCfg?.dreamMinute, globalCfg?.dreamMinute, d.dreamMinute), d.dreamMinute, 0, 59),
87
- dreamTimezone: (0, config_1.isValidTimezone)(rawTz) ? rawTz : 'UTC',
98
+ dreamTimezone,
88
99
  quietMinutes: (0, config_num_1.numOr)(pick(agentCfg?.quietMinutes, globalCfg?.quietMinutes, d.quietMinutes), d.quietMinutes, 0, Infinity),
89
100
  lookbackDays: (0, config_num_1.numOr)(pick(agentCfg?.lookbackDays, globalCfg?.lookbackDays, d.lookbackDays), d.lookbackDays, 0, Infinity),
90
101
  maxChangesPerRun: (0, config_num_1.numOr)(pick(agentCfg?.maxChangesPerRun, globalCfg?.maxChangesPerRun, d.maxChangesPerRun), d.maxChangesPerRun, 0, Infinity),
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/agent/dreaming/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/agent/dreaming/config.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,8 @@ export interface DreamingManagerDeps {
15
15
  workspaceDir: string;
16
16
  globalCfg?: DreamingConfig;
17
17
  agentCfg?: DreamingConfig;
18
+ /** `gateway.timezone` — the shared default when neither `globalCfg`/`agentCfg` sets `dreamTimezone`. */
19
+ gatewayTimezone?: string;
18
20
  logger?: {
19
21
  info: (msg: string, data?: Record<string, unknown>) => void;
20
22
  warn?: (msg: string, data?: Record<string, unknown>) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent/dreaming/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAOjE,OAAO,KAAK,EACV,cAAc,EAEd,aAAa,EACb,cAAc,EACd,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,cAAc,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;QAC5D,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;KAC9D,CAAC;IACF,qFAAqF;IACrF,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,4FAA4F;IAC5F,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC;IAC5E;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;CACnD;AAgBD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,aAAa,EAAE,EAC1B,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GACpB,aAAa,EAAE,CAiBjB;AAUD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAS5E;AAED,qBAAa,eAAe;IAC1B,QAAQ,CAAC,GAAG,EAAE,mBAAmB,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsB;IAC3C,OAAO,CAAC,KAAK,CAA4C;gBAE7C,IAAI,EAAE,mBAAmB;IAKrC,OAAO,CAAC,GAAG;IAIX;;;OAGG;IACG,SAAS,CAAC,GAAG,GAAE,MAAmB,GAAG,OAAO,CAAC,cAAc,CAAC;IA+MlE,OAAO,CAAC,KAAK;IAuBb;;;;OAIG;IACH,aAAa,IAAI,IAAI;IAsBrB,IAAI,IAAI,IAAI;CAGb"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent/dreaming/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAOjE,OAAO,KAAK,EACV,cAAc,EAEd,aAAa,EACb,cAAc,EACd,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,cAAc,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,wGAAwG;IACxG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;QAC5D,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;KAC9D,CAAC;IACF,qFAAqF;IACrF,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,4FAA4F;IAC5F,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC;IAC5E;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;CACnD;AAgBD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,aAAa,EAAE,EAC1B,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GACpB,aAAa,EAAE,CAiBjB;AAUD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAS5E;AAED,qBAAa,eAAe;IAC1B,QAAQ,CAAC,GAAG,EAAE,mBAAmB,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsB;IAC3C,OAAO,CAAC,KAAK,CAA4C;gBAE7C,IAAI,EAAE,mBAAmB;IAKrC,OAAO,CAAC,GAAG;IAIX;;;OAGG;IACG,SAAS,CAAC,GAAG,GAAE,MAAmB,GAAG,OAAO,CAAC,cAAc,CAAC;IA+MlE,OAAO,CAAC,KAAK;IAuBb;;;;OAIG;IACH,aAAa,IAAI,IAAI;IAsBrB,IAAI,IAAI,IAAI;CAGb"}
@@ -129,7 +129,7 @@ function agentJitterMs(agentId, windowMinutes) {
129
129
  class DreamingManager {
130
130
  constructor(deps) {
131
131
  this.deps = deps;
132
- this.cfg = (0, config_2.resolveDreamingConfig)(deps.agentCfg, deps.globalCfg);
132
+ this.cfg = (0, config_2.resolveDreamingConfig)(deps.agentCfg, deps.globalCfg, deps.gatewayTimezone);
133
133
  }
134
134
  log(msg, data) {
135
135
  this.deps.logger?.info(msg, data);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agent/dreaming/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agent/dreaming/index.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,9 @@ export declare function resolveArchiveConfig(agentCfg?: KnowledgeArchiveConfig,
12
12
  export declare const SHARED_DEFAULTS: ResolvedKnowledgeSharedCfg;
13
13
  export declare function resolveSharedConfig(agentCfg?: KnowledgeSharedConfig, globalCfg?: KnowledgeSharedConfig): ResolvedKnowledgeSharedCfg;
14
14
  export declare const REFLECTION_DEFAULTS: ResolvedKnowledgeReflectionCfg;
15
- export declare function resolveReflectionConfig(agentCfg?: KnowledgeReflectionConfig, globalCfg?: KnowledgeReflectionConfig): ResolvedKnowledgeReflectionCfg;
15
+ export declare function resolveReflectionConfig(agentCfg?: KnowledgeReflectionConfig, globalCfg?: KnowledgeReflectionConfig,
16
+ /** `gateway.timezone` — the shared default when neither override sets `timezone`. */
17
+ gatewayTimezone?: string): ResolvedKnowledgeReflectionCfg;
16
18
  /** Directory for a project's shared vault: <root>/<project>. */
17
19
  export declare function sharedVaultDir(cfg: ResolvedKnowledgeSharedCfg): string;
18
20
  /** The shared vault's SQLite index path. */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/agent/knowledge/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,OAAO,KAAK,EACV,sBAAsB,EACtB,2BAA2B,EAC3B,qBAAqB,EACrB,0BAA0B,EAC1B,yBAAyB,EACzB,8BAA8B,EAC/B,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,gBAAgB,EAAE,2BAK9B,CAAC;AAWF,wBAAgB,oBAAoB,CAClC,QAAQ,CAAC,EAAE,sBAAsB,EACjC,SAAS,CAAC,EAAE,sBAAsB,GACjC,2BAA2B,CAuB7B;AAID,eAAO,MAAM,eAAe,EAAE,0BAO7B,CAAC;AAcF,wBAAgB,mBAAmB,CACjC,QAAQ,CAAC,EAAE,qBAAqB,EAChC,SAAS,CAAC,EAAE,qBAAqB,GAChC,0BAA0B,CAmB5B;AAID,eAAO,MAAM,mBAAmB,EAAE,8BAQjC,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,QAAQ,CAAC,EAAE,yBAAyB,EACpC,SAAS,CAAC,EAAE,yBAAyB,GACpC,8BAA8B,CAiBhC;AAED,gEAAgE;AAChE,wBAAgB,cAAc,CAAC,GAAG,EAAE,0BAA0B,GAAG,MAAM,CAEtE;AAED,4CAA4C;AAC5C,wBAAgB,YAAY,CAAC,GAAG,EAAE,0BAA0B,GAAG,MAAM,CAEpE;AAED,2FAA2F;AAC3F,wBAAgB,cAAc,CAAC,GAAG,EAAE,0BAA0B,GAAG,MAAM,CAEtE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/agent/knowledge/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,OAAO,KAAK,EACV,sBAAsB,EACtB,2BAA2B,EAC3B,qBAAqB,EACrB,0BAA0B,EAC1B,yBAAyB,EACzB,8BAA8B,EAC/B,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,gBAAgB,EAAE,2BAK9B,CAAC;AAWF,wBAAgB,oBAAoB,CAClC,QAAQ,CAAC,EAAE,sBAAsB,EACjC,SAAS,CAAC,EAAE,sBAAsB,GACjC,2BAA2B,CAuB7B;AAID,eAAO,MAAM,eAAe,EAAE,0BAO7B,CAAC;AAcF,wBAAgB,mBAAmB,CACjC,QAAQ,CAAC,EAAE,qBAAqB,EAChC,SAAS,CAAC,EAAE,qBAAqB,GAChC,0BAA0B,CAmB5B;AAID,eAAO,MAAM,mBAAmB,EAAE,8BAQjC,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,QAAQ,CAAC,EAAE,yBAAyB,EACpC,SAAS,CAAC,EAAE,yBAAyB;AACrC,qFAAqF;AACrF,eAAe,CAAC,EAAE,MAAM,GACvB,8BAA8B,CAyBhC;AAED,gEAAgE;AAChE,wBAAgB,cAAc,CAAC,GAAG,EAAE,0BAA0B,GAAG,MAAM,CAEtE;AAED,4CAA4C;AAC5C,wBAAgB,YAAY,CAAC,GAAG,EAAE,0BAA0B,GAAG,MAAM,CAEpE;AAED,2FAA2F;AAC3F,wBAAgB,cAAc,CAAC,GAAG,EAAE,0BAA0B,GAAG,MAAM,CAEtE"}
@@ -131,15 +131,25 @@ exports.REFLECTION_DEFAULTS = {
131
131
  maxClustersPerRun: 5,
132
132
  reviewModel: 'claude-haiku-4-5-20251001',
133
133
  };
134
- function resolveReflectionConfig(agentCfg, globalCfg) {
134
+ function resolveReflectionConfig(agentCfg, globalCfg,
135
+ /** `gateway.timezone` — the shared default when neither override sets `timezone`. */
136
+ gatewayTimezone) {
135
137
  const d = exports.REFLECTION_DEFAULTS;
136
- const rawTz = pick(agentCfg?.timezone, globalCfg?.timezone, d.timezone);
138
+ // Each precedence level is validated in turn — an invalid-but-present agent/global
139
+ // override does not count as "set" and falls through to the next level (issue #462 review).
140
+ const timezone = (0, config_2.isValidTimezone)(agentCfg?.timezone)
141
+ ? agentCfg.timezone
142
+ : (0, config_2.isValidTimezone)(globalCfg?.timezone)
143
+ ? globalCfg.timezone
144
+ : (0, config_2.isValidTimezone)(gatewayTimezone)
145
+ ? gatewayTimezone
146
+ : d.timezone;
137
147
  return {
138
148
  enabled: pick(agentCfg?.enabled, globalCfg?.enabled, d.enabled),
139
149
  dayOfWeek: (0, config_num_1.numOr)(pick(agentCfg?.dayOfWeek, globalCfg?.dayOfWeek, d.dayOfWeek), d.dayOfWeek, 0, 6),
140
150
  hour: (0, config_num_1.numOr)(pick(agentCfg?.hour, globalCfg?.hour, d.hour), d.hour, 0, 23),
141
151
  minute: (0, config_num_1.numOr)(pick(agentCfg?.minute, globalCfg?.minute, d.minute), d.minute, 0, 59),
142
- timezone: (0, config_2.isValidTimezone)(rawTz) ? rawTz : d.timezone,
152
+ timezone,
143
153
  maxClustersPerRun: (0, config_num_1.numOr)(pick(agentCfg?.maxClustersPerRun, globalCfg?.maxClustersPerRun, d.maxClustersPerRun), d.maxClustersPerRun, 0, 1000),
144
154
  reviewModel: pick(agentCfg?.reviewModel, globalCfg?.reviewModel, d.reviewModel),
145
155
  };
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/agent/knowledge/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/agent/knowledge/config.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { EventEmitter } from 'events';
2
- import { AgentConfig, GatewayConfig, Logger, ModelConfig, ApiAttachment, ImageParams } from '../types';
2
+ import { AgentConfig, CustomConnectorEntry, GatewayConfig, Logger, ModelConfig, ApiAttachment, ImageParams } from '../types';
3
+ import { SessionProcess } from '../session/process';
3
4
  import { type SkillRegistry } from '../skills';
4
5
  import { type ApiStreamCallbacks, type TurnSink } from './turn-stream';
5
6
  import { type CliChannel } from '../cli-viewer/pairing-store';
@@ -145,6 +146,11 @@ export declare class AgentRunner extends EventEmitter {
145
146
  private handleCommandRequest;
146
147
  /**
147
148
  * Persist the current model to config.json using atomic write (tmp + rename).
149
+ *
150
+ * Runs under the process-wide config write lock: the read and the rename below are
151
+ * synchronous and so cannot interleave with each other, but without the lock they
152
+ * can still land between an async writer's read and its own rename — dropping this
153
+ * model change, or being dropped by it. See config/config-write-lock.ts.
148
154
  */
149
155
  private persistModelToConfig;
150
156
  private static escapeXmlAttr;
@@ -364,11 +370,51 @@ export declare class AgentRunner extends EventEmitter {
364
370
  restartOrDefer(opts?: {
365
371
  skipBusy?: boolean;
366
372
  deferIdle?: boolean;
373
+ filter?: (proc: SessionProcess) => boolean;
367
374
  }): Promise<{
368
375
  immediate: number;
369
376
  deferred: number;
370
377
  skipped: number;
371
378
  }>;
379
+ /**
380
+ * Called after a connector's secret or definition changes: a connector was
381
+ * connected, an external control plane pushed a fresh access_token for one it
382
+ * owns (POST /oauth/receive), the background refresh sweep in
383
+ * oauth-refresh-sweep.ts (invoked from gateway-router.ts's 60s interval)
384
+ * rotated one, or a connector was deleted / had its refresh given up on.
385
+ *
386
+ * Restarts exactly the sessions whose own mcp-config no longer matches what
387
+ * `connectorId` resolves to for this agent — see
388
+ * SessionProcess.connectorConfigChanged, which owns that comparison. The
389
+ * stdio MCP subprocess reads its env once at spawn (see writeMcpConfig), so
390
+ * there is no way to hot-patch a running child; a session that IS affected
391
+ * genuinely needs a respawn, and one that isn't must not be disrupted.
392
+ *
393
+ * `overlay` is merged over this runner's view of `gateway.customConnectors` —
394
+ * and adopted into it, so the sessions restarted below respawn from the new
395
+ * state rather than the one the watcher has not delivered yet (see the inline
396
+ * note). Callers that have just written a connector entry need it:
397
+ * config.json's watcher propagates asynchronously, so a route that creates a
398
+ * connector and immediately asks what it resolves to would otherwise be
399
+ * answered from a config snapshot taken before its own write. A `null` value
400
+ * expresses the other half of that write — the entry was REMOVED — which a
401
+ * merge alone cannot say. Deleting a connector whose owner is `'none'` has no
402
+ * secrets to clear, so without it the stale snapshot still resolves the entry
403
+ * to the identical fingerprint, nothing looks changed, and every live session
404
+ * keeps the deleted MCP server connected and callable while the API reports it
405
+ * gone.
406
+ *
407
+ * Deliberately takes no "the caller already decided" escape hatch. The delete
408
+ * and give-up paths needed one while this asked whether the connector still
409
+ * resolves — after `deleteSecrets` it never does, so the answer was always no
410
+ * and the restart silently did nothing. Per-session comparison answers those
411
+ * paths correctly on its own: resolving to nothing IS the change.
412
+ */
413
+ restartSessionsUsingConnector(connectorId: string, opts?: {
414
+ overlay?: Record<string, CustomConnectorEntry | null>;
415
+ }): Promise<{
416
+ restarted: boolean;
417
+ }>;
372
418
  /**
373
419
  * Format a timestamp as a human-readable age string (e.g. "5m ago", "2h ago").
374
420
  */
@@ -399,6 +445,25 @@ export declare class AgentRunner extends EventEmitter {
399
445
  private writeMenuForward;
400
446
  private startIdleCleaner;
401
447
  start(): Promise<void>;
448
+ /**
449
+ * Remove any `.sessions/<id>/` directory not backed by a currently-live
450
+ * `SessionProcess` — leftovers from a hard kill (SIGKILL, crash, host
451
+ * reboot) that `SessionProcess.stop()`'s own cleanup never got to run for.
452
+ * Each holds a `mcp-config.json` with fully-substituted secrets (channel
453
+ * bot tokens, GATEWAY_API_KEY) that must not accumulate unbounded (#460).
454
+ *
455
+ * Called once per runner instance at the top of `start()`, before any of
456
+ * this agent's own sessions exist yet, so `this.sessions` is normally
457
+ * empty here — but the liveness check is real, not just a formality: skip
458
+ * anything present in `this.sessions` regardless, rather than assuming
459
+ * "start() always runs on an empty pool" and deleting unconditionally.
460
+ *
461
+ * Async (fsPromises) rather than sync fs calls: a first upgrade to this fix
462
+ * can face a real backlog of leftovers accumulated before it existed, and
463
+ * synchronous readdir/rm would block the event loop — and every other
464
+ * agent's start() sharing this process — for the duration.
465
+ */
466
+ private sweepStaleSessionDirs;
402
467
  updateAgentConfig(newConfig: AgentConfig): void;
403
468
  startSlackOutbound(): void;
404
469
  stopSlackOutbound(): void;