@askexenow/exe-os 0.9.239 → 0.9.244

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 (319) hide show
  1. package/deploy/compose/.env.customer.example +12 -0
  2. package/deploy/compose/.env.example +13 -1
  3. package/deploy/compose/cloudflared/config.yml.example +29 -5
  4. package/deploy/compose/docker-compose.yml +27 -7
  5. package/deploy/compose/generate-env.ts +49 -1
  6. package/deploy/compose/init-db.sql +10 -2
  7. package/deploy/stack-manifests/v0.9.json +113 -9
  8. package/dist/{active-agent-7MIVNARP.js → active-agent-KO4ZWDXE.js} +4 -4
  9. package/dist/{active-agent-55C5Y3XL.js → active-agent-KP2O52HA.js} +4 -4
  10. package/dist/{agentic-ontology-NCAQIQQI.js → agentic-ontology-DXE5J6I5.js} +1 -1
  11. package/dist/{backfill-metadata-3JP7EZ2U.js → backfill-metadata-DFTIGPXP.js} +7 -7
  12. package/dist/{background-jobs-RWL46VRD.js → background-jobs-CRXY7T4Y.js} +2 -2
  13. package/dist/{behaviors-6BGALYGW.js → behaviors-BL3QCHBT.js} +4 -4
  14. package/dist/bin/age-ontology-load.js +2 -2
  15. package/dist/bin/agentic-ontology-backfill.js +9 -9
  16. package/dist/bin/agentic-reflection-backfill.js +10 -10
  17. package/dist/bin/agentic-semantic-label.js +9 -9
  18. package/dist/bin/backfill-conversations.js +9 -9
  19. package/dist/bin/backfill-responses.js +9 -9
  20. package/dist/bin/backfill-vectors.js +11 -11
  21. package/dist/bin/bulk-sync-postgres.js +10 -10
  22. package/dist/bin/cc-doctor.js +3 -3
  23. package/dist/bin/cleanup-stale-review-tasks.js +13 -13
  24. package/dist/bin/cli.js +27 -22
  25. package/dist/bin/exe-agent-config.js +4 -4
  26. package/dist/bin/exe-agent.js +8 -8
  27. package/dist/bin/exe-assign.js +11 -11
  28. package/dist/bin/exe-boot.js +22 -22
  29. package/dist/bin/exe-call.js +5 -5
  30. package/dist/bin/exe-cloud.js +8 -8
  31. package/dist/bin/exe-dispatch.js +13 -13
  32. package/dist/bin/exe-doctor.js +1 -1
  33. package/dist/bin/exe-export-behaviors.js +10 -10
  34. package/dist/bin/exe-forget.js +9 -9
  35. package/dist/bin/exe-gateway.js +8 -8
  36. package/dist/bin/exe-healthcheck.js +3 -3
  37. package/dist/bin/exe-heartbeat.js +13 -13
  38. package/dist/bin/exe-kill.js +18 -18
  39. package/dist/bin/exe-launch-agent.js +22 -22
  40. package/dist/bin/exe-new-employee.js +8 -8
  41. package/dist/bin/exe-pending-messages.js +14 -14
  42. package/dist/bin/exe-pending-notifications.js +13 -13
  43. package/dist/bin/exe-pending-reviews.js +13 -13
  44. package/dist/bin/exe-rename.js +5 -5
  45. package/dist/bin/exe-review.js +17 -17
  46. package/dist/bin/exe-search.js +8 -8
  47. package/dist/bin/exe-session-cleanup.js +20 -20
  48. package/dist/bin/exe-settings.js +7 -7
  49. package/dist/bin/exe-start-codex.js +14 -14
  50. package/dist/bin/exe-start-opencode.js +11 -11
  51. package/dist/bin/exe-status.js +14 -14
  52. package/dist/bin/exe-support.js +3 -3
  53. package/dist/bin/exe-team.js +4 -4
  54. package/dist/bin/git-sweep.js +13 -13
  55. package/dist/bin/graph-backfill.js +8 -8
  56. package/dist/bin/graph-export.js +8 -8
  57. package/dist/bin/import-history.js +10 -10
  58. package/dist/bin/install.js +7 -7
  59. package/dist/bin/intercom-check.js +4 -4
  60. package/dist/bin/mcp-sessions.js +2 -2
  61. package/dist/bin/orchestration-metrics.js +5 -5
  62. package/dist/bin/postgres-agentic-reflection-backfill.js +4 -4
  63. package/dist/bin/postgres-agentic-semantic-backfill.js +3 -3
  64. package/dist/bin/registry-proxy.js +1 -1
  65. package/dist/bin/scan-tasks.js +13 -13
  66. package/dist/bin/setup.js +3 -3
  67. package/dist/bin/shard-migrate.js +8 -8
  68. package/dist/bin/stack-update.js +348 -20
  69. package/dist/bin/verify-stack.js +3 -383
  70. package/dist/bin/vps-backup.js +8 -160
  71. package/dist/bin/vps-health-gate.js +10 -220
  72. package/dist/{branding-I7YYX4FM.js → branding-XWMO5EDR.js} +1 -1
  73. package/dist/{capacity-monitor-IFCZKRPG.js → capacity-monitor-4CSBC7AP.js} +14 -14
  74. package/dist/{catchup-brief-PIDRWXOW.js → catchup-brief-LF5Z6Q6E.js} +17 -17
  75. package/dist/{chunk-FGJUGDNM.js → chunk-222SI7QC.js} +14 -14
  76. package/dist/{chunk-JZMVLAZ2.js → chunk-2WBBVEIB.js} +1 -1
  77. package/dist/{chunk-JDOE33C2.js → chunk-3V53HH5T.js} +4 -4
  78. package/dist/{chunk-2KZSKURT.js → chunk-57SULZJ2.js} +3 -3
  79. package/dist/{chunk-QI4IXJN7.js → chunk-5CHYEKMH.js} +7 -4
  80. package/dist/chunk-5DMAMQNU.js +168 -0
  81. package/dist/{chunk-PLQAFB3Z.js → chunk-5JIG2FP2.js} +1 -1
  82. package/dist/{chunk-UWQ3XCDG.js → chunk-5WK7X5CF.js} +2 -2
  83. package/dist/{chunk-DDPAQ4LT.js → chunk-6JAGJN77.js} +2 -2
  84. package/dist/{chunk-7F37NMKB.js → chunk-73UE2PHT.js} +1 -1
  85. package/dist/{chunk-JL3K5OTS.js → chunk-7IZWLMTP.js} +1 -1
  86. package/dist/{chunk-ELRRL2NC.js → chunk-A4K2ZT6N.js} +4 -4
  87. package/dist/{chunk-GWYADLIW.js → chunk-AHXEU5XB.js} +1 -1
  88. package/dist/{chunk-WSHMBME6.js → chunk-AWRL5FGM.js} +19 -78
  89. package/dist/{chunk-OMPCFLWA.js → chunk-BSPOEYAO.js} +1 -1
  90. package/dist/{chunk-F4TCKCKK.js → chunk-BYCNUKII.js} +47 -12
  91. package/dist/{chunk-DHVC4RN7.js → chunk-CBDPEJOR.js} +5 -5
  92. package/dist/{chunk-2H55BIV2.js → chunk-CEJO7244.js} +2 -2
  93. package/dist/{chunk-FKWZVO2T.js → chunk-CPXGLSIL.js} +3 -3
  94. package/dist/{chunk-HX5G4AS4.js → chunk-CWITU7DW.js} +2 -2
  95. package/dist/{chunk-5GG7MTRJ.js → chunk-DGBGIXCC.js} +4 -4
  96. package/dist/{chunk-IQXPMK46.js → chunk-DLZYAYVM.js} +60 -14
  97. package/dist/{chunk-PPYWQV2M.js → chunk-DR5BGWFR.js} +2 -2
  98. package/dist/{chunk-BZWKTFEB.js → chunk-ENVRFBTB.js} +2 -2
  99. package/dist/{chunk-DUVO2PUJ.js → chunk-F3GM6OOP.js} +4 -4
  100. package/dist/{chunk-HNLPLLE6.js → chunk-F7JLZXHC.js} +60 -26
  101. package/dist/{chunk-AL4DRC5H.js → chunk-FFLILAG6.js} +1 -1
  102. package/dist/{chunk-BZNI4OK5.js → chunk-GHEWRYMY.js} +18 -2
  103. package/dist/{chunk-C7SFJO5F.js → chunk-GHT4REOS.js} +5 -5
  104. package/dist/{chunk-FBWUJEXS.js → chunk-HANG6NLF.js} +4 -6
  105. package/dist/{chunk-5NJ4A4ZA.js → chunk-HCBMPZDT.js} +1 -1
  106. package/dist/chunk-HOGTZLVU.js +244 -0
  107. package/dist/{chunk-IQSCZDBQ.js → chunk-I5PIBL56.js} +3 -3
  108. package/dist/chunk-IRHNV4GY.js +388 -0
  109. package/dist/{chunk-4HROS3GJ.js → chunk-IZVKWBIP.js} +1 -1
  110. package/dist/{chunk-DKI5BTBC.js → chunk-J7V7LPPX.js} +2 -2
  111. package/dist/{chunk-TOZ5NN5V.js → chunk-JLKUVK5J.js} +1 -1
  112. package/dist/{chunk-4SC65UBG.js → chunk-JLNXKG3K.js} +1 -1
  113. package/dist/{chunk-KVSQOG3W.js → chunk-K2BDE2B5.js} +4 -4
  114. package/dist/{chunk-KDJRFJDL.js → chunk-K333WOW4.js} +30 -2
  115. package/dist/{chunk-6LBCUA2A.js → chunk-KEZXW3RP.js} +1 -1
  116. package/dist/{chunk-W7G3GY4I.js → chunk-KLQI7QY4.js} +3 -3
  117. package/dist/{chunk-UODVZGBQ.js → chunk-KN7LPTIB.js} +1 -1
  118. package/dist/{chunk-ESKBZN4Q.js → chunk-L4WRH3DL.js} +1 -1
  119. package/dist/{chunk-VFQKKMKE.js → chunk-LAOB5BKV.js} +2 -2
  120. package/dist/{chunk-MAN5LZQ4.js → chunk-LQSFP2BV.js} +1 -1
  121. package/dist/{chunk-EJ7LOTV2.js → chunk-LSFHEMVI.js} +9 -9
  122. package/dist/{chunk-RA2RO27E.js → chunk-MCESA5UW.js} +2 -2
  123. package/dist/{chunk-UPMHG7ET.js → chunk-MEIHREPM.js} +1 -1
  124. package/dist/{chunk-D5C56WO3.js → chunk-MOZ2YQ54.js} +1 -1
  125. package/dist/{chunk-CLGB3FGL.js → chunk-MPX3TRMQ.js} +2 -2
  126. package/dist/{chunk-5R75ODPS.js → chunk-NBY6R37W.js} +61 -232
  127. package/dist/{chunk-RWFGXC35.js → chunk-NEYQAEYU.js} +7 -7
  128. package/dist/{chunk-MBHZDXGN.js → chunk-NL35XNLI.js} +1 -1
  129. package/dist/{chunk-TPQVLYSV.js → chunk-NLGMHPEN.js} +1 -1
  130. package/dist/{chunk-5LMH4YHG.js → chunk-NRVV4Y5V.js} +4 -4
  131. package/dist/{chunk-GN5VHPPR.js → chunk-NVZR7T4E.js} +1 -1
  132. package/dist/{chunk-Y2L7RMGH.js → chunk-NWBHL5PI.js} +1 -1
  133. package/dist/{chunk-YPYDLW75.js → chunk-OEMX65EA.js} +1 -1
  134. package/dist/{chunk-UAFUGPKO.js → chunk-ONAQAL3O.js} +1 -1
  135. package/dist/{chunk-AVM7XZE4.js → chunk-OWQ3CCYJ.js} +7 -6
  136. package/dist/{chunk-K525WLL7.js → chunk-PI6V23GF.js} +5 -4
  137. package/dist/{chunk-AURM7FOT.js → chunk-Q2OAQPWY.js} +1 -1
  138. package/dist/{chunk-FB5VRO5S.js → chunk-QLDWASTX.js} +28 -32
  139. package/dist/{chunk-EPWDTS2Q.js → chunk-QMTGMCWB.js} +1 -1
  140. package/dist/{chunk-VI2FJY2M.js → chunk-QP4FHME2.js} +2 -2
  141. package/dist/{chunk-NJWK6J4N.js → chunk-QUNKPR6Y.js} +5 -5
  142. package/dist/{chunk-O6DAF2TY.js → chunk-QUZVAHO7.js} +2 -2
  143. package/dist/{chunk-VHKL4S4T.js → chunk-RRHSONV5.js} +2 -2
  144. package/dist/{chunk-GPF6X6HE.js → chunk-RYDHEWYY.js} +2 -2
  145. package/dist/{chunk-SVXDCELZ.js → chunk-SHN5O73O.js} +32 -4
  146. package/dist/chunk-TD5CADZ5.js +230 -0
  147. package/dist/{chunk-C2YS2AA6.js → chunk-U7WOVXBB.js} +2 -2
  148. package/dist/{chunk-FE45RXGC.js → chunk-V2GZMY6O.js} +1 -1
  149. package/dist/{chunk-PATCHPNY.js → chunk-VHALWCUO.js} +1 -1
  150. package/dist/{chunk-HLZSC5WK.js → chunk-VQAP35DA.js} +20 -18
  151. package/dist/{chunk-452XB7OZ.js → chunk-VRIMTCX2.js} +1 -1
  152. package/dist/{chunk-SUNYJ6YE.js → chunk-VT2B5BHM.js} +1 -1
  153. package/dist/{chunk-UZIJDYDA.js → chunk-VWVJVQDH.js} +2 -2
  154. package/dist/{chunk-TRZ5KA2R.js → chunk-VXIMSRTO.js} +2 -2
  155. package/dist/{chunk-DAZIV4QZ.js → chunk-WCXZF42W.js} +1 -1
  156. package/dist/{chunk-6OJJF4WP.js → chunk-XJUUWHVN.js} +1 -1
  157. package/dist/{chunk-F7LU65PQ.js → chunk-Y25OJWOQ.js} +14 -2
  158. package/dist/{chunk-2ORPA23Y.js → chunk-YMXXD2GW.js} +36 -8
  159. package/dist/{chunk-5WLMF6PL.js → chunk-YMZHTTOQ.js} +1 -1
  160. package/dist/{chunk-7DIDOQCX.js → chunk-YRVW57UW.js} +139 -125
  161. package/dist/{chunk-BRFH5X7G.js → chunk-Z7VDUS6L.js} +1 -1
  162. package/dist/{chunk-YFE6W75D.js → chunk-ZKFPHJIJ.js} +1 -1
  163. package/dist/{chunk-5WUTKDH6.js → chunk-ZVXJSQOR.js} +1 -1
  164. package/dist/{co-activation-VB4CJQZB.js → co-activation-L6I2LSJO.js} +3 -3
  165. package/dist/{co-occurrence-XZQJJIBM.js → co-occurrence-QARWYUAY.js} +3 -3
  166. package/dist/{code-context-index-FCQOPUEA.js → code-context-index-UIYQRDHD.js} +4 -4
  167. package/dist/{content-extractor-SPSH5X33.js → content-extractor-EYRVGD6O.js} +2 -2
  168. package/dist/{conversation-wiki-populator-YU35LNRK.js → conversation-wiki-populator-L7O6F3BB.js} +1 -1
  169. package/dist/{crdt-sync-KXETGV45.js → crdt-sync-R6YROKDH.js} +1 -1
  170. package/dist/{crm-webhook-JMOAHTJ6.js → crm-webhook-WK3PYJJK.js} +2 -2
  171. package/dist/{cto-delegation-gate-IJ3KQIKF.js → cto-delegation-gate-5JZORQIT.js} +12 -12
  172. package/dist/{daemon-auth-2IZACWSG.js → daemon-auth-2HEOL6VG.js} +2 -2
  173. package/dist/{daemon-orchestration-ZCY4GEI3.js → daemon-orchestration-BJ3T5MMF.js} +16 -15
  174. package/dist/{db-backup-HLX5OLIV.js → db-backup-EWS52P2W.js} +2 -2
  175. package/dist/{dreaming-2CJML3TU.js → dreaming-BOSBDRI3.js} +13 -13
  176. package/dist/{entity-boost-T5IYWWDZ.js → entity-boost-6ZVX7DFB.js} +26 -2
  177. package/dist/{exe-drift-P5OIRNSH.js → exe-drift-WRE6RADZ.js} +4 -4
  178. package/dist/{exe-export-QQL2H322.js → exe-export-7N5PBCMK.js} +8 -8
  179. package/dist/{exe-import-V4RJCUEP.js → exe-import-YOOE7S3H.js} +8 -8
  180. package/dist/{exe-key-MENJGDD7.js → exe-key-GXJSTCX2.js} +4 -4
  181. package/dist/{exe-org-3FNET2J7.js → exe-org-42YMQL75.js} +2 -2
  182. package/dist/{exe-snapshot-YRARQE7F.js → exe-snapshot-ODUCFW7G.js} +18 -18
  183. package/dist/{fast-db-init-HIJWWKAO.js → fast-db-init-YSR7RMVZ.js} +1 -1
  184. package/dist/{founder-context-BQ5NBDUV.js → founder-context-Q2HUCZX4.js} +2 -2
  185. package/dist/gateway/index.js +9 -9
  186. package/dist/{gateway-client-YGSA5QMC.js → gateway-client-4QXHKN5C.js} +1 -1
  187. package/dist/{git-staleness-IHTKCUMN.js → git-staleness-BJDTCDPC.js} +3 -3
  188. package/dist/{git-task-sweep-5ZPNQS7Y.js → git-task-sweep-L3U3T5HM.js} +13 -13
  189. package/dist/{global-procedures-XHDIZRJU.js → global-procedures-HCHEHKY2.js} +4 -4
  190. package/dist/{graph-auto-extract-5TPT67GP.js → graph-auto-extract-FP5C76LS.js} +3 -3
  191. package/dist/{hook-integrity-SB53Y7UK.js → hook-integrity-2OU3T6UC.js} +1 -1
  192. package/dist/hooks/bug-report-worker.js +15 -14
  193. package/dist/hooks/codex-stop-task-finalizer.js +15 -14
  194. package/dist/hooks/commit-complete.js +16 -16
  195. package/dist/hooks/error-recall.js +10 -10
  196. package/dist/hooks/exe-heartbeat-hook.js +5 -5
  197. package/dist/hooks/ingest-worker.js +8 -8
  198. package/dist/hooks/ingest.js +13 -13
  199. package/dist/hooks/instructions-loaded.js +7 -7
  200. package/dist/hooks/manifest.json +20 -20
  201. package/dist/hooks/notification.js +6 -6
  202. package/dist/hooks/post-compact.js +15 -15
  203. package/dist/hooks/post-tool-combined.js +7 -7
  204. package/dist/hooks/pre-compact.js +20 -20
  205. package/dist/hooks/pre-tool-use.js +28 -25
  206. package/dist/hooks/prompt-submit.js +62 -31
  207. package/dist/hooks/session-end.js +26 -26
  208. package/dist/hooks/session-start.js +39 -15
  209. package/dist/hooks/stop.js +22 -22
  210. package/dist/hooks/subagent-stop.js +15 -15
  211. package/dist/hooks/summary-worker.js +32 -27
  212. package/dist/index.js +21 -21
  213. package/dist/{installer-AMZM4MLS.js → installer-AWMUCRN4.js} +7 -7
  214. package/dist/{installer-KT5FW4CN.js → installer-HB3NH6FG.js} +9 -9
  215. package/dist/{installer-HW74W3IT.js → installer-RU6EVOBL.js} +6 -6
  216. package/dist/{intercom-queue-RNM6EPGA.js → intercom-queue-A6UJEFIF.js} +1 -1
  217. package/dist/{key-backup-status-OZ2CXUDW.js → key-backup-status-4YKCV4ZV.js} +1 -1
  218. package/dist/lib/agent-config.js +2 -2
  219. package/dist/lib/cloud-sync.js +10 -8
  220. package/dist/lib/config.js +1 -1
  221. package/dist/lib/consolidation.js +8 -8
  222. package/dist/lib/database.js +3 -3
  223. package/dist/lib/db-daemon-client.js +3 -3
  224. package/dist/lib/db.js +3 -3
  225. package/dist/lib/device-registry.js +1 -1
  226. package/dist/lib/embedder.js +4 -4
  227. package/dist/lib/employee-templates.js +5 -5
  228. package/dist/lib/employees.js +3 -3
  229. package/dist/lib/exe-daemon-client.js +3 -3
  230. package/dist/lib/exe-daemon.js +105 -74
  231. package/dist/lib/hybrid-search.js +8 -8
  232. package/dist/lib/identity.js +3 -3
  233. package/dist/lib/keychain.js +1 -1
  234. package/dist/lib/license.js +2 -2
  235. package/dist/lib/messaging.js +13 -13
  236. package/dist/lib/post-tool-memory.js +3 -3
  237. package/dist/lib/registry-proxy.js +1 -1
  238. package/dist/lib/reminders.js +4 -4
  239. package/dist/lib/schedules.js +8 -8
  240. package/dist/lib/session-registry.js +5 -5
  241. package/dist/lib/skill-learning.js +5 -5
  242. package/dist/lib/store.js +7 -7
  243. package/dist/lib/task-router.js +4 -4
  244. package/dist/lib/tasks.js +14 -13
  245. package/dist/lib/tmux-routing.js +12 -12
  246. package/dist/lib/token-spend.js +4 -4
  247. package/dist/lib/ws-client.js +1 -1
  248. package/dist/{license-gate-XJDIL6OZ.js → license-gate-6JQQFBHS.js} +3 -3
  249. package/dist/mcp/register-tools.js +68 -67
  250. package/dist/mcp/server.js +70 -69
  251. package/dist/mcp/tools/complete-reminder.js +5 -5
  252. package/dist/mcp/tools/create-reminder.js +5 -5
  253. package/dist/mcp/tools/create-task.js +16 -15
  254. package/dist/mcp/tools/deactivate-behavior.js +6 -6
  255. package/dist/mcp/tools/list-reminders.js +5 -5
  256. package/dist/mcp/tools/list-tasks.js +16 -15
  257. package/dist/mcp/tools/send-message.js +15 -15
  258. package/dist/mcp/tools/update-task.js +15 -14
  259. package/dist/{mcp-http-config-BXX3RZPR.js → mcp-http-config-XIJR5P2Z.js} +4 -4
  260. package/dist/{memory-cards-KRTP5GFM.js → memory-cards-H4BJJ5OK.js} +3 -3
  261. package/dist/{memory-graph-extractor-G532PUHC.js → memory-graph-extractor-SDGM3GVR.js} +4 -4
  262. package/dist/{memory-poisoning-defense-HJM3FQA3.js → memory-poisoning-defense-UVU67DGJ.js} +3 -3
  263. package/dist/{memory-queue-FTNBWLS4.js → memory-queue-FNT5WHXP.js} +2 -2
  264. package/dist/{memory-queue-client-DHSHEIHQ.js → memory-queue-client-JZCFYTWQ.js} +5 -5
  265. package/dist/{memory-reflection-RANRFUQL.js → memory-reflection-GGB5K35L.js} +3 -3
  266. package/dist/{notifications-4P2PVEOT.js → notifications-P3XQZDTH.js} +12 -12
  267. package/dist/{orchestration-events-IYTASMSN.js → orchestration-events-25WEKUKH.js} +4 -4
  268. package/dist/{orchestration-phase-SGA7PJ5G.js → orchestration-phase-C26XVKLZ.js} +2 -2
  269. package/dist/{orchestrator-VKVHZ4MV.js → orchestrator-VIXTY4E4.js} +14 -14
  270. package/dist/{pipeline-router-E4L5BDXN.js → pipeline-router-S5PE5U6B.js} +4 -4
  271. package/dist/{plan-limits-5O5QG55H.js → plan-limits-DGIVM42H.js} +5 -5
  272. package/dist/{prediction-log-OMWHW7FL.js → prediction-log-DOEOHDHS.js} +1 -1
  273. package/dist/{project-boot-WMI6CWRX.js → project-boot-4ZL2W7DN.js} +12 -2
  274. package/dist/{projection-worker-54KRNQSO.js → projection-worker-GG2W5OM3.js} +3 -3
  275. package/dist/{push-notifications-E2XXEWJZ.js → push-notifications-AMHVR6DF.js} +2 -2
  276. package/dist/{reranker-4NTUFNYT.js → reranker-UCPLQZE2.js} +2 -2
  277. package/dist/{review-polling-BFRJDLUA.js → review-polling-P2MWEXLR.js} +13 -13
  278. package/dist/runtime/index.js +15 -15
  279. package/dist/{session-events-KCZCWGE4.js → session-events-5CD66R6U.js} +13 -13
  280. package/dist/{session-kill-telemetry-TMNIDYWY.js → session-kill-telemetry-7FBHTEDN.js} +4 -4
  281. package/dist/{session-scope-DRZBQ32Y.js → session-scope-VMIPAZU7.js} +12 -12
  282. package/dist/{setup-wizard-TQKGDAHO.js → setup-wizard-BNR47URR.js} +3 -3
  283. package/dist/{shard-manager-G6MHCO7X.js → shard-manager-VGA2TYHM.js} +2 -2
  284. package/dist/{skill-refinement-Z5SWD3AM.js → skill-refinement-NRG4WWRW.js} +3 -3
  285. package/dist/stack-release-PFZI22WC.js +521 -0
  286. package/dist/{stack-update-NO5MNARG.js → stack-update-7F2E2MBJ.js} +3 -3
  287. package/dist/{steward-gate-7DWYS5AT.js → steward-gate-L7DJMF4C.js} +4 -4
  288. package/dist/{task-enforcement-2VL5J6JJ.js → task-enforcement-XQL77PZH.js} +52 -12
  289. package/dist/{task-scope-YHALISIB.js → task-scope-R3XKBIHL.js} +12 -12
  290. package/dist/{tasks-crud-JXZEBZFR.js → tasks-crud-DQOG2NPG.js} +12 -12
  291. package/dist/tasks-notify-4EQYG52H.js +37 -0
  292. package/dist/{tasks-review-PGPYJQF5.js → tasks-review-XPFJ4DSJ.js} +12 -12
  293. package/dist/{telemetry-upload-H7OJNBIF.js → telemetry-upload-OT5B5HUY.js} +7 -7
  294. package/dist/{token-budget-JJ7JQIA2.js → token-budget-D2LQKCAV.js} +3 -3
  295. package/dist/{tool-capability-index-WIV4K3FB.js → tool-capability-index-FAJ5ZHDF.js} +1 -1
  296. package/dist/{tool-telemetry-W4LFCHFT.js → tool-telemetry-QIF5BCLF.js} +1 -1
  297. package/dist/tui/App.js +26 -26
  298. package/dist/{tui-data-72U6N2DC.js → tui-data-UEV2QOR3.js} +108 -12
  299. package/dist/{whatsapp-config-W63RQ3AU.js → whatsapp-config-GOSELKTE.js} +7 -0
  300. package/dist/{worker-gate-SCSN6IHI.js → worker-gate-PRCKA23W.js} +2 -2
  301. package/dist/{workflow-engine-OICYBE4F.js → workflow-engine-7X6LLH3M.js} +2 -2
  302. package/dist/{worktree-JXN4RCWC.js → worktree-RICSCT2S.js} +5 -5
  303. package/package.json +1 -1
  304. package/release-notes.json +210 -298
  305. package/stack.release.json +4 -3
  306. package/dist/preflight-EAH2MI76.js +0 -287
  307. /package/dist/{chunk-H42LEGLB.js → chunk-AQBEG33D.js} +0 -0
  308. /package/dist/{chunk-AU5426YP.js → chunk-B7JGEDVE.js} +0 -0
  309. /package/dist/{chunk-YFDDTHNM.js → chunk-JXI4XUTV.js} +0 -0
  310. /package/dist/{chunk-SNYDRHV3.js → chunk-U3DUFHOT.js} +0 -0
  311. /package/dist/{chunk-N2XUH2HQ.js → chunk-VBPC7IC7.js} +0 -0
  312. /package/dist/{chunk-HTUJBTBM.js → chunk-VUS6WXQ3.js} +0 -0
  313. /package/dist/{chunk-NOLIN2YI.js → chunk-XAYRZHLV.js} +0 -0
  314. /package/dist/{core-memory-VOBGGB2Q.js → core-memory-4KAIKQRQ.js} +0 -0
  315. /package/dist/{message-queue-client-KAJN6TIJ.js → message-queue-client-S6W5VMJV.js} +0 -0
  316. /package/dist/{oauth-server-QEXRSXEP.js → oauth-server-2ESBZB7F.js} +0 -0
  317. /package/dist/{webhook-pipe-LY4XEDL7.js → webhook-pipe-ZRUVOG5H.js} +0 -0
  318. /package/dist/{wiki-acl-M3OR547L.js → wiki-acl-MFLSS6DE.js} +0 -0
  319. /package/dist/{wiki-client-MAFYBXCQ.js → wiki-client-GBPR45BQ.js} +0 -0
@@ -1,37 +1,37 @@
1
1
  import {
2
2
  StewardGate
3
- } from "./chunk-AL4DRC5H.js";
3
+ } from "./chunk-FFLILAG6.js";
4
4
  import {
5
5
  listRecentSessionEvents
6
- } from "./chunk-6LBCUA2A.js";
6
+ } from "./chunk-KEZXW3RP.js";
7
+ import {
8
+ AUTO_WAKE_MAX_RETRIES
9
+ } from "./chunk-VQAP35DA.js";
7
10
  import {
8
11
  isRerankerAvailable,
9
12
  rerankWithScores
10
- } from "./chunk-GWYADLIW.js";
13
+ } from "./chunk-AHXEU5XB.js";
11
14
  import {
12
- getEntityByName,
13
- getEntityNeighbors,
14
- getGraphStats,
15
- getHotEntities,
16
- getRelationships,
17
- searchEntities
18
- } from "./chunk-KH5Y6RR4.js";
15
+ getCachedLicenseGate
16
+ } from "./chunk-2WBBVEIB.js";
17
+ import {
18
+ getToolUsageStats
19
+ } from "./chunk-VBPC7IC7.js";
19
20
  import {
20
21
  getToolCapabilityIndex
21
- } from "./chunk-SNYDRHV3.js";
22
+ } from "./chunk-U3DUFHOT.js";
22
23
  import {
23
24
  isToolAllowed,
24
25
  isToolAllowedForPlan
25
26
  } from "./chunk-E6ORBQHP.js";
26
27
  import {
27
- AUTO_WAKE_MAX_RETRIES
28
- } from "./chunk-HLZSC5WK.js";
29
- import {
30
- getCachedLicenseGate
31
- } from "./chunk-JZMVLAZ2.js";
32
- import {
33
- getToolUsageStats
34
- } from "./chunk-N2XUH2HQ.js";
28
+ getEntityByName,
29
+ getEntityNeighbors,
30
+ getGraphStats,
31
+ getHotEntities,
32
+ getRelationships,
33
+ searchEntities
34
+ } from "./chunk-KH5Y6RR4.js";
35
35
  import {
36
36
  analyzeBlastRadius,
37
37
  buildCodeContextIndex,
@@ -40,72 +40,72 @@ import {
40
40
  searchCodeContext,
41
41
  searchCodeContextSemantic,
42
42
  traceCodeSymbol
43
- } from "./chunk-UZIJDYDA.js";
43
+ } from "./chunk-VWVJVQDH.js";
44
44
  import {
45
45
  DreamingEngine
46
- } from "./chunk-AVM7XZE4.js";
46
+ } from "./chunk-OWQ3CCYJ.js";
47
47
  import {
48
48
  exportOrchestration,
49
49
  importOrchestration,
50
50
  validatePackage
51
- } from "./chunk-AURM7FOT.js";
51
+ } from "./chunk-Q2OAQPWY.js";
52
52
  import {
53
53
  runDriftProbes
54
- } from "./chunk-PATCHPNY.js";
54
+ } from "./chunk-VHALWCUO.js";
55
55
  import {
56
56
  loadOrchestrationPhase,
57
57
  setOrchestrationPhase
58
- } from "./chunk-MBHZDXGN.js";
58
+ } from "./chunk-NL35XNLI.js";
59
59
  import {
60
60
  createOrRefreshResumeTask
61
- } from "./chunk-C7SFJO5F.js";
61
+ } from "./chunk-GHT4REOS.js";
62
62
  import {
63
63
  registerCreateReminder
64
- } from "./chunk-DAZIV4QZ.js";
64
+ } from "./chunk-WCXZF42W.js";
65
65
  import {
66
66
  registerListReminders
67
- } from "./chunk-TPQVLYSV.js";
67
+ } from "./chunk-NLGMHPEN.js";
68
68
  import {
69
69
  registerCompleteReminder
70
- } from "./chunk-OMPCFLWA.js";
70
+ } from "./chunk-BSPOEYAO.js";
71
71
  import {
72
72
  registerDeactivateBehavior
73
- } from "./chunk-KVSQOG3W.js";
73
+ } from "./chunk-K2BDE2B5.js";
74
74
  import {
75
75
  completeReminder,
76
76
  createReminder,
77
77
  listReminders
78
- } from "./chunk-5WLMF6PL.js";
78
+ } from "./chunk-YMZHTTOQ.js";
79
79
  import {
80
80
  registerImportConversations
81
- } from "./chunk-K525WLL7.js";
81
+ } from "./chunk-PI6V23GF.js";
82
82
  import {
83
83
  registerSendMessage
84
- } from "./chunk-DDPAQ4LT.js";
84
+ } from "./chunk-6JAGJN77.js";
85
85
  import {
86
86
  registerCreateTask
87
- } from "./chunk-EJ7LOTV2.js";
87
+ } from "./chunk-LSFHEMVI.js";
88
88
  import {
89
89
  registerListTasks
90
- } from "./chunk-FBWUJEXS.js";
90
+ } from "./chunk-HANG6NLF.js";
91
91
  import {
92
92
  registerUpdateTask
93
- } from "./chunk-JDOE33C2.js";
93
+ } from "./chunk-3V53HH5T.js";
94
94
  import {
95
95
  TOKENS_PER_IDLE_MINUTE,
96
96
  countKillsSince,
97
97
  sumTokensSavedSince
98
- } from "./chunk-452XB7OZ.js";
98
+ } from "./chunk-VRIMTCX2.js";
99
99
  import {
100
100
  createSchedule,
101
101
  parseHumanCron
102
- } from "./chunk-PPYWQV2M.js";
102
+ } from "./chunk-DR5BGWFR.js";
103
103
  import {
104
104
  status
105
- } from "./chunk-W7G3GY4I.js";
105
+ } from "./chunk-KLQI7QY4.js";
106
106
  import {
107
107
  getAgentSpend
108
- } from "./chunk-7F37NMKB.js";
108
+ } from "./chunk-73UE2PHT.js";
109
109
  import {
110
110
  exportGraphHTML,
111
111
  generateGraphReport
@@ -121,23 +121,23 @@ import {
121
121
  fixShards,
122
122
  formatReport,
123
123
  runAudit
124
- } from "./chunk-RWFGXC35.js";
124
+ } from "./chunk-NEYQAEYU.js";
125
125
  import {
126
126
  runHealthCheck
127
- } from "./chunk-UWQ3XCDG.js";
127
+ } from "./chunk-5WK7X5CF.js";
128
128
  import {
129
129
  hasFailures,
130
130
  runHealth,
131
131
  runTest
132
- } from "./chunk-VI2FJY2M.js";
132
+ } from "./chunk-QP4FHME2.js";
133
133
  import {
134
134
  renderClientCOOTemplate
135
- } from "./chunk-TOZ5NN5V.js";
135
+ } from "./chunk-JLKUVK5J.js";
136
136
  import {
137
137
  deactivateGlobalProcedure,
138
138
  loadGlobalProcedures,
139
139
  storeGlobalProcedure
140
- } from "./chunk-GN5VHPPR.js";
140
+ } from "./chunk-NVZR7T4E.js";
141
141
  import {
142
142
  PLATFORM_PROCEDURES
143
143
  } from "./chunk-K77WC6HA.js";
@@ -146,48 +146,48 @@ import {
146
146
  cloudSync,
147
147
  getCloudReuploadRequired,
148
148
  markCloudReuploadRequired
149
- } from "./chunk-FB5VRO5S.js";
149
+ } from "./chunk-QLDWASTX.js";
150
150
  import {
151
151
  createARecord
152
152
  } from "./chunk-X2Z5GT3V.js";
153
153
  import {
154
154
  findSimilarTrajectories,
155
155
  hashSignature
156
- } from "./chunk-2KZSKURT.js";
156
+ } from "./chunk-57SULZJ2.js";
157
157
  import {
158
158
  deactivateBehavior,
159
159
  listBehaviorsByDomain,
160
160
  listSharedSkills,
161
161
  reactivateBehavior,
162
162
  storeBehavior
163
- } from "./chunk-UAFUGPKO.js";
163
+ } from "./chunk-ONAQAL3O.js";
164
164
  import {
165
165
  countUnconsolidated,
166
166
  groupMemories,
167
167
  runConsolidation,
168
168
  selectUnconsolidated
169
- } from "./chunk-HX5G4AS4.js";
169
+ } from "./chunk-CWITU7DW.js";
170
170
  import {
171
171
  embed
172
- } from "./chunk-EPWDTS2Q.js";
172
+ } from "./chunk-QMTGMCWB.js";
173
173
  import {
174
174
  readMcpHttpEvents,
175
175
  summarizeMcpTransport,
176
176
  writeMcpTransportSummary
177
- } from "./chunk-UODVZGBQ.js";
177
+ } from "./chunk-KN7LPTIB.js";
178
178
  import {
179
179
  updateTask
180
- } from "./chunk-5R75ODPS.js";
180
+ } from "./chunk-NBY6R37W.js";
181
181
  import {
182
182
  fastDbInit
183
- } from "./chunk-H42LEGLB.js";
183
+ } from "./chunk-AQBEG33D.js";
184
184
  import {
185
185
  MAX_CONCURRENT_WORKERS
186
- } from "./chunk-VFQKKMKE.js";
186
+ } from "./chunk-LAOB5BKV.js";
187
187
  import {
188
188
  hybridSearch,
189
189
  recentRecords
190
- } from "./chunk-IQXPMK46.js";
190
+ } from "./chunk-DLZYAYVM.js";
191
191
  import {
192
192
  attachDocumentMetadata,
193
193
  flushBatch,
@@ -195,10 +195,10 @@ import {
195
195
  reserveVersions,
196
196
  vectorToBlob,
197
197
  writeMemory
198
- } from "./chunk-FGJUGDNM.js";
198
+ } from "./chunk-222SI7QC.js";
199
199
  import {
200
200
  getActiveAgent
201
- } from "./chunk-RA2RO27E.js";
201
+ } from "./chunk-MCESA5UW.js";
202
202
  import {
203
203
  getMySession,
204
204
  resolveExeSession,
@@ -206,13 +206,13 @@ import {
206
206
  sessionScopeFilter,
207
207
  updateTaskStatus,
208
208
  writeCheckpoint
209
- } from "./chunk-HNLPLLE6.js";
209
+ } from "./chunk-F7JLZXHC.js";
210
210
  import {
211
211
  listSessions
212
- } from "./chunk-BZNI4OK5.js";
212
+ } from "./chunk-GHEWRYMY.js";
213
213
  import {
214
214
  recordOrchestrationEventBestEffort
215
- } from "./chunk-5NJ4A4ZA.js";
215
+ } from "./chunk-HCBMPZDT.js";
216
216
  import {
217
217
  DEFAULT_MODELS,
218
218
  KNOWN_RUNTIMES,
@@ -220,7 +220,7 @@ import {
220
220
  getAgentRuntime,
221
221
  loadAgentConfig,
222
222
  setAgentRuntime
223
- } from "./chunk-6OJJF4WP.js";
223
+ } from "./chunk-XJUUWHVN.js";
224
224
  import {
225
225
  DEFAULT_RUNTIME
226
226
  } from "./chunk-NGP6LSV2.js";
@@ -229,7 +229,7 @@ import {
229
229
  assertEmployeeLimit,
230
230
  assertFeature,
231
231
  assertMemoryLimit
232
- } from "./chunk-IQSCZDBQ.js";
232
+ } from "./chunk-I5PIBL56.js";
233
233
  import {
234
234
  getProjectName
235
235
  } from "./chunk-OPU3NYOO.js";
@@ -242,7 +242,7 @@ import {
242
242
  isScheduledTrigger,
243
243
  loadTriggers,
244
244
  sanitizeParam
245
- } from "./chunk-AU5426YP.js";
245
+ } from "./chunk-B7JGEDVE.js";
246
246
  import {
247
247
  pushConversationToCRM
248
248
  } from "./chunk-ONKIWA3R.js";
@@ -262,10 +262,10 @@ import {
262
262
  loadEmployeesSync,
263
263
  saveEmployees,
264
264
  updateIdentity
265
- } from "./chunk-2H55BIV2.js";
265
+ } from "./chunk-CEJO7244.js";
266
266
  import {
267
267
  getMasterKey
268
- } from "./chunk-KDJRFJDL.js";
268
+ } from "./chunk-K333WOW4.js";
269
269
  import {
270
270
  checkForUpdate
271
271
  } from "./chunk-MZIGUUDQ.js";
@@ -278,11 +278,11 @@ import {
278
278
  readCachedLicenseToken,
279
279
  saveLicense,
280
280
  validateLicense
281
- } from "./chunk-D5C56WO3.js";
281
+ } from "./chunk-MOZ2YQ54.js";
282
282
  import {
283
283
  EXE_AI_DIR,
284
284
  loadConfig
285
- } from "./chunk-TRZ5KA2R.js";
285
+ } from "./chunk-VXIMSRTO.js";
286
286
 
287
287
  // src/mcp/register-tools.ts
288
288
  import { readFileSync as readFileSync8 } from "fs";
@@ -463,7 +463,7 @@ function registerRecallMyMemory(server) {
463
463
  let federatedCount = 0;
464
464
  if (!recent && query && results.length < FEDERATION_THRESHOLD) {
465
465
  try {
466
- const { searchCodeContextSemantic: searchCodeContextSemantic2 } = await import("./code-context-index-FCQOPUEA.js");
466
+ const { searchCodeContextSemantic: searchCodeContextSemantic2 } = await import("./code-context-index-UIYQRDHD.js");
467
467
  const codeResults = await Promise.race([
468
468
  searchCodeContextSemantic2(query, { limit: 5 }),
469
469
  new Promise((_, rej) => setTimeout(() => rej(new Error("timeout")), 2e3))
@@ -484,6 +484,11 @@ ${cr.content}`,
484
484
  }
485
485
  federatedCount = results.filter((r) => r.tool_name === "code_context").length;
486
486
  }
487
+ const resultLimit = Math.max(1, Number(limit ?? 10));
488
+ if (results.length > resultLimit) {
489
+ results = results.slice(0, resultLimit);
490
+ federatedCount = results.filter((r) => r.tool_name === "code_context").length;
491
+ }
487
492
  if (results.length === 0) {
488
493
  return {
489
494
  content: [
@@ -906,7 +911,7 @@ async function searchConversations(query, limit) {
906
911
  }
907
912
  async function searchWiki(query, limit) {
908
913
  try {
909
- const { createWikiClient, chatInWorkspace, listWorkspaces } = await import("./wiki-client-MAFYBXCQ.js");
914
+ const { createWikiClient, chatInWorkspace, listWorkspaces } = await import("./wiki-client-GBPR45BQ.js");
910
915
  const client = await createWikiClient();
911
916
  if (!client) return [];
912
917
  const workspaces = await listWorkspaces(client);
@@ -1453,7 +1458,7 @@ async function handleSupersede(input) {
1453
1458
  }
1454
1459
  try {
1455
1460
  const { getClient: getClient2 } = await import("./lib/database.js");
1456
- const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-55C5Y3XL.js");
1461
+ const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-KP2O52HA.js");
1457
1462
  const { writeMemory: writeMemory2, flushBatch: flushBatch2 } = await import("./lib/store.js");
1458
1463
  const { randomUUID: randomUUID2 } = await import("crypto");
1459
1464
  const client = getClient2();
@@ -1563,7 +1568,7 @@ function registerMemory(server) {
1563
1568
  return handleSupersede(input);
1564
1569
  }
1565
1570
  if (action === "update_working_memory" || action === "get_working_memory") {
1566
- const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-55C5Y3XL.js");
1571
+ const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-KP2O52HA.js");
1567
1572
  const { agentId } = getActiveAgent2();
1568
1573
  const { readWorkingMemory, writeWorkingMemory, WORKING_MEMORY_MAX_BYTES } = await import("./working-memory-PKUUMWZK.js");
1569
1574
  if (action === "get_working_memory") {
@@ -1580,9 +1585,9 @@ function registerMemory(server) {
1580
1585
  }
1581
1586
  }
1582
1587
  if (action === "core_get" || action === "core_set" || action === "core_delete") {
1583
- const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-55C5Y3XL.js");
1588
+ const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-KP2O52HA.js");
1584
1589
  const { agentId } = getActiveAgent2();
1585
- const { getCoreMemory, setCoreMemory, deleteCoreMemory, formatCoreMemoryBlock } = await import("./core-memory-VOBGGB2Q.js");
1590
+ const { getCoreMemory, setCoreMemory, deleteCoreMemory, formatCoreMemoryBlock } = await import("./core-memory-4KAIKQRQ.js");
1586
1591
  if (action === "core_get") {
1587
1592
  const entries = await getCoreMemory(agentId);
1588
1593
  const block = formatCoreMemoryBlock(entries);
@@ -1955,7 +1960,7 @@ function registerCloseTask(server) {
1955
1960
  async ({ task_id, result: result3, status: status2 }) => {
1956
1961
  const agent = getActiveAgent();
1957
1962
  try {
1958
- const { StewardGate: StewardGate2 } = await import("./steward-gate-7DWYS5AT.js");
1963
+ const { StewardGate: StewardGate2 } = await import("./steward-gate-L7DJMF4C.js");
1959
1964
  const steward = new StewardGate2();
1960
1965
  const gateDecision = await steward.checkAuthority(agent.agentId || "unknown", "close_task", task_id);
1961
1966
  if (!gateDecision.allowed) {
@@ -1978,14 +1983,10 @@ function registerCloseTask(server) {
1978
1983
  const { getClient: getClient2 } = await import("./lib/database.js");
1979
1984
  const client = getClient2();
1980
1985
  const mySession = resolveExeSession();
1981
- const scope = sessionScopeFilter(mySession);
1982
- const taskLookup = `(id = ? OR task_file LIKE ? OR title LIKE ?)`;
1983
- const taskLookupArgs = [task_id, `%${task_id}%`, `%${task_id}%`];
1984
- const preflight = await client.execute({
1985
- sql: `SELECT id, status, assigned_to, session_scope, created_at, title FROM tasks WHERE ${taskLookup} ${scope.sql} LIMIT 1`,
1986
- args: [...taskLookupArgs, ...scope.args]
1987
- });
1988
- if (preflight.rows.length === 0) {
1986
+ let row;
1987
+ try {
1988
+ row = await resolveTask(client, task_id, mySession);
1989
+ } catch {
1989
1990
  return {
1990
1991
  content: [{
1991
1992
  type: "text",
@@ -1994,7 +1995,6 @@ function registerCloseTask(server) {
1994
1995
  isError: true
1995
1996
  };
1996
1997
  }
1997
- const row = preflight.rows[0];
1998
1998
  const taskStatus = String(row.status);
1999
1999
  const assignee = row.assigned_to;
2000
2000
  const taskScope = row.session_scope;
@@ -2316,7 +2316,7 @@ function registerResumeEmployee(server) {
2316
2316
  };
2317
2317
  }
2318
2318
  try {
2319
- const { isTmuxSessionAlive } = await import("./tasks-crud-JXZEBZFR.js");
2319
+ const { isTmuxSessionAlive } = await import("./tasks-crud-DQOG2NPG.js");
2320
2320
  const now = (/* @__PURE__ */ new Date()).toISOString();
2321
2321
  for (const row of openTasks.rows) {
2322
2322
  const status2 = String(row.status);
@@ -2344,7 +2344,7 @@ function registerResumeEmployee(server) {
2344
2344
  }
2345
2345
  let checkpointInfo = "";
2346
2346
  try {
2347
- const { readLatestCheckpoint } = await import("./tasks-crud-JXZEBZFR.js");
2347
+ const { readLatestCheckpoint } = await import("./tasks-crud-DQOG2NPG.js");
2348
2348
  const checkpoint = await readLatestCheckpoint(agent_id);
2349
2349
  if (checkpoint) {
2350
2350
  const filesTouched = checkpoint.files_touched?.length > 0 ? checkpoint.files_touched.join(", ") : "none";
@@ -2704,7 +2704,7 @@ function registerTask(server) {
2704
2704
  const missing2 = missingRequiredFields2(args, REQUIRED_FIELDS2.create_group);
2705
2705
  if (missing2.length > 0) return errorResult2(`task action "create_group" missing required field(s): ${missing2.join(", ")}`);
2706
2706
  try {
2707
- const { createTaskGroup } = await import("./tasks-crud-JXZEBZFR.js");
2707
+ const { createTaskGroup } = await import("./tasks-crud-DQOG2NPG.js");
2708
2708
  const group = await createTaskGroup({
2709
2709
  title: args.title,
2710
2710
  coordinator: args.coordinator,
@@ -2723,7 +2723,7 @@ function registerTask(server) {
2723
2723
  const missing2 = missingRequiredFields2(args, REQUIRED_FIELDS2.group_status);
2724
2724
  if (missing2.length > 0) return errorResult2(`task action "group_status" missing required field(s): ${missing2.join(", ")}`);
2725
2725
  try {
2726
- const { getGroupStatus } = await import("./tasks-crud-JXZEBZFR.js");
2726
+ const { getGroupStatus } = await import("./tasks-crud-DQOG2NPG.js");
2727
2727
  const status2 = await getGroupStatus(args.group_id);
2728
2728
  return { content: [{ type: "text", text: JSON.stringify(status2, null, 2) }] };
2729
2729
  } catch (err) {
@@ -2735,7 +2735,7 @@ function registerTask(server) {
2735
2735
  const missing2 = missingRequiredFields2(args, REQUIRED_FIELDS2.group_results);
2736
2736
  if (missing2.length > 0) return errorResult2(`task action "group_results" missing required field(s): ${missing2.join(", ")}`);
2737
2737
  try {
2738
- const { getGroupResults } = await import("./tasks-crud-JXZEBZFR.js");
2738
+ const { getGroupResults } = await import("./tasks-crud-DQOG2NPG.js");
2739
2739
  const results = await getGroupResults(args.group_id);
2740
2740
  return { content: [{ type: "text", text: JSON.stringify(results, null, 2) }] };
2741
2741
  } catch (err) {
@@ -2963,7 +2963,7 @@ function registerMessage(server) {
2963
2963
  if (msgType && msgPayload) {
2964
2964
  try {
2965
2965
  const { buildTypedMessage, serializeMessage } = await import("./typed-messages-TKDGVPHS.js");
2966
- const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-55C5Y3XL.js");
2966
+ const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-KP2O52HA.js");
2967
2967
  const { sendMessage } = await import("./lib/messaging.js");
2968
2968
  const { agentId } = getActiveAgent2();
2969
2969
  const envelope = buildTypedMessage({
@@ -3059,6 +3059,14 @@ function registerListBehaviors(server) {
3059
3059
  conditions.push("(project_name IS NULL OR project_name = ?)");
3060
3060
  args.push(proj);
3061
3061
  }
3062
+ let currentDeviceId = null;
3063
+ try {
3064
+ const { loadDeviceId: loadDeviceId2 } = await import("./lib/license.js");
3065
+ currentDeviceId = loadDeviceId2() ?? null;
3066
+ } catch {
3067
+ }
3068
+ conditions.push("(device_id IS NULL OR device_id = ?)");
3069
+ args.push(currentDeviceId);
3062
3070
  const where = conditions.join(" AND ");
3063
3071
  const result3 = await client.execute({
3064
3072
  sql: `SELECT id, agent_id, project_name, domain, content, active, created_at, updated_at, created_by_agent, created_by_device, source_session_id, device_id
@@ -3580,8 +3588,8 @@ function registerIngestDocument(server) {
3580
3588
  },
3581
3589
  async (input) => {
3582
3590
  try {
3583
- const { assertFeature: assertFeature2 } = await import("./plan-limits-5O5QG55H.js");
3584
- const { assertMemoryLimit: assertMemoryLimit2 } = await import("./plan-limits-5O5QG55H.js");
3591
+ const { assertFeature: assertFeature2 } = await import("./plan-limits-DGIVM42H.js");
3592
+ const { assertMemoryLimit: assertMemoryLimit2 } = await import("./plan-limits-DGIVM42H.js");
3585
3593
  await assertFeature2("wiki");
3586
3594
  await assertMemoryLimit2();
3587
3595
  const result3 = await ingestDocument(input);
@@ -3652,8 +3660,8 @@ function registerPurgeDocument(server) {
3652
3660
  },
3653
3661
  async ({ document_id }) => {
3654
3662
  try {
3655
- const { StewardGate: StewardGate2 } = await import("./steward-gate-7DWYS5AT.js");
3656
- const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-55C5Y3XL.js");
3663
+ const { StewardGate: StewardGate2 } = await import("./steward-gate-L7DJMF4C.js");
3664
+ const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-KP2O52HA.js");
3657
3665
  const steward = new StewardGate2();
3658
3666
  const agent = getActiveAgent2();
3659
3667
  const gateDecision = await steward.checkAuthority(agent.agentId || "unknown", "purge_document", document_id);
@@ -4557,7 +4565,7 @@ function registerGateway(server) {
4557
4565
  'gateway action "configure_whatsapp" requires phone_number_id, access_token, and verify_token'
4558
4566
  );
4559
4567
  }
4560
- const { configureWhatsApp } = await import("./whatsapp-config-W63RQ3AU.js");
4568
+ const { configureWhatsApp } = await import("./whatsapp-config-GOSELKTE.js");
4561
4569
  const result3 = await configureWhatsApp({
4562
4570
  phoneNumberId,
4563
4571
  accessToken,
@@ -4578,7 +4586,7 @@ Phone: ${result3.phoneDisplay ?? "verified"}
4578
4586
  );
4579
4587
  }
4580
4588
  if (action === "whatsapp_status") {
4581
- const { getWhatsAppStatus } = await import("./whatsapp-config-W63RQ3AU.js");
4589
+ const { getWhatsAppStatus } = await import("./whatsapp-config-GOSELKTE.js");
4582
4590
  const status2 = getWhatsAppStatus();
4583
4591
  if (!status2.connected) {
4584
4592
  return okResult(
@@ -4898,8 +4906,8 @@ function registerMergeEntities(server) {
4898
4906
  },
4899
4907
  async ({ source_name, source_type, target_name, target_type }) => {
4900
4908
  try {
4901
- const { StewardGate: StewardGate2 } = await import("./steward-gate-7DWYS5AT.js");
4902
- const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-55C5Y3XL.js");
4909
+ const { StewardGate: StewardGate2 } = await import("./steward-gate-L7DJMF4C.js");
4910
+ const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-KP2O52HA.js");
4903
4911
  const steward = new StewardGate2();
4904
4912
  const agent = getActiveAgent2();
4905
4913
  const gateDecision = await steward.checkAuthority(agent.agentId || "unknown", "merge_entities", `${source_name}\u2192${target_name}`);
@@ -5777,7 +5785,7 @@ async function getAgentSessionLoad() {
5777
5785
  return { sessions: [], totalLive: 0, busySessions: 0, idleSessions: 0 };
5778
5786
  }
5779
5787
  const { getClient: getClient2 } = await import("./lib/database.js");
5780
- const { sessionScopeFilter: sessionScopeFilter2 } = await import("./task-scope-YHALISIB.js");
5788
+ const { sessionScopeFilter: sessionScopeFilter2 } = await import("./task-scope-R3XKBIHL.js");
5781
5789
  const client = getClient2();
5782
5790
  const scope = sessionScopeFilter2();
5783
5791
  for (const s of liveAgentSessions) {
@@ -5902,8 +5910,8 @@ ${mode} Applying repairs...
5902
5910
  `];
5903
5911
  if (!isDryRun) {
5904
5912
  try {
5905
- const { createBackup: createBackup2 } = await import("./db-backup-HLX5OLIV.js");
5906
- const backupPath = createBackup2("pre-fix");
5913
+ const { createBackup: createBackup2 } = await import("./db-backup-EWS52P2W.js");
5914
+ const backupPath = await createBackup2("pre-fix");
5907
5915
  if (backupPath) {
5908
5916
  fixLog.push(` Backup created: ${backupPath.split("/").pop()}`);
5909
5917
  }
@@ -7427,7 +7435,7 @@ function registerCreateTrigger(server) {
7427
7435
  }
7428
7436
  },
7429
7437
  async ({ name, event, conditions, actions, project, enabled, schedule, query }) => {
7430
- const { assertFeature: assertFeature2 } = await import("./plan-limits-5O5QG55H.js");
7438
+ const { assertFeature: assertFeature2 } = await import("./plan-limits-DGIVM42H.js");
7431
7439
  const gatedActions = {
7432
7440
  send_whatsapp: "external_agents",
7433
7441
  update_wiki: "wiki"
@@ -8336,7 +8344,7 @@ function registerConfig(server) {
8336
8344
  const existing = loadEmployeesSync2();
8337
8345
  if (existing.some((e) => e.name === employeeName)) return errorResult8(`Employee "${employeeName}" already exists.`);
8338
8346
  try {
8339
- const { assertEmployeeLimit: assertEmployeeLimit2 } = await import("./plan-limits-5O5QG55H.js");
8347
+ const { assertEmployeeLimit: assertEmployeeLimit2 } = await import("./plan-limits-DGIVM42H.js");
8340
8348
  await assertEmployeeLimit2();
8341
8349
  } catch (e) {
8342
8350
  return errorResult8(e instanceof Error ? e.message : "Employee limit reached.");
@@ -8377,7 +8385,7 @@ You are ${employeeName}. Role: ${role}.`, "utf-8");
8377
8385
  }
8378
8386
  try {
8379
8387
  const { generateSessionWrappers } = await import("./lib/session-wrappers.js");
8380
- const { resolvePackageRoot } = await import("./installer-HW74W3IT.js");
8388
+ const { resolvePackageRoot } = await import("./installer-RU6EVOBL.js");
8381
8389
  generateSessionWrappers(resolvePackageRoot());
8382
8390
  } catch {
8383
8391
  }
@@ -8413,7 +8421,7 @@ function registerListWikiPages(server) {
8413
8421
  }
8414
8422
  },
8415
8423
  async ({ workspace, folder }) => {
8416
- const { assertFeature: assertFeature2 } = await import("./plan-limits-5O5QG55H.js");
8424
+ const { assertFeature: assertFeature2 } = await import("./plan-limits-DGIVM42H.js");
8417
8425
  await assertFeature2("wiki");
8418
8426
  const apiUrl = process.env.EXE_WIKI_API_URL;
8419
8427
  const apiKey = process.env.EXE_WIKI_API_KEY;
@@ -8513,7 +8521,7 @@ function registerGetWikiPage(server) {
8513
8521
  }
8514
8522
  },
8515
8523
  async ({ workspace, document_id, title }) => {
8516
- const { assertFeature: assertFeature2 } = await import("./plan-limits-5O5QG55H.js");
8524
+ const { assertFeature: assertFeature2 } = await import("./plan-limits-DGIVM42H.js");
8517
8525
  await assertFeature2("wiki");
8518
8526
  const apiUrl = process.env.EXE_WIKI_API_URL;
8519
8527
  const apiKey = process.env.EXE_WIKI_API_KEY;
@@ -8691,10 +8699,10 @@ async function handleWikiSearch(input) {
8691
8699
  const userId = input.user_id;
8692
8700
  if (!workspace) return errorResult9('wiki action "search" requires workspace');
8693
8701
  if (!query) return errorResult9('wiki action "search" requires query');
8694
- const { assertFeature: assertFeature2 } = await import("./plan-limits-5O5QG55H.js");
8702
+ const { assertFeature: assertFeature2 } = await import("./plan-limits-DGIVM42H.js");
8695
8703
  await assertFeature2("wiki");
8696
8704
  if (userId) {
8697
- const { checkWikiAccess } = await import("./wiki-acl-M3OR547L.js");
8705
+ const { checkWikiAccess } = await import("./wiki-acl-MFLSS6DE.js");
8698
8706
  const { allowed } = await checkWikiAccess(String(userId), String(workspace), "read");
8699
8707
  if (!allowed) {
8700
8708
  return errorResult9(`Access denied: user "${userId}" does not have read access to workspace "${workspace}"`);
@@ -8770,7 +8778,7 @@ function registerWiki(server) {
8770
8778
  if (!legacyToolName) return errorResult9(`Unknown wiki action: ${String(input.action)}`);
8771
8779
  const { action: _action, user_id, ...legacyArgs } = input;
8772
8780
  if (user_id && legacyArgs.workspace) {
8773
- const { checkWikiAccess } = await import("./wiki-acl-M3OR547L.js");
8781
+ const { checkWikiAccess } = await import("./wiki-acl-MFLSS6DE.js");
8774
8782
  const { allowed } = await checkWikiAccess(
8775
8783
  String(user_id),
8776
8784
  String(legacyArgs.workspace),
@@ -9097,7 +9105,7 @@ Use /exe-forget to remove any that this supersedes.`;
9097
9105
  return { content: [{ type: "text", text: `Behavior not found: ${behavior_id}` }], isError: true };
9098
9106
  }
9099
9107
  const row2 = result4.rows[0];
9100
- const { reactivateBehavior: reactivateBehavior2 } = await import("./behaviors-6BGALYGW.js");
9108
+ const { reactivateBehavior: reactivateBehavior2 } = await import("./behaviors-BL3QCHBT.js");
9101
9109
  const wasReactivated = await reactivateBehavior2(behavior_id);
9102
9110
  if (!wasReactivated) {
9103
9111
  return { content: [{ type: "text", text: `Behavior ${behavior_id} is already active.` }] };
@@ -10036,7 +10044,7 @@ function registerWorkflowTool(server) {
10036
10044
  getWorkflowInstance,
10037
10045
  listWorkflowInstances,
10038
10046
  approveWorkflowStep
10039
- } = await import("./workflow-engine-OICYBE4F.js");
10047
+ } = await import("./workflow-engine-7X6LLH3M.js");
10040
10048
  try {
10041
10049
  switch (input.action) {
10042
10050
  case "create_workflow": {
@@ -10469,7 +10477,7 @@ function registerCreateBugReport(server) {
10469
10477
  const version = package_version ?? "unknown";
10470
10478
  let metricsSnapshot = "";
10471
10479
  try {
10472
- const { getOrchestrationMetrics, formatOrchestrationMetrics } = await import("./orchestration-events-IYTASMSN.js");
10480
+ const { getOrchestrationMetrics, formatOrchestrationMetrics } = await import("./orchestration-events-25WEKUKH.js");
10473
10481
  const sinceIso = new Date(Date.now() - 60 * 60 * 1e3).toISOString();
10474
10482
  const metrics = await getOrchestrationMetrics({ sinceIso });
10475
10483
  if (metrics.totalEvents > 0) {
@@ -11275,6 +11283,12 @@ function registerSupportTools(server) {
11275
11283
  const res = await fetch(endpoint2.toString(), { method: "GET", headers, signal: AbortSignal.timeout(15e3) });
11276
11284
  if (!res.ok) {
11277
11285
  const body = await res.text().catch(() => "");
11286
+ if (res.status === 500 || res.status === 404) {
11287
+ return {
11288
+ content: [{ type: "text", text: `Review listing not yet available upstream (HTTP ${res.status}). Reviews filed locally are in ~/.exe-os/reviews/. Use support(action='create_review') to file new reviews.` }],
11289
+ structuredContent: { items: [], count: 0 }
11290
+ };
11291
+ }
11278
11292
  return {
11279
11293
  content: [{ type: "text", text: `Failed to fetch reviews: HTTP ${res.status}${body ? ` \u2014 ${body}` : ""}` }],
11280
11294
  isError: true
@@ -11612,7 +11626,7 @@ function registerCodeContext(server) {
11612
11626
  const index = buildCodeContextIndex(opts);
11613
11627
  let graphExtract;
11614
11628
  try {
11615
- const { autoExtractGraphEntities } = await import("./graph-auto-extract-5TPT67GP.js");
11629
+ const { autoExtractGraphEntities } = await import("./graph-auto-extract-FP5C76LS.js");
11616
11630
  graphExtract = await autoExtractGraphEntities(opts.projectRoot);
11617
11631
  } catch {
11618
11632
  }
@@ -12092,7 +12106,7 @@ function registerCreateReview(server) {
12092
12106
  product: z96.string().optional().describe("Product: exe-os (default), exe-create, exe-wiki, exe-gateway, exe-crm, exe-build"),
12093
12107
  package_version: z96.string().optional().describe("Installed package version"),
12094
12108
  project_name: z96.string().optional().describe("Project/customer context"),
12095
- send_upstream: z96.boolean().default(true).describe("Attempt to POST to configured AskExe support endpoint")
12109
+ send_upstream: z96.boolean().default(false).describe("Attempt to POST to configured AskExe support endpoint (disabled by default \u2014 review route not yet live)")
12096
12110
  }
12097
12111
  },
12098
12112
  async ({
@@ -12656,10 +12670,10 @@ function registerDreaming(server) {
12656
12670
  if (action === "status") {
12657
12671
  const client = getClient();
12658
12672
  const result3 = await client.execute({
12659
- sql: `SELECT id, text, created_at FROM memories
12660
- WHERE agent_id = ? AND memory_type = 'observation' AND text LIKE 'DREAM CYCLE%'
12673
+ sql: `SELECT id, raw_text, timestamp FROM memories
12674
+ WHERE agent_id = ? AND memory_type = 'observation' AND raw_text LIKE 'DREAM CYCLE%'
12661
12675
  AND (status IS NULL OR status != 'deleted')
12662
- ORDER BY created_at DESC
12676
+ ORDER BY timestamp DESC
12663
12677
  LIMIT 1`,
12664
12678
  args: [agentId]
12665
12679
  });
@@ -12673,9 +12687,9 @@ function registerDreaming(server) {
12673
12687
  content: [{
12674
12688
  type: "text",
12675
12689
  text: `# Last Dream Cycle \u2014 ${agentId}
12676
- **Date:** ${String(row.created_at)}
12690
+ **Date:** ${String(row.timestamp)}
12677
12691
 
12678
- ${String(row.text)}`
12692
+ ${String(row.raw_text)}`
12679
12693
  }]
12680
12694
  };
12681
12695
  }
@@ -12683,10 +12697,10 @@ ${String(row.text)}`
12683
12697
  const maxResults = limit ?? 10;
12684
12698
  const client = getClient();
12685
12699
  const result3 = await client.execute({
12686
- sql: `SELECT id, text, created_at FROM memories
12687
- WHERE agent_id = ? AND memory_type = 'observation' AND text LIKE 'DREAM CYCLE%'
12700
+ sql: `SELECT id, raw_text, timestamp FROM memories
12701
+ WHERE agent_id = ? AND memory_type = 'observation' AND raw_text LIKE 'DREAM CYCLE%'
12688
12702
  AND (status IS NULL OR status != 'deleted')
12689
- ORDER BY created_at DESC
12703
+ ORDER BY timestamp DESC
12690
12704
  LIMIT ?`,
12691
12705
  args: [agentId, maxResults]
12692
12706
  });
@@ -12697,9 +12711,9 @@ ${String(row.text)}`
12697
12711
  }
12698
12712
  const lines = [`# Dream Cycle History \u2014 ${agentId}`, `${result3.rows.length} cycle(s)`, ""];
12699
12713
  for (const row of result3.rows) {
12700
- const fullText = String(row.text);
12714
+ const fullText = String(row.raw_text);
12701
12715
  const summary = fullText.split("\n").slice(0, 4).join(" | ");
12702
- lines.push(`- **${String(row.created_at)}**: ${summary}`);
12716
+ lines.push(`- **${String(row.timestamp)}**: ${summary}`);
12703
12717
  }
12704
12718
  return {
12705
12719
  content: [{ type: "text", text: lines.join("\n") }]
@@ -12876,7 +12890,7 @@ async function handleTrigger(limit) {
12876
12890
  if (rows.rows.length === 0) {
12877
12891
  return text3("No conversations found to re-process.");
12878
12892
  }
12879
- const { ingest } = await import("./pipeline-router-E4L5BDXN.js");
12893
+ const { ingest } = await import("./pipeline-router-S5PE5U6B.js");
12880
12894
  const results = [];
12881
12895
  for (const row of rows.rows) {
12882
12896
  const r = row;
@@ -12983,7 +12997,7 @@ function registerResonance(server) {
12983
12997
  }
12984
12998
  }, async ({ action, entity_id, limit }) => {
12985
12999
  try {
12986
- const { getHotPairs, getCoActivationNeighbors } = await import("./co-activation-VB4CJQZB.js");
13000
+ const { getHotPairs, getCoActivationNeighbors } = await import("./co-activation-L6I2LSJO.js");
12987
13001
  if (action === "hot_pairs") {
12988
13002
  const pairs = await getHotPairs(limit ?? 20);
12989
13003
  if (pairs.length === 0) return text4("No co-activation data yet. Pairs are recorded as memories are accessed together in searches.");
@@ -13031,7 +13045,7 @@ function registerPrediction(server) {
13031
13045
  resolvePrediction,
13032
13046
  getPredictions,
13033
13047
  getCalibrationStats
13034
- } = await import("./prediction-log-OMWHW7FL.js");
13048
+ } = await import("./prediction-log-DOEOHDHS.js");
13035
13049
  const agentId = input.agent_id || process.env.AGENT_ID || "unknown";
13036
13050
  switch (input.action) {
13037
13051
  case "log": {