@askexenow/exe-os 0.9.272 → 0.9.274

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 (397) hide show
  1. package/dist/backfill-metadata-A3534S32.js +597 -0
  2. package/dist/backfill-metadata-B6F2KJJV.js +597 -0
  3. package/dist/backfill-metadata-BOM2MXLI.js +597 -0
  4. package/dist/backfill-metadata-SJ4YMQFS.js +597 -0
  5. package/dist/backfill-metadata-TAU33HJS.js +597 -0
  6. package/dist/bin/agentic-ontology-backfill.js +1 -1
  7. package/dist/bin/agentic-reflection-backfill.js +1 -1
  8. package/dist/bin/agentic-semantic-label.js +1 -1
  9. package/dist/bin/backfill-conversations.js +1 -1
  10. package/dist/bin/backfill-responses.js +1 -1
  11. package/dist/bin/backfill-vectors.js +2 -2
  12. package/dist/bin/bulk-sync-postgres.js +1 -1
  13. package/dist/bin/cleanup-stale-review-tasks.js +2 -2
  14. package/dist/bin/cli.js +5 -5
  15. package/dist/bin/exe-assign.js +1 -1
  16. package/dist/bin/exe-boot.js +3 -3
  17. package/dist/bin/exe-dispatch.js +2 -2
  18. package/dist/bin/exe-doctor.js +1 -1
  19. package/dist/bin/exe-export-behaviors.js +2 -2
  20. package/dist/bin/exe-forget.js +3 -3
  21. package/dist/bin/exe-gateway.js +5 -5
  22. package/dist/bin/exe-heartbeat.js +2 -2
  23. package/dist/bin/exe-kill.js +3 -3
  24. package/dist/bin/exe-launch-agent.js +3 -3
  25. package/dist/bin/exe-pending-messages.js +3 -3
  26. package/dist/bin/exe-pending-notifications.js +25 -10
  27. package/dist/bin/exe-pending-reviews.js +2 -2
  28. package/dist/bin/exe-review.js +3 -3
  29. package/dist/bin/exe-search.js +2 -2
  30. package/dist/bin/exe-session-cleanup.js +5 -5
  31. package/dist/bin/exe-start-codex.js +1 -1
  32. package/dist/bin/exe-start-opencode.js +1 -1
  33. package/dist/bin/exe-status.js +3 -3
  34. package/dist/bin/exe-team.js +1 -1
  35. package/dist/bin/git-sweep.js +2 -2
  36. package/dist/bin/graph-backfill.js +1 -1
  37. package/dist/bin/graph-export.js +2 -2
  38. package/dist/bin/import-history.js +2 -2
  39. package/dist/bin/intercom-check.js +3 -3
  40. package/dist/bin/mcp-sessions.js +2 -2
  41. package/dist/bin/orchestration-metrics.js +1 -1
  42. package/dist/bin/scan-tasks.js +2 -2
  43. package/dist/bin/shard-migrate.js +1 -1
  44. package/dist/capacity-monitor-2GJOFXGB.js +49 -0
  45. package/dist/capacity-monitor-3Z7W4K25.js +49 -0
  46. package/dist/capacity-monitor-BENS3N7B.js +49 -0
  47. package/dist/capacity-monitor-MQUUEZKB.js +49 -0
  48. package/dist/capacity-monitor-VP4RDLSB.js +49 -0
  49. package/dist/catchup-brief-2Q5GPASS.js +151 -0
  50. package/dist/catchup-brief-B4KGAIPU.js +151 -0
  51. package/dist/catchup-brief-NMOV3SSP.js +151 -0
  52. package/dist/catchup-brief-VMF3ESTZ.js +151 -0
  53. package/dist/catchup-brief-ZL7V3BXC.js +151 -0
  54. package/dist/chunk-2FZLPPOD.js +171 -0
  55. package/dist/chunk-2KWVJV6I.js +171 -0
  56. package/dist/chunk-3A4SOC66.js +551 -0
  57. package/dist/chunk-3FZQAO7A.js +3961 -0
  58. package/dist/chunk-3GSGDPLK.js +171 -0
  59. package/dist/chunk-3IM3JNQV.js +377 -0
  60. package/dist/chunk-3OM3V545.js +448 -0
  61. package/dist/chunk-3T27ZQT6.js +495 -0
  62. package/dist/chunk-3VI3QIHU.js +214 -0
  63. package/dist/chunk-3WG3RRWA.js +1345 -0
  64. package/dist/chunk-42A3JV3A.js +128 -0
  65. package/dist/chunk-44MQXM4F.js +13745 -0
  66. package/dist/chunk-46WLFLGP.js +1073 -0
  67. package/dist/chunk-4JMPQB7K.js +1148 -0
  68. package/dist/chunk-4L25LLQM.js +382 -0
  69. package/dist/chunk-4Q7X3SAM.js +204 -0
  70. package/dist/chunk-4UAUCFHA.js +526 -0
  71. package/dist/chunk-4VRJX2SP.js +495 -0
  72. package/dist/chunk-57RBAR2A.js +214 -0
  73. package/dist/chunk-5JF5OQQU.js +89 -0
  74. package/dist/chunk-5LTY4GLX.js +13745 -0
  75. package/dist/chunk-5M5RYJ22.js +3955 -0
  76. package/dist/chunk-5YO2FER3.js +76 -0
  77. package/dist/chunk-62YI2JOC.js +333 -0
  78. package/dist/chunk-6AGPWYFC.js +447 -0
  79. package/dist/chunk-6CH7TYBG.js +58 -0
  80. package/dist/chunk-6CHHFVRQ.js +284 -0
  81. package/dist/chunk-6D64562N.js +330 -0
  82. package/dist/chunk-6F35WOSR.js +447 -0
  83. package/dist/chunk-6HQ22FC6.js +81 -0
  84. package/dist/chunk-6ZSH2BZR.js +244 -0
  85. package/dist/chunk-74MF4T3T.js +3962 -0
  86. package/dist/chunk-77H7IO3O.js +382 -0
  87. package/dist/chunk-7BUWNG6M.js +159 -0
  88. package/dist/chunk-7CB3G3JP.js +1090 -0
  89. package/dist/chunk-7YEQI2WF.js +13745 -0
  90. package/dist/chunk-AJ63GPM7.js +54 -0
  91. package/dist/chunk-BFJ45HQT.js +244 -0
  92. package/dist/chunk-BMHE3UQU.js +495 -0
  93. package/dist/chunk-BNTUZVPS.js +1921 -0
  94. package/dist/chunk-BSWNP5GP.js +197 -0
  95. package/dist/chunk-C6ODVGTC.js +818 -0
  96. package/dist/chunk-CHBGCQXG.js +333 -0
  97. package/dist/chunk-CHUOANKE.js +346 -0
  98. package/dist/chunk-CSF4RUCN.js +58 -0
  99. package/dist/chunk-CXKHWCNN.js +204 -0
  100. package/dist/chunk-CZR6Z5D7.js +330 -0
  101. package/dist/chunk-D24ANCWY.js +204 -0
  102. package/dist/chunk-DBJCWK6T.js +377 -0
  103. package/dist/chunk-DF4SM6ZX.js +128 -0
  104. package/dist/chunk-DOAC6CLC.js +127 -0
  105. package/dist/chunk-DOGNJ4VR.js +818 -0
  106. package/dist/chunk-DYXJFUCI.js +818 -0
  107. package/dist/chunk-EGR2NYID.js +50 -0
  108. package/dist/chunk-EQ5UBJGX.js +81 -0
  109. package/dist/chunk-EWQLQZNS.js +345 -0
  110. package/dist/chunk-FBRQGHSU.js +377 -0
  111. package/dist/chunk-FC5WORMP.js +81 -0
  112. package/dist/chunk-FS7G6NJD.js +377 -0
  113. package/dist/chunk-FZ42OCSP.js +333 -0
  114. package/dist/chunk-G5HWDSBH.js +50 -0
  115. package/dist/chunk-GCBG5TFS.js +1345 -0
  116. package/dist/chunk-GESN6IDC.js +127 -0
  117. package/dist/chunk-GHD7QG6P.js +58 -0
  118. package/dist/chunk-GJAILPCX.js +171 -0
  119. package/dist/chunk-GKUODJS7.js +214 -0
  120. package/dist/chunk-GLDM2FOM.js +76 -0
  121. package/dist/chunk-GMM2BLFB.js +127 -0
  122. package/dist/chunk-GNM75IOI.js +159 -0
  123. package/dist/chunk-GYIX2HLD.js +81 -0
  124. package/dist/chunk-H4LLEQ3F.js +551 -0
  125. package/dist/chunk-HBVCBBDA.js +127 -0
  126. package/dist/chunk-HBYLXJAW.js +284 -0
  127. package/dist/chunk-HBYRWOH5.js +171 -0
  128. package/dist/chunk-HFINM2JG.js +284 -0
  129. package/dist/chunk-HJGHALOG.js +1345 -0
  130. package/dist/chunk-HRB5CP43.js +13745 -0
  131. package/dist/chunk-IDCLPPIM.js +3959 -0
  132. package/dist/chunk-II5SVNBN.js +551 -0
  133. package/dist/chunk-IIRLKWNZ.js +50 -0
  134. package/dist/chunk-IQXLUTWC.js +50 -0
  135. package/dist/chunk-IWXTFDLS.js +244 -0
  136. package/dist/chunk-J2TGVCPE.js +1090 -0
  137. package/dist/chunk-J4Z5GAJ4.js +551 -0
  138. package/dist/chunk-JJSDZFKM.js +1148 -0
  139. package/dist/chunk-JMN2KOC4.js +128 -0
  140. package/dist/chunk-JQVYPBR2.js +81 -0
  141. package/dist/chunk-KK6ZIA37.js +551 -0
  142. package/dist/chunk-KMU7PFO3.js +1148 -0
  143. package/dist/chunk-L7RDKCIR.js +244 -0
  144. package/dist/chunk-LDDCAATQ.js +1090 -0
  145. package/dist/chunk-LJN2O5IG.js +197 -0
  146. package/dist/chunk-LSIYHKDS.js +54 -0
  147. package/dist/chunk-MREDKOS4.js +731 -0
  148. package/dist/chunk-MSF2Y5MS.js +346 -0
  149. package/dist/chunk-MWUISGAB.js +382 -0
  150. package/dist/chunk-MY647ZHR.js +448 -0
  151. package/dist/chunk-MZ5CEHPQ.js +89 -0
  152. package/dist/chunk-N62LCOUL.js +214 -0
  153. package/dist/chunk-NESTX6DR.js +76 -0
  154. package/dist/chunk-NQZORF6L.js +731 -0
  155. package/dist/chunk-NWEFAFJS.js +197 -0
  156. package/dist/chunk-NYF7GHC5.js +526 -0
  157. package/dist/chunk-NZGGRM4P.js +731 -0
  158. package/dist/chunk-NZM4E6Y3.js +89 -0
  159. package/dist/chunk-O6XF6NUN.js +1090 -0
  160. package/dist/chunk-OF4KG3L7.js +1090 -0
  161. package/dist/chunk-OQZPSWVN.js +526 -0
  162. package/dist/chunk-OR6KJ5HH.js +58 -0
  163. package/dist/chunk-OV6NT6QX.js +128 -0
  164. package/dist/chunk-OZZNVYAK.js +346 -0
  165. package/dist/chunk-PDTR3YUU.js +54 -0
  166. package/dist/chunk-PEGTV6EJ.js +1345 -0
  167. package/dist/chunk-PITVTSQW.js +333 -0
  168. package/dist/chunk-PSUAO4MZ.js +345 -0
  169. package/dist/chunk-PWQIS5E5.js +382 -0
  170. package/dist/chunk-PXXHKWDH.js +818 -0
  171. package/dist/chunk-QNEXJFHM.js +495 -0
  172. package/dist/chunk-QOC46BDY.js +346 -0
  173. package/dist/chunk-QUJMPJF6.js +1148 -0
  174. package/dist/chunk-QZD26GDH.js +1073 -0
  175. package/dist/chunk-RA5JLXBQ.js +89 -0
  176. package/dist/chunk-RFXUXL2D.js +128 -0
  177. package/dist/chunk-RTA6KSSK.js +89 -0
  178. package/dist/chunk-SBX6HSEO.js +159 -0
  179. package/dist/chunk-SEUST6U5.js +284 -0
  180. package/dist/chunk-SGNGDKD6.js +127 -0
  181. package/dist/chunk-SUEQF3ZS.js +214 -0
  182. package/dist/chunk-SWNAM2NW.js +526 -0
  183. package/dist/chunk-TBJP46RP.js +1148 -0
  184. package/dist/chunk-TS7NGPU4.js +1073 -0
  185. package/dist/chunk-TUPDOPMG.js +731 -0
  186. package/dist/chunk-TYKUZVCA.js +1921 -0
  187. package/dist/chunk-TYWQZEEP.js +448 -0
  188. package/dist/chunk-TZMXJVZV.js +345 -0
  189. package/dist/chunk-U2DCN7M6.js +1073 -0
  190. package/dist/chunk-UJZPLZLU.js +197 -0
  191. package/dist/chunk-UKRKOJQZ.js +54 -0
  192. package/dist/chunk-V6YIYBTZ.js +204 -0
  193. package/dist/chunk-VCVGE7HK.js +1921 -0
  194. package/dist/chunk-VEWBH33L.js +1921 -0
  195. package/dist/chunk-VK6YZ6K7.js +1073 -0
  196. package/dist/chunk-VKT4N6WM.js +495 -0
  197. package/dist/chunk-VQD4CTOC.js +50 -0
  198. package/dist/chunk-VQUEP7UA.js +244 -0
  199. package/dist/chunk-VXODHQXB.js +377 -0
  200. package/dist/chunk-VZES6N3E.js +526 -0
  201. package/dist/chunk-W5QNW2XG.js +76 -0
  202. package/dist/chunk-WHK7GXFR.js +13745 -0
  203. package/dist/chunk-WQKYSGIT.js +159 -0
  204. package/dist/chunk-WWPJTPPQ.js +197 -0
  205. package/dist/chunk-WYZSWV6A.js +346 -0
  206. package/dist/chunk-XD6VOXK3.js +159 -0
  207. package/dist/chunk-YEMI5UWM.js +58 -0
  208. package/dist/chunk-YHSATGMH.js +3955 -0
  209. package/dist/chunk-YJBCGD46.js +13745 -0
  210. package/dist/chunk-YLICIT56.js +731 -0
  211. package/dist/chunk-YLOJPYCJ.js +284 -0
  212. package/dist/chunk-YTDY65EM.js +1345 -0
  213. package/dist/chunk-YXVGZDDE.js +333 -0
  214. package/dist/chunk-Z33XSFND.js +76 -0
  215. package/dist/chunk-ZA7N3ZTA.js +1921 -0
  216. package/dist/chunk-ZBCOPT2O.js +54 -0
  217. package/dist/chunk-ZFRG2MNB.js +382 -0
  218. package/dist/chunk-ZPBCPDB3.js +818 -0
  219. package/dist/chunk-ZRRRSVQF.js +204 -0
  220. package/dist/core-memory-554Q3YN5.js +110 -0
  221. package/dist/core-memory-BC4YN5F4.js +110 -0
  222. package/dist/core-memory-GTGDVXLO.js +110 -0
  223. package/dist/core-memory-NID6R3YR.js +110 -0
  224. package/dist/core-memory-XHIC5NAB.js +110 -0
  225. package/dist/crm-webhook-MHZTXU5N.js +10 -0
  226. package/dist/crm-webhook-P6TXQMLI.js +10 -0
  227. package/dist/crm-webhook-TMWJT2Z5.js +10 -0
  228. package/dist/crm-webhook-XISULXI7.js +10 -0
  229. package/dist/crm-webhook-YJ5A7F2E.js +10 -0
  230. package/dist/cto-delegation-gate-4PMJZL2T.js +206 -0
  231. package/dist/cto-delegation-gate-A7YKXTRO.js +206 -0
  232. package/dist/cto-delegation-gate-OREBAHUM.js +206 -0
  233. package/dist/cto-delegation-gate-POHESML5.js +206 -0
  234. package/dist/cto-delegation-gate-XFDEMR3W.js +206 -0
  235. package/dist/daemon-orchestration-HXYPHSYU.js +135 -0
  236. package/dist/daemon-orchestration-I5BE46P3.js +135 -0
  237. package/dist/daemon-orchestration-NKE4FYQS.js +135 -0
  238. package/dist/daemon-orchestration-TFHRZ2RV.js +135 -0
  239. package/dist/daemon-orchestration-YWEXRAZA.js +135 -0
  240. package/dist/dreaming-3F72ROTL.js +32 -0
  241. package/dist/dreaming-DJWC7RVV.js +32 -0
  242. package/dist/dreaming-JD7MNJGS.js +32 -0
  243. package/dist/dreaming-LCKPA3B4.js +32 -0
  244. package/dist/dreaming-SDS5IQYC.js +32 -0
  245. package/dist/exe-export-IZ2OYMT4.js +73 -0
  246. package/dist/exe-export-JNWX6ZCQ.js +73 -0
  247. package/dist/exe-export-OQXCJLWB.js +73 -0
  248. package/dist/exe-export-QUT5WDDK.js +73 -0
  249. package/dist/exe-export-YLVAZQAV.js +73 -0
  250. package/dist/exe-import-AEJYBLA7.js +76 -0
  251. package/dist/exe-import-HWPYARCG.js +76 -0
  252. package/dist/exe-import-JE7YYYBJ.js +76 -0
  253. package/dist/exe-import-K4TWTG24.js +76 -0
  254. package/dist/exe-import-LZKZQ54C.js +76 -0
  255. package/dist/exe-key-6FPQHBW6.js +579 -0
  256. package/dist/exe-key-7XX4OUXD.js +579 -0
  257. package/dist/exe-key-N3XYSEXP.js +579 -0
  258. package/dist/exe-key-Q3ZNYT6L.js +579 -0
  259. package/dist/exe-key-Q47RPB45.js +579 -0
  260. package/dist/exe-snapshot-2USE2HHM.js +164 -0
  261. package/dist/exe-snapshot-HZU66HXX.js +164 -0
  262. package/dist/exe-snapshot-L7OQWZUH.js +164 -0
  263. package/dist/exe-snapshot-NET7N53Z.js +164 -0
  264. package/dist/exe-snapshot-X5N5KIVJ.js +164 -0
  265. package/dist/fast-db-init-C6IPNVPU.js +7 -0
  266. package/dist/fast-db-init-I7CMGBAN.js +7 -0
  267. package/dist/fast-db-init-P6YESOUL.js +7 -0
  268. package/dist/fast-db-init-VDNEFVQF.js +7 -0
  269. package/dist/fast-db-init-Y6C4TM2T.js +7 -0
  270. package/dist/gateway/index.js +6 -6
  271. package/dist/git-task-sweep-C4OV2CEY.js +40 -0
  272. package/dist/git-task-sweep-J66SYJMW.js +40 -0
  273. package/dist/git-task-sweep-JYCD3ZKQ.js +40 -0
  274. package/dist/git-task-sweep-O723DB7F.js +40 -0
  275. package/dist/git-task-sweep-R3CZQT4O.js +40 -0
  276. package/dist/hooks/bug-report-worker.js +4 -4
  277. package/dist/hooks/codex-stop-task-finalizer.js +4 -4
  278. package/dist/hooks/commit-complete.js +4 -4
  279. package/dist/hooks/error-recall.js +2 -2
  280. package/dist/hooks/ingest.js +2 -2
  281. package/dist/hooks/instructions-loaded.js +1 -1
  282. package/dist/hooks/manifest.json +18 -18
  283. package/dist/hooks/notification.js +1 -1
  284. package/dist/hooks/post-compact.js +2 -2
  285. package/dist/hooks/post-tool-combined.js +2 -2
  286. package/dist/hooks/pre-compact.js +3 -3
  287. package/dist/hooks/pre-tool-use.js +6 -6
  288. package/dist/hooks/prompt-submit.js +8 -8
  289. package/dist/hooks/session-end.js +5 -5
  290. package/dist/hooks/session-start.js +5 -5
  291. package/dist/hooks/stop.js +5 -5
  292. package/dist/hooks/subagent-stop.js +2 -2
  293. package/dist/hooks/summary-worker.js +5 -5
  294. package/dist/index.js +9 -9
  295. package/dist/lib/consolidation.js +2 -2
  296. package/dist/lib/exe-daemon.js +18 -17
  297. package/dist/lib/hybrid-search.js +2 -2
  298. package/dist/lib/messaging.js +4 -2
  299. package/dist/lib/schedules.js +2 -2
  300. package/dist/lib/store.js +1 -1
  301. package/dist/lib/tasks.js +3 -3
  302. package/dist/lib/tmux-routing.js +1 -1
  303. package/dist/mcp/register-tools.js +24 -24
  304. package/dist/mcp/server.js +25 -25
  305. package/dist/mcp/tools/create-task.js +4 -4
  306. package/dist/mcp/tools/list-tasks.js +4 -4
  307. package/dist/mcp/tools/send-message.js +3 -3
  308. package/dist/mcp/tools/update-task.js +4 -4
  309. package/dist/notifications-65STXW6N.js +45 -0
  310. package/dist/notifications-C6WBZYSS.js +45 -0
  311. package/dist/notifications-K3JDUPL5.js +45 -0
  312. package/dist/notifications-KQOD66ZK.js +45 -0
  313. package/dist/notifications-PFK5OQEF.js +45 -0
  314. package/dist/orchestrator-3D7QEVGP.js +33 -0
  315. package/dist/orchestrator-CC32RZO5.js +33 -0
  316. package/dist/orchestrator-DDKE4UM3.js +33 -0
  317. package/dist/orchestrator-DWAYSAFR.js +33 -0
  318. package/dist/orchestrator-TL37EAWA.js +33 -0
  319. package/dist/pipeline-router-ADLTS6DZ.js +13 -0
  320. package/dist/pipeline-router-NCOLBCHN.js +13 -0
  321. package/dist/pipeline-router-O6ZLSM6U.js +13 -0
  322. package/dist/pipeline-router-QKLYUYU7.js +13 -0
  323. package/dist/pipeline-router-W2W5XDND.js +13 -0
  324. package/dist/reranker-3GFGGCJF.js +19 -0
  325. package/dist/reranker-3KLYAHO4.js +19 -0
  326. package/dist/reranker-64KDRYPP.js +19 -0
  327. package/dist/reranker-MGY5A7BQ.js +19 -0
  328. package/dist/reranker-ZBX6HSU2.js +19 -0
  329. package/dist/review-polling-3ZZ2T26N.js +124 -0
  330. package/dist/review-polling-62EGCBLH.js +124 -0
  331. package/dist/review-polling-BBQUF54Q.js +124 -0
  332. package/dist/review-polling-RXQZPGRY.js +124 -0
  333. package/dist/review-polling-YBB6DKA5.js +124 -0
  334. package/dist/runtime/index.js +3 -3
  335. package/dist/session-events-EAODNMNR.js +36 -0
  336. package/dist/session-events-MVO6JNUL.js +36 -0
  337. package/dist/session-events-PRVDH3QS.js +36 -0
  338. package/dist/session-events-PU5OQKMB.js +36 -0
  339. package/dist/session-events-UXAPXR2D.js +36 -0
  340. package/dist/session-scope-K4FRGQK4.js +86 -0
  341. package/dist/session-scope-M47JR2SD.js +86 -0
  342. package/dist/session-scope-MRQYSD5S.js +86 -0
  343. package/dist/session-scope-TAH5BUYW.js +86 -0
  344. package/dist/session-scope-UXZ6RUWC.js +86 -0
  345. package/dist/skill-refinement-447DZWNK.js +157 -0
  346. package/dist/skill-refinement-567JSF7L.js +157 -0
  347. package/dist/skill-refinement-6JVQ3TMS.js +157 -0
  348. package/dist/skill-refinement-TCI6A32K.js +157 -0
  349. package/dist/skill-refinement-XNGD3C62.js +157 -0
  350. package/dist/task-enforcement-7QXEVHAS.js +391 -0
  351. package/dist/task-enforcement-AZEO67N6.js +391 -0
  352. package/dist/task-enforcement-EOYP6IO4.js +391 -0
  353. package/dist/task-enforcement-L5XQKFOV.js +391 -0
  354. package/dist/task-enforcement-RJPWWEAE.js +391 -0
  355. package/dist/task-scope-DRQRNWB7.js +35 -0
  356. package/dist/task-scope-GS7TS3UV.js +35 -0
  357. package/dist/task-scope-KQNCP42W.js +35 -0
  358. package/dist/task-scope-OJER4AQ2.js +35 -0
  359. package/dist/task-scope-SM5F6RD3.js +35 -0
  360. package/dist/tasks-crud-6TWWETGB.js +77 -0
  361. package/dist/tasks-crud-DBHYO4MM.js +77 -0
  362. package/dist/tasks-crud-EFYWPPEI.js +77 -0
  363. package/dist/tasks-crud-JIS5B4GZ.js +77 -0
  364. package/dist/tasks-crud-WKJSB5PH.js +77 -0
  365. package/dist/tasks-notify-GEJKT5TO.js +38 -0
  366. package/dist/tasks-notify-OW3JDPLK.js +38 -0
  367. package/dist/tasks-notify-UHE7X6RD.js +38 -0
  368. package/dist/tasks-notify-W5WVP2FG.js +38 -0
  369. package/dist/tasks-notify-YKEOYOKN.js +38 -0
  370. package/dist/tasks-review-2D2X6AHO.js +47 -0
  371. package/dist/tasks-review-DRKN34HO.js +47 -0
  372. package/dist/tasks-review-IQSAXXXE.js +47 -0
  373. package/dist/tasks-review-KWELLLS3.js +47 -0
  374. package/dist/tasks-review-SUJ6AKAS.js +47 -0
  375. package/dist/telemetry-upload-FPQAB6ZU.js +739 -0
  376. package/dist/telemetry-upload-JQYBFEWG.js +739 -0
  377. package/dist/telemetry-upload-MYVBVUGE.js +739 -0
  378. package/dist/telemetry-upload-UPAABLGK.js +739 -0
  379. package/dist/telemetry-upload-UYEHBFGO.js +739 -0
  380. package/dist/tui/App.js +7 -7
  381. package/dist/tui-data-LYUZFNO4.js +258 -0
  382. package/dist/tui-data-NIT4PI5T.js +258 -0
  383. package/dist/tui-data-QM5BOKRF.js +258 -0
  384. package/dist/tui-data-VAE43SM3.js +258 -0
  385. package/dist/tui-data-X7HT3FXF.js +258 -0
  386. package/dist/worker-gate-BZBWTMCY.js +21 -0
  387. package/dist/worker-gate-CHVL6UGT.js +21 -0
  388. package/dist/worker-gate-I6XMCYS4.js +21 -0
  389. package/dist/worker-gate-KQFS4RJE.js +21 -0
  390. package/dist/worker-gate-NRP7CMS7.js +21 -0
  391. package/dist/workflow-engine-AKKOMJJQ.js +28 -0
  392. package/dist/workflow-engine-EHWQO3LX.js +28 -0
  393. package/dist/workflow-engine-EMZ5WMQ5.js +28 -0
  394. package/dist/workflow-engine-I3OUMSF4.js +28 -0
  395. package/dist/workflow-engine-PHTLEAXP.js +28 -0
  396. package/package.json +1 -1
  397. package/release-notes.json +46 -46
package/dist/tui/App.js CHANGED
@@ -6,7 +6,7 @@ import "../chunk-XIKBIAOS.js";
6
6
  import "../chunk-K77WC6HA.js";
7
7
  import {
8
8
  sessionScopeFilter
9
- } from "../chunk-5AS622MM.js";
9
+ } from "../chunk-3FZQAO7A.js";
10
10
  import "../chunk-KZNSOHCB.js";
11
11
  import "../chunk-5CHYEKMH.js";
12
12
  import "../chunk-4JERP7NT.js";
@@ -7403,7 +7403,7 @@ function useOrchestrator(enabled = true) {
7403
7403
  let cancelled = false;
7404
7404
  async function init() {
7405
7405
  try {
7406
- const { MultiAgentOrchestrator } = await import("../orchestrator-XPG6LJAI.js");
7406
+ const { MultiAgentOrchestrator } = await import("../orchestrator-DDKE4UM3.js");
7407
7407
  const { getCoordinatorName, isCoordinatorRole, loadEmployees } = await import("../lib/employees.js");
7408
7408
  const { isExeSession } = await import("../lib/tmux-routing.js");
7409
7409
  const { listTmuxSessions, inTmux } = await import("../lib/tmux-status.js");
@@ -7444,7 +7444,7 @@ function useOrchestrator(enabled = true) {
7444
7444
  setTotalInProgress(health.totalInProgress);
7445
7445
  try {
7446
7446
  const { getClient } = await import("../lib/database.js");
7447
- const { sessionScopeFilter: sessionScopeFilter2 } = await import("../task-scope-TZYMB634.js");
7447
+ const { sessionScopeFilter: sessionScopeFilter2 } = await import("../task-scope-OJER4AQ2.js");
7448
7448
  const client = getClient();
7449
7449
  const uoScope = sessionScopeFilter2();
7450
7450
  const result = await client.execute({
@@ -7476,7 +7476,7 @@ function useOrchestrator(enabled = true) {
7476
7476
  const spawnSession = useCallback5(
7477
7477
  async (agentId) => {
7478
7478
  try {
7479
- const { createTaskCore } = await import("../tasks-crud-HIPXKRKX.js");
7479
+ const { createTaskCore } = await import("../tasks-crud-WKJSB5PH.js");
7480
7480
  const { ensureEmployee } = await import("../lib/tmux-routing.js");
7481
7481
  const { getCoordinatorName } = await import("../lib/employees.js");
7482
7482
  await createTaskCore({
@@ -8098,7 +8098,7 @@ function TasksView({ onBack }) {
8098
8098
  const { withTrace } = await import("../telemetry-43X3GT3R.js");
8099
8099
  return withTrace("tui.tasks.loadTasks", async () => {
8100
8100
  try {
8101
- const { loadTaskList } = await import("../tui-data-GDGBOS6G.js");
8101
+ const { loadTaskList } = await import("../tui-data-NIT4PI5T.js");
8102
8102
  const tasks = await loadTaskList();
8103
8103
  setAllTasks(
8104
8104
  tasks.map((task) => ({
@@ -8931,7 +8931,7 @@ function TeamView({ onBack, onViewSessions }) {
8931
8931
  let projectsByEmployee = /* @__PURE__ */ new Map();
8932
8932
  let currentTaskByEmployee = /* @__PURE__ */ new Map();
8933
8933
  try {
8934
- const { loadTeamBadgeCounts, loadTeamDetailMetrics } = await import("../tui-data-GDGBOS6G.js");
8934
+ const { loadTeamBadgeCounts, loadTeamDetailMetrics } = await import("../tui-data-NIT4PI5T.js");
8935
8935
  setBadgeInFlight(true);
8936
8936
  const badgeCountsPromise = loadTeamBadgeCounts();
8937
8937
  const detailsPromise = loadTeamDetailMetrics(roster.map((emp) => emp.name));
@@ -9297,7 +9297,7 @@ function WikiView({ onBack }) {
9297
9297
  }
9298
9298
  setSearchLoading(true);
9299
9299
  try {
9300
- const { searchWikiMemoryRows } = await import("../tui-data-GDGBOS6G.js");
9300
+ const { searchWikiMemoryRows } = await import("../tui-data-NIT4PI5T.js");
9301
9301
  setSearchResults(await searchWikiMemoryRows(query));
9302
9302
  } catch {
9303
9303
  setSearchResults([]);
@@ -0,0 +1,258 @@
1
+ import {
2
+ sessionScopeFilter
3
+ } from "./chunk-YHSATGMH.js";
4
+ import "./chunk-KZNSOHCB.js";
5
+ import "./chunk-5CHYEKMH.js";
6
+ import "./chunk-4JERP7NT.js";
7
+ import "./chunk-OBUV3W7L.js";
8
+ import "./chunk-MVW62NIZ.js";
9
+ import "./chunk-OYNKIAVW.js";
10
+ import "./chunk-CX6GL3ZJ.js";
11
+ import "./chunk-2NQQP3FF.js";
12
+ import "./chunk-EZ7KAZMC.js";
13
+ import "./chunk-NGP6LSV2.js";
14
+ import "./chunk-WQEUY7DC.js";
15
+ import "./chunk-CVYC6DUW.js";
16
+ import "./chunk-OPU3NYOO.js";
17
+ import "./chunk-GJV3WDWM.js";
18
+ import "./chunk-MP2AFCGL.js";
19
+ import "./chunk-G33BHQCO.js";
20
+ import "./chunk-HYZV25LY.js";
21
+ import {
22
+ getClient
23
+ } from "./chunk-CHBHR5W6.js";
24
+ import "./chunk-2I23RPSI.js";
25
+ import "./chunk-C6OYEJJI.js";
26
+ import "./chunk-FXU7JOXK.js";
27
+ import "./chunk-MOZ2YQ54.js";
28
+ import "./chunk-VXIMSRTO.js";
29
+ import "./chunk-LYH5HE24.js";
30
+ import "./chunk-MLKGABMK.js";
31
+
32
+ // src/lib/tui-data.ts
33
+ async function loadMemoryDashboard(limit) {
34
+ const client = getClient();
35
+ const [countResult, recentResult, agentResult] = await Promise.all([
36
+ client.execute("SELECT COUNT(*) as cnt FROM memories"),
37
+ client.execute({
38
+ sql: "SELECT agent_id, tool_name, project_name, raw_text, timestamp FROM memories ORDER BY timestamp DESC LIMIT ?",
39
+ args: [limit]
40
+ }),
41
+ client.execute("SELECT agent_id, COUNT(*) as cnt FROM memories GROUP BY agent_id ORDER BY cnt DESC")
42
+ ]);
43
+ return {
44
+ total: Number(countResult.rows[0]?.cnt ?? 0),
45
+ recent: recentResult.rows.map((row) => ({
46
+ agentId: String(row.agent_id ?? "unknown"),
47
+ toolName: String(row.tool_name ?? ""),
48
+ projectName: String(row.project_name ?? ""),
49
+ rawText: String(row.raw_text ?? ""),
50
+ timestamp: String(row.timestamp ?? "")
51
+ })),
52
+ byAgent: agentResult.rows.map((row) => ({
53
+ agentId: String(row.agent_id ?? "unknown"),
54
+ count: Number(row.cnt ?? 0)
55
+ }))
56
+ };
57
+ }
58
+ async function loadTeamBadgeCounts() {
59
+ const client = getClient();
60
+ const memoryCounts = /* @__PURE__ */ new Map();
61
+ const memResult = await client.execute("SELECT agent_id, COUNT(*) as cnt FROM memories GROUP BY agent_id");
62
+ for (const row of memResult.rows) {
63
+ memoryCounts.set(String(row.agent_id), Number(row.cnt));
64
+ }
65
+ return memoryCounts;
66
+ }
67
+ async function loadTeamDetailMetrics(employeeNames) {
68
+ const client = getClient();
69
+ const projectsByEmployee = /* @__PURE__ */ new Map();
70
+ const currentTaskByEmployee = /* @__PURE__ */ new Map();
71
+ const scope = sessionScopeFilter();
72
+ for (const employeeName of employeeNames) {
73
+ const [projectResult, taskResult] = await Promise.all([
74
+ client.execute({
75
+ sql: `SELECT DISTINCT project_name,
76
+ MAX(CASE WHEN status = 'in_progress' THEN 1 WHEN status = 'open' THEN 2 ELSE 3 END) as urgency
77
+ FROM tasks
78
+ WHERE assigned_to = ? AND status IN ('open','in_progress','done')${scope.sql}
79
+ GROUP BY project_name
80
+ ORDER BY urgency ASC
81
+ LIMIT 5`,
82
+ args: [employeeName, ...scope.args]
83
+ }),
84
+ client.execute({
85
+ sql: `SELECT title FROM tasks
86
+ WHERE assigned_to = ? AND status = 'in_progress'${scope.sql}
87
+ ORDER BY updated_at DESC
88
+ LIMIT 1`,
89
+ args: [employeeName, ...scope.args]
90
+ })
91
+ ]);
92
+ const projects = projectResult.rows.map((row) => {
93
+ const urgency = Number(row.urgency);
94
+ return {
95
+ name: String(row.project_name),
96
+ status: urgency === 1 ? "active" : urgency === 2 ? "has_tasks" : "idle"
97
+ };
98
+ });
99
+ if (projects.length > 0) projectsByEmployee.set(employeeName, projects);
100
+ if (taskResult.rows.length > 0) {
101
+ currentTaskByEmployee.set(employeeName, String(taskResult.rows[0].title));
102
+ }
103
+ }
104
+ return { projectsByEmployee, currentTaskByEmployee };
105
+ }
106
+ async function loadTeamMetrics(employeeNames) {
107
+ const [memoryCounts, { projectsByEmployee, currentTaskByEmployee }] = await Promise.all([
108
+ loadTeamBadgeCounts(),
109
+ loadTeamDetailMetrics(employeeNames)
110
+ ]);
111
+ return { memoryCounts, projectsByEmployee, currentTaskByEmployee };
112
+ }
113
+ async function loadTaskList() {
114
+ const client = getClient();
115
+ const scope = sessionScopeFilter();
116
+ const result = await client.execute({
117
+ sql: `SELECT id, title, priority, assigned_to, assigned_by, status, project_name, created_at, result
118
+ FROM tasks
119
+ WHERE 1=1${scope.sql}
120
+ ORDER BY
121
+ CASE status WHEN 'in_progress' THEN 0 WHEN 'open' THEN 1 WHEN 'blocked' THEN 2 WHEN 'needs_review' THEN 3 WHEN 'done' THEN 4 ELSE 5 END,
122
+ CASE priority WHEN 'p0' THEN 0 WHEN 'p1' THEN 1 WHEN 'p2' THEN 2 ELSE 3 END,
123
+ created_at DESC`,
124
+ args: [...scope.args]
125
+ });
126
+ return result.rows.map((row) => ({
127
+ id: String(row.id ?? ""),
128
+ title: String(row.title ?? ""),
129
+ priority: String(row.priority ?? "p2").toUpperCase(),
130
+ assignedTo: String(row.assigned_to ?? ""),
131
+ assignedBy: String(row.assigned_by ?? ""),
132
+ status: String(row.status ?? "open"),
133
+ projectName: String(row.project_name ?? ""),
134
+ createdAt: String(row.created_at ?? ""),
135
+ result: String(row.result ?? "")
136
+ }));
137
+ }
138
+ async function searchWikiMemoryRows(query) {
139
+ const client = getClient();
140
+ const result = await client.execute({
141
+ sql: `SELECT id, agent_id, raw_text, timestamp, project_name
142
+ FROM memories
143
+ WHERE raw_text LIKE ? AND COALESCE(status, 'active') = 'active'
144
+ ORDER BY timestamp DESC LIMIT 20`,
145
+ args: [`%${query}%`]
146
+ });
147
+ return result.rows.map((row) => ({
148
+ id: String(row.id),
149
+ agentId: String(row.agent_id),
150
+ rawText: String(row.raw_text),
151
+ timestamp: String(row.timestamp),
152
+ projectName: String(row.project_name ?? "")
153
+ }));
154
+ }
155
+ async function loadEntityProfile(entityName) {
156
+ const client = getClient();
157
+ const { getEntityByName, getRelationships, getEntityTimeline } = await import("./graph-query-UTLL5MKN.js");
158
+ const entity = await getEntityByName(client, entityName);
159
+ if (!entity) return null;
160
+ const [relationships, timelineRaw] = await Promise.all([
161
+ getRelationships(client, entity.id, { direction: "both" }),
162
+ getEntityTimeline(client, entity.id)
163
+ ]);
164
+ const neighbors = relationships.map((r) => {
165
+ const isOutgoing = r.sourceEntityId === entity.id;
166
+ return {
167
+ name: isOutgoing ? r.targetName : r.sourceName,
168
+ type: isOutgoing ? "target" : "source",
169
+ relType: r.type,
170
+ direction: isOutgoing ? "outgoing" : "incoming",
171
+ weight: r.weight,
172
+ confidence: r.confidence
173
+ };
174
+ });
175
+ const timeline = timelineRaw.slice(0, 20).map((t) => {
176
+ const isOutgoing = t.relationship.sourceEntityId === entity.id;
177
+ return {
178
+ timestamp: t.timestamp,
179
+ relType: t.relationship.type,
180
+ partnerName: isOutgoing ? t.relationship.targetName : t.relationship.sourceName,
181
+ direction: isOutgoing ? "outgoing" : "incoming"
182
+ };
183
+ });
184
+ const relationshipTypes = {};
185
+ for (const r of relationships) {
186
+ relationshipTypes[r.type] = (relationshipTypes[r.type] ?? 0) + 1;
187
+ }
188
+ return {
189
+ entity,
190
+ neighbors,
191
+ timeline,
192
+ stats: {
193
+ totalRelationships: relationships.length,
194
+ relationshipTypes
195
+ }
196
+ };
197
+ }
198
+ async function searchEntitiesList(query, limit = 20) {
199
+ const client = getClient();
200
+ const { searchEntities } = await import("./graph-query-UTLL5MKN.js");
201
+ const entities = await searchEntities(client, query, limit);
202
+ if (entities.length === 0) return [];
203
+ const placeholders = entities.map(() => "?").join(",");
204
+ const ids = entities.map((e) => e.id);
205
+ const countResult = await client.execute({
206
+ sql: `SELECT source_entity_id as eid, COUNT(*) as cnt FROM relationships WHERE source_entity_id IN (${placeholders}) AND valid_until IS NULL GROUP BY source_entity_id
207
+ UNION ALL
208
+ SELECT target_entity_id as eid, COUNT(*) as cnt FROM relationships WHERE target_entity_id IN (${placeholders}) AND valid_until IS NULL GROUP BY target_entity_id`,
209
+ args: [...ids, ...ids]
210
+ });
211
+ const countMap = /* @__PURE__ */ new Map();
212
+ for (const row of countResult.rows) {
213
+ const eid = String(row.eid);
214
+ countMap.set(eid, (countMap.get(eid) ?? 0) + Number(row.cnt));
215
+ }
216
+ return entities.map((e) => ({
217
+ id: e.id,
218
+ name: e.name,
219
+ type: e.type,
220
+ lastSeen: e.lastSeen,
221
+ relationshipCount: countMap.get(e.id) ?? 0
222
+ }));
223
+ }
224
+ async function loadHotEntities(limit = 15) {
225
+ const client = getClient();
226
+ const { getHotEntities } = await import("./graph-query-UTLL5MKN.js");
227
+ const since = new Date(Date.now() - 7 * 24 * 60 * 60 * 1e3);
228
+ const hot = await getHotEntities(client, since, limit);
229
+ return hot.map((h) => ({
230
+ id: h.entity.id,
231
+ name: h.entity.name,
232
+ type: h.entity.type,
233
+ lastSeen: h.entity.lastSeen,
234
+ relationshipCount: h.newRelationships
235
+ }));
236
+ }
237
+ async function loadGraphOverview() {
238
+ const client = getClient();
239
+ const { getGraphStats } = await import("./graph-query-UTLL5MKN.js");
240
+ const stats = await getGraphStats(client);
241
+ return {
242
+ totalEntities: stats.entities,
243
+ totalRelationships: stats.relationships,
244
+ entityTypes: stats.types
245
+ };
246
+ }
247
+ export {
248
+ loadEntityProfile,
249
+ loadGraphOverview,
250
+ loadHotEntities,
251
+ loadMemoryDashboard,
252
+ loadTaskList,
253
+ loadTeamBadgeCounts,
254
+ loadTeamDetailMetrics,
255
+ loadTeamMetrics,
256
+ searchEntitiesList,
257
+ searchWikiMemoryRows
258
+ };
@@ -0,0 +1,258 @@
1
+ import {
2
+ sessionScopeFilter
3
+ } from "./chunk-3FZQAO7A.js";
4
+ import "./chunk-KZNSOHCB.js";
5
+ import "./chunk-5CHYEKMH.js";
6
+ import "./chunk-4JERP7NT.js";
7
+ import "./chunk-OBUV3W7L.js";
8
+ import "./chunk-MVW62NIZ.js";
9
+ import "./chunk-OYNKIAVW.js";
10
+ import "./chunk-CX6GL3ZJ.js";
11
+ import "./chunk-2NQQP3FF.js";
12
+ import "./chunk-EZ7KAZMC.js";
13
+ import "./chunk-NGP6LSV2.js";
14
+ import "./chunk-WQEUY7DC.js";
15
+ import "./chunk-CVYC6DUW.js";
16
+ import "./chunk-OPU3NYOO.js";
17
+ import "./chunk-GJV3WDWM.js";
18
+ import "./chunk-MP2AFCGL.js";
19
+ import "./chunk-G33BHQCO.js";
20
+ import "./chunk-HYZV25LY.js";
21
+ import {
22
+ getClient
23
+ } from "./chunk-CHBHR5W6.js";
24
+ import "./chunk-2I23RPSI.js";
25
+ import "./chunk-C6OYEJJI.js";
26
+ import "./chunk-FXU7JOXK.js";
27
+ import "./chunk-MOZ2YQ54.js";
28
+ import "./chunk-VXIMSRTO.js";
29
+ import "./chunk-LYH5HE24.js";
30
+ import "./chunk-MLKGABMK.js";
31
+
32
+ // src/lib/tui-data.ts
33
+ async function loadMemoryDashboard(limit) {
34
+ const client = getClient();
35
+ const [countResult, recentResult, agentResult] = await Promise.all([
36
+ client.execute("SELECT COUNT(*) as cnt FROM memories"),
37
+ client.execute({
38
+ sql: "SELECT agent_id, tool_name, project_name, raw_text, timestamp FROM memories ORDER BY timestamp DESC LIMIT ?",
39
+ args: [limit]
40
+ }),
41
+ client.execute("SELECT agent_id, COUNT(*) as cnt FROM memories GROUP BY agent_id ORDER BY cnt DESC")
42
+ ]);
43
+ return {
44
+ total: Number(countResult.rows[0]?.cnt ?? 0),
45
+ recent: recentResult.rows.map((row) => ({
46
+ agentId: String(row.agent_id ?? "unknown"),
47
+ toolName: String(row.tool_name ?? ""),
48
+ projectName: String(row.project_name ?? ""),
49
+ rawText: String(row.raw_text ?? ""),
50
+ timestamp: String(row.timestamp ?? "")
51
+ })),
52
+ byAgent: agentResult.rows.map((row) => ({
53
+ agentId: String(row.agent_id ?? "unknown"),
54
+ count: Number(row.cnt ?? 0)
55
+ }))
56
+ };
57
+ }
58
+ async function loadTeamBadgeCounts() {
59
+ const client = getClient();
60
+ const memoryCounts = /* @__PURE__ */ new Map();
61
+ const memResult = await client.execute("SELECT agent_id, COUNT(*) as cnt FROM memories GROUP BY agent_id");
62
+ for (const row of memResult.rows) {
63
+ memoryCounts.set(String(row.agent_id), Number(row.cnt));
64
+ }
65
+ return memoryCounts;
66
+ }
67
+ async function loadTeamDetailMetrics(employeeNames) {
68
+ const client = getClient();
69
+ const projectsByEmployee = /* @__PURE__ */ new Map();
70
+ const currentTaskByEmployee = /* @__PURE__ */ new Map();
71
+ const scope = sessionScopeFilter();
72
+ for (const employeeName of employeeNames) {
73
+ const [projectResult, taskResult] = await Promise.all([
74
+ client.execute({
75
+ sql: `SELECT DISTINCT project_name,
76
+ MAX(CASE WHEN status = 'in_progress' THEN 1 WHEN status = 'open' THEN 2 ELSE 3 END) as urgency
77
+ FROM tasks
78
+ WHERE assigned_to = ? AND status IN ('open','in_progress','done')${scope.sql}
79
+ GROUP BY project_name
80
+ ORDER BY urgency ASC
81
+ LIMIT 5`,
82
+ args: [employeeName, ...scope.args]
83
+ }),
84
+ client.execute({
85
+ sql: `SELECT title FROM tasks
86
+ WHERE assigned_to = ? AND status = 'in_progress'${scope.sql}
87
+ ORDER BY updated_at DESC
88
+ LIMIT 1`,
89
+ args: [employeeName, ...scope.args]
90
+ })
91
+ ]);
92
+ const projects = projectResult.rows.map((row) => {
93
+ const urgency = Number(row.urgency);
94
+ return {
95
+ name: String(row.project_name),
96
+ status: urgency === 1 ? "active" : urgency === 2 ? "has_tasks" : "idle"
97
+ };
98
+ });
99
+ if (projects.length > 0) projectsByEmployee.set(employeeName, projects);
100
+ if (taskResult.rows.length > 0) {
101
+ currentTaskByEmployee.set(employeeName, String(taskResult.rows[0].title));
102
+ }
103
+ }
104
+ return { projectsByEmployee, currentTaskByEmployee };
105
+ }
106
+ async function loadTeamMetrics(employeeNames) {
107
+ const [memoryCounts, { projectsByEmployee, currentTaskByEmployee }] = await Promise.all([
108
+ loadTeamBadgeCounts(),
109
+ loadTeamDetailMetrics(employeeNames)
110
+ ]);
111
+ return { memoryCounts, projectsByEmployee, currentTaskByEmployee };
112
+ }
113
+ async function loadTaskList() {
114
+ const client = getClient();
115
+ const scope = sessionScopeFilter();
116
+ const result = await client.execute({
117
+ sql: `SELECT id, title, priority, assigned_to, assigned_by, status, project_name, created_at, result
118
+ FROM tasks
119
+ WHERE 1=1${scope.sql}
120
+ ORDER BY
121
+ CASE status WHEN 'in_progress' THEN 0 WHEN 'open' THEN 1 WHEN 'blocked' THEN 2 WHEN 'needs_review' THEN 3 WHEN 'done' THEN 4 ELSE 5 END,
122
+ CASE priority WHEN 'p0' THEN 0 WHEN 'p1' THEN 1 WHEN 'p2' THEN 2 ELSE 3 END,
123
+ created_at DESC`,
124
+ args: [...scope.args]
125
+ });
126
+ return result.rows.map((row) => ({
127
+ id: String(row.id ?? ""),
128
+ title: String(row.title ?? ""),
129
+ priority: String(row.priority ?? "p2").toUpperCase(),
130
+ assignedTo: String(row.assigned_to ?? ""),
131
+ assignedBy: String(row.assigned_by ?? ""),
132
+ status: String(row.status ?? "open"),
133
+ projectName: String(row.project_name ?? ""),
134
+ createdAt: String(row.created_at ?? ""),
135
+ result: String(row.result ?? "")
136
+ }));
137
+ }
138
+ async function searchWikiMemoryRows(query) {
139
+ const client = getClient();
140
+ const result = await client.execute({
141
+ sql: `SELECT id, agent_id, raw_text, timestamp, project_name
142
+ FROM memories
143
+ WHERE raw_text LIKE ? AND COALESCE(status, 'active') = 'active'
144
+ ORDER BY timestamp DESC LIMIT 20`,
145
+ args: [`%${query}%`]
146
+ });
147
+ return result.rows.map((row) => ({
148
+ id: String(row.id),
149
+ agentId: String(row.agent_id),
150
+ rawText: String(row.raw_text),
151
+ timestamp: String(row.timestamp),
152
+ projectName: String(row.project_name ?? "")
153
+ }));
154
+ }
155
+ async function loadEntityProfile(entityName) {
156
+ const client = getClient();
157
+ const { getEntityByName, getRelationships, getEntityTimeline } = await import("./graph-query-UTLL5MKN.js");
158
+ const entity = await getEntityByName(client, entityName);
159
+ if (!entity) return null;
160
+ const [relationships, timelineRaw] = await Promise.all([
161
+ getRelationships(client, entity.id, { direction: "both" }),
162
+ getEntityTimeline(client, entity.id)
163
+ ]);
164
+ const neighbors = relationships.map((r) => {
165
+ const isOutgoing = r.sourceEntityId === entity.id;
166
+ return {
167
+ name: isOutgoing ? r.targetName : r.sourceName,
168
+ type: isOutgoing ? "target" : "source",
169
+ relType: r.type,
170
+ direction: isOutgoing ? "outgoing" : "incoming",
171
+ weight: r.weight,
172
+ confidence: r.confidence
173
+ };
174
+ });
175
+ const timeline = timelineRaw.slice(0, 20).map((t) => {
176
+ const isOutgoing = t.relationship.sourceEntityId === entity.id;
177
+ return {
178
+ timestamp: t.timestamp,
179
+ relType: t.relationship.type,
180
+ partnerName: isOutgoing ? t.relationship.targetName : t.relationship.sourceName,
181
+ direction: isOutgoing ? "outgoing" : "incoming"
182
+ };
183
+ });
184
+ const relationshipTypes = {};
185
+ for (const r of relationships) {
186
+ relationshipTypes[r.type] = (relationshipTypes[r.type] ?? 0) + 1;
187
+ }
188
+ return {
189
+ entity,
190
+ neighbors,
191
+ timeline,
192
+ stats: {
193
+ totalRelationships: relationships.length,
194
+ relationshipTypes
195
+ }
196
+ };
197
+ }
198
+ async function searchEntitiesList(query, limit = 20) {
199
+ const client = getClient();
200
+ const { searchEntities } = await import("./graph-query-UTLL5MKN.js");
201
+ const entities = await searchEntities(client, query, limit);
202
+ if (entities.length === 0) return [];
203
+ const placeholders = entities.map(() => "?").join(",");
204
+ const ids = entities.map((e) => e.id);
205
+ const countResult = await client.execute({
206
+ sql: `SELECT source_entity_id as eid, COUNT(*) as cnt FROM relationships WHERE source_entity_id IN (${placeholders}) AND valid_until IS NULL GROUP BY source_entity_id
207
+ UNION ALL
208
+ SELECT target_entity_id as eid, COUNT(*) as cnt FROM relationships WHERE target_entity_id IN (${placeholders}) AND valid_until IS NULL GROUP BY target_entity_id`,
209
+ args: [...ids, ...ids]
210
+ });
211
+ const countMap = /* @__PURE__ */ new Map();
212
+ for (const row of countResult.rows) {
213
+ const eid = String(row.eid);
214
+ countMap.set(eid, (countMap.get(eid) ?? 0) + Number(row.cnt));
215
+ }
216
+ return entities.map((e) => ({
217
+ id: e.id,
218
+ name: e.name,
219
+ type: e.type,
220
+ lastSeen: e.lastSeen,
221
+ relationshipCount: countMap.get(e.id) ?? 0
222
+ }));
223
+ }
224
+ async function loadHotEntities(limit = 15) {
225
+ const client = getClient();
226
+ const { getHotEntities } = await import("./graph-query-UTLL5MKN.js");
227
+ const since = new Date(Date.now() - 7 * 24 * 60 * 60 * 1e3);
228
+ const hot = await getHotEntities(client, since, limit);
229
+ return hot.map((h) => ({
230
+ id: h.entity.id,
231
+ name: h.entity.name,
232
+ type: h.entity.type,
233
+ lastSeen: h.entity.lastSeen,
234
+ relationshipCount: h.newRelationships
235
+ }));
236
+ }
237
+ async function loadGraphOverview() {
238
+ const client = getClient();
239
+ const { getGraphStats } = await import("./graph-query-UTLL5MKN.js");
240
+ const stats = await getGraphStats(client);
241
+ return {
242
+ totalEntities: stats.entities,
243
+ totalRelationships: stats.relationships,
244
+ entityTypes: stats.types
245
+ };
246
+ }
247
+ export {
248
+ loadEntityProfile,
249
+ loadGraphOverview,
250
+ loadHotEntities,
251
+ loadMemoryDashboard,
252
+ loadTaskList,
253
+ loadTeamBadgeCounts,
254
+ loadTeamDetailMetrics,
255
+ loadTeamMetrics,
256
+ searchEntitiesList,
257
+ searchWikiMemoryRows
258
+ };