@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,330 @@
1
+ import {
2
+ employeeSessionName,
3
+ isEmployeeAlive,
4
+ resolveExeSession,
5
+ sendIntercom,
6
+ strictSessionScopeFilter
7
+ } from "./chunk-74MF4T3T.js";
8
+ import {
9
+ parseMessage,
10
+ serializeMessage
11
+ } from "./chunk-4JERP7NT.js";
12
+ import {
13
+ recordOrchestrationEventBestEffort
14
+ } from "./chunk-2NQQP3FF.js";
15
+ import {
16
+ getClient
17
+ } from "./chunk-CHBHR5W6.js";
18
+
19
+ // src/lib/messaging.ts
20
+ import crypto from "crypto";
21
+ function generateUlid() {
22
+ const timestamp = Date.now().toString(36).padStart(10, "0");
23
+ const random = crypto.randomBytes(10).toString("hex").slice(0, 16);
24
+ return (timestamp + random).toUpperCase();
25
+ }
26
+ function rowToMessage(row) {
27
+ return {
28
+ id: row.id,
29
+ fromAgent: row.from_agent,
30
+ fromDevice: row.from_device,
31
+ targetAgent: row.target_agent,
32
+ targetProject: row.target_project ?? null,
33
+ targetDevice: row.target_device,
34
+ sessionScope: row.session_scope ?? null,
35
+ content: row.content,
36
+ priority: row.priority ?? "normal",
37
+ status: row.status ?? "pending",
38
+ serverSeq: row.server_seq != null ? Number(row.server_seq) : null,
39
+ retryCount: Number(row.retry_count ?? 0),
40
+ createdAt: row.created_at,
41
+ deliveredAt: row.delivered_at ?? null,
42
+ processedAt: row.processed_at ?? null,
43
+ failedAt: row.failed_at ?? null,
44
+ failureReason: row.failure_reason ?? null
45
+ };
46
+ }
47
+ var MAX_RETRIES = 10;
48
+ async function sendMessage(input) {
49
+ const client = getClient();
50
+ const id = generateUlid();
51
+ const now = (/* @__PURE__ */ new Date()).toISOString();
52
+ const targetDevice = input.targetDevice ?? "local";
53
+ const sessionScope = input.sessionScope === void 0 ? resolveExeSession() : input.sessionScope;
54
+ await client.execute({
55
+ sql: `INSERT INTO messages (id, from_agent, from_device, target_agent, target_project, target_device, session_scope, content, priority, status, founder_id, created_at)
56
+ VALUES (?, ?, 'local', ?, ?, ?, ?, ?, ?, 'pending', ?, ?)`,
57
+ args: [
58
+ id,
59
+ input.fromAgent,
60
+ input.targetAgent,
61
+ input.targetProject ?? null,
62
+ targetDevice,
63
+ sessionScope,
64
+ input.content,
65
+ input.priority ?? "normal",
66
+ input.founderId ?? null,
67
+ now
68
+ ]
69
+ });
70
+ recordOrchestrationEventBestEffort({
71
+ eventType: "message.sent",
72
+ source: "messaging.sendMessage",
73
+ agentId: input.fromAgent,
74
+ payload: { targetAgent: input.targetAgent, priority: input.priority ?? "normal", targetDevice },
75
+ sessionScope: sessionScope ?? null
76
+ });
77
+ try {
78
+ if (targetDevice !== "local") {
79
+ await deliverCrossMachineMessage(id, targetDevice);
80
+ } else {
81
+ await deliverLocalMessage(id);
82
+ }
83
+ } catch {
84
+ }
85
+ const sentScope = strictSessionScopeFilter(sessionScope);
86
+ const result = await client.execute({
87
+ sql: `SELECT * FROM messages WHERE id = ?${sentScope.sql}`,
88
+ args: [id, ...sentScope.args]
89
+ });
90
+ return rowToMessage(result.rows[0]);
91
+ }
92
+ var _wsClientSend = null;
93
+ function setWsClientSend(fn) {
94
+ _wsClientSend = fn;
95
+ }
96
+ async function deliverCrossMachineMessage(messageId, targetDevice) {
97
+ const client = getClient();
98
+ const result = await client.execute({
99
+ sql: "SELECT * FROM messages WHERE id = ?",
100
+ args: [messageId]
101
+ });
102
+ if (result.rows.length === 0) return false;
103
+ const msg = rowToMessage(result.rows[0]);
104
+ if (msg.status !== "pending") return false;
105
+ if (!_wsClientSend) {
106
+ return false;
107
+ }
108
+ const payload = JSON.stringify({
109
+ id: msg.id,
110
+ fromAgent: msg.fromAgent,
111
+ targetAgent: msg.targetAgent,
112
+ targetProject: msg.targetProject,
113
+ sessionScope: msg.sessionScope,
114
+ content: msg.content,
115
+ priority: msg.priority,
116
+ createdAt: msg.createdAt
117
+ });
118
+ const sent = _wsClientSend(targetDevice, payload);
119
+ if (sent) {
120
+ await client.execute({
121
+ sql: "UPDATE messages SET status = 'synced' WHERE id = ?",
122
+ args: [messageId]
123
+ });
124
+ return true;
125
+ }
126
+ return false;
127
+ }
128
+ async function deliverLocalMessage(messageId) {
129
+ const client = getClient();
130
+ const result = await client.execute({
131
+ sql: "SELECT * FROM messages WHERE id = ?",
132
+ args: [messageId]
133
+ });
134
+ if (result.rows.length === 0) return false;
135
+ const msg = rowToMessage(result.rows[0]);
136
+ if (msg.status !== "pending") return false;
137
+ const targetAgent = msg.targetAgent;
138
+ const now = (/* @__PURE__ */ new Date()).toISOString();
139
+ try {
140
+ const exeSession = resolveExeSession();
141
+ if (!exeSession) {
142
+ throw new Error("No coordinator session found");
143
+ }
144
+ process.stderr.write(`[messaging] ENTER deliverLocal: target=${targetAgent} exeSession=${exeSession}
145
+ `);
146
+ const { isCoordinatorName: isCoord } = await import("./lib/employees.js");
147
+ const isCOO = isCoord(targetAgent);
148
+ process.stderr.write(`[messaging] COO check: targetAgent="${targetAgent}" isCOO=${isCOO}
149
+ `);
150
+ const sessionName = isCOO ? exeSession : employeeSessionName(targetAgent, exeSession);
151
+ process.stderr.write(`[messaging] delivery attempt: target=${targetAgent} session=${sessionName} isCOO=${isCOO}
152
+ `);
153
+ if (!isCOO && !isEmployeeAlive(sessionName)) {
154
+ throw new Error("Session not running \u2014 message stays queued");
155
+ }
156
+ const intercomResult = sendIntercom(sessionName, { force: true, reason: "message" });
157
+ process.stderr.write(`[messaging] intercom result for ${sessionName}: ${intercomResult}
158
+ `);
159
+ await client.execute({
160
+ sql: "UPDATE messages SET status = 'delivered', delivered_at = ? WHERE id = ?",
161
+ args: [now, messageId]
162
+ });
163
+ recordOrchestrationEventBestEffort({
164
+ eventType: "message.delivered",
165
+ source: "messaging.deliverLocalMessage",
166
+ agentId: msg.targetAgent,
167
+ payload: { fromAgent: msg.fromAgent, priority: msg.priority }
168
+ });
169
+ return true;
170
+ } catch (err) {
171
+ process.stderr.write(
172
+ `[messaging] delivery failed for message ${messageId}: ${err instanceof Error ? err.message : String(err)}
173
+ `
174
+ );
175
+ const newRetryCount = msg.retryCount + 1;
176
+ if (newRetryCount >= MAX_RETRIES) {
177
+ await markFailed(messageId, "session unavailable after 10 retries", msg.sessionScope);
178
+ } else {
179
+ await client.execute({
180
+ sql: "UPDATE messages SET retry_count = ? WHERE id = ?",
181
+ args: [newRetryCount, messageId]
182
+ });
183
+ }
184
+ return false;
185
+ }
186
+ }
187
+ async function getPendingMessages(targetAgent, sessionScope) {
188
+ const client = getClient();
189
+ const scope = strictSessionScopeFilter(sessionScope);
190
+ const result = await client.execute({
191
+ sql: `SELECT * FROM messages
192
+ WHERE target_agent = ? AND status IN ('pending', 'delivered')${scope.sql}
193
+ ORDER BY id`,
194
+ args: [targetAgent, ...scope.args]
195
+ });
196
+ return result.rows.map((row) => rowToMessage(row));
197
+ }
198
+ async function markRead(messageId, sessionScope) {
199
+ const client = getClient();
200
+ const scope = strictSessionScopeFilter(sessionScope);
201
+ await client.execute({
202
+ sql: `UPDATE messages SET status = 'read'
203
+ WHERE id = ? AND status IN ('pending', 'delivered')${scope.sql}`,
204
+ args: [messageId, ...scope.args]
205
+ });
206
+ recordOrchestrationEventBestEffort({
207
+ eventType: "message.read",
208
+ source: "messaging.markRead",
209
+ payload: { messageId }
210
+ });
211
+ }
212
+ async function markAcknowledged(messageId, sessionScope) {
213
+ const client = getClient();
214
+ const scope = strictSessionScopeFilter(sessionScope);
215
+ await client.execute({
216
+ sql: `UPDATE messages SET status = 'acknowledged', processed_at = ?
217
+ WHERE id = ? AND status = 'read'${scope.sql}`,
218
+ args: [(/* @__PURE__ */ new Date()).toISOString(), messageId, ...scope.args]
219
+ });
220
+ }
221
+ async function markProcessed(messageId, sessionScope) {
222
+ const client = getClient();
223
+ const scope = strictSessionScopeFilter(sessionScope);
224
+ await client.execute({
225
+ sql: `UPDATE messages SET status = 'processed', processed_at = ?
226
+ WHERE id = ?${scope.sql}`,
227
+ args: [(/* @__PURE__ */ new Date()).toISOString(), messageId, ...scope.args]
228
+ });
229
+ }
230
+ async function getMessageStatus(messageId, sessionScope) {
231
+ const client = getClient();
232
+ const scope = strictSessionScopeFilter(sessionScope);
233
+ const result = await client.execute({
234
+ sql: `SELECT status FROM messages WHERE id = ?${scope.sql}`,
235
+ args: [messageId, ...scope.args]
236
+ });
237
+ return result.rows[0]?.status ?? null;
238
+ }
239
+ async function getUnacknowledgedMessages(targetAgent, sessionScope) {
240
+ const client = getClient();
241
+ const scope = strictSessionScopeFilter(sessionScope);
242
+ const result = await client.execute({
243
+ sql: `SELECT * FROM messages
244
+ WHERE target_agent = ? AND status IN ('pending', 'delivered', 'read')${scope.sql}
245
+ ORDER BY id`,
246
+ args: [targetAgent, ...scope.args]
247
+ });
248
+ return result.rows.map((row) => rowToMessage(row));
249
+ }
250
+ async function getReadMessages(targetAgent, sessionScope) {
251
+ const client = getClient();
252
+ const scope = strictSessionScopeFilter(sessionScope);
253
+ const result = await client.execute({
254
+ sql: `SELECT * FROM messages
255
+ WHERE target_agent = ? AND status = 'read'${scope.sql}
256
+ ORDER BY id`,
257
+ args: [targetAgent, ...scope.args]
258
+ });
259
+ return result.rows.map((row) => rowToMessage(row));
260
+ }
261
+ async function markFailed(messageId, reason, sessionScope) {
262
+ const client = getClient();
263
+ const scope = strictSessionScopeFilter(sessionScope);
264
+ await client.execute({
265
+ sql: `UPDATE messages SET status = 'failed', failed_at = ?, failure_reason = ?
266
+ WHERE id = ?${scope.sql}`,
267
+ args: [(/* @__PURE__ */ new Date()).toISOString(), reason, messageId, ...scope.args]
268
+ });
269
+ }
270
+ async function getFailedMessages(sessionScope) {
271
+ const client = getClient();
272
+ const scope = strictSessionScopeFilter(sessionScope);
273
+ const result = await client.execute({
274
+ sql: `SELECT * FROM messages WHERE status = 'failed'${scope.sql} ORDER BY created_at DESC`,
275
+ args: [...scope.args]
276
+ });
277
+ return result.rows.map((row) => rowToMessage(row));
278
+ }
279
+ async function retryPendingMessages(sessionScope) {
280
+ const client = getClient();
281
+ const scope = strictSessionScopeFilter(sessionScope);
282
+ const result = await client.execute({
283
+ sql: `SELECT * FROM messages
284
+ WHERE status = 'pending' AND retry_count < ?${scope.sql}
285
+ ORDER BY id`,
286
+ args: [MAX_RETRIES, ...scope.args]
287
+ });
288
+ let delivered = 0;
289
+ for (const row of result.rows) {
290
+ const msg = rowToMessage(row);
291
+ try {
292
+ const success = await deliverLocalMessage(msg.id);
293
+ if (success) delivered++;
294
+ } catch {
295
+ }
296
+ }
297
+ return delivered;
298
+ }
299
+ async function sendTypedMessage(envelope, targetAgent, opts) {
300
+ return sendMessage({
301
+ fromAgent: envelope.from,
302
+ targetAgent,
303
+ targetProject: opts?.targetProject,
304
+ targetDevice: opts?.targetDevice,
305
+ content: serializeMessage(envelope),
306
+ priority: opts?.priority,
307
+ sessionScope: opts?.sessionScope
308
+ });
309
+ }
310
+ function parseIncomingMessage(content) {
311
+ return parseMessage(content);
312
+ }
313
+
314
+ export {
315
+ sendMessage,
316
+ setWsClientSend,
317
+ deliverLocalMessage,
318
+ getPendingMessages,
319
+ markRead,
320
+ markAcknowledged,
321
+ markProcessed,
322
+ getMessageStatus,
323
+ getUnacknowledgedMessages,
324
+ getReadMessages,
325
+ markFailed,
326
+ getFailedMessages,
327
+ retryPendingMessages,
328
+ sendTypedMessage,
329
+ parseIncomingMessage
330
+ };
@@ -0,0 +1,204 @@
1
+ import {
2
+ getClient
3
+ } from "./chunk-CHBHR5W6.js";
4
+
5
+ // src/lib/pipeline-router.ts
6
+ import crypto from "crypto";
7
+ async function sinkConversationStore(msg, agentResponse, agentName) {
8
+ try {
9
+ const client = getClient();
10
+ const id = crypto.randomUUID();
11
+ const mediaJson = msg.media ? JSON.stringify(msg.media) : null;
12
+ await client.execute({
13
+ sql: `INSERT INTO conversations
14
+ (id, platform, external_id, sender_id, sender_name, sender_phone, sender_email,
15
+ recipient_id, channel_id, thread_id, reply_to_id,
16
+ content_text, content_media, agent_response, agent_name,
17
+ timestamp, ingested_at)
18
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
19
+ args: [
20
+ id,
21
+ msg.platform,
22
+ msg.messageId,
23
+ msg.senderId,
24
+ msg.senderName ?? null,
25
+ msg.senderPhone ?? null,
26
+ msg.senderEmail ?? null,
27
+ msg.accountId ?? null,
28
+ msg.channelId,
29
+ msg.threadId ?? `${msg.platform}:${msg.channelId}`,
30
+ msg.replyTo?.messageId ?? null,
31
+ msg.text ?? null,
32
+ mediaJson,
33
+ agentResponse ?? null,
34
+ agentName ?? null,
35
+ msg.timestamp,
36
+ (/* @__PURE__ */ new Date()).toISOString()
37
+ ]
38
+ });
39
+ return true;
40
+ } catch (err) {
41
+ process.stderr.write(
42
+ `[pipeline] conversation-store error: ${err instanceof Error ? err.message : String(err)}
43
+ `
44
+ );
45
+ return false;
46
+ }
47
+ }
48
+ async function sinkMemory(msg, agentResponse, agentName) {
49
+ try {
50
+ const { embed } = await import("./lib/embedder.js");
51
+ const { writeMemory, flushBatch } = await import("./lib/store.js");
52
+ const direction = agentResponse ? "conversation" : "inbound";
53
+ const rawText = [
54
+ `[${msg.platform}] ${direction} from ${msg.senderName ?? msg.senderId}`,
55
+ msg.text ? `Message: ${msg.text}` : null,
56
+ agentResponse ? `Agent (${agentName ?? "unknown"}): ${agentResponse}` : null
57
+ ].filter(Boolean).join("\n");
58
+ const vector = await embed(rawText);
59
+ await writeMemory({
60
+ id: crypto.randomUUID(),
61
+ agent_id: agentName ?? "gateway",
62
+ agent_role: "gateway",
63
+ session_id: `gateway-${msg.platform}`,
64
+ timestamp: msg.timestamp,
65
+ tool_name: `gateway-${msg.platform}`,
66
+ project_name: "exe-os",
67
+ has_error: false,
68
+ raw_text: rawText,
69
+ vector,
70
+ importance: 4,
71
+ confidence: 0.8
72
+ });
73
+ await flushBatch();
74
+ return true;
75
+ } catch (err) {
76
+ process.stderr.write(
77
+ `[pipeline] memory-sink error: ${err instanceof Error ? err.message : String(err)}
78
+ `
79
+ );
80
+ return false;
81
+ }
82
+ }
83
+ async function sinkCRM(msg, agentResponse, agentName) {
84
+ try {
85
+ const { isCRMBridgeEnabled, pushConversationToCRM, pushInboundMessageToCRM } = await import("./crm-bridge-BVTB6LZK.js");
86
+ if (!isCRMBridgeEnabled()) return false;
87
+ if (agentResponse) {
88
+ await pushConversationToCRM({
89
+ platform: msg.platform,
90
+ senderId: msg.senderId,
91
+ senderName: msg.senderName,
92
+ messageText: msg.text,
93
+ agentResponse,
94
+ agentName: agentName ?? "unknown",
95
+ timestamp: msg.timestamp,
96
+ accountId: msg.accountId
97
+ });
98
+ } else {
99
+ await pushInboundMessageToCRM({
100
+ platform: msg.platform,
101
+ senderId: msg.senderId,
102
+ senderName: msg.senderName,
103
+ messageText: msg.text,
104
+ timestamp: msg.timestamp,
105
+ accountId: msg.accountId
106
+ });
107
+ }
108
+ return true;
109
+ } catch (err) {
110
+ process.stderr.write(
111
+ `[pipeline] crm-sink error: ${err instanceof Error ? err.message : String(err)}
112
+ `
113
+ );
114
+ return false;
115
+ }
116
+ }
117
+ async function sinkWiki(msg, agentResponse) {
118
+ try {
119
+ const { createWikiClient } = await import("./wiki-client-GBPR45BQ.js");
120
+ const client = await createWikiClient();
121
+ if (!client) return false;
122
+ const content = msg.text ?? "";
123
+ if (content.length < 50) return false;
124
+ const { chatInWorkspace } = await import("./wiki-client-GBPR45BQ.js");
125
+ const ingestText = [
126
+ `[${msg.platform}] Message from ${msg.senderName ?? msg.senderId} (${msg.timestamp}):`,
127
+ content,
128
+ agentResponse ? `
129
+ Agent response: ${agentResponse}` : ""
130
+ ].join("\n");
131
+ await chatInWorkspace(client, "conversations", ingestText, "chat");
132
+ return true;
133
+ } catch (err) {
134
+ process.stderr.write(
135
+ `[pipeline] wiki-sink error: ${err instanceof Error ? err.message : String(err)}
136
+ `
137
+ );
138
+ return false;
139
+ }
140
+ }
141
+ async function sinkEntityExtraction(msg, agentResponse, agentName) {
142
+ try {
143
+ const { extractFromConversation } = await import("./conversation-entity-extractor-EYSI4DKM.js");
144
+ const { storeExtraction } = await import("./graph-rag-G3EG5Q6L.js");
145
+ if ((msg.text?.length ?? 0) < 20) return false;
146
+ if (msg.isHistorical) return false;
147
+ const extraction = await extractFromConversation(msg, agentResponse, agentName);
148
+ if (extraction.entities.length === 0) return false;
149
+ const client = getClient();
150
+ const memoryId = `conv:${msg.messageId}`;
151
+ await storeExtraction(client, extraction, memoryId, msg.timestamp);
152
+ import("./conversation-wiki-populator-L7O6F3BB.js").then(
153
+ ({ populateWikiFromExtraction }) => populateWikiFromExtraction(extraction, msg, agentResponse, agentName)
154
+ ).catch((err) => {
155
+ process.stderr.write(
156
+ `[pipeline] wiki-population error: ${err instanceof Error ? err.message : String(err)}
157
+ `
158
+ );
159
+ });
160
+ return true;
161
+ } catch (err) {
162
+ process.stderr.write(
163
+ `[pipeline] entity-extraction-sink error: ${err instanceof Error ? err.message : String(err)}
164
+ `
165
+ );
166
+ return false;
167
+ }
168
+ }
169
+ async function ingest(msg, agentResponse, agentName) {
170
+ const errors = [];
171
+ const [conversationStored, memorySunk, crmSunk, wikiSunk, entityExtracted] = await Promise.all([
172
+ sinkConversationStore(msg, agentResponse, agentName).catch((e) => {
173
+ errors.push(`conversation: ${e}`);
174
+ return false;
175
+ }),
176
+ sinkMemory(msg, agentResponse, agentName).catch((e) => {
177
+ errors.push(`memory: ${e}`);
178
+ return false;
179
+ }),
180
+ sinkCRM(msg, agentResponse, agentName).catch((e) => {
181
+ errors.push(`crm: ${e}`);
182
+ return false;
183
+ }),
184
+ sinkWiki(msg, agentResponse).catch((e) => {
185
+ errors.push(`wiki: ${e}`);
186
+ return false;
187
+ }),
188
+ sinkEntityExtraction(msg, agentResponse, agentName).catch((e) => {
189
+ errors.push(`entity-extraction: ${e}`);
190
+ return false;
191
+ })
192
+ ]);
193
+ if (errors.length > 0) {
194
+ process.stderr.write(
195
+ `[pipeline] ${errors.length} sink error(s): ${errors.join("; ")}
196
+ `
197
+ );
198
+ }
199
+ return { conversationStored, memorySunk, crmSunk, wikiSunk, entityExtracted, errors };
200
+ }
201
+
202
+ export {
203
+ ingest
204
+ };
@@ -0,0 +1,171 @@
1
+ import {
2
+ writeMemoryViaDaemon
3
+ } from "./chunk-OSXQTCW5.js";
4
+
5
+ // src/lib/auto-checkpoint.ts
6
+ var FILE_RE = /(?:^|\s)([\w./-]+\.(?:ts|tsx|js|jsx|json|md|yml|yaml|sql|go|py|css|scss|html|sh))(?:\b|$)/g;
7
+ var DECISION_RE = /\b(decision:|decided:|we decided|founder directive|captured in .*architecture|source of truth)\b/i;
8
+ function asString(value, fallback = "") {
9
+ if (value == null) return fallback;
10
+ return String(value);
11
+ }
12
+ function compactLine(text, max = 220) {
13
+ return text.replace(/\s+/g, " ").trim().slice(0, max);
14
+ }
15
+ function topEntries(counts, limit) {
16
+ return [...counts.entries()].sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0])).slice(0, limit).map(([name, count]) => `${name}(${count})`);
17
+ }
18
+ function buildAutoCheckpoint(input) {
19
+ const maxSamples = input.maxSamples ?? 8;
20
+ const projectCounts = /* @__PURE__ */ new Map();
21
+ const toolCounts = /* @__PURE__ */ new Map();
22
+ const files = /* @__PURE__ */ new Set();
23
+ const errors = [];
24
+ const samples = [];
25
+ const decisionTexts = [];
26
+ for (const row of input.memories) {
27
+ const tool = asString(row.tool_name, "unknown");
28
+ const project = asString(row.project_name, input.projectName || "unknown");
29
+ const raw = asString(row.raw_text);
30
+ const hasError = row.has_error === 1 || row.has_error === true;
31
+ toolCounts.set(tool, (toolCounts.get(tool) ?? 0) + 1);
32
+ projectCounts.set(project, (projectCounts.get(project) ?? 0) + 1);
33
+ if (hasError && errors.length < 5) errors.push(compactLine(raw, 180));
34
+ if (samples.length < maxSamples && raw.length > 30) {
35
+ samples.push(`[${tool}] ${compactLine(raw)}`);
36
+ }
37
+ if (DECISION_RE.test(raw) && decisionTexts.length < 5) {
38
+ decisionTexts.push(`AUTO DECISION CANDIDATE [${input.agentId}]: ${compactLine(raw, 500)}`);
39
+ }
40
+ for (const match of raw.matchAll(FILE_RE)) {
41
+ if (match[1]) files.add(match[1]);
42
+ if (files.size >= 20) break;
43
+ }
44
+ }
45
+ const taskLines = (input.tasks ?? []).slice(0, 10).map((task) => {
46
+ const status = asString(task.status, "unknown");
47
+ const priority = asString(task.priority, "?").toUpperCase();
48
+ const title = asString(task.title, "untitled");
49
+ const taskFile = asString(task.task_file);
50
+ return `- [${status}/${priority}] ${title}${taskFile ? ` (${taskFile})` : ""}`;
51
+ });
52
+ const parts = [
53
+ `CONTEXT CHECKPOINT [auto:${input.reason}]`,
54
+ `Agent: ${input.agentId} (${input.agentRole})`,
55
+ `Session: ${input.sessionId}`,
56
+ `Project: ${input.projectName}`,
57
+ `Time: ${(/* @__PURE__ */ new Date()).toISOString()}`,
58
+ "",
59
+ "## Recent Activity",
60
+ `- Memories scanned: ${input.memories.length}`,
61
+ `- Projects: ${topEntries(projectCounts, 5).join(", ") || input.projectName}`,
62
+ `- Tools: ${topEntries(toolCounts, 8).join(", ") || "none"}`
63
+ ];
64
+ if (taskLines.length > 0) {
65
+ parts.push("", "## Open / Active Tasks", ...taskLines);
66
+ }
67
+ if (files.size > 0) {
68
+ parts.push("", "## Files Mentioned", ...[...files].slice(0, 20).map((f) => `- ${f}`));
69
+ }
70
+ if (samples.length > 0) {
71
+ parts.push("", "## Important Recent Traces", ...samples.map((s) => `- ${s}`));
72
+ }
73
+ if (errors.length > 0) {
74
+ parts.push("", "## Errors / Risks", ...errors.map((e) => `- ${e}`));
75
+ }
76
+ if (decisionTexts.length > 0) {
77
+ parts.push("", "## Decision Candidates", ...decisionTexts.map((d) => `- ${d.replace(/^AUTO DECISION CANDIDATE \\[[^\\]]+\\]: /, "")}`));
78
+ }
79
+ return {
80
+ checkpointText: parts.join("\n"),
81
+ decisionTexts
82
+ };
83
+ }
84
+
85
+ // src/lib/checkpoint-orchestrator.ts
86
+ function toolNameForReason(reason) {
87
+ switch (reason) {
88
+ case "periodic":
89
+ return "auto-summary";
90
+ case "session-end":
91
+ return "SessionEnd";
92
+ case "pre-compact":
93
+ return "pre-compact-hook";
94
+ case "capacity-signal":
95
+ return "auto-checkpoint";
96
+ }
97
+ }
98
+ function importanceForReason(reason, override) {
99
+ if (override !== void 0) return override;
100
+ switch (reason) {
101
+ case "periodic":
102
+ return 7;
103
+ case "session-end":
104
+ case "pre-compact":
105
+ case "capacity-signal":
106
+ return 8;
107
+ }
108
+ }
109
+ function buildContinuityCheckpoint(input) {
110
+ const { checkpointText, decisionTexts } = buildAutoCheckpoint({
111
+ agentId: input.agentId,
112
+ agentRole: input.agentRole,
113
+ sessionId: input.sessionId,
114
+ projectName: input.projectName,
115
+ reason: input.reason,
116
+ memories: input.memories ?? [],
117
+ tasks: input.tasks ?? [],
118
+ maxSamples: input.maxSamples
119
+ });
120
+ const extra = input.extraSections?.filter((section) => section.trim().length > 0) ?? [];
121
+ return {
122
+ checkpointText: extra.length > 0 ? `${checkpointText}
123
+
124
+ ${extra.join("\n\n")}` : checkpointText,
125
+ decisionTexts
126
+ };
127
+ }
128
+ async function writeContinuityCheckpoint(input) {
129
+ const result = buildContinuityCheckpoint(input);
130
+ const now = (/* @__PURE__ */ new Date()).toISOString();
131
+ await writeMemoryViaDaemon({
132
+ raw_text: result.checkpointText,
133
+ agent_id: input.agentId,
134
+ agent_role: input.agentRole,
135
+ session_id: input.sessionId,
136
+ tool_name: toolNameForReason(input.reason),
137
+ project_name: input.projectName,
138
+ timestamp: now,
139
+ importance: importanceForReason(input.reason, input.importance),
140
+ task_id: input.taskId,
141
+ memory_type: "checkpoint"
142
+ });
143
+ const decisionLimit = input.reason === "periodic" ? 3 : 5;
144
+ for (const decisionText of result.decisionTexts.slice(0, decisionLimit)) {
145
+ await writeMemoryViaDaemon({
146
+ raw_text: decisionText,
147
+ agent_id: input.agentId,
148
+ agent_role: input.agentRole,
149
+ session_id: input.sessionId,
150
+ tool_name: "auto-decision",
151
+ project_name: input.projectName,
152
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
153
+ importance: 8,
154
+ memory_type: "decision"
155
+ });
156
+ }
157
+ return result;
158
+ }
159
+ async function checkpointActiveTask(input) {
160
+ const { writeCheckpoint } = await import("./lib/tasks.js");
161
+ await writeCheckpoint({
162
+ taskId: input.taskId,
163
+ step: input.step ?? "pre-compaction-checkpoint",
164
+ contextSummary: `Auto-checkpoint before context compaction. Task: ${input.taskTitle}. Session: ${input.sessionId}. Project: ${input.projectName}.`
165
+ });
166
+ }
167
+
168
+ export {
169
+ writeContinuityCheckpoint,
170
+ checkpointActiveTask
171
+ };