@askexenow/exe-os 0.9.227 → 0.9.229

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 (446) hide show
  1. package/dist/active-agent-GJDG4CAW.js +24 -0
  2. package/dist/active-agent-WOP3ZHLN.js +25 -0
  3. package/dist/agent-context-ZPDQOAD2.js +9 -0
  4. package/dist/agent-heartbeat-AWTVGE4C.js +60 -0
  5. package/dist/agent-loop-7UM2ENGU.js +10 -0
  6. package/dist/agentic-ontology-ASORFII6.js +25 -0
  7. package/dist/asana-JN2UF47A.js +129 -0
  8. package/dist/assets/ghostty.conf +83 -0
  9. package/dist/assets/statusline-command.sh +44 -0
  10. package/dist/assets/tmux.conf +56 -0
  11. package/dist/assets/wezterm.lua +68 -0
  12. package/dist/backfill-metadata-JRWUECUS.js +596 -0
  13. package/dist/background-jobs-VTOMOTNA.js +25 -0
  14. package/dist/bash-XA65M6T6.js +8 -0
  15. package/dist/behaviors-36T3O2DC.js +24 -0
  16. package/dist/bin/age-ontology-load.js +85 -0
  17. package/dist/bin/agentic-ontology-backfill.js +84 -0
  18. package/dist/bin/agentic-reflection-backfill.js +45 -0
  19. package/dist/bin/agentic-semantic-label.js +193 -0
  20. package/dist/bin/backfill-conversations.js +399 -0
  21. package/dist/bin/backfill-responses.js +227 -0
  22. package/dist/bin/backfill-vectors.js +149 -0
  23. package/dist/bin/bulk-sync-postgres.js +92 -0
  24. package/dist/bin/cc-doctor.js +51 -0
  25. package/dist/bin/cleanup-stale-review-tasks.js +139 -0
  26. package/dist/bin/cli.js +1076 -0
  27. package/dist/bin/customer-readiness.js +389 -0
  28. package/dist/bin/deferred-daemon-restart.js +123 -0
  29. package/dist/bin/exe-agent-config.js +87 -0
  30. package/dist/bin/exe-agent.js +190 -0
  31. package/dist/bin/exe-assign.js +93 -0
  32. package/dist/bin/exe-boot.js +1114 -0
  33. package/dist/bin/exe-call.js +127 -0
  34. package/dist/bin/exe-cloud.js +484 -0
  35. package/dist/bin/exe-dispatch.js +72 -0
  36. package/dist/bin/exe-doctor.js +48 -0
  37. package/dist/bin/exe-export-behaviors.js +48 -0
  38. package/dist/bin/exe-forget.js +204 -0
  39. package/dist/bin/exe-gateway.js +1137 -0
  40. package/dist/bin/exe-healthcheck.js +14 -0
  41. package/dist/bin/exe-heartbeat.js +233 -0
  42. package/dist/bin/exe-kill.js +126 -0
  43. package/dist/bin/exe-launch-agent.js +678 -0
  44. package/dist/bin/exe-new-employee.js +160 -0
  45. package/dist/bin/exe-pending-messages.js +60 -0
  46. package/dist/bin/exe-pending-notifications.js +107 -0
  47. package/dist/bin/exe-pending-reviews.js +81 -0
  48. package/dist/bin/exe-rename.js +219 -0
  49. package/dist/bin/exe-repo-drift.js +95 -0
  50. package/dist/bin/exe-review.js +251 -0
  51. package/dist/bin/exe-search.js +65 -0
  52. package/dist/bin/exe-session-cleanup.js +331 -0
  53. package/dist/bin/exe-settings.js +364 -0
  54. package/dist/bin/exe-start-codex.js +404 -0
  55. package/dist/bin/exe-start-opencode.js +233 -0
  56. package/dist/bin/exe-start.sh +194 -0
  57. package/dist/bin/exe-status.js +34 -0
  58. package/dist/bin/exe-support.js +17 -0
  59. package/dist/bin/exe-team.js +83 -0
  60. package/dist/bin/generate-hook-manifest.js +30 -0
  61. package/dist/bin/git-sweep.js +74 -0
  62. package/dist/bin/graph-backfill.js +78 -0
  63. package/dist/bin/graph-export.js +66 -0
  64. package/dist/bin/graph-layer-benchmark.js +113 -0
  65. package/dist/bin/import-history.js +84 -0
  66. package/dist/bin/install-launchd.js +41 -0
  67. package/dist/bin/install.js +422 -0
  68. package/dist/bin/intercom-check.js +137 -0
  69. package/dist/bin/list-providers.js +128 -0
  70. package/dist/bin/mcp-sessions.js +194 -0
  71. package/dist/bin/orchestration-metrics.js +61 -0
  72. package/dist/bin/postgres-agentic-reflection-backfill.js +123 -0
  73. package/dist/bin/postgres-agentic-semantic-backfill.js +126 -0
  74. package/dist/bin/pre-build-guard.js +98 -0
  75. package/dist/bin/pre-publish.js +224 -0
  76. package/dist/bin/registry-proxy.js +44 -0
  77. package/dist/bin/scan-tasks.js +265 -0
  78. package/dist/bin/setup.js +19 -0
  79. package/dist/bin/shard-migrate.js +162 -0
  80. package/dist/bin/stack-update.js +372 -0
  81. package/dist/bin/update.js +354 -0
  82. package/dist/bin/verify-stack.js +389 -0
  83. package/dist/bin/vps-backup.js +170 -0
  84. package/dist/bin/vps-health-gate.js +232 -0
  85. package/dist/branding-I2TDZFUH.js +97 -0
  86. package/dist/browser-sanitizer-MRSSEJZE.js +229 -0
  87. package/dist/browser-session-store-RF45DSJR.js +232 -0
  88. package/dist/capacity-monitor-HZPAFQZH.js +48 -0
  89. package/dist/catchup-brief-CDG4KD5Y.js +150 -0
  90. package/dist/chunk-26PUEPOY.js +290 -0
  91. package/dist/chunk-2VZ6SY2R.js +142 -0
  92. package/dist/chunk-36DAY227.js +297 -0
  93. package/dist/chunk-3A5BZETG.js +463 -0
  94. package/dist/chunk-3DQ3IPPO.js +50 -0
  95. package/dist/chunk-3JP3FY33.js +258 -0
  96. package/dist/chunk-3MK3R5E6.js +85 -0
  97. package/dist/chunk-46SQTBQW.js +207 -0
  98. package/dist/chunk-4JERP7NT.js +132 -0
  99. package/dist/chunk-557C2IGL.js +0 -0
  100. package/dist/chunk-5BS5ELMC.js +85 -0
  101. package/dist/chunk-5NFBE376.js +391 -0
  102. package/dist/chunk-6A7P74QV.js +53 -0
  103. package/dist/chunk-6KFICEAT.js +20 -0
  104. package/dist/chunk-6MP5NOOR.js +151 -0
  105. package/dist/chunk-6Y4B3QF6.js +19 -0
  106. package/dist/chunk-7BPKHR4O.js +171 -0
  107. package/dist/chunk-7DNX45WB.js +244 -0
  108. package/dist/chunk-7EZCYO76.js +128 -0
  109. package/dist/chunk-7NNXBDOO.js +541 -0
  110. package/dist/chunk-ADJXHBEU.js +667 -0
  111. package/dist/chunk-AHMUF6RO.js +147 -0
  112. package/dist/chunk-AJWFPKQS.js +573 -0
  113. package/dist/chunk-AVE2B4DQ.js +140 -0
  114. package/dist/chunk-AZSCW64F.js +190 -0
  115. package/dist/chunk-BZAQ4UG7.js +614 -0
  116. package/dist/chunk-CHCA3ZM2.js +167 -0
  117. package/dist/chunk-CHT3THVG.js +240 -0
  118. package/dist/chunk-CLGB3FGL.js +48 -0
  119. package/dist/chunk-CQDSTBKT.js +1919 -0
  120. package/dist/chunk-CTFKTUYN.js +627 -0
  121. package/dist/chunk-CVYC6DUW.js +78 -0
  122. package/dist/chunk-CX6GL3ZJ.js +274 -0
  123. package/dist/chunk-D4IVTUNN.js +377 -0
  124. package/dist/chunk-DGOGCPYU.js +390 -0
  125. package/dist/chunk-DKRTWILB.js +81 -0
  126. package/dist/chunk-DLXTKVBO.js +183 -0
  127. package/dist/chunk-E6ORBQHP.js +225 -0
  128. package/dist/chunk-ECGTESAP.js +236 -0
  129. package/dist/chunk-ECQBG62Y.js +363 -0
  130. package/dist/chunk-ECSNSHZ7.js +431 -0
  131. package/dist/chunk-EEAKFEEA.js +221 -0
  132. package/dist/chunk-EGWPJQRQ.js +159 -0
  133. package/dist/chunk-EHKIJPVX.js +30 -0
  134. package/dist/chunk-EIT6J37V.js +119 -0
  135. package/dist/chunk-EQSQ4HBW.js +9 -0
  136. package/dist/chunk-ETSREHYC.js +55 -0
  137. package/dist/chunk-F2GUJW5O.js +1090 -0
  138. package/dist/chunk-F7LU65PQ.js +33 -0
  139. package/dist/chunk-FF62UWIJ.js +90 -0
  140. package/dist/chunk-FIPU4BDF.js +123 -0
  141. package/dist/chunk-FLSASUV3.js +177 -0
  142. package/dist/chunk-FWFFZGSC.js +94 -0
  143. package/dist/chunk-FXU7JOXK.js +6 -0
  144. package/dist/chunk-G4LLKD4Z.js +147 -0
  145. package/dist/chunk-GFCQJZTO.js +1051 -0
  146. package/dist/chunk-GGV3PFUW.js +41 -0
  147. package/dist/chunk-GJV3WDWM.js +14 -0
  148. package/dist/chunk-GKM7RYN3.js +1020 -0
  149. package/dist/chunk-GNHN5HRQ.js +40 -0
  150. package/dist/chunk-GP6G6EQI.js +632 -0
  151. package/dist/chunk-GUMRIUI5.js +63 -0
  152. package/dist/chunk-GVP5U4WL.js +113 -0
  153. package/dist/chunk-HF25XPZE.js +83 -0
  154. package/dist/chunk-HFJNYSTQ.js +1088 -0
  155. package/dist/chunk-HO5SBL4B.js +97 -0
  156. package/dist/chunk-HOKOOBDL.js +52 -0
  157. package/dist/chunk-HQMEOIUJ.js +69 -0
  158. package/dist/chunk-HTCBLSIB.js +813 -0
  159. package/dist/chunk-HYZV25LY.js +34 -0
  160. package/dist/chunk-I2CDSGQW.js +280 -0
  161. package/dist/chunk-I7AW4237.js +251 -0
  162. package/dist/chunk-IKTMX6N7.js +495 -0
  163. package/dist/chunk-IQT43SDJ.js +357 -0
  164. package/dist/chunk-IW53DAYO.js +210 -0
  165. package/dist/chunk-JBKA7F5V.js +2017 -0
  166. package/dist/chunk-JJNXFW7M.js +330 -0
  167. package/dist/chunk-JKGAJAM7.js +214 -0
  168. package/dist/chunk-JQ6TLNIV.js +133 -0
  169. package/dist/chunk-JSH5MAMM.js +284 -0
  170. package/dist/chunk-KCUYRZSX.js +72 -0
  171. package/dist/chunk-KH5Y6RR4.js +360 -0
  172. package/dist/chunk-L24HYX62.js +498 -0
  173. package/dist/chunk-L3TB7CC3.js +170 -0
  174. package/dist/chunk-LHOIY5LQ.js +58 -0
  175. package/dist/chunk-LWVZLTMD.js +412 -0
  176. package/dist/chunk-LYH5HE24.js +73 -0
  177. package/dist/chunk-M37HYGAG.js +346 -0
  178. package/dist/chunk-MJXEOKIW.js +54 -0
  179. package/dist/chunk-MKVFPQH2.js +1051 -0
  180. package/dist/chunk-MLXJ5EZG.js +90 -0
  181. package/dist/chunk-MP2AFCGL.js +53 -0
  182. package/dist/chunk-MSCB4ACU.js +356 -0
  183. package/dist/chunk-MVW62NIZ.js +20 -0
  184. package/dist/chunk-MZIGUUDQ.js +42 -0
  185. package/dist/chunk-N5RRQOAC.js +134 -0
  186. package/dist/chunk-NFB4N53K.js +159 -0
  187. package/dist/chunk-NGP6LSV2.js +25 -0
  188. package/dist/chunk-NGVOA6ZQ.js +84 -0
  189. package/dist/chunk-NRFVWJHP.js +575 -0
  190. package/dist/chunk-NUVDSQNY.js +1345 -0
  191. package/dist/chunk-O377P7GM.js +100 -0
  192. package/dist/chunk-OE6SYHTC.js +157 -0
  193. package/dist/chunk-OHPRXEUA.js +75 -0
  194. package/dist/chunk-OI6MVDSY.js +33 -0
  195. package/dist/chunk-ONKIWA3R.js +249 -0
  196. package/dist/chunk-OPU3NYOO.js +55 -0
  197. package/dist/chunk-ORCCI2VV.js +140 -0
  198. package/dist/chunk-OSMMWGJ2.js +204 -0
  199. package/dist/chunk-OYNKIAVW.js +181 -0
  200. package/dist/chunk-PRKVT4KN.js +90 -0
  201. package/dist/chunk-PW2YH2ZR.js +403 -0
  202. package/dist/chunk-PWMMIGVQ.js +332 -0
  203. package/dist/chunk-Q3V7K4ME.js +149 -0
  204. package/dist/chunk-Q5GUJUDW.js +348 -0
  205. package/dist/chunk-Q7RGLXQO.js +574 -0
  206. package/dist/chunk-Q7XA3SQ4.js +13097 -0
  207. package/dist/chunk-QGGH7LOU.js +93 -0
  208. package/dist/chunk-QHIGMP2M.js +237 -0
  209. package/dist/chunk-QI4IXJN7.js +132 -0
  210. package/dist/chunk-R2E4TV5V.js +56 -0
  211. package/dist/chunk-R4WMF32C.js +81 -0
  212. package/dist/chunk-R5U7XKVJ.js +16 -0
  213. package/dist/chunk-RJT7H2KR.js +349 -0
  214. package/dist/chunk-RMPAMMYW.js +70 -0
  215. package/dist/chunk-RTXGUKY3.js +731 -0
  216. package/dist/chunk-SH45SJQW.js +0 -0
  217. package/dist/chunk-SUNYJ6YE.js +204 -0
  218. package/dist/chunk-SVXDCELZ.js +163 -0
  219. package/dist/chunk-TMEE7AT7.js +72 -0
  220. package/dist/chunk-TNTFEWU5.js +361 -0
  221. package/dist/chunk-TOQZO2XX.js +76 -0
  222. package/dist/chunk-UBMGUX6T.js +3753 -0
  223. package/dist/chunk-UJOSFVWG.js +3511 -0
  224. package/dist/chunk-UPSZ2VKV.js +197 -0
  225. package/dist/chunk-UV4ZHXUP.js +38 -0
  226. package/dist/chunk-UWISNP4U.js +1073 -0
  227. package/dist/chunk-V3QAAU2U.js +129 -0
  228. package/dist/chunk-V4TZI6EO.js +60 -0
  229. package/dist/chunk-W6TC6A73.js +77 -0
  230. package/dist/chunk-WA67SFFZ.js +227 -0
  231. package/dist/chunk-WWPX2LLP.js +262 -0
  232. package/dist/chunk-WZ2RVKRO.js +121 -0
  233. package/dist/chunk-X2Z5GT3V.js +118 -0
  234. package/dist/chunk-X3AVWFWW.js +294 -0
  235. package/dist/chunk-XEKO37NM.js +43 -0
  236. package/dist/chunk-YADYM2DE.js +42 -0
  237. package/dist/chunk-YCTCKUZE.js +128 -0
  238. package/dist/chunk-YGAAZN3E.js +47 -0
  239. package/dist/chunk-YKIPAQZG.js +333 -0
  240. package/dist/chunk-YSU7JB7H.js +0 -0
  241. package/dist/chunk-YZFZDJWZ.js +107 -0
  242. package/dist/chunk-YZKJLGWL.js +169 -0
  243. package/dist/chunk-Z3TT2SVJ.js +135 -0
  244. package/dist/chunk-Z3ZCLTP7.js +382 -0
  245. package/dist/chunk-ZVSG2KKG.js +106 -0
  246. package/dist/co-activation-AJZTQHI3.js +71 -0
  247. package/dist/co-occurrence-FGEJIMMV.js +73 -0
  248. package/dist/code-context-index-KHUYATRB.js +29 -0
  249. package/dist/content-extractor-CUJOBFBU.js +9 -0
  250. package/dist/conversation-entity-extractor-TW4W57K4.js +114 -0
  251. package/dist/conversation-wiki-populator-GNFRTS7X.js +105 -0
  252. package/dist/core-memory-R7QBLN4C.js +110 -0
  253. package/dist/crdt-sync-K25AKQAD.js +33 -0
  254. package/dist/crm-bridge-NG5WJMGF.js +19 -0
  255. package/dist/crm-webhook-3ODT32F7.js +10 -0
  256. package/dist/cto-delegation-gate-4XDMTK6H.js +205 -0
  257. package/dist/daemon-auth-WFQMMNSD.js +13 -0
  258. package/dist/daemon-orchestration-5I7RLXCP.js +133 -0
  259. package/dist/daemon-protocol-4FUHT5NH.js +17 -0
  260. package/dist/db-backup-MSQKO6M5.js +25 -0
  261. package/dist/devtools-J4QYYO7U.js +8 -0
  262. package/dist/discord-7UHIZNJ3.js +7 -0
  263. package/dist/dispatch-ack-RMVFHO4I.js +13 -0
  264. package/dist/dreaming-UL7T5ZXA.js +12 -0
  265. package/dist/email-T6PQUUY6.js +137 -0
  266. package/dist/entity-boost-7MB2IYAE.js +332 -0
  267. package/dist/exe-drift-2KHRPBUK.js +67 -0
  268. package/dist/exe-export-UZN6EFOR.js +72 -0
  269. package/dist/exe-import-OSM3U36A.js +75 -0
  270. package/dist/exe-key-OG35WPBA.js +573 -0
  271. package/dist/exe-org-JRBBON5H.js +73 -0
  272. package/dist/exe-snapshot-7TQIN7XI.js +145 -0
  273. package/dist/factory-UQSRMKJW.js +67 -0
  274. package/dist/fast-db-init-4VXDSFUY.js +7 -0
  275. package/dist/file-edit-YORRFENG.js +8 -0
  276. package/dist/file-read-RMQFDE5L.js +8 -0
  277. package/dist/file-write-VO4MQW5Y.js +8 -0
  278. package/dist/founder-context-3N6BMG7B.js +96 -0
  279. package/dist/gateway/index.js +148 -0
  280. package/dist/gateway-client-V7NH35Q2.js +11 -0
  281. package/dist/git-staleness-JW57ZGEJ.js +109 -0
  282. package/dist/git-task-sweep-HYAPIM44.js +39 -0
  283. package/dist/glob-2LXRC3F5.js +7 -0
  284. package/dist/global-procedures-NY3W7L5Q.js +19 -0
  285. package/dist/graph-auto-extract-5GZ34NXS.js +161 -0
  286. package/dist/graph-query-YZ4RZEIL.js +26 -0
  287. package/dist/graph-rag-S5SBJW5J.js +29 -0
  288. package/dist/grep-OY7KCRLQ.js +7 -0
  289. package/dist/hook-integrity-OKSYTGVP.js +89 -0
  290. package/dist/hooks/bug-report-worker.js +179 -0
  291. package/dist/hooks/codex-stop-task-finalizer.js +258 -0
  292. package/dist/hooks/commit-complete.js +162 -0
  293. package/dist/hooks/error-recall.js +129 -0
  294. package/dist/hooks/exe-heartbeat-hook.js +78 -0
  295. package/dist/hooks/ingest-worker.js +51 -0
  296. package/dist/hooks/ingest.js +491 -0
  297. package/dist/hooks/instructions-loaded.js +119 -0
  298. package/dist/hooks/manifest.json +25 -0
  299. package/dist/hooks/notification.js +67 -0
  300. package/dist/hooks/post-compact.js +138 -0
  301. package/dist/hooks/post-tool-combined.js +152 -0
  302. package/dist/hooks/pre-compact.js +159 -0
  303. package/dist/hooks/pre-tool-use.js +512 -0
  304. package/dist/hooks/prompt-submit.js +699 -0
  305. package/dist/hooks/session-end.js +482 -0
  306. package/dist/hooks/session-start.js +362 -0
  307. package/dist/hooks/stop.js +332 -0
  308. package/dist/hooks/subagent-stop.js +85 -0
  309. package/dist/hooks/summary-worker.js +298 -0
  310. package/dist/hooks-RPTZV5KX.js +9 -0
  311. package/dist/imessage-CE5USLTI.js +7 -0
  312. package/dist/index.js +60 -0
  313. package/dist/installer-GMIVB2JS.js +341 -0
  314. package/dist/installer-OBYQ6O3C.js +295 -0
  315. package/dist/installer-UAMA6ZVH.js +37 -0
  316. package/dist/intercom-queue-USIXVVJQ.js +17 -0
  317. package/dist/key-backup-status-TVFMMWTT.js +39 -0
  318. package/dist/keyword-extractor-OGQRRVTB.js +11 -0
  319. package/dist/lib/agent-config.js +30 -0
  320. package/dist/lib/cloud-sync.js +103 -0
  321. package/dist/lib/cloudflare-dns.js +13 -0
  322. package/dist/lib/config.js +32 -0
  323. package/dist/lib/consolidation.js +38 -0
  324. package/dist/lib/crypto.js +13 -0
  325. package/dist/lib/database.js +31 -0
  326. package/dist/lib/db-daemon-client.js +141 -0
  327. package/dist/lib/db.js +31 -0
  328. package/dist/lib/device-registry.js +70 -0
  329. package/dist/lib/embed-worker.js +165 -0
  330. package/dist/lib/embedder.js +19 -0
  331. package/dist/lib/employee-templates.js +34 -0
  332. package/dist/lib/employees.js +63 -0
  333. package/dist/lib/error-detector.js +16 -0
  334. package/dist/lib/exe-daemon-client.js +25 -0
  335. package/dist/lib/exe-daemon.js +4454 -0
  336. package/dist/lib/file-grep.js +242 -0
  337. package/dist/lib/hybrid-search.js +28 -0
  338. package/dist/lib/identity-templates.js +650 -0
  339. package/dist/lib/identity.js +19 -0
  340. package/dist/lib/keychain.js +17 -0
  341. package/dist/lib/license.js +35 -0
  342. package/dist/lib/messaging.js +59 -0
  343. package/dist/lib/post-tool-memory.js +13 -0
  344. package/dist/lib/registry-proxy.js +15 -0
  345. package/dist/lib/reminders.js +16 -0
  346. package/dist/lib/runtime-table.js +9 -0
  347. package/dist/lib/schedules.js +24 -0
  348. package/dist/lib/session-registry.js +21 -0
  349. package/dist/lib/session-wrappers.js +7 -0
  350. package/dist/lib/skill-learning.js +29 -0
  351. package/dist/lib/status-brief.js +7 -0
  352. package/dist/lib/store.js +43 -0
  353. package/dist/lib/task-router.js +22 -0
  354. package/dist/lib/tasks.js +66 -0
  355. package/dist/lib/tmux-routing.js +70 -0
  356. package/dist/lib/tmux-status.js +29 -0
  357. package/dist/lib/tmux-transport.js +7 -0
  358. package/dist/lib/token-spend.js +12 -0
  359. package/dist/lib/transport.js +10 -0
  360. package/dist/lib/ws-auth.js +11 -0
  361. package/dist/lib/ws-client.js +190 -0
  362. package/dist/license-gate-7QVCYARF.js +14 -0
  363. package/dist/mcp/register-tools.js +102 -0
  364. package/dist/mcp/server.js +370 -0
  365. package/dist/mcp/tools/complete-reminder.js +13 -0
  366. package/dist/mcp/tools/create-reminder.js +13 -0
  367. package/dist/mcp/tools/create-task.js +34 -0
  368. package/dist/mcp/tools/deactivate-behavior.js +16 -0
  369. package/dist/mcp/tools/list-reminders.js +13 -0
  370. package/dist/mcp/tools/list-tasks.js +33 -0
  371. package/dist/mcp/tools/send-message.js +33 -0
  372. package/dist/mcp/tools/update-task.js +32 -0
  373. package/dist/mcp-diagnostics-5T5OZ52S.js +200 -0
  374. package/dist/mcp-disconnect-tracker-VINUVEZJ.js +79 -0
  375. package/dist/mcp-http-config-YPF4WGU5.js +26 -0
  376. package/dist/memory-cards-XHZEOX7Q.js +173 -0
  377. package/dist/memory-graph-extractor-J3K7B4GC.js +16 -0
  378. package/dist/memory-poisoning-defense-I76FGNHK.js +224 -0
  379. package/dist/memory-queue-WEVFXPZO.js +19 -0
  380. package/dist/memory-queue-client-5XBHYAQR.js +15 -0
  381. package/dist/memory-reflection-YJGI6IDI.js +237 -0
  382. package/dist/message-queue-client-FUKX43JD.js +92 -0
  383. package/dist/notifications-H4F77BYT.js +44 -0
  384. package/dist/oauth-server-CCZPDTZJ.js +437 -0
  385. package/dist/orchestration-events-LXVPJL6S.js +24 -0
  386. package/dist/orchestration-phase-HXRKMZXM.js +23 -0
  387. package/dist/orchestrator-HXUZ6LYM.js +32 -0
  388. package/dist/permission-presets-UPVLJWZD.js +25 -0
  389. package/dist/permissions-C4EMHPDD.js +14 -0
  390. package/dist/pg-ssl-GD3332YS.js +7 -0
  391. package/dist/pipeline-router-QRJQWMFF.js +12 -0
  392. package/dist/plan-limits-NFQVRHS5.js +25 -0
  393. package/dist/prediction-log-C2BD3AHR.js +120 -0
  394. package/dist/preferences-5ARPMYE7.js +10 -0
  395. package/dist/preflight-TZOGLBZU.js +287 -0
  396. package/dist/project-boot-JIGOSGCN.js +254 -0
  397. package/dist/project-name-4SKOH2UO.js +10 -0
  398. package/dist/projection-worker-JZQTL4NU.js +877 -0
  399. package/dist/push-notifications-3GNJ5SZS.js +15 -0
  400. package/dist/reranker-U6DEAT4S.js +19 -0
  401. package/dist/review-gate-I66GDXNR.js +120 -0
  402. package/dist/review-polling-W2S3XAAU.js +123 -0
  403. package/dist/runtime/index.js +129 -0
  404. package/dist/self-query-router-QMK5ZSZR.js +188 -0
  405. package/dist/session-events-MNWHGZY5.js +35 -0
  406. package/dist/session-kill-telemetry-JHSI7D3F.js +28 -0
  407. package/dist/session-scope-SMT225X3.js +85 -0
  408. package/dist/setup-wizard-RBUTEZB2.js +12 -0
  409. package/dist/shard-manager-ON2WWCRM.js +29 -0
  410. package/dist/signal-KF2LIO7Y.js +7 -0
  411. package/dist/signal-paths-5ZTWCBUX.js +19 -0
  412. package/dist/skill-refinement-LKJHUW2U.js +156 -0
  413. package/dist/slack-JRDUD5Z7.js +7 -0
  414. package/dist/stack-update-ZIMV4OEQ.js +50 -0
  415. package/dist/steward-gate-6IKH335D.js +12 -0
  416. package/dist/support-outbox-HIJVUDA2.js +206 -0
  417. package/dist/task-enforcement-UIEWTA6H.js +292 -0
  418. package/dist/task-scanner-5OQBNC2N.js +11 -0
  419. package/dist/task-scope-DNQURKOQ.js +34 -0
  420. package/dist/tasks-crud-CLAYZZ4O.js +76 -0
  421. package/dist/tasks-review-OHR2P4QE.js +46 -0
  422. package/dist/telegram-COCYUCT7.js +7 -0
  423. package/dist/telemetry-QKWQKAUC.js +9 -0
  424. package/dist/telemetry-upload-APVDPCEV.js +609 -0
  425. package/dist/token-budget-6IQNYKLR.js +83 -0
  426. package/dist/tool-capability-index-UUNF7VPA.js +10 -0
  427. package/dist/tool-gates-6A6LE4DZ.js +14 -0
  428. package/dist/tool-gates-RNWEH5IK.js +13 -0
  429. package/dist/tool-registry-KL24CAFR.js +11 -0
  430. package/dist/tool-telemetry-SJSIL5M5.js +17 -0
  431. package/dist/tui/App.js +10223 -0
  432. package/dist/tui-data-L6XG4Z52.js +161 -0
  433. package/dist/typed-messages-53Q7L3LB.js +17 -0
  434. package/dist/update-check-5IL5I3E2.js +11 -0
  435. package/dist/webhook-VXGIH7PN.js +96 -0
  436. package/dist/webhook-pipe-4WPFGGFD.js +114 -0
  437. package/dist/whatsapp-PSMKCDS7.js +9 -0
  438. package/dist/whatsapp-accounts-4OKWFRWL.js +15 -0
  439. package/dist/whatsapp-config-ZG5LX4O4.js +125 -0
  440. package/dist/wiki-acl-XCT6QQGP.js +111 -0
  441. package/dist/wiki-client-KE622HKY.js +157 -0
  442. package/dist/worker-gate-GFKXZ6V5.js +21 -0
  443. package/dist/workflow-engine-6HTKI2ZE.js +28 -0
  444. package/dist/working-memory-Z3EB3FW6.js +77 -0
  445. package/dist/worktree-BO7QQ32T.js +25 -0
  446. package/package.json +1 -1
@@ -0,0 +1,24 @@
1
+ import {
2
+ cleanupSessionMarkers,
3
+ clearActiveAgent,
4
+ getActiveAgent,
5
+ getAllActiveAgents,
6
+ resolveActiveAgentFromTmuxSession,
7
+ writeActiveAgent
8
+ } from "./chunk-DLXTKVBO.js";
9
+ import "./chunk-CVYC6DUW.js";
10
+ import "./chunk-GJV3WDWM.js";
11
+ import "./chunk-UJOSFVWG.js";
12
+ import "./chunk-QHIGMP2M.js";
13
+ import "./chunk-FXU7JOXK.js";
14
+ import "./chunk-TNTFEWU5.js";
15
+ import "./chunk-LYH5HE24.js";
16
+ import "./chunk-R5U7XKVJ.js";
17
+ export {
18
+ cleanupSessionMarkers,
19
+ clearActiveAgent,
20
+ getActiveAgent,
21
+ getAllActiveAgents,
22
+ resolveActiveAgentFromTmuxSession,
23
+ writeActiveAgent
24
+ };
@@ -0,0 +1,25 @@
1
+ import "./chunk-SH45SJQW.js";
2
+ import {
3
+ cleanupSessionMarkers,
4
+ clearActiveAgent,
5
+ getActiveAgent,
6
+ getAllActiveAgents,
7
+ resolveActiveAgentFromTmuxSession,
8
+ writeActiveAgent
9
+ } from "./chunk-DLXTKVBO.js";
10
+ import "./chunk-CVYC6DUW.js";
11
+ import "./chunk-GJV3WDWM.js";
12
+ import "./chunk-UJOSFVWG.js";
13
+ import "./chunk-QHIGMP2M.js";
14
+ import "./chunk-FXU7JOXK.js";
15
+ import "./chunk-TNTFEWU5.js";
16
+ import "./chunk-LYH5HE24.js";
17
+ import "./chunk-R5U7XKVJ.js";
18
+ export {
19
+ cleanupSessionMarkers,
20
+ clearActiveAgent,
21
+ getActiveAgent,
22
+ getAllActiveAgents,
23
+ resolveActiveAgentFromTmuxSession,
24
+ writeActiveAgent
25
+ };
@@ -0,0 +1,9 @@
1
+ import {
2
+ getAgentContext,
3
+ runWithAgent
4
+ } from "./chunk-GJV3WDWM.js";
5
+ import "./chunk-R5U7XKVJ.js";
6
+ export {
7
+ getAgentContext,
8
+ runWithAgent
9
+ };
@@ -0,0 +1,60 @@
1
+ import "./chunk-R5U7XKVJ.js";
2
+
3
+ // src/lib/agent-heartbeat.ts
4
+ import { existsSync, readFileSync, writeFileSync, mkdirSync } from "fs";
5
+ import path from "path";
6
+ import os from "os";
7
+ var HEARTBEAT_FILE = path.join(os.homedir(), ".exe-os", "agent-heartbeats.json");
8
+ var STALE_THRESHOLD_MS = 5 * 60 * 1e3;
9
+ var DEAD_THRESHOLD_MS = 15 * 60 * 1e3;
10
+ function loadHeartbeats() {
11
+ try {
12
+ if (!existsSync(HEARTBEAT_FILE)) return {};
13
+ return JSON.parse(readFileSync(HEARTBEAT_FILE, "utf-8"));
14
+ } catch {
15
+ return {};
16
+ }
17
+ }
18
+ function saveHeartbeats(heartbeats) {
19
+ const dir = path.dirname(HEARTBEAT_FILE);
20
+ if (!existsSync(dir)) mkdirSync(dir, { recursive: true });
21
+ writeFileSync(HEARTBEAT_FILE, JSON.stringify(heartbeats, null, 2), "utf-8");
22
+ }
23
+ function recordHeartbeat(agentId, sessionName, meta) {
24
+ const heartbeats = loadHeartbeats();
25
+ heartbeats[sessionName] = {
26
+ agentId,
27
+ sessionName,
28
+ lastHeartbeat: (/* @__PURE__ */ new Date()).toISOString(),
29
+ meta
30
+ };
31
+ saveHeartbeats(heartbeats);
32
+ }
33
+ function classifyLiveness(lastHeartbeat) {
34
+ if (!lastHeartbeat) return "dead";
35
+ const ageMs = Date.now() - new Date(lastHeartbeat).getTime();
36
+ if (ageMs > DEAD_THRESHOLD_MS) return "dead";
37
+ if (ageMs > STALE_THRESHOLD_MS) return "stale";
38
+ return "alive";
39
+ }
40
+ function getAgentLivenessReport() {
41
+ const heartbeats = loadHeartbeats();
42
+ const now = Date.now();
43
+ return Object.values(heartbeats).map((hb) => {
44
+ const ageMs = now - new Date(hb.lastHeartbeat).getTime();
45
+ return {
46
+ agentId: hb.agentId,
47
+ sessionName: hb.sessionName,
48
+ status: classifyLiveness(hb.lastHeartbeat),
49
+ lastHeartbeat: hb.lastHeartbeat,
50
+ ageSeconds: Math.round(ageMs / 1e3),
51
+ meta: hb.meta
52
+ };
53
+ });
54
+ }
55
+ export {
56
+ classifyLiveness,
57
+ getAgentLivenessReport,
58
+ loadHeartbeats,
59
+ recordHeartbeat
60
+ };
@@ -0,0 +1,10 @@
1
+ import {
2
+ agentLoop
3
+ } from "./chunk-AJWFPKQS.js";
4
+ import "./chunk-JQ6TLNIV.js";
5
+ import "./chunk-PRKVT4KN.js";
6
+ import "./chunk-HF25XPZE.js";
7
+ import "./chunk-R5U7XKVJ.js";
8
+ export {
9
+ agentLoop
10
+ };
@@ -0,0 +1,25 @@
1
+ import {
2
+ clean,
3
+ extractGoalCandidates,
4
+ inferIntention,
5
+ inferOntologyEventType,
6
+ inferOutcome,
7
+ inferSemanticLabel,
8
+ insertOntologyForBatch,
9
+ insertOntologyForMemory,
10
+ ontologyPayload,
11
+ stableId
12
+ } from "./chunk-WWPX2LLP.js";
13
+ import "./chunk-R5U7XKVJ.js";
14
+ export {
15
+ clean,
16
+ extractGoalCandidates,
17
+ inferIntention,
18
+ inferOntologyEventType,
19
+ inferOutcome,
20
+ inferSemanticLabel,
21
+ insertOntologyForBatch,
22
+ insertOntologyForMemory,
23
+ ontologyPayload,
24
+ stableId
25
+ };
@@ -0,0 +1,129 @@
1
+ import "./chunk-R5U7XKVJ.js";
2
+
3
+ // src/lib/adapters/asana.ts
4
+ var ASANA_API_BASE = "https://app.asana.com/api/1.0";
5
+ var FETCH_TIMEOUT_MS = 15e3;
6
+ async function asanaFetch(config, endpoint, options = {}) {
7
+ const url = `${ASANA_API_BASE}${endpoint}`;
8
+ const res = await fetch(url, {
9
+ method: options.method ?? "GET",
10
+ headers: {
11
+ Authorization: `Bearer ${config.apiToken}`,
12
+ "Content-Type": "application/json",
13
+ Accept: "application/json"
14
+ },
15
+ ...options.body ? { body: JSON.stringify({ data: options.body }) } : {},
16
+ signal: AbortSignal.timeout(FETCH_TIMEOUT_MS)
17
+ });
18
+ if (!res.ok) {
19
+ const errBody = await res.text().catch(() => "");
20
+ throw new Error(`Asana API error (${res.status}): ${errBody}`);
21
+ }
22
+ const json = await res.json();
23
+ return json.data;
24
+ }
25
+ async function createAsanaTask(config, params) {
26
+ const body = {
27
+ name: params.name,
28
+ notes: params.notes,
29
+ workspace: params.workspace_gid ?? config.defaultWorkspaceGid
30
+ };
31
+ if (params.project_gid) {
32
+ body.projects = [params.project_gid];
33
+ }
34
+ if (params.assignee_gid) {
35
+ body.assignee = params.assignee_gid;
36
+ }
37
+ if (params.due_on) {
38
+ body.due_on = params.due_on;
39
+ }
40
+ return asanaFetch(config, "/tasks", { method: "POST", body });
41
+ }
42
+ async function getAsanaTask(config, taskGid) {
43
+ return asanaFetch(config, `/tasks/${taskGid}`);
44
+ }
45
+ async function updateAsanaTask(config, taskGid, updates) {
46
+ const body = {};
47
+ if (updates.name !== void 0) body.name = updates.name;
48
+ if (updates.notes !== void 0) body.notes = updates.notes;
49
+ if (updates.completed !== void 0) body.completed = updates.completed;
50
+ if (updates.due_on !== void 0) body.due_on = updates.due_on;
51
+ if (updates.assignee_gid !== void 0) body.assignee = updates.assignee_gid;
52
+ return asanaFetch(config, `/tasks/${taskGid}`, { method: "PUT", body });
53
+ }
54
+ async function addAsanaComment(config, taskGid, text) {
55
+ return asanaFetch(config, `/tasks/${taskGid}/stories`, {
56
+ method: "POST",
57
+ body: { text }
58
+ });
59
+ }
60
+ async function listAsanaProjects(config, workspaceGid) {
61
+ const ws = workspaceGid ?? config.defaultWorkspaceGid;
62
+ if (!ws) throw new Error("workspace_gid is required (no default set)");
63
+ return asanaFetch(config, `/workspaces/${ws}/projects?opt_fields=name,notes,color,created_at`);
64
+ }
65
+ async function listAsanaTasksByProject(config, projectGid, opts) {
66
+ const params = new URLSearchParams({
67
+ opt_fields: "name,notes,completed,due_on,assignee.name,created_at,modified_at"
68
+ });
69
+ if (opts?.completed_since) params.set("completed_since", opts.completed_since);
70
+ if (opts?.limit) params.set("limit", String(opts.limit));
71
+ return asanaFetch(config, `/projects/${projectGid}/tasks?${params}`);
72
+ }
73
+ async function executeAsanaOperation(config, operation, payload) {
74
+ switch (operation) {
75
+ case "create_task":
76
+ return createAsanaTask(config, {
77
+ name: String(payload.name ?? ""),
78
+ notes: payload.notes ? String(payload.notes) : void 0,
79
+ project_gid: payload.project_gid ? String(payload.project_gid) : void 0,
80
+ assignee_gid: payload.assignee_gid ? String(payload.assignee_gid) : void 0,
81
+ due_on: payload.due_on ? String(payload.due_on) : void 0,
82
+ workspace_gid: payload.workspace_gid ? String(payload.workspace_gid) : void 0
83
+ });
84
+ case "get_task":
85
+ if (!payload.task_gid) throw new Error("get_task requires task_gid");
86
+ return getAsanaTask(config, String(payload.task_gid));
87
+ case "update_task":
88
+ if (!payload.task_gid) throw new Error("update_task requires task_gid");
89
+ return updateAsanaTask(config, String(payload.task_gid), {
90
+ name: payload.name ? String(payload.name) : void 0,
91
+ notes: payload.notes ? String(payload.notes) : void 0,
92
+ completed: payload.completed !== void 0 ? Boolean(payload.completed) : void 0,
93
+ due_on: payload.due_on ? String(payload.due_on) : void 0,
94
+ assignee_gid: payload.assignee_gid ? String(payload.assignee_gid) : void 0
95
+ });
96
+ case "add_comment":
97
+ if (!payload.task_gid) throw new Error("add_comment requires task_gid");
98
+ if (!payload.text) throw new Error("add_comment requires text");
99
+ return addAsanaComment(config, String(payload.task_gid), String(payload.text));
100
+ case "list_projects":
101
+ return listAsanaProjects(config, payload.workspace_gid ? String(payload.workspace_gid) : void 0);
102
+ case "list_tasks_by_project":
103
+ if (!payload.project_gid) throw new Error("list_tasks_by_project requires project_gid");
104
+ return listAsanaTasksByProject(config, String(payload.project_gid), {
105
+ completed_since: payload.completed_since ? String(payload.completed_since) : void 0,
106
+ limit: payload.limit ? Number(payload.limit) : void 0
107
+ });
108
+ default:
109
+ throw new Error(`Unknown Asana operation: ${operation}`);
110
+ }
111
+ }
112
+ function loadAsanaConfig() {
113
+ const token = process.env.ASANA_API_TOKEN ?? process.env.ASANA_ACCESS_TOKEN;
114
+ if (!token) return null;
115
+ return {
116
+ apiToken: token,
117
+ defaultWorkspaceGid: process.env.ASANA_WORKSPACE_GID
118
+ };
119
+ }
120
+ export {
121
+ addAsanaComment,
122
+ createAsanaTask,
123
+ executeAsanaOperation,
124
+ getAsanaTask,
125
+ listAsanaProjects,
126
+ listAsanaTasksByProject,
127
+ loadAsanaConfig,
128
+ updateAsanaTask
129
+ };
@@ -0,0 +1,83 @@
1
+ # Exe OS — Ghostty defaults
2
+ # Optimized for tmux + Claude Code agent workflows
3
+
4
+ font-size = 11
5
+
6
+ # ─── Theme: warm light background ───────────────────────────
7
+ background = #fff8f0
8
+ foreground = #000000
9
+ cursor-color = #000000
10
+ selection-background = #b4d5fe
11
+
12
+ # ANSI palette (0-15)
13
+ palette = 0=#000000
14
+ palette = 1=#c91b00
15
+ palette = 2=#00c200
16
+ palette = 3=#c7c400
17
+ palette = 4=#0225c7
18
+ palette = 5=#c930c7
19
+ palette = 6=#00c5c7
20
+ palette = 7=#c7c7c7
21
+ palette = 8=#686868
22
+ palette = 9=#ff6e67
23
+ palette = 10=#5ffa68
24
+ palette = 11=#e5daab
25
+ palette = 12=#6871ff
26
+ palette = 13=#ff77ff
27
+ palette = 14=#60fdff
28
+ palette = 15=#ffffff
29
+
30
+ # ─── Ghostty → tmux keybindings ─────────────────────────────
31
+ # Forward Cmd+key combos to tmux as prefix sequences.
32
+ # Tmux prefix is Ctrl+B (\x02).
33
+
34
+ # Splits (native Ghostty splits)
35
+ keybind = super+d=new_split:right
36
+ keybind = super+shift+d=new_split:down
37
+
38
+ # Close pane/tab
39
+ keybind = super+w=close_surface
40
+
41
+ # New tab
42
+ keybind = super+t=text:\x02t
43
+
44
+ # Tab navigation: Cmd+Shift+[ / ]
45
+ keybind = super+shift+[=text:\x02[
46
+ keybind = super+shift+]=text:\x02]
47
+
48
+ # Go to tab by number: Cmd+1..9
49
+ keybind = super+1=text:\x021
50
+ keybind = super+digit_1=text:\x021
51
+ keybind = super+2=text:\x022
52
+ keybind = super+digit_2=text:\x022
53
+ keybind = super+3=text:\x023
54
+ keybind = super+digit_3=text:\x023
55
+ keybind = super+4=text:\x024
56
+ keybind = super+digit_4=text:\x024
57
+ keybind = super+5=text:\x025
58
+ keybind = super+digit_5=text:\x025
59
+ keybind = super+6=text:\x026
60
+ keybind = super+digit_6=text:\x026
61
+ keybind = super+7=text:\x027
62
+ keybind = super+digit_7=text:\x027
63
+ keybind = super+8=text:\x028
64
+ keybind = super+digit_8=text:\x028
65
+ keybind = super+9=text:\x029
66
+
67
+ # Zoom pane (fullscreen): Cmd+Shift+Enter
68
+ keybind = super+shift+enter=text:\x02z
69
+
70
+ # Clear screen: Cmd+K
71
+ keybind = super+k=text:\x02k
72
+
73
+ # Search: Cmd+F
74
+ keybind = super+f=text:\x02f
75
+
76
+ # Resize splits: Cmd+Ctrl+Arrow
77
+ keybind = super+ctrl+arrow_up=text:\x02\x1b[A
78
+ keybind = super+ctrl+arrow_down=text:\x02\x1b[B
79
+ keybind = super+ctrl+arrow_right=text:\x02\x1b[C
80
+ keybind = super+ctrl+arrow_left=text:\x02\x1b[D
81
+
82
+ # Equalize splits: Cmd+Ctrl+=
83
+ keybind = super+ctrl+=text:\x02=
@@ -0,0 +1,44 @@
1
+ #!/bin/bash
2
+ # Claude Code status line — model + visual context bar + percentage
3
+ input=$(cat)
4
+
5
+ MODEL=$(echo "$input" | jq -r '.model.display_name // "Claude"')
6
+ PCT=$(echo "$input" | jq -r '.context_window.used_percentage // 0' | cut -d. -f1)
7
+ CTX_SIZE=$(echo "$input" | jq -r '.context_window.context_window_size // empty')
8
+
9
+ # Format context window size (1000000 -> 1M, 200000 -> 200K)
10
+ if [ -n "$CTX_SIZE" ]; then
11
+ if [ "$CTX_SIZE" -ge 1000000 ] 2>/dev/null; then
12
+ CTX_LABEL="$(echo "$CTX_SIZE" | awk '{printf "%.0fM", $1/1000000}')"
13
+ elif [ "$CTX_SIZE" -ge 1000 ] 2>/dev/null; then
14
+ CTX_LABEL="$(echo "$CTX_SIZE" | awk '{printf "%.0fK", $1/1000}')"
15
+ else
16
+ CTX_LABEL="${CTX_SIZE}"
17
+ fi
18
+ fi
19
+
20
+ # Build visual bar (12 chars wide)
21
+ BAR_WIDTH=12
22
+ FILLED=$((PCT * BAR_WIDTH / 100))
23
+ EMPTY=$((BAR_WIDTH - FILLED))
24
+ BAR=""
25
+
26
+ [ "$FILLED" -gt 0 ] && printf -v FILL "%${FILLED}s" && BAR="${FILL// /▓}"
27
+ [ "$EMPTY" -gt 0 ] && printf -v PAD "%${EMPTY}s" && BAR="${BAR}${PAD// /░}"
28
+
29
+ # Color the percentage based on usage
30
+ if [ "$PCT" -ge 80 ]; then
31
+ COLOR="\033[31m" # Red
32
+ elif [ "$PCT" -ge 50 ]; then
33
+ COLOR="\033[33m" # Yellow
34
+ else
35
+ COLOR="\033[32m" # Green
36
+ fi
37
+ RESET="\033[0m"
38
+ DIM="\033[2m"
39
+
40
+ if [ -n "$CTX_SIZE" ] && [ "$PCT" -gt 0 ]; then
41
+ printf "${DIM}%s${RESET} ${COLOR}%s ${PCT}%%${RESET} ${DIM}of ${CTX_LABEL}${RESET}" "$MODEL" "$BAR"
42
+ else
43
+ printf "${DIM}%s${RESET}" "$MODEL"
44
+ fi
@@ -0,0 +1,56 @@
1
+ # Exe OS — Ghostty-compatible tmux defaults
2
+ # Backup of original: ~/.tmux.conf.backup (if existed)
3
+
4
+ # Mouse support
5
+ set -g mouse on
6
+
7
+ # Modern prefix (Ctrl+a instead of Ctrl+b)
8
+ unbind C-b
9
+ set -g prefix C-a
10
+ bind C-a send-prefix
11
+
12
+ # True color support
13
+ set -g default-terminal "tmux-256color"
14
+ set -ga terminal-overrides ",*256col*:Tc"
15
+
16
+ # Scroll history
17
+ set -g history-limit 50000
18
+
19
+ # Copy to macOS clipboard on mouse drag select
20
+ set -g copy-command "pbcopy"
21
+ bind -T copy-mode MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "pbcopy"
22
+ bind -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "pbcopy"
23
+
24
+ # Vi-style copy mode
25
+ setw -g mode-keys vi
26
+ bind -T copy-mode-vi v send-keys -X begin-selection
27
+ bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "pbcopy"
28
+
29
+ # Blue selection highlight
30
+ set -g mode-style "bg=#1a73e8,fg=#ffffff"
31
+
32
+ # Pane navigation without prefix
33
+ bind -n M-Left select-pane -L
34
+ bind -n M-Right select-pane -R
35
+ bind -n M-Up select-pane -U
36
+ bind -n M-Down select-pane -D
37
+
38
+ # Status bar — session name only, nothing else
39
+ set -g status-style "bg=#da7756,fg=#ffffff"
40
+ set -g status-left "#[bold] #S "
41
+ set -g status-left-length 30
42
+ set -g window-status-format ""
43
+ set -g window-status-current-format ""
44
+ set -g status-right ""
45
+ set -g status-right-length 0
46
+
47
+ # Disable auto-renaming
48
+ set -g allow-rename off
49
+ set -g automatic-rename off
50
+
51
+ # Prevent agent output from polluting macOS clipboard via OSC 52 passthrough (bug 5cd79440)
52
+ set -g set-clipboard off
53
+
54
+ # Start windows and panes at 1
55
+ set -g base-index 1
56
+ setw -g pane-base-index 1
@@ -0,0 +1,68 @@
1
+ -- ── exe-os:wezterm-start ──
2
+ -- Exe OS — WezTerm defaults
3
+ -- Optimized for tmux + Claude Code agent workflows on Windows/WSL
4
+ --
5
+ -- To customize, add your overrides AFTER the exe-os:wezterm-end marker.
6
+ -- This block is managed by exe-os and may be updated on `exe-os update`.
7
+
8
+ local wezterm = require 'wezterm'
9
+ local config = wezterm.config_builder()
10
+
11
+ -- ─── WSL: auto-launch into default WSL distro ─────────────────
12
+ -- Uncomment and set your distro name if WezTerm doesn't auto-detect:
13
+ -- config.default_domain = 'WSL:Ubuntu'
14
+
15
+ -- ─── Theme: Exe Foundry Bold ──────────────────────────────────
16
+ config.color_scheme = 'Builtin Tango Dark'
17
+ config.colors = {
18
+ background = '#0F0E1A',
19
+ foreground = '#E0E0E0',
20
+ cursor_bg = '#F5D76E',
21
+ cursor_fg = '#0F0E1A',
22
+ selection_bg = '#3A3A5C',
23
+ selection_fg = '#E0E0E0',
24
+ }
25
+
26
+ -- ─── Font ─────────────────────────────────────────────────────
27
+ config.font_size = 11.0
28
+
29
+ -- ─── Notifications ────────────────────────────────────────────
30
+ -- OSC 9 desktop notifications (task completion, agent alerts)
31
+ config.enable_osc9_notification = true
32
+
33
+ -- ─── Keybindings: forward to tmux ─────────────────────────────
34
+ -- Tmux prefix is Ctrl+B. These mirror the Ghostty config.
35
+ config.keys = {
36
+ -- New tab
37
+ { key = 't', mods = 'CTRL|SHIFT', action = wezterm.action.SendString '\x02t' },
38
+ -- Close pane
39
+ { key = 'w', mods = 'CTRL|SHIFT', action = wezterm.action.SendString '\x02x' },
40
+ -- Split horizontal
41
+ { key = 'd', mods = 'CTRL|SHIFT', action = wezterm.action.SendString '\x02%' },
42
+ -- Split vertical
43
+ { key = 'e', mods = 'CTRL|SHIFT', action = wezterm.action.SendString '\x02"' },
44
+ -- Tab navigation
45
+ { key = '[', mods = 'CTRL|SHIFT', action = wezterm.action.SendString '\x02p' },
46
+ { key = ']', mods = 'CTRL|SHIFT', action = wezterm.action.SendString '\x02n' },
47
+ -- Go to tab by number
48
+ { key = '1', mods = 'ALT', action = wezterm.action.SendString '\x021' },
49
+ { key = '2', mods = 'ALT', action = wezterm.action.SendString '\x022' },
50
+ { key = '3', mods = 'ALT', action = wezterm.action.SendString '\x023' },
51
+ { key = '4', mods = 'ALT', action = wezterm.action.SendString '\x024' },
52
+ { key = '5', mods = 'ALT', action = wezterm.action.SendString '\x025' },
53
+ { key = '6', mods = 'ALT', action = wezterm.action.SendString '\x026' },
54
+ { key = '7', mods = 'ALT', action = wezterm.action.SendString '\x027' },
55
+ { key = '8', mods = 'ALT', action = wezterm.action.SendString '\x028' },
56
+ { key = '9', mods = 'ALT', action = wezterm.action.SendString '\x029' },
57
+ -- Zoom pane
58
+ { key = 'Enter', mods = 'CTRL|SHIFT', action = wezterm.action.SendString '\x02z' },
59
+ -- Clear screen
60
+ { key = 'k', mods = 'CTRL|SHIFT', action = wezterm.action.SendString '\x02k' },
61
+ }
62
+
63
+ -- ─── Misc ─────────────────────────────────────────────────────
64
+ config.scrollback_lines = 10000
65
+ config.enable_scroll_bar = true
66
+
67
+ return config
68
+ -- ── exe-os:wezterm-end ──