@askexenow/exe-os 0.9.288 → 0.9.290

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 (444) hide show
  1. package/deploy/compose/README.md +6 -0
  2. package/deploy/compose/docker-compose.yml +48 -53
  3. package/dist/active-agent-DVMG6WVY.js +27 -0
  4. package/dist/active-agent-JJVXXRZV.js +26 -0
  5. package/dist/active-agent-L22OENGJ.js +26 -0
  6. package/dist/active-agent-SVG6F6HY.js +27 -0
  7. package/dist/agentic-ontology-2LJST3BE.js +25 -0
  8. package/dist/agentic-ontology-3GHJHLDY.js +25 -0
  9. package/dist/backfill-metadata-HJNVBORD.js +599 -0
  10. package/dist/backfill-metadata-W7PJ6YGP.js +599 -0
  11. package/dist/background-jobs-YTYZRTCM.js +25 -0
  12. package/dist/behaviors-EM5KZSHT.js +39 -0
  13. package/dist/behaviors-ROOZS234.js +39 -0
  14. package/dist/bin/age-ontology-load.js +2 -2
  15. package/dist/bin/agentic-ontology-backfill.js +8 -8
  16. package/dist/bin/agentic-reflection-backfill.js +9 -9
  17. package/dist/bin/agentic-semantic-label.js +8 -8
  18. package/dist/bin/backfill-conversations.js +8 -8
  19. package/dist/bin/backfill-responses.js +8 -8
  20. package/dist/bin/backfill-vectors.js +104 -19
  21. package/dist/bin/bulk-sync-postgres.js +9 -9
  22. package/dist/bin/cc-doctor.js +7 -7
  23. package/dist/bin/cleanup-stale-review-tasks.js +13 -13
  24. package/dist/bin/cli.js +56 -20
  25. package/dist/bin/deferred-daemon-restart.js +1 -1
  26. package/dist/bin/exe-agent-config.js +5 -5
  27. package/dist/bin/exe-agent.js +6 -6
  28. package/dist/bin/exe-assign.js +10 -10
  29. package/dist/bin/exe-boot.js +20 -20
  30. package/dist/bin/exe-call.js +6 -6
  31. package/dist/bin/exe-cloud.js +27 -9
  32. package/dist/bin/exe-dispatch.js +13 -13
  33. package/dist/bin/exe-doctor.js +1 -1
  34. package/dist/bin/exe-export-behaviors.js +9 -9
  35. package/dist/bin/exe-forget.js +8 -8
  36. package/dist/bin/exe-gateway.js +9 -9
  37. package/dist/bin/exe-healthcheck.js +7 -7
  38. package/dist/bin/exe-heartbeat.js +13 -13
  39. package/dist/bin/exe-kill.js +16 -16
  40. package/dist/bin/exe-launch-agent.js +20 -20
  41. package/dist/bin/exe-new-employee.js +9 -9
  42. package/dist/bin/exe-pending-messages.js +14 -14
  43. package/dist/bin/exe-pending-notifications.js +13 -13
  44. package/dist/bin/exe-pending-reviews.js +13 -13
  45. package/dist/bin/exe-rename.js +6 -6
  46. package/dist/bin/exe-review.js +15 -15
  47. package/dist/bin/exe-search.js +7 -7
  48. package/dist/bin/exe-session-cleanup.js +18 -18
  49. package/dist/bin/exe-settings.js +8 -8
  50. package/dist/bin/exe-start-codex.js +13 -13
  51. package/dist/bin/exe-start-opencode.js +10 -10
  52. package/dist/bin/exe-start.sh +29 -7
  53. package/dist/bin/exe-status.js +14 -14
  54. package/dist/bin/exe-support.js +3 -3
  55. package/dist/bin/exe-team.js +5 -5
  56. package/dist/bin/git-sweep.js +14 -14
  57. package/dist/bin/graph-backfill.js +7 -7
  58. package/dist/bin/graph-export.js +7 -7
  59. package/dist/bin/import-history.js +9 -9
  60. package/dist/bin/install-launchd.js +24 -1
  61. package/dist/bin/install.js +36 -12
  62. package/dist/bin/intercom-check.js +4 -4
  63. package/dist/bin/mcp-sessions.js +2 -2
  64. package/dist/bin/orchestration-metrics.js +6 -6
  65. package/dist/bin/postgres-agentic-reflection-backfill.js +4 -4
  66. package/dist/bin/postgres-agentic-semantic-backfill.js +3 -3
  67. package/dist/bin/scan-tasks.js +13 -13
  68. package/dist/bin/setup.js +2 -2
  69. package/dist/bin/shard-migrate.js +7 -7
  70. package/dist/bin/stack-update.js +7 -6
  71. package/dist/bin/vps-health-gate.js +1 -1
  72. package/dist/branding-PCLBJ3EP.js +97 -0
  73. package/dist/capability-cards-O6XB2AU4.js +88 -0
  74. package/dist/capability-cards-OEL47N2B.js +88 -0
  75. package/dist/capacity-monitor-UGMHVSUD.js +50 -0
  76. package/dist/capacity-monitor-ZE7CFVWH.js +50 -0
  77. package/dist/catchup-brief-3NONSIMA.js +174 -0
  78. package/dist/catchup-brief-HNEUKB7X.js +174 -0
  79. package/dist/chunk-232DHK5C.js +1119 -0
  80. package/dist/chunk-272SJ4RN.js +129 -0
  81. package/dist/chunk-2F5SG3CE.js +230 -0
  82. package/dist/chunk-2QMWIGJK.js +197 -0
  83. package/dist/chunk-2ZAOSGBX.js +668 -0
  84. package/dist/chunk-32K5NWMR.js +42 -0
  85. package/dist/chunk-32VOJ4GK.js +181 -0
  86. package/dist/chunk-3AUM4JVV.js +127 -0
  87. package/dist/chunk-3Q4UEXDE.js +297 -0
  88. package/dist/chunk-3RZNDPPW.js +2113 -0
  89. package/dist/chunk-3X2ZT5FN.js +3276 -0
  90. package/dist/chunk-44CP7NR2.js +333 -0
  91. package/dist/chunk-4FMNDJMY.js +50 -0
  92. package/dist/chunk-4NMTGHUE.js +127 -0
  93. package/dist/chunk-5J2L25OK.js +203 -0
  94. package/dist/chunk-5NQOIKAB.js +214 -0
  95. package/dist/chunk-5P3HOBZX.js +487 -0
  96. package/dist/chunk-5PLW3QL6.js +668 -0
  97. package/dist/chunk-5VAARLQR.js +58 -0
  98. package/dist/chunk-64GBV67L.js +1068 -0
  99. package/dist/chunk-66EIYAF2.js +157 -0
  100. package/dist/chunk-6IPJF5QD.js +630 -0
  101. package/dist/chunk-6MFM4N37.js +574 -0
  102. package/dist/chunk-6NSJTOXE.js +122 -0
  103. package/dist/chunk-6TLURATK.js +4318 -0
  104. package/dist/chunk-6WEETM7D.js +81 -0
  105. package/dist/chunk-6ZD3MW7T.js +97 -0
  106. package/dist/chunk-73JAJQRY.js +85 -0
  107. package/dist/chunk-73ORCJNJ.js +231 -0
  108. package/dist/chunk-75GH76GO.js +129 -0
  109. package/dist/chunk-7CHKD5IP.js +38 -0
  110. package/dist/chunk-7FTKXL5A.js +286 -0
  111. package/dist/chunk-7GTKCVVG.js +735 -0
  112. package/dist/chunk-7IRQSO3F.js +735 -0
  113. package/dist/chunk-7K4YVOAK.js +76 -0
  114. package/dist/chunk-7LOYIUOF.js +456 -0
  115. package/dist/chunk-7MINWZ3J.js +214 -0
  116. package/dist/chunk-7T5PS5DG.js +14439 -0
  117. package/dist/chunk-7XUJF3LZ.js +284 -0
  118. package/dist/chunk-A74WXY4S.js +227 -0
  119. package/dist/chunk-AVD5C3NG.js +197 -0
  120. package/dist/chunk-B36MRLEP.js +58 -0
  121. package/dist/chunk-B4TCZ3PS.js +373 -0
  122. package/dist/chunk-BJYLTU2G.js +621 -0
  123. package/dist/chunk-BPLEJ3EU.js +411 -0
  124. package/dist/chunk-BR2OA4AZ.js +123 -0
  125. package/dist/chunk-BTDPLFGK.js +221 -0
  126. package/dist/chunk-BTP3LPMP.js +210 -0
  127. package/dist/chunk-BU45UYTK.js +185 -0
  128. package/dist/chunk-BYOEIN37.js +176 -0
  129. package/dist/chunk-CCAA6XOZ.js +284 -0
  130. package/dist/chunk-CMDKYYFK.js +630 -0
  131. package/dist/chunk-D6LUKYKM.js +731 -0
  132. package/dist/chunk-DBQ6I6K2.js +3276 -0
  133. package/dist/chunk-DDWFHEPG.js +345 -0
  134. package/dist/chunk-DFSI6HFJ.js +2078 -0
  135. package/dist/chunk-DJLDKRXK.js +30 -0
  136. package/dist/chunk-DSOKTUTT.js +167 -0
  137. package/dist/chunk-EESAZNRC.js +348 -0
  138. package/dist/chunk-EQY6GDVD.js +369 -0
  139. package/dist/chunk-ETCARC76.js +836 -0
  140. package/dist/chunk-EYLU6MJT.js +192 -0
  141. package/dist/chunk-EZHTLPOS.js +280 -0
  142. package/dist/chunk-F23GFLKY.js +4318 -0
  143. package/dist/chunk-F3DQ3HDH.js +333 -0
  144. package/dist/chunk-F5SADWWW.js +240 -0
  145. package/dist/chunk-F6ZCUDCN.js +244 -0
  146. package/dist/chunk-FE6HKM2N.js +157 -0
  147. package/dist/chunk-FI5Q6F5S.js +382 -0
  148. package/dist/chunk-FNQZGNSG.js +1094 -0
  149. package/dist/chunk-FTG36JG5.js +280 -0
  150. package/dist/chunk-FVKTXXKK.js +128 -0
  151. package/dist/chunk-FZDW76SH.js +89 -0
  152. package/dist/chunk-G6GC2YSP.js +262 -0
  153. package/dist/chunk-HH2JVSKL.js +1157 -0
  154. package/dist/chunk-HHR5NB6N.js +377 -0
  155. package/dist/chunk-HJQQ7746.js +185 -0
  156. package/dist/chunk-HLFNLJSB.js +271 -0
  157. package/dist/chunk-HRZLGHT6.js +290 -0
  158. package/dist/chunk-HSSRWMVA.js +68 -0
  159. package/dist/chunk-HX735WX7.js +33 -0
  160. package/dist/chunk-I3NVB5MG.js +85 -0
  161. package/dist/chunk-I7Z6MK2B.js +240 -0
  162. package/dist/chunk-ID4SMRYX.js +2078 -0
  163. package/dist/chunk-IUQBMSBI.js +1350 -0
  164. package/dist/chunk-J6PDP2GY.js +221 -0
  165. package/dist/chunk-JGOGSH55.js +14378 -0
  166. package/dist/chunk-JRZ47IFL.js +82 -0
  167. package/dist/chunk-JXGHDROV.js +546 -0
  168. package/dist/chunk-JZEROVAU.js +546 -0
  169. package/dist/chunk-KFHAVF6J.js +97 -0
  170. package/dist/chunk-KJALZ6F6.js +128 -0
  171. package/dist/chunk-KMAIBYV3.js +402 -0
  172. package/dist/chunk-KMTNAXIB.js +54 -0
  173. package/dist/chunk-KQY4QIEN.js +731 -0
  174. package/dist/chunk-LHW7TZGJ.js +244 -0
  175. package/dist/chunk-LIH36DXG.js +159 -0
  176. package/dist/chunk-LRSU2ZU2.js +38 -0
  177. package/dist/chunk-M3VHV2RV.js +106 -0
  178. package/dist/chunk-MFCL4GAN.js +2113 -0
  179. package/dist/chunk-MFGMVKGM.js +150 -0
  180. package/dist/chunk-MFTGN7KN.js +411 -0
  181. package/dist/chunk-MUHKJCF7.js +128 -0
  182. package/dist/chunk-NHGBVLCD.js +210 -0
  183. package/dist/chunk-NOEBJMNN.js +33 -0
  184. package/dist/chunk-NQ2VNTGL.js +538 -0
  185. package/dist/chunk-NV5SSKZE.js +171 -0
  186. package/dist/chunk-NXJ2CP2C.js +290 -0
  187. package/dist/chunk-O4PZPM6H.js +204 -0
  188. package/dist/chunk-O5OW3YGQ.js +262 -0
  189. package/dist/chunk-OJQTONDJ.js +171 -0
  190. package/dist/chunk-OKZGUHE5.js +76 -0
  191. package/dist/chunk-OOH5M36Q.js +448 -0
  192. package/dist/chunk-OXUHCIGV.js +1352 -0
  193. package/dist/chunk-P5ARTZP2.js +128 -0
  194. package/dist/chunk-PKRSYS7F.js +402 -0
  195. package/dist/chunk-PNQDP3OA.js +800 -0
  196. package/dist/chunk-PQWO5D3F.js +348 -0
  197. package/dist/chunk-PYTSVZWG.js +377 -0
  198. package/dist/chunk-Q2R3WUW4.js +448 -0
  199. package/dist/chunk-Q6MJIJ2O.js +1352 -0
  200. package/dist/chunk-QFGJERAP.js +1119 -0
  201. package/dist/chunk-QKDRYZ2N.js +231 -0
  202. package/dist/chunk-QO7M774X.js +1094 -0
  203. package/dist/chunk-QODXLGH2.js +70 -0
  204. package/dist/chunk-RAV356E6.js +30 -0
  205. package/dist/chunk-RHC57KVT.js +85 -0
  206. package/dist/chunk-RHE7SHZJ.js +345 -0
  207. package/dist/chunk-RJY45A5J.js +133 -0
  208. package/dist/chunk-RK7EAA53.js +1157 -0
  209. package/dist/chunk-RSLVAYWS.js +192 -0
  210. package/dist/chunk-RVOPNDGY.js +150 -0
  211. package/dist/chunk-S3QEHFGE.js +373 -0
  212. package/dist/chunk-SCQEAMO3.js +299 -0
  213. package/dist/chunk-SL6WJP2Q.js +123 -0
  214. package/dist/chunk-SYOGNG2R.js +379 -0
  215. package/dist/chunk-T57DOVGE.js +97 -0
  216. package/dist/chunk-TEOJ63HX.js +362 -0
  217. package/dist/chunk-TMCKL43Q.js +181 -0
  218. package/dist/chunk-TMV5LCTC.js +167 -0
  219. package/dist/chunk-TO5ZXGDF.js +190 -0
  220. package/dist/chunk-TQZABASE.js +97 -0
  221. package/dist/chunk-U5RKF7MQ.js +836 -0
  222. package/dist/chunk-UBWBEY6I.js +81 -0
  223. package/dist/chunk-UDMFABWN.js +510 -0
  224. package/dist/chunk-UKS5CXQU.js +382 -0
  225. package/dist/chunk-UP7DNYG7.js +456 -0
  226. package/dist/chunk-V2OOLS63.js +41 -0
  227. package/dist/chunk-V5MGYIZS.js +70 -0
  228. package/dist/chunk-VBAY3OA7.js +604 -0
  229. package/dist/chunk-VK4KORCQ.js +204 -0
  230. package/dist/chunk-XCPVYQVK.js +336 -0
  231. package/dist/chunk-XWVBLZRP.js +50 -0
  232. package/dist/chunk-Y4ZA4GCQ.js +85 -0
  233. package/dist/chunk-YBTN5F2U.js +1068 -0
  234. package/dist/chunk-YMMYZXVZ.js +55 -0
  235. package/dist/chunk-Z5RXZRUC.js +227 -0
  236. package/dist/chunk-Z772TGD2.js +54 -0
  237. package/dist/chunk-ZAMPIXLH.js +1350 -0
  238. package/dist/chunk-ZPILUBWK.js +2142 -0
  239. package/dist/chunk-ZYEOHGU5.js +362 -0
  240. package/dist/co-activation-WCLF766F.js +73 -0
  241. package/dist/co-activation-WJTFJOTK.js +73 -0
  242. package/dist/co-occurrence-KFP6ZS7G.js +94 -0
  243. package/dist/co-occurrence-LPHW6UTZ.js +94 -0
  244. package/dist/code-context-index-QR5PAXM4.js +30 -0
  245. package/dist/conversation-wiki-populator-IMHNWKEU.js +105 -0
  246. package/dist/core-memory-3LSCC75D.js +110 -0
  247. package/dist/core-memory-DBZJ72TV.js +110 -0
  248. package/dist/crdt-sync-6DVGRMTV.js +33 -0
  249. package/dist/crdt-sync-UQ3PXFRB.js +33 -0
  250. package/dist/crm-webhook-55T4Z6XJ.js +10 -0
  251. package/dist/crm-webhook-VONTDB3M.js +10 -0
  252. package/dist/cto-delegation-gate-B7AKO7FX.js +279 -0
  253. package/dist/cto-delegation-gate-SPM6LAL2.js +279 -0
  254. package/dist/daemon-auth-55T2DI6G.js +13 -0
  255. package/dist/daemon-orchestration-XZLWWIV4.js +138 -0
  256. package/dist/daemon-orchestration-ZBDBRKVR.js +138 -0
  257. package/dist/db-backup-JHCI47JQ.js +37 -0
  258. package/dist/db-backup-LPCCZYIL.js +33 -0
  259. package/dist/db-restore-events-QF3KCGVZ.js +76 -0
  260. package/dist/doc-graph-extractor-4X23NP4I.js +132 -0
  261. package/dist/doc-graph-extractor-IOSZSDDW.js +132 -0
  262. package/dist/dreaming-KA3SN53N.js +33 -0
  263. package/dist/dreaming-TFZDGA72.js +33 -0
  264. package/dist/entity-boost-YFIFLE6N.js +375 -0
  265. package/dist/exe-drift-CLJ74KCO.js +69 -0
  266. package/dist/exe-drift-TEM7ELNY.js +69 -0
  267. package/dist/exe-export-CRCA4T4S.js +75 -0
  268. package/dist/exe-export-QF5V54XC.js +75 -0
  269. package/dist/exe-import-M4VYXCJZ.js +78 -0
  270. package/dist/exe-import-UZMMWNHJ.js +78 -0
  271. package/dist/exe-key-7PDQ72W2.js +580 -0
  272. package/dist/exe-key-NQQXEDUA.js +672 -0
  273. package/dist/exe-org-VAUMR7TL.js +73 -0
  274. package/dist/exe-snapshot-P7PUAJTV.js +337 -0
  275. package/dist/exe-snapshot-W5IVP6VF.js +337 -0
  276. package/dist/fast-db-init-G63PRINQ.js +7 -0
  277. package/dist/fast-db-init-MZOQZ2BW.js +7 -0
  278. package/dist/founder-context-QGKRISJH.js +96 -0
  279. package/dist/gateway/index.js +10 -10
  280. package/dist/git-staleness-42TTCFDP.js +111 -0
  281. package/dist/git-staleness-U7ADZARV.js +111 -0
  282. package/dist/git-task-sweep-4LW5RYYO.js +41 -0
  283. package/dist/git-task-sweep-T27IFHBH.js +41 -0
  284. package/dist/global-procedures-BVFRWJAV.js +21 -0
  285. package/dist/global-procedures-VJUQAYZ5.js +21 -0
  286. package/dist/graph-auto-extract-4ZA7UC6C.js +182 -0
  287. package/dist/graph-auto-extract-ZTZ44VKT.js +182 -0
  288. package/dist/hook-integrity-YPMNLP7B.js +89 -0
  289. package/dist/hooks/bug-report-worker.js +15 -15
  290. package/dist/hooks/codex-stop-task-finalizer.js +15 -15
  291. package/dist/hooks/commit-complete.js +16 -16
  292. package/dist/hooks/error-recall.js +9 -9
  293. package/dist/hooks/exe-heartbeat-hook.js +6 -6
  294. package/dist/hooks/ingest-worker.js +5 -5
  295. package/dist/hooks/ingest.js +13 -13
  296. package/dist/hooks/instructions-loaded.js +7 -7
  297. package/dist/hooks/manifest.json +20 -20
  298. package/dist/hooks/notification.js +7 -7
  299. package/dist/hooks/post-compact.js +15 -15
  300. package/dist/hooks/post-tool-combined.js +7 -7
  301. package/dist/hooks/pre-compact.js +20 -20
  302. package/dist/hooks/pre-tool-use.js +19 -19
  303. package/dist/hooks/prompt-submit.js +27 -27
  304. package/dist/hooks/session-end.js +25 -25
  305. package/dist/hooks/session-start.js +24 -18
  306. package/dist/hooks/stop.js +22 -22
  307. package/dist/hooks/subagent-stop.js +15 -15
  308. package/dist/hooks/summary-worker.js +22 -22
  309. package/dist/index.js +21 -21
  310. package/dist/installer-2MDIUMZS.js +343 -0
  311. package/dist/installer-CBGRTGIF.js +297 -0
  312. package/dist/installer-DGU4WZKJ.js +39 -0
  313. package/dist/installer-DS7H47GB.js +297 -0
  314. package/dist/installer-JSUC44TR.js +39 -0
  315. package/dist/installer-WTWEOSEK.js +343 -0
  316. package/dist/key-backup-status-X5CBECJ3.js +39 -0
  317. package/dist/lib/agent-config.js +2 -2
  318. package/dist/lib/cloud-sync.js +7 -7
  319. package/dist/lib/config.js +7 -1
  320. package/dist/lib/consolidation.js +9 -7
  321. package/dist/lib/database.js +4 -4
  322. package/dist/lib/db-daemon-client.js +3 -3
  323. package/dist/lib/db.js +4 -4
  324. package/dist/lib/device-registry.js +1 -1
  325. package/dist/lib/embed-worker.js +18 -7
  326. package/dist/lib/embedder.js +4 -4
  327. package/dist/lib/employee-templates.js +6 -6
  328. package/dist/lib/employees.js +4 -4
  329. package/dist/lib/exe-daemon-client.js +3 -3
  330. package/dist/lib/exe-daemon.js +165 -67
  331. package/dist/lib/hybrid-search.js +7 -7
  332. package/dist/lib/identity-templates.js +1 -1
  333. package/dist/lib/identity.js +4 -4
  334. package/dist/lib/license.js +2 -2
  335. package/dist/lib/messaging.js +13 -13
  336. package/dist/lib/reminders.js +5 -5
  337. package/dist/lib/schedules.js +7 -7
  338. package/dist/lib/session-registry.js +6 -6
  339. package/dist/lib/skill-learning.js +8 -8
  340. package/dist/lib/store.js +6 -6
  341. package/dist/lib/task-router.js +5 -5
  342. package/dist/lib/tasks.js +14 -14
  343. package/dist/lib/tmux-routing.js +12 -12
  344. package/dist/lib/token-spend.js +5 -5
  345. package/dist/lib/ws-client.js +5 -0
  346. package/dist/license-gate-OSPA2OD7.js +16 -0
  347. package/dist/license-gate-R5EZ7HD3.js +14 -0
  348. package/dist/mcp/register-tools.js +67 -67
  349. package/dist/mcp/server.js +128 -84
  350. package/dist/mcp/tools/complete-reminder.js +6 -6
  351. package/dist/mcp/tools/create-reminder.js +6 -6
  352. package/dist/mcp/tools/create-task.js +16 -16
  353. package/dist/mcp/tools/deactivate-behavior.js +9 -9
  354. package/dist/mcp/tools/list-reminders.js +6 -6
  355. package/dist/mcp/tools/list-tasks.js +16 -16
  356. package/dist/mcp/tools/send-message.js +15 -15
  357. package/dist/mcp/tools/update-task.js +15 -15
  358. package/dist/mcp-http-config-DV6S22TF.js +28 -0
  359. package/dist/mcp-http-config-OGFPLJYH.js +28 -0
  360. package/dist/memory-cards-AUWC6FN6.js +179 -0
  361. package/dist/memory-cards-GJ3VHKAM.js +179 -0
  362. package/dist/memory-graph-extractor-7OWSK2ON.js +21 -0
  363. package/dist/memory-graph-extractor-TCTCM7PZ.js +21 -0
  364. package/dist/memory-poisoning-defense-FVLGA35X.js +223 -0
  365. package/dist/memory-poisoning-defense-TLVXFY43.js +223 -0
  366. package/dist/memory-queue-4QU434ZH.js +19 -0
  367. package/dist/memory-queue-client-6KTL3U3I.js +16 -0
  368. package/dist/memory-reflection-BYJFIFSV.js +243 -0
  369. package/dist/memory-reflection-C52FI4W2.js +243 -0
  370. package/dist/message-queue-client-DFXF7LJD.js +92 -0
  371. package/dist/notifications-AQKZFSR3.js +46 -0
  372. package/dist/notifications-U3NJYMXX.js +46 -0
  373. package/dist/oauth-server-NR3XEPA4.js +437 -0
  374. package/dist/orchestration-events-RDSYLFXZ.js +26 -0
  375. package/dist/orchestration-events-TKODYRYP.js +26 -0
  376. package/dist/orchestration-phase-UCTFU32J.js +23 -0
  377. package/dist/orchestrator-2JTJQLPG.js +34 -0
  378. package/dist/orchestrator-GNI5PCA6.js +34 -0
  379. package/dist/pipeline-router-HBSTKHG5.js +14 -0
  380. package/dist/pipeline-router-P2QAQHUY.js +14 -0
  381. package/dist/plan-limits-GQENSNTG.js +27 -0
  382. package/dist/plan-limits-UDKZ2O7W.js +27 -0
  383. package/dist/project-boot-5R3GLCVN.js +299 -0
  384. package/dist/project-boot-W2LTP7WW.js +299 -0
  385. package/dist/projection-worker-7EWWMJHG.js +1034 -0
  386. package/dist/projection-worker-ZMT5KNJJ.js +1084 -0
  387. package/dist/prospective-memory-7B65EHWB.js +231 -0
  388. package/dist/prospective-memory-LANRNOJX.js +231 -0
  389. package/dist/push-notifications-X7E7GSC7.js +15 -0
  390. package/dist/reranker-EUG4XM44.js +19 -0
  391. package/dist/reranker-QGJO6EHO.js +19 -0
  392. package/dist/retrieval-health-JE66LJ3I.js +11 -0
  393. package/dist/retrieval-health-WLNAPJCX.js +11 -0
  394. package/dist/review-polling-IXJ57M6Q.js +125 -0
  395. package/dist/review-polling-WHPJUENR.js +125 -0
  396. package/dist/runtime/index.js +15 -15
  397. package/dist/session-events-WMK6FCKZ.js +37 -0
  398. package/dist/session-events-XKG66APL.js +37 -0
  399. package/dist/session-kill-telemetry-2BU72YXD.js +30 -0
  400. package/dist/session-kill-telemetry-VTU7YBII.js +30 -0
  401. package/dist/session-scope-RYBNHQ43.js +87 -0
  402. package/dist/session-scope-TQZONLZL.js +87 -0
  403. package/dist/setup-wizard-NID5EPDN.js +12 -0
  404. package/dist/setup-wizard-PXK6SC2D.js +12 -0
  405. package/dist/shard-manager-F3YYEG5S.js +30 -0
  406. package/dist/skill-refinement-KRMGOT5M.js +158 -0
  407. package/dist/skill-refinement-Y6LLKYRL.js +158 -0
  408. package/dist/stack-update-3LZQWW3G.js +80 -0
  409. package/dist/steward-gate-KC4NOULU.js +14 -0
  410. package/dist/steward-gate-QV2APBFB.js +14 -0
  411. package/dist/task-enforcement-AI433TPY.js +439 -0
  412. package/dist/task-enforcement-GLDD2W5D.js +505 -0
  413. package/dist/task-scope-HMPIP6XB.js +36 -0
  414. package/dist/task-scope-XRH4KDJB.js +36 -0
  415. package/dist/tasks-crud-2KYGDJG2.js +78 -0
  416. package/dist/tasks-crud-FH2SFCNQ.js +78 -0
  417. package/dist/tasks-notify-3ZW2GLCS.js +39 -0
  418. package/dist/tasks-notify-AJSRQHLZ.js +39 -0
  419. package/dist/tasks-review-ISSCHGTG.js +48 -0
  420. package/dist/tasks-review-XERV6KZD.js +48 -0
  421. package/dist/telemetry-upload-R77W7I7G.js +740 -0
  422. package/dist/telemetry-upload-VZ3A6EPD.js +740 -0
  423. package/dist/token-budget-NA4WQAY6.js +85 -0
  424. package/dist/token-budget-SIXJ7ED5.js +85 -0
  425. package/dist/tool-capability-index-TK5K76RB.js +10 -0
  426. package/dist/tool-telemetry-D4Q76LAS.js +17 -0
  427. package/dist/tool-telemetry-NTFTPF3L.js +17 -0
  428. package/dist/tui/App.js +25 -25
  429. package/dist/tui-data-2LNENF36.js +259 -0
  430. package/dist/tui-data-NJSEIA2Q.js +259 -0
  431. package/dist/webhook-pipe-VQMOLXMW.js +114 -0
  432. package/dist/wiki-acl-33D5QTU4.js +111 -0
  433. package/dist/wiki-acl-RE5IR5VV.js +111 -0
  434. package/dist/wiki-client-XZ6VZTH6.js +157 -0
  435. package/dist/worker-gate-NCEAKLJE.js +21 -0
  436. package/dist/worker-gate-VN2POPFL.js +21 -0
  437. package/dist/workflow-engine-D7ALMSDM.js +28 -0
  438. package/dist/workflow-engine-WFN3HPAZ.js +28 -0
  439. package/dist/worktree-6I45JV5N.js +27 -0
  440. package/dist/worktree-O66YDTSF.js +27 -0
  441. package/dist/worktree-sweep-IMDR3XHT.js +20 -0
  442. package/dist/worktree-sweep-M2ENRTY6.js +20 -0
  443. package/package.json +1 -1
  444. package/release-notes.json +127 -127
@@ -6,13 +6,13 @@ import {
6
6
  setupGhostty,
7
7
  setupTmux,
8
8
  setupWezterm
9
- } from "../chunk-Z5YFGOLZ.js";
9
+ } from "../chunk-YBTN5F2U.js";
10
10
  import "../chunk-GNHN5HRQ.js";
11
11
  import {
12
12
  generateSessionWrappers
13
13
  } from "../chunk-EM4EYF3P.js";
14
14
  import "../chunk-L3TB7CC3.js";
15
- import "../chunk-Y6CVAZ7T.js";
15
+ import "../chunk-TQZABASE.js";
16
16
  import {
17
17
  computeDaemonHeapCapMb
18
18
  } from "../chunk-3XX3CDKF.js";
@@ -20,14 +20,14 @@ import {
20
20
  requestDeployRestart,
21
21
  updateMcpVersionMarker
22
22
  } from "../chunk-7L2EV3XX.js";
23
- import "../chunk-LCB6YCE6.js";
23
+ import "../chunk-V5MGYIZS.js";
24
24
  import "../chunk-HYZV25LY.js";
25
- import "../chunk-XVDWHYIK.js";
25
+ import "../chunk-DBQ6I6K2.js";
26
26
  import "../chunk-2I23RPSI.js";
27
- import "../chunk-CZ47BFAT.js";
28
- import "../chunk-5DNJPRDW.js";
27
+ import "../chunk-XCPVYQVK.js";
28
+ import "../chunk-PNQDP3OA.js";
29
29
  import "../chunk-FXU7JOXK.js";
30
- import "../chunk-CEKZ77KA.js";
30
+ import "../chunk-5P3HOBZX.js";
31
31
  import "../chunk-LYH5HE24.js";
32
32
  import {
33
33
  isMainModule
@@ -35,7 +35,7 @@ import {
35
35
  import "../chunk-MLKGABMK.js";
36
36
 
37
37
  // src/bin/install.ts
38
- import { existsSync, openSync, closeSync, writeFileSync, readFileSync, unlinkSync, statSync, mkdirSync, chmodSync, renameSync } from "fs";
38
+ import { existsSync, openSync, closeSync, writeFileSync, readFileSync, unlinkSync, statSync, mkdirSync, chmodSync, renameSync, readdirSync } from "fs";
39
39
  import { spawn, execSync } from "child_process";
40
40
  import path from "path";
41
41
  import os from "os";
@@ -109,7 +109,7 @@ async function spawnDaemonInline(pkgRoot) {
109
109
  } catch {
110
110
  }
111
111
  const heapCapMB = computeDaemonHeapCapMb(totalGB);
112
- const child = spawn(process.execPath, [`--max-old-space-size=${heapCapMB}`, daemonPath], {
112
+ const child = spawn(process.execPath, [`--max-old-space-size=${heapCapMB}`, "--expose-gc", daemonPath], {
113
113
  detached: true,
114
114
  stdio: ["ignore", "ignore", stderrFd],
115
115
  env: { ...process.env, EXE_DAEMON_SOCK: sockPath, EXE_DAEMON_PID: pidPath }
@@ -137,6 +137,27 @@ async function spawnDaemonInline(pkgRoot) {
137
137
  process.stderr.write(healthy ? "exe-os: daemon restarted and healthy\n" : "exe-os: daemon spawned but health check pending\n");
138
138
  }
139
139
  var DEFERRED_RESTART_PID_PATH = path.join(EXE_DIR, "deferred-restart.pid");
140
+ function detectEmbeddingsInUse(home) {
141
+ try {
142
+ const envOverride = process.env.EXE_EMBEDDINGS;
143
+ if (envOverride === "1" || envOverride === "true") return true;
144
+ if (envOverride === "0" || envOverride === "false") return false;
145
+ const exeDir = path.join(home, ".exe-os");
146
+ const configPath = path.join(exeDir, "config.json");
147
+ if (existsSync(configPath)) {
148
+ try {
149
+ const cfg = JSON.parse(readFileSync(configPath, "utf8"));
150
+ if (cfg.searchMode === "fts") return false;
151
+ } catch {
152
+ }
153
+ }
154
+ const modelsDir = path.join(exeDir, "models");
155
+ if (!existsSync(modelsDir)) return false;
156
+ return readdirSync(modelsDir).some((f) => f.toLowerCase().endsWith(".gguf"));
157
+ } catch {
158
+ return false;
159
+ }
160
+ }
140
161
  function setupDaemonKeepalive() {
141
162
  const plistDir = path.join(os.homedir(), "Library", "LaunchAgents");
142
163
  const newPlistPath = path.join(plistDir, "com.askexe.exed.plist");
@@ -160,7 +181,8 @@ function setupDaemonKeepalive() {
160
181
  const daemonPath = path.join(pkgRoot, "dist", "lib", "exe-daemon.js");
161
182
  const home = os.homedir();
162
183
  const nodeShimPath = ensureNodeShim(home);
163
- const heapCapMB = computeDaemonHeapCapMb(totalGB);
184
+ const embeddingsInUse = detectEmbeddingsInUse(home);
185
+ const heapCapMB = 2048;
164
186
  const plistContent = `<?xml version="1.0" encoding="UTF-8"?>
165
187
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
166
188
  <plist version="1.0">
@@ -186,7 +208,9 @@ function setupDaemonKeepalive() {
186
208
  <key>PATH</key>
187
209
  <string>/usr/local/bin:/usr/bin:/bin:/opt/homebrew/bin</string>
188
210
  <key>HOME</key>
189
- <string>${home}</string>
211
+ <string>${home}</string>${embeddingsInUse ? `
212
+ <key>EXE_EMBEDDINGS</key>
213
+ <string>1</string>` : ""}
190
214
  </dict>
191
215
  <key>StandardOutPath</key>
192
216
  <string>${path.join(home, ".exe-os", "logs", "exed-launchd.log")}</string>
@@ -552,7 +576,7 @@ async function runGlobalInstall() {
552
576
  }
553
577
  try {
554
578
  execSync("which codex", { encoding: "utf8", timeout: 5e3 });
555
- const { runCodexInstaller } = await import("../installer-XREYYGF2.js");
579
+ const { runCodexInstaller } = await import("../installer-WTWEOSEK.js");
556
580
  await runCodexInstaller();
557
581
  } catch {
558
582
  }
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  fastDbInit
4
- } from "../chunk-OAO2BK25.js";
4
+ } from "../chunk-UBWBEY6I.js";
5
5
  import "../chunk-MLKGABMK.js";
6
6
 
7
7
  // src/bin/intercom-check.ts
@@ -17,7 +17,7 @@ async function main() {
17
17
  }
18
18
  if (isCoordinator) {
19
19
  try {
20
- const { listPendingReviews, cleanupOrphanedReviews, formatAge, isStale } = await import("../tasks-review-VV3RLPLT.js");
20
+ const { listPendingReviews, cleanupOrphanedReviews, formatAge, isStale } = await import("../tasks-review-XERV6KZD.js");
21
21
  const { extractRootExe } = await import("../lib/tmux-routing.js");
22
22
  let sessionScope = process.env.EXE_SESSION ? extractRootExe(process.env.EXE_SESSION) ?? void 0 : void 0;
23
23
  if (!sessionScope) {
@@ -95,7 +95,7 @@ async function main() {
95
95
  }
96
96
  if (!isCoordinator) {
97
97
  try {
98
- const { listBehaviors } = await import("../behaviors-MO5BWFPW.js");
98
+ const { listBehaviors } = await import("../behaviors-ROOZS234.js");
99
99
  const sessionStart = process.env.EXE_SESSION_START_ISO ?? "";
100
100
  if (sessionStart) {
101
101
  const behaviors = await listBehaviors(agent);
@@ -114,7 +114,7 @@ async function main() {
114
114
  }
115
115
  }
116
116
  try {
117
- const { readUnreadNotifications, markAsRead } = await import("../notifications-67M5SPLO.js");
117
+ const { readUnreadNotifications, markAsRead } = await import("../notifications-AQKZFSR3.js");
118
118
  const { resolveExeSession } = await import("../lib/tmux-routing.js");
119
119
  const sessionScope = resolveExeSession();
120
120
  const notifications = await readUnreadNotifications(agent, sessionScope);
@@ -45,10 +45,10 @@ async function collectSessions() {
45
45
  const registryMap = new Map(registry.map((r) => [r.windowName, r]));
46
46
  const taskMap = /* @__PURE__ */ new Map();
47
47
  try {
48
- const { fastDbInit } = await import("../fast-db-init-FMECTLNS.js");
48
+ const { fastDbInit } = await import("../fast-db-init-G63PRINQ.js");
49
49
  await fastDbInit();
50
50
  const { getClient } = await import("../lib/database.js");
51
- const { sessionScopeFilter } = await import("../task-scope-HGL6VACL.js");
51
+ const { sessionScopeFilter } = await import("../task-scope-HMPIP6XB.js");
52
52
  const client = getClient();
53
53
  const scope = sessionScopeFilter();
54
54
  const result = await client.execute({
@@ -1,17 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  fastDbInit
4
- } from "../chunk-OAO2BK25.js";
4
+ } from "../chunk-UBWBEY6I.js";
5
5
  import {
6
6
  formatOrchestrationMetrics,
7
7
  getOrchestrationMetrics
8
- } from "../chunk-DYICAAAM.js";
9
- import "../chunk-XVDWHYIK.js";
8
+ } from "../chunk-6IPJF5QD.js";
9
+ import "../chunk-DBQ6I6K2.js";
10
10
  import "../chunk-2I23RPSI.js";
11
- import "../chunk-CZ47BFAT.js";
12
- import "../chunk-5DNJPRDW.js";
11
+ import "../chunk-XCPVYQVK.js";
12
+ import "../chunk-PNQDP3OA.js";
13
13
  import "../chunk-FXU7JOXK.js";
14
- import "../chunk-CEKZ77KA.js";
14
+ import "../chunk-5P3HOBZX.js";
15
15
  import "../chunk-LYH5HE24.js";
16
16
  import {
17
17
  isMainModule
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  buildReflectionCheckpoint
4
- } from "../chunk-XFQJH67J.js";
5
- import "../chunk-GLEE2MUJ.js";
4
+ } from "../chunk-66EIYAF2.js";
5
+ import "../chunk-O5OW3YGQ.js";
6
6
  import {
7
7
  pgSslConfig
8
8
  } from "../chunk-EQSQ4HBW.js";
9
9
  import {
10
10
  politeBatchPause,
11
11
  startManagedJob
12
- } from "../chunk-22R3G3GD.js";
13
- import "../chunk-CEKZ77KA.js";
12
+ } from "../chunk-3Q4UEXDE.js";
13
+ import "../chunk-5P3HOBZX.js";
14
14
  import "../chunk-LYH5HE24.js";
15
15
  import "../chunk-MLKGABMK.js";
16
16
 
@@ -2,15 +2,15 @@
2
2
  import {
3
3
  inferSemanticLabel,
4
4
  stableId
5
- } from "../chunk-GLEE2MUJ.js";
5
+ } from "../chunk-O5OW3YGQ.js";
6
6
  import {
7
7
  pgSslConfig
8
8
  } from "../chunk-EQSQ4HBW.js";
9
9
  import {
10
10
  politeBatchPause,
11
11
  startManagedJob
12
- } from "../chunk-22R3G3GD.js";
13
- import "../chunk-CEKZ77KA.js";
12
+ } from "../chunk-3Q4UEXDE.js";
13
+ import "../chunk-5P3HOBZX.js";
14
14
  import "../chunk-LYH5HE24.js";
15
15
  import "../chunk-MLKGABMK.js";
16
16
 
@@ -1,33 +1,33 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  queryTaskRows
4
- } from "../chunk-4EBW3URQ.js";
5
- import "../chunk-4KVMYS3U.js";
4
+ } from "../chunk-6TLURATK.js";
5
+ import "../chunk-EZHTLPOS.js";
6
6
  import "../chunk-4JERP7NT.js";
7
7
  import "../chunk-4FVVJ7ME.js";
8
- import "../chunk-BQBPNRUW.js";
8
+ import "../chunk-QKDRYZ2N.js";
9
9
  import "../chunk-MVW62NIZ.js";
10
10
  import "../chunk-OYNKIAVW.js";
11
11
  import "../chunk-SSTLTIF3.js";
12
- import "../chunk-DYICAAAM.js";
13
- import "../chunk-SLFB2RY6.js";
12
+ import "../chunk-6IPJF5QD.js";
13
+ import "../chunk-RJY45A5J.js";
14
14
  import "../chunk-NGP6LSV2.js";
15
- import "../chunk-H6PW4LNY.js";
15
+ import "../chunk-272SJ4RN.js";
16
16
  import {
17
17
  getSessionRuntime
18
18
  } from "../chunk-CVYC6DUW.js";
19
19
  import "../chunk-OPU3NYOO.js";
20
20
  import "../chunk-GJV3WDWM.js";
21
21
  import "../chunk-MP2AFCGL.js";
22
- import "../chunk-LCB6YCE6.js";
22
+ import "../chunk-V5MGYIZS.js";
23
23
  import "../chunk-HYZV25LY.js";
24
- import "../chunk-XVDWHYIK.js";
24
+ import "../chunk-DBQ6I6K2.js";
25
25
  import "../chunk-2I23RPSI.js";
26
- import "../chunk-CZ47BFAT.js";
27
- import "../chunk-5DNJPRDW.js";
26
+ import "../chunk-XCPVYQVK.js";
27
+ import "../chunk-PNQDP3OA.js";
28
28
  import "../chunk-FXU7JOXK.js";
29
- import "../chunk-MUMBWV57.js";
30
- import "../chunk-CEKZ77KA.js";
29
+ import "../chunk-SYOGNG2R.js";
30
+ import "../chunk-5P3HOBZX.js";
31
31
  import "../chunk-LYH5HE24.js";
32
32
  import {
33
33
  isMainModule
@@ -75,7 +75,7 @@ function checkMcpHealth() {
75
75
  }
76
76
  }
77
77
  async function scanFromDb(agentId, tmuxSession, projectName) {
78
- const { fastDbInit } = await import("../fast-db-init-FMECTLNS.js");
78
+ const { fastDbInit } = await import("../fast-db-init-G63PRINQ.js");
79
79
  try {
80
80
  await fastDbInit();
81
81
  } catch (err) {
package/dist/bin/setup.js CHANGED
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runSetupWizard
4
- } from "../chunk-3OSDE4Y2.js";
4
+ } from "../chunk-232DHK5C.js";
5
5
  import "../chunk-Z42MXYWW.js";
6
- import "../chunk-CEKZ77KA.js";
6
+ import "../chunk-5P3HOBZX.js";
7
7
  import "../chunk-LYH5HE24.js";
8
8
  import "../chunk-MLKGABMK.js";
9
9
 
@@ -4,27 +4,27 @@ import {
4
4
  getReadyShardClient,
5
5
  getShardsDir,
6
6
  initShardManager
7
- } from "../chunk-X7VPB6Z5.js";
7
+ } from "../chunk-BJYLTU2G.js";
8
8
  import {
9
9
  disposeStore,
10
10
  initStore
11
- } from "../chunk-GAYD7KBH.js";
11
+ } from "../chunk-ETCARC76.js";
12
12
  import "../chunk-CHCA3ZM2.js";
13
13
  import "../chunk-OTVEIJUQ.js";
14
- import "../chunk-3OC6MJIX.js";
14
+ import "../chunk-NHGBVLCD.js";
15
15
  import "../chunk-Y25OJWOQ.js";
16
16
  import "../chunk-MP2AFCGL.js";
17
17
  import {
18
18
  getClient
19
- } from "../chunk-XVDWHYIK.js";
19
+ } from "../chunk-DBQ6I6K2.js";
20
20
  import "../chunk-2I23RPSI.js";
21
- import "../chunk-CZ47BFAT.js";
22
- import "../chunk-5DNJPRDW.js";
21
+ import "../chunk-XCPVYQVK.js";
22
+ import "../chunk-PNQDP3OA.js";
23
23
  import "../chunk-FXU7JOXK.js";
24
24
  import {
25
25
  getMasterKey
26
26
  } from "../chunk-Z42MXYWW.js";
27
- import "../chunk-CEKZ77KA.js";
27
+ import "../chunk-5P3HOBZX.js";
28
28
  import "../chunk-LYH5HE24.js";
29
29
  import "../chunk-MLKGABMK.js";
30
30
 
@@ -17,7 +17,7 @@ import {
17
17
  runStackUpdate,
18
18
  saveServiceSelection,
19
19
  verifyManifestImagesAvailable
20
- } from "../chunk-I4DA5D5Q.js";
20
+ } from "../chunk-ZPILUBWK.js";
21
21
  import {
22
22
  runVerifyStack
23
23
  } from "../chunk-IRHNV4GY.js";
@@ -27,9 +27,9 @@ import {
27
27
  import {
28
28
  logResult,
29
29
  runHealthGate
30
- } from "../chunk-ONTUBOYP.js";
31
- import "../chunk-MUMBWV57.js";
32
- import "../chunk-CEKZ77KA.js";
30
+ } from "../chunk-2F5SG3CE.js";
31
+ import "../chunk-SYOGNG2R.js";
32
+ import "../chunk-5P3HOBZX.js";
33
33
  import "../chunk-LYH5HE24.js";
34
34
  import {
35
35
  isMainModule
@@ -491,8 +491,9 @@ Options:
491
491
  --break-glass <reason> Emergency override for production deploy gate; writes audit file
492
492
  --break-glass-audit-file <path> Audit file path for --break-glass
493
493
  --allow-breaking <ids> Confirm breaking changes, comma-separated
494
- --health-timeout <secs> Per-service Docker healthcheck wait timeout in seconds (default: 180)
495
- Increase for slow-starting services (daemon: 90-120s, CRM: 60-90s)
494
+ --health-timeout <secs> Per-service Docker healthcheck wait timeout in seconds (default: 180;
495
+ exe-erp defaults to 900 for per-boot bench migrate). Overrides the
496
+ per-service default for slow-starting services (daemon: 90-120s, CRM: 60-90s)
496
497
  --skip-hardening Skip post-deploy host hardening (UFW firewall + SSH config)
497
498
  --cleanup-volumes Detect and remove orphaned Docker volumes after a successful update
498
499
  --no-verify-manifest-signature Explicitly allow unsigned stack manifests (break-glass only)
@@ -8,7 +8,7 @@ import {
8
8
  logResult,
9
9
  main,
10
10
  runHealthGate
11
- } from "../chunk-ONTUBOYP.js";
11
+ } from "../chunk-2F5SG3CE.js";
12
12
  import "../chunk-MLKGABMK.js";
13
13
  export {
14
14
  checkCRM,
@@ -0,0 +1,97 @@
1
+ import {
2
+ EXE_AI_DIR
3
+ } from "./chunk-5P3HOBZX.js";
4
+ import "./chunk-LYH5HE24.js";
5
+ import "./chunk-MLKGABMK.js";
6
+
7
+ // src/lib/branding.ts
8
+ import { readFileSync, writeFileSync, existsSync, mkdirSync } from "fs";
9
+ import path from "path";
10
+ var BRANDING_PATH = path.join(EXE_AI_DIR, "branding.json");
11
+ var DEFAULT_BRANDING = {
12
+ name: "Exe OS",
13
+ primaryColor: "#F5D76E",
14
+ accentColor: "#0F0E1A",
15
+ logo: {
16
+ light: void 0,
17
+ dark: void 0,
18
+ icon: void 0
19
+ }
20
+ };
21
+ var _cachedBranding = null;
22
+ function loadBranding() {
23
+ if (_cachedBranding) return _cachedBranding;
24
+ try {
25
+ if (!existsSync(BRANDING_PATH)) {
26
+ _cachedBranding = { ...DEFAULT_BRANDING };
27
+ return _cachedBranding;
28
+ }
29
+ const raw = JSON.parse(readFileSync(BRANDING_PATH, "utf-8"));
30
+ _cachedBranding = {
31
+ name: typeof raw.name === "string" ? raw.name : DEFAULT_BRANDING.name,
32
+ primaryColor: typeof raw.primaryColor === "string" && /^#[0-9a-fA-F]{6}$/.test(raw.primaryColor) ? raw.primaryColor : DEFAULT_BRANDING.primaryColor,
33
+ accentColor: typeof raw.accentColor === "string" && /^#[0-9a-fA-F]{6}$/.test(raw.accentColor) ? raw.accentColor : DEFAULT_BRANDING.accentColor,
34
+ logo: raw.logo && typeof raw.logo === "object" ? {
35
+ light: typeof raw.logo.light === "string" ? raw.logo.light : void 0,
36
+ dark: typeof raw.logo.dark === "string" ? raw.logo.dark : void 0,
37
+ icon: typeof raw.logo.icon === "string" ? raw.logo.icon : void 0
38
+ } : DEFAULT_BRANDING.logo,
39
+ emailSender: typeof raw.emailSender === "string" ? raw.emailSender : void 0,
40
+ domain: typeof raw.domain === "string" ? raw.domain : void 0
41
+ };
42
+ return _cachedBranding;
43
+ } catch {
44
+ _cachedBranding = { ...DEFAULT_BRANDING };
45
+ return _cachedBranding;
46
+ }
47
+ }
48
+ function _resetBrandingCache() {
49
+ _cachedBranding = null;
50
+ }
51
+ function validateBranding(raw) {
52
+ const errors = [];
53
+ if (!raw || typeof raw !== "object") {
54
+ return { valid: false, errors: ["Branding config must be a JSON object"] };
55
+ }
56
+ const obj = raw;
57
+ if (!obj.name || typeof obj.name !== "string") {
58
+ errors.push("'name' is required and must be a string");
59
+ }
60
+ if (!obj.primaryColor || typeof obj.primaryColor !== "string") {
61
+ errors.push("'primaryColor' is required and must be a hex color string");
62
+ } else if (!/^#[0-9a-fA-F]{6}$/.test(obj.primaryColor)) {
63
+ errors.push("'primaryColor' must be a 6-digit hex color (e.g., #F5D76E)");
64
+ }
65
+ if (!obj.accentColor || typeof obj.accentColor !== "string") {
66
+ errors.push("'accentColor' is required and must be a hex color string");
67
+ } else if (!/^#[0-9a-fA-F]{6}$/.test(obj.accentColor)) {
68
+ errors.push("'accentColor' must be a 6-digit hex color (e.g., #0F0E1A)");
69
+ }
70
+ if (errors.length > 0) return { valid: false, errors };
71
+ const config = {
72
+ name: obj.name,
73
+ primaryColor: obj.primaryColor,
74
+ accentColor: obj.accentColor,
75
+ logo: obj.logo && typeof obj.logo === "object" ? {
76
+ light: typeof obj.logo.light === "string" ? obj.logo.light : void 0,
77
+ dark: typeof obj.logo.dark === "string" ? obj.logo.dark : void 0,
78
+ icon: typeof obj.logo.icon === "string" ? obj.logo.icon : void 0
79
+ } : void 0,
80
+ emailSender: typeof obj.emailSender === "string" ? obj.emailSender : void 0,
81
+ domain: typeof obj.domain === "string" ? obj.domain : void 0
82
+ };
83
+ return { valid: true, errors: [], config };
84
+ }
85
+ function saveBranding(config) {
86
+ mkdirSync(path.dirname(BRANDING_PATH), { recursive: true });
87
+ writeFileSync(BRANDING_PATH, JSON.stringify(config, null, 2) + "\n", "utf-8");
88
+ _resetBrandingCache();
89
+ }
90
+ export {
91
+ BRANDING_PATH,
92
+ DEFAULT_BRANDING,
93
+ _resetBrandingCache,
94
+ loadBranding,
95
+ saveBranding,
96
+ validateBranding
97
+ };
@@ -0,0 +1,88 @@
1
+ import {
2
+ getIdentity,
3
+ loadEmployeesSync
4
+ } from "./chunk-DBQ6I6K2.js";
5
+ import "./chunk-2I23RPSI.js";
6
+ import "./chunk-XCPVYQVK.js";
7
+ import {
8
+ getRoleCapabilities
9
+ } from "./chunk-PNQDP3OA.js";
10
+ import "./chunk-FXU7JOXK.js";
11
+ import "./chunk-5P3HOBZX.js";
12
+ import "./chunk-LYH5HE24.js";
13
+ import "./chunk-MLKGABMK.js";
14
+
15
+ // src/lib/capability-cards.ts
16
+ function extractActions(identityBody) {
17
+ const actions = /* @__PURE__ */ new Set();
18
+ const boldMatches = identityBody.matchAll(/\*\*(\w[\w_]*)\*\*/g);
19
+ for (const m of boldMatches) {
20
+ const name = m[1];
21
+ if (name.length > 2 && !["The", "Non", "What", "How", "Why", "You", "Every", "Your"].includes(name)) {
22
+ actions.add(name);
23
+ }
24
+ }
25
+ return [...actions].sort();
26
+ }
27
+ function getCapabilityCard(agentId) {
28
+ const identity = getIdentity(agentId);
29
+ const role = identity?.frontmatter.role ?? "unknown";
30
+ const title = identity?.frontmatter.title ?? "Unknown";
31
+ const capabilities = getRoleCapabilities(role);
32
+ if (!identity && !capabilities) return null;
33
+ const availableActions = identity ? extractActions(identity.body) : [];
34
+ return {
35
+ agentId,
36
+ role,
37
+ title,
38
+ domains: capabilities?.domains ?? [],
39
+ tools: capabilities?.tools ?? [],
40
+ canDelegate: capabilities?.canDelegate ?? false,
41
+ canReview: capabilities?.canReview ?? false,
42
+ maxComplexity: capabilities?.maxComplexity ?? "low",
43
+ availableActions
44
+ };
45
+ }
46
+ function getAllCapabilityCards() {
47
+ const employees = loadEmployeesSync();
48
+ const cards = [];
49
+ for (const emp of employees) {
50
+ const card = getCapabilityCard(emp.name);
51
+ if (card) cards.push(card);
52
+ }
53
+ return cards;
54
+ }
55
+ function findAgentForTask(taskDescription, cards) {
56
+ const allCards = cards ?? getAllCapabilityCards();
57
+ if (allCards.length === 0) return [];
58
+ const words = new Set(
59
+ taskDescription.toLowerCase().replace(/[^a-z0-9\s-]/g, "").split(/\s+/).filter((w) => w.length > 2)
60
+ );
61
+ const scored = [];
62
+ for (const card of allCards) {
63
+ let score = 0;
64
+ for (const domain of card.domains) {
65
+ const domainWords = domain.toLowerCase().split("-");
66
+ for (const dw of domainWords) {
67
+ if (words.has(dw)) score += 3;
68
+ }
69
+ }
70
+ for (const tool of card.tools) {
71
+ const toolWords = tool.toLowerCase().split(/[_-]/);
72
+ for (const tw of toolWords) {
73
+ if (words.has(tw)) score += 2;
74
+ }
75
+ }
76
+ const roleWords = card.role.toLowerCase().split("-");
77
+ for (const rw of roleWords) {
78
+ if (words.has(rw)) score += 1;
79
+ }
80
+ if (score > 0) scored.push({ card, score });
81
+ }
82
+ return scored.sort((a, b) => b.score - a.score).map((s) => s.card);
83
+ }
84
+ export {
85
+ findAgentForTask,
86
+ getAllCapabilityCards,
87
+ getCapabilityCard
88
+ };
@@ -0,0 +1,88 @@
1
+ import {
2
+ getIdentity,
3
+ loadEmployeesSync
4
+ } from "./chunk-3X2ZT5FN.js";
5
+ import "./chunk-2I23RPSI.js";
6
+ import "./chunk-SCQEAMO3.js";
7
+ import {
8
+ getRoleCapabilities
9
+ } from "./chunk-PNQDP3OA.js";
10
+ import "./chunk-FXU7JOXK.js";
11
+ import "./chunk-5P3HOBZX.js";
12
+ import "./chunk-LYH5HE24.js";
13
+ import "./chunk-MLKGABMK.js";
14
+
15
+ // src/lib/capability-cards.ts
16
+ function extractActions(identityBody) {
17
+ const actions = /* @__PURE__ */ new Set();
18
+ const boldMatches = identityBody.matchAll(/\*\*(\w[\w_]*)\*\*/g);
19
+ for (const m of boldMatches) {
20
+ const name = m[1];
21
+ if (name.length > 2 && !["The", "Non", "What", "How", "Why", "You", "Every", "Your"].includes(name)) {
22
+ actions.add(name);
23
+ }
24
+ }
25
+ return [...actions].sort();
26
+ }
27
+ function getCapabilityCard(agentId) {
28
+ const identity = getIdentity(agentId);
29
+ const role = identity?.frontmatter.role ?? "unknown";
30
+ const title = identity?.frontmatter.title ?? "Unknown";
31
+ const capabilities = getRoleCapabilities(role);
32
+ if (!identity && !capabilities) return null;
33
+ const availableActions = identity ? extractActions(identity.body) : [];
34
+ return {
35
+ agentId,
36
+ role,
37
+ title,
38
+ domains: capabilities?.domains ?? [],
39
+ tools: capabilities?.tools ?? [],
40
+ canDelegate: capabilities?.canDelegate ?? false,
41
+ canReview: capabilities?.canReview ?? false,
42
+ maxComplexity: capabilities?.maxComplexity ?? "low",
43
+ availableActions
44
+ };
45
+ }
46
+ function getAllCapabilityCards() {
47
+ const employees = loadEmployeesSync();
48
+ const cards = [];
49
+ for (const emp of employees) {
50
+ const card = getCapabilityCard(emp.name);
51
+ if (card) cards.push(card);
52
+ }
53
+ return cards;
54
+ }
55
+ function findAgentForTask(taskDescription, cards) {
56
+ const allCards = cards ?? getAllCapabilityCards();
57
+ if (allCards.length === 0) return [];
58
+ const words = new Set(
59
+ taskDescription.toLowerCase().replace(/[^a-z0-9\s-]/g, "").split(/\s+/).filter((w) => w.length > 2)
60
+ );
61
+ const scored = [];
62
+ for (const card of allCards) {
63
+ let score = 0;
64
+ for (const domain of card.domains) {
65
+ const domainWords = domain.toLowerCase().split("-");
66
+ for (const dw of domainWords) {
67
+ if (words.has(dw)) score += 3;
68
+ }
69
+ }
70
+ for (const tool of card.tools) {
71
+ const toolWords = tool.toLowerCase().split(/[_-]/);
72
+ for (const tw of toolWords) {
73
+ if (words.has(tw)) score += 2;
74
+ }
75
+ }
76
+ const roleWords = card.role.toLowerCase().split("-");
77
+ for (const rw of roleWords) {
78
+ if (words.has(rw)) score += 1;
79
+ }
80
+ if (score > 0) scored.push({ card, score });
81
+ }
82
+ return scored.sort((a, b) => b.score - a.score).map((s) => s.card);
83
+ }
84
+ export {
85
+ findAgentForTask,
86
+ getAllCapabilityCards,
87
+ getCapabilityCard
88
+ };