@askexenow/exe-os 0.9.370 → 0.9.372

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 (366) hide show
  1. package/deploy/compose/docker-compose.yml +46 -15
  2. package/deploy/stack-manifests/v0.9.json +117 -2
  3. package/dist/.dist-verified.json +3 -3
  4. package/dist/{active-agent-H5UZGJ5D.js → active-agent-GRT5MKD5.js} +3 -3
  5. package/dist/{active-agent-L6GFD4NP.js → active-agent-L2ZSSXDK.js} +3 -3
  6. package/dist/{agent-defs-generator-BARBPY6L.js → agent-defs-generator-M4ZNYIVX.js} +2 -2
  7. package/dist/{agentic-ontology-OZM624IZ.js → agentic-ontology-DMPRDEUX.js} +1 -1
  8. package/dist/{backfill-metadata-43B5R5JT.js → backfill-metadata-ZMEHJQ5M.js} +5 -5
  9. package/dist/{backup-verify-FW5GEF4B.js → backup-verify-EX2K732J.js} +1 -1
  10. package/dist/{behavior-injection-RT4ET4ZF.js → behavior-injection-22AGMS25.js} +12 -11
  11. package/dist/{behaviors-ZLEW6AIW.js → behaviors-DVFXAWF5.js} +10 -9
  12. package/dist/bin/agentic-ontology-backfill.js +6 -6
  13. package/dist/bin/agentic-reflection-backfill.js +7 -7
  14. package/dist/bin/agentic-semantic-label.js +6 -6
  15. package/dist/bin/backfill-conversations.js +8 -7
  16. package/dist/bin/backfill-responses.js +8 -7
  17. package/dist/bin/backfill-vectors.js +10 -9
  18. package/dist/bin/bulk-sync-postgres.js +14 -13
  19. package/dist/bin/cc-doctor.js +5 -5
  20. package/dist/bin/cleanup-stale-review-tasks.js +18 -17
  21. package/dist/bin/cli.js +30 -22
  22. package/dist/bin/deferred-daemon-restart.js +123 -94
  23. package/dist/bin/exe-agent-config.js +2 -2
  24. package/dist/bin/exe-agent.js +8 -8
  25. package/dist/bin/exe-assign.js +10 -9
  26. package/dist/bin/exe-boot.js +46 -35
  27. package/dist/bin/exe-call.js +4 -4
  28. package/dist/bin/exe-cloud.js +15 -14
  29. package/dist/bin/exe-config-dump.js +2 -2
  30. package/dist/bin/exe-dispatch.js +19 -18
  31. package/dist/bin/exe-doctor.js +5 -5
  32. package/dist/bin/exe-export-behaviors.js +14 -13
  33. package/dist/bin/exe-forget.js +7 -7
  34. package/dist/bin/exe-gateway.js +7 -7
  35. package/dist/bin/exe-healthcheck.js +5 -5
  36. package/dist/bin/exe-heartbeat.js +21 -20
  37. package/dist/bin/exe-kill.js +22 -21
  38. package/dist/bin/exe-launch-agent.js +29 -28
  39. package/dist/bin/exe-mcp.js +3 -3
  40. package/dist/bin/exe-memory-reads.js +5 -5
  41. package/dist/bin/exe-new-employee.js +8 -8
  42. package/dist/bin/exe-os-mcp-proxy.js +3 -3
  43. package/dist/bin/exe-pending-messages.js +19 -18
  44. package/dist/bin/exe-pending-notifications.js +18 -17
  45. package/dist/bin/exe-pending-reviews.js +18 -17
  46. package/dist/bin/exe-rename.js +4 -4
  47. package/dist/bin/exe-repo-truth.js +369 -0
  48. package/dist/bin/exe-review.js +21 -20
  49. package/dist/bin/exe-search.js +6 -6
  50. package/dist/bin/exe-session-cleanup.js +22 -21
  51. package/dist/bin/exe-settings.js +14 -13
  52. package/dist/bin/exe-start-codex.js +19 -18
  53. package/dist/bin/exe-start-opencode.js +15 -14
  54. package/dist/bin/exe-status.js +20 -19
  55. package/dist/bin/exe-support.js +3 -3
  56. package/dist/bin/exe-team.js +4 -4
  57. package/dist/bin/exe-watchdog.js +1 -1
  58. package/dist/bin/git-sweep.js +19 -18
  59. package/dist/bin/graph-backfill.js +6 -6
  60. package/dist/bin/graph-export.js +6 -6
  61. package/dist/bin/import-history.js +9 -9
  62. package/dist/bin/install-launchd.js +1 -1
  63. package/dist/bin/install.js +91 -90
  64. package/dist/bin/intercom-check.js +4 -4
  65. package/dist/bin/mcp-sessions.js +2 -2
  66. package/dist/bin/orchestration-metrics.js +4 -4
  67. package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
  68. package/dist/bin/postgres-agentic-semantic-backfill.js +1 -1
  69. package/dist/bin/reconcile-backlog.js +2 -2
  70. package/dist/bin/registry-proxy.js +1 -1
  71. package/dist/bin/scan-tasks.js +18 -17
  72. package/dist/bin/setup.js +1 -1
  73. package/dist/bin/shard-migrate.js +5 -5
  74. package/dist/bin/stack-update.js +5 -5
  75. package/dist/bin/vps-health-gate.js +1 -1
  76. package/dist/{boot-generation-Z7ZM5LE5.js → boot-generation-OHXH4YC5.js} +3 -3
  77. package/dist/{boot-review-sections-52Y62Q6M.js → boot-review-sections-N5IXIGSS.js} +17 -16
  78. package/dist/{branch-hygiene-HFJ3HA62.js → branch-hygiene-KCGXRAWP.js} +125 -73
  79. package/dist/build-manifest.json +938 -918
  80. package/dist/{capability-cards-SKMGT3G2.js → capability-cards-4PXVLIVS.js} +2 -2
  81. package/dist/{capacity-monitor-JPFS5FYT.js → capacity-monitor-FKMQXORX.js} +19 -18
  82. package/dist/{catchup-brief-R4FP7ERW.js → catchup-brief-SN5EKO4N.js} +22 -21
  83. package/dist/{chunk-3TSDANOL.js → chunk-23QKEUF6.js} +11 -11
  84. package/dist/{chunk-33VQTJ6H.js → chunk-3KTQWMHI.js} +1 -1
  85. package/dist/{chunk-QS6HI4B6.js → chunk-3TTKAT6V.js} +31 -9
  86. package/dist/{chunk-D3QU2KNF.js → chunk-44C7QNZS.js} +1 -1
  87. package/dist/{chunk-S74ZNCBS.js → chunk-4ZJ5BPY6.js} +1 -1
  88. package/dist/{chunk-FFG3OMOH.js → chunk-53PYNYTW.js} +3 -3
  89. package/dist/{chunk-VZXEDC6K.js → chunk-5AHDQCTB.js} +4 -4
  90. package/dist/{chunk-JRPGAOHL.js → chunk-5AHRZI3R.js} +1 -1
  91. package/dist/{chunk-L6BZDFWT.js → chunk-5APCDDJZ.js} +1 -1
  92. package/dist/{chunk-5XRKPKHJ.js → chunk-5DCCKHDY.js} +3 -3
  93. package/dist/{chunk-64HUCOAL.js → chunk-5V7BD7Z4.js} +9 -1
  94. package/dist/{chunk-QK26AJD7.js → chunk-6XEYELCA.js} +1 -1
  95. package/dist/{chunk-WAIFOWCF.js → chunk-77JP3LK4.js} +6 -6
  96. package/dist/{chunk-C2CQ3KXS.js → chunk-7PSLK36P.js} +1 -1
  97. package/dist/{chunk-E63E3GUT.js → chunk-7R73IAHU.js} +9 -9
  98. package/dist/{chunk-L24EAOSG.js → chunk-7V6M3QUS.js} +1 -1
  99. package/dist/{chunk-BFP7JOD7.js → chunk-7WQRFSZI.js} +3 -3
  100. package/dist/{chunk-QILQ5FCG.js → chunk-A7JYF4RG.js} +6 -0
  101. package/dist/{chunk-P5XTVIEC.js → chunk-AAUWFXOX.js} +4 -4
  102. package/dist/{chunk-OPI5HGW6.js → chunk-AMKSDKMK.js} +1 -1
  103. package/dist/{chunk-U6SWEAAK.js → chunk-CNC57JCS.js} +4 -4
  104. package/dist/{chunk-I3FXDCUE.js → chunk-DKBPCOU4.js} +50 -20
  105. package/dist/{chunk-TTAPKUQV.js → chunk-E2WEFZOR.js} +1 -1
  106. package/dist/{chunk-AYMYU3RC.js → chunk-E7UCDSUE.js} +4 -4
  107. package/dist/{chunk-AWWAZBL7.js → chunk-ECHLVLA7.js} +1 -1
  108. package/dist/{chunk-EKOB53FE.js → chunk-EEXX4UMQ.js} +1 -1
  109. package/dist/{chunk-YTDIGGFZ.js → chunk-ELXFSIIM.js} +2 -2
  110. package/dist/{chunk-XFZHTFH5.js → chunk-ERVQTR7P.js} +2 -2
  111. package/dist/{chunk-VFI3HGKM.js → chunk-FB343XQX.js} +2 -2
  112. package/dist/{chunk-MMDOULD5.js → chunk-FBYAXTDM.js} +1 -1
  113. package/dist/{chunk-XWTZEVBQ.js → chunk-GH6YJOOC.js} +5 -5
  114. package/dist/{chunk-4HNVZDCM.js → chunk-GU62SNDH.js} +1 -1
  115. package/dist/{chunk-RLWSVSDV.js → chunk-HDW4XPDV.js} +1 -1
  116. package/dist/{chunk-6LU3DRZF.js → chunk-HECXZGGZ.js} +9 -9
  117. package/dist/{chunk-DZU7LMXH.js → chunk-HHE2HV3V.js} +1 -1
  118. package/dist/{chunk-637HNKYP.js → chunk-HIIXCAEE.js} +2 -2
  119. package/dist/{chunk-REOG2KQS.js → chunk-HIVZ53YB.js} +1 -1
  120. package/dist/{chunk-QCQT5RXR.js → chunk-HV6Y6F4X.js} +95 -3
  121. package/dist/{chunk-RLDMUSRM.js → chunk-IDZPQG2D.js} +1 -1
  122. package/dist/{chunk-NHJUJWLY.js → chunk-IPMUWYRQ.js} +2 -2
  123. package/dist/chunk-IVU3WN7S.js +227 -0
  124. package/dist/{chunk-WG3B2V6A.js → chunk-JJUGI2YL.js} +1 -1
  125. package/dist/{chunk-U5MEWTAY.js → chunk-JKXZGRWR.js} +1 -1
  126. package/dist/{chunk-EJ5BRL7C.js → chunk-JOO35RHR.js} +2 -2
  127. package/dist/{chunk-FAAHUZFK.js → chunk-JR23BL74.js} +3 -3
  128. package/dist/{chunk-6FMS6DGO.js → chunk-JTWTBX2M.js} +1 -1
  129. package/dist/{chunk-DLMLM63F.js → chunk-KPMC7PY7.js} +1 -1
  130. package/dist/{chunk-RHDDSIFC.js → chunk-KXYFBBZR.js} +1 -1
  131. package/dist/{chunk-MO2A7GUU.js → chunk-KYFFVTGO.js} +1 -1
  132. package/dist/{chunk-J7OPJPYG.js → chunk-L6ZNURWN.js} +1 -1
  133. package/dist/{chunk-AJH2JOKV.js → chunk-LAZKEJMS.js} +147 -147
  134. package/dist/{chunk-KNIYPHUM.js → chunk-LDL3S7AC.js} +1 -1
  135. package/dist/{chunk-5CYFJQGV.js → chunk-MBNIJXKI.js} +3 -3
  136. package/dist/{chunk-RYDR7TRT.js → chunk-MDGYXUOV.js} +1 -1
  137. package/dist/{chunk-SUCWKBYC.js → chunk-MEGRQ53A.js} +5 -5
  138. package/dist/{chunk-MXI2DAXR.js → chunk-MINXPXAB.js} +3 -3
  139. package/dist/{chunk-CWBFOAGM.js → chunk-NQZUSEAR.js} +1 -1
  140. package/dist/{chunk-5PISZ3DK.js → chunk-O4ZFRK6W.js} +11 -11
  141. package/dist/{chunk-5GHQD5NZ.js → chunk-OKGIOWOB.js} +2 -2
  142. package/dist/{chunk-AQL6BFAP.js → chunk-OW5RZIDW.js} +8 -8
  143. package/dist/{chunk-HIIEIDD2.js → chunk-OYQNNKNS.js} +10 -10
  144. package/dist/{chunk-5SRQG3SV.js → chunk-OZBII5E3.js} +4 -4
  145. package/dist/{chunk-VMJ2UH4S.js → chunk-PGLPUP37.js} +1 -1
  146. package/dist/{chunk-ZWYPGZJA.js → chunk-PM6WSWVU.js} +2 -2
  147. package/dist/{chunk-MZVEUPJA.js → chunk-QLA3RTH4.js} +2 -2
  148. package/dist/{chunk-LKB7OV6U.js → chunk-QR624DER.js} +1 -1
  149. package/dist/{chunk-RPJIULZL.js → chunk-QTI4QAWA.js} +1 -1
  150. package/dist/{chunk-ZXZHEAWO.js → chunk-QTYJPWJN.js} +4 -4
  151. package/dist/{chunk-ZVTKWWLV.js → chunk-QZL6E4UB.js} +1 -1
  152. package/dist/{chunk-75IYPYUY.js → chunk-RBYHJDAT.js} +3 -3
  153. package/dist/{chunk-KBXPVEO5.js → chunk-RGUDGC6A.js} +4 -4
  154. package/dist/{chunk-ZSYERTWA.js → chunk-RIK5GRWI.js} +3 -3
  155. package/dist/{chunk-KDP2HV43.js → chunk-RLR6VVKV.js} +4 -4
  156. package/dist/{chunk-GL4VN2FS.js → chunk-RNLF3CBB.js} +1 -1
  157. package/dist/{chunk-D26CLVB4.js → chunk-RUVO3NJC.js} +3 -3
  158. package/dist/{chunk-DOQ5F3GZ.js → chunk-RUWWES2K.js} +2 -2
  159. package/dist/{chunk-T3TSX4XB.js → chunk-SEP5ITFQ.js} +1 -1
  160. package/dist/chunk-SI5SZAJA.js +178 -0
  161. package/dist/{chunk-3WRQAAVT.js → chunk-T4EK56WI.js} +1 -1
  162. package/dist/{chunk-NKTNJSHK.js → chunk-TGEPLJ66.js} +3 -3
  163. package/dist/{chunk-C6ILSUXT.js → chunk-TGPQMMQP.js} +3 -3
  164. package/dist/{chunk-T7QPOQMD.js → chunk-THM7J6UI.js} +4 -4
  165. package/dist/{chunk-4OVLY2NR.js → chunk-TK4MI6F6.js} +3 -3
  166. package/dist/{chunk-X4C3SORV.js → chunk-U3XLRMJD.js} +1 -1
  167. package/dist/{chunk-BJ45A2NG.js → chunk-UKLF7F3Z.js} +5 -5
  168. package/dist/{chunk-BNHAZ65R.js → chunk-UQUUNGTP.js} +5 -1
  169. package/dist/{chunk-SWVRUCVM.js → chunk-UTDMTQNH.js} +1 -1
  170. package/dist/{chunk-JMH4BGNX.js → chunk-UVW7YFAF.js} +4 -4
  171. package/dist/{chunk-IWIESOAK.js → chunk-VKXS2YGN.js} +1 -1
  172. package/dist/{chunk-KU2ASWMO.js → chunk-VX2F4ZUY.js} +2 -2
  173. package/dist/{chunk-QZ4JDQ6R.js → chunk-W25RLOQ2.js} +2 -2
  174. package/dist/{chunk-DNKCJ6KV.js → chunk-WAEKYKTK.js} +1 -1
  175. package/dist/{chunk-FB43C242.js → chunk-WUKQVNLP.js} +1 -1
  176. package/dist/{chunk-UBR5M2TY.js → chunk-WZJVGA5I.js} +1 -1
  177. package/dist/{chunk-LMZD3A6K.js → chunk-XHYHX6F7.js} +26 -26
  178. package/dist/{chunk-YXCZKTTC.js → chunk-XXSNLM6R.js} +1 -1
  179. package/dist/{chunk-PZGLP65B.js → chunk-YFCNWQAM.js} +2 -2
  180. package/dist/{chunk-DPZ7EUY5.js → chunk-YWUQVHDL.js} +1 -1
  181. package/dist/{chunk-REEX7LTW.js → chunk-ZISQOOER.js} +2 -2
  182. package/dist/{chunk-YQ3QJ3SM.js → chunk-ZXB56YR2.js} +10 -10
  183. package/dist/{chunk-XGT2AOL7.js → chunk-ZYCLSEZT.js} +2 -2
  184. package/dist/{cleanup-graph-garbage-V6GERATJ.js → cleanup-graph-garbage-IPYDS5OX.js} +7 -7
  185. package/dist/{cloud-sync-command-RVPVF3H3.js → cloud-sync-command-JLNVG7H4.js} +2 -2
  186. package/dist/{cloud-sync-db-init-GIZFUJQB.js → cloud-sync-db-init-JXUF6GI3.js} +1 -1
  187. package/dist/{cloud-sync-shutdown-PQ6YZ3PA.js → cloud-sync-shutdown-Z4SBP6PL.js} +2 -2
  188. package/dist/{co-activation-6CM4E5ZK.js → co-activation-74RDFTKS.js} +2 -2
  189. package/dist/{co-occurrence-KJ7HM3EG.js → co-occurrence-CN3TBYVR.js} +5 -5
  190. package/dist/{code-context-index-XOP6TLPZ.js → code-context-index-D4MJ4VFX.js} +4 -3
  191. package/dist/{conversation-entity-extractor-PSFZQUJ5.js → conversation-entity-extractor-QGTLH4BP.js} +3 -3
  192. package/dist/{crdt-sync-POXIZVEF.js → crdt-sync-7T4WCOKD.js} +1 -1
  193. package/dist/{crm-webhook-V2H27KYR.js → crm-webhook-FTW3XZTO.js} +2 -2
  194. package/dist/{cto-delegation-gate-J3ND5BWL.js → cto-delegation-gate-SZCE34LB.js} +17 -16
  195. package/dist/{daemon-orchestration-M62T3FS2.js → daemon-orchestration-IGPHVNFR.js} +22 -21
  196. package/dist/{daemon-ready-MKBH4QWD.js → daemon-ready-OT2VQLS7.js} +1 -1
  197. package/dist/{destructive-data-guard-5SKHIZNN.js → destructive-data-guard-6I5MDFVD.js} +1 -1
  198. package/dist/{doc-graph-extractor-3BX3UPBB.js → doc-graph-extractor-VPTRIEKN.js} +5 -5
  199. package/dist/{documents-3D5LWOXL.js → documents-URULIXGM.js} +10 -9
  200. package/dist/{dreaming-WPBIOUHX.js → dreaming-VIZO3QDO.js} +21 -20
  201. package/dist/{employee-boot-brief-LWIOXW2Y.js → employee-boot-brief-XLOG4ULP.js} +25 -24
  202. package/dist/{exe-drift-UDKYXOFS.js → exe-drift-TLQM3IHD.js} +3 -3
  203. package/dist/{exe-export-ON37IIOT.js → exe-export-7YWYWJHY.js} +11 -10
  204. package/dist/{exe-import-ORFMQV3J.js → exe-import-DW6VAUKW.js} +11 -10
  205. package/dist/{exe-key-46N4TFWU.js → exe-key-TLJP2B4Y.js} +88 -87
  206. package/dist/{exe-org-ZYY5MUFH.js → exe-org-LU46N36E.js} +12 -12
  207. package/dist/{exe-snapshot-GLD66ZHQ.js → exe-snapshot-QHUZRS62.js} +23 -22
  208. package/dist/{fast-db-init-YFY566EG.js → fast-db-init-SCTOOIUT.js} +1 -1
  209. package/dist/{founder-context-N73W5XMG.js → founder-context-ZFZC4UHO.js} +2 -2
  210. package/dist/gateway/index.js +11 -11
  211. package/dist/{git-main-guard-TGK3RQY3.js → git-main-guard-TN27QBAI.js} +11 -1
  212. package/dist/{git-staleness-TNJ3XJJ4.js → git-staleness-GSGP344N.js} +2 -2
  213. package/dist/{global-procedures-7Y7LULZC.js → global-procedures-YAR7G4C6.js} +3 -3
  214. package/dist/{graph-auto-extract-4NEJ3OXA.js → graph-auto-extract-GNQS64F5.js} +5 -5
  215. package/dist/{graph-rag-WKAUQZUN.js → graph-rag-RMSFLUOB.js} +3 -3
  216. package/dist/{hook-integrity-D7BN2SLB.js → hook-integrity-CF567MVN.js} +1 -1
  217. package/dist/{hook-prefetch-7OJQ4IJ6.js → hook-prefetch-36BK4F7U.js} +18 -17
  218. package/dist/hooks/bug-report-worker.js +22 -21
  219. package/dist/hooks/codex-stop-task-finalizer.js +23 -22
  220. package/dist/hooks/commit-complete.js +21 -20
  221. package/dist/hooks/error-recall.js +8 -8
  222. package/dist/hooks/exe-heartbeat-hook.js +4 -4
  223. package/dist/hooks/ingest-worker.js +6 -5
  224. package/dist/hooks/ingest.js +11 -11
  225. package/dist/hooks/instructions-loaded.js +5 -5
  226. package/dist/hooks/manifest.json +20 -20
  227. package/dist/hooks/notification.js +5 -5
  228. package/dist/hooks/post-compact.js +4 -4
  229. package/dist/hooks/post-tool-combined.js +12 -12
  230. package/dist/hooks/pre-compact.js +21 -20
  231. package/dist/hooks/pre-tool-use.js +33 -32
  232. package/dist/hooks/prompt-submit.js +35 -34
  233. package/dist/hooks/session-end.js +26 -25
  234. package/dist/hooks/session-start.js +17 -17
  235. package/dist/hooks/stop.js +27 -26
  236. package/dist/hooks/subagent-stop.js +22 -21
  237. package/dist/hooks/summary-worker.js +26 -25
  238. package/dist/index.js +29 -28
  239. package/dist/{installer-KPDMTHOD.js → installer-LUN4HQIC.js} +5 -5
  240. package/dist/{installer-HTFYSA5U.js → installer-MPRFUQJE.js} +5 -5
  241. package/dist/{installer-ZHTVJJNQ.js → installer-OC5VXNC7.js} +5 -5
  242. package/dist/{intercom-queue-D57B3JR3.js → intercom-queue-6DZ7BANV.js} +17 -16
  243. package/dist/lib/cloud-sync.js +14 -13
  244. package/dist/lib/consolidation.js +7 -7
  245. package/dist/lib/database.js +2 -2
  246. package/dist/lib/db-backup.js +1 -1
  247. package/dist/lib/db-daemon-client.js +4 -3
  248. package/dist/lib/db-write-worker.js +3 -3
  249. package/dist/lib/db.js +2 -2
  250. package/dist/lib/device-registry.js +1 -1
  251. package/dist/lib/embedder.js +4 -3
  252. package/dist/lib/employee-templates.js +4 -4
  253. package/dist/lib/employees.js +2 -2
  254. package/dist/lib/exe-daemon-client.js +3 -2
  255. package/dist/lib/exe-daemon.js +103 -83
  256. package/dist/lib/hybrid-search.js +6 -6
  257. package/dist/lib/identity.js +2 -2
  258. package/dist/lib/license.js +4 -2
  259. package/dist/lib/messaging.js +18 -17
  260. package/dist/lib/registry-proxy.js +1 -1
  261. package/dist/lib/reminders.js +3 -3
  262. package/dist/lib/schedules.js +6 -6
  263. package/dist/lib/session-registry.js +4 -4
  264. package/dist/lib/skill-learning.js +11 -10
  265. package/dist/lib/status-brief.js +1 -1
  266. package/dist/lib/store.js +5 -5
  267. package/dist/lib/task-router.js +3 -3
  268. package/dist/lib/tasks.js +19 -18
  269. package/dist/lib/tmux-routing.js +17 -16
  270. package/dist/lib/token-spend.js +3 -3
  271. package/dist/{license-gate-SUVXUQ7E.js → license-gate-ESER24PJ.js} +3 -3
  272. package/dist/{license-sync-TXGIO2PM.js → license-sync-JVG5KNIY.js} +2 -2
  273. package/dist/{linux-systemd-LRW3BYSS.js → linux-systemd-YUADJCJQ.js} +1 -1
  274. package/dist/mcp/register-tools.js +87 -86
  275. package/dist/mcp/server.js +88 -87
  276. package/dist/mcp/tools/complete-reminder.js +4 -4
  277. package/dist/mcp/tools/create-reminder.js +4 -4
  278. package/dist/mcp/tools/create-task.js +21 -20
  279. package/dist/mcp/tools/deactivate-behavior.js +12 -11
  280. package/dist/mcp/tools/list-reminders.js +4 -4
  281. package/dist/mcp/tools/list-tasks.js +21 -20
  282. package/dist/mcp/tools/send-message.js +20 -19
  283. package/dist/mcp/tools/update-task.js +20 -19
  284. package/dist/{mcp-http-config-WCOGCXVR.js → mcp-http-config-6K6IKH5F.js} +3 -3
  285. package/dist/{mcp-session-identity-JMFMB6G3.js → mcp-session-identity-LRC6WJSD.js} +17 -16
  286. package/dist/{memory-cards-IYRUCVDG.js → memory-cards-V3OZHIYP.js} +5 -5
  287. package/dist/{memory-graph-extractor-M6HSDITL.js → memory-graph-extractor-JC2Z64L4.js} +6 -6
  288. package/dist/{memory-poisoning-defense-CHGY62QP.js → memory-poisoning-defense-YM4QJHCX.js} +2 -2
  289. package/dist/{memory-pressure-watchdog-FB5E7MLA.js → memory-pressure-watchdog-6F6KEQHN.js} +18 -17
  290. package/dist/{memory-queue-client-HIHCA3W4.js → memory-queue-client-COA4ABEV.js} +4 -3
  291. package/dist/{memory-reflection-BPGUYVRK.js → memory-reflection-QXHJPYPC.js} +2 -2
  292. package/dist/{notification-ledger-4425CXFW.js → notification-ledger-6QRLQW4Q.js} +18 -17
  293. package/dist/{notifications-JGVJO7S2.js → notifications-7B6D7Y5C.js} +17 -16
  294. package/dist/{orchestration-events-PGKDGE45.js → orchestration-events-GY5VP5LU.js} +3 -3
  295. package/dist/{orchestrator-DV5G5DKQ.js → orchestrator-JVPVOYWA.js} +19 -18
  296. package/dist/{org-brief-session-LXCHYYX7.js → org-brief-session-GRV5R5E3.js} +5 -5
  297. package/dist/{org-consent-policy-52Z4LKHG.js → org-consent-policy-3FHHSYXV.js} +1 -1
  298. package/dist/{org-join-BMBQDMVF.js → org-join-BY4PV6UO.js} +2 -2
  299. package/dist/{org-key-admin-SCCVVE2H.js → org-key-admin-WSCPT2CZ.js} +3 -3
  300. package/dist/{org-partner-runtime-HKGI37ND.js → org-partner-runtime-UJDGECZ4.js} +5 -5
  301. package/dist/{org-row-visibility-K5OFWTXE.js → org-row-visibility-V5DXIHTE.js} +1 -1
  302. package/dist/{pipeline-router-NMWDS5I5.js → pipeline-router-YY5FQKTY.js} +3 -3
  303. package/dist/{plan-limits-P4E7P3O5.js → plan-limits-OVX6SN6B.js} +5 -5
  304. package/dist/{projection-worker-BSORYGBV.js → projection-worker-D2472IOD.js} +2 -2
  305. package/dist/{prospective-memory-3JTGI6VV.js → prospective-memory-JXO2A6PL.js} +2 -2
  306. package/dist/{push-notifications-P2HVB7LZ.js → push-notifications-HR3FZRDI.js} +18 -17
  307. package/dist/{reproject-worktree-memories-IXYGHTGA.js → reproject-worktree-memories-OSS3PGRF.js} +127 -35
  308. package/dist/{reranker-6RA63RUL.js → reranker-IMZRPYJ2.js} +1 -1
  309. package/dist/{retrieval-health-YDVLDURR.js → retrieval-health-W7OD44FE.js} +1 -1
  310. package/dist/{review-polling-XVOU2VTL.js → review-polling-2INP7H6M.js} +18 -17
  311. package/dist/runtime/index.js +25 -24
  312. package/dist/{session-events-6AUB5AKL.js → session-events-G4XUPVWV.js} +18 -17
  313. package/dist/{session-kill-telemetry-OXXPCDBI.js → session-kill-telemetry-W7MHWJTQ.js} +18 -17
  314. package/dist/{session-scope-E4NRAFZL.js → session-scope-LG2J4EMQ.js} +17 -16
  315. package/dist/{setup-wizard-RNV6UE6J.js → setup-wizard-YQJI3SVM.js} +1 -1
  316. package/dist/{skill-refinement-6U66DBPY.js → skill-refinement-RA37U756.js} +3 -3
  317. package/dist/{stack-promote-T7YOBPL6.js → stack-promote-IYBRXHTA.js} +4 -4
  318. package/dist/{stack-release-H7ICM4KT.js → stack-release-OXWLVVG6.js} +4 -4
  319. package/dist/{stack-update-MZIBQHVZ.js → stack-update-2CZEROPK.js} +3 -3
  320. package/dist/{steward-gate-TVRANLPZ.js → steward-gate-LTNFB3FY.js} +3 -3
  321. package/dist/{subagent-brief-injection-Y3IJY34K.js → subagent-brief-injection-OHLWLECQ.js} +26 -25
  322. package/dist/supervisor-handoff-CSJQMI53.js +37 -0
  323. package/dist/{support-inbox-2GGCRQEA.js → support-inbox-4KCEPAZQ.js} +3 -3
  324. package/dist/{task-enforcement-HMGS7GJD.js → task-enforcement-LGXWXGVZ.js} +18 -17
  325. package/dist/{task-request-inbox-EHPQR74T.js → task-request-inbox-WHCOSUCP.js} +1 -1
  326. package/dist/{task-scope-H2XPGS6Y.js → task-scope-KXF7Y6KA.js} +17 -16
  327. package/dist/{tasks-crud-4F6ECDNC.js → tasks-crud-5EM55WRZ.js} +17 -16
  328. package/dist/{tasks-notify-4F3HFDCG.js → tasks-notify-VFMAURTN.js} +18 -17
  329. package/dist/{tasks-review-M5G5J2T3.js → tasks-review-MHGMBHUZ.js} +17 -16
  330. package/dist/{telemetry-upload-DFRMVTOF.js → telemetry-upload-6NRTN7QJ.js} +7 -7
  331. package/dist/{token-budget-4CISVC2P.js → token-budget-LZPOYTRP.js} +3 -3
  332. package/dist/{tool-capability-index-BT2GGLLI.js → tool-capability-index-ED5OAPMW.js} +1 -1
  333. package/dist/{tool-telemetry-WHTCFN2L.js → tool-telemetry-ZX7VSAXK.js} +1 -1
  334. package/dist/tui/App.js +25 -24
  335. package/dist/{tui-data-36IHMXIQ.js → tui-data-CC5POSUV.js} +17 -16
  336. package/dist/{update-support-JQSTFOWO.js → update-support-KH6NSQON.js} +16 -15
  337. package/dist/{work-claims-CH77EFZ4.js → work-claims-MNK7PEPW.js} +3 -3
  338. package/dist/{work-state-heartbeat-YC3O6M2G.js → work-state-heartbeat-YEWT5NMZ.js} +1 -1
  339. package/dist/{worker-gate-BJTF4TUP.js → worker-gate-BOQSIU2Z.js} +1 -1
  340. package/dist/{workflow-engine-ZWRIDV6J.js → workflow-engine-MUUD7ZEX.js} +2 -2
  341. package/dist/{worktree-YNPSWYQY.js → worktree-GOGT2LZP.js} +4 -4
  342. package/dist/{worktree-sweep-GRMHU4DA.js → worktree-sweep-46VWPVQT.js} +5 -5
  343. package/package.json +2 -1
  344. package/release-notes.json +31 -60
  345. package/stack.release.json +4 -4
  346. package/dist/{chunk-Z4AN75KW.js → chunk-3F2UB4IQ.js} +0 -0
  347. package/dist/{chunk-442EX2PZ.js → chunk-3Y5THOU6.js} +0 -0
  348. package/dist/{chunk-KOYGRP2L.js → chunk-5N4SG5NB.js} +3 -3
  349. /package/dist/{chunk-ME3A4LKV.js → chunk-7UTJA6HF.js} +0 -0
  350. /package/dist/{chunk-YSDIJ3VI.js → chunk-7XGXRD22.js} +0 -0
  351. /package/dist/{chunk-EQJ462VM.js → chunk-ADNBOKYZ.js} +0 -0
  352. /package/dist/{chunk-6CAX7YH4.js → chunk-FZQWVQJG.js} +0 -0
  353. /package/dist/{chunk-2A76BLAD.js → chunk-GB3AHV5F.js} +0 -0
  354. /package/dist/{chunk-P3IOJTWW.js → chunk-HR2R2QER.js} +0 -0
  355. /package/dist/{chunk-5HNXTAXL.js → chunk-ORA5BWCV.js} +0 -0
  356. /package/dist/{chunk-PREXA444.js → chunk-R6FLELV6.js} +0 -0
  357. /package/dist/{chunk-G2H2KV4N.js → chunk-V4XAKXXF.js} +0 -0
  358. /package/dist/{chunk-7AQ2C4LT.js → chunk-VJSDGDNS.js} +0 -0
  359. /package/dist/{chunk-VQ7F3W7P.js → chunk-WV3TOOL7.js} +0 -0
  360. /package/dist/{core-memory-KIV3WFOQ.js → core-memory-6WBNT2HL.js} +0 -0
  361. /package/dist/{entity-boost-CDFAXVYL.js → entity-boost-MT336PI3.js} +0 -0
  362. /package/dist/{memory-isolation-CPTYUIPJ.js → memory-isolation-EJ45IXBH.js} +0 -0
  363. /package/dist/{message-queue-client-PL2POQOV.js → message-queue-client-MVBTYCSV.js} +0 -0
  364. /package/dist/{oauth-server-NJRJAT7X.js → oauth-server-TZFNQAFS.js} +0 -0
  365. /package/dist/{project-boot-QYYCFYFC.js → project-boot-LXLU2J32.js} +0 -0
  366. /package/dist/{wiki-acl-OROXIW3P.js → wiki-acl-WXRJGZ5Q.js} +0 -0
@@ -0,0 +1,369 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ REMOTE_TIMEOUT_MS,
4
+ fetchPruned,
5
+ getRemoteDefaultBranch,
6
+ ghPrStateLookup,
7
+ listRemoteHeads,
8
+ listRemoteTags
9
+ } from "../chunk-SI5SZAJA.js";
10
+ import {
11
+ isMainModule
12
+ } from "../chunk-6Y4B3QF6.js";
13
+ import "../chunk-MLKGABMK.js";
14
+
15
+ // src/bin/exe-repo-truth.ts
16
+ import { execFile } from "child_process";
17
+ import { promisify } from "util";
18
+ var execFileAsync = promisify(execFile);
19
+ var UNKNOWN = "UNKNOWN";
20
+ async function git(repoRoot, args, timeoutMs = REMOTE_TIMEOUT_MS) {
21
+ const { stdout } = await execFileAsync("git", args, {
22
+ cwd: repoRoot,
23
+ encoding: "utf8",
24
+ timeout: timeoutMs,
25
+ maxBuffer: 16 * 1024 * 1024
26
+ });
27
+ return stdout;
28
+ }
29
+ function parseTagName(name) {
30
+ const m = /^(.*?)v?(\d+(?:\.\d+)*)(?:[-+](.*))?$/.exec(name);
31
+ if (!m) return null;
32
+ const [, prefix, version, pre] = m;
33
+ return {
34
+ name,
35
+ prefix: prefix ?? "",
36
+ parts: version.split(".").map((n) => parseInt(n, 10) || 0),
37
+ pre: pre ?? ""
38
+ };
39
+ }
40
+ function compareVersions(a, b) {
41
+ const len = Math.max(a.parts.length, b.parts.length);
42
+ for (let i = 0; i < len; i++) {
43
+ const d = (a.parts[i] ?? 0) - (b.parts[i] ?? 0);
44
+ if (d !== 0) return d;
45
+ }
46
+ if (a.pre === b.pre) return 0;
47
+ if (!a.pre) return 1;
48
+ if (!b.pre) return -1;
49
+ return a.pre < b.pre ? -1 : 1;
50
+ }
51
+ function seriesRegexFromVersion(version) {
52
+ const m = /^(\d+)\.(\d+)\./.exec(version.trim());
53
+ if (!m) return null;
54
+ return new RegExp(`^v?${m[1]}\\.${m[2]}\\.`);
55
+ }
56
+ function groupOtherNamespaces(parsed) {
57
+ const byPrefix = /* @__PURE__ */ new Map();
58
+ for (const t of parsed) {
59
+ const list = byPrefix.get(t.prefix) ?? [];
60
+ list.push(t);
61
+ byPrefix.set(t.prefix, list);
62
+ }
63
+ const out = [];
64
+ for (const [prefix, list] of byPrefix) {
65
+ const sorted = [...list].sort((a, b) => compareVersions(b, a));
66
+ out.push({ prefix, tags: sorted.map((t) => t.name), latest: sorted[0].name });
67
+ }
68
+ return out.sort((a, b) => b.tags.length - a.tags.length);
69
+ }
70
+ async function showAtCommit(repoRoot, sha, file) {
71
+ try {
72
+ return await git(repoRoot, ["show", `${sha}:${file}`]);
73
+ } catch {
74
+ return null;
75
+ }
76
+ }
77
+ function jsonVersion(raw) {
78
+ if (!raw) return null;
79
+ try {
80
+ const parsed = JSON.parse(raw);
81
+ return typeof parsed.version === "string" ? parsed.version : null;
82
+ } catch {
83
+ return null;
84
+ }
85
+ }
86
+ async function defaultOpenPrLookup(repoRoot) {
87
+ try {
88
+ const { stdout } = await execFileAsync(
89
+ "gh",
90
+ ["pr", "list", "--state", "open", "--limit", "100", "--json", "number,title,headRefName,updatedAt"],
91
+ { cwd: repoRoot, encoding: "utf8", timeout: REMOTE_TIMEOUT_MS, maxBuffer: 8 * 1024 * 1024 }
92
+ );
93
+ const parsed = JSON.parse(stdout);
94
+ return Array.isArray(parsed) ? parsed : [];
95
+ } catch {
96
+ return null;
97
+ }
98
+ }
99
+ async function collectRepoTruth(repoRoot, opts = {}) {
100
+ const prLookup = opts.prStateLookup ?? ghPrStateLookup;
101
+ const openPrLookup = opts.openPrLookup ?? defaultOpenPrLookup;
102
+ let remoteUrl = UNKNOWN;
103
+ try {
104
+ remoteUrl = (await git(repoRoot, ["remote", "get-url", "origin"])).trim() || UNKNOWN;
105
+ } catch {
106
+ remoteUrl = UNKNOWN;
107
+ }
108
+ const fetched = await fetchPruned(repoRoot);
109
+ const report = {
110
+ repoRoot,
111
+ remoteUrl,
112
+ fetched,
113
+ defaultBranch: UNKNOWN,
114
+ defaultHeadSha: UNKNOWN,
115
+ openPrs: UNKNOWN,
116
+ branches: UNKNOWN,
117
+ branchCounts: UNKNOWN,
118
+ ourTags: UNKNOWN,
119
+ ourSeriesRule: UNKNOWN,
120
+ latestOurTag: UNKNOWN,
121
+ otherTagNamespaces: UNKNOWN,
122
+ manifestVersion: UNKNOWN,
123
+ packageVersion: UNKNOWN,
124
+ versionsAgree: UNKNOWN,
125
+ unreleasedCount: UNKNOWN,
126
+ unreleasedCommits: UNKNOWN
127
+ };
128
+ const heads = await listRemoteHeads(repoRoot);
129
+ const remoteDefault = await getRemoteDefaultBranch(repoRoot);
130
+ if (remoteDefault) {
131
+ report.defaultBranch = remoteDefault.name;
132
+ report.defaultHeadSha = remoteDefault.sha;
133
+ } else if (heads) {
134
+ const guess = heads.find((h) => h.name === "main") ?? heads.find((h) => h.name === "master");
135
+ if (guess) {
136
+ report.defaultBranch = guess.name;
137
+ report.defaultHeadSha = guess.sha;
138
+ }
139
+ }
140
+ const openPrs = await openPrLookup(repoRoot);
141
+ if (openPrs) report.openPrs = openPrs;
142
+ if (heads) {
143
+ const baseName = report.defaultBranch === UNKNOWN ? null : report.defaultBranch;
144
+ const candidates = heads.filter((h) => h.name !== baseName);
145
+ const prMap = await prLookup(repoRoot, candidates.map((c) => c.name));
146
+ const rows = candidates.map((c) => {
147
+ const pr = prMap?.get(c.name);
148
+ return {
149
+ name: c.name,
150
+ sha: c.sha,
151
+ classification: pr?.state ?? "unknown",
152
+ prNumber: pr?.number ?? null
153
+ };
154
+ });
155
+ rows.sort((a, b) => a.name.localeCompare(b.name));
156
+ report.branches = rows;
157
+ report.branchCounts = {
158
+ live: rows.length,
159
+ merged: rows.filter((r) => r.classification === "merged").length,
160
+ closedUnmerged: rows.filter((r) => r.classification === "closed_unmerged").length,
161
+ neverProposed: rows.filter((r) => r.classification === "never_proposed").length,
162
+ open: rows.filter((r) => r.classification === "open").length,
163
+ unknown: rows.filter((r) => r.classification === "unknown").length
164
+ };
165
+ }
166
+ const headSha = report.defaultHeadSha === UNKNOWN ? null : report.defaultHeadSha;
167
+ if (headSha && fetched) {
168
+ const manifestRaw = await showAtCommit(repoRoot, headSha, "stack.release.json");
169
+ const pkgRaw = await showAtCommit(repoRoot, headSha, "package.json");
170
+ report.manifestVersion = manifestRaw === null ? null : jsonVersion(manifestRaw) ?? UNKNOWN;
171
+ report.packageVersion = pkgRaw === null ? null : jsonVersion(pkgRaw) ?? UNKNOWN;
172
+ report.versionsAgree = typeof report.manifestVersion === "string" && report.manifestVersion !== UNKNOWN && typeof report.packageVersion === "string" && report.packageVersion !== UNKNOWN ? report.manifestVersion === report.packageVersion : null;
173
+ }
174
+ const tags = await listRemoteTags(repoRoot);
175
+ if (tags) {
176
+ const parsed = tags.map((t) => parseTagName(t.name)).filter((t) => t !== null);
177
+ let oursRe = opts.oursPattern ?? null;
178
+ let ruleSource = opts.oursPattern ? "--ours flag" : "";
179
+ if (!oursRe) {
180
+ const declared = [report.manifestVersion, report.packageVersion].find((v) => typeof v === "string" && v !== UNKNOWN);
181
+ if (declared) {
182
+ oursRe = seriesRegexFromVersion(declared);
183
+ ruleSource = `series ${declared.split(".").slice(0, 2).join(".")}.x declared on ${report.defaultBranch}`;
184
+ }
185
+ }
186
+ if (oursRe) {
187
+ report.ourSeriesRule = `${oursRe.source} (${ruleSource})`;
188
+ const ours = parsed.filter((t) => t.prefix === "" && oursRe.test(t.name));
189
+ const sortedOurs = [...ours].sort((a, b) => compareVersions(b, a));
190
+ report.ourTags = sortedOurs.map((t) => t.name);
191
+ report.latestOurTag = sortedOurs[0]?.name ?? null;
192
+ if (report.latestOurTag === null) {
193
+ report.unreleasedCount = null;
194
+ report.unreleasedCommits = null;
195
+ }
196
+ const ourNames = new Set(ours.map((t) => t.name));
197
+ report.otherTagNamespaces = groupOtherNamespaces(parsed.filter((t) => !ourNames.has(t.name)));
198
+ } else {
199
+ report.ourSeriesRule = UNKNOWN;
200
+ report.ourTags = UNKNOWN;
201
+ report.latestOurTag = UNKNOWN;
202
+ report.otherTagNamespaces = groupOtherNamespaces(parsed);
203
+ }
204
+ }
205
+ if (headSha && fetched && typeof report.latestOurTag === "string" && report.latestOurTag !== UNKNOWN) {
206
+ try {
207
+ const raw = await git(repoRoot, [
208
+ "log",
209
+ "--no-merges",
210
+ "--format=%h %s",
211
+ `refs/tags/${report.latestOurTag}..${headSha}`
212
+ ]);
213
+ const commits = raw.split("\n").map((l) => l.trim()).filter(Boolean);
214
+ report.unreleasedCommits = commits;
215
+ report.unreleasedCount = commits.length;
216
+ } catch {
217
+ report.unreleasedCommits = UNKNOWN;
218
+ report.unreleasedCount = UNKNOWN;
219
+ }
220
+ }
221
+ return report;
222
+ }
223
+ var CLASSIFICATION_LABEL = {
224
+ merged: "MERGED (prunable)",
225
+ closed_unmerged: "CLOSED, NOT MERGED",
226
+ never_proposed: "NEVER PROPOSED",
227
+ open: "OPEN PR",
228
+ unknown: "UNKNOWN"
229
+ };
230
+ function show(v) {
231
+ if (v === UNKNOWN) return UNKNOWN;
232
+ if (v === null) return "n/a";
233
+ return String(v);
234
+ }
235
+ function hasUnknowns(r) {
236
+ return !r.fetched || r.defaultBranch === UNKNOWN || r.defaultHeadSha === UNKNOWN || r.openPrs === UNKNOWN || r.branches === UNKNOWN || r.latestOurTag === UNKNOWN || r.manifestVersion === UNKNOWN || r.packageVersion === UNKNOWN || r.unreleasedCount === UNKNOWN || r.branchCounts !== UNKNOWN && r.branchCounts.unknown > 0;
237
+ }
238
+ function renderRepoTruth(r) {
239
+ const out = [];
240
+ out.push("");
241
+ out.push(`REPO TRUTH \u2014 ${show(r.remoteUrl)}`);
242
+ out.push(` every value below was read from the remote during this run; anything unverified says ${UNKNOWN}`);
243
+ out.push("");
244
+ out.push(` fetch --prune --tags --prune-tags ${r.fetched ? "ok" : `FAILED \u2192 remote-derived values are ${UNKNOWN}`}`);
245
+ out.push(` default branch ${show(r.defaultBranch)}`);
246
+ out.push(` head ${r.defaultHeadSha === UNKNOWN ? UNKNOWN : String(r.defaultHeadSha).slice(0, 12)}`);
247
+ out.push("");
248
+ if (r.openPrs === UNKNOWN) {
249
+ out.push(` OPEN PRs ${UNKNOWN} (forge unreadable)`);
250
+ } else {
251
+ out.push(` OPEN PRs ${r.openPrs.length}`);
252
+ for (const pr of r.openPrs) out.push(` #${pr.number} ${pr.headRefName} \u2014 ${pr.title}`);
253
+ }
254
+ out.push("");
255
+ if (r.branches === UNKNOWN || r.branchCounts === UNKNOWN) {
256
+ out.push(` REMOTE BRANCHES ${UNKNOWN} (ls-remote failed)`);
257
+ } else {
258
+ const c = r.branchCounts;
259
+ out.push(` REMOTE BRANCHES ${c.live} live (excluding the default branch)`);
260
+ out.push(` open PR ${c.open} merged/prunable ${c.merged} closed-unmerged ${c.closedUnmerged} never-proposed ${c.neverProposed} unknown ${c.unknown}`);
261
+ for (const b of r.branches) {
262
+ out.push(` ${CLASSIFICATION_LABEL[b.classification].padEnd(19)} ${b.name}${b.prNumber ? ` (PR #${b.prNumber})` : ""}`);
263
+ }
264
+ }
265
+ out.push("");
266
+ out.push(` OUR RELEASE TAGS`);
267
+ out.push(` rule ${show(r.ourSeriesRule)}`);
268
+ out.push(
269
+ ` latest OURS ${r.latestOurTag === null ? "none \u2014 no tag in our series" : show(r.latestOurTag)}`
270
+ );
271
+ if (Array.isArray(r.ourTags)) {
272
+ out.push(` all ours (${r.ourTags.length})${" ".repeat(Math.max(1, 24 - String(r.ourTags.length).length))}${r.ourTags.join(", ") || "none"}`);
273
+ }
274
+ if (r.otherTagNamespaces === UNKNOWN) {
275
+ out.push(` OTHER TAG NAMESPACES ${UNKNOWN}`);
276
+ } else if (r.otherTagNamespaces.length > 0) {
277
+ out.push(` OTHER TAG NAMESPACES (not ours \u2014 inherited upstream or auxiliary)`);
278
+ for (const ns of r.otherTagNamespaces) {
279
+ const label = ns.prefix === "" ? "(bare, other series)" : `${ns.prefix}*`;
280
+ out.push(` ${label.padEnd(24)} ${ns.tags.length} tag(s), newest ${ns.latest}`);
281
+ }
282
+ }
283
+ out.push("");
284
+ out.push(` DECLARED VERSIONS (read at the remote head)`);
285
+ out.push(` stack.release.json ${show(r.manifestVersion)}`);
286
+ out.push(` package.json ${show(r.packageVersion)}`);
287
+ out.push(
288
+ ` agree ${r.versionsAgree === null ? "n/a" : r.versionsAgree === UNKNOWN ? UNKNOWN : r.versionsAgree ? "yes" : "NO \u2014 the release workflow hard-fails on this"}`
289
+ );
290
+ out.push("");
291
+ if (r.unreleasedCount === UNKNOWN) {
292
+ out.push(` UNRELEASED COMMITS ${UNKNOWN} (no verified OURS tag to measure from)`);
293
+ } else if (r.unreleasedCount === null) {
294
+ out.push(` UNRELEASED COMMITS n/a \u2014 nothing released yet to measure from`);
295
+ } else {
296
+ out.push(` UNRELEASED COMMITS ${r.unreleasedCount} above ${show(r.latestOurTag)}`);
297
+ if (Array.isArray(r.unreleasedCommits)) {
298
+ for (const c of r.unreleasedCommits.slice(0, 15)) out.push(` ${c}`);
299
+ if (r.unreleasedCommits.length > 15) out.push(` ... ${r.unreleasedCommits.length - 15} more`);
300
+ }
301
+ }
302
+ out.push("");
303
+ return out.join("\n");
304
+ }
305
+ function parseRepoTruthArgs(argv) {
306
+ const args = { repoRoot: process.cwd(), json: false, help: false };
307
+ for (let i = 0; i < argv.length; i++) {
308
+ const a = argv[i];
309
+ if (a === "--help" || a === "-h") args.help = true;
310
+ else if (a === "--json") args.json = true;
311
+ else if (a === "--repo" && argv[i + 1]) args.repoRoot = argv[++i];
312
+ else if (a === "--ours" && argv[i + 1]) args.oursPattern = new RegExp(argv[++i]);
313
+ }
314
+ return args;
315
+ }
316
+ var HELP = `
317
+ exe-os repo-truth \u2014 remote-authoritative repo state
318
+
319
+ Fetches with --prune --tags --prune-tags, then reports ONLY what the remote
320
+ says: default branch + head, open PRs, live branches classified by PR state
321
+ (merged / closed-unmerged / never-proposed), tags split by namespace so an
322
+ inherited upstream tag can never be reported as our latest release, declared
323
+ versions read at the remote head, and commits above our newest tag.
324
+
325
+ Anything that could not be fetched prints UNKNOWN. It never falls back to a
326
+ local value.
327
+
328
+ Usage:
329
+ exe-os repo-truth [--repo <path>] [--ours <regex>] [--json]
330
+
331
+ --repo <path> repository to inspect (default: cwd)
332
+ --ours <regex> override the "our tags" rule, e.g. '^v0\\.9\\.'
333
+ --json machine-readable output
334
+
335
+ Exit: 0 fully verified \xB7 1 something is UNKNOWN \xB7 2 usage error
336
+ `;
337
+ async function runRepoTruthCli(argv) {
338
+ const args = parseRepoTruthArgs(argv);
339
+ if (args.help) {
340
+ process.stdout.write(HELP);
341
+ return 0;
342
+ }
343
+ try {
344
+ await execFileAsync("git", ["rev-parse", "--git-dir"], { cwd: args.repoRoot, timeout: 1e4 });
345
+ } catch {
346
+ process.stderr.write(`exe-os repo-truth: not a git repository: ${args.repoRoot}
347
+ `);
348
+ return 2;
349
+ }
350
+ const report = await collectRepoTruth(args.repoRoot, { oursPattern: args.oursPattern });
351
+ process.stdout.write(args.json ? `${JSON.stringify(report, null, 2)}
352
+ ` : `${renderRepoTruth(report)}
353
+ `);
354
+ return hasUnknowns(report) ? 1 : 0;
355
+ }
356
+ if (isMainModule(import.meta.url)) {
357
+ process.exit(await runRepoTruthCli(process.argv.slice(2)));
358
+ }
359
+ export {
360
+ UNKNOWN,
361
+ collectRepoTruth,
362
+ compareVersions,
363
+ hasUnknowns,
364
+ parseRepoTruthArgs,
365
+ parseTagName,
366
+ renderRepoTruth,
367
+ runRepoTruthCli,
368
+ seriesRegexFromVersion
369
+ };
@@ -2,44 +2,45 @@
2
2
  import {
3
3
  flushBatch,
4
4
  writeMemory
5
- } from "../chunk-HIIEIDD2.js";
6
- import "../chunk-ME3A4LKV.js";
5
+ } from "../chunk-OYQNNKNS.js";
6
+ import "../chunk-7UTJA6HF.js";
7
7
  import "../chunk-CHCA3ZM2.js";
8
8
  import "../chunk-OTVEIJUQ.js";
9
- import "../chunk-Z4AN75KW.js";
9
+ import "../chunk-3F2UB4IQ.js";
10
10
  import {
11
11
  fastDbInit
12
- } from "../chunk-P3IOJTWW.js";
12
+ } from "../chunk-HR2R2QER.js";
13
13
  import "../chunk-5MOYSU5A.js";
14
14
  import "../chunk-4QCFFW2H.js";
15
15
  import "../chunk-76CJBM36.js";
16
16
  import {
17
17
  getCurrentSessionScope,
18
18
  strictSessionScopeFilter
19
- } from "../chunk-LMZD3A6K.js";
19
+ } from "../chunk-XHYHX6F7.js";
20
20
  import "../chunk-BTSWFMEH.js";
21
- import "../chunk-DNKCJ6KV.js";
22
- import "../chunk-6FMS6DGO.js";
21
+ import "../chunk-WAEKYKTK.js";
22
+ import "../chunk-44C7QNZS.js";
23
+ import "../chunk-JTWTBX2M.js";
23
24
  import "../chunk-KI5PFRG6.js";
24
- import "../chunk-D3QU2KNF.js";
25
25
  import "../chunk-WT4RI36X.js";
26
+ import "../chunk-E23LNUWJ.js";
26
27
  import "../chunk-QAEWWYHL.js";
27
28
  import "../chunk-EIKATSE4.js";
28
- import "../chunk-E23LNUWJ.js";
29
- import "../chunk-RYDR7TRT.js";
29
+ import "../chunk-MDGYXUOV.js";
30
30
  import "../chunk-GBNB4EWD.js";
31
31
  import "../chunk-UXLO7VHX.js";
32
32
  import "../chunk-DSOQUQTV.js";
33
- import "../chunk-TTAPKUQV.js";
33
+ import "../chunk-E2WEFZOR.js";
34
34
  import "../chunk-AJIXH5JF.js";
35
- import "../chunk-J7OPJPYG.js";
35
+ import "../chunk-L6ZNURWN.js";
36
36
  import "../chunk-XTWHNLGD.js";
37
37
  import "../chunk-AM7S2TY6.js";
38
- import "../chunk-637HNKYP.js";
38
+ import "../chunk-HIIXCAEE.js";
39
39
  import "../chunk-CVYC6DUW.js";
40
- import "../chunk-ZVTKWWLV.js";
40
+ import "../chunk-QZL6E4UB.js";
41
41
  import "../chunk-CDUB5Q6J.js";
42
- import "../chunk-BNHAZ65R.js";
42
+ import "../chunk-UQUUNGTP.js";
43
+ import "../chunk-IVU3WN7S.js";
43
44
  import "../chunk-RIECV7SR.js";
44
45
  import "../chunk-LNOS24GV.js";
45
46
  import "../chunk-NLEW62VC.js";
@@ -52,11 +53,11 @@ import {
52
53
  getCoordinatorName,
53
54
  getEmployee,
54
55
  loadEmployees
55
- } from "../chunk-5XRKPKHJ.js";
56
+ } from "../chunk-5DCCKHDY.js";
56
57
  import "../chunk-TKDITWDN.js";
57
58
  import "../chunk-BBMTVAE3.js";
58
59
  import "../chunk-5YEUPUV4.js";
59
- import "../chunk-SWVRUCVM.js";
60
+ import "../chunk-UTDMTQNH.js";
60
61
  import "../chunk-YYB5PMTK.js";
61
62
  import "../chunk-NJFJWQNN.js";
62
63
  import "../chunk-V3W3SATA.js";
@@ -64,10 +65,10 @@ import "../chunk-JY5GAZYC.js";
64
65
  import "../chunk-FXU7JOXK.js";
65
66
  import "../chunk-HPXFKUGU.js";
66
67
  import "../chunk-WNBZJSQT.js";
67
- import "../chunk-I3FXDCUE.js";
68
+ import "../chunk-DKBPCOU4.js";
68
69
  import "../chunk-A7XLR3K7.js";
69
- import "../chunk-2A76BLAD.js";
70
- import "../chunk-QILQ5FCG.js";
70
+ import "../chunk-GB3AHV5F.js";
71
+ import "../chunk-A7JYF4RG.js";
71
72
  import "../chunk-ARX6TAGN.js";
72
73
  import "../chunk-QMSEL5YS.js";
73
74
  import "../chunk-HSGBZSCA.js";
@@ -1,25 +1,25 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  hybridSearch
4
- } from "../chunk-YQ3QJ3SM.js";
4
+ } from "../chunk-ZXB56YR2.js";
5
5
  import "../chunk-VMHZSZQJ.js";
6
6
  import {
7
7
  initStore
8
- } from "../chunk-HIIEIDD2.js";
9
- import "../chunk-ME3A4LKV.js";
8
+ } from "../chunk-OYQNNKNS.js";
9
+ import "../chunk-7UTJA6HF.js";
10
10
  import "../chunk-CHCA3ZM2.js";
11
11
  import "../chunk-OTVEIJUQ.js";
12
- import "../chunk-Z4AN75KW.js";
12
+ import "../chunk-3F2UB4IQ.js";
13
13
  import "../chunk-5MOYSU5A.js";
14
14
  import "../chunk-4QCFFW2H.js";
15
15
  import "../chunk-76CJBM36.js";
16
16
  import "../chunk-GJV3WDWM.js";
17
17
  import "../chunk-MP2AFCGL.js";
18
- import "../chunk-5XRKPKHJ.js";
18
+ import "../chunk-5DCCKHDY.js";
19
19
  import "../chunk-TKDITWDN.js";
20
20
  import "../chunk-BBMTVAE3.js";
21
21
  import "../chunk-5YEUPUV4.js";
22
- import "../chunk-SWVRUCVM.js";
22
+ import "../chunk-UTDMTQNH.js";
23
23
  import "../chunk-YYB5PMTK.js";
24
24
  import "../chunk-NJFJWQNN.js";
25
25
  import "../chunk-V3W3SATA.js";
@@ -3,17 +3,17 @@ import {
3
3
  findBestMatch,
4
4
  getRecentCommits,
5
5
  pushUnpushedCommits
6
- } from "../chunk-EJ5BRL7C.js";
6
+ } from "../chunk-JOO35RHR.js";
7
7
  import "../chunk-KZXMP6JG.js";
8
8
  import {
9
9
  flushBatch,
10
10
  initStore,
11
11
  writeMemory
12
- } from "../chunk-HIIEIDD2.js";
13
- import "../chunk-ME3A4LKV.js";
12
+ } from "../chunk-OYQNNKNS.js";
13
+ import "../chunk-7UTJA6HF.js";
14
14
  import "../chunk-CHCA3ZM2.js";
15
15
  import "../chunk-OTVEIJUQ.js";
16
- import "../chunk-Z4AN75KW.js";
16
+ import "../chunk-3F2UB4IQ.js";
17
17
  import "../chunk-5MOYSU5A.js";
18
18
  import "../chunk-4QCFFW2H.js";
19
19
  import "../chunk-76CJBM36.js";
@@ -21,30 +21,31 @@ import {
21
21
  createReviewForCompletedTask,
22
22
  sessionScopeFilter,
23
23
  updateTaskStatus
24
- } from "../chunk-LMZD3A6K.js";
24
+ } from "../chunk-XHYHX6F7.js";
25
25
  import "../chunk-BTSWFMEH.js";
26
- import "../chunk-DNKCJ6KV.js";
27
- import "../chunk-6FMS6DGO.js";
26
+ import "../chunk-WAEKYKTK.js";
27
+ import "../chunk-44C7QNZS.js";
28
+ import "../chunk-JTWTBX2M.js";
28
29
  import "../chunk-KI5PFRG6.js";
29
- import "../chunk-D3QU2KNF.js";
30
30
  import "../chunk-WT4RI36X.js";
31
+ import "../chunk-E23LNUWJ.js";
31
32
  import "../chunk-QAEWWYHL.js";
32
33
  import "../chunk-EIKATSE4.js";
33
- import "../chunk-E23LNUWJ.js";
34
- import "../chunk-RYDR7TRT.js";
34
+ import "../chunk-MDGYXUOV.js";
35
35
  import "../chunk-GBNB4EWD.js";
36
36
  import "../chunk-UXLO7VHX.js";
37
37
  import "../chunk-DSOQUQTV.js";
38
- import "../chunk-TTAPKUQV.js";
38
+ import "../chunk-E2WEFZOR.js";
39
39
  import "../chunk-AJIXH5JF.js";
40
- import "../chunk-J7OPJPYG.js";
40
+ import "../chunk-L6ZNURWN.js";
41
41
  import "../chunk-XTWHNLGD.js";
42
42
  import "../chunk-AM7S2TY6.js";
43
- import "../chunk-637HNKYP.js";
43
+ import "../chunk-HIIXCAEE.js";
44
44
  import "../chunk-CVYC6DUW.js";
45
- import "../chunk-ZVTKWWLV.js";
45
+ import "../chunk-QZL6E4UB.js";
46
46
  import "../chunk-CDUB5Q6J.js";
47
- import "../chunk-BNHAZ65R.js";
47
+ import "../chunk-UQUUNGTP.js";
48
+ import "../chunk-IVU3WN7S.js";
48
49
  import "../chunk-RIECV7SR.js";
49
50
  import "../chunk-LNOS24GV.js";
50
51
  import "../chunk-NLEW62VC.js";
@@ -56,11 +57,11 @@ import "../chunk-GJV3WDWM.js";
56
57
  import "../chunk-MP2AFCGL.js";
57
58
  import {
58
59
  getClient
59
- } from "../chunk-5XRKPKHJ.js";
60
+ } from "../chunk-5DCCKHDY.js";
60
61
  import "../chunk-TKDITWDN.js";
61
62
  import "../chunk-BBMTVAE3.js";
62
63
  import "../chunk-5YEUPUV4.js";
63
- import "../chunk-SWVRUCVM.js";
64
+ import "../chunk-UTDMTQNH.js";
64
65
  import "../chunk-YYB5PMTK.js";
65
66
  import "../chunk-NJFJWQNN.js";
66
67
  import "../chunk-V3W3SATA.js";
@@ -68,10 +69,10 @@ import "../chunk-JY5GAZYC.js";
68
69
  import "../chunk-FXU7JOXK.js";
69
70
  import "../chunk-HPXFKUGU.js";
70
71
  import "../chunk-WNBZJSQT.js";
71
- import "../chunk-I3FXDCUE.js";
72
+ import "../chunk-DKBPCOU4.js";
72
73
  import "../chunk-A7XLR3K7.js";
73
- import "../chunk-2A76BLAD.js";
74
- import "../chunk-QILQ5FCG.js";
74
+ import "../chunk-GB3AHV5F.js";
75
+ import "../chunk-A7JYF4RG.js";
75
76
  import "../chunk-ARX6TAGN.js";
76
77
  import "../chunk-QMSEL5YS.js";
77
78
  import "../chunk-HSGBZSCA.js";
@@ -441,7 +442,7 @@ try {
441
442
  } catch {
442
443
  }
443
444
  try {
444
- const { cleanupWorktree } = await import("../worktree-YNPSWYQY.js");
445
+ const { cleanupWorktree } = await import("../worktree-GOGT2LZP.js");
445
446
  const cleanup = cleanupWorktree(process.cwd(), agentName);
446
447
  if (cleanup.cleaned) {
447
448
  process.stderr.write(`[session-cleanup] worktree cleaned: ${cleanup.reason}
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  assertSecureEndpoint
3
- } from "../chunk-WAIFOWCF.js";
4
- import "../chunk-VQ7F3W7P.js";
3
+ } from "../chunk-77JP3LK4.js";
4
+ import "../chunk-WV3TOOL7.js";
5
5
  import "../chunk-NEHOQ3P2.js";
6
6
  import "../chunk-CW2UCKHS.js";
7
7
  import "../chunk-VV5EZZNT.js";
8
8
  import "../chunk-JTB5V6BV.js";
9
9
  import "../chunk-NUTZJZKW.js";
10
- import "../chunk-5CYFJQGV.js";
11
- import "../chunk-VMJ2UH4S.js";
10
+ import "../chunk-MBNIJXKI.js";
11
+ import "../chunk-PGLPUP37.js";
12
12
  import "../chunk-QGGH7LOU.js";
13
13
  import "../chunk-VHJVD3MZ.js";
14
14
  import "../chunk-TWMWHDOY.js";
@@ -17,11 +17,11 @@ import {
17
17
  resolveEmbeddingsEnabled,
18
18
  setEmbeddingsEnabled
19
19
  } from "../chunk-KWOAM7TA.js";
20
- import "../chunk-HIIEIDD2.js";
21
- import "../chunk-ME3A4LKV.js";
20
+ import "../chunk-OYQNNKNS.js";
21
+ import "../chunk-7UTJA6HF.js";
22
22
  import "../chunk-CHCA3ZM2.js";
23
23
  import "../chunk-OTVEIJUQ.js";
24
- import "../chunk-Z4AN75KW.js";
24
+ import "../chunk-3F2UB4IQ.js";
25
25
  import "../chunk-5MOYSU5A.js";
26
26
  import "../chunk-4QCFFW2H.js";
27
27
  import "../chunk-76CJBM36.js";
@@ -34,18 +34,19 @@ import {
34
34
  setAgentRuntime
35
35
  } from "../chunk-XTWHNLGD.js";
36
36
  import "../chunk-AM7S2TY6.js";
37
- import "../chunk-BNHAZ65R.js";
37
+ import "../chunk-UQUUNGTP.js";
38
+ import "../chunk-IVU3WN7S.js";
38
39
  import "../chunk-RIECV7SR.js";
39
40
  import "../chunk-LNOS24GV.js";
40
41
  import "../chunk-NLEW62VC.js";
41
42
  import "../chunk-MP2AFCGL.js";
42
43
  import {
43
44
  loadEmployeesSync
44
- } from "../chunk-5XRKPKHJ.js";
45
+ } from "../chunk-5DCCKHDY.js";
45
46
  import "../chunk-TKDITWDN.js";
46
47
  import "../chunk-BBMTVAE3.js";
47
48
  import "../chunk-5YEUPUV4.js";
48
- import "../chunk-SWVRUCVM.js";
49
+ import "../chunk-UTDMTQNH.js";
49
50
  import "../chunk-YYB5PMTK.js";
50
51
  import "../chunk-NJFJWQNN.js";
51
52
  import "../chunk-V3W3SATA.js";
@@ -55,10 +56,10 @@ import "../chunk-HPXFKUGU.js";
55
56
  import {
56
57
  DEFAULT_RUNTIME
57
58
  } from "../chunk-WNBZJSQT.js";
58
- import "../chunk-I3FXDCUE.js";
59
+ import "../chunk-DKBPCOU4.js";
59
60
  import "../chunk-A7XLR3K7.js";
60
- import "../chunk-2A76BLAD.js";
61
- import "../chunk-QILQ5FCG.js";
61
+ import "../chunk-GB3AHV5F.js";
62
+ import "../chunk-A7JYF4RG.js";
62
63
  import "../chunk-ARX6TAGN.js";
63
64
  import {
64
65
  loadConfig,