@askexenow/exe-os 0.9.365 → 0.9.368

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 (357) hide show
  1. package/deploy/compose/.env.askexe-control-plane.example +3 -1
  2. package/deploy/compose/.env.customer.example +6 -2
  3. package/deploy/compose/.env.example +8 -2
  4. package/deploy/compose/docker-compose.yml +21 -2
  5. package/deploy/compose/generate-env.ts +21 -1
  6. package/dist/.dist-verified.json +3 -3
  7. package/dist/{active-agent-MGF7J3HB.js → active-agent-6WNC756A.js} +3 -3
  8. package/dist/{active-agent-C6DPH43L.js → active-agent-RDTJGZHP.js} +3 -3
  9. package/dist/{agent-defs-generator-X7TVMPVB.js → agent-defs-generator-M5AUL3WM.js} +2 -2
  10. package/dist/agent-heartbeat-CQPGJIFF.js +13 -0
  11. package/dist/{agent-loop-E7RZCFDB.js → agent-loop-FOK2IRZQ.js} +1 -1
  12. package/dist/{agentic-ontology-CARDCG37.js → agentic-ontology-ZJBRYETW.js} +1 -1
  13. package/dist/{backfill-metadata-ANCJA6LA.js → backfill-metadata-Q4X23XLR.js} +5 -5
  14. package/dist/{backup-verify-F7BHVEF7.js → backup-verify-UKLX6IEK.js} +1 -1
  15. package/dist/behavior-injection-C3HEKSJY.js +60 -0
  16. package/dist/{behaviors-R2IE3PEN.js → behaviors-UCMAREU3.js} +8 -6
  17. package/dist/bin/agentic-ontology-backfill.js +6 -6
  18. package/dist/bin/agentic-reflection-backfill.js +7 -7
  19. package/dist/bin/agentic-semantic-label.js +6 -6
  20. package/dist/bin/backfill-conversations.js +5 -5
  21. package/dist/bin/backfill-responses.js +5 -5
  22. package/dist/bin/backfill-vectors.js +6 -6
  23. package/dist/bin/bulk-sync-postgres.js +10 -10
  24. package/dist/bin/cc-doctor.js +5 -5
  25. package/dist/bin/cleanup-stale-review-tasks.js +15 -14
  26. package/dist/bin/cli.js +20 -20
  27. package/dist/bin/deferred-daemon-restart.js +88 -83
  28. package/dist/bin/exe-agent-config.js +2 -2
  29. package/dist/bin/exe-agent.js +252 -14
  30. package/dist/bin/exe-assign.js +6 -6
  31. package/dist/bin/exe-boot.js +33 -31
  32. package/dist/bin/exe-call.js +4 -4
  33. package/dist/bin/exe-cloud.js +11 -11
  34. package/dist/bin/exe-config-dump.js +2 -2
  35. package/dist/bin/exe-dispatch.js +16 -15
  36. package/dist/bin/exe-doctor.js +6 -6
  37. package/dist/bin/exe-export-behaviors.js +10 -8
  38. package/dist/bin/exe-forget.js +7 -7
  39. package/dist/bin/exe-gateway.js +7 -7
  40. package/dist/bin/exe-healthcheck.js +5 -5
  41. package/dist/bin/exe-heartbeat.js +18 -17
  42. package/dist/bin/exe-kill.js +19 -18
  43. package/dist/bin/exe-launch-agent.js +25 -23
  44. package/dist/bin/exe-mcp.js +3 -3
  45. package/dist/bin/exe-memory-reads.js +5 -5
  46. package/dist/bin/exe-new-employee.js +8 -8
  47. package/dist/bin/exe-os-mcp-proxy.js +3 -3
  48. package/dist/bin/exe-pending-messages.js +16 -15
  49. package/dist/bin/exe-pending-notifications.js +15 -14
  50. package/dist/bin/exe-pending-reviews.js +15 -14
  51. package/dist/bin/exe-rename.js +4 -4
  52. package/dist/bin/exe-review.js +18 -17
  53. package/dist/bin/exe-search.js +6 -6
  54. package/dist/bin/exe-session-cleanup.js +20 -18
  55. package/dist/bin/exe-settings.js +10 -10
  56. package/dist/bin/exe-start-codex.js +81 -19
  57. package/dist/bin/exe-start-opencode.js +11 -9
  58. package/dist/bin/exe-status.js +17 -16
  59. package/dist/bin/exe-support.js +3 -3
  60. package/dist/bin/exe-team.js +4 -4
  61. package/dist/bin/exe-verify-running-images.js +123 -4
  62. package/dist/bin/exe-watchdog.js +44 -3
  63. package/dist/bin/git-sweep.js +25 -15
  64. package/dist/bin/graph-backfill.js +7 -7
  65. package/dist/bin/graph-export.js +6 -6
  66. package/dist/bin/import-history.js +10 -10
  67. package/dist/bin/install.js +90 -85
  68. package/dist/bin/intercom-check.js +4 -4
  69. package/dist/bin/mcp-sessions.js +2 -2
  70. package/dist/bin/orchestration-metrics.js +4 -4
  71. package/dist/bin/postgres-agentic-reflection-backfill.js +4 -4
  72. package/dist/bin/postgres-agentic-semantic-backfill.js +4 -4
  73. package/dist/bin/reconcile-backlog.js +47 -6
  74. package/dist/bin/registry-proxy.js +1 -1
  75. package/dist/bin/scan-tasks.js +15 -14
  76. package/dist/bin/setup.js +1 -1
  77. package/dist/bin/shard-migrate.js +5 -5
  78. package/dist/bin/stack-update.js +35 -6
  79. package/dist/bin/verify-stack.js +11 -1
  80. package/dist/bin/vps-health-gate.js +1 -1
  81. package/dist/{boot-generation-X45BSVZY.js → boot-generation-7H7Y4KC2.js} +3 -3
  82. package/dist/{boot-review-sections-OBVRXXSF.js → boot-review-sections-4AGCECCP.js} +14 -13
  83. package/dist/build-manifest.json +910 -845
  84. package/dist/{capability-cards-57FURUMR.js → capability-cards-6KAC5D2Z.js} +2 -2
  85. package/dist/{capacity-monitor-QEL62JDO.js → capacity-monitor-J2Y4SFLA.js} +16 -15
  86. package/dist/{catchup-brief-PMXTCASA.js → catchup-brief-F2HKF2CU.js} +19 -18
  87. package/dist/{chunk-5CBGH6RA.js → chunk-2AS6FG6C.js} +3 -3
  88. package/dist/{chunk-TO6TB75E.js → chunk-2UBMXN4D.js} +2 -2
  89. package/dist/{chunk-J6I7X272.js → chunk-2UGU3V63.js} +1 -1
  90. package/dist/{chunk-45EQTS7B.js → chunk-34BMZTWV.js} +1 -1
  91. package/dist/{chunk-JYFYIGYK.js → chunk-4DGIOK6T.js} +1 -1
  92. package/dist/{chunk-T6S45OLV.js → chunk-4GVJIMMK.js} +12 -6
  93. package/dist/{chunk-IXEFO6HD.js → chunk-4L732DE5.js} +3 -3
  94. package/dist/{chunk-MXEIZUXG.js → chunk-4RRMZJLG.js} +1 -1
  95. package/dist/{chunk-3JNVB5LG.js → chunk-5IVLOOJR.js} +1 -1
  96. package/dist/chunk-5YKNEL3W.js +356 -0
  97. package/dist/{chunk-EMZHB767.js → chunk-6EXOW5ZA.js} +9 -9
  98. package/dist/{chunk-6Q263OZE.js → chunk-6P7DVFKA.js} +1 -1
  99. package/dist/{chunk-ZDUO6QBH.js → chunk-6UZ3DEQI.js} +1 -1
  100. package/dist/{chunk-DJK45U7B.js → chunk-72JZQ7EV.js} +1 -1
  101. package/dist/{chunk-22YQBVMO.js → chunk-72QUZX6J.js} +4 -4
  102. package/dist/{chunk-DYWGIPVP.js → chunk-AAL6CDMQ.js} +7 -7
  103. package/dist/{chunk-E6ORBQHP.js → chunk-AAMGHW5W.js} +1 -0
  104. package/dist/{chunk-EJ4522YM.js → chunk-AJGX4Z34.js} +1 -1
  105. package/dist/{chunk-M7EES2KM.js → chunk-BEPO36MW.js} +3 -3
  106. package/dist/{chunk-WR75WUEP.js → chunk-BFL3UB77.js} +1 -1
  107. package/dist/{chunk-NV6A5HDN.js → chunk-BFPQXPN3.js} +1 -1
  108. package/dist/{chunk-VGE6IHZB.js → chunk-BJKC6ZJU.js} +110 -86
  109. package/dist/{chunk-R7RM766N.js → chunk-BLNSUBP3.js} +3 -3
  110. package/dist/{chunk-52TIQJEQ.js → chunk-BNDHQGOY.js} +1 -1
  111. package/dist/{chunk-QYJANQWC.js → chunk-BPQWRR4H.js} +2 -2
  112. package/dist/{chunk-ANPE3TT3.js → chunk-BTGR55GX.js} +3 -3
  113. package/dist/chunk-BTSWFMEH.js +14 -0
  114. package/dist/{chunk-OPNROU5B.js → chunk-C4IJ5IS5.js} +1 -1
  115. package/dist/{chunk-BEHLIRRJ.js → chunk-C5FOA5GO.js} +14 -3
  116. package/dist/{chunk-EHHMNKOA.js → chunk-CSBD7QLZ.js} +1 -1
  117. package/dist/{chunk-EKVTRI3N.js → chunk-CU2OUUSV.js} +27 -6
  118. package/dist/{chunk-P47MPWNU.js → chunk-CXHRNESJ.js} +1 -1
  119. package/dist/{chunk-F2S3M5MB.js → chunk-DRMGPZSC.js} +2 -2
  120. package/dist/{chunk-KRUYQFSH.js → chunk-DYPKSVB7.js} +5 -5
  121. package/dist/{chunk-KSVLBATT.js → chunk-E5QQZDQN.js} +53 -0
  122. package/dist/{chunk-ODBRU6BF.js → chunk-EDB3LXBQ.js} +1542 -984
  123. package/dist/{chunk-IIZITKBV.js → chunk-EDRXCUEP.js} +4 -4
  124. package/dist/{chunk-4QKKLK3C.js → chunk-ELY5WBZX.js} +10 -10
  125. package/dist/{chunk-MPQXQ5IE.js → chunk-EZUSIF66.js} +1 -1
  126. package/dist/{chunk-DEFSN2FQ.js → chunk-FHYX64H3.js} +3 -3
  127. package/dist/{chunk-YMJOLEPE.js → chunk-FSALI4B7.js} +4 -4
  128. package/dist/{chunk-6GQYPJPG.js → chunk-FWKTZURC.js} +8 -8
  129. package/dist/{chunk-EWZYFG5Q.js → chunk-FWVPGXHD.js} +5 -5
  130. package/dist/{chunk-DWAQOEXL.js → chunk-GILYOIMP.js} +2 -2
  131. package/dist/{chunk-RZIKSE6N.js → chunk-GP3J3AOT.js} +4 -4
  132. package/dist/{chunk-LHOKWZKL.js → chunk-H6J7N3BZ.js} +1 -1
  133. package/dist/{chunk-EVPBYX2Z.js → chunk-HQSUXAB4.js} +1 -1
  134. package/dist/{chunk-IM2I7OOS.js → chunk-HTLJHSN4.js} +1 -1
  135. package/dist/{chunk-JUOZLXLH.js → chunk-HXV3DGL7.js} +1 -1
  136. package/dist/{chunk-OFGFRT5J.js → chunk-IEE6X6R2.js} +1 -1
  137. package/dist/{chunk-SP37DONS.js → chunk-IKRIUEIF.js} +1 -1
  138. package/dist/{chunk-RHX6MNWY.js → chunk-J44774XC.js} +1 -1
  139. package/dist/{chunk-7C4FUNVO.js → chunk-J77ZIMH5.js} +5 -5
  140. package/dist/{chunk-NO3M2AFM.js → chunk-JDPV7W2L.js} +1 -1
  141. package/dist/{chunk-FXPAUDCZ.js → chunk-KGPWS4KE.js} +1 -1
  142. package/dist/{chunk-L3TB7CC3.js → chunk-KM6XSFHP.js} +12 -2
  143. package/dist/{chunk-ZEKCHV43.js → chunk-KWQ7RHYD.js} +4 -4
  144. package/dist/{chunk-QFIVK3G5.js → chunk-KYVIV54Y.js} +1 -1
  145. package/dist/chunk-KZXMP6JG.js +319 -0
  146. package/dist/{chunk-AGQAGOQN.js → chunk-LJWCK2DR.js} +9 -9
  147. package/dist/{chunk-O2MEBF23.js → chunk-MCXYNYZI.js} +30 -2
  148. package/dist/{chunk-L2VZBPJJ.js → chunk-MWEIBVBS.js} +13 -1
  149. package/dist/{chunk-RVWALVDT.js → chunk-MXP27XTP.js} +2 -2
  150. package/dist/{chunk-DQ5KHWFD.js → chunk-N3CGSO3S.js} +1 -1
  151. package/dist/{chunk-ZNEBZCZR.js → chunk-NNXPIJRB.js} +1 -1
  152. package/dist/{chunk-MZJBUAC3.js → chunk-NWE3CFX7.js} +4 -4
  153. package/dist/{chunk-BRLS5OLZ.js → chunk-OBESOWFJ.js} +35 -4
  154. package/dist/{chunk-5KLQCGI5.js → chunk-OL3QP3AU.js} +171 -1
  155. package/dist/{chunk-ESTR7QUP.js → chunk-P3PAD6AA.js} +1 -1
  156. package/dist/{chunk-2FYIMTQE.js → chunk-PGF5I7EV.js} +2 -2
  157. package/dist/{agent-heartbeat-I5UPGXAU.js → chunk-PHUHIVD5.js} +4 -5
  158. package/dist/{chunk-C3UAQ3JG.js → chunk-PVWM2WMM.js} +1 -1
  159. package/dist/{chunk-EWCEUO65.js → chunk-QCSAYYL6.js} +1 -1
  160. package/dist/{chunk-SBAU735L.js → chunk-QE5KWKVU.js} +27 -6
  161. package/dist/{chunk-LZKYVMBY.js → chunk-QKZEUCTS.js} +2 -2
  162. package/dist/{chunk-POPRJKAY.js → chunk-QS6HI4B6.js} +6 -0
  163. package/dist/{chunk-JNVQGLPX.js → chunk-QT6CNCXO.js} +3 -3
  164. package/dist/{chunk-J4U5Z7VX.js → chunk-QZYYCPNL.js} +4 -4
  165. package/dist/{chunk-RD4E5G3B.js → chunk-RDIZSXXD.js} +1 -1
  166. package/dist/{chunk-2RQT7TED.js → chunk-RFWOXKVL.js} +55 -3
  167. package/dist/chunk-S2YTU74T.js +76 -0
  168. package/dist/{chunk-X6A2VWVJ.js → chunk-TP7BFVQP.js} +2 -2
  169. package/dist/{chunk-CKG6CVKI.js → chunk-TTJWPV4G.js} +1 -1
  170. package/dist/chunk-TX3Q2GIL.js +97 -0
  171. package/dist/{chunk-Q7BU5Q6I.js → chunk-UATT6BNO.js} +3 -3
  172. package/dist/{chunk-PPGPCWRC.js → chunk-UVM5ZXO2.js} +4 -4
  173. package/dist/{chunk-BATQKSLI.js → chunk-V7E37GE3.js} +2 -2
  174. package/dist/{chunk-U373MEF5.js → chunk-VD3CVNGB.js} +3 -3
  175. package/dist/{chunk-ZSZPMUNX.js → chunk-VIW62NN5.js} +126 -7
  176. package/dist/{chunk-EPNWEOOE.js → chunk-VTOO5UB3.js} +10 -10
  177. package/dist/chunk-W5MCOZTW.js +304 -0
  178. package/dist/{chunk-2ESB5SDP.js → chunk-WJOJWRN5.js} +139 -33
  179. package/dist/{chunk-CPILYY2K.js → chunk-X4MRVNR3.js} +1 -1
  180. package/dist/{chunk-EPDNWY5P.js → chunk-XBTQPQN7.js} +1 -1
  181. package/dist/{behavior-injection-XQ4B7DCF.js → chunk-XOTDAKJL.js} +24 -38
  182. package/dist/{chunk-ORNCMRIX.js → chunk-Y4AYNLXU.js} +31 -37
  183. package/dist/{chunk-WYLFDSIE.js → chunk-YGPJ7VSJ.js} +48 -10
  184. package/dist/{chunk-ZRKEUCUZ.js → chunk-ZR3VMM3X.js} +12 -10
  185. package/dist/{chunk-JITNFE4W.js → chunk-ZWONQU5S.js} +1 -1
  186. package/dist/{cleanup-graph-garbage-CAA625RJ.js → cleanup-graph-garbage-FBSQI33K.js} +8 -8
  187. package/dist/{cloud-sync-command-DBB7WRHL.js → cloud-sync-command-NHGVDTLM.js} +11 -3
  188. package/dist/{cloud-sync-db-init-V7IB23W5.js → cloud-sync-db-init-I75VOTXC.js} +1 -1
  189. package/dist/{cloud-sync-shutdown-2D3B73CJ.js → cloud-sync-shutdown-JGOFGGET.js} +2 -2
  190. package/dist/{cloud-sync-state-5DFKLWNB.js → cloud-sync-state-QF3TMMJ4.js} +3 -1
  191. package/dist/{co-activation-JVN7EBS6.js → co-activation-AE5L2SJV.js} +2 -2
  192. package/dist/{co-occurrence-526PTFGT.js → co-occurrence-O65D4SCN.js} +6 -6
  193. package/dist/codex-consolidation-PPXNBXCV.js +96 -0
  194. package/dist/{conversation-entity-extractor-JO56DB2E.js → conversation-entity-extractor-LFIDTD2O.js} +4 -4
  195. package/dist/{crdt-sync-LIJLZKFE.js → crdt-sync-NRWDBRSE.js} +1 -1
  196. package/dist/{crm-webhook-55F7Y6D2.js → crm-webhook-XOQGX6DV.js} +2 -2
  197. package/dist/{cto-delegation-gate-QIYV4KFO.js → cto-delegation-gate-ZGOAXQI2.js} +14 -13
  198. package/dist/{daemon-orchestration-Q3GJA2JJ.js → daemon-orchestration-ZMQWYYDT.js} +19 -18
  199. package/dist/dispatch-intent-journal-VV6HMZC4.js +17 -0
  200. package/dist/{doc-graph-extractor-P46R4QME.js → doc-graph-extractor-6C5JBKPP.js} +6 -6
  201. package/dist/{documents-7KFEREWO.js → documents-FKSQGSO4.js} +6 -6
  202. package/dist/{dreaming-JMUXBAPU.js → dreaming-IB3H6NDZ.js} +18 -17
  203. package/dist/{employee-boot-brief-HN63D2BY.js → employee-boot-brief-5YRTUEJH.js} +25 -21
  204. package/dist/{exe-drift-7J7GX7DP.js → exe-drift-CUWUYX3O.js} +3 -3
  205. package/dist/{exe-export-KJ7B2OBU.js → exe-export-XWENYJNM.js} +7 -7
  206. package/dist/{exe-import-HPZDWKGE.js → exe-import-OWOMRF2S.js} +7 -7
  207. package/dist/{exe-key-2PREP464.js → exe-key-P356FGK5.js} +88 -83
  208. package/dist/{exe-org-VEIISATF.js → exe-org-UKIVF3KE.js} +8 -8
  209. package/dist/{exe-snapshot-JXQFLUKA.js → exe-snapshot-AZI2WW5Y.js} +19 -18
  210. package/dist/{fast-db-init-SCXJXOYX.js → fast-db-init-FPAPF3GB.js} +1 -1
  211. package/dist/{founder-context-U2SZPLYV.js → founder-context-QTQ6V3B5.js} +2 -2
  212. package/dist/gateway/index.js +11 -11
  213. package/dist/{git-staleness-S4NDR7NX.js → git-staleness-6ACWLV5Q.js} +2 -2
  214. package/dist/{global-procedures-ZOFTOXIR.js → global-procedures-RXIKBVLZ.js} +3 -3
  215. package/dist/{graph-auto-extract-CLVTSUSB.js → graph-auto-extract-Q4A4QMOF.js} +6 -6
  216. package/dist/{graph-rag-LSJLWGXV.js → graph-rag-RLRQMY54.js} +4 -4
  217. package/dist/{hook-integrity-SGTKBL6W.js → hook-integrity-3X2JRLBM.js} +1 -1
  218. package/dist/{hook-prefetch-BDSLB6F4.js → hook-prefetch-DU44UZQP.js} +15 -14
  219. package/dist/hooks/bug-report-worker.js +19 -18
  220. package/dist/hooks/codex-stop-task-finalizer.js +20 -19
  221. package/dist/hooks/commit-complete.js +35 -19
  222. package/dist/hooks/error-recall.js +8 -8
  223. package/dist/hooks/exe-heartbeat-hook.js +4 -4
  224. package/dist/hooks/ingest-worker.js +2 -2
  225. package/dist/hooks/ingest.js +11 -11
  226. package/dist/hooks/instructions-loaded.js +5 -5
  227. package/dist/hooks/manifest.json +20 -20
  228. package/dist/hooks/notification.js +5 -5
  229. package/dist/hooks/post-compact.js +4 -4
  230. package/dist/hooks/post-tool-combined.js +12 -12
  231. package/dist/hooks/pre-compact.js +18 -17
  232. package/dist/hooks/pre-tool-use.js +86 -34
  233. package/dist/hooks/prompt-submit.js +36 -31
  234. package/dist/hooks/session-end.js +114 -100
  235. package/dist/hooks/session-start.js +16 -16
  236. package/dist/hooks/stop.js +83 -20
  237. package/dist/hooks/subagent-stop.js +19 -18
  238. package/dist/hooks/summary-worker.js +23 -22
  239. package/dist/index.js +27 -26
  240. package/dist/{installer-RC2JCKSE.js → installer-B7QYQE56.js} +8 -6
  241. package/dist/{installer-EA7T3PBD.js → installer-EXR25DDG.js} +6 -6
  242. package/dist/{installer-KCEM4RCG.js → installer-TOPA7673.js} +152 -8
  243. package/dist/{intercom-queue-6DZPHHQ2.js → intercom-queue-BZ4M3L4S.js} +14 -13
  244. package/dist/lib/cloud-sync.js +10 -10
  245. package/dist/lib/consolidation.js +8 -8
  246. package/dist/lib/database.js +2 -2
  247. package/dist/lib/db-backup.js +1 -1
  248. package/dist/lib/db-write-worker.js +3 -3
  249. package/dist/lib/db.js +2 -2
  250. package/dist/lib/delivery-truth.js +25 -0
  251. package/dist/lib/device-registry.js +1 -1
  252. package/dist/lib/employee-templates.js +4 -4
  253. package/dist/lib/employees.js +2 -2
  254. package/dist/lib/exe-daemon.js +185 -79
  255. package/dist/lib/hybrid-search.js +6 -6
  256. package/dist/lib/identity.js +2 -2
  257. package/dist/lib/license.js +2 -2
  258. package/dist/lib/messaging.js +15 -14
  259. package/dist/lib/registry-proxy.js +1 -1
  260. package/dist/lib/reminders.js +3 -3
  261. package/dist/lib/schedules.js +6 -6
  262. package/dist/lib/session-registry.js +4 -4
  263. package/dist/lib/skill-learning.js +7 -7
  264. package/dist/lib/status-brief.js +2 -1
  265. package/dist/lib/store.js +5 -5
  266. package/dist/lib/task-router.js +3 -3
  267. package/dist/lib/tasks.js +16 -15
  268. package/dist/lib/tmux-routing.js +14 -13
  269. package/dist/lib/token-spend.js +3 -3
  270. package/dist/{license-gate-HMSMUIAU.js → license-gate-YTIOLKVV.js} +3 -3
  271. package/dist/{license-sync-FBCMPC4J.js → license-sync-5VE5OSTV.js} +2 -2
  272. package/dist/mcp/register-tools.js +87 -82
  273. package/dist/mcp/server.js +90 -85
  274. package/dist/mcp/tools/complete-reminder.js +4 -4
  275. package/dist/mcp/tools/create-reminder.js +4 -4
  276. package/dist/mcp/tools/create-task.js +26 -23
  277. package/dist/mcp/tools/deactivate-behavior.js +8 -8
  278. package/dist/mcp/tools/list-reminders.js +4 -4
  279. package/dist/mcp/tools/list-tasks.js +18 -17
  280. package/dist/mcp/tools/send-message.js +17 -16
  281. package/dist/mcp/tools/update-task.js +17 -16
  282. package/dist/{mcp-http-config-YKJN52HG.js → mcp-http-config-XUNRIGQH.js} +3 -3
  283. package/dist/{mcp-session-identity-QLUVYWPR.js → mcp-session-identity-4UIG7KLK.js} +14 -13
  284. package/dist/{memory-cards-K2OSX4AW.js → memory-cards-R74YU4CO.js} +5 -5
  285. package/dist/{memory-graph-extractor-YLTSKLSY.js → memory-graph-extractor-3B4QJUXI.js} +7 -7
  286. package/dist/{memory-poisoning-defense-IPO4ADRL.js → memory-poisoning-defense-OAKFL5O2.js} +2 -2
  287. package/dist/{memory-pressure-watchdog-ZI3TH2OF.js → memory-pressure-watchdog-FFC2CHFJ.js} +15 -14
  288. package/dist/{memory-reflection-ZKVRU3NT.js → memory-reflection-5IJ6RE2J.js} +2 -2
  289. package/dist/{notification-ledger-4REL6M3T.js → notification-ledger-P5XBUYKO.js} +17 -15
  290. package/dist/{notifications-UXJUAP3C.js → notifications-LLCCHRYV.js} +14 -13
  291. package/dist/{orchestration-events-GMRGGBMN.js → orchestration-events-VBGCIQSS.js} +3 -3
  292. package/dist/{orchestrator-5TV75HDJ.js → orchestrator-EB3SCTAJ.js} +16 -15
  293. package/dist/{org-brief-session-7AZZEO3F.js → org-brief-session-GDCDKBFF.js} +6 -6
  294. package/dist/{org-consent-policy-XT6UZENB.js → org-consent-policy-HCD42NBN.js} +2 -2
  295. package/dist/{org-partner-runtime-WLZAZJIY.js → org-partner-runtime-TPVKFR6E.js} +6 -6
  296. package/dist/{org-row-visibility-A5XM4MVO.js → org-row-visibility-ZZLOPZLH.js} +1 -1
  297. package/dist/{pipeline-router-UEVXDUHR.js → pipeline-router-3JTL2KF6.js} +3 -3
  298. package/dist/{plan-limits-QEP32X4W.js → plan-limits-MTHRP4WY.js} +5 -5
  299. package/dist/{projection-worker-GMRC6SBH.js → projection-worker-FLASNERC.js} +2 -2
  300. package/dist/{prospective-memory-QLHSAPSG.js → prospective-memory-HI3WUY4U.js} +2 -2
  301. package/dist/{push-notifications-GKRPXOGI.js → push-notifications-DFSR6P7V.js} +15 -14
  302. package/dist/{reranker-GB4VEMUV.js → reranker-XHBKUDGG.js} +1 -1
  303. package/dist/{retrieval-health-QIBPBGN6.js → retrieval-health-NYKSDS6M.js} +1 -1
  304. package/dist/{review-polling-MU47NQ2N.js → review-polling-UAV6DZIZ.js} +15 -14
  305. package/dist/runtime/index.js +23 -22
  306. package/dist/{session-events-YMQ3VGBJ.js → session-events-YCYPLWPG.js} +15 -14
  307. package/dist/{session-kill-telemetry-VGPKE57M.js → session-kill-telemetry-UEJTHL65.js} +15 -14
  308. package/dist/{session-scope-P46KAHXQ.js → session-scope-LXDW7LJJ.js} +14 -13
  309. package/dist/{setup-wizard-BRNHSJ4U.js → setup-wizard-OVJQYUUL.js} +1 -1
  310. package/dist/{skill-refinement-NLYDSFEH.js → skill-refinement-EWRJID73.js} +3 -3
  311. package/dist/{stack-promote-NHFTNIM2.js → stack-promote-4IJM36OG.js} +5 -4
  312. package/dist/{stack-release-AQVKZUS7.js → stack-release-BAIRY65H.js} +5 -4
  313. package/dist/{stack-update-LLX5KT7G.js → stack-update-VDM5WXRS.js} +10 -3
  314. package/dist/stalled-dispatch-escalation-MHLYH2PT.js +80 -0
  315. package/dist/{steward-gate-JKHYFAHA.js → steward-gate-Y4N2XY3R.js} +3 -3
  316. package/dist/{subagent-brief-injection-VDVOHDOU.js → subagent-brief-injection-7A6JEVTP.js} +22 -20
  317. package/dist/{support-inbox-S6YO5YZU.js → support-inbox-LT4WJECQ.js} +4 -3
  318. package/dist/{task-enforcement-LXW45H5Z.js → task-enforcement-WOIZ5TLK.js} +15 -14
  319. package/dist/{task-request-inbox-UCSKDC3R.js → task-request-inbox-D65BPUKZ.js} +2 -2
  320. package/dist/{task-scope-GDLFE26E.js → task-scope-PQ67YRWP.js} +18 -16
  321. package/dist/{tasks-crud-W7VGWRUV.js → tasks-crud-TJNMUKKH.js} +14 -13
  322. package/dist/{tasks-notify-CT7NWCS4.js → tasks-notify-7UVC3VGI.js} +15 -14
  323. package/dist/{tasks-review-WCSKOUFW.js → tasks-review-WDWYISZ2.js} +14 -13
  324. package/dist/{telemetry-upload-FK5WKXVB.js → telemetry-upload-6LBGRJUE.js} +7 -7
  325. package/dist/{token-budget-GBNGSIU3.js → token-budget-XO5XW6DL.js} +3 -3
  326. package/dist/{tool-gates-3IC7DK4R.js → tool-gates-2OZY3GZM.js} +1 -1
  327. package/dist/{tool-gates-GXSYBVK4.js → tool-gates-7PLIOLAL.js} +1 -1
  328. package/dist/{tool-telemetry-VKMRS6MP.js → tool-telemetry-ZL6TTZWG.js} +1 -1
  329. package/dist/tui/App.js +23 -22
  330. package/dist/{tui-data-FTPV2XBQ.js → tui-data-UK7ZPKN4.js} +14 -13
  331. package/dist/{update-support-J6UWPUOC.js → update-support-BGL5KAZO.js} +12 -12
  332. package/dist/work-claims-XZL2DKQ3.js +53 -0
  333. package/dist/{work-state-heartbeat-4LDF6DSM.js → work-state-heartbeat-267YQ75U.js} +1 -1
  334. package/dist/{worker-gate-35VZINZG.js → worker-gate-RUM6MLIR.js} +1 -1
  335. package/dist/{workflow-engine-4DA6RSHI.js → workflow-engine-YQHGHKSJ.js} +2 -2
  336. package/dist/{worktree-H3YFJ3NU.js → worktree-3FO6EQ4G.js} +4 -4
  337. package/dist/{worktree-sweep-4EDLLQ2E.js → worktree-sweep-X7MUEEQS.js} +5 -5
  338. package/package.json +7 -2
  339. package/release-notes.json +93 -81
  340. /package/dist/{chunk-7Y6AQWVT.js → chunk-4AN2PWUK.js} +0 -0
  341. /package/dist/{chunk-7DMCAGSC.js → chunk-5U4UJGTW.js} +0 -0
  342. /package/dist/{chunk-3THNS2T7.js → chunk-EYIX6JU7.js} +0 -0
  343. /package/dist/{chunk-QYECRPGD.js → chunk-FDA45THL.js} +0 -0
  344. /package/dist/{chunk-MBBFL2SP.js → chunk-GIO4VU4J.js} +0 -0
  345. /package/dist/{chunk-LKYGSJ2E.js → chunk-I76LRCNA.js} +0 -0
  346. /package/dist/{chunk-UY6HRDB2.js → chunk-LBWEAQ6Z.js} +0 -0
  347. /package/dist/{chunk-VS4LPG66.js → chunk-MQ5RUHNZ.js} +0 -0
  348. /package/dist/{chunk-G2EAYH4U.js → chunk-PFCE4AXQ.js} +0 -0
  349. /package/dist/{chunk-3NBWARKC.js → chunk-SXAERZL2.js} +0 -0
  350. /package/dist/{chunk-BY7WWPRM.js → chunk-TKTQRSSD.js} +0 -0
  351. /package/dist/{chunk-JRPYLUXH.js → chunk-U2AZUMBZ.js} +0 -0
  352. /package/dist/{chunk-CMBF5WCL.js → chunk-W6FVADZS.js} +0 -0
  353. /package/dist/{core-memory-CMPPHJN5.js → core-memory-W5ZHHBRR.js} +0 -0
  354. /package/dist/{memory-isolation-ZB5S5HCO.js → memory-isolation-ZE7EDBO4.js} +0 -0
  355. /package/dist/{oauth-server-NP7KGF7N.js → oauth-server-3HG62YYJ.js} +0 -0
  356. /package/dist/{project-boot-LEZSK3W7.js → project-boot-3OAWKYLO.js} +0 -0
  357. /package/dist/{wiki-acl-5DKOWOIH.js → wiki-acl-FQV4E6M4.js} +0 -0
@@ -1,41 +1,9 @@
1
1
  import {
2
2
  listBehaviors
3
- } from "./chunk-O2MEBF23.js";
4
- import "./chunk-VMJ2UH4S.js";
5
- import "./chunk-QGGH7LOU.js";
6
- import "./chunk-4QKKLK3C.js";
7
- import "./chunk-QYECRPGD.js";
8
- import "./chunk-CHCA3ZM2.js";
9
- import "./chunk-OTVEIJUQ.js";
10
- import "./chunk-7DMCAGSC.js";
11
- import "./chunk-5MOYSU5A.js";
12
- import "./chunk-4QCFFW2H.js";
13
- import "./chunk-76CJBM36.js";
3
+ } from "./chunk-MCXYNYZI.js";
14
4
  import {
15
5
  incrementSkillUsage
16
- } from "./chunk-C3UAQ3JG.js";
17
- import "./chunk-BNHAZ65R.js";
18
- import "./chunk-RIECV7SR.js";
19
- import "./chunk-LNOS24GV.js";
20
- import "./chunk-NLEW62VC.js";
21
- import "./chunk-MP2AFCGL.js";
22
- import "./chunk-BRLS5OLZ.js";
23
- import "./chunk-TKDITWDN.js";
24
- import "./chunk-BBMTVAE3.js";
25
- import "./chunk-5YEUPUV4.js";
26
- import "./chunk-NO3M2AFM.js";
27
- import "./chunk-YYB5PMTK.js";
28
- import "./chunk-NJFJWQNN.js";
29
- import "./chunk-V3W3SATA.js";
30
- import "./chunk-JY5GAZYC.js";
31
- import "./chunk-FXU7JOXK.js";
32
- import "./chunk-HPXFKUGU.js";
33
- import "./chunk-QILQ5FCG.js";
34
- import "./chunk-ARX6TAGN.js";
35
- import "./chunk-QMSEL5YS.js";
36
- import "./chunk-HSGBZSCA.js";
37
- import "./chunk-JKKZGDLP.js";
38
- import "./chunk-MLKGABMK.js";
6
+ } from "./chunk-PVWM2WMM.js";
39
7
 
40
8
  // src/lib/behavior-injection.ts
41
9
  import { appendFile } from "fs/promises";
@@ -49,6 +17,20 @@ function p0OverflowNotice(activeBehaviors, cap = BEHAVIOR_INJECTION_CAP) {
49
17
  const dropped = storedP0 - injectedP0;
50
18
  return `\u26A0\uFE0F ${storedP0} p0 behaviors stored, ${injectedP0} injected \u2014 ${dropped} dropped. Prune/promote to avoid silent loss.`;
51
19
  }
20
+ var BEHAVIOR_SELECTION_ORDER_DOC = "p0 first, then identity rules, then most-recently-updated";
21
+ function behaviorTruncationNotice(injected, counts) {
22
+ const shown = injected.length;
23
+ const shownP0 = injected.filter((b) => b.priority === "p0").length;
24
+ const dropped = Math.max(0, counts.total - shown);
25
+ if (dropped === 0) return null;
26
+ const droppedP0 = Math.max(0, counts.p0 - shownP0);
27
+ const p0Clause = droppedP0 > 0 ? ` ${droppedP0} of them are p0 (showing ${shownP0} of ${counts.p0}).` : "";
28
+ return `\u26A0\uFE0F TRUNCATED: showing ${shown} of ${counts.total} active behaviors \u2014 ${dropped} not injected.${p0Clause} Selection order: ${BEHAVIOR_SELECTION_ORDER_DOC}. Your ruleset here is PARTIAL \u2014 do not assume a rule does not exist because it is absent. Run behavior(action='list', priority='p0') for the rest.`;
29
+ }
30
+ function formatOverCapWarning(agentId, counts, cap = BEHAVIOR_INJECTION_CAP) {
31
+ if (counts.total <= cap) return null;
32
+ return `\u26A0\uFE0F Over injection cap: ${agentId} now has ${counts.total} active behaviors (${counts.p0} p0) but only ~${cap} are injected into context (${BEHAVIOR_SELECTION_ORDER_DOC}). The rest are stored but NOT enforced at runtime. Prune stale ones with behavior(action='deactivate') or raise the priority of what must always apply.`;
33
+ }
52
34
  function cosineSimilarity(a, b) {
53
35
  if (a.length !== b.length || a.length === 0) return 0;
54
36
  let dot = 0, normA = 0, normB = 0;
@@ -274,13 +256,17 @@ async function injectBehaviors(opts) {
274
256
  );
275
257
  }
276
258
  }
259
+
277
260
  export {
278
261
  BEHAVIOR_INJECTION_CAP,
262
+ p0OverflowNotice,
263
+ BEHAVIOR_SELECTION_ORDER_DOC,
264
+ behaviorTruncationNotice,
265
+ formatOverCapWarning,
279
266
  cosineSimilarity,
267
+ scoreRelevance,
280
268
  extractKeywords,
269
+ selectRelevantBehaviors,
281
270
  formatBehaviorsMarkdown,
282
- injectBehaviors,
283
- p0OverflowNotice,
284
- scoreRelevance,
285
- selectRelevantBehaviors
271
+ injectBehaviors
286
272
  };
@@ -1,6 +1,9 @@
1
+ import {
2
+ isValidSessionScope
3
+ } from "./chunk-BTSWFMEH.js";
1
4
  import {
2
5
  ensureAgentSymlink
3
- } from "./chunk-ESTR7QUP.js";
6
+ } from "./chunk-P3PAD6AA.js";
4
7
  import {
5
8
  ensureWorktree,
6
9
  ensureWorktreeAsync,
@@ -8,16 +11,17 @@ import {
8
11
  getMainRepoRoot,
9
12
  isInsideGitRepo,
10
13
  isWorktreeDirty
11
- } from "./chunk-FXPAUDCZ.js";
14
+ } from "./chunk-KGPWS4KE.js";
12
15
  import {
13
16
  resolveRowVisibility
14
- } from "./chunk-QFIVK3G5.js";
15
- import {
16
- incrementSkillSuccess
17
- } from "./chunk-C3UAQ3JG.js";
17
+ } from "./chunk-KYVIV54Y.js";
18
18
  import {
19
19
  runBudgetedSweep
20
20
  } from "./chunk-KI5PFRG6.js";
21
+ import {
22
+ buildTaskResult,
23
+ serializeMessage
24
+ } from "./chunk-QAEWWYHL.js";
21
25
  import {
22
26
  reviewSignalPath,
23
27
  taskSignalDir
@@ -27,14 +31,10 @@ import {
27
31
  isLeaseExpired,
28
32
  leaseExpiryIso
29
33
  } from "./chunk-E23LNUWJ.js";
30
- import {
31
- buildTaskResult,
32
- serializeMessage
33
- } from "./chunk-QAEWWYHL.js";
34
34
  import {
35
35
  listSessions,
36
36
  registerSession
37
- } from "./chunk-EHHMNKOA.js";
37
+ } from "./chunk-CSBD7QLZ.js";
38
38
  import {
39
39
  listTmuxSessions
40
40
  } from "./chunk-GBNB4EWD.js";
@@ -43,13 +43,16 @@ import {
43
43
  } from "./chunk-UXLO7VHX.js";
44
44
  import {
45
45
  recordOrchestrationEventBestEffort
46
- } from "./chunk-WR75WUEP.js";
46
+ } from "./chunk-BFL3UB77.js";
47
47
  import {
48
48
  appendDispatchJournalEvent,
49
49
  releaseDispatchClaim,
50
50
  tryAcquireDispatchClaim,
51
51
  writeDispatchAck
52
52
  } from "./chunk-AJIXH5JF.js";
53
+ import {
54
+ incrementSkillSuccess
55
+ } from "./chunk-PVWM2WMM.js";
53
56
  import {
54
57
  assertRuntimeModelCompatible,
55
58
  getAgentRuntime,
@@ -59,7 +62,7 @@ import {
59
62
  import {
60
63
  PlanLimitError,
61
64
  assertEmployeeLimitSync
62
- } from "./chunk-2FYIMTQE.js";
65
+ } from "./chunk-PGF5I7EV.js";
63
66
  import {
64
67
  getSessionKey
65
68
  } from "./chunk-CVYC6DUW.js";
@@ -93,13 +96,13 @@ import {
93
96
  loadEmployeesSync,
94
97
  offloadReadIfMain,
95
98
  offloadReadQuery
96
- } from "./chunk-BRLS5OLZ.js";
99
+ } from "./chunk-OBESOWFJ.js";
97
100
  import {
98
101
  RUNTIME_TABLE
99
102
  } from "./chunk-WNBZJSQT.js";
100
103
  import {
101
104
  loadDeviceId
102
- } from "./chunk-ZDUO6QBH.js";
105
+ } from "./chunk-6UZ3DEQI.js";
103
106
  import {
104
107
  EXE_AI_DIR
105
108
  } from "./chunk-QMSEL5YS.js";
@@ -1525,7 +1528,7 @@ async function createTaskCore(input) {
1525
1528
  if (isCoordinatorSession) {
1526
1529
  earlySessionScope = resolved;
1527
1530
  } else {
1528
- const { getSessionProject } = await import("./session-scope-P46KAHXQ.js");
1531
+ const { getSessionProject } = await import("./session-scope-LXDW7LJJ.js");
1529
1532
  const sessionProject = getSessionProject(resolved);
1530
1533
  if (sessionProject && sessionProject !== input.projectName) {
1531
1534
  scopeMismatchWarning = `session/project mismatch: session "${resolved}" owns "${sessionProject}" but task targets "${input.projectName}". Routed to default scope.`;
@@ -1829,7 +1832,7 @@ async function buildTaskRowsStatement(opts) {
1829
1832
  }
1830
1833
  if (opts.founderId !== null) {
1831
1834
  try {
1832
- const { founderScopeFilter } = await import("./founder-context-U2SZPLYV.js");
1835
+ const { founderScopeFilter } = await import("./founder-context-QTQ6V3B5.js");
1833
1836
  const founderFilter = founderScopeFilter(opts.founderId);
1834
1837
  const cleaned = founderFilter.sql.replace(/^\s*AND\s+/, "");
1835
1838
  conditions.push(cleaned);
@@ -4506,15 +4509,6 @@ function formatIntercomPrompt(reason = "nudge") {
4506
4509
  }
4507
4510
  }
4508
4511
 
4509
- // src/lib/session-scope-token.ts
4510
- var VALID_SESSION_SCOPE_RE = /^[a-zA-Z0-9_]+$/;
4511
- function isValidSessionScope(scope) {
4512
- return typeof scope === "string" && scope.length > 0 && scope.length <= 64 && VALID_SESSION_SCOPE_RE.test(scope);
4513
- }
4514
- function sanitizeSessionScope(scope) {
4515
- return isValidSessionScope(scope) ? scope : null;
4516
- }
4517
-
4518
4512
  // src/lib/session-busy-pattern.ts
4519
4513
  var BUSY_PATTERN = /[✻✽✶✳].*…|Running…|• Working|• Ran |• Explored|• Called|esc to interrupt|Waiting for \d+ background agents?/i;
4520
4514
 
@@ -5164,7 +5158,7 @@ async function verifyPaneAtCapacity(sessionName) {
5164
5158
  reason: `capture-pane failed: ${err instanceof Error ? err.message : String(err)}`
5165
5159
  };
5166
5160
  }
5167
- const { isAtCapacity } = await import("./capacity-monitor-QEL62JDO.js");
5161
+ const { isAtCapacity } = await import("./capacity-monitor-J2Y4SFLA.js");
5168
5162
  if (!isAtCapacity(pane)) {
5169
5163
  return {
5170
5164
  atCapacity: false,
@@ -5398,7 +5392,7 @@ async function countScopedPendingReviews(targetSession, reviewer) {
5398
5392
  }
5399
5393
  async function countScopedOpenTasks(targetSession, agentId) {
5400
5394
  try {
5401
- const { fastDbInit } = await import("./fast-db-init-SCXJXOYX.js");
5395
+ const { fastDbInit } = await import("./fast-db-init-FPAPF3GB.js");
5402
5396
  const client = await fastDbInit();
5403
5397
  const scope = extractRootExe(targetSession);
5404
5398
  if (!scope) return 0;
@@ -5453,7 +5447,7 @@ function buildScopedInProgressTaskQuery(targetSession) {
5453
5447
  async function findScopedInProgressTaskId(targetSession) {
5454
5448
  const q = buildScopedInProgressTaskQuery(targetSession);
5455
5449
  if (!q) return null;
5456
- const { fastDbInit } = await import("./fast-db-init-SCXJXOYX.js");
5450
+ const { fastDbInit } = await import("./fast-db-init-FPAPF3GB.js");
5457
5451
  const client = await fastDbInit();
5458
5452
  const result = await client.execute(q);
5459
5453
  const id = result.rows[0]?.id;
@@ -5574,7 +5568,7 @@ function sendIntercom(targetSession, opts) {
5574
5568
  const ledgerEnv = (process.env.EXE_NOTIFICATION_LEDGER ?? "").trim().toLowerCase();
5575
5569
  if (ledgerEnv === "shadow" || ledgerEnv === "on") {
5576
5570
  const ledgerScope = opts && "callerSessionScope" in opts ? opts.callerSessionScope : void 0;
5577
- void import("./notification-ledger-4REL6M3T.js").then((m) => m.recordShadowNudge(targetSession, reason, ledgerScope, { force: opts?.force })).catch(() => {
5571
+ void import("./notification-ledger-P5XBUYKO.js").then((m) => m.recordShadowNudge(targetSession, reason, ledgerScope, { force: opts?.force })).catch(() => {
5578
5572
  });
5579
5573
  }
5580
5574
  if (!opts?.force && isDebounced(targetSession)) {
@@ -5710,7 +5704,7 @@ function scheduleDeferredSpawnNudge(input) {
5710
5704
  return;
5711
5705
  }
5712
5706
  queueIntercom(input.sessionName, `spawn nudge failed after ${attempt} attempts: ${msg}`, "signal");
5713
- void import("./notifications-UXJUAP3C.js").then(({ writeNotification: writeNotification2 }) => writeNotification2({
5707
+ void import("./notifications-LLCCHRYV.js").then(({ writeNotification: writeNotification2 }) => writeNotification2({
5714
5708
  agentId: getCoordinatorName(),
5715
5709
  agentRole: "COO",
5716
5710
  event: "error_spike",
@@ -5804,7 +5798,7 @@ async function sendIntercomAsync(targetSession, opts) {
5804
5798
  let ledgerClaim = null;
5805
5799
  if (authoritativeLedger) {
5806
5800
  try {
5807
- const { claimAuthoritativeNudge } = await import("./notification-ledger-4REL6M3T.js");
5801
+ const { claimAuthoritativeNudge } = await import("./notification-ledger-P5XBUYKO.js");
5808
5802
  const claim2 = await claimAuthoritativeNudge(
5809
5803
  targetSession,
5810
5804
  reason,
@@ -5827,7 +5821,7 @@ async function sendIntercomAsync(targetSession, opts) {
5827
5821
  const markLedgerDelivered = async () => {
5828
5822
  if (!ledgerClaim) return;
5829
5823
  try {
5830
- const { markNudgeDelivered } = await import("./notification-ledger-4REL6M3T.js");
5824
+ const { markNudgeDelivered } = await import("./notification-ledger-P5XBUYKO.js");
5831
5825
  await markNudgeDelivered(ledgerClaim.id, ledgerClaim.sessionScope);
5832
5826
  } catch {
5833
5827
  }
@@ -5835,7 +5829,7 @@ async function sendIntercomAsync(targetSession, opts) {
5835
5829
  const markLedgerFailed = async (error) => {
5836
5830
  if (!ledgerClaim) return;
5837
5831
  try {
5838
- const { markNudgeDeliveryFailed } = await import("./notification-ledger-4REL6M3T.js");
5832
+ const { markNudgeDeliveryFailed } = await import("./notification-ledger-P5XBUYKO.js");
5839
5833
  await markNudgeDeliveryFailed(ledgerClaim.id, error, ledgerClaim.sessionScope);
5840
5834
  } catch {
5841
5835
  }
@@ -6666,6 +6660,9 @@ function spawnEmployee(employeeName, exeSession, projectDir, opts) {
6666
6660
  "update_task",
6667
6661
  "list_tasks",
6668
6662
  "get_task",
6663
+ // Work claims: spawned agents must be able to claim/release without a
6664
+ // permission prompt, or the dispatch gate becomes advisory in practice.
6665
+ "claim",
6669
6666
  "ask_team_memory",
6670
6667
  "store_behavior",
6671
6668
  "get_identity",
@@ -7364,9 +7361,6 @@ export {
7364
7361
  claudeSupportsAgentFlag,
7365
7362
  PROVIDER_TABLE,
7366
7363
  DEFAULT_PROVIDER,
7367
- VALID_SESSION_SCOPE_RE,
7368
- isValidSessionScope,
7369
- sanitizeSessionScope,
7370
7364
  isAmbiguousMultiCoordinatorContext,
7371
7365
  isMultiCoordinatorSharedProject,
7372
7366
  isScopeCoordinatorDead,
@@ -1,10 +1,10 @@
1
+ import {
2
+ isCrdtSyncEnabled
3
+ } from "./chunk-EYIX6JU7.js";
1
4
  import {
2
5
  compress,
3
6
  decompress
4
7
  } from "./chunk-NEHOQ3P2.js";
5
- import {
6
- isCrdtSyncEnabled
7
- } from "./chunk-3THNS2T7.js";
8
8
  import {
9
9
  orgMembershipsPath,
10
10
  orgModeActive
@@ -25,7 +25,7 @@ import {
25
25
  import {
26
26
  GHOST_BEHAVIOR_SQL,
27
27
  isGhostBehaviorRow
28
- } from "./chunk-O2MEBF23.js";
28
+ } from "./chunk-MCXYNYZI.js";
29
29
  import {
30
30
  retryOnDaemonTransportError
31
31
  } from "./chunk-VMJ2UH4S.js";
@@ -41,10 +41,10 @@ import {
41
41
  loadEmployees,
42
42
  registerBinSymlinks,
43
43
  saveEmployees
44
- } from "./chunk-BRLS5OLZ.js";
44
+ } from "./chunk-OBESOWFJ.js";
45
45
  import {
46
46
  loadDeviceId
47
- } from "./chunk-ZDUO6QBH.js";
47
+ } from "./chunk-6UZ3DEQI.js";
48
48
  import {
49
49
  EXE_AI_DIR
50
50
  } from "./chunk-QMSEL5YS.js";
@@ -216,6 +216,16 @@ async function markCloudSyncStageComplete(client, state, stage) {
216
216
  lastAttemptAt: state.lastAttemptAt
217
217
  });
218
218
  }
219
+ async function resetCloudSyncResumeAttempts(client, state) {
220
+ state.resumeAttempts = 0;
221
+ const completed = CLOUD_SYNC_STAGE_NAMES.filter((name) => state.completed.has(name));
222
+ await writeResumeRecord(client, {
223
+ startedAt: state.startedAt,
224
+ completed,
225
+ resumeAttempts: 0,
226
+ lastAttemptAt: state.lastAttemptAt
227
+ });
228
+ }
219
229
  async function clearCloudSyncStageResume(client) {
220
230
  await client.execute({
221
231
  sql: "DELETE FROM sync_meta WHERE key = ?",
@@ -286,6 +296,25 @@ function partialCloudSyncResult(values) {
286
296
  codeContext: values.codeContext ?? base.codeContext
287
297
  };
288
298
  }
299
+ async function markCloudSyncSlicePending() {
300
+ try {
301
+ const { writeCloudSyncState, readCloudSyncState } = await import("./cloud-sync-state-QF3TMMJ4.js");
302
+ const now = (/* @__PURE__ */ new Date()).toISOString();
303
+ const previous = readCloudSyncState();
304
+ writeCloudSyncState({
305
+ lastSuccessAt: previous?.lastSuccessAt ?? null,
306
+ lastError: previous?.lastError ?? null,
307
+ consecutiveFailures: previous?.consecutiveFailures ?? 0,
308
+ paused: previous?.paused ?? false,
309
+ pausedAt: previous?.pausedAt ?? null,
310
+ intervalMs: Number(process.env.EXE_CLOUD_SYNC_INTERVAL_MS) || previous?.intervalMs || 5 * 6e4,
311
+ updatedAt: now,
312
+ pendingSliceAt: now
313
+ });
314
+ } catch (err) {
315
+ logError(`[cloud-sync] pending-slice state write failed: ${err instanceof Error ? err.message : String(err)}`);
316
+ }
317
+ }
289
318
  async function logResumeClearFailure(err) {
290
319
  const msg = err instanceof Error ? err.message : String(err);
291
320
  logError(`[cloud-sync] resume cursor clear failed: ${msg}`);
@@ -1024,7 +1053,7 @@ async function cloudSync(config, options) {
1024
1053
  pullResult = await cloudPull(lastPullVersion, config);
1025
1054
  if (pullResult.records.length > 0) {
1026
1055
  if (shouldUseCrdtMergeForCloudSync()) {
1027
- const { initCrdtDoc, importExistingMemories, readAllMemories } = await import("./crdt-sync-LIJLZKFE.js");
1056
+ const { initCrdtDoc, importExistingMemories, readAllMemories } = await import("./crdt-sync-NRWDBRSE.js");
1028
1057
  initCrdtDoc();
1029
1058
  importExistingMemories(
1030
1059
  pullResult.records.map((rec) => ({
@@ -1249,11 +1278,19 @@ async function cloudSync(config, options) {
1249
1278
  pushed = memoryPush.pushed;
1250
1279
  if (memoryPush.deferred) {
1251
1280
  const elapsedMs = Date.now() - syncStartTime;
1281
+ if (pushed > 0) {
1282
+ try {
1283
+ await resetCloudSyncResumeAttempts(client, resume);
1284
+ } catch (err) {
1285
+ logError(`[cloud-sync] resume attempt reset failed: ${err instanceof Error ? err.message : String(err)}`);
1286
+ }
1287
+ }
1288
+ await markCloudSyncSlicePending();
1252
1289
  onProgress(
1253
1290
  "Cloud sync",
1254
1291
  `memory push deferred after bounded slice (pushed ${pushed}, cursor ${memoryPush.finalCursor}, elapsed ${(elapsedMs / 1e3).toFixed(1)}s)`
1255
1292
  );
1256
- return partialCloudSyncResult({ pushed, pulled, elapsedMs });
1293
+ return partialCloudSyncResult({ pushed, pulled, elapsedMs, deferred: true });
1257
1294
  }
1258
1295
  await stageDone("memories");
1259
1296
  }
@@ -1573,7 +1610,7 @@ async function cloudSync(config, options) {
1573
1610
  await logResumeClearFailure(err);
1574
1611
  }
1575
1612
  try {
1576
- const { writeCloudSyncState, readCloudSyncState } = await import("./cloud-sync-state-5DFKLWNB.js");
1613
+ const { writeCloudSyncState, readCloudSyncState } = await import("./cloud-sync-state-QF3TMMJ4.js");
1577
1614
  const now = (/* @__PURE__ */ new Date()).toISOString();
1578
1615
  const intervalMs = Number(process.env.EXE_CLOUD_SYNC_INTERVAL_MS) || readCloudSyncState()?.intervalMs || 5 * 6e4;
1579
1616
  writeCloudSyncState({
@@ -1583,7 +1620,8 @@ async function cloudSync(config, options) {
1583
1620
  paused: false,
1584
1621
  pausedAt: null,
1585
1622
  intervalMs,
1586
- updatedAt: now
1623
+ updatedAt: now,
1624
+ pendingSliceAt: null
1587
1625
  });
1588
1626
  } catch (err) {
1589
1627
  logError(`[cloud-sync] success state write failed: ${err instanceof Error ? err.message : String(err)}`);
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  isPaneBusy
3
- } from "./chunk-ZEKCHV43.js";
3
+ } from "./chunk-KWQ7RHYD.js";
4
4
  import {
5
5
  recordSessionKill
6
- } from "./chunk-ANPE3TT3.js";
6
+ } from "./chunk-BTGR55GX.js";
7
7
  import {
8
8
  updateTask
9
- } from "./chunk-AGQAGOQN.js";
9
+ } from "./chunk-LJWCK2DR.js";
10
10
  import {
11
11
  BUSY_PATTERN,
12
12
  countPendingReviews,
@@ -15,7 +15,6 @@ import {
15
15
  getSessionState,
16
16
  getSessionStateAsync,
17
17
  isExeSession,
18
- isValidSessionScope,
19
18
  queryTaskRows,
20
19
  queueIntercom,
21
20
  sendIntercomAsync,
@@ -23,14 +22,17 @@ import {
23
22
  sessionScopeFilter,
24
23
  strictSessionScopeFilter,
25
24
  writeNotification
26
- } from "./chunk-ORNCMRIX.js";
25
+ } from "./chunk-Y4AYNLXU.js";
26
+ import {
27
+ isValidSessionScope
28
+ } from "./chunk-BTSWFMEH.js";
27
29
  import {
28
30
  LEASE_MINUTES,
29
31
  isLeaseExpired
30
32
  } from "./chunk-E23LNUWJ.js";
31
33
  import {
32
34
  listSessions
33
- } from "./chunk-EHHMNKOA.js";
35
+ } from "./chunk-CSBD7QLZ.js";
34
36
  import {
35
37
  capturePaneLinesAsync,
36
38
  listTmuxSessions,
@@ -42,7 +44,7 @@ import {
42
44
  } from "./chunk-UXLO7VHX.js";
43
45
  import {
44
46
  recordOrchestrationEventBestEffort
45
- } from "./chunk-WR75WUEP.js";
47
+ } from "./chunk-BFL3UB77.js";
46
48
  import {
47
49
  checkDispatchStatus,
48
50
  readTerminalLauncherFailure,
@@ -62,7 +64,7 @@ import {
62
64
  getCoordinatorName,
63
65
  isCoordinatorName,
64
66
  shouldAutoInstance
65
- } from "./chunk-BRLS5OLZ.js";
67
+ } from "./chunk-OBESOWFJ.js";
66
68
  import {
67
69
  eventLoopBlockedMarkerPath
68
70
  } from "./chunk-JY5GAZYC.js";
@@ -3457,7 +3459,7 @@ async function reapOrphanedWorktrees(deps, nowMs = Date.now()) {
3457
3459
  }
3458
3460
  async function createWorktreeReaperRealDeps() {
3459
3461
  const { getPaneCwdAsync } = await import("./lib/tmux-status.js");
3460
- const { getGitRootAsync, isWorktreeDirtyAsync } = await import("./worktree-H3YFJ3NU.js");
3462
+ const { getGitRootAsync, isWorktreeDirtyAsync } = await import("./worktree-3FO6EQ4G.js");
3461
3463
  const { statSync: statSync3 } = await import("fs");
3462
3464
  const { basename: basename2 } = await import("path");
3463
3465
  const { promisify: promisify2 } = await import("util");
@@ -3700,7 +3702,7 @@ async function gcStaleCheckpoints() {
3700
3702
  }
3701
3703
  async function pollTaskGroupBarriers() {
3702
3704
  try {
3703
- const { checkAndFireBarriers } = await import("./tasks-crud-W7VGWRUV.js");
3705
+ const { checkAndFireBarriers } = await import("./tasks-crud-TJNMUKKH.js");
3704
3706
  const firedGroupIds = await checkAndFireBarriers();
3705
3707
  if (firedGroupIds.length === 0) return 0;
3706
3708
  const { getClient } = await import("./lib/database.js");
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  sessionScopeFilter
3
- } from "./chunk-ORNCMRIX.js";
3
+ } from "./chunk-Y4AYNLXU.js";
4
4
  import {
5
5
  leaseExpiryIso
6
6
  } from "./chunk-E23LNUWJ.js";
@@ -1,27 +1,27 @@
1
1
  #!/usr/bin/env node
2
- import "./chunk-M7EES2KM.js";
2
+ import "./chunk-BEPO36MW.js";
3
3
  import {
4
4
  isGarbageEntity
5
- } from "./chunk-EWZYFG5Q.js";
6
- import "./chunk-GUMRIUI5.js";
5
+ } from "./chunk-FWVPGXHD.js";
7
6
  import "./chunk-Z6BZQHP5.js";
7
+ import "./chunk-GUMRIUI5.js";
8
8
  import "./chunk-VGMACSEV.js";
9
- import "./chunk-QYECRPGD.js";
9
+ import "./chunk-FDA45THL.js";
10
10
  import "./chunk-CHCA3ZM2.js";
11
- import "./chunk-7DMCAGSC.js";
11
+ import "./chunk-5U4UJGTW.js";
12
12
  import {
13
13
  fastDbInit
14
- } from "./chunk-LKYGSJ2E.js";
14
+ } from "./chunk-I76LRCNA.js";
15
15
  import "./chunk-5MOYSU5A.js";
16
16
  import "./chunk-4QCFFW2H.js";
17
17
  import "./chunk-76CJBM36.js";
18
18
  import {
19
19
  getClient
20
- } from "./chunk-BRLS5OLZ.js";
20
+ } from "./chunk-OBESOWFJ.js";
21
21
  import "./chunk-TKDITWDN.js";
22
22
  import "./chunk-BBMTVAE3.js";
23
23
  import "./chunk-5YEUPUV4.js";
24
- import "./chunk-NO3M2AFM.js";
24
+ import "./chunk-JDPV7W2L.js";
25
25
  import "./chunk-YYB5PMTK.js";
26
26
  import "./chunk-NJFJWQNN.js";
27
27
  import "./chunk-V3W3SATA.js";
@@ -23,7 +23,7 @@ async function runCloudSyncCli() {
23
23
  const { getMasterKey } = await import("./lib/keychain.js");
24
24
  const { initSyncCrypto } = await import("./lib/crypto.js");
25
25
  const { assertCloudSyncReachable, withTimeout } = await import("./bin/exe-cloud.js");
26
- const { runCloudSyncShutdown } = await import("./cloud-sync-shutdown-2D3B73CJ.js");
26
+ const { runCloudSyncShutdown } = await import("./cloud-sync-shutdown-JGOFGGET.js");
27
27
  const { disconnectClient } = await import("./lib/exe-daemon-client.js");
28
28
  let shuttingDown = false;
29
29
  const handleShutdown = (signal) => {
@@ -48,7 +48,7 @@ async function runCloudSyncCli() {
48
48
  const { initPostgresOnlyDatabase } = await import("./lib/database.js");
49
49
  await initPostgresOnlyDatabase();
50
50
  } else {
51
- const { initCloudSyncDatabase } = await import("./cloud-sync-db-init-V7IB23W5.js");
51
+ const { initCloudSyncDatabase } = await import("./cloud-sync-db-init-I75VOTXC.js");
52
52
  await initCloudSyncDatabase();
53
53
  }
54
54
  const masterKey = await getMasterKey();
@@ -71,8 +71,16 @@ async function runCloudSyncCli() {
71
71
  console.log(` Documents: ${result.documents.pushed} total (\u2193 ${result.documents.pulled} pulled)`);
72
72
  console.log(` GraphRAG: ${result.graphrag.pushed} entities`);
73
73
  const elapsedDisplay = result.elapsedMs != null ? `${(result.elapsedMs / 1e3).toFixed(1)}s` : "n/a";
74
- console.log(`
74
+ if (result.deferred) {
75
+ console.log(
76
+ `
77
+ \x1B[33mSync paused after a bounded memory slice \u2014 memories are still queued.\x1B[0m (${elapsedDisplay})
78
+ Run it again (or let the background sync continue) until it reports complete.`
79
+ );
80
+ } else {
81
+ console.log(`
75
82
  \x1B[32mSync complete.\x1B[0m (${elapsedDisplay})`);
83
+ }
76
84
  } catch (err) {
77
85
  const message = err instanceof Error ? err.message : String(err);
78
86
  if (message.includes("Cloud sync is blocked because this device rotated")) {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  fastDbInit,
3
3
  isNoopFastDbClient
4
- } from "./chunk-LKYGSJ2E.js";
4
+ } from "./chunk-I76LRCNA.js";
5
5
  import "./chunk-MLKGABMK.js";
6
6
 
7
7
  // src/lib/cloud-sync-db-init.ts
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  releaseDbLock
3
- } from "./chunk-BRLS5OLZ.js";
3
+ } from "./chunk-OBESOWFJ.js";
4
4
  import "./chunk-TKDITWDN.js";
5
5
  import "./chunk-BBMTVAE3.js";
6
6
  import "./chunk-5YEUPUV4.js";
7
- import "./chunk-NO3M2AFM.js";
7
+ import "./chunk-JDPV7W2L.js";
8
8
  import "./chunk-YYB5PMTK.js";
9
9
  import "./chunk-NJFJWQNN.js";
10
10
  import "./chunk-V3W3SATA.js";
@@ -1,13 +1,15 @@
1
1
  import {
2
+ hasPendingCloudSyncSlice,
2
3
  readCloudSyncState,
3
4
  resolveCloudSyncStatePath,
4
5
  resolveCloudSyncStatus,
5
6
  resolveDaemonHealthLogPath,
6
7
  resolveExeOsDir,
7
8
  writeCloudSyncState
8
- } from "./chunk-L2VZBPJJ.js";
9
+ } from "./chunk-MWEIBVBS.js";
9
10
  import "./chunk-MLKGABMK.js";
10
11
  export {
12
+ hasPendingCloudSyncSlice,
11
13
  readCloudSyncState,
12
14
  resolveCloudSyncStatePath,
13
15
  resolveCloudSyncStatus,
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  getClient
3
- } from "./chunk-BRLS5OLZ.js";
3
+ } from "./chunk-OBESOWFJ.js";
4
4
  import "./chunk-TKDITWDN.js";
5
5
  import "./chunk-BBMTVAE3.js";
6
6
  import "./chunk-5YEUPUV4.js";
7
- import "./chunk-NO3M2AFM.js";
7
+ import "./chunk-JDPV7W2L.js";
8
8
  import "./chunk-YYB5PMTK.js";
9
9
  import "./chunk-NJFJWQNN.js";
10
10
  import "./chunk-V3W3SATA.js";
@@ -1,23 +1,23 @@
1
1
  import {
2
2
  entityId,
3
3
  normalizeEntityName
4
- } from "./chunk-EWZYFG5Q.js";
5
- import "./chunk-GUMRIUI5.js";
4
+ } from "./chunk-FWVPGXHD.js";
6
5
  import "./chunk-Z6BZQHP5.js";
6
+ import "./chunk-GUMRIUI5.js";
7
7
  import "./chunk-VGMACSEV.js";
8
- import "./chunk-QYECRPGD.js";
8
+ import "./chunk-FDA45THL.js";
9
9
  import "./chunk-CHCA3ZM2.js";
10
- import "./chunk-7DMCAGSC.js";
10
+ import "./chunk-5U4UJGTW.js";
11
11
  import "./chunk-5MOYSU5A.js";
12
12
  import "./chunk-4QCFFW2H.js";
13
13
  import "./chunk-76CJBM36.js";
14
14
  import {
15
15
  getClient
16
- } from "./chunk-BRLS5OLZ.js";
16
+ } from "./chunk-OBESOWFJ.js";
17
17
  import "./chunk-TKDITWDN.js";
18
18
  import "./chunk-BBMTVAE3.js";
19
19
  import "./chunk-5YEUPUV4.js";
20
- import "./chunk-NO3M2AFM.js";
20
+ import "./chunk-JDPV7W2L.js";
21
21
  import "./chunk-YYB5PMTK.js";
22
22
  import "./chunk-NJFJWQNN.js";
23
23
  import "./chunk-V3W3SATA.js";