@askexenow/exe-os 0.9.384 → 0.9.387

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 (389) hide show
  1. package/dist/.dist-verified.json +3 -3
  2. package/dist/{active-agent-F5V4E4UL.js → active-agent-B2RK62MI.js} +4 -4
  3. package/dist/{active-agent-YTBB4ZQM.js → active-agent-I3JL4NRS.js} +4 -4
  4. package/dist/{agent-defs-generator-7TFISIJQ.js → agent-defs-generator-JZF6ZPCY.js} +2 -2
  5. package/dist/{agentic-ontology-XVTUVV7W.js → agentic-ontology-Y23IUPRF.js} +1 -1
  6. package/dist/{backfill-metadata-J6MXIDCW.js → backfill-metadata-5YPOOBT6.js} +6 -6
  7. package/dist/{backup-verify-6DVBQMDP.js → backup-verify-7M5WDE64.js} +1 -1
  8. package/dist/{behavior-injection-XDA7ZCYN.js → behavior-injection-4AOTSXRV.js} +9 -9
  9. package/dist/{behavior-promotion-4VLQ7LXK.js → behavior-promotion-YXJNIY4N.js} +8 -8
  10. package/dist/{behaviors-SCCZP7RZ.js → behaviors-7RRWAZE2.js} +7 -7
  11. package/dist/bin/agentic-ontology-backfill.js +7 -7
  12. package/dist/bin/agentic-reflection-backfill.js +8 -8
  13. package/dist/bin/agentic-semantic-label.js +7 -7
  14. package/dist/bin/backfill-conversations.js +6 -6
  15. package/dist/bin/backfill-responses.js +6 -6
  16. package/dist/bin/backfill-vectors.js +6 -6
  17. package/dist/bin/bulk-sync-postgres.js +12 -12
  18. package/dist/bin/cc-doctor.js +9 -9
  19. package/dist/bin/cleanup-stale-review-tasks.js +37 -27
  20. package/dist/bin/cli.js +21 -21
  21. package/dist/bin/customer-readiness.js +55 -25
  22. package/dist/bin/deferred-daemon-restart.js +87 -87
  23. package/dist/bin/exe-agent-config.js +2 -2
  24. package/dist/bin/exe-agent.js +5 -5
  25. package/dist/bin/exe-assign.js +7 -7
  26. package/dist/bin/exe-boot.js +36 -36
  27. package/dist/bin/exe-call.js +4 -4
  28. package/dist/bin/exe-cicd.js +19 -8
  29. package/dist/bin/exe-cloud.js +13 -13
  30. package/dist/bin/exe-config-dump.js +2 -2
  31. package/dist/bin/exe-dispatch.js +16 -16
  32. package/dist/bin/exe-doctor.js +6 -6
  33. package/dist/bin/exe-export-behaviors.js +11 -11
  34. package/dist/bin/exe-forget.js +9 -9
  35. package/dist/bin/exe-gateway.js +8 -8
  36. package/dist/bin/exe-grant.js +1 -1
  37. package/dist/bin/exe-healthcheck.js +9 -9
  38. package/dist/bin/exe-heartbeat.js +21 -21
  39. package/dist/bin/exe-kill.js +20 -20
  40. package/dist/bin/exe-launch-agent.js +26 -26
  41. package/dist/bin/exe-mcp.js +5 -5
  42. package/dist/bin/exe-memory-reads.js +6 -6
  43. package/dist/bin/exe-new-employee.js +8 -8
  44. package/dist/bin/exe-os-mcp-proxy.js +5 -5
  45. package/dist/bin/exe-pending-messages.js +16 -16
  46. package/dist/bin/exe-pending-notifications.js +15 -15
  47. package/dist/bin/exe-pending-reviews.js +16 -16
  48. package/dist/bin/exe-preflight.js +1 -1
  49. package/dist/bin/exe-rename.js +4 -4
  50. package/dist/bin/exe-review.js +51 -49
  51. package/dist/bin/exe-search.js +8 -8
  52. package/dist/bin/exe-session-cleanup.js +21 -21
  53. package/dist/bin/exe-settings.js +12 -12
  54. package/dist/bin/exe-start-codex.js +17 -17
  55. package/dist/bin/exe-start-opencode.js +15 -15
  56. package/dist/bin/exe-status.js +17 -17
  57. package/dist/bin/exe-support.js +3 -3
  58. package/dist/bin/exe-team.js +4 -4
  59. package/dist/bin/exe-verify-running-images.js +1 -1
  60. package/dist/bin/git-sweep.js +17 -17
  61. package/dist/bin/graph-backfill.js +7 -7
  62. package/dist/bin/graph-export.js +7 -7
  63. package/dist/bin/hooks-cli.js +1 -1
  64. package/dist/bin/import-history.js +11 -11
  65. package/dist/bin/install.js +89 -89
  66. package/dist/bin/intercom-check.js +5 -5
  67. package/dist/bin/mcp-sessions.js +2 -2
  68. package/dist/bin/orchestration-metrics.js +4 -4
  69. package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
  70. package/dist/bin/postgres-agentic-semantic-backfill.js +1 -1
  71. package/dist/bin/pre-build-guard.js +55 -16
  72. package/dist/bin/prune-orphan-chunks.js +41 -7
  73. package/dist/bin/reconcile-backlog.js +5 -3
  74. package/dist/bin/registry-proxy.js +1 -1
  75. package/dist/bin/repair-document-chunks.js +6 -6
  76. package/dist/bin/scan-tasks.js +16 -16
  77. package/dist/bin/setup.js +1 -1
  78. package/dist/bin/shard-migrate.js +6 -6
  79. package/dist/bin/stack-update.js +203 -34
  80. package/dist/bin/verify-stack.js +2 -2
  81. package/dist/bin/vps-health-gate.js +1 -1
  82. package/dist/{boot-generation-Q7LGQ3AO.js → boot-generation-VOFY43WG.js} +3 -3
  83. package/dist/{boot-review-sections-G5774FR5.js → boot-review-sections-WLYE6NUR.js} +14 -14
  84. package/dist/build-manifest.json +910 -910
  85. package/dist/{capability-cards-I3RHCF4F.js → capability-cards-2OBIKKX4.js} +2 -2
  86. package/dist/{capacity-monitor-7I7GDONU.js → capacity-monitor-IBFXHWPY.js} +16 -16
  87. package/dist/{catchup-brief-3T5PARIR.js → catchup-brief-GO6WLIT5.js} +21 -21
  88. package/dist/{chunk-OBBO6EJR.js → chunk-2ARLSZG4.js} +1 -1
  89. package/dist/{chunk-C5ISP5FO.js → chunk-2BKJAOO4.js} +11 -1
  90. package/dist/{chunk-MOANZQXF.js → chunk-2BWLCCHH.js} +1 -1
  91. package/dist/{chunk-GL47M7NY.js → chunk-2GUT5CWI.js} +74 -10
  92. package/dist/{chunk-VHHX4UCP.js → chunk-2XCUUS4V.js} +1 -1
  93. package/dist/{chunk-EOTZSAQL.js → chunk-37TRRK2Y.js} +1 -1
  94. package/dist/{chunk-RDWIKDMY.js → chunk-3EBK6P4M.js} +8 -20
  95. package/dist/{chunk-VF2KRROX.js → chunk-3MF6WQ4C.js} +1 -1
  96. package/dist/{chunk-EUGEFBGV.js → chunk-3UY535CJ.js} +3 -3
  97. package/dist/{chunk-JA3Y5TV6.js → chunk-4K6GSRSY.js} +36 -8
  98. package/dist/{chunk-I5XIW2BP.js → chunk-4LGKDHPX.js} +6 -6
  99. package/dist/{chunk-4AAMFWJT.js → chunk-4LYN5YNO.js} +2 -2
  100. package/dist/{chunk-R3CZWFFC.js → chunk-54FUOVUF.js} +9 -3
  101. package/dist/{chunk-XUZK23V7.js → chunk-5R23LRUP.js} +2 -2
  102. package/dist/{chunk-TNS63ATU.js → chunk-5SPQBSKC.js} +81 -13
  103. package/dist/{chunk-YRQ26MNP.js → chunk-64KFPFTH.js} +2 -2
  104. package/dist/{chunk-JFTUAV4J.js → chunk-6EUXAOZQ.js} +1 -1
  105. package/dist/{chunk-SDYWZRPN.js → chunk-6LU7ZXES.js} +1 -1
  106. package/dist/{chunk-VLBHZ6TF.js → chunk-6N6RGS7J.js} +2 -2
  107. package/dist/{chunk-2FKU4ZEO.js → chunk-6NS3DX36.js} +9 -9
  108. package/dist/{chunk-P2UY34XE.js → chunk-7MYX6M72.js} +4 -4
  109. package/dist/{chunk-E7C2WNR5.js → chunk-7NBSOBWJ.js} +4 -4
  110. package/dist/{chunk-AHESD3KW.js → chunk-AEEW4PCH.js} +1 -1
  111. package/dist/{chunk-MPZ2AVNS.js → chunk-AHVXVA46.js} +1 -1
  112. package/dist/{chunk-KXYKSLW4.js → chunk-AOQDY7HP.js} +186 -29
  113. package/dist/{chunk-AGC2V7JS.js → chunk-B6CBN6EF.js} +1 -1
  114. package/dist/{chunk-C5HUMAA7.js → chunk-B7WVYLAQ.js} +67 -15
  115. package/dist/{chunk-QFAFKEB5.js → chunk-BFOLGB4D.js} +184 -45
  116. package/dist/{chunk-T5FEAQES.js → chunk-BKYIWS2X.js} +1 -1
  117. package/dist/{chunk-E3ZM32LF.js → chunk-CDBII52V.js} +11 -2
  118. package/dist/{chunk-ALRHGEAJ.js → chunk-CI5R7QV7.js} +1 -1
  119. package/dist/{chunk-P3QQ52QK.js → chunk-CWWJEMJ5.js} +2 -2
  120. package/dist/{chunk-PL4CFSQ7.js → chunk-DI4DONAA.js} +1 -1
  121. package/dist/{chunk-ZOTTYCP5.js → chunk-ETUNXGX7.js} +3 -3
  122. package/dist/{chunk-3B6FLNLV.js → chunk-EZH2LGJX.js} +1 -1
  123. package/dist/{chunk-LKTN22L6.js → chunk-FH7WKTVF.js} +21 -17
  124. package/dist/{chunk-LR5O2XWZ.js → chunk-FHSMIHLQ.js} +5 -5
  125. package/dist/{chunk-D3LXVAIQ.js → chunk-GD4OC5TP.js} +237 -74
  126. package/dist/{chunk-R5E7WNAC.js → chunk-GFBEIPLT.js} +3 -3
  127. package/dist/{chunk-NF5FOSLD.js → chunk-GGPYYM2R.js} +1 -1
  128. package/dist/{chunk-MROSARM5.js → chunk-GIO43XOP.js} +1 -1
  129. package/dist/{chunk-VOVFUKEB.js → chunk-GMKDUWTJ.js} +1 -1
  130. package/dist/{chunk-46VSBDUW.js → chunk-GN23NAD6.js} +2 -2
  131. package/dist/{chunk-P4PIZOL2.js → chunk-GXSDFCON.js} +3 -3
  132. package/dist/{chunk-MKM6D7JM.js → chunk-H274T3MD.js} +42 -5
  133. package/dist/{chunk-P2VVMGMI.js → chunk-H2N47OFR.js} +17 -9
  134. package/dist/{chunk-RB3J2WYQ.js → chunk-HIYGHRLV.js} +1 -1
  135. package/dist/{chunk-MC4IM2CC.js → chunk-HQFATN5L.js} +4 -4
  136. package/dist/{chunk-S26CV7BE.js → chunk-HTGSVQJP.js} +2 -2
  137. package/dist/{chunk-FVLNNNH6.js → chunk-I4HK2DHC.js} +2 -2
  138. package/dist/{chunk-APL7HUE3.js → chunk-I6FI4VPQ.js} +182 -28
  139. package/dist/{chunk-XEBKIWI7.js → chunk-IE4IHF5U.js} +7 -7
  140. package/dist/{chunk-BPVFZ6Q4.js → chunk-IOIBJY5D.js} +2 -2
  141. package/dist/{chunk-6YDY6ZTD.js → chunk-IWRCPC65.js} +3 -3
  142. package/dist/{chunk-HA63SH5W.js → chunk-IWY2OGQG.js} +1 -1
  143. package/dist/{chunk-DYVLEMKS.js → chunk-JAUIIIWQ.js} +1 -1
  144. package/dist/{chunk-PLII76NJ.js → chunk-JBUCA4OX.js} +33 -6
  145. package/dist/{chunk-EGOEB42T.js → chunk-JIIWN637.js} +3 -3
  146. package/dist/{chunk-JFJP6ATJ.js → chunk-JKVITSQE.js} +1 -1
  147. package/dist/{chunk-W6BZ4UGA.js → chunk-JORQ5EUU.js} +1 -1
  148. package/dist/{chunk-PWC3C5ME.js → chunk-JW4K6FJA.js} +4 -4
  149. package/dist/{chunk-VF3BZOZK.js → chunk-JY6IU2XF.js} +1 -1
  150. package/dist/{chunk-RVO5O5SR.js → chunk-KVH7IVG6.js} +6 -6
  151. package/dist/{chunk-3OX34OC3.js → chunk-LPMIQZDB.js} +6 -6
  152. package/dist/{chunk-W3KPQE7H.js → chunk-LSPNZX4H.js} +3 -3
  153. package/dist/{chunk-EYMFVITZ.js → chunk-MCEUIG26.js} +1 -1
  154. package/dist/{chunk-4YNA3CM6.js → chunk-MEVMJZST.js} +230 -56
  155. package/dist/{chunk-7J2ZQ4XN.js → chunk-MGWAAKNL.js} +1 -1
  156. package/dist/{chunk-3RGTLZNO.js → chunk-MMHKSDG3.js} +12 -12
  157. package/dist/{chunk-LSNBTGW4.js → chunk-N5STNP44.js} +1 -1
  158. package/dist/{chunk-IGJMS7C5.js → chunk-NBRYSWMU.js} +2 -2
  159. package/dist/{chunk-ZBPZDADW.js → chunk-NHUI52BC.js} +3 -3
  160. package/dist/{chunk-NYLJQ2M2.js → chunk-NPJDYPEW.js} +4 -4
  161. package/dist/{chunk-JJTPPAZY.js → chunk-NR3NACEK.js} +397 -225
  162. package/dist/{chunk-MUCNYSJP.js → chunk-NRLJOV7M.js} +32 -4
  163. package/dist/{chunk-L63V25HS.js → chunk-O6H2WG4X.js} +3 -3
  164. package/dist/{chunk-VJEJ7JNB.js → chunk-OFCTRALK.js} +1 -1
  165. package/dist/{chunk-ZT4LFTUJ.js → chunk-OH5D7YAO.js} +1 -1
  166. package/dist/{chunk-6BJCDWSM.js → chunk-OH6B7ICF.js} +1 -1
  167. package/dist/{chunk-PUBA5B4M.js → chunk-OKQCTYLW.js} +13 -9
  168. package/dist/{chunk-B7AMNZTC.js → chunk-OKVEJAZM.js} +2 -2
  169. package/dist/{chunk-CH7BUBP3.js → chunk-OONTCDVO.js} +3 -2
  170. package/dist/{chunk-NVFNADTX.js → chunk-OP376ITX.js} +3 -3
  171. package/dist/{chunk-JDDM6C57.js → chunk-ORHX5E7L.js} +1 -1
  172. package/dist/{chunk-FMIYFHLE.js → chunk-OT5XROGM.js} +2 -2
  173. package/dist/{chunk-KTKIFXIP.js → chunk-OYDTMTRC.js} +1 -1
  174. package/dist/{chunk-XSUALA32.js → chunk-PHH6LI6T.js} +2 -2
  175. package/dist/{chunk-KILR4FBR.js → chunk-PIDFJGTO.js} +3 -3
  176. package/dist/{chunk-YLFCH3VA.js → chunk-Q7QD323J.js} +97 -26
  177. package/dist/{chunk-P4XLIPB7.js → chunk-QCMOD4Y4.js} +1 -1
  178. package/dist/{chunk-72V3S44T.js → chunk-QSYY4R6R.js} +24 -9
  179. package/dist/{chunk-F4BBMIPG.js → chunk-RBFPPNXS.js} +2 -2
  180. package/dist/{chunk-GSLFH4AI.js → chunk-RO5V6HOB.js} +3 -3
  181. package/dist/{chunk-L3VUW5M4.js → chunk-RSDDZSEG.js} +1 -1
  182. package/dist/{chunk-CYCIX7AW.js → chunk-RSONCRBT.js} +2 -2
  183. package/dist/{chunk-LFUBEHFW.js → chunk-RT57D7C4.js} +39 -1
  184. package/dist/{chunk-UXN4BICC.js → chunk-RVRM6KW5.js} +1 -1
  185. package/dist/{chunk-PRDDPQLC.js → chunk-RWN2YDZ4.js} +4 -4
  186. package/dist/{chunk-3SUPEE6H.js → chunk-S4YBVRQW.js} +3 -3
  187. package/dist/{chunk-MB47DRF5.js → chunk-S6X2K77B.js} +2 -2
  188. package/dist/{chunk-7UHZBVP3.js → chunk-TU63ZMMS.js} +60 -24
  189. package/dist/{chunk-ELCRJGCH.js → chunk-TXCK3FV2.js} +2 -2
  190. package/dist/{chunk-RZN2LEAK.js → chunk-UQUFBENW.js} +3 -3
  191. package/dist/{chunk-2PZTMSMG.js → chunk-UTCTAAI5.js} +5 -5
  192. package/dist/{chunk-YLB365YX.js → chunk-UTJN3XEG.js} +3 -3
  193. package/dist/{chunk-QNZ4562V.js → chunk-VA47XBUX.js} +1 -1
  194. package/dist/{chunk-AZSTIAVL.js → chunk-VBPYYJPC.js} +1 -1
  195. package/dist/{chunk-CHIUS5QB.js → chunk-WN4RLIQA.js} +3 -3
  196. package/dist/{chunk-CM7N5MBY.js → chunk-XDU6WLTZ.js} +5 -5
  197. package/dist/{chunk-LFBLQE2P.js → chunk-Y42HGHXW.js} +1 -1
  198. package/dist/{chunk-P3UX5EH4.js → chunk-YGSWRRFH.js} +3 -3
  199. package/dist/{chunk-FHIFTSPL.js → chunk-YZ3I3PYP.js} +7 -2
  200. package/dist/{chunk-UX2EO653.js → chunk-Z2RU4QH5.js} +1 -1
  201. package/dist/{chunk-UOPCVFVR.js → chunk-ZAUHCQYK.js} +11 -11
  202. package/dist/{chunk-ELEGH4DX.js → chunk-ZUGQPYUY.js} +51 -4
  203. package/dist/{cleanup-graph-garbage-VQAJ2RBT.js → cleanup-graph-garbage-2XC5QBRR.js} +8 -8
  204. package/dist/{cloud-sync-command-J7NEFUY7.js → cloud-sync-command-VFH5JQWR.js} +2 -2
  205. package/dist/{cloud-sync-db-init-KWEMNMGA.js → cloud-sync-db-init-BZPNGF57.js} +1 -1
  206. package/dist/{cloud-sync-shutdown-P63AUTUI.js → cloud-sync-shutdown-6NSOC423.js} +2 -2
  207. package/dist/{co-activation-7IHRPBZN.js → co-activation-FJRUJYTD.js} +2 -2
  208. package/dist/{co-occurrence-R5AG4OAU.js → co-occurrence-BT3MOXL7.js} +6 -6
  209. package/dist/{content-extractor-ZLXC6GNR.js → content-extractor-OGXETBOX.js} +2 -2
  210. package/dist/{conversation-entity-extractor-7FRKLLBD.js → conversation-entity-extractor-QNSSPQWA.js} +4 -4
  211. package/dist/conversations-retention-XTBFJBUM.js +166 -0
  212. package/dist/{crdt-sync-IFRZOEIS.js → crdt-sync-CGMV77SA.js} +1 -1
  213. package/dist/{crm-webhook-L2S63ASV.js → crm-webhook-P75KIKIW.js} +2 -2
  214. package/dist/{cto-delegation-gate-3WU7OHX7.js → cto-delegation-gate-MZFADWVI.js} +15 -15
  215. package/dist/{daemon-orchestration-3VQYKLOR.js → daemon-orchestration-JSG2HFW2.js} +23 -19
  216. package/dist/{doc-graph-extractor-YIR5E7OF.js → doc-graph-extractor-GT37KT2Q.js} +6 -6
  217. package/dist/{documents-QEHPTYIY.js → documents-HA2MACFK.js} +7 -7
  218. package/dist/{dreaming-LNFE7DTN.js → dreaming-B6IMGYKE.js} +19 -19
  219. package/dist/{employee-boot-brief-ZTXDYNWM.js → employee-boot-brief-WULO5JFD.js} +23 -23
  220. package/dist/{entity-boost-R5N6JWXD.js → entity-boost-DLWE2J6N.js} +1 -1
  221. package/dist/{exe-drift-WYSJVZFO.js → exe-drift-ORK26KWM.js} +3 -3
  222. package/dist/{exe-export-GOLNAEAV.js → exe-export-EESPIBX6.js} +8 -8
  223. package/dist/{exe-import-U4BSI6OH.js → exe-import-SJZRARKE.js} +8 -8
  224. package/dist/{exe-key-V42G3NGO.js → exe-key-ZRJ7J4KH.js} +87 -87
  225. package/dist/{exe-org-U4GLQ6OP.js → exe-org-BIPZMGIH.js} +67 -36
  226. package/dist/{exe-snapshot-U7ONBYNY.js → exe-snapshot-RC33YE4G.js} +21 -21
  227. package/dist/{fast-db-init-W3NGKAEU.js → fast-db-init-LSDW3AP3.js} +1 -1
  228. package/dist/{founder-context-ZSIBRVDM.js → founder-context-TVJUSBFS.js} +2 -2
  229. package/dist/{founder-monitor-envelope-L3IWZLFY.js → founder-monitor-envelope-VMQPVKCN.js} +1 -1
  230. package/dist/gateway/index.js +9 -9
  231. package/dist/{git-staleness-OF24QXFZ.js → git-staleness-ZU45ORBY.js} +2 -2
  232. package/dist/{global-procedures-WSIOWO43.js → global-procedures-TSKWM4YS.js} +3 -3
  233. package/dist/{graph-auto-extract-IEVVN3L3.js → graph-auto-extract-6TKT5DXT.js} +6 -6
  234. package/dist/{graph-query-JDZWAVCU.js → graph-query-WGVVDQIA.js} +1 -1
  235. package/dist/{graph-rag-BKAD2XQA.js → graph-rag-E75K54QT.js} +4 -4
  236. package/dist/{hook-integrity-TPWDGX2M.js → hook-integrity-33F4OTV6.js} +1 -1
  237. package/dist/{hook-prefetch-FD6VGJJA.js → hook-prefetch-ZSB2IAIW.js} +16 -16
  238. package/dist/hooks/bug-report-worker.js +19 -19
  239. package/dist/hooks/codex-stop-task-finalizer.js +21 -21
  240. package/dist/hooks/commit-complete.js +19 -19
  241. package/dist/hooks/error-recall.js +11 -11
  242. package/dist/hooks/exe-heartbeat-hook.js +5 -5
  243. package/dist/hooks/ingest-worker.js +8 -8
  244. package/dist/hooks/ingest.js +14 -14
  245. package/dist/hooks/instructions-loaded.js +7 -7
  246. package/dist/hooks/manifest.json +20 -20
  247. package/dist/hooks/notification.js +6 -6
  248. package/dist/hooks/post-compact.js +5 -5
  249. package/dist/hooks/post-tool-combined.js +12 -12
  250. package/dist/hooks/pre-compact.js +19 -19
  251. package/dist/hooks/pre-tool-use.js +2 -2
  252. package/dist/hooks/prompt-submit.js +35 -35
  253. package/dist/hooks/session-end.js +23 -23
  254. package/dist/hooks/session-start.js +26 -18
  255. package/dist/hooks/stop.js +22 -22
  256. package/dist/hooks/subagent-stop.js +22 -22
  257. package/dist/hooks/summary-worker.js +22 -22
  258. package/dist/index.js +25 -25
  259. package/dist/{installer-OTI5SA43.js → installer-PS2GWVJU.js} +7 -7
  260. package/dist/{installer-SRJGE4GU.js → installer-VE4Y7EYQ.js} +7 -7
  261. package/dist/{installer-NMOBSEZ2.js → installer-VTNQNGSP.js} +7 -7
  262. package/dist/{intercom-queue-4FFXCBHO.js → intercom-queue-GIE6URPU.js} +14 -14
  263. package/dist/lib/cloud-sync.js +14 -12
  264. package/dist/lib/consolidation.js +8 -8
  265. package/dist/lib/database.js +2 -2
  266. package/dist/lib/db-backup.js +1 -1
  267. package/dist/lib/db-write-worker-client.js +1 -1
  268. package/dist/lib/db-write-worker.js +11 -7
  269. package/dist/lib/db.js +2 -2
  270. package/dist/lib/delivery-truth.js +5 -1
  271. package/dist/lib/device-registry.js +1 -1
  272. package/dist/lib/employee-templates.js +4 -4
  273. package/dist/lib/employees.js +2 -2
  274. package/dist/lib/exe-daemon.js +90 -88
  275. package/dist/lib/hybrid-search.js +8 -8
  276. package/dist/lib/identity.js +2 -2
  277. package/dist/lib/license.js +8 -4
  278. package/dist/lib/messaging.js +15 -15
  279. package/dist/lib/post-tool-memory.js +6 -6
  280. package/dist/lib/registry-proxy.js +1 -1
  281. package/dist/lib/reminders.js +3 -3
  282. package/dist/lib/schedules.js +7 -7
  283. package/dist/lib/session-registry.js +4 -4
  284. package/dist/lib/skill-learning.js +8 -8
  285. package/dist/lib/status-brief.js +2 -2
  286. package/dist/lib/store.js +6 -6
  287. package/dist/lib/task-router.js +3 -3
  288. package/dist/lib/tasks.js +16 -16
  289. package/dist/lib/tmux-routing.js +14 -14
  290. package/dist/lib/tmux-status.js +3 -1
  291. package/dist/lib/token-spend.js +3 -3
  292. package/dist/{license-gate-R4JWTWM4.js → license-gate-JOBLFMWY.js} +3 -3
  293. package/dist/{license-recheck-3MBJ4IJX.js → license-recheck-BZ32WRVP.js} +1 -1
  294. package/dist/{license-sync-BVSG3WMW.js → license-sync-AXGGCZSG.js} +119 -8
  295. package/dist/{local-secret-inventory-JWNBHZZ4.js → local-secret-inventory-MJT7NJLY.js} +2 -2
  296. package/dist/mcp/register-tools.js +86 -86
  297. package/dist/mcp/server.js +86 -86
  298. package/dist/mcp/tools/complete-reminder.js +4 -4
  299. package/dist/mcp/tools/create-reminder.js +4 -4
  300. package/dist/mcp/tools/create-task.js +19 -19
  301. package/dist/mcp/tools/deactivate-behavior.js +10 -10
  302. package/dist/mcp/tools/list-reminders.js +4 -4
  303. package/dist/mcp/tools/list-tasks.js +19 -19
  304. package/dist/mcp/tools/send-message.js +18 -18
  305. package/dist/mcp/tools/update-task.js +17 -17
  306. package/dist/{mcp-child-registry-TIZERM7O.js → mcp-child-registry-5VUG5ATZ.js} +1 -1
  307. package/dist/{mcp-http-config-VUMSFWFH.js → mcp-http-config-KC732KUS.js} +5 -5
  308. package/dist/{mcp-session-identity-DZHWEJRV.js → mcp-session-identity-BL4MEFRI.js} +14 -14
  309. package/dist/{memory-cards-JVXTMSAT.js → memory-cards-VY5SUEOT.js} +6 -6
  310. package/dist/{memory-graph-extractor-PPBJMYFJ.js → memory-graph-extractor-KUAYIBYB.js} +7 -7
  311. package/dist/{memory-poisoning-defense-K5Q74XQ4.js → memory-poisoning-defense-VLLYEI7P.js} +2 -2
  312. package/dist/{memory-pressure-watchdog-YMJH5CSA.js → memory-pressure-watchdog-Y2WUPNXY.js} +15 -15
  313. package/dist/{memory-reflection-7BZWIHRE.js → memory-reflection-DZRRYMWH.js} +6 -6
  314. package/dist/{notification-ledger-XRAXL5OI.js → notification-ledger-VQKLAZMN.js} +15 -15
  315. package/dist/{notifications-JE3PX55X.js → notifications-NBCKXUKB.js} +14 -14
  316. package/dist/{orchestration-events-JCQ5F5IJ.js → orchestration-events-UE4RLVWY.js} +3 -3
  317. package/dist/{orchestrator-X65INDTR.js → orchestrator-YCS6W4OS.js} +16 -16
  318. package/dist/{org-brief-session-3PQ22UIX.js → org-brief-session-JQHHCCGX.js} +7 -7
  319. package/dist/{org-consent-policy-VGELJ7K7.js → org-consent-policy-DWGDWXMB.js} +1 -1
  320. package/dist/{org-join-6TO5ZYUZ.js → org-join-OFD63DUX.js} +3 -3
  321. package/dist/{org-key-admin-XHYVRRAZ.js → org-key-admin-DFLTIXHU.js} +4 -4
  322. package/dist/{org-membership-Y7T2BS57.js → org-membership-CLP2LDI5.js} +1 -1
  323. package/dist/{org-partner-config-OP4NEUNF.js → org-partner-config-3SEWKDDO.js} +2 -2
  324. package/dist/{org-partner-runtime-YNVUNT2R.js → org-partner-runtime-RC3MYK6L.js} +7 -7
  325. package/dist/{org-row-visibility-JBBXNYXD.js → org-row-visibility-H4CNVBW3.js} +1 -1
  326. package/dist/{pipeline-router-EIBB7QNG.js → pipeline-router-7GDTJB5E.js} +3 -3
  327. package/dist/{plan-limits-MEWXYLEN.js → plan-limits-GCSBJJRA.js} +5 -5
  328. package/dist/{pre-tool-use-impl-C6KJY22W.js → pre-tool-use-impl-DYGSDG3M.js} +91 -57
  329. package/dist/{project-name-UYORSNGE.js → project-name-RHWUY3AE.js} +3 -3
  330. package/dist/{projection-worker-WYFDWS57.js → projection-worker-6CDL4N2W.js} +2 -2
  331. package/dist/{prospective-memory-E6XBQFJA.js → prospective-memory-JDURSUXI.js} +2 -2
  332. package/dist/{push-notifications-M7YU63FY.js → push-notifications-MP3T4GH4.js} +15 -15
  333. package/dist/{reproject-worktree-memories-B5XMGJSD.js → reproject-worktree-memories-WTXQLSLM.js} +14 -14
  334. package/dist/{reranker-SRA4BR7N.js → reranker-FRNSY3NG.js} +1 -1
  335. package/dist/{retrieval-health-P2JPZUPV.js → retrieval-health-EXFGOVKR.js} +1 -1
  336. package/dist/{review-polling-KQPN7IQE.js → review-polling-BFXFQOMG.js} +15 -15
  337. package/dist/runtime/index.js +18 -18
  338. package/dist/{session-events-6LDDKKY3.js → session-events-SKRFRHCQ.js} +15 -15
  339. package/dist/{session-kill-telemetry-5DSRGWCL.js → session-kill-telemetry-HP3FHU55.js} +15 -15
  340. package/dist/{session-scope-XG5R3P3D.js → session-scope-4U36PKCC.js} +14 -14
  341. package/dist/{setup-wizard-7QFLZIKT.js → setup-wizard-KHU7Y623.js} +1 -1
  342. package/dist/{skill-refinement-I5RMAHSC.js → skill-refinement-YWHALWL4.js} +3 -3
  343. package/dist/{stack-generate-manifest-AKMZ3AUX.js → stack-generate-manifest-L44KUZ62.js} +6 -6
  344. package/dist/{stack-promote-34CE2HHF.js → stack-promote-RW7WAQHA.js} +6 -6
  345. package/dist/{stack-release-5PGWV5D4.js → stack-release-7RU2SH65.js} +131 -25
  346. package/dist/{stack-update-ZQQ5YYPJ.js → stack-update-AJD3FZ4U.js} +5 -5
  347. package/dist/{steward-gate-AQJ6KT2C.js → steward-gate-Y4QFNWED.js} +3 -3
  348. package/dist/{subagent-brief-injection-3GU7YAWY.js → subagent-brief-injection-ADDSO74U.js} +26 -26
  349. package/dist/{subagent-spawn-ledger-52I66CLW.js → subagent-spawn-ledger-OI23OT4I.js} +1 -1
  350. package/dist/{support-inbox-NY5TB3FN.js → support-inbox-LSCNMSCF.js} +10 -10
  351. package/dist/{support-outbox-KNI3FR3G.js → support-outbox-MOZSZTI6.js} +2 -2
  352. package/dist/{task-enforcement-CAA6D2MH.js → task-enforcement-W2WDBAIR.js} +15 -15
  353. package/dist/{task-request-inbox-QBZVU66E.js → task-request-inbox-4F3VB2B4.js} +1 -1
  354. package/dist/{task-scope-NHXB4ZRN.js → task-scope-VRVAHE23.js} +20 -14
  355. package/dist/{tasks-crud-JHSWL5NM.js → tasks-crud-JHADSQ4R.js} +14 -14
  356. package/dist/{tasks-notify-7PBE4U7T.js → tasks-notify-KSJORZOP.js} +15 -15
  357. package/dist/{tasks-review-PPPVEE62.js → tasks-review-CBHI5OT7.js} +16 -14
  358. package/dist/{telemetry-upload-YU2VRNHX.js → telemetry-upload-LRM4CG5G.js} +7 -7
  359. package/dist/{token-budget-QCMWKG3K.js → token-budget-IIZGO4PI.js} +3 -3
  360. package/dist/{tool-telemetry-LTOIC64I.js → tool-telemetry-4U4CP4O6.js} +1 -1
  361. package/dist/tui/App.js +47 -25
  362. package/dist/{tui-data-NDBXD6U7.js → tui-data-QGL5G67O.js} +18 -18
  363. package/dist/{update-support-BMJM4NG7.js → update-support-NSJLA64L.js} +13 -13
  364. package/dist/{whatsapp-QQLDAHUX.js → whatsapp-LLGB5RMQ.js} +1 -1
  365. package/dist/{wiki-acl-W6WDCVCP.js → wiki-acl-PIYYQZZX.js} +1 -1
  366. package/dist/{work-claims-6DM32MGO.js → work-claims-3YIDXG3Q.js} +3 -3
  367. package/dist/{work-state-heartbeat-HG7D4AWJ.js → work-state-heartbeat-PFULN6VV.js} +1 -1
  368. package/dist/{workflow-engine-ZWC6CCXE.js → workflow-engine-XMMWRP4D.js} +2 -2
  369. package/dist/{worktree-EMQCPGFE.js → worktree-WILU76HY.js} +4 -4
  370. package/dist/{worktree-sweep-XVUJZBXV.js → worktree-sweep-6ZGHXF3A.js} +5 -5
  371. package/package.json +7 -5
  372. package/release-notes.json +15 -37
  373. package/stack.release.json +11 -11
  374. package/dist/conversations-retention-C4BLKFEL.js +0 -54
  375. /package/dist/{chunk-GIRD7O5X.js → chunk-B7ACMQ2K.js} +0 -0
  376. /package/dist/{chunk-U2D6PJ5T.js → chunk-DOKN63TW.js} +0 -0
  377. /package/dist/{chunk-AJK2PVQW.js → chunk-F47NNIP3.js} +0 -0
  378. /package/dist/{chunk-VROK4X2L.js → chunk-GXQPJA76.js} +0 -0
  379. /package/dist/{chunk-TKAU7IJ2.js → chunk-GY2KEOVK.js} +0 -0
  380. /package/dist/{chunk-DN3ZR3UE.js → chunk-IVQGBWJI.js} +0 -0
  381. /package/dist/{chunk-JRIH6I7D.js → chunk-NQ3ZAYJL.js} +0 -0
  382. /package/dist/{chunk-XDVOGDBC.js → chunk-P2XGESMD.js} +0 -0
  383. /package/dist/{chunk-AWWDKF22.js → chunk-XK7JO45D.js} +0 -0
  384. /package/dist/{chunk-DZN7SDY2.js → chunk-YBD3O77S.js} +0 -0
  385. /package/dist/{chunk-M4XY4JRK.js → chunk-YKTJBFWH.js} +0 -0
  386. /package/dist/{core-memory-O6D5UC3T.js → core-memory-EWFVZB2X.js} +0 -0
  387. /package/dist/{memory-isolation-EBFFC6HF.js → memory-isolation-N3QQAF27.js} +0 -0
  388. /package/dist/{oauth-server-ZKBUHDFI.js → oauth-server-GTRPZOXH.js} +0 -0
  389. /package/dist/{project-boot-VEYFCCSL.js → project-boot-BDMMGYZG.js} +0 -0
@@ -1,29 +1,30 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  fastDbInit
4
- } from "../chunk-XDVOGDBC.js";
4
+ } from "../chunk-P2XGESMD.js";
5
5
  import {
6
+ closeReviewRows,
6
7
  sessionScopeFilter
7
- } from "../chunk-7UHZBVP3.js";
8
- import "../chunk-6BJCDWSM.js";
9
- import "../chunk-JDDM6C57.js";
8
+ } from "../chunk-TU63ZMMS.js";
9
+ import "../chunk-OH6B7ICF.js";
10
+ import "../chunk-ORHX5E7L.js";
10
11
  import "../chunk-ZKGWHT56.js";
11
- import "../chunk-QNZ4562V.js";
12
+ import "../chunk-VA47XBUX.js";
12
13
  import "../chunk-WT4RI36X.js";
13
14
  import "../chunk-E23LNUWJ.js";
14
15
  import "../chunk-TDF2XKLK.js";
15
16
  import "../chunk-EIKATSE4.js";
16
17
  import "../chunk-MJCSEIFI.js";
17
- import "../chunk-ALRHGEAJ.js";
18
- import "../chunk-PUBA5B4M.js";
18
+ import "../chunk-CI5R7QV7.js";
19
+ import "../chunk-OKQCTYLW.js";
19
20
  import "../chunk-VI4ATC6I.js";
20
21
  import "../chunk-A27Q27CT.js";
21
- import "../chunk-LSNBTGW4.js";
22
+ import "../chunk-N5STNP44.js";
22
23
  import "../chunk-T5SM4RXY.js";
23
- import "../chunk-VJEJ7JNB.js";
24
+ import "../chunk-OFCTRALK.js";
24
25
  import "../chunk-L5EPGGDP.js";
25
26
  import "../chunk-AM7S2TY6.js";
26
- import "../chunk-BPVFZ6Q4.js";
27
+ import "../chunk-IOIBJY5D.js";
27
28
  import "../chunk-CVYC6DUW.js";
28
29
  import "../chunk-ANVHWV2X.js";
29
30
  import "../chunk-HME6ITKV.js";
@@ -35,27 +36,27 @@ import "../chunk-NLEW62VC.js";
35
36
  import "../chunk-IMYGYIAI.js";
36
37
  import "../chunk-3DAEZILW.js";
37
38
  import "../chunk-DRTJCG6B.js";
38
- import "../chunk-UX2EO653.js";
39
+ import "../chunk-Z2RU4QH5.js";
39
40
  import "../chunk-HYZV25LY.js";
40
41
  import "../chunk-GJV3WDWM.js";
41
42
  import "../chunk-MP2AFCGL.js";
42
43
  import "../chunk-YRUZK2QA.js";
43
44
  import {
44
45
  getClient
45
- } from "../chunk-GL47M7NY.js";
46
+ } from "../chunk-2GUT5CWI.js";
46
47
  import "../chunk-BBMTVAE3.js";
47
48
  import "../chunk-TKDITWDN.js";
48
49
  import "../chunk-5YEUPUV4.js";
49
- import "../chunk-72V3S44T.js";
50
+ import "../chunk-QSYY4R6R.js";
50
51
  import "../chunk-YYB5PMTK.js";
51
52
  import "../chunk-L5CGXEZC.js";
52
53
  import "../chunk-QH5ZQ5SJ.js";
53
54
  import "../chunk-ZQEJ4IX2.js";
54
55
  import "../chunk-FXU7JOXK.js";
55
56
  import "../chunk-WNBZJSQT.js";
56
- import "../chunk-TNS63ATU.js";
57
+ import "../chunk-5SPQBSKC.js";
57
58
  import "../chunk-A7XLR3K7.js";
58
- import "../chunk-DZN7SDY2.js";
59
+ import "../chunk-YBD3O77S.js";
59
60
  import "../chunk-A7JYF4RG.js";
60
61
  import "../chunk-ARX6TAGN.js";
61
62
  import "../chunk-MMS2HBRT.js";
@@ -68,6 +69,7 @@ import "../chunk-JKKZGDLP.js";
68
69
  import "../chunk-MLKGABMK.js";
69
70
 
70
71
  // src/bin/cleanup-stale-review-tasks.ts
72
+ var ZOMBIE_FILTER = "((status IN ('open', 'in_progress') AND title LIKE 'Review:%') OR (status = 'needs_review' AND title LIKE 'RESUME:%'))";
71
73
  async function findZombies(beforeIso, assignedTo) {
72
74
  const client = getClient();
73
75
  const args = [];
@@ -83,10 +85,9 @@ async function findZombies(beforeIso, assignedTo) {
83
85
  }
84
86
  const csScope = sessionScopeFilter();
85
87
  const result = await client.execute({
86
- sql: `SELECT id, assigned_to, title, created_at
88
+ sql: `SELECT id, assigned_to, title, created_at, task_file, session_scope, reviewer, assigned_by, project_name
87
89
  FROM tasks
88
- WHERE status IN ('open', 'in_progress')
89
- AND title LIKE 'Review:%'
90
+ WHERE ${ZOMBIE_FILTER}
90
91
  ${beforeClause}
91
92
  ${assigneeClause}${csScope.sql}
92
93
  ORDER BY created_at ASC`,
@@ -96,7 +97,12 @@ async function findZombies(beforeIso, assignedTo) {
96
97
  id: String(r.id),
97
98
  assigned_to: String(r.assigned_to),
98
99
  title: String(r.title),
99
- created_at: String(r.created_at)
100
+ created_at: String(r.created_at),
101
+ task_file: r.task_file == null ? null : String(r.task_file),
102
+ session_scope: r.session_scope == null ? null : String(r.session_scope),
103
+ reviewer: r.reviewer == null ? null : String(r.reviewer),
104
+ assigned_by: r.assigned_by == null ? null : String(r.assigned_by),
105
+ project_name: r.project_name == null ? null : String(r.project_name)
100
106
  }));
101
107
  }
102
108
  async function statsByAssignee() {
@@ -105,7 +111,7 @@ async function statsByAssignee() {
105
111
  const r = await client.execute({
106
112
  sql: `SELECT assigned_to, COUNT(*) as n, MIN(created_at) as oldest, MAX(created_at) as newest
107
113
  FROM tasks
108
- WHERE status IN ('open','in_progress') AND title LIKE 'Review:%'${sbScope.sql}
114
+ WHERE ${ZOMBIE_FILTER}${sbScope.sql}
109
115
  GROUP BY assigned_to ORDER BY n DESC`,
110
116
  args: [...sbScope.args]
111
117
  });
@@ -128,8 +134,7 @@ async function cancelZombies(ids) {
128
134
  });
129
135
  return Number(result.rowsAffected ?? 0);
130
136
  }
131
- async function main() {
132
- const args = process.argv.slice(2);
137
+ async function main(args = process.argv.slice(2)) {
133
138
  const apply = args.includes("--apply");
134
139
  const stats = args.includes("--stats");
135
140
  const beforeIdx = args.indexOf("--before");
@@ -139,12 +144,12 @@ async function main() {
139
144
  await fastDbInit();
140
145
  if (stats) {
141
146
  await statsByAssignee();
142
- process.exit(0);
147
+ return;
143
148
  }
144
149
  const zombies = await findZombies(beforeIso, assignee);
145
150
  console.log(`Found ${zombies.length} zombie review task(s)${beforeIso ? ` created before ${beforeIso}` : ""}`);
146
151
  if (zombies.length === 0) {
147
- process.exit(0);
152
+ return;
148
153
  }
149
154
  const sample = zombies.slice(0, 10);
150
155
  console.log("Sample (oldest 10):");
@@ -156,16 +161,21 @@ async function main() {
156
161
  }
157
162
  if (!apply) {
158
163
  console.log("\nDRY RUN \u2014 pass --apply to cancel these tasks.");
159
- process.exit(0);
164
+ return;
160
165
  }
161
- const updated = await cancelZombies(zombies.map((z) => z.id));
166
+ const resumeRows = zombies.filter((z) => z.title.toUpperCase().startsWith("RESUME:"));
167
+ const reviewRows = zombies.filter((z) => !resumeRows.includes(z));
168
+ const updated = await cancelZombies(reviewRows.map((z) => z.id)) + await closeReviewRows(getClient(), resumeRows, "cancelled", (/* @__PURE__ */ new Date()).toISOString());
162
169
  console.log(`
163
170
  Cancelled ${updated} zombie review task(s).`);
164
171
  }
165
172
  if (isMainModule(import.meta.url)) {
166
- main().catch((err) => {
173
+ main().then(() => process.exit(0)).catch((err) => {
167
174
  process.stderr.write(`[cleanup-stale-review-tasks] FATAL: ${err instanceof Error ? err.message : String(err)}
168
175
  `);
169
176
  process.exit(1);
170
177
  });
171
178
  }
179
+ export {
180
+ main
181
+ };
package/dist/bin/cli.js CHANGED
@@ -127,7 +127,7 @@ if (args.includes("--global")) {
127
127
  );
128
128
  await runClaudeInstall();
129
129
  } else if (args.includes("--commands-only")) {
130
- const { copySlashCommands, resolvePackageRoot } = await import("../installer-NMOBSEZ2.js");
130
+ const { copySlashCommands, resolvePackageRoot } = await import("../installer-VTNQNGSP.js");
131
131
  try {
132
132
  const packageRoot = resolvePackageRoot();
133
133
  const result = await copySlashCommands(packageRoot);
@@ -193,7 +193,7 @@ if (args.includes("--global")) {
193
193
  const { runHooksCli } = await import("./hooks-cli.js");
194
194
  process.exitCode = await runHooksCli(args.slice(1));
195
195
  } else if (args[0] === "org") {
196
- const { main: runOrg } = await import("../exe-org-U4GLQ6OP.js");
196
+ const { main: runOrg } = await import("../exe-org-BIPZMGIH.js");
197
197
  await runOrg(args.slice(1));
198
198
  } else if (args[0] === "mcp") {
199
199
  const { main: runMcp } = await import("./exe-mcp.js");
@@ -222,7 +222,7 @@ if (args.includes("--global")) {
222
222
  process.exit(1);
223
223
  }
224
224
  } else if (args[0] === "key") {
225
- const { main: runKey } = await import("../exe-key-V42G3NGO.js");
225
+ const { main: runKey } = await import("../exe-key-ZRJ7J4KH.js");
226
226
  await runKey(args.slice(1));
227
227
  } else if (args[0] === "grant") {
228
228
  const { main: runGrant } = await import("./exe-grant.js");
@@ -283,7 +283,7 @@ if (args.includes("--global")) {
283
283
  process.exit(1);
284
284
  }
285
285
  } else if (args[0] === "backfill-metadata") {
286
- const { backfillMetadata } = await import("../backfill-metadata-J6MXIDCW.js");
286
+ const { backfillMetadata } = await import("../backfill-metadata-5YPOOBT6.js");
287
287
  let batchSize = 50;
288
288
  let limit = 0;
289
289
  let dryRun = false;
@@ -314,10 +314,10 @@ if (args.includes("--global")) {
314
314
  process.exit(1);
315
315
  }
316
316
  } else if (args[0] === "export") {
317
- const { runExeExport } = await import("../exe-export-GOLNAEAV.js");
317
+ const { runExeExport } = await import("../exe-export-EESPIBX6.js");
318
318
  await runExeExport(args.slice(1));
319
319
  } else if (args[0] === "import") {
320
- const { runExeImport } = await import("../exe-import-U4BSI6OH.js");
320
+ const { runExeImport } = await import("../exe-import-SJZRARKE.js");
321
321
  await runExeImport(args.slice(1));
322
322
  } else if (args[0] === "import-history") {
323
323
  const { runImportHistory } = await import("./import-history.js");
@@ -342,7 +342,7 @@ if (args.includes("--global")) {
342
342
  const { initStore } = await import("../lib/store.js");
343
343
  await initStore();
344
344
  const { sendMessage } = await import("../lib/messaging.js");
345
- const { getActiveAgent } = await import("../active-agent-YTBB4ZQM.js");
345
+ const { getActiveAgent } = await import("../active-agent-I3JL4NRS.js");
346
346
  const { agentId } = getActiveAgent();
347
347
  const result = await sendMessage({
348
348
  fromAgent: agentId,
@@ -366,7 +366,7 @@ ID: ${result.id}`);
366
366
  process.exit(code);
367
367
  } else if (args[0] === "doctor") {
368
368
  if (args.includes("--drift")) {
369
- const { runDrift } = await import("../exe-drift-WYSJVZFO.js");
369
+ const { runDrift } = await import("../exe-drift-ORK26KWM.js");
370
370
  await runDrift(args.slice(1));
371
371
  } else {
372
372
  const { runCcDoctor } = await import("./cc-doctor.js");
@@ -565,7 +565,7 @@ ${JSON.stringify(stormAlert, null, 2)}`);
565
565
  const reason = args[2] || "manual";
566
566
  let encryptionKey;
567
567
  try {
568
- const { fastDbInit } = await import("../fast-db-init-W3NGKAEU.js");
568
+ const { fastDbInit } = await import("../fast-db-init-LSDW3AP3.js");
569
569
  await fastDbInit({ caller: "cli" });
570
570
  } catch {
571
571
  }
@@ -613,7 +613,7 @@ ${JSON.stringify(stormAlert, null, 2)}`);
613
613
  process.exit(1);
614
614
  }
615
615
  } else if (sub === "verify") {
616
- const { verifyBackup } = await import("../backup-verify-6DVBQMDP.js");
616
+ const { verifyBackup } = await import("../backup-verify-7M5WDE64.js");
617
617
  let target;
618
618
  const pathIdx = args.indexOf("--path");
619
619
  if (pathIdx >= 0 && args[pathIdx + 1]) {
@@ -695,7 +695,7 @@ ${JSON.stringify(stormAlert, null, 2)}`);
695
695
  process.exit(1);
696
696
  }
697
697
  } else if (args[0] === "setup" || args[0] === "-setup" || args[0] === "--setup") {
698
- const { runSetupWizard } = await import("../setup-wizard-7QFLZIKT.js");
698
+ const { runSetupWizard } = await import("../setup-wizard-KHU7Y623.js");
699
699
  await runSetupWizard({
700
700
  skipModel: args.includes("--skip-model"),
701
701
  nonInteractive: args.includes("--non-interactive") || args.includes("-y") || args.includes("--yes"),
@@ -718,14 +718,14 @@ ${JSON.stringify(stormAlert, null, 2)}`);
718
718
  const { runStackUpdateCli } = await import("./stack-update.js");
719
719
  await runStackUpdateCli(args.slice(1));
720
720
  } else if (args[0] === "release") {
721
- const { parseReleaseArgs, runStackRelease } = await import("../stack-release-5PGWV5D4.js");
721
+ const { parseReleaseArgs, runStackRelease } = await import("../stack-release-7RU2SH65.js");
722
722
  const releaseFlags = parseReleaseArgs(args.slice(1));
723
723
  await runStackRelease(releaseFlags);
724
724
  } else if (args[0] === "stack-promote") {
725
- const { runStackPromoteCli } = await import("../stack-promote-34CE2HHF.js");
725
+ const { runStackPromoteCli } = await import("../stack-promote-RW7WAQHA.js");
726
726
  await runStackPromoteCli(args.slice(1));
727
727
  } else if (args[0] === "stack-generate-manifest") {
728
- const { runStackGenerateManifestCli } = await import("../stack-generate-manifest-AKMZ3AUX.js");
728
+ const { runStackGenerateManifestCli } = await import("../stack-generate-manifest-L44KUZ62.js");
729
729
  process.exit(await runStackGenerateManifestCli(args.slice(1)));
730
730
  } else if (args[0] === "repo-truth") {
731
731
  const { runRepoTruthCli } = await import("./exe-repo-truth.js");
@@ -760,10 +760,10 @@ Post-deploy verification \u2014 8 runtime checks after stack-update.
760
760
  `);
761
761
  process.exit(report.failed > 0 ? 1 : 0);
762
762
  } else if (args[0] === "snapshot") {
763
- const { main: runSnapshot } = await import("../exe-snapshot-U7ONBYNY.js");
763
+ const { main: runSnapshot } = await import("../exe-snapshot-RC33YE4G.js");
764
764
  await runSnapshot(args.slice(1));
765
765
  } else if (args[0] === "boot") {
766
- const { projectBoot, parseBootArgs } = await import("../project-boot-VEYFCCSL.js");
766
+ const { projectBoot, parseBootArgs } = await import("../project-boot-BDMMGYZG.js");
767
767
  const bootOpts = parseBootArgs(args.slice(1));
768
768
  console.log(await projectBoot(bootOpts));
769
769
  } else if (args[0] === "brand") {
@@ -960,7 +960,7 @@ function numberAfter(args2, flag) {
960
960
  return Number.isFinite(parsed) ? parsed : void 0;
961
961
  }
962
962
  async function runClaudeInstall() {
963
- const { runInstaller } = await import("../installer-NMOBSEZ2.js");
963
+ const { runInstaller } = await import("../installer-VTNQNGSP.js");
964
964
  try {
965
965
  await runInstaller();
966
966
  } catch (err) {
@@ -972,7 +972,7 @@ async function runClaudeInstall() {
972
972
  }
973
973
  }
974
974
  async function runOpenCodeInstall() {
975
- const { runOpenCodeInstaller } = await import("../installer-OTI5SA43.js");
975
+ const { runOpenCodeInstaller } = await import("../installer-PS2GWVJU.js");
976
976
  try {
977
977
  await runOpenCodeInstaller();
978
978
  } catch (err) {
@@ -984,7 +984,7 @@ async function runOpenCodeInstall() {
984
984
  }
985
985
  }
986
986
  async function runCodexInstall() {
987
- const { runCodexInstaller } = await import("../installer-SRJGE4GU.js");
987
+ const { runCodexInstaller } = await import("../installer-VE4Y7EYQ.js");
988
988
  try {
989
989
  await runCodexInstaller();
990
990
  } catch (err) {
@@ -996,7 +996,7 @@ async function runCodexInstall() {
996
996
  }
997
997
  }
998
998
  async function runClaudeCheck() {
999
- const { detectMcpNameCollisions } = await import("../installer-NMOBSEZ2.js");
999
+ const { detectMcpNameCollisions } = await import("../installer-VTNQNGSP.js");
1000
1000
  const claudeDir = path.join(os.homedir(), ".claude");
1001
1001
  const settingsPath = path.join(claudeDir, "settings.json");
1002
1002
  const claudeJsonPath = path.join(os.homedir(), ".claude.json");
@@ -1491,7 +1491,7 @@ async function runLicense(subArgs) {
1491
1491
  process.exit(1);
1492
1492
  }
1493
1493
  async function runCloudSync() {
1494
- const { runCloudSyncCli } = await import("../cloud-sync-command-J7NEFUY7.js");
1494
+ const { runCloudSyncCli } = await import("../cloud-sync-command-VFH5JQWR.js");
1495
1495
  await runCloudSyncCli();
1496
1496
  }
1497
1497
  async function runLogin(loginArgs) {
@@ -3,7 +3,7 @@ import "../chunk-MLKGABMK.js";
3
3
 
4
4
  // src/bin/customer-readiness.ts
5
5
  import { readFileSync, existsSync, readdirSync, statSync } from "fs";
6
- import { execSync } from "child_process";
6
+ import { execSync, spawnSync } from "child_process";
7
7
  import path from "path";
8
8
  import { fileURLToPath } from "url";
9
9
 
@@ -33,6 +33,31 @@ function test(name, fn) {
33
33
  fail++;
34
34
  }
35
35
  }
36
+ function scan(program, args, opts = {}) {
37
+ const res = spawnSync(program, args, {
38
+ encoding: "utf8",
39
+ cwd: ROOT,
40
+ maxBuffer: 64 * 1024 * 1024
41
+ });
42
+ if (res.error) {
43
+ throw new Error(`${program} could not run (${res.error.message}) \u2014 the scan did not happen`);
44
+ }
45
+ if (res.signal) {
46
+ throw new Error(`${program} was killed by ${res.signal} \u2014 the scan did not happen`);
47
+ }
48
+ const emptyStatus = opts.emptyStatus ?? 1;
49
+ if (res.status === emptyStatus) return "";
50
+ if (res.status !== 0) {
51
+ const detail = (res.stderr ?? "").trim().split("\n")[0] ?? "";
52
+ throw new Error(
53
+ `${program} exited ${res.status} \u2014 the scan did not happen${detail ? `: ${detail}` : ""}`
54
+ );
55
+ }
56
+ return res.stdout;
57
+ }
58
+ function scanLines(program, args, opts = {}) {
59
+ return scan(program, args, opts).split("\n").map((l) => l.trim()).filter(Boolean);
60
+ }
36
61
  function readSrc(relPath) {
37
62
  return readFileSync(path.join(ROOT, relPath), "utf8");
38
63
  }
@@ -92,15 +117,15 @@ test("Session scoping \u2014 all task query files import scope helper", () => {
92
117
  return true;
93
118
  });
94
119
  test("No unscoped task queries \u2014 all task queries have session scope or PK guard", () => {
95
- let rawOutput;
96
- try {
97
- rawOutput = execSync(
98
- `grep -rn -B5 -A5 "FROM.*tasks\\|UPDATE.*tasks" src/ --include="*.ts" | grep -v tasks-crud.ts | grep -v "__tests__" | grep -v ".test." | grep -v "customer-readiness" | grep -v "task-scope.ts"`,
99
- { encoding: "utf8", cwd: ROOT }
100
- ).trim();
101
- } catch {
102
- return true;
103
- }
120
+ const excluded = ["tasks-crud.ts", "__tests__", ".test.", "customer-readiness", "task-scope.ts"];
121
+ const rawOutput = scan("grep", [
122
+ "-rn",
123
+ "-B5",
124
+ "-A5",
125
+ "FROM.*tasks\\|UPDATE.*tasks",
126
+ "src/",
127
+ "--include=*.ts"
128
+ ]).split("\n").filter((line) => !excluded.some((e) => line.includes(e))).join("\n").trim();
104
129
  if (!rawOutput) return true;
105
130
  const blocks = rawOutput.split(/^--$/m);
106
131
  const unscoped = [];
@@ -231,10 +256,12 @@ test("No hardcoded 'exe' coordinator in SQL WHERE clauses", () => {
231
256
  test("Build output \u2014 referenced standalone dist/bin scripts are explicit tsup entries", () => {
232
257
  const pkg = JSON.parse(readSrc("package.json"));
233
258
  const tsup = readSrc("tsup.config.ts");
234
- const commandDocs = execSync(
235
- `grep -Rho "dist/bin/[A-Za-z0-9._-]*.js" src/commands package.json 2>/dev/null || true`,
236
- { encoding: "utf8", cwd: ROOT }
237
- ).trim().split("\n").filter(Boolean);
259
+ const commandDocs = scanLines("grep", [
260
+ "-Rho",
261
+ "dist/bin/[A-Za-z0-9._-]*\\.js",
262
+ "src/commands",
263
+ "package.json"
264
+ ]);
238
265
  const refs = /* @__PURE__ */ new Set();
239
266
  for (const value of Object.values(pkg.bin ?? {})) {
240
267
  const match = value.match(/dist\/bin\/([^\/]+)\.js$/);
@@ -254,10 +281,14 @@ test("Build output \u2014 referenced standalone dist/bin scripts are explicit ts
254
281
  return true;
255
282
  });
256
283
  test("Providers \u2014 active code imports lib/providers, not gateway/providers", () => {
257
- const hits = execSync(
258
- `grep -R "gateway/providers" -n src --include="*.ts" --include="*.tsx" || true`,
259
- { encoding: "utf8", cwd: ROOT }
260
- ).trim().split("\n").filter(Boolean).filter((line) => !line.includes("src/gateway/providers/") && !line.includes("src/bin/customer-readiness.ts"));
284
+ const hits = scanLines("grep", [
285
+ "-R",
286
+ "gateway/providers",
287
+ "-n",
288
+ "src",
289
+ "--include=*.ts",
290
+ "--include=*.tsx"
291
+ ]).filter((line) => !line.includes("src/gateway/providers/") && !line.includes("src/bin/customer-readiness.ts"));
261
292
  if (hits.length > 0) return `Deprecated provider imports: ${hits.slice(0, 3).join("; ")}`;
262
293
  return true;
263
294
  });
@@ -274,16 +305,18 @@ test("Support intake \u2014 customer CLI smoke test is routed", () => {
274
305
  if (!registry.includes("registerSupportTools")) return "support MCP tools not registered";
275
306
  return true;
276
307
  });
277
- test("Support intake \u2014 API health route and cloud-sync license fallback exist", () => {
308
+ test("Support intake \u2014 API health route and GoTrue license authority exist", () => {
278
309
  const api = readSrc("api-router/src/index.ts");
279
310
  const supportRoutes = readSrc("api-router/src/support-routes.ts");
280
311
  const auth = readSrc("api-router/src/auth.ts");
312
+ const entitlement = readSrc("api-router/src/entitlement.ts");
281
313
  const wrangler = readSrc("api-router/wrangler.toml");
282
314
  if (!api.includes("/v1/support/health")) return "support health route missing";
283
315
  if (!supportRoutes.includes("handleSupportHealth")) return "handleSupportHealth missing";
284
316
  if (!supportRoutes.includes("validateSupportLicenseCredentials")) return "support intake not wired to shared license validation";
285
- if (!auth.includes("env.CLOUD_SYNC.fetch")) return "cloud-sync service binding fallback missing";
286
- if (!wrangler.includes('binding = "CLOUD_SYNC"')) return "CLOUD_SYNC service binding missing";
317
+ if (!auth.includes("await resolveEffectiveEntitlement(env,")) return "support license entitlement resolution missing";
318
+ if (!entitlement.includes("await readGoTrueLicense(env,")) return "GoTrue license authority read missing";
319
+ if (!wrangler.includes('GOTRUE_LICENSE_URL = "https://auth.askexe.com/authority"')) return "GoTrue license authority URL missing";
287
320
  return true;
288
321
  });
289
322
  test("CLI/MCP parity \u2014 customer ops wrappers are registered", () => {
@@ -372,10 +405,7 @@ test("Platform procedures \u2014 all MCP tool actions documented", () => {
372
405
  });
373
406
  test("Build output \u2014 all URL-based dynamic imports have matching tsup entry points", () => {
374
407
  const tsup = readSrc("tsup.config.ts");
375
- const srcFiles = execSync(
376
- `find src -name "*.ts" -not -path "*/node_modules/*" 2>/dev/null || true`,
377
- { encoding: "utf8", cwd: ROOT }
378
- ).trim().split("\n").filter(Boolean);
408
+ const srcFiles = scanLines("find", ["src", "-name", "*.ts", "-not", "-path", "*/node_modules/*"], { emptyStatus: -1 });
379
409
  const missing = [];
380
410
  for (const file of srcFiles) {
381
411
  if (file.includes("customer-readiness")) continue;