@0xmaxma/claude-gateway 1.8.5 → 1.8.7
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 +72 -5
- package/dist/agent/dreaming/config.d.ts +3 -1
- package/dist/agent/dreaming/config.d.ts.map +1 -1
- package/dist/agent/dreaming/config.js +14 -3
- package/dist/agent/dreaming/config.js.map +1 -1
- package/dist/agent/dreaming/index.d.ts +2 -0
- package/dist/agent/dreaming/index.d.ts.map +1 -1
- package/dist/agent/dreaming/index.js +1 -1
- package/dist/agent/dreaming/index.js.map +1 -1
- package/dist/agent/knowledge/config.d.ts +3 -1
- package/dist/agent/knowledge/config.d.ts.map +1 -1
- package/dist/agent/knowledge/config.js +13 -3
- package/dist/agent/knowledge/config.js.map +1 -1
- package/dist/agent/runner.d.ts +19 -0
- package/dist/agent/runner.d.ts.map +1 -1
- package/dist/agent/runner.js +56 -2
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/skill-learning/config.d.ts +3 -1
- package/dist/agent/skill-learning/config.d.ts.map +1 -1
- package/dist/agent/skill-learning/config.js +13 -3
- package/dist/agent/skill-learning/config.js.map +1 -1
- package/dist/agent/skill-learning/index.d.ts +2 -0
- package/dist/agent/skill-learning/index.d.ts.map +1 -1
- package/dist/agent/skill-learning/index.js +1 -1
- package/dist/agent/skill-learning/index.js.map +1 -1
- package/dist/api/packages.d.ts.map +1 -1
- package/dist/api/packages.js +17 -1
- package/dist/api/packages.js.map +1 -1
- package/dist/api/router.d.ts.map +1 -1
- package/dist/api/router.js +5 -1
- package/dist/api/router.js.map +1 -1
- package/dist/apps/agent-manager.d.ts.map +1 -1
- package/dist/apps/agent-manager.js +7 -2
- package/dist/apps/agent-manager.js.map +1 -1
- package/dist/apps/installer.d.ts +11 -1
- package/dist/apps/installer.d.ts.map +1 -1
- package/dist/apps/installer.js +30 -16
- package/dist/apps/installer.js.map +1 -1
- package/dist/cli/args.d.ts +6 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +9 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/commands/service.d.ts +34 -4
- package/dist/cli/commands/service.d.ts.map +1 -1
- package/dist/cli/commands/service.js +581 -71
- package/dist/cli/commands/service.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +5 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/config/bootstrap.d.ts.map +1 -1
- package/dist/config/bootstrap.js +4 -1
- package/dist/config/bootstrap.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +36 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/config/migrator.d.ts.map +1 -1
- package/dist/config/migrator.js +12 -1
- package/dist/config/migrator.js.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/session/process.d.ts.map +1 -1
- package/dist/session/process.js +19 -2
- package/dist/session/process.js.map +1 -1
- package/dist/shutdown-signals.d.ts +18 -0
- package/dist/shutdown-signals.d.ts.map +1 -1
- package/dist/shutdown-signals.js +33 -2
- package/dist/shutdown-signals.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -122,13 +122,69 @@ claude-gateway service uninstall # asks first — this stops a runnin
|
|
|
122
122
|
```
|
|
123
123
|
|
|
124
124
|
Install and uninstall both prompt before acting; pass `--yes` in scripts (without it, a
|
|
125
|
-
non-interactive run is refused rather than left hanging).
|
|
125
|
+
non-interactive run is refused rather than left hanging). Always stop the gateway through
|
|
126
|
+
`service uninstall` or `systemctl --user stop claude-gateway.service` — a bare `kill <pid>` bypasses
|
|
127
|
+
systemd's own stop tracking, so `Restart=always` brings it right back regardless of exit code.
|
|
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
|
+
|
|
135
|
+
`install` also refuses (rather than just warning) if a `claude-gateway.service` unit already
|
|
136
|
+
exists and is enabled or active at *system* scope (e.g. one written by provisioning outside this
|
|
137
|
+
CLI) — installing a second, independent unit alongside it would race for the port on the next
|
|
138
|
+
reboot. It prints the exact `sudo systemctl disable --now claude-gateway.service` to resolve it;
|
|
139
|
+
pass `--force` to install anyway.
|
|
126
140
|
|
|
127
141
|
The systemd path writes `~/.config/systemd/user/claude-gateway.service`. Run
|
|
128
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.
|
|
129
149
|
Prefer [PM2](https://pm2.keymetrics.io)? `claude-gateway service install --manager pm2` registers
|
|
130
150
|
and saves the process instead (run `pm2 startup` separately for boot-time start).
|
|
131
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
|
+
|
|
132
188
|
Once installed, drive it through the CLI — it detects whichever manager owns the process:
|
|
133
189
|
|
|
134
190
|
```bash
|
|
@@ -262,6 +318,17 @@ Config lives at `~/.claude-gateway/config.json` (or set `GATEWAY_CONFIG` env var
|
|
|
262
318
|
}
|
|
263
319
|
```
|
|
264
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
|
+
|
|
265
332
|
### `gateway.publicUrl` (optional)
|
|
266
333
|
|
|
267
334
|
The externally reachable gateway base URL. Set it manually to enable short-lived
|
|
@@ -339,7 +406,7 @@ Global default retention policy. Can be overridden per-agent with an `history` k
|
|
|
339
406
|
| `retentionDays` | `null` (keep forever) | Delete messages older than N days on each cleanup cycle |
|
|
340
407
|
| `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 |
|
|
341
408
|
| `cleanupHour` | `3` | Hour of day to run cleanup (24h, in `cleanupTimezone`) |
|
|
342
|
-
| `cleanupTimezone` | `"UTC"` | IANA timezone for the cleanup schedule |
|
|
409
|
+
| `cleanupTimezone` | `"UTC"` | IANA timezone for the cleanup schedule; falls back to `gateway.timezone` when unset or invalid |
|
|
343
410
|
|
|
344
411
|
Per-agent override example:
|
|
345
412
|
```json
|
|
@@ -428,7 +495,7 @@ Controls [skill self-improvement](#skill-self-improvement) — agents learning r
|
|
|
428
495
|
| `maxAgeDays` | `30` | Curator prunes auto-skills older than this (with too few uses) |
|
|
429
496
|
| `minUsesToKeep` | `2` | Auto-skills used fewer times than this are prune candidates |
|
|
430
497
|
| `maxReviewsPerDay` | `20` | Per-day cap on background review runs |
|
|
431
|
-
| `pruneHour` / `pruneTimezone` | `3` / `UTC` | When the daily curator runs |
|
|
498
|
+
| `pruneHour` / `pruneTimezone` | `3` / `UTC` | When the daily curator runs; `pruneTimezone` falls back to `gateway.timezone` when unset or invalid |
|
|
432
499
|
| `notify` | `true` | Push a per-write ping to every configured channel (see [notifications](#skill-self-improvement)); the `SKILLS_LEARNED.md` diary is written regardless |
|
|
433
500
|
|
|
434
501
|
```json
|
|
@@ -483,7 +550,7 @@ Nightly memory **dreaming** — background consolidation of an agent's long-term
|
|
|
483
550
|
|-------|---------|-------------|
|
|
484
551
|
| `enabled` | `true` | Master switch (`false` ⇒ no scheduler, no run) |
|
|
485
552
|
| `mode` | `"auto"` | `auto` = apply ops via the safe applier (backup, bounded-loss, net-negative); `propose` = diary-only dry-run |
|
|
486
|
-
| `dreamHour` / `dreamTimezone` | `3` / `UTC` | When the nightly dream runs (invalid tz → UTC) |
|
|
553
|
+
| `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 |
|
|
487
554
|
| `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) |
|
|
488
555
|
| `quietMinutes` | `30` | Skip a run if a session was active within this window |
|
|
489
556
|
| `lookbackDays` | `3` | How far back to scan sessions |
|
|
@@ -523,7 +590,7 @@ Two read-only MCP tools expose it to the agent: **`memory_search`** (keyword/FTS
|
|
|
523
590
|
| `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 |
|
|
524
591
|
| `shared.staleness` | *(object)* | Shared-note TTL lifecycle GC; uses the same fields/defaults as `dreaming.staleness` (whole notes only; no numeric `supersedes #N` syntax) |
|
|
525
592
|
| `reflection.enabled` | `true` | Enable the singleton, per-shared-vault reflection scheduler (daily timer; see cadence note below) |
|
|
526
|
-
| `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) |
|
|
593
|
+
| `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`) |
|
|
527
594
|
| `reflection.maxClustersPerRun` / `reviewModel` | `5` / `claude-haiku-4-5-…` | Hard cap on changed linked-note clusters per consolidation run and the bounded synthesis model |
|
|
528
595
|
|
|
529
596
|
**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.
|
|
@@ -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
|
|
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,
|
|
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
|
-
|
|
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
|
|
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":";AAAA;;;;;;;GAOG;;;AAoDH,wDAuBC;AAED,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/agent/dreaming/config.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAoDH,wDAuBC;AAED,sDA6CC;AAxHD,qDAA2D;AAC3D,uDAA+C;AAG/C,oDAAoD;AACvC,QAAA,kBAAkB,GAAyB;IACtD,OAAO,EAAE,IAAI;IACb,YAAY,EAAE,EAAE;IAChB,cAAc,EAAE,CAAC;IACjB,gBAAgB,EAAE,CAAC;IACnB,YAAY,EAAE,IAAI;IAClB,gBAAgB,EAAE,IAAI;IACtB,sBAAsB,EAAE,EAAE;CAC3B,CAAC;AAEW,QAAA,iBAAiB,GAAwB;IACpD,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,MAAM,EAAE,4FAA4F;IAC1G,SAAS,EAAE,CAAC;IACZ,WAAW,EAAE,CAAC;IACd,aAAa,EAAE,KAAK;IACpB,YAAY,EAAE,EAAE;IAChB,YAAY,EAAE,CAAC;IACf,gBAAgB,EAAE,CAAC;IACnB,WAAW,EAAE,2BAA2B;IACxC,kBAAkB,EAAE,GAAG;IACvB,cAAc,EAAE,CAAC;IACjB,YAAY,EAAE,IAAI;IAClB,oBAAoB,EAAE,EAAE;IACxB,SAAS,EAAE,0BAAkB;CAC9B,CAAC;AAEF,0EAA0E;AAC1E,SAAS,IAAI,CAAI,KAAoB,EAAE,MAAqB,EAAE,QAAW;IACvE,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AAEH;;;GAGG;AACH,SAAgB,sBAAsB,CACpC,QAA0B,EAC1B,SAA2B;IAE3B,MAAM,CAAC,GAAG,0BAAkB,CAAC;IAC7B,MAAM,IAAI,GAAG,CAAC,CAAW,EAAE,CAAW,EAAE,EAAE,GAAG,KAAK,EAAW,EAAE;QAC7D,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACzB,OAAO,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzC,CAAC,CAAC;IACF,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC;QAC/D,YAAY,EAAE,IAAA,kBAAK,EAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,EAAE,QAAQ,CAAC;QACvH,cAAc,EAAE,IAAA,kBAAK,EAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3H,gBAAgB,EAAE,IAAA,kBAAK,EAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAC,EAAE,QAAQ,CAAC;QAC3I,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,CAAC;QACnF,gBAAgB,EAAE,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,CAAC;QACnG,sBAAsB,EAAE,IAAA,kBAAK,EAC3B,IAAI,CAAC,QAAQ,EAAE,sBAAsB,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC,CAAC,sBAAsB,CAAC,EACnG,CAAC,CAAC,sBAAsB,EACxB,CAAC,EACD,QAAQ,CACT;KACF,CAAC;AACJ,CAAC;AAED,SAAgB,qBAAqB,CACnC,QAAyB,EACzB,SAA0B;AAC1B,0FAA0F;AAC1F,eAAwB;IAExB,MAAM,CAAC,GAAG,yBAAiB,CAAC;IAC5B,mFAAmF;IACnF,gFAAgF;IAChF,qFAAqF;IACrF,MAAM,aAAa,GAAG,IAAA,wBAAe,EAAC,QAAQ,EAAE,aAAa,CAAC;QAC5D,CAAC,CAAC,QAAQ,CAAC,aAAa;QACxB,CAAC,CAAC,IAAA,wBAAe,EAAC,SAAS,EAAE,aAAa,CAAC;YACzC,CAAC,CAAC,SAAS,CAAC,aAAa;YACzB,CAAC,CAAC,IAAA,wBAAe,EAAC,eAAe,CAAC;gBAChC,CAAC,CAAC,eAAe;gBACjB,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;IACxB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3D,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC;QAC/D,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,mCAAmC;QAC/E,qEAAqE;QACrE,SAAS,EAAE,IAAA,kBAAK,EAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QAClG,8EAA8E;QAC9E,WAAW,EAAE,IAAA,kBAAK,EAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5G,aAAa;QACb,YAAY,EAAE,IAAA,kBAAK,EAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,EAAE,QAAQ,CAAC;QACvH,YAAY,EAAE,IAAA,kBAAK,EAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,EAAE,QAAQ,CAAC;QACvH,gBAAgB,EAAE,IAAA,kBAAK,EAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAC,EAAE,QAAQ,CAAC;QAC3I,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC;QAC/E,kBAAkB,EAAE,IAAA,kBAAK,EAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,kBAAkB,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9I,cAAc,EAAE,IAAA,kBAAK,EAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,EAAE,QAAQ,CAAC;QACjI,qEAAqE;QACrE,YAAY,EACV,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC;YACrF,CAAC,CAAC,YAAY;QAChB,+EAA+E;QAC/E,oBAAoB,EAAE,IAAA,kBAAK,EACzB,IAAI,CAAC,QAAQ,EAAE,oBAAoB,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC,CAAC,oBAAoB,CAAC,EAC7F,CAAC,CAAC,oBAAoB,EACtB,CAAC,EACD,EAAE,CACH;QACD,SAAS,EAAE,sBAAsB,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;KAC7E,CAAC;AACJ,CAAC"}
|
|
@@ -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":";AAAA;;;;;;;GAOG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
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
|
|
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,
|
|
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
|
-
|
|
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
|
|
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":";AAAA;;;;;;;GAOG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCH,oDA0BC;AAyBD,kDAsBC;AAcD,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/agent/knowledge/config.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/runner.d.ts
CHANGED
|
@@ -399,6 +399,25 @@ export declare class AgentRunner extends EventEmitter {
|
|
|
399
399
|
private writeMenuForward;
|
|
400
400
|
private startIdleCleaner;
|
|
401
401
|
start(): Promise<void>;
|
|
402
|
+
/**
|
|
403
|
+
* Remove any `.sessions/<id>/` directory not backed by a currently-live
|
|
404
|
+
* `SessionProcess` — leftovers from a hard kill (SIGKILL, crash, host
|
|
405
|
+
* reboot) that `SessionProcess.stop()`'s own cleanup never got to run for.
|
|
406
|
+
* Each holds a `mcp-config.json` with fully-substituted secrets (channel
|
|
407
|
+
* bot tokens, GATEWAY_API_KEY) that must not accumulate unbounded (#460).
|
|
408
|
+
*
|
|
409
|
+
* Called once per runner instance at the top of `start()`, before any of
|
|
410
|
+
* this agent's own sessions exist yet, so `this.sessions` is normally
|
|
411
|
+
* empty here — but the liveness check is real, not just a formality: skip
|
|
412
|
+
* anything present in `this.sessions` regardless, rather than assuming
|
|
413
|
+
* "start() always runs on an empty pool" and deleting unconditionally.
|
|
414
|
+
*
|
|
415
|
+
* Async (fsPromises) rather than sync fs calls: a first upgrade to this fix
|
|
416
|
+
* can face a real backlog of leftovers accumulated before it existed, and
|
|
417
|
+
* synchronous readdir/rm would block the event loop — and every other
|
|
418
|
+
* agent's start() sharing this process — for the duration.
|
|
419
|
+
*/
|
|
420
|
+
private sweepStaleSessionDirs;
|
|
402
421
|
updateAgentConfig(newConfig: AgentConfig): void;
|
|
403
422
|
startSlackOutbound(): void;
|
|
404
423
|
stopSlackOutbound(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/agent/runner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAOtC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAW,WAAW,EAAe,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAU7H,OAAO,EAA0C,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/agent/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/runner.js
CHANGED
|
@@ -55,6 +55,7 @@ const skills_1 = require("../skills");
|
|
|
55
55
|
const builtin_commands_1 = require("./builtin-commands");
|
|
56
56
|
const model_catalog_1 = require("./model-catalog");
|
|
57
57
|
const safe_mode_1 = require("./safe-mode");
|
|
58
|
+
const config_1 = require("./skill-learning/config");
|
|
58
59
|
const turn_stream_1 = require("./turn-stream");
|
|
59
60
|
const recovery_executor_1 = require("./recovery-executor");
|
|
60
61
|
const recovery_policy_1 = require("./recovery-policy");
|
|
@@ -916,7 +917,13 @@ class AgentRunner extends events_1.EventEmitter {
|
|
|
916
917
|
if (agent) {
|
|
917
918
|
agent.claude.model = newModel;
|
|
918
919
|
const tmp = this.configPath + '.tmp';
|
|
919
|
-
|
|
920
|
+
// mode: 0o600 — rename() carries this file's mode onto config.json,
|
|
921
|
+
// silently downgrading an existing 0600 config to 0644 otherwise (#460).
|
|
922
|
+
// writeFileSync's mode option is IGNORED if a stale tmp file from a
|
|
923
|
+
// prior crashed write is already sitting at this fixed path, so chmod
|
|
924
|
+
// explicitly rather than relying on it.
|
|
925
|
+
fs.writeFileSync(tmp, JSON.stringify(config, null, 2) + '\n', { mode: 0o600 });
|
|
926
|
+
fs.chmodSync(tmp, 0o600);
|
|
920
927
|
fs.renameSync(tmp, this.configPath);
|
|
921
928
|
}
|
|
922
929
|
}
|
|
@@ -2703,6 +2710,7 @@ class AgentRunner extends events_1.EventEmitter {
|
|
|
2703
2710
|
}
|
|
2704
2711
|
async start() {
|
|
2705
2712
|
this.stopping = false;
|
|
2713
|
+
await this.sweepStaleSessionDirs();
|
|
2706
2714
|
await this.startCallbackServer();
|
|
2707
2715
|
if (this.agentConfig.telegram?.botToken) {
|
|
2708
2716
|
this.receiver = new receiver_1.TelegramReceiver(this.agentConfig, this.callbackPort, this.gatewayConfig.gateway.logDir);
|
|
@@ -2721,6 +2729,45 @@ class AgentRunner extends events_1.EventEmitter {
|
|
|
2721
2729
|
this._startCleanupScheduler();
|
|
2722
2730
|
this.logger.info('AgentRunner started', { agentId: this.agentConfig.id });
|
|
2723
2731
|
}
|
|
2732
|
+
/**
|
|
2733
|
+
* Remove any `.sessions/<id>/` directory not backed by a currently-live
|
|
2734
|
+
* `SessionProcess` — leftovers from a hard kill (SIGKILL, crash, host
|
|
2735
|
+
* reboot) that `SessionProcess.stop()`'s own cleanup never got to run for.
|
|
2736
|
+
* Each holds a `mcp-config.json` with fully-substituted secrets (channel
|
|
2737
|
+
* bot tokens, GATEWAY_API_KEY) that must not accumulate unbounded (#460).
|
|
2738
|
+
*
|
|
2739
|
+
* Called once per runner instance at the top of `start()`, before any of
|
|
2740
|
+
* this agent's own sessions exist yet, so `this.sessions` is normally
|
|
2741
|
+
* empty here — but the liveness check is real, not just a formality: skip
|
|
2742
|
+
* anything present in `this.sessions` regardless, rather than assuming
|
|
2743
|
+
* "start() always runs on an empty pool" and deleting unconditionally.
|
|
2744
|
+
*
|
|
2745
|
+
* Async (fsPromises) rather than sync fs calls: a first upgrade to this fix
|
|
2746
|
+
* can face a real backlog of leftovers accumulated before it existed, and
|
|
2747
|
+
* synchronous readdir/rm would block the event loop — and every other
|
|
2748
|
+
* agent's start() sharing this process — for the duration.
|
|
2749
|
+
*/
|
|
2750
|
+
async sweepStaleSessionDirs() {
|
|
2751
|
+
const sessionsRoot = path.join(this.agentConfig.workspace, '.sessions');
|
|
2752
|
+
let entries;
|
|
2753
|
+
try {
|
|
2754
|
+
entries = await fsPromises.readdir(sessionsRoot, { withFileTypes: true });
|
|
2755
|
+
}
|
|
2756
|
+
catch {
|
|
2757
|
+
return; // no .sessions directory yet — nothing to sweep
|
|
2758
|
+
}
|
|
2759
|
+
const liveSessionIds = new Set(Array.from(this.sessions.values(), (s) => s.sessionId));
|
|
2760
|
+
for (const entry of entries) {
|
|
2761
|
+
if (!entry.isDirectory() || liveSessionIds.has(entry.name))
|
|
2762
|
+
continue;
|
|
2763
|
+
try {
|
|
2764
|
+
await fsPromises.rm(path.join(sessionsRoot, entry.name), { recursive: true, force: true });
|
|
2765
|
+
}
|
|
2766
|
+
catch {
|
|
2767
|
+
/* best-effort cleanup — a stubborn leftover isn't worth failing boot over */
|
|
2768
|
+
}
|
|
2769
|
+
}
|
|
2770
|
+
}
|
|
2724
2771
|
updateAgentConfig(newConfig) {
|
|
2725
2772
|
this.agentConfig = newConfig;
|
|
2726
2773
|
// Restart LineReplyManager if the LINE config changed so the live instance
|
|
@@ -2862,7 +2909,14 @@ class AgentRunner extends events_1.EventEmitter {
|
|
|
2862
2909
|
const gw = this.gatewayConfig.gateway;
|
|
2863
2910
|
const retentionDays = (0, cleanup_1.resolveRetentionDays)(this.agentConfig.history?.retentionDays, gw.history?.retentionDays);
|
|
2864
2911
|
const cleanupHour = gw.history?.cleanupHour ?? 0;
|
|
2865
|
-
|
|
2912
|
+
// Each precedence level is validated in turn — an invalid-but-present
|
|
2913
|
+
// cleanupTimezone does not count as "set" and falls through to gw.timezone
|
|
2914
|
+
// rather than jumping straight to UTC (issue #462 review).
|
|
2915
|
+
const cleanupTimezone = (0, config_1.isValidTimezone)(gw.history?.cleanupTimezone)
|
|
2916
|
+
? gw.history.cleanupTimezone
|
|
2917
|
+
: (0, config_1.isValidTimezone)(gw.timezone)
|
|
2918
|
+
? gw.timezone
|
|
2919
|
+
: 'UTC';
|
|
2866
2920
|
const agentMediaRoot = media_store_1.MediaStore.agentMediaRoot(this.agentsBaseDir, this.agentConfig.id);
|
|
2867
2921
|
const logPath = path.join(this.agentDir, 'cleanup.log');
|
|
2868
2922
|
this.cancelCleanup = (0, cleanup_1.scheduleCleanup)({
|