@askexenow/exe-os 0.9.294 → 0.9.296

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 (279) hide show
  1. package/deploy/compose/cloudflared/config.yml.example +14 -9
  2. package/deploy/compose/docker-compose.yml +86 -8
  3. package/deploy/compose/sso-edge/default.conf.template +87 -0
  4. package/deploy/compose/sso-edge/entrypoint.sh +23 -0
  5. package/deploy/compose/sso-edge/sso-redirect.conf +63 -0
  6. package/deploy/stack-manifests/v0.9.json +2 -2
  7. package/dist/active-agent-AFX2FODG.js +28 -0
  8. package/dist/active-agent-E2IJA7YX.js +27 -0
  9. package/dist/agentic-ontology-A2YUZK5O.js +25 -0
  10. package/dist/assets/com.askexe.exed.plist +4 -1
  11. package/dist/backfill-metadata-OC7EOD5U.js +600 -0
  12. package/dist/behaviors-H5ZOVHDH.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 -7
  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 +21 -18
  28. package/dist/bin/exe-call.js +4 -4
  29. package/dist/bin/exe-cloud.js +7 -7
  30. package/dist/bin/exe-dispatch.js +11 -11
  31. package/dist/bin/exe-doctor.js +3 -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 +6 -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 +18 -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 +39 -9
  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 +13 -6
  57. package/dist/bin/install.js +26 -14
  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/bin/stack-update.js +2 -2
  67. package/dist/bin/vps-health-gate.js +1 -1
  68. package/dist/capability-cards-4USI7CUW.js +89 -0
  69. package/dist/capacity-monitor-WLCBTEYR.js +51 -0
  70. package/dist/catchup-brief-ZR3NX6LZ.js +175 -0
  71. package/dist/chunk-22TVSRQQ.js +226 -0
  72. package/dist/chunk-2E43UXRH.js +395 -0
  73. package/dist/chunk-2PIGT6UJ.js +460 -0
  74. package/dist/chunk-3XTMW2MZ.js +535 -0
  75. package/dist/chunk-465PQFTH.js +262 -0
  76. package/dist/chunk-5CCXU2AW.js +129 -0
  77. package/dist/chunk-5D6MPWR7.js +1094 -0
  78. package/dist/chunk-5Q4MR6SL.js +123 -0
  79. package/dist/chunk-6327RBWR.js +345 -0
  80. package/dist/chunk-6MZZREZY.js +199 -0
  81. package/dist/chunk-7DI2Q4O5.js +1186 -0
  82. package/dist/chunk-7PW5VNIY.js +122 -0
  83. package/dist/chunk-7T7Y56HW.js +43 -0
  84. package/dist/chunk-7UHCWCLT.js +128 -0
  85. package/dist/chunk-A2ZUMF6L.js +1350 -0
  86. package/dist/chunk-AKV44JEH.js +185 -0
  87. package/dist/chunk-ANHWGX5N.js +735 -0
  88. package/dist/chunk-BQ3P4TKD.js +97 -0
  89. package/dist/chunk-BUZMT3KZ.js +604 -0
  90. package/dist/chunk-C2SBESBO.js +210 -0
  91. package/dist/chunk-CLSXZUZW.js +51 -0
  92. package/dist/chunk-CONHLVAR.js +1079 -0
  93. package/dist/chunk-D3WTZPFX.js +456 -0
  94. package/dist/chunk-DE6SOIYL.js +197 -0
  95. package/dist/chunk-EIVNMA3Q.js +284 -0
  96. package/dist/chunk-EJIF4FNT.js +12 -0
  97. package/dist/chunk-FDFOW564.js +171 -0
  98. package/dist/chunk-GZUBJ5EC.js +127 -0
  99. package/dist/chunk-HGZITN22.js +105 -0
  100. package/dist/chunk-HSRKDU6X.js +362 -0
  101. package/dist/chunk-IIEN2PHV.js +85 -0
  102. package/dist/chunk-JQ56VLMM.js +567 -0
  103. package/dist/chunk-JVHHXRFY.js +280 -0
  104. package/dist/chunk-JXCXGZ3S.js +55 -0
  105. package/dist/chunk-K5ZO532Q.js +4388 -0
  106. package/dist/chunk-K6CAAMXF.js +97 -0
  107. package/dist/chunk-KA26YTNU.js +81 -0
  108. package/dist/chunk-KMUW5C3R.js +381 -0
  109. package/dist/chunk-KOO3J5PV.js +20 -0
  110. package/dist/chunk-LSV7OFIH.js +290 -0
  111. package/dist/chunk-LSVFDVNY.js +1158 -0
  112. package/dist/chunk-LXDQTW32.js +230 -0
  113. package/dist/chunk-MEP7OUVZ.js +181 -0
  114. package/dist/chunk-MN2B2LKS.js +240 -0
  115. package/dist/chunk-N2EAYPYQ.js +1352 -0
  116. package/dist/chunk-N7I2A667.js +70 -0
  117. package/dist/chunk-NLZHVIOP.js +630 -0
  118. package/dist/chunk-NUH5TRZL.js +227 -0
  119. package/dist/chunk-OAHEIH3G.js +167 -0
  120. package/dist/chunk-OBHRQGCK.js +58 -0
  121. package/dist/chunk-ODFA7B2V.js +54 -0
  122. package/dist/chunk-OSNUP45F.js +731 -0
  123. package/dist/chunk-OTPRHBTO.js +33 -0
  124. package/dist/chunk-P6MUA4QU.js +157 -0
  125. package/dist/chunk-PGIOFKSK.js +2093 -0
  126. package/dist/chunk-PSE7VHWK.js +50 -0
  127. package/dist/chunk-QIFUVZFW.js +331 -0
  128. package/dist/chunk-RDPXKTVK.js +221 -0
  129. package/dist/chunk-RKYTYJGB.js +76 -0
  130. package/dist/chunk-RXLR6EFM.js +348 -0
  131. package/dist/chunk-SDB67PQJ.js +159 -0
  132. package/dist/chunk-SF2T7MP3.js +402 -0
  133. package/dist/chunk-SLU3FRFQ.js +2133 -0
  134. package/dist/chunk-SNDZJ5IV.js +214 -0
  135. package/dist/chunk-STEEAABW.js +448 -0
  136. package/dist/chunk-TUTWNHIQ.js +244 -0
  137. package/dist/chunk-UDP35QBR.js +30 -0
  138. package/dist/chunk-UKFHNJBI.js +85 -0
  139. package/dist/chunk-VC2DTK2X.js +382 -0
  140. package/dist/chunk-VRRAE5JX.js +836 -0
  141. package/dist/chunk-VVJTBQPR.js +38 -0
  142. package/dist/chunk-W3EQ362K.js +581 -0
  143. package/dist/chunk-WHIXIFHC.js +2242 -0
  144. package/dist/chunk-WRNGJJNR.js +377 -0
  145. package/dist/chunk-WUKHLCBE.js +3313 -0
  146. package/dist/chunk-WVPLHGDG.js +150 -0
  147. package/dist/chunk-XJZBSTL5.js +204 -0
  148. package/dist/chunk-Y3PMNUM5.js +304 -0
  149. package/dist/chunk-YHVS4QOV.js +14597 -0
  150. package/dist/chunk-YJ2OYAOC.js +668 -0
  151. package/dist/chunk-YYAD2GXX.js +128 -0
  152. package/dist/chunk-ZQML7EWE.js +333 -0
  153. package/dist/co-activation-XJLH46OX.js +74 -0
  154. package/dist/co-occurrence-GNN2X526.js +95 -0
  155. package/dist/code-context-index-OCPRLFG5.js +30 -0
  156. package/dist/core-memory-J4W2IYOF.js +110 -0
  157. package/dist/crdt-sync-QCBTSHIH.js +33 -0
  158. package/dist/crm-webhook-EM442VUW.js +10 -0
  159. package/dist/cto-delegation-gate-MLJMVHBK.js +280 -0
  160. package/dist/daemon-orchestration-2VNLZVTW.js +139 -0
  161. package/dist/db-backup-VUGFTPJ4.js +43 -0
  162. package/dist/doc-graph-extractor-PNRSFPSS.js +133 -0
  163. package/dist/dreaming-SK5VEQRF.js +34 -0
  164. package/dist/entity-boost-TQWWJUC2.js +375 -0
  165. package/dist/exe-drift-N34UPO7S.js +70 -0
  166. package/dist/exe-export-KACBKGVV.js +77 -0
  167. package/dist/exe-import-GXGDWACG.js +80 -0
  168. package/dist/exe-key-XPDOZBWW.js +673 -0
  169. package/dist/exe-snapshot-32GQKGQ5.js +338 -0
  170. package/dist/fast-db-init-F3TDD5VV.js +7 -0
  171. package/dist/gateway/index.js +8 -8
  172. package/dist/git-staleness-J45WNYRF.js +112 -0
  173. package/dist/git-task-sweep-BTGVQPFB.js +42 -0
  174. package/dist/global-procedures-6JCQWU4D.js +22 -0
  175. package/dist/graph-auto-extract-3ZQNXTPC.js +183 -0
  176. package/dist/hooks/bug-report-worker.js +13 -13
  177. package/dist/hooks/codex-stop-task-finalizer.js +13 -13
  178. package/dist/hooks/commit-complete.js +13 -13
  179. package/dist/hooks/error-recall.js +6 -6
  180. package/dist/hooks/exe-heartbeat-hook.js +3 -3
  181. package/dist/hooks/ingest-worker.js +3 -3
  182. package/dist/hooks/ingest.js +6 -6
  183. package/dist/hooks/instructions-loaded.js +4 -4
  184. package/dist/hooks/manifest.json +20 -20
  185. package/dist/hooks/notification.js +4 -4
  186. package/dist/hooks/post-compact.js +12 -12
  187. package/dist/hooks/post-tool-combined.js +6 -6
  188. package/dist/hooks/pre-compact.js +16 -16
  189. package/dist/hooks/pre-tool-use.js +16 -16
  190. package/dist/hooks/prompt-submit.js +24 -24
  191. package/dist/hooks/session-end.js +21 -21
  192. package/dist/hooks/session-start.js +12 -12
  193. package/dist/hooks/stop.js +19 -19
  194. package/dist/hooks/subagent-stop.js +12 -12
  195. package/dist/hooks/summary-worker.js +19 -19
  196. package/dist/index.js +19 -19
  197. package/dist/installer-5VPFY7SB.js +298 -0
  198. package/dist/installer-OENFPMA2.js +344 -0
  199. package/dist/installer-OIX4QOG5.js +40 -0
  200. package/dist/lib/cloud-sync.js +7 -7
  201. package/dist/lib/consolidation.js +6 -5
  202. package/dist/lib/database.js +2 -2
  203. package/dist/lib/db-daemon-client.js +2 -2
  204. package/dist/lib/db.js +2 -2
  205. package/dist/lib/embed-worker.js +1 -0
  206. package/dist/lib/embedder.js +7 -3
  207. package/dist/lib/employee-templates.js +4 -4
  208. package/dist/lib/employees.js +2 -2
  209. package/dist/lib/exe-daemon-client.js +2 -2
  210. package/dist/lib/exe-daemon.js +160 -79
  211. package/dist/lib/hybrid-search.js +5 -5
  212. package/dist/lib/identity.js +2 -2
  213. package/dist/lib/messaging.js +11 -11
  214. package/dist/lib/reminders.js +3 -3
  215. package/dist/lib/schedules.js +5 -5
  216. package/dist/lib/session-registry.js +4 -4
  217. package/dist/lib/skill-learning.js +6 -6
  218. package/dist/lib/store.js +4 -4
  219. package/dist/lib/task-router.js +3 -3
  220. package/dist/lib/tasks.js +12 -12
  221. package/dist/lib/tmux-routing.js +12 -10
  222. package/dist/lib/tmux-transport.js +1 -1
  223. package/dist/lib/token-spend.js +3 -3
  224. package/dist/lib/transport.js +2 -2
  225. package/dist/mcp/register-tools.js +62 -61
  226. package/dist/mcp/server.js +63 -62
  227. package/dist/mcp/tools/complete-reminder.js +4 -4
  228. package/dist/mcp/tools/create-reminder.js +4 -4
  229. package/dist/mcp/tools/create-task.js +14 -14
  230. package/dist/mcp/tools/deactivate-behavior.js +7 -7
  231. package/dist/mcp/tools/list-reminders.js +4 -4
  232. package/dist/mcp/tools/list-tasks.js +14 -14
  233. package/dist/mcp/tools/send-message.js +13 -13
  234. package/dist/mcp/tools/update-task.js +13 -13
  235. package/dist/mcp-http-config-PQTOLCTP.js +29 -0
  236. package/dist/memory-cards-4RVDZIY2.js +180 -0
  237. package/dist/memory-graph-extractor-L6YC7G4M.js +22 -0
  238. package/dist/memory-poisoning-defense-4YVJYH4G.js +224 -0
  239. package/dist/memory-queue-client-MVAUOZNJ.js +16 -0
  240. package/dist/memory-reflection-SHHDQNOH.js +244 -0
  241. package/dist/message-queue-client-DCKZT6X2.js +92 -0
  242. package/dist/notifications-JFR3G42W.js +47 -0
  243. package/dist/orchestration-events-MGCGPTDN.js +27 -0
  244. package/dist/orchestrator-DAFL2YZB.js +35 -0
  245. package/dist/pipeline-router-WWSZVPCH.js +15 -0
  246. package/dist/plan-limits-C7XCSDZC.js +28 -0
  247. package/dist/project-boot-N3NTBVLE.js +299 -0
  248. package/dist/projection-worker-MTPAPCWX.js +1084 -0
  249. package/dist/prospective-memory-BTIVUJSB.js +232 -0
  250. package/dist/reranker-UA6WVESJ.js +19 -0
  251. package/dist/retrieval-health-7XNZJEBF.js +12 -0
  252. package/dist/review-polling-4ALGMXC3.js +126 -0
  253. package/dist/runtime/index.js +13 -13
  254. package/dist/self-query-router-MROFQLQB.js +192 -0
  255. package/dist/session-events-CK44XOU4.js +38 -0
  256. package/dist/session-kill-telemetry-MT6ITDOG.js +31 -0
  257. package/dist/session-scope-3XDBWV65.js +88 -0
  258. package/dist/setup-wizard-X6DOD7MC.js +12 -0
  259. package/dist/skill-refinement-G2CCY3GM.js +159 -0
  260. package/dist/stack-update-JF7F56AS.js +84 -0
  261. package/dist/steward-gate-YF2CYXE7.js +15 -0
  262. package/dist/task-enforcement-YN6HK7NE.js +506 -0
  263. package/dist/task-scope-CVK6ISCZ.js +37 -0
  264. package/dist/tasks-crud-NTNET4JE.js +79 -0
  265. package/dist/tasks-notify-4LJVFPCV.js +40 -0
  266. package/dist/tasks-review-3V4WOIRG.js +49 -0
  267. package/dist/telemetry-upload-5PNUKGTM.js +741 -0
  268. package/dist/token-budget-E46G7ZAQ.js +86 -0
  269. package/dist/tool-capability-index-JDSMKJER.js +10 -0
  270. package/dist/tool-telemetry-J3NLS3LJ.js +17 -0
  271. package/dist/tui/App.js +18 -18
  272. package/dist/tui-data-6DOMUUCM.js +260 -0
  273. package/dist/wiki-acl-5UK37LKF.js +111 -0
  274. package/dist/worker-gate-FM7AEC7G.js +21 -0
  275. package/dist/workflow-engine-2EDUHUIY.js +28 -0
  276. package/dist/worktree-7YKKJIYR.js +28 -0
  277. package/dist/worktree-sweep-C3ELFGDN.js +21 -0
  278. package/package.json +1 -1
  279. package/release-notes.json +88 -88
@@ -1,32 +1,32 @@
1
1
  import "../chunk-SH45SJQW.js";
2
2
  import {
3
3
  getActiveAgent
4
- } from "../chunk-NMJSZ5FC.js";
4
+ } from "../chunk-AKV44JEH.js";
5
5
  import {
6
6
  sessionScopeFilter
7
- } from "../chunk-2ZXMXFGH.js";
8
- import "../chunk-E45SQG7C.js";
7
+ } from "../chunk-K5ZO532Q.js";
8
+ import "../chunk-JVHHXRFY.js";
9
9
  import "../chunk-4JERP7NT.js";
10
10
  import "../chunk-4FVVJ7ME.js";
11
- import "../chunk-RAERYWCL.js";
12
- import "../chunk-HN3HGFBL.js";
13
- import "../chunk-YNORJIBH.js";
11
+ import "../chunk-Y3PMNUM5.js";
12
+ import "../chunk-KOO3J5PV.js";
13
+ import "../chunk-22TVSRQQ.js";
14
14
  import "../chunk-SSTLTIF3.js";
15
- import "../chunk-DVFHAY2J.js";
15
+ import "../chunk-NLZHVIOP.js";
16
16
  import "../chunk-QRTJNSKU.js";
17
17
  import "../chunk-NGP6LSV2.js";
18
- import "../chunk-GJS7CJRC.js";
18
+ import "../chunk-5CCXU2AW.js";
19
19
  import "../chunk-CVYC6DUW.js";
20
20
  import "../chunk-OPU3NYOO.js";
21
21
  import "../chunk-GJV3WDWM.js";
22
22
  import "../chunk-MP2AFCGL.js";
23
- import "../chunk-HH3MBGMJ.js";
23
+ import "../chunk-N7I2A667.js";
24
24
  import "../chunk-HYZV25LY.js";
25
25
  import {
26
26
  canCoordinate
27
- } from "../chunk-TM2GZWIT.js";
27
+ } from "../chunk-WUKHLCBE.js";
28
28
  import "../chunk-2I23RPSI.js";
29
- import "../chunk-D3X64YSB.js";
29
+ import "../chunk-2E43UXRH.js";
30
30
  import "../chunk-PNQDP3OA.js";
31
31
  import "../chunk-7HLWBYH7.js";
32
32
  import "../chunk-FXU7JOXK.js";
@@ -99,7 +99,7 @@ process.stdin.on("end", async () => {
99
99
  if (isSidechainTranscript(payload.transcript_path)) {
100
100
  process.exit(0);
101
101
  }
102
- const { fastDbInit } = await import("../fast-db-init-VU4FDPGX.js");
102
+ const { fastDbInit } = await import("../fast-db-init-F3TDD5VV.js");
103
103
  const client = await fastDbInit();
104
104
  const saScope = sessionScopeFilter();
105
105
  const pendingResult = await client.execute({
@@ -1,48 +1,48 @@
1
1
  import {
2
2
  writeContinuityCheckpoint
3
- } from "../chunk-JABYHL7R.js";
4
- import "../chunk-PC53GP5N.js";
3
+ } from "../chunk-FDFOW564.js";
4
+ import "../chunk-JXCXGZ3S.js";
5
5
  import "../chunk-MEWGYH6Z.js";
6
- import "../chunk-4HDMB2M5.js";
6
+ import "../chunk-W3EQ362K.js";
7
7
  import "../chunk-QOZQ2MYZ.js";
8
8
  import {
9
9
  initStore,
10
10
  vectorToBlob
11
- } from "../chunk-EM5WXY6H.js";
11
+ } from "../chunk-VRRAE5JX.js";
12
12
  import "../chunk-CHCA3ZM2.js";
13
13
  import "../chunk-OTVEIJUQ.js";
14
- import "../chunk-DQBHY3Q4.js";
14
+ import "../chunk-C2SBESBO.js";
15
15
  import "../chunk-Y25OJWOQ.js";
16
16
  import {
17
17
  getCurrentSessionScope,
18
18
  sessionScopeFilter,
19
19
  writeNotification
20
- } from "../chunk-2ZXMXFGH.js";
21
- import "../chunk-E45SQG7C.js";
20
+ } from "../chunk-K5ZO532Q.js";
21
+ import "../chunk-JVHHXRFY.js";
22
22
  import "../chunk-4JERP7NT.js";
23
23
  import "../chunk-4FVVJ7ME.js";
24
- import "../chunk-RAERYWCL.js";
25
- import "../chunk-HN3HGFBL.js";
26
- import "../chunk-YNORJIBH.js";
24
+ import "../chunk-Y3PMNUM5.js";
25
+ import "../chunk-KOO3J5PV.js";
26
+ import "../chunk-22TVSRQQ.js";
27
27
  import "../chunk-SSTLTIF3.js";
28
- import "../chunk-DVFHAY2J.js";
28
+ import "../chunk-NLZHVIOP.js";
29
29
  import "../chunk-QRTJNSKU.js";
30
30
  import "../chunk-NGP6LSV2.js";
31
- import "../chunk-GJS7CJRC.js";
31
+ import "../chunk-5CCXU2AW.js";
32
32
  import "../chunk-CVYC6DUW.js";
33
33
  import "../chunk-OPU3NYOO.js";
34
34
  import "../chunk-GJV3WDWM.js";
35
35
  import "../chunk-MP2AFCGL.js";
36
- import "../chunk-FXD5LXRD.js";
36
+ import "../chunk-7T7Y56HW.js";
37
37
  import "../chunk-7L2EV3XX.js";
38
- import "../chunk-HH3MBGMJ.js";
38
+ import "../chunk-N7I2A667.js";
39
39
  import "../chunk-HYZV25LY.js";
40
40
  import {
41
41
  canCoordinate,
42
42
  getClient
43
- } from "../chunk-TM2GZWIT.js";
43
+ } from "../chunk-WUKHLCBE.js";
44
44
  import "../chunk-2I23RPSI.js";
45
- import "../chunk-D3X64YSB.js";
45
+ import "../chunk-2E43UXRH.js";
46
46
  import "../chunk-PNQDP3OA.js";
47
47
  import "../chunk-7HLWBYH7.js";
48
48
  import "../chunk-FXU7JOXK.js";
@@ -119,7 +119,7 @@ async function main() {
119
119
  let summaryText = "";
120
120
  let limitReached = false;
121
121
  try {
122
- const { assertMemoryLimit } = await import("../plan-limits-UWVCNA67.js");
122
+ const { assertMemoryLimit } = await import("../plan-limits-C7XCSDZC.js");
123
123
  await assertMemoryLimit();
124
124
  } catch (err) {
125
125
  const msg = err instanceof Error ? err.message : String(err);
@@ -192,7 +192,7 @@ async function main() {
192
192
  const { EXE_AI_DIR } = await import("../lib/config.js");
193
193
  const flagPath = path.join(EXE_AI_DIR, "session-cache", "needs-backfill");
194
194
  if (existsSync(flagPath)) {
195
- const { tryAcquireWorkerSlot, registerWorkerPid } = await import("../worker-gate-F6LY67TM.js");
195
+ const { tryAcquireWorkerSlot, registerWorkerPid } = await import("../worker-gate-FM7AEC7G.js");
196
196
  if (!tryAcquireWorkerSlot()) {
197
197
  process.stderr.write("[summary-worker] Backfill needed but worker gate full \u2014 skipping\n");
198
198
  } else {
@@ -300,7 +300,7 @@ main().catch((err) => {
300
300
  process.stderr.write("[summary-worker] FATAL: " + (err instanceof Error ? err.message : String(err)) + "\n");
301
301
  }).finally(async () => {
302
302
  try {
303
- const { cleanupWorkerPid } = await import("../worker-gate-F6LY67TM.js");
303
+ const { cleanupWorkerPid } = await import("../worker-gate-FM7AEC7G.js");
304
304
  cleanupWorkerPid();
305
305
  } catch {
306
306
  }
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  runtime_exports
3
- } from "./chunk-M2IOPGVR.js";
4
- import "./chunk-RT5NXMH2.js";
3
+ } from "./chunk-OSNUP45F.js";
4
+ import "./chunk-EIVNMA3Q.js";
5
5
  import "./chunk-YZFZDJWZ.js";
6
6
  import "./chunk-CMCYL2JC.js";
7
7
  import "./chunk-NGVOA6ZQ.js";
@@ -10,46 +10,46 @@ import "./chunk-JRLNE3T2.js";
10
10
  import "./chunk-2O2UKMUE.js";
11
11
  import "./chunk-HF25XPZE.js";
12
12
  import "./chunk-O377P7GM.js";
13
- import "./chunk-ALYNEMIH.js";
14
- import "./chunk-2ZXMXFGH.js";
15
- import "./chunk-E45SQG7C.js";
13
+ import "./chunk-WVPLHGDG.js";
14
+ import "./chunk-K5ZO532Q.js";
15
+ import "./chunk-JVHHXRFY.js";
16
16
  import "./chunk-4JERP7NT.js";
17
17
  import "./chunk-4FVVJ7ME.js";
18
- import "./chunk-RAERYWCL.js";
19
- import "./chunk-HN3HGFBL.js";
20
- import "./chunk-YNORJIBH.js";
18
+ import "./chunk-Y3PMNUM5.js";
19
+ import "./chunk-KOO3J5PV.js";
20
+ import "./chunk-22TVSRQQ.js";
21
21
  import "./chunk-SSTLTIF3.js";
22
- import "./chunk-DVFHAY2J.js";
22
+ import "./chunk-NLZHVIOP.js";
23
23
  import "./chunk-QRTJNSKU.js";
24
24
  import "./chunk-NGP6LSV2.js";
25
- import "./chunk-GJS7CJRC.js";
25
+ import "./chunk-5CCXU2AW.js";
26
26
  import "./chunk-CVYC6DUW.js";
27
27
  import "./chunk-OPU3NYOO.js";
28
28
  import "./chunk-GJV3WDWM.js";
29
29
  import {
30
30
  gateway_exports
31
- } from "./chunk-ZHHBVPOX.js";
31
+ } from "./chunk-5D6MPWR7.js";
32
32
  import "./chunk-ORCCI2VV.js";
33
33
  import "./chunk-FLSASUV3.js";
34
- import "./chunk-JPTT22PI.js";
34
+ import "./chunk-ODFA7B2V.js";
35
35
  import "./chunk-ECSNSHZ7.js";
36
36
  import "./chunk-RJT7H2KR.js";
37
37
  import "./chunk-Q3V7K4ME.js";
38
38
  import "./chunk-N5RRQOAC.js";
39
39
  import "./chunk-FWFFZGSC.js";
40
40
  import "./chunk-ECGTESAP.js";
41
- import "./chunk-GEJAUWIZ.js";
42
- import "./chunk-D6TPR4BN.js";
43
- import "./chunk-F5WN7EQ2.js";
41
+ import "./chunk-A2ZUMF6L.js";
42
+ import "./chunk-XJZBSTL5.js";
43
+ import "./chunk-ZQML7EWE.js";
44
44
  import "./chunk-YGAAZN3E.js";
45
- import "./chunk-IRT55NLF.js";
45
+ import "./chunk-VC2DTK2X.js";
46
46
  import "./chunk-ONKIWA3R.js";
47
47
  import "./chunk-MP2AFCGL.js";
48
- import "./chunk-HH3MBGMJ.js";
48
+ import "./chunk-N7I2A667.js";
49
49
  import "./chunk-HYZV25LY.js";
50
- import "./chunk-TM2GZWIT.js";
50
+ import "./chunk-WUKHLCBE.js";
51
51
  import "./chunk-2I23RPSI.js";
52
- import "./chunk-D3X64YSB.js";
52
+ import "./chunk-2E43UXRH.js";
53
53
  import "./chunk-PNQDP3OA.js";
54
54
  import "./chunk-7HLWBYH7.js";
55
55
  import "./chunk-FXU7JOXK.js";
@@ -0,0 +1,298 @@
1
+ import {
2
+ resolvePackageRoot
3
+ } from "./chunk-CONHLVAR.js";
4
+ import "./chunk-GNHN5HRQ.js";
5
+ import {
6
+ EXE_HOOK_FILES,
7
+ textHasLegacySplitPostToolHook
8
+ } from "./chunk-L3TB7CC3.js";
9
+ import {
10
+ buildMcpHttpHeaders,
11
+ mcpHttpUrl
12
+ } from "./chunk-K6CAAMXF.js";
13
+ import "./chunk-N7I2A667.js";
14
+ import "./chunk-HYZV25LY.js";
15
+ import "./chunk-WUKHLCBE.js";
16
+ import "./chunk-2I23RPSI.js";
17
+ import "./chunk-2E43UXRH.js";
18
+ import "./chunk-PNQDP3OA.js";
19
+ import "./chunk-7HLWBYH7.js";
20
+ import "./chunk-FXU7JOXK.js";
21
+ import "./chunk-R36FAN53.js";
22
+ import "./chunk-LYH5HE24.js";
23
+ import "./chunk-MLKGABMK.js";
24
+
25
+ // src/adapters/opencode/installer.ts
26
+ import { readFile, writeFile, mkdir } from "fs/promises";
27
+ import { existsSync, readFileSync } from "fs";
28
+ import path from "path";
29
+ import os from "os";
30
+
31
+ // src/adapters/opencode/plugin-template.ts
32
+ var PLUGIN_TEMPLATE = `
33
+ import { spawn } from "node:child_process";
34
+ import { randomUUID } from "node:crypto";
35
+ import path from "node:path";
36
+
37
+ const PACKAGE_ROOT = "__PACKAGE_ROOT__";
38
+ const HOOKS_DIR = path.join(PACKAGE_ROOT, "dist", "hooks");
39
+
40
+ function hookPath(name) {
41
+ return path.join(HOOKS_DIR, name);
42
+ }
43
+
44
+ function getAgentEnv() {
45
+ return {
46
+ AGENT_ID: process.env.AGENT_ID || process.env.EXE_AGENT_ID || "default",
47
+ AGENT_ROLE: process.env.AGENT_ROLE || process.env.EXE_AGENT_ROLE || "employee",
48
+ EXE_OS_DIR: process.env.EXE_OS_DIR || path.join(process.env.HOME || "", ".exe-os"),
49
+ };
50
+ }
51
+
52
+ /**
53
+ * Spawn a hook script with JSON on stdin, return parsed stdout.
54
+ * Times out after the given ms. Returns null on failure.
55
+ */
56
+ function runHook(scriptName, payload, timeoutMs = 10000) {
57
+ return new Promise((resolve) => {
58
+ try {
59
+ const child = spawn("node", [hookPath(scriptName)], {
60
+ stdio: ["pipe", "pipe", "ignore"],
61
+ env: { ...process.env, ...getAgentEnv() },
62
+ timeout: timeoutMs,
63
+ });
64
+
65
+ let stdout = "";
66
+ child.stdout.on("data", (chunk) => { stdout += chunk; });
67
+ child.on("close", () => {
68
+ try {
69
+ resolve(stdout.trim() ? JSON.parse(stdout) : null);
70
+ } catch {
71
+ resolve(null);
72
+ }
73
+ });
74
+ child.on("error", () => resolve(null));
75
+
76
+ child.stdin.write(JSON.stringify(payload));
77
+ child.stdin.end();
78
+ } catch {
79
+ resolve(null);
80
+ }
81
+ });
82
+ }
83
+
84
+ /**
85
+ * Spawn a hook script fire-and-forget (detached, no stdout capture).
86
+ * Used for ingestion workers that do background DB writes.
87
+ */
88
+ function fireHook(scriptName, payload) {
89
+ try {
90
+ const child = spawn("node", [hookPath(scriptName)], {
91
+ detached: true,
92
+ stdio: ["pipe", "ignore", "ignore"],
93
+ env: { ...process.env, ...getAgentEnv() },
94
+ });
95
+ child.stdin.write(JSON.stringify(payload));
96
+ child.stdin.end();
97
+ child.unref();
98
+ } catch {
99
+ // Silent \u2014 hooks must never crash the host
100
+ }
101
+ }
102
+
103
+ export const ExeOsPlugin = async ({ project, directory }) => {
104
+ const cwd = directory || process.cwd();
105
+
106
+ return {
107
+ // --- Session start: inject memory brief ---
108
+ "session.created": async (input) => {
109
+ const payload = {
110
+ session_id: input?.sessionId || randomUUID(),
111
+ cwd,
112
+ hook_event_name: "SessionStart",
113
+ source: "startup",
114
+ model: input?.model || "unknown",
115
+ };
116
+ const result = await runHook("session-start.js", payload, 10000);
117
+ if (result?.hookSpecificOutput?.additionalContext) {
118
+ // Return context to be injected as system message
119
+ return result.hookSpecificOutput.additionalContext;
120
+ }
121
+ },
122
+
123
+ // --- Pre tool use: safety checks ---
124
+ "tool.execute.before": async (input, output) => {
125
+ const toolName = input?.metadata?.name || input?.tool || "unknown";
126
+ const payload = {
127
+ session_id: input?.sessionId || "opencode",
128
+ cwd,
129
+ hook_event_name: "PreToolUse",
130
+ tool_name: toolName,
131
+ tool_input: output?.args || input?.args || {},
132
+ tool_use_id: input?.toolUseId || randomUUID(),
133
+ transcript_path: "",
134
+ permission_mode: "dangerously-skip-permissions",
135
+ };
136
+ const result = await runHook("pre-tool-use.js", payload, 5000);
137
+ if (result?.hookSpecificOutput?.permissionDecision === "deny") {
138
+ // Block the tool call
139
+ output.denied = true;
140
+ output.reason = result.hookSpecificOutput.permissionDecisionReason || "Blocked by exe-os";
141
+ }
142
+ },
143
+
144
+ // --- Post tool use: memory ingestion + error recall ---
145
+ "tool.execute.after": async (input) => {
146
+ const toolName = input?.metadata?.name || input?.tool || "unknown";
147
+ const payload = {
148
+ session_id: input?.sessionId || "opencode",
149
+ cwd,
150
+ hook_event_name: "PostToolUse",
151
+ tool_name: toolName,
152
+ tool_input: input?.args || {},
153
+ tool_response: input?.result || {},
154
+ tool_use_id: input?.toolUseId || randomUUID(),
155
+ transcript_path: "",
156
+ permission_mode: "dangerously-skip-permissions",
157
+ };
158
+
159
+ // Combined hook: runs memory ingestion + error recall in the same
160
+ // orchestrator used by Claude Code and Codex. This prevents duplicate
161
+ // PostToolUse pipelines and keeps error-recall output formatting in one
162
+ // place.
163
+ const result = await runHook("post-tool-combined.js", payload, 10000);
164
+ if (result?.hookSpecificOutput?.additionalContext) {
165
+ return result.hookSpecificOutput.additionalContext;
166
+ }
167
+ },
168
+
169
+ // --- Message updated: entity boost ---
170
+ "message.updated": async (input) => {
171
+ // Only fire for user messages (prompts), not assistant responses
172
+ const role = input?.message?.role || input?.role;
173
+ if (role !== "user") return;
174
+
175
+ const prompt = input?.message?.content || input?.content || "";
176
+ if (typeof prompt !== "string" || prompt.length < 10) return;
177
+
178
+ const payload = {
179
+ session_id: input?.sessionId || "opencode",
180
+ cwd,
181
+ hook_event_name: "UserPromptSubmit",
182
+ prompt,
183
+ };
184
+ const result = await runHook("prompt-submit.js", payload, 5000);
185
+ if (result?.hookSpecificOutput?.additionalContext) {
186
+ return result.hookSpecificOutput.additionalContext;
187
+ }
188
+ },
189
+
190
+ // --- Session idle: capture response ---
191
+ "session.idle": async (input) => {
192
+ const lastMessage = input?.lastMessage || input?.message || "";
193
+ if (typeof lastMessage !== "string" || lastMessage.length < 100) return;
194
+
195
+ const payload = {
196
+ session_id: input?.sessionId || "opencode",
197
+ cwd,
198
+ hook_event_name: "Stop",
199
+ last_assistant_message: lastMessage,
200
+ stop_hook_active: true,
201
+ transcript_path: "",
202
+ };
203
+ fireHook("stop.js", payload);
204
+ },
205
+ };
206
+ };
207
+ `;
208
+
209
+ // src/adapters/opencode/installer.ts
210
+ async function registerOpenCodeMcp(packageRoot, homeDir = os.homedir()) {
211
+ void packageRoot;
212
+ const configDir = path.join(homeDir, ".config", "opencode");
213
+ const configPath = path.join(configDir, "opencode.json");
214
+ await mkdir(configDir, { recursive: true });
215
+ let config = {};
216
+ if (existsSync(configPath)) {
217
+ try {
218
+ config = JSON.parse(await readFile(configPath, "utf-8"));
219
+ } catch {
220
+ config = {};
221
+ }
222
+ }
223
+ if (!config.mcp) {
224
+ config.mcp = {};
225
+ }
226
+ const newEntry = {
227
+ type: "remote",
228
+ url: mcpHttpUrl(),
229
+ headers: buildMcpHttpHeaders(homeDir),
230
+ enabled: true
231
+ };
232
+ const current = config.mcp["exe-os"];
233
+ if (current && JSON.stringify(current) === JSON.stringify(newEntry)) {
234
+ return false;
235
+ }
236
+ config.mcp["exe-os"] = newEntry;
237
+ if (!config.$schema) {
238
+ config.$schema = "https://opencode.ai/config.json";
239
+ }
240
+ await writeFile(configPath, JSON.stringify(config, null, 2) + "\n");
241
+ return true;
242
+ }
243
+ async function installOpenCodePlugin(packageRoot, homeDir = os.homedir()) {
244
+ const pluginDir = path.join(homeDir, ".config", "opencode", "plugins");
245
+ const pluginPath = path.join(pluginDir, "exe-os.mjs");
246
+ await mkdir(pluginDir, { recursive: true });
247
+ const pluginContent = PLUGIN_TEMPLATE.replace(
248
+ /__PACKAGE_ROOT__/g,
249
+ packageRoot.replace(/\\/g, "\\\\")
250
+ );
251
+ if (existsSync(pluginPath)) {
252
+ const existing = await readFile(pluginPath, "utf-8");
253
+ if (existing === pluginContent) {
254
+ return false;
255
+ }
256
+ }
257
+ await writeFile(pluginPath, pluginContent);
258
+ return true;
259
+ }
260
+ function verifyOpenCodeHooks(homeDir = os.homedir()) {
261
+ const configPath = path.join(homeDir, ".config", "opencode", "opencode.json");
262
+ const pluginPath = path.join(homeDir, ".config", "opencode", "plugins", "exe-os.mjs");
263
+ if (!existsSync(configPath)) return false;
264
+ try {
265
+ const config = JSON.parse(readFileSync(configPath, "utf-8"));
266
+ if (!config.mcp?.["exe-os"]?.enabled) return false;
267
+ } catch {
268
+ return false;
269
+ }
270
+ if (!existsSync(pluginPath)) return false;
271
+ try {
272
+ const plugin = readFileSync(pluginPath, "utf-8");
273
+ if (!plugin.includes(EXE_HOOK_FILES.postToolCombined)) return false;
274
+ if (textHasLegacySplitPostToolHook(plugin)) return false;
275
+ } catch {
276
+ return false;
277
+ }
278
+ return true;
279
+ }
280
+ async function runOpenCodeInstaller(homeDir) {
281
+ const packageRoot = resolvePackageRoot();
282
+ const mcpChanged = await registerOpenCodeMcp(packageRoot, homeDir);
283
+ process.stderr.write(
284
+ `[exe-os] OpenCode MCP: ${mcpChanged ? "registered" : "already registered"}
285
+ `
286
+ );
287
+ const pluginChanged = await installOpenCodePlugin(packageRoot, homeDir);
288
+ process.stderr.write(
289
+ `[exe-os] OpenCode plugin: ${pluginChanged ? "installed" : "already installed"}
290
+ `
291
+ );
292
+ }
293
+ export {
294
+ installOpenCodePlugin,
295
+ registerOpenCodeMcp,
296
+ runOpenCodeInstaller,
297
+ verifyOpenCodeHooks
298
+ };