visionclaw 0.1.215 → 0.1.216-beta.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 +22 -10
- package/dist/agent/context.d.ts.map +1 -1
- package/dist/agent/context.js +5 -8
- package/dist/agent/context.js.map +1 -1
- package/dist/agent/external-context/providers/fund-league.d.ts +5 -3
- package/dist/agent/external-context/providers/fund-league.d.ts.map +1 -1
- package/dist/agent/external-context/providers/fund-league.js +20 -5
- package/dist/agent/external-context/providers/fund-league.js.map +1 -1
- package/dist/agent/fund-league/player-contract.d.ts +33 -0
- package/dist/agent/fund-league/player-contract.d.ts.map +1 -0
- package/dist/agent/fund-league/player-contract.js +83 -0
- package/dist/agent/fund-league/player-contract.js.map +1 -0
- package/dist/agent/heartbeat-manager.d.ts +4 -13
- package/dist/agent/heartbeat-manager.d.ts.map +1 -1
- package/dist/agent/heartbeat-manager.js +3 -25
- package/dist/agent/heartbeat-manager.js.map +1 -1
- package/dist/agent/interrupt-handler.d.ts +4 -0
- package/dist/agent/interrupt-handler.d.ts.map +1 -1
- package/dist/agent/interrupt-handler.js +24 -0
- package/dist/agent/interrupt-handler.js.map +1 -1
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +98 -58
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/nightly-maintenance/index.d.ts +41 -0
- package/dist/agent/nightly-maintenance/index.d.ts.map +1 -0
- package/dist/agent/nightly-maintenance/index.js +114 -0
- package/dist/agent/nightly-maintenance/index.js.map +1 -0
- package/dist/agent/{memory-dreaming-sweep.d.ts → nightly-maintenance/memory-dreaming-sweep.d.ts} +8 -30
- package/dist/agent/nightly-maintenance/memory-dreaming-sweep.d.ts.map +1 -0
- package/dist/agent/{memory-dreaming-sweep.js → nightly-maintenance/memory-dreaming-sweep.js} +21 -37
- package/dist/agent/nightly-maintenance/memory-dreaming-sweep.js.map +1 -0
- package/dist/agent/{memory-dreaming.d.ts → nightly-maintenance/memory-dreaming.d.ts} +58 -6
- package/dist/agent/nightly-maintenance/memory-dreaming.d.ts.map +1 -0
- package/dist/agent/{memory-dreaming.js → nightly-maintenance/memory-dreaming.js} +73 -25
- package/dist/agent/nightly-maintenance/memory-dreaming.js.map +1 -0
- package/dist/agent/{skill-learning-gate.d.ts → nightly-maintenance/skill-learning-gate.d.ts} +10 -12
- package/dist/agent/nightly-maintenance/skill-learning-gate.d.ts.map +1 -0
- package/dist/agent/{skill-learning-gate.js → nightly-maintenance/skill-learning-gate.js} +12 -14
- package/dist/agent/nightly-maintenance/skill-learning-gate.js.map +1 -0
- package/dist/agent/nightly-maintenance/vocabulary-processor.d.ts +23 -0
- package/dist/agent/nightly-maintenance/vocabulary-processor.d.ts.map +1 -0
- package/dist/agent/nightly-maintenance/vocabulary-processor.js +183 -0
- package/dist/agent/nightly-maintenance/vocabulary-processor.js.map +1 -0
- package/dist/agent/notification-handler.d.ts.map +1 -1
- package/dist/agent/notification-handler.js +49 -0
- package/dist/agent/notification-handler.js.map +1 -1
- package/dist/agent/owner-initiated-eligibility.d.ts +1 -1
- package/dist/agent/owner-initiated-eligibility.js +1 -1
- package/dist/agent/product-identity.d.ts +6 -0
- package/dist/agent/product-identity.d.ts.map +1 -1
- package/dist/agent/product-identity.js +25 -0
- package/dist/agent/product-identity.js.map +1 -1
- package/dist/agent/session-manager.js +3 -3
- package/dist/agent/session-manager.js.map +1 -1
- package/dist/agent/transcript-summarizer.d.ts +16 -1
- package/dist/agent/transcript-summarizer.d.ts.map +1 -1
- package/dist/agent/transcript-summarizer.js +79 -17
- package/dist/agent/transcript-summarizer.js.map +1 -1
- package/dist/agent/vocabulary-glossary.d.ts +223 -0
- package/dist/agent/vocabulary-glossary.d.ts.map +1 -0
- package/dist/agent/vocabulary-glossary.js +390 -0
- package/dist/agent/vocabulary-glossary.js.map +1 -0
- package/dist/agent/vocabulary-injection.d.ts +59 -0
- package/dist/agent/vocabulary-injection.d.ts.map +1 -0
- package/dist/agent/vocabulary-injection.js +125 -0
- package/dist/agent/vocabulary-injection.js.map +1 -0
- package/dist/agent/wake-cycle-runner.d.ts.map +1 -1
- package/dist/agent/wake-cycle-runner.js +26 -25
- package/dist/agent/wake-cycle-runner.js.map +1 -1
- package/dist/agent/wake-schedule.d.ts +2 -0
- package/dist/agent/wake-schedule.d.ts.map +1 -1
- package/dist/agent/wake-schedule.js +3 -0
- package/dist/agent/wake-schedule.js.map +1 -1
- package/dist/builtin-skills/fund-manager/SKILL.md +12 -8
- package/dist/builtin-skills/fund-manager/core-contract.md +31 -17
- package/dist/channels/telegram.d.ts +10 -0
- package/dist/channels/telegram.d.ts.map +1 -1
- package/dist/channels/telegram.js +110 -0
- package/dist/channels/telegram.js.map +1 -1
- package/dist/config/types.d.ts +3 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +2 -0
- package/dist/config/types.js.map +1 -1
- package/dist/i18n/messages.d.ts +48 -0
- package/dist/i18n/messages.d.ts.map +1 -1
- package/dist/i18n/messages.js +50 -0
- package/dist/i18n/messages.js.map +1 -1
- package/dist/onboarding/send-invite.d.ts.map +1 -1
- package/dist/onboarding/send-invite.js +35 -18
- package/dist/onboarding/send-invite.js.map +1 -1
- package/dist/onboarding/welcome-starter-tasks.d.ts +16 -0
- package/dist/onboarding/welcome-starter-tasks.d.ts.map +1 -0
- package/dist/onboarding/welcome-starter-tasks.js +51 -0
- package/dist/onboarding/welcome-starter-tasks.js.map +1 -0
- package/dist/stt-client.d.ts +16 -1
- package/dist/stt-client.d.ts.map +1 -1
- package/dist/stt-client.js +79 -4
- package/dist/stt-client.js.map +1 -1
- package/dist/threads/relay-adapter.d.ts +1 -0
- package/dist/threads/relay-adapter.d.ts.map +1 -1
- package/dist/threads/relay-adapter.js +3 -0
- package/dist/threads/relay-adapter.js.map +1 -1
- package/dist/threads/supervisor.d.ts +8 -38
- package/dist/threads/supervisor.d.ts.map +1 -1
- package/dist/threads/supervisor.js +47 -78
- package/dist/threads/supervisor.js.map +1 -1
- package/dist/threads/thread-activity-controller.d.ts +2 -0
- package/dist/threads/thread-activity-controller.d.ts.map +1 -1
- package/dist/threads/thread-activity-controller.js +5 -0
- package/dist/threads/thread-activity-controller.js.map +1 -1
- package/dist/tools/fund-league.d.ts +2 -2
- package/dist/tools/fund-league.js +1 -1
- package/dist/tools/fund-league.js.map +1 -1
- package/dist/tools/transcribe-audio.d.ts +9 -1
- package/dist/tools/transcribe-audio.d.ts.map +1 -1
- package/dist/tools/transcribe-audio.js +34 -6
- package/dist/tools/transcribe-audio.js.map +1 -1
- package/dist/utils/restart.d.ts +7 -0
- package/dist/utils/restart.d.ts.map +1 -1
- package/dist/utils/restart.js +27 -0
- package/dist/utils/restart.js.map +1 -1
- package/dist-agent/bundle.cjs +2 -2
- package/package.json +1 -1
- package/dist/agent/deep-night-dreaming.d.ts +0 -68
- package/dist/agent/deep-night-dreaming.d.ts.map +0 -1
- package/dist/agent/deep-night-dreaming.js +0 -99
- package/dist/agent/deep-night-dreaming.js.map +0 -1
- package/dist/agent/memory-dreaming-sweep.d.ts.map +0 -1
- package/dist/agent/memory-dreaming-sweep.js.map +0 -1
- package/dist/agent/memory-dreaming.d.ts.map +0 -1
- package/dist/agent/memory-dreaming.js.map +0 -1
- package/dist/agent/skill-learning-gate.d.ts.map +0 -1
- package/dist/agent/skill-learning-gate.js.map +0 -1
- package/dist/builtin-skills/catalog/phone-adb-automation/SKILL.md +0 -412
- package/dist/builtin-skills/catalog/phone-adb-automation/phone_input.sh +0 -132
- package/dist/builtin-skills/catalog/phone-adb-automation/phone_launch.sh +0 -166
- package/dist/builtin-skills/catalog/phone-adb-automation/phone_screenshot.sh +0 -87
- package/dist/builtin-skills/catalog/phone-adb-automation/phone_security_kbd.py +0 -174
- package/dist/builtin-skills/catalog/phone-adb-automation/phone_setup.sh +0 -274
- package/dist/builtin-skills/catalog/phone-adb-automation/phone_swipe.sh +0 -111
- package/dist/builtin-skills/catalog/phone-adb-automation/phone_tap.sh +0 -87
- package/dist/builtin-skills/catalog/phone-adb-automation/phone_ui_parse.py +0 -176
- package/dist/builtin-skills/catalog/phone-adb-automation/phone_wake_unlock.sh +0 -67
- package/dist/builtin-skills/macos-automation/SKILL.md +0 -132
- package/dist/builtin-skills/transcribe-audio/SKILL.md +0 -122
- package/dist/builtin-skills/visionclaw-manual/SKILL.md +0 -337
- package/dist/obs/rdp/icons/icons/app_windows.svg +0 -4
- package/dist/obs/rdp/icons/icons/clip_get.svg +0 -4
- package/dist/obs/rdp/icons/icons/clip_send.svg +0 -4
- package/dist/obs/rdp/icons/icons/clip_shared.svg +0 -4
- package/dist/obs/rdp/icons/icons/clipboard.svg +0 -4
- package/dist/obs/rdp/icons/icons/clipboard_shared.svg +0 -4
- package/dist/obs/rdp/icons/icons/control.svg +0 -4
- package/dist/obs/rdp/icons/icons/desktop.svg +0 -4
- package/dist/obs/rdp/icons/icons/display.svg +0 -4
- package/dist/obs/rdp/icons/icons/launchpad.svg +0 -4
- package/dist/obs/rdp/icons/icons/mission_control.svg +0 -4
- package/dist/obs/rdp/icons/icons/screenshot.svg +0 -4
- package/dist/obs/rdp/icons/icons/zoom_actual.svg +0 -4
- package/dist/obs/rdp/icons/icons/zoom_fit.svg +0 -4
- package/dist/obs/rdp/icons/icons/zoom_in.svg +0 -4
- package/dist/obs/rdp/icons/icons/zoom_out.svg +0 -4
- package/dist/realtime/assets/index.html +0 -1058
- package/dist/realtime/assets/samples/alloy.mp3 +0 -0
- package/dist/realtime/assets/samples/ash.mp3 +0 -0
- package/dist/realtime/assets/samples/ballad.mp3 +0 -0
- package/dist/realtime/assets/samples/cedar.mp3 +0 -0
- package/dist/realtime/assets/samples/coral.mp3 +0 -0
- package/dist/realtime/assets/samples/echo.mp3 +0 -0
- package/dist/realtime/assets/samples/marin.mp3 +0 -0
- package/dist/realtime/assets/samples/sage.mp3 +0 -0
- package/dist/realtime/assets/samples/shimmer.mp3 +0 -0
- package/dist/realtime/assets/samples/verse.mp3 +0 -0
- package/dist-agent/assets/index.html +0 -1058
- package/dist-agent/assets/samples/alloy.mp3 +0 -0
- package/dist-agent/assets/samples/ash.mp3 +0 -0
- package/dist-agent/assets/samples/ballad.mp3 +0 -0
- package/dist-agent/assets/samples/cedar.mp3 +0 -0
- package/dist-agent/assets/samples/coral.mp3 +0 -0
- package/dist-agent/assets/samples/echo.mp3 +0 -0
- package/dist-agent/assets/samples/marin.mp3 +0 -0
- package/dist-agent/assets/samples/sage.mp3 +0 -0
- package/dist-agent/assets/samples/shimmer.mp3 +0 -0
- package/dist-agent/assets/samples/verse.mp3 +0 -0
- package/dist-agent/realtime/assets/index.html +0 -1058
- package/dist-agent/realtime/assets/samples/alloy.mp3 +0 -0
- package/dist-agent/realtime/assets/samples/ash.mp3 +0 -0
- package/dist-agent/realtime/assets/samples/ballad.mp3 +0 -0
- package/dist-agent/realtime/assets/samples/cedar.mp3 +0 -0
- package/dist-agent/realtime/assets/samples/coral.mp3 +0 -0
- package/dist-agent/realtime/assets/samples/echo.mp3 +0 -0
- package/dist-agent/realtime/assets/samples/marin.mp3 +0 -0
- package/dist-agent/realtime/assets/samples/sage.mp3 +0 -0
- package/dist-agent/realtime/assets/samples/shimmer.mp3 +0 -0
- package/dist-agent/realtime/assets/samples/verse.mp3 +0 -0
package/README.md
CHANGED
|
@@ -60,13 +60,26 @@ make start
|
|
|
60
60
|
# Optional: Internal Mail integration tests (not SES / public MX)
|
|
61
61
|
make -C services/basic-workspace it
|
|
62
62
|
# First `make start PROFILE=internal-mail` seeds that profile automatically.
|
|
63
|
-
# `make start PROFILE=prod-internal` claims a production Internal occupancy.
|
|
64
63
|
# Docker smoke uses 13470/18787 and skips when Docker is missing.
|
|
65
64
|
```
|
|
66
65
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
66
|
+
The two-terminal loop is unchanged. What changed is the default Workspace for a
|
|
67
|
+
**new** profile: Internal instead of Zoho. `make start` prints a prefilled
|
|
68
|
+
Admin bootstrap link
|
|
69
|
+
(`/admin/bootstrap?mode=jit&workspace=internal&agentName=<user>-local`), opens
|
|
70
|
+
it in the browser, and waits for a `VCI1-` code. Sign in if you have Admin
|
|
71
|
+
access, or send the same URL to an administrator and paste the code they
|
|
72
|
+
return. The local configuration directory defaults to
|
|
73
|
+
`~/.visionclaw/profiles/dev/`; that name is independent of the agent name
|
|
74
|
+
(`duwan-local`). If that agent name already exists, set
|
|
75
|
+
`VISIONCLAW_LOCAL_AGENT_PREFIX` and retry. Fleet enrollment with
|
|
76
|
+
`VISIONCLAW_ENROLLMENT_KEY` still auto-claims when no `SETUP_CODE` is supplied;
|
|
77
|
+
it is not the developer default.
|
|
78
|
+
|
|
79
|
+
Do not run `reset --owner` or `make reset-onboarding` against a production
|
|
80
|
+
occupancy; archive it in production Admin when you are done.
|
|
81
|
+
|
|
82
|
+
Override the local profile name with `make start PROFILE=<name>`;
|
|
70
83
|
configuration is stored under `~/.visionclaw/profiles/<name>/`. When more than
|
|
71
84
|
one configured local profile exists, `make start` asks which one to run.
|
|
72
85
|
|
|
@@ -76,12 +89,11 @@ After onboarding is complete, only the agent terminal is normally required:
|
|
|
76
89
|
make start
|
|
77
90
|
```
|
|
78
91
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
links use the authenticated `/setup#<token>` flow.
|
|
92
|
+
Telegram confirmation remains a human step: confirm the pre-filled managed bot
|
|
93
|
+
creation or existing-bot binding. Token delivery, local configuration, and
|
|
94
|
+
Agent restart are automatic. Existing historical setup URLs remain supported
|
|
95
|
+
during the compatibility window, although newly issued setup links use the
|
|
96
|
+
authenticated `/setup#<token>` flow.
|
|
85
97
|
|
|
86
98
|
The lower-level commands below remain useful as troubleshooting entry points;
|
|
87
99
|
they are not the recommended first-run sequence:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/agent/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/agent/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAahD;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAQxC;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IACE,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EACF;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,UAAU,EAAE,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GACrG;QAAE,IAAI,EAAE,KAAK,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAClC,CAAC;AAEN;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB;AAsED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAC9C,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,EAAE,WAAW,GAAG,SAAS,CAAC;IACjC,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,YAAY,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACzC,aAAa,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAC3C,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAqJ1B;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE;IACnD,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAoB1B;AAyBD;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE;IAClD,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;IAC3B,IAAI,EAAE,gBAAgB,CAAC;CACxB,GAAG,YAAY,EAAE,CA6BjB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE;IAClD,MAAM,EAAE,gBAAgB,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;CAC7B,GAAG,YAAY,EAAE,CAsBjB"}
|
package/dist/agent/context.js
CHANGED
|
@@ -5,6 +5,7 @@ import { buildMemoryInjection } from "./memory-injector.js";
|
|
|
5
5
|
import { getActiveThreadsSnapshot, renderActiveThreadsBlock } from "../threads/active-threads-store.js";
|
|
6
6
|
import { logger } from "../logger.js";
|
|
7
7
|
import { isOwnerInitiatedMessage } from "./owner-initiated-eligibility.js";
|
|
8
|
+
import { formatUpdateAvailableInstruction, formatUpdateAvailableLine, ownerAssistantPhrase, } from "./product-identity.js";
|
|
8
9
|
/**
|
|
9
10
|
* Format the current wall-clock time with full date, long time, and timezone.
|
|
10
11
|
* Used at the top of each wake/interrupt/post-compaction/calendar/auto-
|
|
@@ -137,28 +138,24 @@ export async function buildWakeContext(options) {
|
|
|
137
138
|
header.push("");
|
|
138
139
|
header.push("## Just Upgraded");
|
|
139
140
|
header.push(`You were just upgraded from v${justUpgraded.fromVersion} to v${justUpgraded.toVersion}. ` +
|
|
140
|
-
|
|
141
|
+
`Send a brief message to the owner through their messaging channel to let them know ${ownerAssistantPhrase(config)} is back online after a successful upgrade.`);
|
|
141
142
|
}
|
|
142
143
|
if (justRestarted) {
|
|
143
144
|
header.push("");
|
|
144
145
|
header.push("## Just Restarted");
|
|
145
|
-
header.push(
|
|
146
|
+
header.push(`The owner manually triggered a restart and ${ownerAssistantPhrase(config)} is back online. ` +
|
|
146
147
|
"Send a brief message to the owner through their messaging channel to let them know you are back online and ready.");
|
|
147
148
|
}
|
|
148
149
|
if (versionUpdate?.hasUpdate) {
|
|
149
150
|
header.push("");
|
|
150
151
|
header.push("## Update Available");
|
|
151
|
-
header.push(
|
|
152
|
+
header.push(formatUpdateAvailableLine(config, versionUpdate.currentVersion, versionUpdate.latestVersion));
|
|
152
153
|
if (versionUpdate.changelog) {
|
|
153
154
|
header.push("");
|
|
154
155
|
header.push(versionUpdate.changelog);
|
|
155
156
|
}
|
|
156
157
|
header.push("");
|
|
157
|
-
header.push(
|
|
158
|
-
"Present the changes in a friendly, non-technical way — focus on what's improved or fixed from the user's perspective, " +
|
|
159
|
-
"not internal implementation details (e.g., say \"better memory\" instead of \"added hybrid search fallback\"). " +
|
|
160
|
-
"Keep it brief and conversational. Ask if they would like to upgrade. " +
|
|
161
|
-
"You can use the `upgrade` tool to perform the upgrade.");
|
|
158
|
+
header.push(formatUpdateAvailableInstruction(config));
|
|
162
159
|
}
|
|
163
160
|
blocks.push({ type: "text", text: header.join("\n") });
|
|
164
161
|
// --- Layered memory injection (issue #453, Phase 3) ---
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/agent/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAyB,MAAM,oBAAoB,CAAC;AAM/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AACxG,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/agent/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,11 @@ import type { ExternalContextProvider, ExternalContextProviderInput, ExternalCon
|
|
|
2
2
|
/**
|
|
3
3
|
* Fund League player prompt surface.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* The authoritative contract is issued by the control plane at league
|
|
6
|
+
* activation and stored locally, so season rules are rendered from the same
|
|
7
|
+
* LeagueConfig the referee enforces and can change without shipping a new
|
|
8
|
+
* package. The packaged `fund-manager/v1` markdown is only a safety floor for
|
|
9
|
+
* a runtime that holds credentials but has not received its contract yet.
|
|
8
10
|
*/
|
|
9
11
|
export declare class FundLeagueExternalContextProvider implements ExternalContextProvider {
|
|
10
12
|
readonly source = "fund-league";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fund-league.d.ts","sourceRoot":"","sources":["../../../../src/agent/external-context/providers/fund-league.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fund-league.d.ts","sourceRoot":"","sources":["../../../../src/agent/external-context/providers/fund-league.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,uBAAuB,EACvB,4BAA4B,EAC5B,2BAA2B,EAC5B,MAAM,aAAa,CAAC;AAErB;;;;;;;;GAQG;AACH,qBAAa,iCAAkC,YAAW,uBAAuB;IAC/E,QAAQ,CAAC,MAAM,iBAAiB;IAEhC,YAAY,CAAC,aAAa,EAAE,2BAA2B,GAAG,MAAM,GAAG,IAAI;IAiBvE,KAAK,CAAC,MAAM,EAAE,4BAA4B,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;CAG9D"}
|
|
@@ -1,18 +1,33 @@
|
|
|
1
1
|
import { isFundLeaguePlayerRuntime, loadFundManagerCoreContract, } from "../../fund-league/core-contract.js";
|
|
2
|
+
import { readDeliveredPlayerContract } from "../../fund-league/player-contract.js";
|
|
2
3
|
/**
|
|
3
4
|
* Fund League player prompt surface.
|
|
4
5
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
6
|
+
* The authoritative contract is issued by the control plane at league
|
|
7
|
+
* activation and stored locally, so season rules are rendered from the same
|
|
8
|
+
* LeagueConfig the referee enforces and can change without shipping a new
|
|
9
|
+
* package. The packaged `fund-manager/v1` markdown is only a safety floor for
|
|
10
|
+
* a runtime that holds credentials but has not received its contract yet.
|
|
8
11
|
*/
|
|
9
12
|
export class FundLeagueExternalContextProvider {
|
|
10
13
|
source = "fund-league";
|
|
11
14
|
systemPrompt(_conversation) {
|
|
12
15
|
if (!isFundLeaguePlayerRuntime())
|
|
13
16
|
return null;
|
|
14
|
-
|
|
15
|
-
|
|
17
|
+
const delivered = readDeliveredPlayerContract();
|
|
18
|
+
if (delivered)
|
|
19
|
+
return delivered.markdown;
|
|
20
|
+
const packaged = loadFundManagerCoreContract();
|
|
21
|
+
if (packaged) {
|
|
22
|
+
return [
|
|
23
|
+
packaged,
|
|
24
|
+
"",
|
|
25
|
+
"> The control plane has not delivered this season's contract yet, so the",
|
|
26
|
+
"> numeric rules above are package defaults. Read `fund_get_state` for the",
|
|
27
|
+
"> authoritative season terms before trading.",
|
|
28
|
+
].join("\n");
|
|
29
|
+
}
|
|
30
|
+
return "## Fund Manager Core Contract\n\nThe Fund Manager core contract could not be loaded. Do not place league orders until the contract is available.";
|
|
16
31
|
}
|
|
17
32
|
build(_input) {
|
|
18
33
|
return Promise.resolve([]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fund-league.js","sourceRoot":"","sources":["../../../../src/agent/external-context/providers/fund-league.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"fund-league.js","sourceRoot":"","sources":["../../../../src/agent/external-context/providers/fund-league.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AAOnF;;;;;;;;GAQG;AACH,MAAM,OAAO,iCAAiC;IACnC,MAAM,GAAG,aAAa,CAAC;IAEhC,YAAY,CAAC,aAA0C;QACrD,IAAI,CAAC,yBAAyB,EAAE;YAAE,OAAO,IAAI,CAAC;QAC9C,MAAM,SAAS,GAAG,2BAA2B,EAAE,CAAC;QAChD,IAAI,SAAS;YAAE,OAAO,SAAS,CAAC,QAAQ,CAAC;QACzC,MAAM,QAAQ,GAAG,2BAA2B,EAAE,CAAC;QAC/C,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO;gBACL,QAAQ;gBACR,EAAE;gBACF,0EAA0E;gBAC1E,2EAA2E;gBAC3E,8CAA8C;aAC/C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,CAAC;QACD,OAAO,kJAAkJ,CAAC;IAC5J,CAAC;IAED,KAAK,CAAC,MAAoC;QACxC,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;CACF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Player contract delivered by the Fund League control plane.
|
|
3
|
+
*
|
|
4
|
+
* The contract is issued per season rather than shipped inside this package so
|
|
5
|
+
* that rule numbers are rendered from the same LeagueConfig the referee
|
|
6
|
+
* enforces, and so changing season rules does not require publishing a package
|
|
7
|
+
* and upgrading every player host first.
|
|
8
|
+
*/
|
|
9
|
+
export interface DeliveredPlayerContract {
|
|
10
|
+
schemaVersion: 1;
|
|
11
|
+
templateRef: string;
|
|
12
|
+
leagueId: string;
|
|
13
|
+
playerId: string;
|
|
14
|
+
ruleVersion: string;
|
|
15
|
+
contractHash: string;
|
|
16
|
+
markdown: string;
|
|
17
|
+
receivedAt: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Read the delivered contract for the league this process is bound to.
|
|
21
|
+
*
|
|
22
|
+
* A contract issued for a different league or player is ignored rather than
|
|
23
|
+
* used as a fallback: a stale season's rules must never govern a new one.
|
|
24
|
+
*/
|
|
25
|
+
export declare function readDeliveredPlayerContract(env?: NodeJS.ProcessEnv): DeliveredPlayerContract | null;
|
|
26
|
+
/**
|
|
27
|
+
* Persist a contract delivered by the control plane.
|
|
28
|
+
*
|
|
29
|
+
* Idempotent on `contractHash`: re-delivery of the same contract keeps the
|
|
30
|
+
* original `receivedAt` so retries do not look like a rule change.
|
|
31
|
+
*/
|
|
32
|
+
export declare function writeDeliveredPlayerContract(value: unknown, now?: () => Date): DeliveredPlayerContract | null;
|
|
33
|
+
//# sourceMappingURL=player-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"player-contract.d.ts","sourceRoot":"","sources":["../../../src/agent/fund-league/player-contract.ts"],"names":[],"mappings":"AAOA;;;;;;;GAOG;AACH,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,CAAC,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AA0BD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,uBAAuB,GAAG,IAAI,CAmBhC;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,OAAO,EACd,GAAG,GAAE,MAAM,IAAuB,GACjC,uBAAuB,GAAG,IAAI,CAgBhC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { getConfigDir } from "../../config/index.js";
|
|
4
|
+
import { logger } from "../../logger.js";
|
|
5
|
+
const CONTRACT_FILE = "fund-league-contract.json";
|
|
6
|
+
function contractPath() {
|
|
7
|
+
return path.join(getConfigDir(), CONTRACT_FILE);
|
|
8
|
+
}
|
|
9
|
+
function parseContract(value) {
|
|
10
|
+
if (!value || typeof value !== "object")
|
|
11
|
+
return null;
|
|
12
|
+
const record = value;
|
|
13
|
+
if (record.schemaVersion !== 1)
|
|
14
|
+
return null;
|
|
15
|
+
const fields = ["templateRef", "leagueId", "playerId", "ruleVersion", "contractHash", "markdown"];
|
|
16
|
+
for (const field of fields) {
|
|
17
|
+
const candidate = record[field];
|
|
18
|
+
if (typeof candidate !== "string" || candidate.trim().length === 0)
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
schemaVersion: 1,
|
|
23
|
+
templateRef: String(record.templateRef),
|
|
24
|
+
leagueId: String(record.leagueId),
|
|
25
|
+
playerId: String(record.playerId),
|
|
26
|
+
ruleVersion: String(record.ruleVersion),
|
|
27
|
+
contractHash: String(record.contractHash),
|
|
28
|
+
markdown: String(record.markdown),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Read the delivered contract for the league this process is bound to.
|
|
33
|
+
*
|
|
34
|
+
* A contract issued for a different league or player is ignored rather than
|
|
35
|
+
* used as a fallback: a stale season's rules must never govern a new one.
|
|
36
|
+
*/
|
|
37
|
+
export function readDeliveredPlayerContract(env = process.env) {
|
|
38
|
+
let parsed;
|
|
39
|
+
try {
|
|
40
|
+
const raw = JSON.parse(fs.readFileSync(contractPath(), "utf8"));
|
|
41
|
+
const contract = parseContract(raw);
|
|
42
|
+
if (!contract)
|
|
43
|
+
return null;
|
|
44
|
+
const receivedAt = raw.receivedAt;
|
|
45
|
+
parsed = {
|
|
46
|
+
...contract,
|
|
47
|
+
receivedAt: typeof receivedAt === "string" ? receivedAt : new Date(0).toISOString(),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
const leagueId = env.FUND_LEAGUE_ID?.trim();
|
|
54
|
+
const playerId = env.FUND_LEAGUE_PLAYER_ID?.trim();
|
|
55
|
+
if (leagueId && parsed.leagueId !== leagueId)
|
|
56
|
+
return null;
|
|
57
|
+
if (playerId && parsed.playerId !== playerId)
|
|
58
|
+
return null;
|
|
59
|
+
return parsed;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Persist a contract delivered by the control plane.
|
|
63
|
+
*
|
|
64
|
+
* Idempotent on `contractHash`: re-delivery of the same contract keeps the
|
|
65
|
+
* original `receivedAt` so retries do not look like a rule change.
|
|
66
|
+
*/
|
|
67
|
+
export function writeDeliveredPlayerContract(value, now = () => new Date()) {
|
|
68
|
+
const contract = parseContract(value);
|
|
69
|
+
if (!contract)
|
|
70
|
+
return null;
|
|
71
|
+
const existing = readDeliveredPlayerContract();
|
|
72
|
+
const record = existing?.contractHash === contract.contractHash
|
|
73
|
+
? existing
|
|
74
|
+
: { ...contract, receivedAt: now().toISOString() };
|
|
75
|
+
const target = contractPath();
|
|
76
|
+
fs.mkdirSync(path.dirname(target), { recursive: true });
|
|
77
|
+
const temporary = `${target}.${process.pid}.tmp`;
|
|
78
|
+
fs.writeFileSync(temporary, `${JSON.stringify(record, null, 2)}\n`, { mode: 0o600 });
|
|
79
|
+
fs.renameSync(temporary, target);
|
|
80
|
+
logger.system(`[fund-league] Player contract applied: league=${record.leagueId} player=${record.playerId} rules=${record.ruleVersion.slice(0, 16)}`);
|
|
81
|
+
return record;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=player-contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"player-contract.js","sourceRoot":"","sources":["../../../src/agent/fund-league/player-contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,14 +50,15 @@ export interface HeartbeatManagerOptions {
|
|
|
50
50
|
obsPort?: number;
|
|
51
51
|
/** Re-arm the main loop's sleep timer after a live wake-policy change. */
|
|
52
52
|
onProactiveWakeChanged?: (enabled: boolean) => void;
|
|
53
|
+
/** Request a maintenance wake; the main loop owns execution. */
|
|
54
|
+
onMaintenanceTick?: () => void;
|
|
53
55
|
/** The billing application's decision changed state (P5a); the main loop wakes so its gate engages now. */
|
|
54
56
|
onServiceStateChanged?: (status: AgentServiceStatus) => void;
|
|
55
57
|
/**
|
|
56
58
|
* Reads the current ThreadSupervisor, or null when this process runs without
|
|
57
59
|
* one (`multiThread.enabled === false`, or worker mode — though workers never
|
|
58
60
|
* heartbeat). Read lazily because HeartbeatManager is constructed before the
|
|
59
|
-
* supervisor exists. Used
|
|
60
|
-
* and to report agent-wide busy (any worker thread in-flight).
|
|
61
|
+
* supervisor exists. Used to report agent-wide busy (any worker thread in-flight).
|
|
61
62
|
*/
|
|
62
63
|
getThreadSupervisor?: () => ThreadSupervisor | null;
|
|
63
64
|
}
|
|
@@ -69,6 +70,7 @@ export declare class HeartbeatManager {
|
|
|
69
70
|
private readonly config;
|
|
70
71
|
private readonly onProactiveWakeChanged?;
|
|
71
72
|
private readonly onServiceStateChanged;
|
|
73
|
+
private readonly onMaintenanceTick?;
|
|
72
74
|
private readonly obsClose?;
|
|
73
75
|
private readonly getThreadSupervisor?;
|
|
74
76
|
private channelManager;
|
|
@@ -215,17 +217,6 @@ export declare class HeartbeatManager {
|
|
|
215
217
|
private anyWorkerThreadBusy;
|
|
216
218
|
private scheduleNextTick;
|
|
217
219
|
private runRuntimeTick;
|
|
218
|
-
/**
|
|
219
|
-
* Deep-night dreaming check, evaluated on every runtime tick — 5 minutes
|
|
220
|
-
* apart while idle, which is the resolution the four-hour window is scheduled
|
|
221
|
-
* at. The decision is entirely local: own clock, own `.dream_log` latch, own
|
|
222
|
-
* transcripts. Dreaming is a default capability with no server-side gate.
|
|
223
|
-
*
|
|
224
|
-
* Skipped while busy: dreaming reads the transcripts a live turn is still
|
|
225
|
-
* writing, and the deep-night window is four hours wide, so a busy tick just
|
|
226
|
-
* defers to the next one.
|
|
227
|
-
*/
|
|
228
|
-
private runDeepNightDreamingCheck;
|
|
229
220
|
private runDiskCheck;
|
|
230
221
|
}
|
|
231
222
|
//# sourceMappingURL=heartbeat-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeat-manager.d.ts","sourceRoot":"","sources":["../../src/agent/heartbeat-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAmH,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAO5K,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAA4D,KAAK,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACpI,OAAO,EAGL,KAAK,oBAAoB,EAK1B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAML,KAAK,kBAAkB,EACxB,MAAM,oBAAoB,CAAC;AA8B5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAcjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,WAAW,uBAAuB;IACtC;;;;;;;;;;OAUG;IACH,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,sBAAsB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACpD,2GAA2G;IAC3G,qBAAqB,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC7D
|
|
1
|
+
{"version":3,"file":"heartbeat-manager.d.ts","sourceRoot":"","sources":["../../src/agent/heartbeat-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -141,6 +141,7 @@ export class HeartbeatManager {
|
|
|
141
141
|
config;
|
|
142
142
|
onProactiveWakeChanged;
|
|
143
143
|
onServiceStateChanged;
|
|
144
|
+
onMaintenanceTick;
|
|
144
145
|
obsClose;
|
|
145
146
|
getThreadSupervisor;
|
|
146
147
|
channelManager = null;
|
|
@@ -220,6 +221,7 @@ export class HeartbeatManager {
|
|
|
220
221
|
this._lastServiceStatus = config.serviceStatus;
|
|
221
222
|
this.onProactiveWakeChanged = options?.onProactiveWakeChanged;
|
|
222
223
|
this.onServiceStateChanged = options?.onServiceStateChanged;
|
|
224
|
+
this.onMaintenanceTick = options?.onMaintenanceTick;
|
|
223
225
|
this.obsClose = options?.obsClose;
|
|
224
226
|
this.getThreadSupervisor = options?.getThreadSupervisor;
|
|
225
227
|
const detectedMachineSerial = getMachineSerial();
|
|
@@ -1029,37 +1031,13 @@ export class HeartbeatManager {
|
|
|
1029
1031
|
// belt-and-suspenders catch in case future strict ticks slip in.
|
|
1030
1032
|
}
|
|
1031
1033
|
void this.runDiskCheck().catch(() => { });
|
|
1032
|
-
void this.runDeepNightDreamingCheck();
|
|
1033
1034
|
// If the loop was stopped (or about to be stopped) during the
|
|
1034
1035
|
// send, don't re-arm.
|
|
1035
1036
|
if (this.getBusy === null)
|
|
1036
1037
|
return;
|
|
1038
|
+
this.onMaintenanceTick?.();
|
|
1037
1039
|
this.scheduleNextTick();
|
|
1038
1040
|
}
|
|
1039
|
-
/**
|
|
1040
|
-
* Deep-night dreaming check, evaluated on every runtime tick — 5 minutes
|
|
1041
|
-
* apart while idle, which is the resolution the four-hour window is scheduled
|
|
1042
|
-
* at. The decision is entirely local: own clock, own `.dream_log` latch, own
|
|
1043
|
-
* transcripts. Dreaming is a default capability with no server-side gate.
|
|
1044
|
-
*
|
|
1045
|
-
* Skipped while busy: dreaming reads the transcripts a live turn is still
|
|
1046
|
-
* writing, and the deep-night window is four hours wide, so a busy tick just
|
|
1047
|
-
* defers to the next one.
|
|
1048
|
-
*/
|
|
1049
|
-
async runDeepNightDreamingCheck() {
|
|
1050
|
-
if (this.isGloballyBusy())
|
|
1051
|
-
return;
|
|
1052
|
-
// A stopped agent makes no model calls, even before the main loop reaches its gate.
|
|
1053
|
-
if (this._lastServiceStatus !== undefined && this._lastServiceStatus.state !== "active")
|
|
1054
|
-
return;
|
|
1055
|
-
try {
|
|
1056
|
-
const { maybeRunDeepNightDreaming } = await import("./deep-night-dreaming.js");
|
|
1057
|
-
await maybeRunDeepNightDreaming(this.config, this.getThreadSupervisor ?? (() => null));
|
|
1058
|
-
}
|
|
1059
|
-
catch (err) {
|
|
1060
|
-
logger.debug(`[memory-dreaming] Deep-night check failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
1061
|
-
}
|
|
1062
|
-
}
|
|
1063
1041
|
async runDiskCheck() {
|
|
1064
1042
|
const result = await checkDisk(this.config);
|
|
1065
1043
|
if (!result)
|