@askexenow/exe-os 0.9.292 → 0.9.293

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 (404) hide show
  1. package/deploy/compose/generate-env.ts +27 -1
  2. package/dist/active-agent-OEJKODGY.js +27 -0
  3. package/dist/active-agent-PFZAEMJA.js +28 -0
  4. package/dist/active-agent-USK4RVP5.js +28 -0
  5. package/dist/active-agent-XEZTZEV7.js +27 -0
  6. package/dist/agentic-ontology-46PBPTLE.js +25 -0
  7. package/dist/agentic-ontology-WTXI6RLB.js +25 -0
  8. package/dist/assets/com.askexe.exed.plist +70 -0
  9. package/dist/backfill-metadata-IYP2QGGD.js +600 -0
  10. package/dist/backfill-metadata-S523IKKJ.js +600 -0
  11. package/dist/behaviors-GPCWN3RL.js +46 -0
  12. package/dist/behaviors-UYEYYVIH.js +46 -0
  13. package/dist/bin/agentic-ontology-backfill.js +5 -5
  14. package/dist/bin/agentic-reflection-backfill.js +6 -6
  15. package/dist/bin/agentic-semantic-label.js +5 -5
  16. package/dist/bin/backfill-conversations.js +6 -6
  17. package/dist/bin/backfill-responses.js +6 -6
  18. package/dist/bin/backfill-vectors.js +8 -8
  19. package/dist/bin/bulk-sync-postgres.js +7 -6
  20. package/dist/bin/cc-doctor.js +4 -4
  21. package/dist/bin/cleanup-stale-review-tasks.js +11 -11
  22. package/dist/bin/cli.js +16 -16
  23. package/dist/bin/deferred-daemon-restart.js +1 -1
  24. package/dist/bin/exe-agent-config.js +2 -2
  25. package/dist/bin/exe-agent.js +4 -4
  26. package/dist/bin/exe-assign.js +8 -8
  27. package/dist/bin/exe-boot.js +38 -18
  28. package/dist/bin/exe-call.js +4 -4
  29. package/dist/bin/exe-cloud.js +11 -4
  30. package/dist/bin/exe-dispatch.js +11 -11
  31. package/dist/bin/exe-doctor.js +2 -2
  32. package/dist/bin/exe-export-behaviors.js +7 -7
  33. package/dist/bin/exe-forget.js +6 -6
  34. package/dist/bin/exe-gateway.js +7 -7
  35. package/dist/bin/exe-healthcheck.js +4 -4
  36. package/dist/bin/exe-heartbeat.js +11 -11
  37. package/dist/bin/exe-kill.js +14 -14
  38. package/dist/bin/exe-launch-agent.js +36 -18
  39. package/dist/bin/exe-new-employee.js +6 -6
  40. package/dist/bin/exe-pending-messages.js +12 -12
  41. package/dist/bin/exe-pending-notifications.js +11 -11
  42. package/dist/bin/exe-pending-reviews.js +11 -11
  43. package/dist/bin/exe-rename.js +4 -4
  44. package/dist/bin/exe-review.js +13 -13
  45. package/dist/bin/exe-search.js +5 -5
  46. package/dist/bin/exe-session-cleanup.js +16 -16
  47. package/dist/bin/exe-settings.js +12 -4
  48. package/dist/bin/exe-start-codex.js +11 -11
  49. package/dist/bin/exe-start-opencode.js +8 -8
  50. package/dist/bin/exe-status.js +12 -12
  51. package/dist/bin/exe-team.js +3 -3
  52. package/dist/bin/git-sweep.js +12 -12
  53. package/dist/bin/graph-backfill.js +4 -4
  54. package/dist/bin/graph-export.js +5 -5
  55. package/dist/bin/import-history.js +7 -7
  56. package/dist/bin/install-launchd.js +46 -10
  57. package/dist/bin/install.js +8 -8
  58. package/dist/bin/intercom-check.js +4 -4
  59. package/dist/bin/mcp-sessions.js +2 -2
  60. package/dist/bin/orchestration-metrics.js +4 -4
  61. package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
  62. package/dist/bin/postgres-agentic-semantic-backfill.js +1 -1
  63. package/dist/bin/scan-tasks.js +11 -11
  64. package/dist/bin/setup.js +1 -1
  65. package/dist/bin/shard-migrate.js +4 -4
  66. package/dist/capability-cards-7XF2UW3Z.js +89 -0
  67. package/dist/capability-cards-DME6OMOK.js +89 -0
  68. package/dist/capacity-monitor-7SKMXRIK.js +51 -0
  69. package/dist/capacity-monitor-MNEA6FMY.js +51 -0
  70. package/dist/catchup-brief-46O3RLWO.js +175 -0
  71. package/dist/catchup-brief-EPEKZKRA.js +175 -0
  72. package/dist/chunk-2EMOVUJR.js +128 -0
  73. package/dist/chunk-2JE7LJCZ.js +240 -0
  74. package/dist/chunk-2LHQ5MGP.js +377 -0
  75. package/dist/chunk-2ZXMXFGH.js +4380 -0
  76. package/dist/chunk-3KIMGEFL.js +54 -0
  77. package/dist/chunk-3PY5PK75.js +14533 -0
  78. package/dist/chunk-3SDAK22H.js +538 -0
  79. package/dist/chunk-4CEGPB6F.js +240 -0
  80. package/dist/chunk-4HDMB2M5.js +574 -0
  81. package/dist/chunk-4KCLWBF6.js +197 -0
  82. package/dist/chunk-4WZ55DSC.js +381 -0
  83. package/dist/chunk-5QX4LHOF.js +668 -0
  84. package/dist/chunk-5RSGWGYP.js +1119 -0
  85. package/dist/chunk-5SWY4J5G.js +284 -0
  86. package/dist/chunk-5ZHIAIDE.js +424 -0
  87. package/dist/chunk-5ZKD5ZVT.js +33 -0
  88. package/dist/chunk-67X246EI.js +424 -0
  89. package/dist/chunk-6A56VNVX.js +448 -0
  90. package/dist/chunk-6EEBG6WU.js +345 -0
  91. package/dist/chunk-6EI5U2KJ.js +171 -0
  92. package/dist/chunk-6G4JWZPF.js +128 -0
  93. package/dist/chunk-6GTLJHAG.js +150 -0
  94. package/dist/chunk-6LDZPC2H.js +1079 -0
  95. package/dist/chunk-6PNCZTKV.js +1119 -0
  96. package/dist/chunk-6QPDD4BI.js +123 -0
  97. package/dist/chunk-6ZMLJ6ZQ.js +2129 -0
  98. package/dist/chunk-72O5EJ52.js +204 -0
  99. package/dist/chunk-737NSJT4.js +553 -0
  100. package/dist/chunk-7P5TUGTL.js +456 -0
  101. package/dist/chunk-7XDF7BZQ.js +192 -0
  102. package/dist/chunk-ALYNEMIH.js +150 -0
  103. package/dist/chunk-B4PYJHIV.js +402 -0
  104. package/dist/chunk-B5ZCGIYB.js +630 -0
  105. package/dist/chunk-BE3T47CS.js +97 -0
  106. package/dist/chunk-BNJ3YCPD.js +192 -0
  107. package/dist/chunk-BUBYDG7Q.js +1079 -0
  108. package/dist/chunk-CSCRGRZT.js +345 -0
  109. package/dist/chunk-CY4S3HMG.js +30 -0
  110. package/dist/chunk-D2WYUJHM.js +50 -0
  111. package/dist/chunk-D3X64YSB.js +377 -0
  112. package/dist/chunk-D6TPR4BN.js +204 -0
  113. package/dist/chunk-DDI57ILJ.js +38 -0
  114. package/dist/chunk-DQBHY3Q4.js +210 -0
  115. package/dist/chunk-DVFHAY2J.js +630 -0
  116. package/dist/chunk-DWCR5GGG.js +128 -0
  117. package/dist/chunk-DZJPVLVR.js +2078 -0
  118. package/dist/chunk-E45SQG7C.js +280 -0
  119. package/dist/chunk-EJ7CWALW.js +244 -0
  120. package/dist/chunk-EM5WXY6H.js +836 -0
  121. package/dist/chunk-EOVVOUXC.js +381 -0
  122. package/dist/chunk-EVV55PHP.js +331 -0
  123. package/dist/chunk-F4FMIWEL.js +214 -0
  124. package/dist/chunk-F5GLICUP.js +85 -0
  125. package/dist/chunk-F5WN7EQ2.js +333 -0
  126. package/dist/chunk-FVXYTNSI.js +123 -0
  127. package/dist/chunk-FXD5LXRD.js +8 -0
  128. package/dist/chunk-G53LIPLG.js +76 -0
  129. package/dist/chunk-GEJAUWIZ.js +1350 -0
  130. package/dist/chunk-GJDYAXUL.js +227 -0
  131. package/dist/chunk-GJS7CJRC.js +129 -0
  132. package/dist/chunk-GTVP4QTZ.js +362 -0
  133. package/dist/chunk-HG7Z7JHX.js +85 -0
  134. package/dist/chunk-HH3MBGMJ.js +70 -0
  135. package/dist/chunk-HJBKBEC4.js +58 -0
  136. package/dist/chunk-HKSTWZ22.js +456 -0
  137. package/dist/chunk-HMP5VT6A.js +118 -0
  138. package/dist/chunk-HN2PWLQI.js +167 -0
  139. package/dist/chunk-HN3HGFBL.js +20 -0
  140. package/dist/chunk-HREBA7BJ.js +290 -0
  141. package/dist/chunk-HV7F5CXJ.js +553 -0
  142. package/dist/chunk-HWXIMSB7.js +30 -0
  143. package/dist/chunk-HWY5ROLO.js +129 -0
  144. package/dist/chunk-IDJCLLJF.js +3298 -0
  145. package/dist/chunk-IPMGAQGC.js +290 -0
  146. package/dist/chunk-IRT55NLF.js +382 -0
  147. package/dist/chunk-IXZ7OTB3.js +159 -0
  148. package/dist/chunk-J7JVMFKR.js +262 -0
  149. package/dist/chunk-JABYHL7R.js +171 -0
  150. package/dist/chunk-JE2ICRS5.js +197 -0
  151. package/dist/chunk-JLH273CW.js +70 -0
  152. package/dist/chunk-JPTT22PI.js +54 -0
  153. package/dist/chunk-JVT6ONVZ.js +731 -0
  154. package/dist/chunk-KJEG2OQN.js +1350 -0
  155. package/dist/chunk-LSASGUNP.js +85 -0
  156. package/dist/chunk-LSTM35QE.js +1186 -0
  157. package/dist/chunk-LZEWGBU2.js +97 -0
  158. package/dist/chunk-M2IOPGVR.js +731 -0
  159. package/dist/chunk-MBININJN.js +2078 -0
  160. package/dist/chunk-MJ2MCLZH.js +402 -0
  161. package/dist/chunk-MX63V4YD.js +38 -0
  162. package/dist/chunk-N7TWCWY5.js +128 -0
  163. package/dist/chunk-NAKIQODV.js +331 -0
  164. package/dist/chunk-NMJSZ5FC.js +185 -0
  165. package/dist/chunk-NXCJWGAF.js +836 -0
  166. package/dist/chunk-OLJTE7LW.js +157 -0
  167. package/dist/chunk-OPDX7KTW.js +167 -0
  168. package/dist/chunk-OXM62MI7.js +221 -0
  169. package/dist/chunk-PC53GP5N.js +55 -0
  170. package/dist/chunk-PMMQFOER.js +81 -0
  171. package/dist/chunk-PVVG22J4.js +735 -0
  172. package/dist/chunk-Q326CKO3.js +377 -0
  173. package/dist/chunk-QAK47LG3.js +81 -0
  174. package/dist/chunk-QAWSQ5LG.js +157 -0
  175. package/dist/chunk-QLPHEY7D.js +668 -0
  176. package/dist/chunk-QV4CHWME.js +97 -0
  177. package/dist/chunk-QY46R3SB.js +348 -0
  178. package/dist/chunk-RAERYWCL.js +299 -0
  179. package/dist/chunk-RT5NXMH2.js +284 -0
  180. package/dist/chunk-RUUIZJSU.js +127 -0
  181. package/dist/chunk-S3PNZLTN.js +50 -0
  182. package/dist/chunk-S6WSWJBL.js +362 -0
  183. package/dist/chunk-STOZKLK6.js +1352 -0
  184. package/dist/chunk-SZCJI4TR.js +735 -0
  185. package/dist/chunk-T3FMPQOR.js +85 -0
  186. package/dist/chunk-T6EKR34W.js +58 -0
  187. package/dist/chunk-TKIOFYNW.js +1186 -0
  188. package/dist/chunk-TM2GZWIT.js +3313 -0
  189. package/dist/chunk-TWFTSIAI.js +4380 -0
  190. package/dist/chunk-U7BFATN7.js +538 -0
  191. package/dist/chunk-UAQZT24C.js +181 -0
  192. package/dist/chunk-UFHBNXGV.js +333 -0
  193. package/dist/chunk-UVN3LWCL.js +214 -0
  194. package/dist/chunk-UVRS32RJ.js +97 -0
  195. package/dist/chunk-V6R43RSE.js +227 -0
  196. package/dist/chunk-VHMVQUCR.js +448 -0
  197. package/dist/chunk-VK7NRMIW.js +2133 -0
  198. package/dist/chunk-VRFO3H3R.js +76 -0
  199. package/dist/chunk-VRZS4KWF.js +122 -0
  200. package/dist/chunk-WOXY76VV.js +33 -0
  201. package/dist/chunk-X6VOKECC.js +348 -0
  202. package/dist/chunk-XADXYWPE.js +280 -0
  203. package/dist/chunk-XCP56OMR.js +1352 -0
  204. package/dist/chunk-XDH5XB72.js +262 -0
  205. package/dist/chunk-XFPSFPVD.js +1094 -0
  206. package/dist/chunk-XOT6CVJA.js +244 -0
  207. package/dist/chunk-XWRIBBYP.js +210 -0
  208. package/dist/chunk-XWVCURC2.js +181 -0
  209. package/dist/chunk-YA6SJFNN.js +221 -0
  210. package/dist/chunk-YDMUHYCP.js +127 -0
  211. package/dist/chunk-YKQQ4UTG.js +382 -0
  212. package/dist/chunk-YNORJIBH.js +208 -0
  213. package/dist/chunk-YQ2R4BLZ.js +14533 -0
  214. package/dist/chunk-YUIT7Z7I.js +299 -0
  215. package/dist/chunk-ZD6EJ7LY.js +604 -0
  216. package/dist/chunk-ZHHBVPOX.js +1094 -0
  217. package/dist/chunk-ZNY54QWW.js +377 -0
  218. package/dist/chunk-ZVABYVSP.js +122 -0
  219. package/dist/chunk-ZVDYPSJH.js +94 -0
  220. package/dist/chunk-ZXNQ7GRU.js +185 -0
  221. package/dist/co-activation-ACVH2TL4.js +74 -0
  222. package/dist/co-activation-EJ63SDWZ.js +74 -0
  223. package/dist/co-occurrence-VKJWYROE.js +95 -0
  224. package/dist/co-occurrence-X2M3ASN4.js +95 -0
  225. package/dist/code-context-index-5EFZGRML.js +30 -0
  226. package/dist/core-memory-G3AEM4FY.js +110 -0
  227. package/dist/core-memory-GOI4WKP5.js +110 -0
  228. package/dist/crdt-sync-QXBHJ5GL.js +33 -0
  229. package/dist/crdt-sync-WX6YMYZS.js +33 -0
  230. package/dist/crm-webhook-EEL2F5TM.js +10 -0
  231. package/dist/crm-webhook-OYNQH4RZ.js +10 -0
  232. package/dist/cto-delegation-gate-RP4XBAZZ.js +280 -0
  233. package/dist/cto-delegation-gate-XOD3NAJS.js +280 -0
  234. package/dist/daemon-orchestration-33R5DNF2.js +139 -0
  235. package/dist/daemon-orchestration-EEPWOFMX.js +139 -0
  236. package/dist/db-backup-T4OALIZH.js +41 -0
  237. package/dist/db-backup-U5TNET7Z.js +41 -0
  238. package/dist/dispatch-ack-4S44HBWB.js +15 -0
  239. package/dist/doc-graph-extractor-O5EADZ3H.js +133 -0
  240. package/dist/doc-graph-extractor-SFMDR2SB.js +133 -0
  241. package/dist/dreaming-IXYC3FUN.js +34 -0
  242. package/dist/dreaming-ODYGZEIV.js +34 -0
  243. package/dist/entity-boost-XBGZKDJZ.js +375 -0
  244. package/dist/exe-drift-BKAGZUO2.js +70 -0
  245. package/dist/exe-drift-N7QYRQX7.js +70 -0
  246. package/dist/exe-export-AQZ3ZPSJ.js +77 -0
  247. package/dist/exe-export-QQGWWVZC.js +77 -0
  248. package/dist/exe-import-EVEGB2O4.js +80 -0
  249. package/dist/exe-import-RPL3RSZ2.js +80 -0
  250. package/dist/exe-key-5FYKRZOH.js +673 -0
  251. package/dist/exe-key-Y256JM3G.js +673 -0
  252. package/dist/exe-snapshot-AUJQ53Z7.js +338 -0
  253. package/dist/exe-snapshot-CSJDVWXM.js +338 -0
  254. package/dist/fast-db-init-57YCVJQP.js +7 -0
  255. package/dist/fast-db-init-VU4FDPGX.js +7 -0
  256. package/dist/gateway/index.js +8 -8
  257. package/dist/git-staleness-CR46BFAY.js +112 -0
  258. package/dist/git-staleness-H4NWNDJ5.js +112 -0
  259. package/dist/git-task-sweep-F7ASO7CZ.js +42 -0
  260. package/dist/git-task-sweep-XSPCOBUY.js +42 -0
  261. package/dist/global-procedures-7FDCJNWI.js +22 -0
  262. package/dist/global-procedures-GX7V5L76.js +22 -0
  263. package/dist/graph-auto-extract-JI3VW5KY.js +183 -0
  264. package/dist/graph-auto-extract-KFNHAHBK.js +183 -0
  265. package/dist/hooks/bug-report-worker.js +13 -13
  266. package/dist/hooks/codex-stop-task-finalizer.js +13 -13
  267. package/dist/hooks/commit-complete.js +13 -13
  268. package/dist/hooks/error-recall.js +6 -6
  269. package/dist/hooks/exe-heartbeat-hook.js +3 -3
  270. package/dist/hooks/ingest-worker.js +3 -3
  271. package/dist/hooks/ingest.js +6 -6
  272. package/dist/hooks/instructions-loaded.js +4 -4
  273. package/dist/hooks/manifest.json +20 -20
  274. package/dist/hooks/notification.js +4 -4
  275. package/dist/hooks/post-compact.js +12 -12
  276. package/dist/hooks/post-tool-combined.js +6 -6
  277. package/dist/hooks/pre-compact.js +16 -16
  278. package/dist/hooks/pre-tool-use.js +17 -17
  279. package/dist/hooks/prompt-submit.js +25 -25
  280. package/dist/hooks/session-end.js +23 -21
  281. package/dist/hooks/session-start.js +12 -12
  282. package/dist/hooks/stop.js +19 -19
  283. package/dist/hooks/subagent-stop.js +43 -13
  284. package/dist/hooks/summary-worker.js +19 -19
  285. package/dist/index.js +19 -19
  286. package/dist/installer-6PMCIZQZ.js +298 -0
  287. package/dist/installer-7ET5M2DD.js +344 -0
  288. package/dist/installer-K7BYY3XC.js +344 -0
  289. package/dist/installer-U6W7TQZU.js +40 -0
  290. package/dist/installer-UL4HFVPT.js +298 -0
  291. package/dist/installer-XMQRESAT.js +40 -0
  292. package/dist/lib/cloud-sync.js +12 -4
  293. package/dist/lib/consolidation.js +5 -5
  294. package/dist/lib/database.js +2 -2
  295. package/dist/lib/db-daemon-client.js +2 -2
  296. package/dist/lib/db.js +2 -2
  297. package/dist/lib/embedder.js +3 -3
  298. package/dist/lib/employee-templates.js +4 -4
  299. package/dist/lib/employees.js +2 -2
  300. package/dist/lib/exe-daemon-client.js +2 -2
  301. package/dist/lib/exe-daemon.js +50 -39
  302. package/dist/lib/hybrid-search.js +5 -5
  303. package/dist/lib/identity.js +2 -2
  304. package/dist/lib/messaging.js +11 -11
  305. package/dist/lib/reminders.js +3 -3
  306. package/dist/lib/schedules.js +5 -5
  307. package/dist/lib/session-registry.js +4 -4
  308. package/dist/lib/skill-learning.js +6 -6
  309. package/dist/lib/store.js +4 -4
  310. package/dist/lib/task-router.js +3 -3
  311. package/dist/lib/tasks.js +12 -12
  312. package/dist/lib/tmux-routing.js +10 -10
  313. package/dist/lib/tmux-transport.js +2 -1
  314. package/dist/lib/token-spend.js +3 -3
  315. package/dist/lib/transport.js +3 -2
  316. package/dist/mcp/register-tools.js +62 -62
  317. package/dist/mcp/server.js +63 -63
  318. package/dist/mcp/tools/complete-reminder.js +4 -4
  319. package/dist/mcp/tools/create-reminder.js +4 -4
  320. package/dist/mcp/tools/create-task.js +15 -15
  321. package/dist/mcp/tools/deactivate-behavior.js +7 -7
  322. package/dist/mcp/tools/list-reminders.js +4 -4
  323. package/dist/mcp/tools/list-tasks.js +14 -14
  324. package/dist/mcp/tools/send-message.js +13 -13
  325. package/dist/mcp/tools/update-task.js +13 -13
  326. package/dist/mcp-http-config-JZPO4B6K.js +29 -0
  327. package/dist/mcp-http-config-L6TEBZOW.js +29 -0
  328. package/dist/memory-cards-EIA3YLFA.js +180 -0
  329. package/dist/memory-cards-MDZGVJWJ.js +180 -0
  330. package/dist/memory-graph-extractor-BMZBK2LX.js +22 -0
  331. package/dist/memory-graph-extractor-U2Q7MTBZ.js +22 -0
  332. package/dist/memory-poisoning-defense-ORWGA4KK.js +224 -0
  333. package/dist/memory-poisoning-defense-ZY5P2OOG.js +224 -0
  334. package/dist/memory-queue-client-A2PMQVEU.js +16 -0
  335. package/dist/memory-reflection-35NUYL3Z.js +244 -0
  336. package/dist/memory-reflection-NHOC2FGF.js +244 -0
  337. package/dist/message-queue-client-L5VZ44IN.js +92 -0
  338. package/dist/notifications-7GGXNR42.js +47 -0
  339. package/dist/notifications-B2YCZD3T.js +47 -0
  340. package/dist/orchestration-events-7EQJF377.js +27 -0
  341. package/dist/orchestration-events-VJTAOA2R.js +27 -0
  342. package/dist/orchestrator-IAU2Y3K3.js +35 -0
  343. package/dist/orchestrator-YOM5D5EJ.js +35 -0
  344. package/dist/pipeline-router-ITQDOV2B.js +15 -0
  345. package/dist/pipeline-router-VYFAS3ZX.js +15 -0
  346. package/dist/plan-limits-OJQINDD3.js +28 -0
  347. package/dist/plan-limits-UWVCNA67.js +28 -0
  348. package/dist/project-boot-GSLIQJVS.js +299 -0
  349. package/dist/project-boot-NRU7RRED.js +299 -0
  350. package/dist/projection-worker-SKLKJJFA.js +1084 -0
  351. package/dist/projection-worker-XVOLBYQC.js +1084 -0
  352. package/dist/prospective-memory-JOKZL7QJ.js +232 -0
  353. package/dist/prospective-memory-WQSB2IPD.js +232 -0
  354. package/dist/reranker-5HJXM4K5.js +19 -0
  355. package/dist/reranker-Q7KD2VDL.js +19 -0
  356. package/dist/retrieval-health-BAKZOWX7.js +11 -0
  357. package/dist/retrieval-health-LXDMWIAZ.js +11 -0
  358. package/dist/review-polling-GBRSJ7X5.js +126 -0
  359. package/dist/review-polling-YDS35QTO.js +126 -0
  360. package/dist/runtime/index.js +13 -13
  361. package/dist/session-events-EJID2CZE.js +38 -0
  362. package/dist/session-events-UPXPYEA3.js +38 -0
  363. package/dist/session-kill-telemetry-7FP74BIM.js +31 -0
  364. package/dist/session-kill-telemetry-XLMNOBBQ.js +31 -0
  365. package/dist/session-scope-QCN23H6B.js +88 -0
  366. package/dist/session-scope-ZR2W2EDF.js +88 -0
  367. package/dist/setup-wizard-7H4CE5UL.js +12 -0
  368. package/dist/setup-wizard-MR3XA4BC.js +12 -0
  369. package/dist/skill-refinement-6UK4P4UQ.js +159 -0
  370. package/dist/skill-refinement-RYBLDKDP.js +159 -0
  371. package/dist/steward-gate-PSF4JQUC.js +15 -0
  372. package/dist/steward-gate-U2HQZ4LX.js +15 -0
  373. package/dist/task-enforcement-NL6WPS3T.js +506 -0
  374. package/dist/task-enforcement-RYWTWHQJ.js +506 -0
  375. package/dist/task-scope-43TBGXSP.js +37 -0
  376. package/dist/task-scope-BR4ZJLQT.js +37 -0
  377. package/dist/tasks-crud-AQLUDVES.js +79 -0
  378. package/dist/tasks-crud-LWTHIDHF.js +79 -0
  379. package/dist/tasks-notify-PZQMVQHI.js +40 -0
  380. package/dist/tasks-notify-U4QZ2FGV.js +40 -0
  381. package/dist/tasks-review-E3LQRBNB.js +49 -0
  382. package/dist/tasks-review-NIGU6K3L.js +49 -0
  383. package/dist/telemetry-upload-PQLC5A4D.js +741 -0
  384. package/dist/telemetry-upload-QOYSUDDH.js +741 -0
  385. package/dist/token-budget-OJGWYISJ.js +86 -0
  386. package/dist/token-budget-VMQLMHSU.js +86 -0
  387. package/dist/tool-capability-index-4M3BFQTU.js +10 -0
  388. package/dist/tool-telemetry-4YD2E6UU.js +17 -0
  389. package/dist/tool-telemetry-662N3S5Q.js +17 -0
  390. package/dist/tui/App.js +18 -18
  391. package/dist/tui-data-IIGF5XRY.js +260 -0
  392. package/dist/tui-data-W4INCXEA.js +260 -0
  393. package/dist/wiki-acl-KXXMRMIM.js +111 -0
  394. package/dist/wiki-acl-XSRBJSBD.js +111 -0
  395. package/dist/worker-gate-7GMM23JY.js +21 -0
  396. package/dist/worker-gate-F6LY67TM.js +21 -0
  397. package/dist/workflow-engine-G4JTWI5N.js +28 -0
  398. package/dist/workflow-engine-UHOVTA5Q.js +28 -0
  399. package/dist/worktree-OJMZ4RG4.js +28 -0
  400. package/dist/worktree-ZLF4MX6T.js +28 -0
  401. package/dist/worktree-sweep-5Z6V7MNJ.js +21 -0
  402. package/dist/worktree-sweep-M64OW2MU.js +21 -0
  403. package/package.json +2 -2
  404. package/release-notes.json +14 -14
@@ -0,0 +1,185 @@
1
+ import {
2
+ getSessionKey
3
+ } from "./chunk-CVYC6DUW.js";
4
+ import {
5
+ getAgentContext
6
+ } from "./chunk-GJV3WDWM.js";
7
+ import {
8
+ DEFAULT_COORDINATOR_TEMPLATE_NAME,
9
+ getCoordinatorEmployee,
10
+ getEmployee,
11
+ loadEmployeesSync
12
+ } from "./chunk-IDJCLLJF.js";
13
+ import {
14
+ EXE_AI_DIR
15
+ } from "./chunk-R36FAN53.js";
16
+
17
+ // src/lib/active-agent.ts
18
+ import { readFileSync, writeFileSync, mkdirSync, unlinkSync, readdirSync } from "fs";
19
+ import { execSync } from "child_process";
20
+ import path from "path";
21
+ var CACHE_DIR = path.join(EXE_AI_DIR, "session-cache");
22
+ var STALE_MS = 24 * 60 * 60 * 1e3;
23
+ function isNameWithOptionalInstance(candidate, baseName) {
24
+ if (candidate === baseName) return true;
25
+ if (!candidate.startsWith(baseName)) return false;
26
+ return /^\d+$/.test(candidate.slice(baseName.length));
27
+ }
28
+ function resolveEmployeeFromSessionPrefix(prefix, employees) {
29
+ const sorted = [...employees].sort((a, b) => b.name.length - a.name.length);
30
+ for (const employee of sorted) {
31
+ if (isNameWithOptionalInstance(prefix, employee.name)) {
32
+ return { agentId: employee.name, agentRole: employee.role };
33
+ }
34
+ }
35
+ return null;
36
+ }
37
+ function resolveActiveAgentFromTmuxSession(sessionName) {
38
+ const employees = loadEmployeesSync();
39
+ const coordinator = getCoordinatorEmployee(employees);
40
+ const coordinatorName = coordinator?.name ?? DEFAULT_COORDINATOR_TEMPLATE_NAME;
41
+ if (isNameWithOptionalInstance(sessionName, coordinatorName)) {
42
+ return {
43
+ agentId: coordinatorName,
44
+ agentRole: coordinator?.role ?? "COO"
45
+ };
46
+ }
47
+ if (isNameWithOptionalInstance(sessionName, DEFAULT_COORDINATOR_TEMPLATE_NAME)) {
48
+ return {
49
+ agentId: coordinator?.name ?? DEFAULT_COORDINATOR_TEMPLATE_NAME,
50
+ agentRole: coordinator?.role ?? "COO"
51
+ };
52
+ }
53
+ if (sessionName.includes("-")) {
54
+ const prefix = sessionName.split("-")[0] ?? "";
55
+ const employee = resolveEmployeeFromSessionPrefix(prefix, employees);
56
+ if (employee) return employee;
57
+ const legacy = prefix.match(/^([a-zA-Z]+)\d*$/);
58
+ if (legacy?.[1] && legacy[1] !== DEFAULT_COORDINATOR_TEMPLATE_NAME) {
59
+ const emp = getEmployee(employees, legacy[1]);
60
+ return { agentId: emp?.name ?? legacy[1], agentRole: emp?.role ?? "employee" };
61
+ }
62
+ }
63
+ return null;
64
+ }
65
+ function getMarkerPath() {
66
+ return path.join(CACHE_DIR, `active-agent-${getSessionKey()}.json`);
67
+ }
68
+ function writeActiveAgent(agentId, agentRole) {
69
+ try {
70
+ mkdirSync(CACHE_DIR, { recursive: true });
71
+ writeFileSync(
72
+ getMarkerPath(),
73
+ JSON.stringify({ agentId, agentRole, startedAt: (/* @__PURE__ */ new Date()).toISOString() })
74
+ );
75
+ } catch {
76
+ }
77
+ }
78
+ function clearActiveAgent() {
79
+ try {
80
+ unlinkSync(getMarkerPath());
81
+ } catch {
82
+ }
83
+ }
84
+ function getActiveAgent() {
85
+ const httpCtx = getAgentContext();
86
+ if (httpCtx) return httpCtx;
87
+ try {
88
+ const markerPath = getMarkerPath();
89
+ const raw = readFileSync(markerPath, "utf8");
90
+ const data = JSON.parse(raw);
91
+ if (data.agentId) {
92
+ if (data.startedAt) {
93
+ const age = Date.now() - new Date(data.startedAt).getTime();
94
+ if (age > STALE_MS) {
95
+ try {
96
+ unlinkSync(markerPath);
97
+ } catch {
98
+ }
99
+ } else {
100
+ return {
101
+ agentId: data.agentId,
102
+ agentRole: data.agentRole || "employee"
103
+ };
104
+ }
105
+ } else {
106
+ return {
107
+ agentId: data.agentId,
108
+ agentRole: data.agentRole || "employee"
109
+ };
110
+ }
111
+ }
112
+ } catch {
113
+ }
114
+ if (process.env.EXE_TEST_HERMETIC !== "1") {
115
+ try {
116
+ const sessionName = execSync(
117
+ "tmux display-message -p '#{session_name}' 2>/dev/null",
118
+ { encoding: "utf8", timeout: 2e3 }
119
+ ).trim();
120
+ const resolved = resolveActiveAgentFromTmuxSession(sessionName);
121
+ if (resolved) return resolved;
122
+ } catch {
123
+ }
124
+ }
125
+ return {
126
+ agentId: process.env.AGENT_ID || "default",
127
+ agentRole: process.env.AGENT_ROLE || "employee"
128
+ };
129
+ }
130
+ function getAllActiveAgents() {
131
+ try {
132
+ const files = readdirSync(CACHE_DIR);
133
+ const sessions = [];
134
+ for (const file of files) {
135
+ if (!file.startsWith("active-agent-") || !file.endsWith(".json")) continue;
136
+ const key = file.slice("active-agent-".length, -".json".length);
137
+ if (key === "undefined") continue;
138
+ try {
139
+ const raw = readFileSync(path.join(CACHE_DIR, file), "utf8");
140
+ const data = JSON.parse(raw);
141
+ if (!data.agentId) continue;
142
+ if (data.startedAt) {
143
+ const age = Date.now() - new Date(data.startedAt).getTime();
144
+ if (age > STALE_MS) {
145
+ try {
146
+ unlinkSync(path.join(CACHE_DIR, file));
147
+ } catch {
148
+ }
149
+ continue;
150
+ }
151
+ }
152
+ sessions.push({
153
+ agentId: data.agentId,
154
+ agentRole: data.agentRole || "employee",
155
+ startedAt: data.startedAt || (/* @__PURE__ */ new Date()).toISOString(),
156
+ sessionKey: key
157
+ });
158
+ } catch {
159
+ }
160
+ }
161
+ return sessions;
162
+ } catch {
163
+ return [];
164
+ }
165
+ }
166
+ function cleanupSessionMarkers() {
167
+ const key = getSessionKey();
168
+ try {
169
+ unlinkSync(path.join(CACHE_DIR, `active-agent-${key}.json`));
170
+ } catch {
171
+ }
172
+ try {
173
+ unlinkSync(path.join(CACHE_DIR, "active-agent-undefined.json"));
174
+ } catch {
175
+ }
176
+ }
177
+
178
+ export {
179
+ resolveActiveAgentFromTmuxSession,
180
+ writeActiveAgent,
181
+ clearActiveAgent,
182
+ getActiveAgent,
183
+ getAllActiveAgents,
184
+ cleanupSessionMarkers
185
+ };
@@ -0,0 +1,74 @@
1
+ import {
2
+ getClient
3
+ } from "./chunk-TM2GZWIT.js";
4
+ import "./chunk-2I23RPSI.js";
5
+ import "./chunk-D3X64YSB.js";
6
+ import "./chunk-PNQDP3OA.js";
7
+ import "./chunk-7HLWBYH7.js";
8
+ import "./chunk-FXU7JOXK.js";
9
+ import "./chunk-R36FAN53.js";
10
+ import "./chunk-LYH5HE24.js";
11
+ import "./chunk-MLKGABMK.js";
12
+
13
+ // src/lib/co-activation.ts
14
+ async function recordCoActivations(entityIds) {
15
+ if (entityIds.length < 2) return;
16
+ const unique = [...new Set(entityIds)].slice(0, 20);
17
+ const client = getClient();
18
+ const pairs = [];
19
+ for (let i = 0; i < unique.length; i++) {
20
+ for (let j = i + 1; j < unique.length; j++) {
21
+ const idI = unique[i];
22
+ const idJ = unique[j];
23
+ const pair = idI < idJ ? [idI, idJ] : [idJ, idI];
24
+ pairs.push(pair);
25
+ }
26
+ }
27
+ for (const [a, b] of pairs) {
28
+ await client.execute({
29
+ sql: `INSERT INTO co_activations (entity_a_id, entity_b_id, count, last_activated_at)
30
+ VALUES (?, ?, 1, datetime('now'))
31
+ ON CONFLICT (entity_a_id, entity_b_id)
32
+ DO UPDATE SET count = count + 1, last_activated_at = datetime('now')`,
33
+ args: [a, b]
34
+ });
35
+ }
36
+ }
37
+ async function getHotPairs(limit = 20) {
38
+ const client = getClient();
39
+ const result = await client.execute({
40
+ sql: `SELECT entity_a_id, entity_b_id, count, last_activated_at
41
+ FROM co_activations
42
+ ORDER BY count DESC
43
+ LIMIT ?`,
44
+ args: [limit]
45
+ });
46
+ return result.rows.map((r) => ({
47
+ entity_a_id: String(r.entity_a_id),
48
+ entity_b_id: String(r.entity_b_id),
49
+ count: Number(r.count),
50
+ last_activated_at: String(r.last_activated_at)
51
+ }));
52
+ }
53
+ async function getCoActivationNeighbors(entityId, limit = 20) {
54
+ const client = getClient();
55
+ const result = await client.execute({
56
+ sql: `SELECT entity_a_id, entity_b_id, count, last_activated_at
57
+ FROM co_activations
58
+ WHERE entity_a_id = ? OR entity_b_id = ?
59
+ ORDER BY count DESC
60
+ LIMIT ?`,
61
+ args: [entityId, entityId, limit]
62
+ });
63
+ return result.rows.map((r) => ({
64
+ entity_a_id: String(r.entity_a_id),
65
+ entity_b_id: String(r.entity_b_id),
66
+ count: Number(r.count),
67
+ last_activated_at: String(r.last_activated_at)
68
+ }));
69
+ }
70
+ export {
71
+ getCoActivationNeighbors,
72
+ getHotPairs,
73
+ recordCoActivations
74
+ };
@@ -0,0 +1,74 @@
1
+ import {
2
+ getClient
3
+ } from "./chunk-IDJCLLJF.js";
4
+ import "./chunk-2I23RPSI.js";
5
+ import "./chunk-Q326CKO3.js";
6
+ import "./chunk-PNQDP3OA.js";
7
+ import "./chunk-7HLWBYH7.js";
8
+ import "./chunk-FXU7JOXK.js";
9
+ import "./chunk-R36FAN53.js";
10
+ import "./chunk-LYH5HE24.js";
11
+ import "./chunk-MLKGABMK.js";
12
+
13
+ // src/lib/co-activation.ts
14
+ async function recordCoActivations(entityIds) {
15
+ if (entityIds.length < 2) return;
16
+ const unique = [...new Set(entityIds)].slice(0, 20);
17
+ const client = getClient();
18
+ const pairs = [];
19
+ for (let i = 0; i < unique.length; i++) {
20
+ for (let j = i + 1; j < unique.length; j++) {
21
+ const idI = unique[i];
22
+ const idJ = unique[j];
23
+ const pair = idI < idJ ? [idI, idJ] : [idJ, idI];
24
+ pairs.push(pair);
25
+ }
26
+ }
27
+ for (const [a, b] of pairs) {
28
+ await client.execute({
29
+ sql: `INSERT INTO co_activations (entity_a_id, entity_b_id, count, last_activated_at)
30
+ VALUES (?, ?, 1, datetime('now'))
31
+ ON CONFLICT (entity_a_id, entity_b_id)
32
+ DO UPDATE SET count = count + 1, last_activated_at = datetime('now')`,
33
+ args: [a, b]
34
+ });
35
+ }
36
+ }
37
+ async function getHotPairs(limit = 20) {
38
+ const client = getClient();
39
+ const result = await client.execute({
40
+ sql: `SELECT entity_a_id, entity_b_id, count, last_activated_at
41
+ FROM co_activations
42
+ ORDER BY count DESC
43
+ LIMIT ?`,
44
+ args: [limit]
45
+ });
46
+ return result.rows.map((r) => ({
47
+ entity_a_id: String(r.entity_a_id),
48
+ entity_b_id: String(r.entity_b_id),
49
+ count: Number(r.count),
50
+ last_activated_at: String(r.last_activated_at)
51
+ }));
52
+ }
53
+ async function getCoActivationNeighbors(entityId, limit = 20) {
54
+ const client = getClient();
55
+ const result = await client.execute({
56
+ sql: `SELECT entity_a_id, entity_b_id, count, last_activated_at
57
+ FROM co_activations
58
+ WHERE entity_a_id = ? OR entity_b_id = ?
59
+ ORDER BY count DESC
60
+ LIMIT ?`,
61
+ args: [entityId, entityId, limit]
62
+ });
63
+ return result.rows.map((r) => ({
64
+ entity_a_id: String(r.entity_a_id),
65
+ entity_b_id: String(r.entity_b_id),
66
+ count: Number(r.count),
67
+ last_activated_at: String(r.last_activated_at)
68
+ }));
69
+ }
70
+ export {
71
+ getCoActivationNeighbors,
72
+ getHotPairs,
73
+ recordCoActivations
74
+ };
@@ -0,0 +1,95 @@
1
+ import {
2
+ entityId,
3
+ normalizeEntityName
4
+ } from "./chunk-6OAAN25C.js";
5
+ import "./chunk-GUMRIUI5.js";
6
+ import "./chunk-I7AW4237.js";
7
+ import {
8
+ getClient
9
+ } from "./chunk-IDJCLLJF.js";
10
+ import "./chunk-2I23RPSI.js";
11
+ import "./chunk-Q326CKO3.js";
12
+ import "./chunk-PNQDP3OA.js";
13
+ import "./chunk-7HLWBYH7.js";
14
+ import "./chunk-FXU7JOXK.js";
15
+ import "./chunk-R36FAN53.js";
16
+ import "./chunk-LYH5HE24.js";
17
+ import "./chunk-MLKGABMK.js";
18
+
19
+ // src/lib/co-occurrence.ts
20
+ var SPECIFICITY = {
21
+ file: 5,
22
+ function: 4,
23
+ error: 3,
24
+ tool: 2,
25
+ agent: 1,
26
+ project: 0
27
+ };
28
+ function getSpecificity(type) {
29
+ return SPECIFICITY[type] ?? 1;
30
+ }
31
+ function coOccurrenceId(entityId1, entityId2) {
32
+ const sorted = [entityId1, entityId2].sort();
33
+ return `cooccur:${sorted[0]}:${sorted[1]}`;
34
+ }
35
+ async function actualEntityId(name, type, fallbackId) {
36
+ try {
37
+ const result = await getClient().execute({
38
+ sql: "SELECT id FROM entities WHERE LOWER(name) = LOWER(?) AND type = ? LIMIT 1",
39
+ args: [name, type]
40
+ });
41
+ return result.rows[0]?.id ? String(result.rows[0].id) : fallbackId;
42
+ } catch {
43
+ return fallbackId;
44
+ }
45
+ }
46
+ async function createCoOccurrenceEdges(entities, _memoryId) {
47
+ if (entities.length < 2) return 0;
48
+ const client = getClient();
49
+ const now = (/* @__PURE__ */ new Date()).toISOString();
50
+ const seen = /* @__PURE__ */ new Set();
51
+ const deduped = entities.filter((e) => {
52
+ const key = `${e.type.toLowerCase()}:${normalizeEntityName(e.name)}`;
53
+ if (seen.has(key)) return false;
54
+ seen.add(key);
55
+ return true;
56
+ });
57
+ const sorted = deduped.sort((a, b) => getSpecificity(b.type) - getSpecificity(a.type));
58
+ const MAX_PAIRS = 10;
59
+ const pairs = [];
60
+ for (let i = 0; i < sorted.length && pairs.length < MAX_PAIRS; i++) {
61
+ for (let j = i + 1; j < sorted.length && pairs.length < MAX_PAIRS; j++) {
62
+ pairs.push([sorted[i], sorted[j]]);
63
+ }
64
+ }
65
+ let created = 0;
66
+ for (const [a, b] of pairs) {
67
+ const aName = normalizeEntityName(a.name);
68
+ const bName = normalizeEntityName(b.name);
69
+ const aType = a.type.toLowerCase();
70
+ const bType = b.type.toLowerCase();
71
+ const aId = await actualEntityId(aName, aType, entityId(aName, aType));
72
+ const bId = await actualEntityId(bName, bType, entityId(bName, bType));
73
+ if (aId === bId) continue;
74
+ const relId = coOccurrenceId(aId, bId);
75
+ const sortedIds = [aId, bId].sort();
76
+ const sourceId = sortedIds[0];
77
+ const targetId = sortedIds[1];
78
+ try {
79
+ await client.execute({
80
+ sql: `INSERT INTO relationships (id, source_entity_id, target_entity_id, type, weight, timestamp, properties)
81
+ VALUES (?, ?, ?, 'co_occurs_with', 1.0, ?, '{}')
82
+ ON CONFLICT(source_entity_id, target_entity_id, type) DO UPDATE SET
83
+ weight = MIN(weight + 0.1, 10.0),
84
+ timestamp = ?`,
85
+ args: [relId, sourceId, targetId, now, now]
86
+ });
87
+ created++;
88
+ } catch {
89
+ }
90
+ }
91
+ return created;
92
+ }
93
+ export {
94
+ createCoOccurrenceEdges
95
+ };
@@ -0,0 +1,95 @@
1
+ import {
2
+ entityId,
3
+ normalizeEntityName
4
+ } from "./chunk-6OAAN25C.js";
5
+ import "./chunk-GUMRIUI5.js";
6
+ import "./chunk-I7AW4237.js";
7
+ import {
8
+ getClient
9
+ } from "./chunk-TM2GZWIT.js";
10
+ import "./chunk-2I23RPSI.js";
11
+ import "./chunk-D3X64YSB.js";
12
+ import "./chunk-PNQDP3OA.js";
13
+ import "./chunk-7HLWBYH7.js";
14
+ import "./chunk-FXU7JOXK.js";
15
+ import "./chunk-R36FAN53.js";
16
+ import "./chunk-LYH5HE24.js";
17
+ import "./chunk-MLKGABMK.js";
18
+
19
+ // src/lib/co-occurrence.ts
20
+ var SPECIFICITY = {
21
+ file: 5,
22
+ function: 4,
23
+ error: 3,
24
+ tool: 2,
25
+ agent: 1,
26
+ project: 0
27
+ };
28
+ function getSpecificity(type) {
29
+ return SPECIFICITY[type] ?? 1;
30
+ }
31
+ function coOccurrenceId(entityId1, entityId2) {
32
+ const sorted = [entityId1, entityId2].sort();
33
+ return `cooccur:${sorted[0]}:${sorted[1]}`;
34
+ }
35
+ async function actualEntityId(name, type, fallbackId) {
36
+ try {
37
+ const result = await getClient().execute({
38
+ sql: "SELECT id FROM entities WHERE LOWER(name) = LOWER(?) AND type = ? LIMIT 1",
39
+ args: [name, type]
40
+ });
41
+ return result.rows[0]?.id ? String(result.rows[0].id) : fallbackId;
42
+ } catch {
43
+ return fallbackId;
44
+ }
45
+ }
46
+ async function createCoOccurrenceEdges(entities, _memoryId) {
47
+ if (entities.length < 2) return 0;
48
+ const client = getClient();
49
+ const now = (/* @__PURE__ */ new Date()).toISOString();
50
+ const seen = /* @__PURE__ */ new Set();
51
+ const deduped = entities.filter((e) => {
52
+ const key = `${e.type.toLowerCase()}:${normalizeEntityName(e.name)}`;
53
+ if (seen.has(key)) return false;
54
+ seen.add(key);
55
+ return true;
56
+ });
57
+ const sorted = deduped.sort((a, b) => getSpecificity(b.type) - getSpecificity(a.type));
58
+ const MAX_PAIRS = 10;
59
+ const pairs = [];
60
+ for (let i = 0; i < sorted.length && pairs.length < MAX_PAIRS; i++) {
61
+ for (let j = i + 1; j < sorted.length && pairs.length < MAX_PAIRS; j++) {
62
+ pairs.push([sorted[i], sorted[j]]);
63
+ }
64
+ }
65
+ let created = 0;
66
+ for (const [a, b] of pairs) {
67
+ const aName = normalizeEntityName(a.name);
68
+ const bName = normalizeEntityName(b.name);
69
+ const aType = a.type.toLowerCase();
70
+ const bType = b.type.toLowerCase();
71
+ const aId = await actualEntityId(aName, aType, entityId(aName, aType));
72
+ const bId = await actualEntityId(bName, bType, entityId(bName, bType));
73
+ if (aId === bId) continue;
74
+ const relId = coOccurrenceId(aId, bId);
75
+ const sortedIds = [aId, bId].sort();
76
+ const sourceId = sortedIds[0];
77
+ const targetId = sortedIds[1];
78
+ try {
79
+ await client.execute({
80
+ sql: `INSERT INTO relationships (id, source_entity_id, target_entity_id, type, weight, timestamp, properties)
81
+ VALUES (?, ?, ?, 'co_occurs_with', 1.0, ?, '{}')
82
+ ON CONFLICT(source_entity_id, target_entity_id, type) DO UPDATE SET
83
+ weight = MIN(weight + 0.1, 10.0),
84
+ timestamp = ?`,
85
+ args: [relId, sourceId, targetId, now, now]
86
+ });
87
+ created++;
88
+ } catch {
89
+ }
90
+ }
91
+ return created;
92
+ }
93
+ export {
94
+ createCoOccurrenceEdges
95
+ };
@@ -0,0 +1,30 @@
1
+ import {
2
+ analyzeBlastRadius,
3
+ buildCodeContextIndex,
4
+ buildCodeContextIndexWithEmbeddings,
5
+ getCodeContextIndexPath,
6
+ getCodeContextStats,
7
+ loadOrBuildCodeContextIndex,
8
+ searchCodeContext,
9
+ searchCodeContextSemantic,
10
+ traceCodeSymbol
11
+ } from "./chunk-ZD6EJ7LY.js";
12
+ import "./chunk-I7AW4237.js";
13
+ import "./chunk-4HDMB2M5.js";
14
+ import "./chunk-QOZQ2MYZ.js";
15
+ import "./chunk-FXD5LXRD.js";
16
+ import "./chunk-7L2EV3XX.js";
17
+ import "./chunk-R36FAN53.js";
18
+ import "./chunk-LYH5HE24.js";
19
+ import "./chunk-MLKGABMK.js";
20
+ export {
21
+ analyzeBlastRadius,
22
+ buildCodeContextIndex,
23
+ buildCodeContextIndexWithEmbeddings,
24
+ getCodeContextIndexPath,
25
+ getCodeContextStats,
26
+ loadOrBuildCodeContextIndex,
27
+ searchCodeContext,
28
+ searchCodeContextSemantic,
29
+ traceCodeSymbol
30
+ };
@@ -0,0 +1,110 @@
1
+ import "./chunk-MLKGABMK.js";
2
+
3
+ // src/lib/core-memory.ts
4
+ var MAX_CORE_ENTRIES = 10;
5
+ var MAX_ENTRY_LENGTH = 500;
6
+ var MAX_TOTAL_CHARS = 5e3;
7
+ async function getCoreMemory(agentId) {
8
+ try {
9
+ const { getClient } = await import("./lib/database.js");
10
+ const client = getClient();
11
+ const result = await client.execute({
12
+ sql: `SELECT key, value, updated_at FROM core_memory
13
+ WHERE agent_id = ? ORDER BY key ASC`,
14
+ args: [agentId]
15
+ });
16
+ return result.rows.map((r) => ({
17
+ key: String(r.key),
18
+ value: String(r.value),
19
+ updatedAt: String(r.updated_at)
20
+ }));
21
+ } catch {
22
+ return [];
23
+ }
24
+ }
25
+ async function setCoreMemory(agentId, key, value) {
26
+ if (value.length > MAX_ENTRY_LENGTH) {
27
+ throw new Error(`Core memory value too long (${value.length}/${MAX_ENTRY_LENGTH} chars). Core memory is for key facts, not documents.`);
28
+ }
29
+ const { getClient } = await import("./lib/database.js");
30
+ const client = getClient();
31
+ const countResult = await client.execute({
32
+ sql: `SELECT COUNT(*) as cnt FROM core_memory WHERE agent_id = ?`,
33
+ args: [agentId]
34
+ });
35
+ const count = Number(countResult.rows[0]?.cnt ?? 0);
36
+ const existing = await client.execute({
37
+ sql: `SELECT key FROM core_memory WHERE agent_id = ? AND key = ?`,
38
+ args: [agentId, key]
39
+ });
40
+ if (existing.rows.length === 0 && count >= MAX_CORE_ENTRIES) {
41
+ const oldest = await client.execute({
42
+ sql: `SELECT key, value, updated_at FROM core_memory
43
+ WHERE agent_id = ? ORDER BY updated_at ASC LIMIT 1`,
44
+ args: [agentId]
45
+ });
46
+ if (oldest.rows.length > 0) {
47
+ const oldKey = String(oldest.rows[0].key);
48
+ const oldValue = String(oldest.rows[0].value);
49
+ try {
50
+ const { randomUUID } = await import("crypto");
51
+ const { writeMemory } = await import("./lib/store.js");
52
+ await writeMemory({
53
+ id: randomUUID(),
54
+ agent_id: agentId,
55
+ agent_role: "core-demotion",
56
+ session_id: "core-memory-demotion",
57
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
58
+ tool_name: "core_memory_demotion",
59
+ project_name: "exe-os",
60
+ has_error: false,
61
+ raw_text: `[Demoted from core memory] ${oldKey}: ${oldValue}`,
62
+ vector: null
63
+ });
64
+ } catch {
65
+ }
66
+ await client.execute({
67
+ sql: `DELETE FROM core_memory WHERE agent_id = ? AND key = ?`,
68
+ args: [agentId, oldKey]
69
+ });
70
+ process.stderr.write(`[core-memory] Auto-demoted "${oldKey}" to regular memory (core full at ${MAX_CORE_ENTRIES})
71
+ `);
72
+ }
73
+ }
74
+ const sizeResult = await client.execute({
75
+ sql: `SELECT COALESCE(SUM(LENGTH(value)), 0) as total FROM core_memory WHERE agent_id = ? AND key != ?`,
76
+ args: [agentId, key]
77
+ });
78
+ const currentSize = Number(sizeResult.rows[0]?.total ?? 0);
79
+ if (currentSize + value.length > MAX_TOTAL_CHARS) {
80
+ throw new Error(`Core memory would exceed ${MAX_TOTAL_CHARS} char limit. Delete entries or shorten values.`);
81
+ }
82
+ await client.execute({
83
+ sql: `INSERT OR REPLACE INTO core_memory (agent_id, key, value, updated_at)
84
+ VALUES (?, ?, ?, ?)`,
85
+ args: [agentId, key, value, (/* @__PURE__ */ new Date()).toISOString()]
86
+ });
87
+ }
88
+ async function deleteCoreMemory(agentId, key) {
89
+ const { getClient } = await import("./lib/database.js");
90
+ const client = getClient();
91
+ const result = await client.execute({
92
+ sql: `DELETE FROM core_memory WHERE agent_id = ? AND key = ?`,
93
+ args: [agentId, key]
94
+ });
95
+ return (result.rowsAffected ?? 0) > 0;
96
+ }
97
+ function formatCoreMemoryBlock(entries) {
98
+ if (entries.length === 0) return null;
99
+ const lines = ["## Core Memory (always in context)", ""];
100
+ for (const e of entries) {
101
+ lines.push(`- **${e.key}:** ${e.value}`);
102
+ }
103
+ return lines.join("\n");
104
+ }
105
+ export {
106
+ deleteCoreMemory,
107
+ formatCoreMemoryBlock,
108
+ getCoreMemory,
109
+ setCoreMemory
110
+ };