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.
Files changed (195) hide show
  1. package/README.md +22 -10
  2. package/dist/agent/context.d.ts.map +1 -1
  3. package/dist/agent/context.js +5 -8
  4. package/dist/agent/context.js.map +1 -1
  5. package/dist/agent/external-context/providers/fund-league.d.ts +5 -3
  6. package/dist/agent/external-context/providers/fund-league.d.ts.map +1 -1
  7. package/dist/agent/external-context/providers/fund-league.js +20 -5
  8. package/dist/agent/external-context/providers/fund-league.js.map +1 -1
  9. package/dist/agent/fund-league/player-contract.d.ts +33 -0
  10. package/dist/agent/fund-league/player-contract.d.ts.map +1 -0
  11. package/dist/agent/fund-league/player-contract.js +83 -0
  12. package/dist/agent/fund-league/player-contract.js.map +1 -0
  13. package/dist/agent/heartbeat-manager.d.ts +4 -13
  14. package/dist/agent/heartbeat-manager.d.ts.map +1 -1
  15. package/dist/agent/heartbeat-manager.js +3 -25
  16. package/dist/agent/heartbeat-manager.js.map +1 -1
  17. package/dist/agent/interrupt-handler.d.ts +4 -0
  18. package/dist/agent/interrupt-handler.d.ts.map +1 -1
  19. package/dist/agent/interrupt-handler.js +24 -0
  20. package/dist/agent/interrupt-handler.js.map +1 -1
  21. package/dist/agent/loop.d.ts.map +1 -1
  22. package/dist/agent/loop.js +98 -58
  23. package/dist/agent/loop.js.map +1 -1
  24. package/dist/agent/nightly-maintenance/index.d.ts +41 -0
  25. package/dist/agent/nightly-maintenance/index.d.ts.map +1 -0
  26. package/dist/agent/nightly-maintenance/index.js +114 -0
  27. package/dist/agent/nightly-maintenance/index.js.map +1 -0
  28. package/dist/agent/{memory-dreaming-sweep.d.ts → nightly-maintenance/memory-dreaming-sweep.d.ts} +8 -30
  29. package/dist/agent/nightly-maintenance/memory-dreaming-sweep.d.ts.map +1 -0
  30. package/dist/agent/{memory-dreaming-sweep.js → nightly-maintenance/memory-dreaming-sweep.js} +21 -37
  31. package/dist/agent/nightly-maintenance/memory-dreaming-sweep.js.map +1 -0
  32. package/dist/agent/{memory-dreaming.d.ts → nightly-maintenance/memory-dreaming.d.ts} +58 -6
  33. package/dist/agent/nightly-maintenance/memory-dreaming.d.ts.map +1 -0
  34. package/dist/agent/{memory-dreaming.js → nightly-maintenance/memory-dreaming.js} +73 -25
  35. package/dist/agent/nightly-maintenance/memory-dreaming.js.map +1 -0
  36. package/dist/agent/{skill-learning-gate.d.ts → nightly-maintenance/skill-learning-gate.d.ts} +10 -12
  37. package/dist/agent/nightly-maintenance/skill-learning-gate.d.ts.map +1 -0
  38. package/dist/agent/{skill-learning-gate.js → nightly-maintenance/skill-learning-gate.js} +12 -14
  39. package/dist/agent/nightly-maintenance/skill-learning-gate.js.map +1 -0
  40. package/dist/agent/nightly-maintenance/vocabulary-processor.d.ts +23 -0
  41. package/dist/agent/nightly-maintenance/vocabulary-processor.d.ts.map +1 -0
  42. package/dist/agent/nightly-maintenance/vocabulary-processor.js +183 -0
  43. package/dist/agent/nightly-maintenance/vocabulary-processor.js.map +1 -0
  44. package/dist/agent/notification-handler.d.ts.map +1 -1
  45. package/dist/agent/notification-handler.js +49 -0
  46. package/dist/agent/notification-handler.js.map +1 -1
  47. package/dist/agent/owner-initiated-eligibility.d.ts +1 -1
  48. package/dist/agent/owner-initiated-eligibility.js +1 -1
  49. package/dist/agent/product-identity.d.ts +6 -0
  50. package/dist/agent/product-identity.d.ts.map +1 -1
  51. package/dist/agent/product-identity.js +25 -0
  52. package/dist/agent/product-identity.js.map +1 -1
  53. package/dist/agent/session-manager.js +3 -3
  54. package/dist/agent/session-manager.js.map +1 -1
  55. package/dist/agent/transcript-summarizer.d.ts +16 -1
  56. package/dist/agent/transcript-summarizer.d.ts.map +1 -1
  57. package/dist/agent/transcript-summarizer.js +79 -17
  58. package/dist/agent/transcript-summarizer.js.map +1 -1
  59. package/dist/agent/vocabulary-glossary.d.ts +223 -0
  60. package/dist/agent/vocabulary-glossary.d.ts.map +1 -0
  61. package/dist/agent/vocabulary-glossary.js +390 -0
  62. package/dist/agent/vocabulary-glossary.js.map +1 -0
  63. package/dist/agent/vocabulary-injection.d.ts +59 -0
  64. package/dist/agent/vocabulary-injection.d.ts.map +1 -0
  65. package/dist/agent/vocabulary-injection.js +125 -0
  66. package/dist/agent/vocabulary-injection.js.map +1 -0
  67. package/dist/agent/wake-cycle-runner.d.ts.map +1 -1
  68. package/dist/agent/wake-cycle-runner.js +26 -25
  69. package/dist/agent/wake-cycle-runner.js.map +1 -1
  70. package/dist/agent/wake-schedule.d.ts +2 -0
  71. package/dist/agent/wake-schedule.d.ts.map +1 -1
  72. package/dist/agent/wake-schedule.js +3 -0
  73. package/dist/agent/wake-schedule.js.map +1 -1
  74. package/dist/builtin-skills/fund-manager/SKILL.md +12 -8
  75. package/dist/builtin-skills/fund-manager/core-contract.md +31 -17
  76. package/dist/channels/telegram.d.ts +10 -0
  77. package/dist/channels/telegram.d.ts.map +1 -1
  78. package/dist/channels/telegram.js +110 -0
  79. package/dist/channels/telegram.js.map +1 -1
  80. package/dist/config/types.d.ts +3 -0
  81. package/dist/config/types.d.ts.map +1 -1
  82. package/dist/config/types.js +2 -0
  83. package/dist/config/types.js.map +1 -1
  84. package/dist/i18n/messages.d.ts +48 -0
  85. package/dist/i18n/messages.d.ts.map +1 -1
  86. package/dist/i18n/messages.js +50 -0
  87. package/dist/i18n/messages.js.map +1 -1
  88. package/dist/onboarding/send-invite.d.ts.map +1 -1
  89. package/dist/onboarding/send-invite.js +35 -18
  90. package/dist/onboarding/send-invite.js.map +1 -1
  91. package/dist/onboarding/welcome-starter-tasks.d.ts +16 -0
  92. package/dist/onboarding/welcome-starter-tasks.d.ts.map +1 -0
  93. package/dist/onboarding/welcome-starter-tasks.js +51 -0
  94. package/dist/onboarding/welcome-starter-tasks.js.map +1 -0
  95. package/dist/stt-client.d.ts +16 -1
  96. package/dist/stt-client.d.ts.map +1 -1
  97. package/dist/stt-client.js +79 -4
  98. package/dist/stt-client.js.map +1 -1
  99. package/dist/threads/relay-adapter.d.ts +1 -0
  100. package/dist/threads/relay-adapter.d.ts.map +1 -1
  101. package/dist/threads/relay-adapter.js +3 -0
  102. package/dist/threads/relay-adapter.js.map +1 -1
  103. package/dist/threads/supervisor.d.ts +8 -38
  104. package/dist/threads/supervisor.d.ts.map +1 -1
  105. package/dist/threads/supervisor.js +47 -78
  106. package/dist/threads/supervisor.js.map +1 -1
  107. package/dist/threads/thread-activity-controller.d.ts +2 -0
  108. package/dist/threads/thread-activity-controller.d.ts.map +1 -1
  109. package/dist/threads/thread-activity-controller.js +5 -0
  110. package/dist/threads/thread-activity-controller.js.map +1 -1
  111. package/dist/tools/fund-league.d.ts +2 -2
  112. package/dist/tools/fund-league.js +1 -1
  113. package/dist/tools/fund-league.js.map +1 -1
  114. package/dist/tools/transcribe-audio.d.ts +9 -1
  115. package/dist/tools/transcribe-audio.d.ts.map +1 -1
  116. package/dist/tools/transcribe-audio.js +34 -6
  117. package/dist/tools/transcribe-audio.js.map +1 -1
  118. package/dist/utils/restart.d.ts +7 -0
  119. package/dist/utils/restart.d.ts.map +1 -1
  120. package/dist/utils/restart.js +27 -0
  121. package/dist/utils/restart.js.map +1 -1
  122. package/dist-agent/bundle.cjs +2 -2
  123. package/package.json +1 -1
  124. package/dist/agent/deep-night-dreaming.d.ts +0 -68
  125. package/dist/agent/deep-night-dreaming.d.ts.map +0 -1
  126. package/dist/agent/deep-night-dreaming.js +0 -99
  127. package/dist/agent/deep-night-dreaming.js.map +0 -1
  128. package/dist/agent/memory-dreaming-sweep.d.ts.map +0 -1
  129. package/dist/agent/memory-dreaming-sweep.js.map +0 -1
  130. package/dist/agent/memory-dreaming.d.ts.map +0 -1
  131. package/dist/agent/memory-dreaming.js.map +0 -1
  132. package/dist/agent/skill-learning-gate.d.ts.map +0 -1
  133. package/dist/agent/skill-learning-gate.js.map +0 -1
  134. package/dist/builtin-skills/catalog/phone-adb-automation/SKILL.md +0 -412
  135. package/dist/builtin-skills/catalog/phone-adb-automation/phone_input.sh +0 -132
  136. package/dist/builtin-skills/catalog/phone-adb-automation/phone_launch.sh +0 -166
  137. package/dist/builtin-skills/catalog/phone-adb-automation/phone_screenshot.sh +0 -87
  138. package/dist/builtin-skills/catalog/phone-adb-automation/phone_security_kbd.py +0 -174
  139. package/dist/builtin-skills/catalog/phone-adb-automation/phone_setup.sh +0 -274
  140. package/dist/builtin-skills/catalog/phone-adb-automation/phone_swipe.sh +0 -111
  141. package/dist/builtin-skills/catalog/phone-adb-automation/phone_tap.sh +0 -87
  142. package/dist/builtin-skills/catalog/phone-adb-automation/phone_ui_parse.py +0 -176
  143. package/dist/builtin-skills/catalog/phone-adb-automation/phone_wake_unlock.sh +0 -67
  144. package/dist/builtin-skills/macos-automation/SKILL.md +0 -132
  145. package/dist/builtin-skills/transcribe-audio/SKILL.md +0 -122
  146. package/dist/builtin-skills/visionclaw-manual/SKILL.md +0 -337
  147. package/dist/obs/rdp/icons/icons/app_windows.svg +0 -4
  148. package/dist/obs/rdp/icons/icons/clip_get.svg +0 -4
  149. package/dist/obs/rdp/icons/icons/clip_send.svg +0 -4
  150. package/dist/obs/rdp/icons/icons/clip_shared.svg +0 -4
  151. package/dist/obs/rdp/icons/icons/clipboard.svg +0 -4
  152. package/dist/obs/rdp/icons/icons/clipboard_shared.svg +0 -4
  153. package/dist/obs/rdp/icons/icons/control.svg +0 -4
  154. package/dist/obs/rdp/icons/icons/desktop.svg +0 -4
  155. package/dist/obs/rdp/icons/icons/display.svg +0 -4
  156. package/dist/obs/rdp/icons/icons/launchpad.svg +0 -4
  157. package/dist/obs/rdp/icons/icons/mission_control.svg +0 -4
  158. package/dist/obs/rdp/icons/icons/screenshot.svg +0 -4
  159. package/dist/obs/rdp/icons/icons/zoom_actual.svg +0 -4
  160. package/dist/obs/rdp/icons/icons/zoom_fit.svg +0 -4
  161. package/dist/obs/rdp/icons/icons/zoom_in.svg +0 -4
  162. package/dist/obs/rdp/icons/icons/zoom_out.svg +0 -4
  163. package/dist/realtime/assets/index.html +0 -1058
  164. package/dist/realtime/assets/samples/alloy.mp3 +0 -0
  165. package/dist/realtime/assets/samples/ash.mp3 +0 -0
  166. package/dist/realtime/assets/samples/ballad.mp3 +0 -0
  167. package/dist/realtime/assets/samples/cedar.mp3 +0 -0
  168. package/dist/realtime/assets/samples/coral.mp3 +0 -0
  169. package/dist/realtime/assets/samples/echo.mp3 +0 -0
  170. package/dist/realtime/assets/samples/marin.mp3 +0 -0
  171. package/dist/realtime/assets/samples/sage.mp3 +0 -0
  172. package/dist/realtime/assets/samples/shimmer.mp3 +0 -0
  173. package/dist/realtime/assets/samples/verse.mp3 +0 -0
  174. package/dist-agent/assets/index.html +0 -1058
  175. package/dist-agent/assets/samples/alloy.mp3 +0 -0
  176. package/dist-agent/assets/samples/ash.mp3 +0 -0
  177. package/dist-agent/assets/samples/ballad.mp3 +0 -0
  178. package/dist-agent/assets/samples/cedar.mp3 +0 -0
  179. package/dist-agent/assets/samples/coral.mp3 +0 -0
  180. package/dist-agent/assets/samples/echo.mp3 +0 -0
  181. package/dist-agent/assets/samples/marin.mp3 +0 -0
  182. package/dist-agent/assets/samples/sage.mp3 +0 -0
  183. package/dist-agent/assets/samples/shimmer.mp3 +0 -0
  184. package/dist-agent/assets/samples/verse.mp3 +0 -0
  185. package/dist-agent/realtime/assets/index.html +0 -1058
  186. package/dist-agent/realtime/assets/samples/alloy.mp3 +0 -0
  187. package/dist-agent/realtime/assets/samples/ash.mp3 +0 -0
  188. package/dist-agent/realtime/assets/samples/ballad.mp3 +0 -0
  189. package/dist-agent/realtime/assets/samples/cedar.mp3 +0 -0
  190. package/dist-agent/realtime/assets/samples/coral.mp3 +0 -0
  191. package/dist-agent/realtime/assets/samples/echo.mp3 +0 -0
  192. package/dist-agent/realtime/assets/samples/marin.mp3 +0 -0
  193. package/dist-agent/realtime/assets/samples/sage.mp3 +0 -0
  194. package/dist-agent/realtime/assets/samples/shimmer.mp3 +0 -0
  195. 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
- On the first run, `make start` creates the server-side Agent/Profile resources,
68
- opens the required OAuth and owner setup pages, and waits for those flows to
69
- complete. Override the local profile name with `make start PROFILE=<name>`;
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
- Zoho OAuth consent and Telegram confirmation are intentionally human steps.
80
- Follow the provider page to authorize Zoho, then confirm the pre-filled managed
81
- bot creation or existing-bot binding in Telegram. Token delivery, local
82
- configuration, and Agent restart are automatic. Existing historical setup URLs
83
- remain supported during the compatibility window, although newly issued setup
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;AAQhD;;;;;;;;;;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,CA2J1B;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"}
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"}
@@ -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
- "Send a brief message to the owner through their messaging channel to let them know the upgrade completed successfully and you are back online.");
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("The owner manually triggered a restart and the agent has just come back online. " +
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(`A new version of VisionClaw is available: ${versionUpdate.currentVersion} → ${versionUpdate.latestVersion}`);
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("Notify the user about this update through their messaging channel. " +
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":"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"}
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
- * Stable role/rules live in `systemPrompt` (fund-manager/v1). Per-wake
6
- * dynamic context (daily report, NAV, etc.) will arrive later via `build`
7
- * against a control-plane player-context endpoint — this slice returns [].
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":"AAIA,OAAO,KAAK,EACV,uBAAuB,EACvB,4BAA4B,EAC5B,2BAA2B,EAC5B,MAAM,aAAa,CAAC;AAErB;;;;;;GAMG;AACH,qBAAa,iCAAkC,YAAW,uBAAuB;IAC/E,QAAQ,CAAC,MAAM,iBAAiB;IAEhC,YAAY,CAAC,aAAa,EAAE,2BAA2B,GAAG,MAAM,GAAG,IAAI;IAMvE,KAAK,CAAC,MAAM,EAAE,4BAA4B,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;CAG9D"}
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
- * Stable role/rules live in `systemPrompt` (fund-manager/v1). Per-wake
6
- * dynamic context (daily report, NAV, etc.) will arrive later via `build`
7
- * against a control-plane player-context endpoint — this slice returns [].
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
- return loadFundManagerCoreContract()
15
- ?? "## Fund Manager Core Contract\n\nThe Fund Manager core contract could not be loaded. Do not place league orders until the contract is available.";
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;AAO5C;;;;;;GAMG;AACH,MAAM,OAAO,iCAAiC;IACnC,MAAM,GAAG,aAAa,CAAC;IAEhC,YAAY,CAAC,aAA0C;QACrD,IAAI,CAAC,yBAAyB,EAAE;YAAE,OAAO,IAAI,CAAC;QAC9C,OAAO,2BAA2B,EAAE;eAC/B,kJAAkJ,CAAC;IAC1J,CAAC;IAED,KAAK,CAAC,MAAoC;QACxC,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;CACF"}
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 by the deep-night dreaming check on the idle tick
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;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,MAAM,gBAAgB,GAAG,IAAI,CAAC;CACrD;AA6FD,qBAAa,gBAAgB;IAC3B,mFAAmF;IACnF,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,MAAM,CAAwC;IACtD,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAA6B;IACrE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAmD;IACzF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAsB;IAChD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAgC;IACrE,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,kBAAkB,CAAiC;IAC3D,OAAO,CAAC,wBAAwB,CAAuB;IACvD,OAAO,CAAC,kBAAkB,CAAS;IACnC;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA0B;IAC3D,OAAO,CAAC,gBAAgB,CAAwC;IAGhE,sEAAsE;IACtE,OAAO,CAAC,YAAY,CAA8C;IAClE,2DAA2D;IAC3D,OAAO,CAAC,OAAO,CAAgC;IAC/C,yFAAyF;IACzF,OAAO,CAAC,cAAc,CAAS;IAC/B,sFAAsF;IACtF,OAAO,CAAC,mBAAmB,CAAS;IACpC,qFAAqF;IACrF,OAAO,CAAC,2BAA2B,CAAS;IAC5C,gFAAgF;IAChF,OAAO,CAAC,0BAA0B,CAAS;IAC3C;;;;OAIG;IACH,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,mBAAmB,CAA8B;IACzD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAC5D,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA6B;IAElE;;;;;;;;;;;OAWG;YACW,oBAAoB;gBAiCtB,MAAM,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,uBAAuB;IAiDvE,oFAAoF;IACpF,OAAO,CAAC,YAAY;IAmEpB;;;;;;;;;;;;;;;OAeG;YACW,aAAa;IAsB3B;;;OAGG;YACW,OAAO;IAyarB;;;;OAIG;IACG,IAAI,CACR,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,YAAY,EAAE,kBAAkB,GAAG,IAAI,GACtC,OAAO,CAAC,IAAI,CAAC;IAqEhB,8EAA8E;IACxE,iBAAiB,CAAC,eAAe,SAAgC,GAAG,OAAO,CAAC,IAAI,CAAC;IA0CvF,4CAA4C;IAC5C,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,gEAAgE;IAChE,IAAI,eAAe,IAAI,WAAW,GAAG,SAAS,CAE7C;IAED,4GAA4G;IAC5G,IAAI,iBAAiB,IAAI,kBAAkB,GAAG,SAAS,CAEtD;IAED,IAAI,uBAAuB,IAAI,MAAM,EAAE,GAAG,SAAS,CAElD;IACD,gFAAgF;IAChF,IAAI,iBAAiB,IAAI,OAAO,CAE/B;IAED;mFAC+E;IAC/E,kBAAkB,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI;IAKrD,eAAe,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAa9C,gGAAgG;IAChG,mBAAmB,CAAC,EAAE,EAAE,uBAAuB,GAAG,IAAI;IAItD;;;OAGG;IACG,2BAA2B,IAAI,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAM5E,kFAAkF;IAClF,uBAAuB,IAAI,IAAI;IAI/B;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,OAAO,GAAG,IAAI;IAa1C;;;;;;;;;;;;OAYG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAYlC;;;;;OAKG;IACH,KAAK,IAAI,IAAI;IAOb,6EAA6E;IAC7E,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,gBAAgB;YAaV,cAAc;IAe5B;;;;;;;;;OASG;YACW,yBAAyB;YAczB,YAAY;CAoB3B"}
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)