@askexenow/exe-os 0.9.271 → 0.9.273

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 (562) hide show
  1. package/dist/active-agent-BDYXURXQ.js +26 -0
  2. package/dist/active-agent-YWBGAKGU.js +25 -0
  3. package/dist/agentic-ontology-56VHSVS3.js +25 -0
  4. package/dist/backfill-metadata-A3534S32.js +597 -0
  5. package/dist/backfill-metadata-B6F2KJJV.js +597 -0
  6. package/dist/backfill-metadata-BOM2MXLI.js +597 -0
  7. package/dist/backfill-metadata-G46ABBVR.js +597 -0
  8. package/dist/backfill-metadata-TAU33HJS.js +597 -0
  9. package/dist/backfill-metadata-VAV27KJK.js +597 -0
  10. package/dist/behaviors-USUTDXVA.js +25 -0
  11. package/dist/bin/agentic-ontology-backfill.js +5 -5
  12. package/dist/bin/agentic-reflection-backfill.js +6 -6
  13. package/dist/bin/agentic-semantic-label.js +5 -5
  14. package/dist/bin/backfill-conversations.js +4 -4
  15. package/dist/bin/backfill-responses.js +4 -4
  16. package/dist/bin/backfill-vectors.js +5 -5
  17. package/dist/bin/bulk-sync-postgres.js +6 -6
  18. package/dist/bin/cc-doctor.js +4 -4
  19. package/dist/bin/cleanup-stale-review-tasks.js +10 -10
  20. package/dist/bin/cli.js +16 -16
  21. package/dist/bin/exe-agent-config.js +3 -3
  22. package/dist/bin/exe-agent.js +4 -4
  23. package/dist/bin/exe-assign.js +5 -5
  24. package/dist/bin/exe-boot.js +17 -17
  25. package/dist/bin/exe-call.js +4 -4
  26. package/dist/bin/exe-cloud.js +4 -4
  27. package/dist/bin/exe-dispatch.js +10 -10
  28. package/dist/bin/exe-doctor.js +1 -1
  29. package/dist/bin/exe-export-behaviors.js +7 -7
  30. package/dist/bin/exe-forget.js +6 -6
  31. package/dist/bin/exe-gateway.js +7 -7
  32. package/dist/bin/exe-healthcheck.js +4 -4
  33. package/dist/bin/exe-heartbeat.js +10 -10
  34. package/dist/bin/exe-kill.js +13 -13
  35. package/dist/bin/exe-launch-agent.js +37 -19
  36. package/dist/bin/exe-new-employee.js +6 -6
  37. package/dist/bin/exe-pending-messages.js +11 -11
  38. package/dist/bin/exe-pending-notifications.js +33 -18
  39. package/dist/bin/exe-pending-reviews.js +10 -10
  40. package/dist/bin/exe-rename.js +4 -4
  41. package/dist/bin/exe-review.js +12 -12
  42. package/dist/bin/exe-search.js +5 -5
  43. package/dist/bin/exe-session-cleanup.js +15 -15
  44. package/dist/bin/exe-settings.js +5 -5
  45. package/dist/bin/exe-start-codex.js +11 -11
  46. package/dist/bin/exe-start-opencode.js +8 -8
  47. package/dist/bin/exe-status.js +11 -11
  48. package/dist/bin/exe-team.js +3 -3
  49. package/dist/bin/git-sweep.js +11 -11
  50. package/dist/bin/graph-backfill.js +4 -4
  51. package/dist/bin/graph-export.js +5 -5
  52. package/dist/bin/import-history.js +7 -7
  53. package/dist/bin/install.js +6 -6
  54. package/dist/bin/intercom-check.js +4 -4
  55. package/dist/bin/mcp-sessions.js +2 -2
  56. package/dist/bin/orchestration-metrics.js +4 -4
  57. package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
  58. package/dist/bin/postgres-agentic-semantic-backfill.js +1 -1
  59. package/dist/bin/scan-tasks.js +10 -10
  60. package/dist/bin/setup.js +1 -1
  61. package/dist/bin/shard-migrate.js +4 -4
  62. package/dist/capacity-monitor-2GJOFXGB.js +49 -0
  63. package/dist/capacity-monitor-3Z7W4K25.js +49 -0
  64. package/dist/capacity-monitor-BENS3N7B.js +49 -0
  65. package/dist/capacity-monitor-IFVRCIM7.js +49 -0
  66. package/dist/capacity-monitor-MQUUEZKB.js +49 -0
  67. package/dist/capacity-monitor-Q47GBDSY.js +49 -0
  68. package/dist/catchup-brief-B4KGAIPU.js +151 -0
  69. package/dist/catchup-brief-NMOV3SSP.js +151 -0
  70. package/dist/catchup-brief-RP4QHXNT.js +151 -0
  71. package/dist/catchup-brief-TKA6TEK4.js +151 -0
  72. package/dist/catchup-brief-VMF3ESTZ.js +151 -0
  73. package/dist/catchup-brief-ZL7V3BXC.js +151 -0
  74. package/dist/chunk-23KJ2LXY.js +58 -0
  75. package/dist/chunk-2KWVJV6I.js +171 -0
  76. package/dist/chunk-2NQQP3FF.js +630 -0
  77. package/dist/chunk-3A4SOC66.js +551 -0
  78. package/dist/chunk-3FU5I3KV.js +526 -0
  79. package/dist/chunk-3GSGDPLK.js +171 -0
  80. package/dist/chunk-3IM3JNQV.js +377 -0
  81. package/dist/chunk-3OM3V545.js +448 -0
  82. package/dist/chunk-3T27ZQT6.js +495 -0
  83. package/dist/chunk-3VI3QIHU.js +214 -0
  84. package/dist/chunk-3WG3RRWA.js +1345 -0
  85. package/dist/chunk-42A3JV3A.js +128 -0
  86. package/dist/chunk-46IEEKPU.js +13696 -0
  87. package/dist/chunk-46WLFLGP.js +1073 -0
  88. package/dist/chunk-4JMPQB7K.js +1148 -0
  89. package/dist/chunk-4L25LLQM.js +382 -0
  90. package/dist/chunk-4Q7X3SAM.js +204 -0
  91. package/dist/chunk-4UAUCFHA.js +526 -0
  92. package/dist/chunk-4VRJX2SP.js +495 -0
  93. package/dist/chunk-57RBAR2A.js +214 -0
  94. package/dist/chunk-57UAFTO2.js +3958 -0
  95. package/dist/chunk-5AS622MM.js +3958 -0
  96. package/dist/chunk-5JF5OQQU.js +89 -0
  97. package/dist/chunk-5LTY4GLX.js +13745 -0
  98. package/dist/chunk-5M5RYJ22.js +3955 -0
  99. package/dist/chunk-5YO2FER3.js +76 -0
  100. package/dist/chunk-62DEE65H.js +371 -0
  101. package/dist/chunk-62YI2JOC.js +333 -0
  102. package/dist/chunk-64T6DFSS.js +447 -0
  103. package/dist/chunk-6AGPWYFC.js +447 -0
  104. package/dist/chunk-6BWDP63Z.js +197 -0
  105. package/dist/chunk-6CH7TYBG.js +58 -0
  106. package/dist/chunk-6CHHFVRQ.js +284 -0
  107. package/dist/chunk-6D64562N.js +330 -0
  108. package/dist/chunk-6F35WOSR.js +447 -0
  109. package/dist/chunk-6GPYL7TX.js +214 -0
  110. package/dist/chunk-6HQ22FC6.js +81 -0
  111. package/dist/chunk-6KWLUVFL.js +54 -0
  112. package/dist/chunk-6N5ISWBF.js +1148 -0
  113. package/dist/chunk-6OD7PVMC.js +333 -0
  114. package/dist/chunk-6ZSH2BZR.js +244 -0
  115. package/dist/chunk-74MF4T3T.js +3962 -0
  116. package/dist/chunk-77H7IO3O.js +382 -0
  117. package/dist/chunk-7BUWNG6M.js +159 -0
  118. package/dist/chunk-7ET5CYTD.js +382 -0
  119. package/dist/chunk-7IWLKR6N.js +76 -0
  120. package/dist/chunk-7OEUOJL5.js +1021 -0
  121. package/dist/chunk-7YEQI2WF.js +13745 -0
  122. package/dist/chunk-AIRJTKDK.js +204 -0
  123. package/dist/chunk-AJ63GPM7.js +54 -0
  124. package/dist/chunk-ATJ3NXDP.js +244 -0
  125. package/dist/chunk-B5IS7LE4.js +128 -0
  126. package/dist/chunk-BFJ45HQT.js +244 -0
  127. package/dist/chunk-BKINEQVI.js +244 -0
  128. package/dist/chunk-BMHE3UQU.js +495 -0
  129. package/dist/chunk-BNTUZVPS.js +1921 -0
  130. package/dist/chunk-BOJV6NI3.js +128 -0
  131. package/dist/chunk-BPHWI6N2.js +284 -0
  132. package/dist/chunk-BXCQWWJP.js +185 -0
  133. package/dist/chunk-BZ6K7AY3.js +50 -0
  134. package/dist/chunk-C54KIFLS.js +214 -0
  135. package/dist/chunk-C6ODVGTC.js +818 -0
  136. package/dist/chunk-C6OYEJJI.js +260 -0
  137. package/dist/chunk-CHBGCQXG.js +333 -0
  138. package/dist/chunk-CHBHR5W6.js +3556 -0
  139. package/dist/chunk-CHUOANKE.js +346 -0
  140. package/dist/chunk-CSF4RUCN.js +58 -0
  141. package/dist/chunk-CXKHWCNN.js +204 -0
  142. package/dist/chunk-CZR6Z5D7.js +330 -0
  143. package/dist/chunk-D24ANCWY.js +204 -0
  144. package/dist/chunk-D2T3272U.js +171 -0
  145. package/dist/chunk-DBJCWK6T.js +377 -0
  146. package/dist/chunk-DCHEIVGT.js +221 -0
  147. package/dist/chunk-DF4SM6ZX.js +128 -0
  148. package/dist/chunk-DHIBLMSP.js +30 -0
  149. package/dist/chunk-DOAC6CLC.js +127 -0
  150. package/dist/chunk-DOGNJ4VR.js +818 -0
  151. package/dist/chunk-DYXJFUCI.js +818 -0
  152. package/dist/chunk-E2AF2WYY.js +346 -0
  153. package/dist/chunk-E2KZEZZW.js +1090 -0
  154. package/dist/chunk-E4KWB4WM.js +348 -0
  155. package/dist/chunk-EGR2NYID.js +50 -0
  156. package/dist/chunk-ENU7URWK.js +1073 -0
  157. package/dist/chunk-EQ5UBJGX.js +81 -0
  158. package/dist/chunk-EZ7KAZMC.js +132 -0
  159. package/dist/chunk-F4FSSHR4.js +1073 -0
  160. package/dist/chunk-FBRQGHSU.js +377 -0
  161. package/dist/chunk-FPXU56FG.js +346 -0
  162. package/dist/chunk-FY7HHR5I.js +128 -0
  163. package/dist/chunk-FZ42OCSP.js +333 -0
  164. package/dist/chunk-G2S2UMU4.js +159 -0
  165. package/dist/chunk-G33BHQCO.js +70 -0
  166. package/dist/chunk-G5HWDSBH.js +50 -0
  167. package/dist/chunk-GCBG5TFS.js +1345 -0
  168. package/dist/chunk-GESN6IDC.js +127 -0
  169. package/dist/chunk-GHD7QG6P.js +58 -0
  170. package/dist/chunk-GJAILPCX.js +171 -0
  171. package/dist/chunk-GJQTL7RX.js +127 -0
  172. package/dist/chunk-GKUODJS7.js +214 -0
  173. package/dist/chunk-GLCKDEM2.js +97 -0
  174. package/dist/chunk-GLDM2FOM.js +76 -0
  175. package/dist/chunk-GMA34SXV.js +240 -0
  176. package/dist/chunk-GMM2BLFB.js +127 -0
  177. package/dist/chunk-GNM75IOI.js +159 -0
  178. package/dist/chunk-GVAVEBYR.js +2091 -0
  179. package/dist/chunk-GYIX2HLD.js +81 -0
  180. package/dist/chunk-H4LLEQ3F.js +551 -0
  181. package/dist/chunk-HBVCBBDA.js +127 -0
  182. package/dist/chunk-HBYRWOH5.js +171 -0
  183. package/dist/chunk-HFINM2JG.js +284 -0
  184. package/dist/chunk-HJGHALOG.js +1345 -0
  185. package/dist/chunk-HOSJTLBQ.js +513 -0
  186. package/dist/chunk-HRB5CP43.js +13745 -0
  187. package/dist/chunk-IC6HVAS3.js +56 -0
  188. package/dist/chunk-IDCLPPIM.js +3959 -0
  189. package/dist/chunk-IDFJNO44.js +1051 -0
  190. package/dist/chunk-II5SVNBN.js +551 -0
  191. package/dist/chunk-IIRLKWNZ.js +50 -0
  192. package/dist/chunk-ILFJMEY5.js +97 -0
  193. package/dist/chunk-IQXLUTWC.js +50 -0
  194. package/dist/chunk-ISQAOSL3.js +1921 -0
  195. package/dist/chunk-IWXTFDLS.js +244 -0
  196. package/dist/chunk-J2TGVCPE.js +1090 -0
  197. package/dist/chunk-J4Z5GAJ4.js +551 -0
  198. package/dist/chunk-J6V2DCZK.js +382 -0
  199. package/dist/chunk-JJSDZFKM.js +1148 -0
  200. package/dist/chunk-JMN2KOC4.js +128 -0
  201. package/dist/chunk-JP4CLFLR.js +1148 -0
  202. package/dist/chunk-JQVYPBR2.js +81 -0
  203. package/dist/chunk-JTIOZHWG.js +58 -0
  204. package/dist/chunk-KDICWAYV.js +1345 -0
  205. package/dist/chunk-KMU7PFO3.js +1148 -0
  206. package/dist/chunk-KOBIB6WG.js +159 -0
  207. package/dist/chunk-KQFDDQB6.js +13696 -0
  208. package/dist/chunk-KZNSOHCB.js +280 -0
  209. package/dist/chunk-LDDCAATQ.js +1090 -0
  210. package/dist/chunk-LJN2O5IG.js +197 -0
  211. package/dist/chunk-LSIYHKDS.js +54 -0
  212. package/dist/chunk-LVMBYP3C.js +171 -0
  213. package/dist/chunk-M2WQW5NC.js +227 -0
  214. package/dist/chunk-MREDKOS4.js +731 -0
  215. package/dist/chunk-MSF2Y5MS.js +346 -0
  216. package/dist/chunk-MY647ZHR.js +448 -0
  217. package/dist/chunk-MY6SP5NZ.js +551 -0
  218. package/dist/chunk-MZ5CEHPQ.js +89 -0
  219. package/dist/chunk-N2ACW2ZG.js +363 -0
  220. package/dist/chunk-NESTX6DR.js +76 -0
  221. package/dist/chunk-NQZORF6L.js +731 -0
  222. package/dist/chunk-NSMJDATI.js +495 -0
  223. package/dist/chunk-NSQ5JE23.js +1090 -0
  224. package/dist/chunk-NWEFAFJS.js +197 -0
  225. package/dist/chunk-NYF7GHC5.js +526 -0
  226. package/dist/chunk-NZGGRM4P.js +731 -0
  227. package/dist/chunk-NZL567WG.js +81 -0
  228. package/dist/chunk-NZM4E6Y3.js +89 -0
  229. package/dist/chunk-O5OMH6LI.js +244 -0
  230. package/dist/chunk-O6XF6NUN.js +1090 -0
  231. package/dist/chunk-OBUV3W7L.js +163 -0
  232. package/dist/chunk-OF4KG3L7.js +1090 -0
  233. package/dist/chunk-OLDS7LJN.js +495 -0
  234. package/dist/chunk-OO2I22RX.js +38 -0
  235. package/dist/chunk-OPUUT33V.js +447 -0
  236. package/dist/chunk-OQZPSWVN.js +526 -0
  237. package/dist/chunk-OR6KJ5HH.js +58 -0
  238. package/dist/chunk-OT3VMTKB.js +50 -0
  239. package/dist/chunk-OV6NT6QX.js +128 -0
  240. package/dist/chunk-P6RVIOVA.js +157 -0
  241. package/dist/chunk-PDTR3YUU.js +54 -0
  242. package/dist/chunk-PEGTV6EJ.js +1345 -0
  243. package/dist/chunk-PITVTSQW.js +333 -0
  244. package/dist/chunk-PSUAO4MZ.js +345 -0
  245. package/dist/chunk-PUA5564C.js +210 -0
  246. package/dist/chunk-PUQLKLQX.js +731 -0
  247. package/dist/chunk-PWQIS5E5.js +382 -0
  248. package/dist/chunk-PXXHKWDH.js +818 -0
  249. package/dist/chunk-QOC46BDY.js +346 -0
  250. package/dist/chunk-QROKS65G.js +76 -0
  251. package/dist/chunk-R54I2N2T.js +818 -0
  252. package/dist/chunk-RCFYQHUP.js +818 -0
  253. package/dist/chunk-RJTND4YS.js +284 -0
  254. package/dist/chunk-RTA6KSSK.js +89 -0
  255. package/dist/chunk-SBLHQMMZ.js +81 -0
  256. package/dist/chunk-SBX6HSEO.js +159 -0
  257. package/dist/chunk-SEUST6U5.js +284 -0
  258. package/dist/chunk-SG2ANG5C.js +123 -0
  259. package/dist/chunk-SUEQF3ZS.js +214 -0
  260. package/dist/chunk-SVFNKSZV.js +333 -0
  261. package/dist/chunk-SWNAM2NW.js +526 -0
  262. package/dist/chunk-TAQT2DC7.js +330 -0
  263. package/dist/chunk-TB7HFW7M.js +127 -0
  264. package/dist/chunk-TBJP46RP.js +1148 -0
  265. package/dist/chunk-TS7NGPU4.js +1073 -0
  266. package/dist/chunk-TUPDOPMG.js +731 -0
  267. package/dist/chunk-TYKUZVCA.js +1921 -0
  268. package/dist/chunk-TZMXJVZV.js +345 -0
  269. package/dist/chunk-U2DCN7M6.js +1073 -0
  270. package/dist/chunk-UJZPLZLU.js +197 -0
  271. package/dist/chunk-UKRKOJQZ.js +54 -0
  272. package/dist/chunk-UUKDAIH2.js +731 -0
  273. package/dist/chunk-V6VEFEEH.js +1345 -0
  274. package/dist/chunk-VCVGE7HK.js +1921 -0
  275. package/dist/chunk-VIO2ALGH.js +290 -0
  276. package/dist/chunk-VK6YZ6K7.js +1073 -0
  277. package/dist/chunk-VKCUSNJW.js +377 -0
  278. package/dist/chunk-VKT4N6WM.js +495 -0
  279. package/dist/chunk-VQUEP7UA.js +244 -0
  280. package/dist/chunk-VRPPJFIQ.js +1921 -0
  281. package/dist/chunk-VXODHQXB.js +377 -0
  282. package/dist/chunk-WHK7GXFR.js +13745 -0
  283. package/dist/chunk-WP3PVBBP.js +204 -0
  284. package/dist/chunk-WQEUY7DC.js +129 -0
  285. package/dist/chunk-WWPJTPPQ.js +197 -0
  286. package/dist/chunk-WXMXUKCA.js +262 -0
  287. package/dist/chunk-WYZSWV6A.js +346 -0
  288. package/dist/chunk-X2WBH2IO.js +297 -0
  289. package/dist/chunk-X33TSJNO.js +394 -0
  290. package/dist/chunk-X7MMI2UI.js +89 -0
  291. package/dist/chunk-XD6VOXK3.js +159 -0
  292. package/dist/chunk-XG3BQZIK.js +85 -0
  293. package/dist/chunk-XIKBIAOS.js +75 -0
  294. package/dist/chunk-XPEB545Q.js +54 -0
  295. package/dist/chunk-XWH2MLWS.js +330 -0
  296. package/dist/chunk-YH7V73XW.js +89 -0
  297. package/dist/chunk-YHSATGMH.js +3955 -0
  298. package/dist/chunk-YJBCGD46.js +13745 -0
  299. package/dist/chunk-YLOJPYCJ.js +284 -0
  300. package/dist/chunk-YMLM5D65.js +135 -0
  301. package/dist/chunk-YNJPRQ6J.js +377 -0
  302. package/dist/chunk-YSNEHBI6.js +551 -0
  303. package/dist/chunk-Z33XSFND.js +76 -0
  304. package/dist/chunk-ZA7N3ZTA.js +1921 -0
  305. package/dist/chunk-ZD6BMW2K.js +33 -0
  306. package/dist/chunk-ZFRG2MNB.js +382 -0
  307. package/dist/chunk-ZKG5IYCG.js +668 -0
  308. package/dist/chunk-ZRRRSVQF.js +204 -0
  309. package/dist/chunk-ZU4K7ZNX.js +197 -0
  310. package/dist/co-activation-HZMJC34P.js +72 -0
  311. package/dist/co-occurrence-AVYXRV4L.js +74 -0
  312. package/dist/core-memory-554Q3YN5.js +110 -0
  313. package/dist/core-memory-BC4YN5F4.js +110 -0
  314. package/dist/core-memory-NID6R3YR.js +110 -0
  315. package/dist/core-memory-NPJCVUMF.js +110 -0
  316. package/dist/core-memory-OKGXL33Z.js +110 -0
  317. package/dist/core-memory-XHIC5NAB.js +110 -0
  318. package/dist/crdt-sync-ZCH55JNR.js +33 -0
  319. package/dist/crm-webhook-6OMVUUGR.js +10 -0
  320. package/dist/crm-webhook-MHZTXU5N.js +10 -0
  321. package/dist/crm-webhook-TMWJT2Z5.js +10 -0
  322. package/dist/crm-webhook-UCWF3XDB.js +10 -0
  323. package/dist/crm-webhook-XISULXI7.js +10 -0
  324. package/dist/crm-webhook-YJ5A7F2E.js +10 -0
  325. package/dist/cto-delegation-gate-4PMJZL2T.js +206 -0
  326. package/dist/cto-delegation-gate-A7YKXTRO.js +206 -0
  327. package/dist/cto-delegation-gate-JFZFZGC2.js +206 -0
  328. package/dist/cto-delegation-gate-K32M4GVM.js +206 -0
  329. package/dist/cto-delegation-gate-OREBAHUM.js +206 -0
  330. package/dist/cto-delegation-gate-POHESML5.js +206 -0
  331. package/dist/daemon-orchestration-2Q7BYOHC.js +135 -0
  332. package/dist/daemon-orchestration-4RJ2CZJL.js +135 -0
  333. package/dist/daemon-orchestration-HXYPHSYU.js +135 -0
  334. package/dist/daemon-orchestration-I5BE46P3.js +135 -0
  335. package/dist/daemon-orchestration-NKE4FYQS.js +135 -0
  336. package/dist/daemon-orchestration-YWEXRAZA.js +135 -0
  337. package/dist/db-backup-5GA2YFDX.js +33 -0
  338. package/dist/dreaming-3F72ROTL.js +32 -0
  339. package/dist/dreaming-I6KXO6E2.js +32 -0
  340. package/dist/dreaming-JD7MNJGS.js +32 -0
  341. package/dist/dreaming-LCKPA3B4.js +32 -0
  342. package/dist/dreaming-NJBK5ILR.js +32 -0
  343. package/dist/dreaming-SDS5IQYC.js +32 -0
  344. package/dist/exe-drift-VSMIMHL4.js +68 -0
  345. package/dist/exe-export-DVHHIA6Y.js +73 -0
  346. package/dist/exe-export-GIVQDENS.js +73 -0
  347. package/dist/exe-export-IZ2OYMT4.js +73 -0
  348. package/dist/exe-export-JNWX6ZCQ.js +73 -0
  349. package/dist/exe-export-OQXCJLWB.js +73 -0
  350. package/dist/exe-export-YLVAZQAV.js +73 -0
  351. package/dist/exe-import-7N46LSMQ.js +76 -0
  352. package/dist/exe-import-AEJYBLA7.js +76 -0
  353. package/dist/exe-import-FINYUV5T.js +76 -0
  354. package/dist/exe-import-HWPYARCG.js +76 -0
  355. package/dist/exe-import-K4TWTG24.js +76 -0
  356. package/dist/exe-import-LZKZQ54C.js +76 -0
  357. package/dist/exe-key-6FPQHBW6.js +579 -0
  358. package/dist/exe-key-H45JY44F.js +579 -0
  359. package/dist/exe-key-MAEQGTB7.js +579 -0
  360. package/dist/exe-key-N3XYSEXP.js +579 -0
  361. package/dist/exe-key-Q3ZNYT6L.js +579 -0
  362. package/dist/exe-key-Q47RPB45.js +579 -0
  363. package/dist/exe-snapshot-2USE2HHM.js +164 -0
  364. package/dist/exe-snapshot-3TEM3BFD.js +164 -0
  365. package/dist/exe-snapshot-HECGUHL3.js +164 -0
  366. package/dist/exe-snapshot-HZU66HXX.js +164 -0
  367. package/dist/exe-snapshot-L7OQWZUH.js +164 -0
  368. package/dist/exe-snapshot-X5N5KIVJ.js +164 -0
  369. package/dist/fast-db-init-3CNTADVO.js +7 -0
  370. package/dist/fast-db-init-C6IPNVPU.js +7 -0
  371. package/dist/fast-db-init-HXCS2AP5.js +7 -0
  372. package/dist/fast-db-init-I7CMGBAN.js +7 -0
  373. package/dist/fast-db-init-P6YESOUL.js +7 -0
  374. package/dist/fast-db-init-VDNEFVQF.js +7 -0
  375. package/dist/gateway/index.js +8 -8
  376. package/dist/git-staleness-YCEBBIVK.js +110 -0
  377. package/dist/git-task-sweep-C4OV2CEY.js +40 -0
  378. package/dist/git-task-sweep-H34STRNT.js +40 -0
  379. package/dist/git-task-sweep-J66SYJMW.js +40 -0
  380. package/dist/git-task-sweep-JYCD3ZKQ.js +40 -0
  381. package/dist/git-task-sweep-O723DB7F.js +40 -0
  382. package/dist/git-task-sweep-YL7NLDCK.js +40 -0
  383. package/dist/global-procedures-IHZM6C2K.js +20 -0
  384. package/dist/graph-auto-extract-RZQ3MHP2.js +162 -0
  385. package/dist/hooks/bug-report-worker.js +12 -12
  386. package/dist/hooks/codex-stop-task-finalizer.js +12 -12
  387. package/dist/hooks/commit-complete.js +12 -12
  388. package/dist/hooks/error-recall.js +6 -6
  389. package/dist/hooks/exe-heartbeat-hook.js +3 -3
  390. package/dist/hooks/ingest.js +6 -6
  391. package/dist/hooks/instructions-loaded.js +4 -4
  392. package/dist/hooks/manifest.json +19 -19
  393. package/dist/hooks/notification.js +4 -4
  394. package/dist/hooks/post-compact.js +11 -11
  395. package/dist/hooks/post-tool-combined.js +5 -5
  396. package/dist/hooks/pre-compact.js +12 -12
  397. package/dist/hooks/pre-tool-use.js +15 -15
  398. package/dist/hooks/prompt-submit.js +21 -21
  399. package/dist/hooks/session-end.js +16 -16
  400. package/dist/hooks/session-start.js +10 -10
  401. package/dist/hooks/stop.js +15 -15
  402. package/dist/hooks/subagent-stop.js +11 -11
  403. package/dist/hooks/summary-worker.js +15 -15
  404. package/dist/index.js +18 -18
  405. package/dist/installer-4EW5ZDGD.js +296 -0
  406. package/dist/installer-B2JTQO55.js +38 -0
  407. package/dist/installer-MIL352T7.js +342 -0
  408. package/dist/lib/agent-config.js +9 -3
  409. package/dist/lib/cloud-sync.js +4 -4
  410. package/dist/lib/consolidation.js +5 -5
  411. package/dist/lib/database.js +2 -2
  412. package/dist/lib/db.js +2 -2
  413. package/dist/lib/employee-templates.js +4 -4
  414. package/dist/lib/employees.js +2 -2
  415. package/dist/lib/exe-daemon.js +35 -34
  416. package/dist/lib/hybrid-search.js +5 -5
  417. package/dist/lib/identity.js +2 -2
  418. package/dist/lib/messaging.js +12 -10
  419. package/dist/lib/reminders.js +3 -3
  420. package/dist/lib/schedules.js +5 -5
  421. package/dist/lib/session-registry.js +4 -4
  422. package/dist/lib/skill-learning.js +4 -4
  423. package/dist/lib/store.js +4 -4
  424. package/dist/lib/task-router.js +3 -3
  425. package/dist/lib/tasks.js +11 -11
  426. package/dist/lib/tmux-routing.js +9 -9
  427. package/dist/lib/token-spend.js +3 -3
  428. package/dist/mcp/register-tools.js +54 -54
  429. package/dist/mcp/server.js +55 -55
  430. package/dist/mcp/tools/complete-reminder.js +4 -4
  431. package/dist/mcp/tools/create-reminder.js +4 -4
  432. package/dist/mcp/tools/create-task.js +13 -13
  433. package/dist/mcp/tools/deactivate-behavior.js +5 -5
  434. package/dist/mcp/tools/list-reminders.js +4 -4
  435. package/dist/mcp/tools/list-tasks.js +13 -13
  436. package/dist/mcp/tools/send-message.js +12 -12
  437. package/dist/mcp/tools/update-task.js +12 -12
  438. package/dist/mcp-http-config-OJQR246S.js +27 -0
  439. package/dist/memory-cards-IPULSQFA.js +174 -0
  440. package/dist/memory-graph-extractor-3TZZOKHY.js +17 -0
  441. package/dist/memory-poisoning-defense-SGUGR5YJ.js +225 -0
  442. package/dist/memory-reflection-H3WGCEM6.js +238 -0
  443. package/dist/notifications-65STXW6N.js +45 -0
  444. package/dist/notifications-K3JDUPL5.js +45 -0
  445. package/dist/notifications-KQOD66ZK.js +45 -0
  446. package/dist/notifications-PFK5OQEF.js +45 -0
  447. package/dist/notifications-VWPO6NJF.js +45 -0
  448. package/dist/notifications-WCSRQN2V.js +45 -0
  449. package/dist/orchestration-events-O5PSDEIO.js +25 -0
  450. package/dist/orchestrator-3D7QEVGP.js +33 -0
  451. package/dist/orchestrator-CC32RZO5.js +33 -0
  452. package/dist/orchestrator-DWAYSAFR.js +33 -0
  453. package/dist/orchestrator-RAPEJUOI.js +33 -0
  454. package/dist/orchestrator-TL37EAWA.js +33 -0
  455. package/dist/orchestrator-XPG6LJAI.js +33 -0
  456. package/dist/pipeline-router-5NT6FUC3.js +13 -0
  457. package/dist/pipeline-router-ADLTS6DZ.js +13 -0
  458. package/dist/pipeline-router-KSUXONDT.js +13 -0
  459. package/dist/pipeline-router-O6ZLSM6U.js +13 -0
  460. package/dist/pipeline-router-QKLYUYU7.js +13 -0
  461. package/dist/pipeline-router-W2W5XDND.js +13 -0
  462. package/dist/plan-limits-53NXLNDQ.js +26 -0
  463. package/dist/project-boot-ITN3FZMM.js +299 -0
  464. package/dist/projection-worker-27XX5M2W.js +964 -0
  465. package/dist/reranker-3KLYAHO4.js +19 -0
  466. package/dist/reranker-64KDRYPP.js +19 -0
  467. package/dist/reranker-GU7L2PJX.js +19 -0
  468. package/dist/reranker-MGY5A7BQ.js +19 -0
  469. package/dist/reranker-TZEXIJAN.js +19 -0
  470. package/dist/reranker-ZBX6HSU2.js +19 -0
  471. package/dist/review-polling-3ZZ2T26N.js +124 -0
  472. package/dist/review-polling-BBQUF54Q.js +124 -0
  473. package/dist/review-polling-FA2J2Q5O.js +124 -0
  474. package/dist/review-polling-MLS4BQ3N.js +124 -0
  475. package/dist/review-polling-RXQZPGRY.js +124 -0
  476. package/dist/review-polling-YBB6DKA5.js +124 -0
  477. package/dist/runtime/index.js +12 -12
  478. package/dist/session-events-EAODNMNR.js +36 -0
  479. package/dist/session-events-MVO6JNUL.js +36 -0
  480. package/dist/session-events-PRVDH3QS.js +36 -0
  481. package/dist/session-events-PU5OQKMB.js +36 -0
  482. package/dist/session-events-WWGF3B2N.js +36 -0
  483. package/dist/session-events-ZHXXAH6B.js +36 -0
  484. package/dist/session-kill-telemetry-O4TJHHOZ.js +29 -0
  485. package/dist/session-scope-CQXB7VMH.js +86 -0
  486. package/dist/session-scope-HHUMJYF6.js +86 -0
  487. package/dist/session-scope-M47JR2SD.js +86 -0
  488. package/dist/session-scope-MRQYSD5S.js +86 -0
  489. package/dist/session-scope-TAH5BUYW.js +86 -0
  490. package/dist/session-scope-UXZ6RUWC.js +86 -0
  491. package/dist/setup-wizard-UM2RHSBJ.js +12 -0
  492. package/dist/skill-refinement-447DZWNK.js +157 -0
  493. package/dist/skill-refinement-567JSF7L.js +157 -0
  494. package/dist/skill-refinement-6JVQ3TMS.js +157 -0
  495. package/dist/skill-refinement-MJPOHYD5.js +157 -0
  496. package/dist/skill-refinement-NVUBRK22.js +157 -0
  497. package/dist/skill-refinement-XNGD3C62.js +157 -0
  498. package/dist/stack-release-BAPCXMXW.js +713 -0
  499. package/dist/stack-release-W4TWTEZP.js +731 -0
  500. package/dist/steward-gate-VLE7OCKO.js +13 -0
  501. package/dist/task-enforcement-AZEO67N6.js +391 -0
  502. package/dist/task-enforcement-EOYP6IO4.js +391 -0
  503. package/dist/task-enforcement-FUHDL6UR.js +391 -0
  504. package/dist/task-enforcement-L5XQKFOV.js +391 -0
  505. package/dist/task-enforcement-QL3K4N3F.js +391 -0
  506. package/dist/task-enforcement-RJPWWEAE.js +391 -0
  507. package/dist/task-scope-DRQRNWB7.js +35 -0
  508. package/dist/task-scope-GS7TS3UV.js +35 -0
  509. package/dist/task-scope-KQNCP42W.js +35 -0
  510. package/dist/task-scope-SM5F6RD3.js +35 -0
  511. package/dist/task-scope-TZYMB634.js +35 -0
  512. package/dist/task-scope-ZVLUBS4C.js +35 -0
  513. package/dist/tasks-crud-4MSLJWXE.js +77 -0
  514. package/dist/tasks-crud-6TWWETGB.js +77 -0
  515. package/dist/tasks-crud-DBHYO4MM.js +77 -0
  516. package/dist/tasks-crud-EFYWPPEI.js +77 -0
  517. package/dist/tasks-crud-HIPXKRKX.js +77 -0
  518. package/dist/tasks-crud-JIS5B4GZ.js +77 -0
  519. package/dist/tasks-notify-7JBUNE7R.js +38 -0
  520. package/dist/tasks-notify-GEJKT5TO.js +38 -0
  521. package/dist/tasks-notify-OW3JDPLK.js +38 -0
  522. package/dist/tasks-notify-UPIJ3L4O.js +38 -0
  523. package/dist/tasks-notify-W5WVP2FG.js +38 -0
  524. package/dist/tasks-notify-YKEOYOKN.js +38 -0
  525. package/dist/tasks-review-5SJSFTUB.js +47 -0
  526. package/dist/tasks-review-DRKN34HO.js +47 -0
  527. package/dist/tasks-review-IQSAXXXE.js +47 -0
  528. package/dist/tasks-review-JHSYBR5I.js +47 -0
  529. package/dist/tasks-review-KWELLLS3.js +47 -0
  530. package/dist/tasks-review-SUJ6AKAS.js +47 -0
  531. package/dist/telemetry-upload-BSGOXGUP.js +739 -0
  532. package/dist/telemetry-upload-FPQAB6ZU.js +739 -0
  533. package/dist/telemetry-upload-LTX3C5HZ.js +739 -0
  534. package/dist/telemetry-upload-MYVBVUGE.js +739 -0
  535. package/dist/telemetry-upload-UPAABLGK.js +739 -0
  536. package/dist/telemetry-upload-UYEHBFGO.js +739 -0
  537. package/dist/token-budget-2CDWQU3Q.js +84 -0
  538. package/dist/tool-telemetry-7YS7EN7B.js +17 -0
  539. package/dist/tui/App.js +17 -17
  540. package/dist/tui-data-GDGBOS6G.js +258 -0
  541. package/dist/tui-data-LYUZFNO4.js +258 -0
  542. package/dist/tui-data-QM5BOKRF.js +258 -0
  543. package/dist/tui-data-VAE43SM3.js +258 -0
  544. package/dist/tui-data-VXF2RBVM.js +258 -0
  545. package/dist/tui-data-X7HT3FXF.js +258 -0
  546. package/dist/wiki-acl-MJIMXRQV.js +111 -0
  547. package/dist/worker-gate-BZBWTMCY.js +21 -0
  548. package/dist/worker-gate-CHVL6UGT.js +21 -0
  549. package/dist/worker-gate-KQFS4RJE.js +21 -0
  550. package/dist/worker-gate-NRP7CMS7.js +21 -0
  551. package/dist/worker-gate-WQGTZOSM.js +21 -0
  552. package/dist/worker-gate-X2YDTKTL.js +21 -0
  553. package/dist/workflow-engine-AKKOMJJQ.js +28 -0
  554. package/dist/workflow-engine-CYXRZXBM.js +28 -0
  555. package/dist/workflow-engine-EHWQO3LX.js +28 -0
  556. package/dist/workflow-engine-I3OUMSF4.js +28 -0
  557. package/dist/workflow-engine-KMLAXVA4.js +28 -0
  558. package/dist/workflow-engine-PHTLEAXP.js +28 -0
  559. package/dist/worktree-NLSKVRNC.js +26 -0
  560. package/dist/worktree-sweep-44TMEPLE.js +19 -0
  561. package/package.json +1 -1
  562. package/release-notes.json +46 -35
@@ -0,0 +1,81 @@
1
+ // src/bin/fast-db-init.ts
2
+ async function fastDbInit() {
3
+ const { isInitialized, getClient, setExternalClient } = await import("./lib/database.js");
4
+ if (isInitialized()) {
5
+ return getClient();
6
+ }
7
+ const forceDirect = process.env.EXE_DB_DIRECT === "1" || process.env.EXE_DB_READONLY === "1" || process.env.EXE_SKIP_DAEMON === "1";
8
+ if (!forceDirect) {
9
+ try {
10
+ const { connectEmbedDaemon, sendDaemonRequest, isClientConnected, disconnectClient } = await import("./lib/exe-daemon-client.js");
11
+ const { deserializeResultSet } = await import("./daemon-protocol-XW2OLNBS.js");
12
+ await Promise.race([
13
+ connectEmbedDaemon(),
14
+ new Promise((_, reject) => setTimeout(() => reject(new Error("Daemon socket timeout (2s)")), 2e3))
15
+ ]);
16
+ if (isClientConnected()) {
17
+ const daemonClient = {
18
+ async execute(stmt) {
19
+ const sql = typeof stmt === "string" ? stmt : stmt.sql;
20
+ const args = typeof stmt === "string" ? [] : Array.isArray(stmt.args) ? stmt.args : [];
21
+ const resp = await sendDaemonRequest({ type: "db-execute", sql, args });
22
+ if (resp.error) throw new Error(String(resp.error));
23
+ if (resp.db) return deserializeResultSet(resp.db);
24
+ throw new Error("Unexpected daemon response");
25
+ },
26
+ async batch(stmts, mode) {
27
+ const statements = stmts.map((s) => {
28
+ const sql = typeof s === "string" ? s : s.sql;
29
+ const args = typeof s === "string" ? [] : Array.isArray(s.args) ? s.args : [];
30
+ return { sql, args };
31
+ });
32
+ const resp = await sendDaemonRequest({ type: "db-batch", statements, mode: mode ?? "deferred" });
33
+ if (resp.error) throw new Error(String(resp.error));
34
+ const batchResults = resp["db-batch"];
35
+ if (batchResults) return batchResults.map(deserializeResultSet);
36
+ throw new Error("Unexpected daemon batch response");
37
+ },
38
+ async transaction(_mode) {
39
+ throw new Error("Transactions not supported via daemon socket");
40
+ },
41
+ async executeMultiple(_sql) {
42
+ throw new Error("executeMultiple not supported via daemon socket");
43
+ },
44
+ async migrate(_stmts) {
45
+ throw new Error("migrate not supported via daemon socket");
46
+ },
47
+ sync() {
48
+ return Promise.resolve(void 0);
49
+ },
50
+ close() {
51
+ },
52
+ get closed() {
53
+ return false;
54
+ },
55
+ get protocol() {
56
+ return "file";
57
+ }
58
+ };
59
+ try {
60
+ await daemonClient.execute("SELECT 1");
61
+ } catch {
62
+ try {
63
+ disconnectClient();
64
+ } catch {
65
+ }
66
+ throw new Error("Daemon socket validation failed");
67
+ }
68
+ setExternalClient(daemonClient);
69
+ return daemonClient;
70
+ }
71
+ } catch {
72
+ }
73
+ }
74
+ const { initStore } = await import("./lib/store.js");
75
+ await initStore({ lightweight: true });
76
+ return getClient();
77
+ }
78
+
79
+ export {
80
+ fastDbInit
81
+ };
@@ -0,0 +1,551 @@
1
+ import {
2
+ sessionScopeFilter
3
+ } from "./chunk-5M5RYJ22.js";
4
+ import {
5
+ getClient,
6
+ getIdentity
7
+ } from "./chunk-CHBHR5W6.js";
8
+
9
+ // src/lib/dreaming.ts
10
+ var DreamingEngine = class {
11
+ /**
12
+ * Gather recent work artifacts for analysis.
13
+ */
14
+ async reviewRecentWork(agentId, hours = 24) {
15
+ const client = getClient();
16
+ const now = /* @__PURE__ */ new Date();
17
+ const start = new Date(now.getTime() - hours * 60 * 60 * 1e3);
18
+ const startISO = start.toISOString();
19
+ const endISO = now.toISOString();
20
+ const memResult = await client.execute({
21
+ sql: `SELECT id, agent_id, raw_text, memory_type, importance, timestamp, project_name
22
+ FROM memories
23
+ WHERE agent_id = ? AND timestamp >= ? AND (status IS NULL OR status != 'deleted')
24
+ ORDER BY timestamp DESC
25
+ LIMIT 200`,
26
+ args: [agentId, startISO]
27
+ });
28
+ const memories = memResult.rows.map((r) => ({
29
+ id: String(r.id),
30
+ agent_id: String(r.agent_id),
31
+ text: String(r.raw_text ?? ""),
32
+ memory_type: String(r.memory_type ?? "raw"),
33
+ importance: Number(r.importance ?? 0),
34
+ created_at: String(r.timestamp ?? ""),
35
+ project_name: r.project_name ? String(r.project_name) : null
36
+ }));
37
+ const scope = sessionScopeFilter();
38
+ const taskResult = await client.execute({
39
+ sql: `SELECT id, title, status, assigned_to, result, created_at, updated_at, project_name
40
+ FROM tasks
41
+ WHERE assigned_to = ? AND updated_at >= ?${scope.sql}
42
+ ORDER BY updated_at DESC
43
+ LIMIT 100`,
44
+ args: [agentId, startISO, ...scope.args]
45
+ });
46
+ const tasks = taskResult.rows.map((r) => ({
47
+ id: String(r.id),
48
+ title: String(r.title ?? ""),
49
+ status: String(r.status ?? ""),
50
+ assigned_to: String(r.assigned_to ?? ""),
51
+ result: r.result ? String(r.result) : null,
52
+ created_at: String(r.created_at),
53
+ updated_at: String(r.updated_at),
54
+ project_name: r.project_name ? String(r.project_name) : null
55
+ }));
56
+ const behaviorResult = await client.execute({
57
+ sql: `SELECT id, agent_id, domain, content, priority, created_at
58
+ FROM behaviors
59
+ WHERE agent_id = ? AND created_at >= ? AND active = 1
60
+ ORDER BY created_at DESC
61
+ LIMIT 50`,
62
+ args: [agentId, startISO]
63
+ });
64
+ const behaviors = behaviorResult.rows.map((r) => ({
65
+ id: String(r.id),
66
+ agent_id: String(r.agent_id),
67
+ domain: r.domain ? String(r.domain) : null,
68
+ content: String(r.content ?? ""),
69
+ priority: String(r.priority ?? "p1"),
70
+ created_at: String(r.created_at)
71
+ }));
72
+ let investigations = [];
73
+ try {
74
+ const invResult = await client.execute({
75
+ sql: `SELECT investigation_key,
76
+ COUNT(*) as total,
77
+ SUM(CASE WHEN result != 'pass' THEN 1 ELSE 0 END) as failed,
78
+ SUM(CASE WHEN result != 'pass' THEN duration_ms ELSE 0 END) as wasted_ms,
79
+ failure_category
80
+ FROM investigation_attempts
81
+ WHERE agent_id = ? AND timestamp >= ?
82
+ GROUP BY investigation_key
83
+ ORDER BY failed DESC
84
+ LIMIT 20`,
85
+ args: [agentId, startISO]
86
+ });
87
+ const invMap = /* @__PURE__ */ new Map();
88
+ const catCounts = /* @__PURE__ */ new Map();
89
+ for (const r of invResult.rows) {
90
+ const key = String(r.investigation_key ?? "");
91
+ if (!invMap.has(key)) {
92
+ invMap.set(key, {
93
+ investigationKey: key,
94
+ totalAttempts: Number(r.total ?? 0),
95
+ failedAttempts: Number(r.failed ?? 0),
96
+ topFailureCategory: String(r.failure_category ?? "unknown"),
97
+ wastedMs: Number(r.wasted_ms ?? 0)
98
+ });
99
+ }
100
+ const cat = String(r.failure_category ?? "unknown");
101
+ if (!catCounts.has(key)) catCounts.set(key, /* @__PURE__ */ new Map());
102
+ catCounts.get(key).set(cat, (catCounts.get(key).get(cat) ?? 0) + Number(r.failed ?? 0));
103
+ }
104
+ for (const [key, rec] of invMap) {
105
+ const cats = catCounts.get(key);
106
+ if (cats) {
107
+ let topCat = "unknown";
108
+ let topCount = 0;
109
+ for (const [cat, count] of cats) {
110
+ if (count > topCount) {
111
+ topCat = cat;
112
+ topCount = count;
113
+ }
114
+ }
115
+ rec.topFailureCategory = topCat;
116
+ }
117
+ }
118
+ investigations = Array.from(invMap.values());
119
+ } catch {
120
+ }
121
+ return {
122
+ memories,
123
+ tasks,
124
+ behaviors,
125
+ investigations,
126
+ period: { start: startISO, end: endISO }
127
+ };
128
+ }
129
+ /**
130
+ * Analyze work review for recurring patterns.
131
+ */
132
+ identifyPatterns(review) {
133
+ const patterns = [];
134
+ const investigations = review.investigations ?? [];
135
+ const errorTasks = review.tasks.filter(
136
+ (t) => /\b(fix|bug|error|fail|broken|crash|revert)\b/i.test(t.title) || t.result && /\b(error|failed|broken|crash)\b/i.test(t.result)
137
+ );
138
+ if (errorTasks.length >= 2) {
139
+ patterns.push({
140
+ type: "mistake",
141
+ description: `Repeated error/fix tasks detected (${errorTasks.length} in period)`,
142
+ evidence: errorTasks.map((t) => `Task "${t.title}" (${t.status})`),
143
+ frequency: errorTasks.length,
144
+ confidence: Math.min(0.5 + errorTasks.length * 0.1, 1)
145
+ });
146
+ }
147
+ const completedTasks = review.tasks.filter(
148
+ (t) => t.status === "done" || t.status === "closed" || t.status === "needs_review"
149
+ );
150
+ if (completedTasks.length >= 3) {
151
+ patterns.push({
152
+ type: "success",
153
+ description: `High task completion rate: ${completedTasks.length} tasks completed in review period`,
154
+ evidence: completedTasks.map((t) => `"${t.title}" (${t.status})`),
155
+ frequency: completedTasks.length,
156
+ confidence: 0.8
157
+ });
158
+ }
159
+ const questionMemories = review.memories.filter(
160
+ (m) => /\b(how do|what is|where is|can't find|unclear|confused|don't know)\b/i.test(m.text)
161
+ );
162
+ if (questionMemories.length >= 3) {
163
+ patterns.push({
164
+ type: "gap",
165
+ description: `Knowledge gaps detected: ${questionMemories.length} uncertainty signals in memories`,
166
+ evidence: questionMemories.slice(0, 5).map((m) => m.text.slice(0, 120)),
167
+ frequency: questionMemories.length,
168
+ confidence: Math.min(0.4 + questionMemories.length * 0.1, 0.9)
169
+ });
170
+ }
171
+ if (review.behaviors.length >= 5) {
172
+ patterns.push({
173
+ type: "inefficiency",
174
+ description: `High behavior churn: ${review.behaviors.length} new behaviors in period (suggests unstable workflow)`,
175
+ evidence: review.behaviors.map((b) => `[${b.domain ?? "general"}] ${b.content.slice(0, 80)}`),
176
+ frequency: review.behaviors.length,
177
+ confidence: Math.min(0.5 + review.behaviors.length * 0.05, 0.9)
178
+ });
179
+ }
180
+ const blockedTasks = review.tasks.filter(
181
+ (t) => t.status === "blocked" || t.status === "cancelled"
182
+ );
183
+ if (blockedTasks.length >= 2) {
184
+ patterns.push({
185
+ type: "inefficiency",
186
+ description: `${blockedTasks.length} tasks blocked or cancelled in period`,
187
+ evidence: blockedTasks.map((t) => `"${t.title}" (${t.status})`),
188
+ frequency: blockedTasks.length,
189
+ confidence: 0.7
190
+ });
191
+ }
192
+ if (investigations.length > 0) {
193
+ const catTotals = /* @__PURE__ */ new Map();
194
+ let totalFailed = 0;
195
+ let totalAttempts = 0;
196
+ let totalWastedMs = 0;
197
+ for (const inv of investigations) {
198
+ totalAttempts += inv.totalAttempts;
199
+ totalFailed += inv.failedAttempts;
200
+ totalWastedMs += inv.wastedMs;
201
+ catTotals.set(inv.topFailureCategory, (catTotals.get(inv.topFailureCategory) ?? 0) + inv.failedAttempts);
202
+ }
203
+ if (totalAttempts > 0 && totalFailed / totalAttempts > 0.5) {
204
+ patterns.push({
205
+ type: "mistake",
206
+ description: `Investigation failure rate: ${Math.round(totalFailed / totalAttempts * 100)}% of ${totalAttempts} attempts failed (${Math.round(totalWastedMs / 6e4)}min wasted)`,
207
+ evidence: investigations.map((i) => `${i.investigationKey}: ${i.failedAttempts}/${i.totalAttempts} failed (${i.topFailureCategory})`),
208
+ frequency: totalFailed,
209
+ confidence: Math.min(0.6 + totalFailed * 0.05, 0.95)
210
+ });
211
+ }
212
+ const sortedCats = Array.from(catTotals.entries()).sort(([, a], [, b]) => b - a);
213
+ if (sortedCats.length > 0 && sortedCats[0][1] >= 2) {
214
+ const [topCat, topCount] = sortedCats[0];
215
+ patterns.push({
216
+ type: "inefficiency",
217
+ description: `Top debugging failure: "${topCat}" (${topCount} times). ${topCat === "lack_of_context" ? "Agent didn't have enough code context before editing" : topCat === "lack_of_tools" ? "Agent couldn't verify the fix (missing tools)" : topCat === "lack_of_reasoning" ? "Agent had the info but drew wrong conclusion" : topCat === "lack_of_measurement" ? "Agent tested the wrong thing (API vs browser)" : topCat === "wrong_diagnosis" ? "Agent misidentified the root cause" : "Recurring failure pattern"}`,
218
+ evidence: investigations.filter((i) => i.topFailureCategory === topCat).map((i) => `${i.investigationKey}: ${i.failedAttempts} failed attempts`),
219
+ frequency: topCount,
220
+ confidence: Math.min(0.7 + topCount * 0.05, 0.95)
221
+ });
222
+ }
223
+ }
224
+ return patterns;
225
+ }
226
+ /**
227
+ * Generate behavior proposals for high-confidence patterns.
228
+ */
229
+ proposeBehaviors(patterns) {
230
+ const proposals = [];
231
+ for (const pattern of patterns) {
232
+ if (pattern.confidence < 0.7) continue;
233
+ switch (pattern.type) {
234
+ case "mistake":
235
+ proposals.push({
236
+ text: `Before implementing fixes, verify the root cause with tests \u2014 ${pattern.evidence.length} fix cycles detected recently.`,
237
+ priority: "p1",
238
+ domain: "workflow",
239
+ rationale: `Pattern: ${pattern.description}`,
240
+ source_pattern: pattern
241
+ });
242
+ break;
243
+ case "gap":
244
+ proposals.push({
245
+ text: `Document solutions immediately after resolving uncertainties \u2014 ${pattern.frequency} knowledge gaps detected.`,
246
+ priority: "p1",
247
+ domain: "workflow",
248
+ rationale: `Pattern: ${pattern.description}`,
249
+ source_pattern: pattern
250
+ });
251
+ break;
252
+ case "inefficiency":
253
+ if (pattern.description.includes("lack_of_context")) {
254
+ proposals.push({
255
+ text: "Before editing any file for a bug fix, run code_context(action='search') and code_context(action='trace') to understand the full call chain. You've been editing without enough context.",
256
+ priority: "p0",
257
+ domain: "investigation",
258
+ rationale: `Pattern: ${pattern.description}`,
259
+ source_pattern: pattern
260
+ });
261
+ } else if (pattern.description.includes("lack_of_measurement")) {
262
+ proposals.push({
263
+ text: "After every fix, test the ACTUAL user flow (playwright for frontend, curl for API) \u2014 not just the build. You've been testing at the wrong level.",
264
+ priority: "p0",
265
+ domain: "investigation",
266
+ rationale: `Pattern: ${pattern.description}`,
267
+ source_pattern: pattern
268
+ });
269
+ } else if (pattern.description.includes("lack_of_tools")) {
270
+ proposals.push({
271
+ text: "You lack verification tools for this type of work. Before starting, check: do you have playwright for browser testing? curl for API testing? Access to logs? Request what you need before guessing.",
272
+ priority: "p0",
273
+ domain: "investigation",
274
+ rationale: `Pattern: ${pattern.description}`,
275
+ source_pattern: pattern
276
+ });
277
+ } else if (pattern.description.includes("lack_of_reasoning")) {
278
+ proposals.push({
279
+ text: "Trace the actual execution path step-by-step instead of guessing from code reading. Read the logs, add console.log, check the actual HTTP request \u2014 don't reason about what SHOULD happen.",
280
+ priority: "p0",
281
+ domain: "investigation",
282
+ rationale: `Pattern: ${pattern.description}`,
283
+ source_pattern: pattern
284
+ });
285
+ } else if (pattern.description.includes("wrong_diagnosis")) {
286
+ proposals.push({
287
+ text: "Run blast_radius before editing. Your diagnoses are hitting the wrong target. Understand what the change affects across the full dependency chain before committing to a fix.",
288
+ priority: "p0",
289
+ domain: "investigation",
290
+ rationale: `Pattern: ${pattern.description}`,
291
+ source_pattern: pattern
292
+ });
293
+ } else if (pattern.description.includes("behavior churn")) {
294
+ proposals.push({
295
+ text: `Review existing behaviors before creating new ones \u2014 high churn detected (${pattern.frequency} in period).`,
296
+ priority: "p1",
297
+ domain: "workflow",
298
+ rationale: `Pattern: ${pattern.description}`,
299
+ source_pattern: pattern
300
+ });
301
+ } else {
302
+ proposals.push({
303
+ text: `Identify and surface blockers earlier \u2014 ${pattern.frequency} blocked/cancelled tasks detected.`,
304
+ priority: "p1",
305
+ domain: "workflow",
306
+ rationale: `Pattern: ${pattern.description}`,
307
+ source_pattern: pattern
308
+ });
309
+ }
310
+ break;
311
+ case "success":
312
+ proposals.push({
313
+ text: `Continue current approach \u2014 high completion rate (${pattern.frequency} tasks) indicates effective workflow.`,
314
+ priority: "p2",
315
+ domain: "workflow",
316
+ rationale: `Pattern: ${pattern.description}`,
317
+ source_pattern: pattern
318
+ });
319
+ break;
320
+ }
321
+ }
322
+ return proposals;
323
+ }
324
+ /**
325
+ * Score how far an agent's recent work diverges from their identity definition.
326
+ *
327
+ * Heuristic-based: compares identity keywords vs recent memory/task topics.
328
+ * Score 0.0 = perfectly aligned, 1.0 = completely off-identity.
329
+ */
330
+ calculateDrift(agentId, review) {
331
+ const identity = getIdentity(agentId);
332
+ if (!identity) {
333
+ return {
334
+ score: 0,
335
+ factors: [{ factor: "no_identity", weight: 0, evidence: "No identity file found \u2014 cannot calculate drift." }],
336
+ narrative: `No identity file found for ${agentId}. Drift cannot be calculated.`
337
+ };
338
+ }
339
+ const factors = [];
340
+ const identityText = (identity.body + " " + identity.frontmatter.role + " " + identity.frontmatter.title).toLowerCase();
341
+ const identityKeywords = new Set(
342
+ identityText.replace(/[^a-z0-9\s]/g, " ").split(/\s+/).filter((w) => w.length >= 4)
343
+ );
344
+ const workText = [
345
+ ...review.memories.map((m) => m.text),
346
+ ...review.tasks.map((t) => t.title + " " + (t.result ?? ""))
347
+ ].join(" ").toLowerCase();
348
+ const workWords = new Set(
349
+ workText.replace(/[^a-z0-9\s]/g, " ").split(/\s+/).filter((w) => w.length >= 4)
350
+ );
351
+ let identityHits = 0;
352
+ for (const kw of identityKeywords) {
353
+ if (workWords.has(kw)) identityHits++;
354
+ }
355
+ const coverageRatio = identityKeywords.size > 0 ? identityHits / identityKeywords.size : 1;
356
+ const coverageDrift = 1 - coverageRatio;
357
+ factors.push({
358
+ factor: "keyword_coverage",
359
+ weight: 0.4,
360
+ evidence: `${identityHits}/${identityKeywords.size} identity keywords found in recent work (${(coverageRatio * 100).toFixed(0)}% coverage)`
361
+ });
362
+ const role = identity.frontmatter.role.toLowerCase();
363
+ const roleWords = role.split(/\s+/).filter((w) => w.length >= 3);
364
+ let roleMatchCount = 0;
365
+ for (const task of review.tasks) {
366
+ const taskLower = (task.title + " " + (task.result ?? "")).toLowerCase();
367
+ if (roleWords.some((rw) => taskLower.includes(rw))) {
368
+ roleMatchCount++;
369
+ }
370
+ }
371
+ const roleAlignment = review.tasks.length > 0 ? roleMatchCount / review.tasks.length : 1;
372
+ const roleDrift = 1 - roleAlignment;
373
+ factors.push({
374
+ factor: "role_alignment",
375
+ weight: 0.4,
376
+ evidence: `${roleMatchCount}/${review.tasks.length} tasks align with role "${identity.frontmatter.role}" (${(roleAlignment * 100).toFixed(0)}%)`
377
+ });
378
+ const offTopicMemories = review.memories.filter((m) => {
379
+ const mWords = m.text.toLowerCase().split(/\s+/);
380
+ return !mWords.some((w) => identityKeywords.has(w));
381
+ });
382
+ const offTopicRatio = review.memories.length > 0 ? offTopicMemories.length / review.memories.length : 0;
383
+ factors.push({
384
+ factor: "off_topic_work",
385
+ weight: 0.2,
386
+ evidence: `${offTopicMemories.length}/${review.memories.length} memories have no identity keyword overlap (${(offTopicRatio * 100).toFixed(0)}% off-topic)`
387
+ });
388
+ const rawScore = coverageDrift * 0.4 + roleDrift * 0.4 + offTopicRatio * 0.2;
389
+ const score = Math.max(0, Math.min(1, rawScore));
390
+ let narrative;
391
+ if (score < 0.2) {
392
+ narrative = `${agentId} is well-aligned with their identity. Recent work closely matches role definition.`;
393
+ } else if (score < 0.5) {
394
+ narrative = `${agentId} shows moderate drift (${(score * 100).toFixed(0)}%). Some work falls outside identity scope. Review factors for specifics.`;
395
+ } else {
396
+ narrative = `${agentId} shows significant drift (${(score * 100).toFixed(0)}%). Much of recent work does not align with identity. Consider reviewing task assignments.`;
397
+ }
398
+ return { score, factors, narrative };
399
+ }
400
+ /**
401
+ * Auto-compute calibration scores from completed tasks with assertions + time estimates.
402
+ * Returns structured calibration data for the dream cycle summary and telemetry.
403
+ */
404
+ async computeCalibration(agentId, hours = 24) {
405
+ const client = getClient();
406
+ const since = new Date(Date.now() - hours * 60 * 60 * 1e3).toISOString();
407
+ const report = {
408
+ assertions: { total: 0, correct: 0, incorrect: 0, partial: 0, byType: {} },
409
+ estimation: { total: 0, avgRatio: 0, underestimates: 0, overestimates: 0, accurate: 0 },
410
+ whyWrong: {}
411
+ };
412
+ try {
413
+ const isAllAgents = agentId === "*";
414
+ const scope = sessionScopeFilter();
415
+ const tasks = await client.execute({
416
+ sql: isAllAgents ? `SELECT assertions, estimated_minutes, actual_minutes, estimate_confidence
417
+ FROM tasks WHERE updated_at >= ?
418
+ AND status IN ('needs_review', 'closed')
419
+ AND (assertions IS NOT NULL OR estimated_minutes IS NOT NULL)${scope.sql}` : `SELECT assertions, estimated_minutes, actual_minutes, estimate_confidence
420
+ FROM tasks WHERE assigned_to = ? AND updated_at >= ?
421
+ AND status IN ('needs_review', 'closed')
422
+ AND (assertions IS NOT NULL OR estimated_minutes IS NOT NULL)${scope.sql}`,
423
+ args: isAllAgents ? [since, ...scope.args] : [agentId, since, ...scope.args]
424
+ });
425
+ for (const row of tasks.rows) {
426
+ try {
427
+ const data = JSON.parse(String(row.assertions ?? "{}"));
428
+ const resolved = data.resolved ?? [];
429
+ for (const r of resolved) {
430
+ report.assertions.total++;
431
+ if (r.outcome === "correct") report.assertions.correct++;
432
+ else if (r.outcome === "incorrect") report.assertions.incorrect++;
433
+ else if (r.outcome === "partial") report.assertions.partial++;
434
+ const aType = r.type ?? "unknown";
435
+ if (!report.assertions.byType[aType]) {
436
+ report.assertions.byType[aType] = { total: 0, correct: 0 };
437
+ }
438
+ report.assertions.byType[aType].total++;
439
+ if (r.outcome === "correct") report.assertions.byType[aType].correct++;
440
+ if (r.outcome === "incorrect" && r.why_wrong) {
441
+ report.whyWrong[r.why_wrong] = (report.whyWrong[r.why_wrong] ?? 0) + 1;
442
+ }
443
+ }
444
+ } catch {
445
+ }
446
+ const est = Number(row.estimated_minutes);
447
+ const actual = Number(row.actual_minutes);
448
+ if (est > 0 && actual > 0) {
449
+ report.estimation.total++;
450
+ const ratio = actual / est;
451
+ report.estimation.avgRatio += ratio;
452
+ if (ratio > 1.3) report.estimation.underestimates++;
453
+ else if (ratio < 0.7) report.estimation.overestimates++;
454
+ else report.estimation.accurate++;
455
+ }
456
+ }
457
+ if (report.estimation.total > 0) {
458
+ report.estimation.avgRatio = report.estimation.avgRatio / report.estimation.total;
459
+ }
460
+ } catch {
461
+ }
462
+ return report;
463
+ }
464
+ /**
465
+ * Run a full dream cycle: review → identify patterns → propose behaviors → drift check → calibration.
466
+ */
467
+ async runDreamCycle(agentId, hours = 24) {
468
+ const review = await this.reviewRecentWork(agentId, hours);
469
+ const patterns = this.identifyPatterns(review);
470
+ const proposals = this.proposeBehaviors(patterns);
471
+ const drift = this.calculateDrift(agentId, review);
472
+ const calibration = await this.computeCalibration(agentId, hours);
473
+ const client = getClient();
474
+ try {
475
+ const { scoreBehaviors, detectConflicts, measureBehaviorLoad } = await import("./behavior-effectiveness-UP76GMOC.js");
476
+ const scores = await scoreBehaviors(agentId);
477
+ const conflicts = await detectConflicts(agentId);
478
+ await measureBehaviorLoad(agentId);
479
+ for (const score of scores) {
480
+ if (score.recommendation === "deactivate") {
481
+ await client.execute({
482
+ sql: "UPDATE behaviors SET active = 0, updated_at = ? WHERE id = ?",
483
+ args: [(/* @__PURE__ */ new Date()).toISOString(), score.behaviorId]
484
+ });
485
+ }
486
+ }
487
+ const deactivateCount = scores.filter((s) => s.recommendation === "deactivate").length;
488
+ if (conflicts.length > 0 || deactivateCount > 0) {
489
+ process.stderr.write(`[dreaming] Behavior health: ${conflicts.length} conflicts, ${deactivateCount} ineffective
490
+ `);
491
+ }
492
+ } catch {
493
+ }
494
+ const result = {
495
+ review,
496
+ patterns,
497
+ proposals,
498
+ drift,
499
+ calibration,
500
+ timestamp: (/* @__PURE__ */ new Date()).toISOString()
501
+ };
502
+ try {
503
+ const { randomUUID } = await import("crypto");
504
+ const id = randomUUID();
505
+ const calLines = [];
506
+ if (calibration.assertions.total > 0) {
507
+ const pct = Math.round(calibration.assertions.correct / calibration.assertions.total * 100);
508
+ calLines.push(`Assertion accuracy: ${pct}% (${calibration.assertions.correct}/${calibration.assertions.total})`);
509
+ for (const [type, data] of Object.entries(calibration.assertions.byType)) {
510
+ const tPct = data.total > 0 ? Math.round(data.correct / data.total * 100) : 0;
511
+ calLines.push(` ${type}: ${tPct}% (${data.correct}/${data.total})`);
512
+ }
513
+ }
514
+ if (calibration.estimation.total > 0) {
515
+ calLines.push(`Time estimation: avg ${calibration.estimation.avgRatio.toFixed(1)}x ratio (${calibration.estimation.accurate} accurate, ${calibration.estimation.underestimates} under, ${calibration.estimation.overestimates} over)`);
516
+ }
517
+ if (Object.keys(calibration.whyWrong).length > 0) {
518
+ calLines.push(`Why wrong: ${Object.entries(calibration.whyWrong).map(([k, v]) => `${k}=${v}`).join(", ")}`);
519
+ }
520
+ const summaryText = [
521
+ `DREAM CYCLE for ${agentId}`,
522
+ `Period: ${review.period.start} \u2192 ${review.period.end}`,
523
+ `Memories analyzed: ${review.memories.length}`,
524
+ `Tasks analyzed: ${review.tasks.length}`,
525
+ `Patterns found: ${patterns.length}`,
526
+ `Behavior proposals: ${proposals.length}`,
527
+ `Drift score: ${drift.score.toFixed(2)} \u2014 ${drift.narrative}`,
528
+ calLines.length > 0 ? `
529
+ Calibration:
530
+ ${calLines.join("\n")}` : "",
531
+ patterns.length > 0 ? `
532
+ Patterns:
533
+ ${patterns.map((p) => `- [${p.type}] ${p.description}`).join("\n")}` : "",
534
+ proposals.length > 0 ? `
535
+ Proposals:
536
+ ${proposals.map((p) => `- [${p.priority}/${p.domain}] ${p.text}`).join("\n")}` : ""
537
+ ].filter(Boolean).join("\n");
538
+ await client.execute({
539
+ sql: `INSERT INTO memories (id, agent_id, raw_text, memory_type, importance, timestamp, status, agent_role, session_id, tool_name, project_name, has_error, version)
540
+ VALUES (?, ?, ?, 'observation', 7, ?, 'active', 'system', 'dream-cycle', 'dreaming', '', 0, 0)`,
541
+ args: [id, agentId, summaryText, result.timestamp]
542
+ });
543
+ } catch {
544
+ }
545
+ return result;
546
+ }
547
+ };
548
+
549
+ export {
550
+ DreamingEngine
551
+ };