@askexenow/exe-os 0.9.396 → 0.9.397

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 (409) hide show
  1. package/deploy/stack-manifests/v0.9.json +134 -1
  2. package/dist/.dist-verified.json +3 -3
  3. package/dist/{active-agent-6CIFLMKA.js → active-agent-GHNUSBYO.js} +4 -4
  4. package/dist/{active-agent-7OKWCTDR.js → active-agent-GOCTWSHD.js} +4 -4
  5. package/dist/{agent-defs-generator-PZJGE6PL.js → agent-defs-generator-KKXWCDQR.js} +3 -3
  6. package/dist/{agentic-ontology-JTPDKIML.js → agentic-ontology-5JFHYHEN.js} +1 -1
  7. package/dist/{artifact-backup-Q7T3GQFO.js → artifact-backup-FDU7UQ5Z.js} +3 -3
  8. package/dist/{backfill-metadata-7QLL3FSG.js → backfill-metadata-OIVQN3GF.js} +7 -7
  9. package/dist/{background-jobs-V3DZRFKU.js → background-jobs-DXZXRPSE.js} +5 -1
  10. package/dist/{backup-verify-SCFVPBZH.js → backup-verify-ZKTVXYOK.js} +5 -5
  11. package/dist/{behavior-injection-CHSQWES4.js → behavior-injection-S2NBCHRK.js} +10 -10
  12. package/dist/{behavior-promotion-TCYWUNKR.js → behavior-promotion-WZIKTD3C.js} +9 -9
  13. package/dist/{behaviors-5FRO36HG.js → behaviors-T2N3VJS3.js} +8 -8
  14. package/dist/bin/age-ontology-load.js +1 -1
  15. package/dist/bin/agentic-ontology-backfill.js +9 -9
  16. package/dist/bin/agentic-reflection-backfill.js +10 -10
  17. package/dist/bin/agentic-semantic-label.js +9 -9
  18. package/dist/bin/backfill-conversations.js +7 -7
  19. package/dist/bin/backfill-responses.js +7 -7
  20. package/dist/bin/backfill-vectors.js +8 -8
  21. package/dist/bin/bulk-sync-postgres.js +17 -17
  22. package/dist/bin/cc-doctor.js +9 -9
  23. package/dist/bin/cleanup-stale-review-tasks.js +18 -18
  24. package/dist/bin/cli.js +28 -28
  25. package/dist/bin/deferred-daemon-restart.js +101 -100
  26. package/dist/bin/exe-actions.js +1 -1
  27. package/dist/bin/exe-agent-config.js +3 -3
  28. package/dist/bin/exe-agent.js +11 -11
  29. package/dist/bin/exe-assign.js +8 -8
  30. package/dist/bin/exe-boot.js +38 -38
  31. package/dist/bin/exe-call.js +8 -8
  32. package/dist/bin/exe-cloud.js +18 -18
  33. package/dist/bin/exe-config-dump.js +3 -3
  34. package/dist/bin/exe-dispatch.js +19 -19
  35. package/dist/bin/exe-doctor.js +6 -6
  36. package/dist/bin/exe-export-behaviors.js +12 -12
  37. package/dist/bin/exe-forget.js +10 -10
  38. package/dist/bin/exe-gateway.js +9 -9
  39. package/dist/bin/exe-grant.js +6 -6
  40. package/dist/bin/exe-healthcheck.js +9 -9
  41. package/dist/bin/exe-heartbeat.js +24 -24
  42. package/dist/bin/exe-kill.js +23 -23
  43. package/dist/bin/exe-launch-agent.js +31 -31
  44. package/dist/bin/exe-mcp.js +5 -5
  45. package/dist/bin/exe-memory-reads.js +7 -7
  46. package/dist/bin/exe-new-employee.js +11 -11
  47. package/dist/bin/exe-os-mcp-proxy.js +5 -5
  48. package/dist/bin/exe-pending-messages.js +19 -19
  49. package/dist/bin/exe-pending-notifications.js +18 -18
  50. package/dist/bin/exe-pending-reviews.js +19 -19
  51. package/dist/bin/exe-rename.js +6 -6
  52. package/dist/bin/exe-review.js +22 -22
  53. package/dist/bin/exe-search.js +9 -9
  54. package/dist/bin/exe-session-cleanup.js +24 -24
  55. package/dist/bin/exe-settings.js +17 -17
  56. package/dist/bin/exe-start-codex.js +18 -18
  57. package/dist/bin/exe-start-opencode.js +16 -16
  58. package/dist/bin/exe-status.js +20 -20
  59. package/dist/bin/exe-support.js +4 -4
  60. package/dist/bin/exe-team.js +5 -5
  61. package/dist/bin/git-sweep.js +22 -22
  62. package/dist/bin/graph-backfill.js +9 -9
  63. package/dist/bin/graph-export.js +8 -8
  64. package/dist/bin/hooks-cli.js +1 -1
  65. package/dist/bin/import-history.js +11 -11
  66. package/dist/bin/install.js +105 -104
  67. package/dist/bin/intercom-check.js +5 -5
  68. package/dist/bin/mcp-sessions.js +2 -2
  69. package/dist/bin/orchestration-metrics.js +5 -5
  70. package/dist/bin/postgres-agentic-reflection-backfill.js +3 -3
  71. package/dist/bin/postgres-agentic-semantic-backfill.js +2 -2
  72. package/dist/bin/reconcile-backlog.js +2 -2
  73. package/dist/bin/registry-proxy.js +1 -1
  74. package/dist/bin/repair-document-chunks.js +7 -7
  75. package/dist/bin/scan-tasks.js +19 -19
  76. package/dist/bin/setup.js +2 -2
  77. package/dist/bin/shard-migrate.js +8 -8
  78. package/dist/bin/stack-update.js +8 -8
  79. package/dist/bin/verify-stack.js +1 -1
  80. package/dist/bin/vps-health-gate.js +1 -1
  81. package/dist/{boot-generation-HBXSYBPC.js → boot-generation-SJQ7JNY7.js} +4 -4
  82. package/dist/{boot-review-sections-66P5JMRV.js → boot-review-sections-G33ATPSN.js} +17 -17
  83. package/dist/{bug-landed-reconciler-QIOAKAPY.js → bug-landed-reconciler-C4UHLQKA.js} +7 -7
  84. package/dist/build-manifest.json +943 -938
  85. package/dist/{capability-cards-6BANN36W.js → capability-cards-KD4UW5DR.js} +3 -3
  86. package/dist/{capacity-monitor-TIKUMNDU.js → capacity-monitor-RKLRCGOG.js} +19 -19
  87. package/dist/{catchup-brief-EVJS7D6C.js → catchup-brief-UHPPUIRL.js} +24 -24
  88. package/dist/{chunk-UALXBUDX.js → chunk-2DDXCN4A.js} +3 -3
  89. package/dist/{chunk-LVFD2DVI.js → chunk-2QF657OK.js} +3 -3
  90. package/dist/{chunk-H4QZCG4C.js → chunk-2SDTYPJ5.js} +1 -1
  91. package/dist/{chunk-SXBLRCQY.js → chunk-2WMPGRZV.js} +4 -4
  92. package/dist/{chunk-OGJCUMSM.js → chunk-2YESHX5N.js} +1 -1
  93. package/dist/{chunk-XOPIR34P.js → chunk-36WZEH4Z.js} +1 -1
  94. package/dist/{chunk-G7BVAQVT.js → chunk-3MK5RGIP.js} +1 -1
  95. package/dist/{chunk-ZTFNKVOM.js → chunk-3ODUTQG5.js} +2 -2
  96. package/dist/{chunk-WFKZZSEB.js → chunk-3QYMH77Q.js} +1 -1
  97. package/dist/{chunk-A7XLR3K7.js → chunk-3R7UDPVR.js} +1 -2
  98. package/dist/{chunk-Y7BP2MO2.js → chunk-44FX5OK6.js} +1 -1
  99. package/dist/{chunk-T6C6RT6R.js → chunk-4BC5DUD7.js} +3 -3
  100. package/dist/{chunk-7UCCSSJO.js → chunk-4MFPPHG4.js} +1 -1
  101. package/dist/{chunk-K3EU7B72.js → chunk-4Y5EKT3D.js} +5 -5
  102. package/dist/{chunk-IVGAATAY.js → chunk-5523XPQ5.js} +4 -4
  103. package/dist/{chunk-PGLASTLI.js → chunk-5BCJKGB3.js} +5 -5
  104. package/dist/{chunk-5RDMJ325.js → chunk-5DFDHMOD.js} +5 -5
  105. package/dist/{chunk-U4GMOT4M.js → chunk-5TAJDCZY.js} +49 -12
  106. package/dist/{chunk-55M4DF76.js → chunk-5UC27XF6.js} +2 -2
  107. package/dist/{chunk-3OG5LZRK.js → chunk-62MT4SAM.js} +1 -1
  108. package/dist/{chunk-EHFPSOLD.js → chunk-6G7CTQBF.js} +4 -4
  109. package/dist/{chunk-L2AUCHHJ.js → chunk-7KMFHVKB.js} +9 -9
  110. package/dist/{chunk-K6NJ7FAZ.js → chunk-ABDYYZSP.js} +33 -8
  111. package/dist/{chunk-JKUCAMV4.js → chunk-AFDVI6KB.js} +1 -1
  112. package/dist/{chunk-MOQBMEMW.js → chunk-AFYSK7BX.js} +4 -4
  113. package/dist/{chunk-BX336WRX.js → chunk-AMSNTFS4.js} +1 -1
  114. package/dist/{chunk-YQJC5ETC.js → chunk-AQZ3WYPU.js} +2 -2
  115. package/dist/{chunk-WUQSEZWR.js → chunk-AUZ4VPKO.js} +1 -1
  116. package/dist/{chunk-XFF6SPWG.js → chunk-AXGHNNOO.js} +1 -1
  117. package/dist/{chunk-TFVMRQCZ.js → chunk-AZRKNXMB.js} +4 -4
  118. package/dist/{chunk-BREDG6EG.js → chunk-BIHUXE5T.js} +9 -5
  119. package/dist/{chunk-GHCF7J4Q.js → chunk-BLZ2LEZF.js} +3 -3
  120. package/dist/{chunk-4CGMGUDL.js → chunk-BMGX4GUS.js} +28 -8
  121. package/dist/{chunk-Q7WMOEKA.js → chunk-BNLXWJLD.js} +39 -21
  122. package/dist/{chunk-RPOIKNJZ.js → chunk-C44UWID5.js} +1 -1
  123. package/dist/{chunk-HHNGQIP3.js → chunk-D73NQPRC.js} +6 -6
  124. package/dist/{chunk-FJPCVXQX.js → chunk-DFIH6ZZF.js} +1 -1
  125. package/dist/{chunk-VN27TCZE.js → chunk-DFNCYH7G.js} +2 -2
  126. package/dist/{chunk-RFIAHXTF.js → chunk-DNCEIP3G.js} +1 -1
  127. package/dist/{chunk-V5KLIBUV.js → chunk-DOMITJOC.js} +1 -1
  128. package/dist/{chunk-BKKZN3DJ.js → chunk-DQQTUIQJ.js} +7 -7
  129. package/dist/{chunk-CEKNYT2D.js → chunk-E7IALVOP.js} +12 -12
  130. package/dist/{chunk-656JZVNV.js → chunk-EK5EYX37.js} +3 -3
  131. package/dist/{chunk-WEW4TRBL.js → chunk-EPKJANA5.js} +1 -1
  132. package/dist/{chunk-M7DI6JWD.js → chunk-EZ2JLFDT.js} +169 -169
  133. package/dist/{chunk-G3KSUXEA.js → chunk-F63FRP7L.js} +1 -1
  134. package/dist/{chunk-I4DBM5ME.js → chunk-F6OV7JP2.js} +1 -1
  135. package/dist/{chunk-7WDLUCHN.js → chunk-FQMLNMUZ.js} +3 -3
  136. package/dist/{chunk-QQJI7JGN.js → chunk-FZPJBU3F.js} +4 -4
  137. package/dist/{chunk-DXQIIZQC.js → chunk-GAUMGWSQ.js} +12 -12
  138. package/dist/{chunk-LEA7VKPU.js → chunk-GGSXOKK6.js} +10 -10
  139. package/dist/{chunk-6VMVQ3G7.js → chunk-GTW56AUB.js} +57 -12
  140. package/dist/{chunk-X5FCZYWK.js → chunk-GUZOREJ4.js} +2 -2
  141. package/dist/{chunk-D2ZII4AG.js → chunk-GW67QP3K.js} +6 -6
  142. package/dist/{chunk-LNCTMU7Y.js → chunk-HNVYH2WE.js} +2 -2
  143. package/dist/{chunk-4NOGWIBA.js → chunk-HSEBRWE2.js} +3 -3
  144. package/dist/{chunk-B6CBN6EF.js → chunk-HWP3WCLC.js} +51 -4
  145. package/dist/{chunk-KBCUHYHP.js → chunk-I3MPYHFM.js} +2 -2
  146. package/dist/{chunk-Y5ZD4CTB.js → chunk-ITV2CEFW.js} +1 -1
  147. package/dist/{chunk-BJ3ZQAIL.js → chunk-IV63ZWK6.js} +1 -1
  148. package/dist/{chunk-6FWHAROQ.js → chunk-JI7TFGJY.js} +3 -3
  149. package/dist/{chunk-EHDAWQ5P.js → chunk-JO7ZJTFL.js} +1 -1
  150. package/dist/{chunk-5BUJW46U.js → chunk-K5FSX6H6.js} +104 -10
  151. package/dist/{chunk-LRAMTS6U.js → chunk-KAY2CDFK.js} +7 -7
  152. package/dist/{chunk-ZEYBEJBX.js → chunk-KDRYMX6M.js} +11 -11
  153. package/dist/{chunk-DXIMITSY.js → chunk-KOOURQVV.js} +3 -3
  154. package/dist/{chunk-5UUHXDX6.js → chunk-KPDKZEVT.js} +2 -2
  155. package/dist/{chunk-DSZM7OHM.js → chunk-M65DE5CO.js} +1 -1
  156. package/dist/{chunk-WDLJZKJK.js → chunk-M7P6GCXS.js} +3 -3
  157. package/dist/{chunk-LGNDHTDP.js → chunk-MB3XK7YW.js} +1 -1
  158. package/dist/{chunk-MGPEY7I2.js → chunk-MKHUI5UB.js} +1 -1
  159. package/dist/{chunk-JSOXH5HW.js → chunk-NW6XAQLN.js} +2 -2
  160. package/dist/{chunk-5AGOX2XD.js → chunk-O22YLZXQ.js} +1 -1
  161. package/dist/{chunk-WAPCTGGB.js → chunk-O2INE7WD.js} +1 -1
  162. package/dist/{chunk-6Q3M7KZE.js → chunk-OJ2OGGK2.js} +3 -3
  163. package/dist/{chunk-UWLWYGJJ.js → chunk-P25NNTN3.js} +1 -1
  164. package/dist/{chunk-V4JWFJZR.js → chunk-P4C3BX2L.js} +16 -16
  165. package/dist/{chunk-EG4ZUF4A.js → chunk-PAYDZ6J3.js} +2 -2
  166. package/dist/{chunk-ONYDMXRV.js → chunk-PSB3QGYL.js} +1 -1
  167. package/dist/{chunk-4CB4VETH.js → chunk-PTI2NYAM.js} +2 -2
  168. package/dist/{chunk-2NW4LRDU.js → chunk-QIMM3CSI.js} +92 -12
  169. package/dist/{chunk-OODTK35C.js → chunk-QKH64COS.js} +5 -5
  170. package/dist/{chunk-JVK6JYR4.js → chunk-QR7VJ5WB.js} +1 -1
  171. package/dist/{chunk-KM7M4LKN.js → chunk-QRWGGJAA.js} +3 -3
  172. package/dist/{chunk-F5VP7K3C.js → chunk-QTVEBBQT.js} +59 -12
  173. package/dist/{chunk-SUZWRZE5.js → chunk-RAPFF7J7.js} +1 -1
  174. package/dist/{chunk-TQJMG65I.js → chunk-RC6Q5KSW.js} +2 -2
  175. package/dist/{chunk-ONMKHJJL.js → chunk-RGPEUXOE.js} +7 -4
  176. package/dist/{chunk-45R4367S.js → chunk-ROOST7ZU.js} +1 -1
  177. package/dist/{chunk-GHIMWZN4.js → chunk-ROQ6R3FV.js} +1 -1
  178. package/dist/{chunk-YG6MHFUP.js → chunk-RWDU3OKM.js} +2 -2
  179. package/dist/{chunk-TQEW3RJ3.js → chunk-SC3QNY3H.js} +2 -2
  180. package/dist/{chunk-INLY2LLN.js → chunk-SDYIUXW7.js} +1 -1
  181. package/dist/{chunk-PAJ7FUTI.js → chunk-SH5IEP2Q.js} +1 -1
  182. package/dist/{chunk-RPV6CHKA.js → chunk-SKWDDWHT.js} +4 -4
  183. package/dist/{chunk-W6W6ED2D.js → chunk-T4LKMZKF.js} +1 -1
  184. package/dist/{chunk-PE7RXZQE.js → chunk-TFKVXWVG.js} +5 -5
  185. package/dist/{chunk-NTWCFT5X.js → chunk-TM2BQ6PS.js} +3 -3
  186. package/dist/{chunk-V7NXFHZM.js → chunk-TQDEHRVD.js} +1 -1
  187. package/dist/{chunk-S2Q2RXYQ.js → chunk-TRBSWP2V.js} +1 -1
  188. package/dist/{chunk-UW5KXM4D.js → chunk-TTHUPNBU.js} +1 -1
  189. package/dist/{chunk-VH4IRABX.js → chunk-TWHPVYBU.js} +4 -4
  190. package/dist/{chunk-JC3LUYW6.js → chunk-U67KLIPZ.js} +1 -1
  191. package/dist/{chunk-UVEDFARJ.js → chunk-UBFKX2AN.js} +13 -13
  192. package/dist/{chunk-7INEFMVU.js → chunk-UNFHKOTF.js} +44 -15
  193. package/dist/{chunk-B2P6OX3V.js → chunk-VESYCD2K.js} +3 -3
  194. package/dist/{chunk-VV7D7KEX.js → chunk-VRPXCQV6.js} +1 -1
  195. package/dist/{chunk-X2X3IGZU.js → chunk-W4H2MZAS.js} +17 -5
  196. package/dist/{chunk-FNVZAK4C.js → chunk-WO6KY2SP.js} +6 -6
  197. package/dist/{chunk-SLRKZRLC.js → chunk-WOG5XT2P.js} +1 -1
  198. package/dist/{chunk-4UOEKQF3.js → chunk-XG7OHNPA.js} +6 -6
  199. package/dist/{chunk-5YAXBLZR.js → chunk-XHSCV3BM.js} +1 -1
  200. package/dist/{chunk-DDYKAJMS.js → chunk-XJRF26L5.js} +1 -1
  201. package/dist/{chunk-3CAKKEEY.js → chunk-XWOEPR2Q.js} +2 -2
  202. package/dist/{chunk-7C4YKCUK.js → chunk-XYB7GHGV.js} +1 -1
  203. package/dist/{chunk-V4RIHICU.js → chunk-Y2DTTZCV.js} +26 -26
  204. package/dist/{chunk-GPB6X2OI.js → chunk-YBUSK4GH.js} +1 -1
  205. package/dist/{chunk-5M4UNU6O.js → chunk-YLY66VLU.js} +3 -3
  206. package/dist/{chunk-ZSFFCRVI.js → chunk-YPSS2SHD.js} +2 -2
  207. package/dist/{chunk-SSGIMXA6.js → chunk-YYPHTYOV.js} +3 -3
  208. package/dist/{chunk-OWPOJ6OG.js → chunk-ZBUUFS5G.js} +1 -1
  209. package/dist/{chunk-6OQ2TRZK.js → chunk-ZFDQJVKH.js} +8 -2
  210. package/dist/{cleanup-graph-garbage-AXNCBW5B.js → cleanup-graph-garbage-EPZIDN7L.js} +8 -8
  211. package/dist/{cli-shutdown-HIZRMWKR.js → cli-shutdown-DM5YVHIP.js} +1 -1
  212. package/dist/{cloud-sync-command-XYKKRYHG.js → cloud-sync-command-FNOSXKNT.js} +2 -2
  213. package/dist/{cloud-sync-db-init-GJ322ZNM.js → cloud-sync-db-init-5DIULXS2.js} +1 -1
  214. package/dist/{cloud-sync-shutdown-K4XBDTDB.js → cloud-sync-shutdown-RTTZ3C53.js} +3 -3
  215. package/dist/{co-activation-AQXLWFBQ.js → co-activation-7D34HSWC.js} +3 -3
  216. package/dist/{co-occurrence-O67PD32I.js → co-occurrence-7JJMQ3GI.js} +6 -6
  217. package/dist/{consent-passphrase-DTOZ7LIP.js → consent-passphrase-ZNB3GYWB.js} +2 -2
  218. package/dist/{conversation-entity-extractor-VRL2EEZQ.js → conversation-entity-extractor-YSNOVYBN.js} +3 -3
  219. package/dist/{crdt-sync-RPCGSGIE.js → crdt-sync-MHQ6XSMO.js} +4 -4
  220. package/dist/{crm-webhook-4QADMY7C.js → crm-webhook-WLFDORDH.js} +2 -2
  221. package/dist/{cto-delegation-gate-6N2R2VA2.js → cto-delegation-gate-KD5POZYX.js} +17 -17
  222. package/dist/{daemon-orchestration-ASCAZ63R.js → daemon-orchestration-3LRZCT6E.js} +25 -22
  223. package/dist/{daemon-restart-circuit-breaker-CD4VMCU7.js → daemon-restart-circuit-breaker-PY2MZL7Z.js} +1 -1
  224. package/dist/{db-integrity-events-7NKWS5MT.js → db-integrity-events-6363LLDT.js} +1 -1
  225. package/dist/{db-restore-events-XYL6CGPC.js → db-restore-events-R5S7XTHX.js} +47 -11
  226. package/dist/{doc-graph-extractor-VVSMYOR3.js → doc-graph-extractor-KNX2SMZH.js} +6 -6
  227. package/dist/{documents-5WNSGY3Q.js → documents-2QWQETQJ.js} +8 -8
  228. package/dist/{dreaming-2TPLO3TO.js → dreaming-AQHABHGO.js} +22 -22
  229. package/dist/{employee-boot-brief-MYXATLSU.js → employee-boot-brief-XJDE3JSJ.js} +26 -26
  230. package/dist/{entity-boost-BW62CICZ.js → entity-boost-T6WZN7UG.js} +1 -1
  231. package/dist/{exe-drift-PFFRJJTZ.js → exe-drift-NRQ36UMA.js} +4 -4
  232. package/dist/{exe-export-LL5SV6P2.js → exe-export-ET4SWQ3K.js} +9 -9
  233. package/dist/{exe-import-LSQMDFDX.js → exe-import-DSMF6Z6O.js} +9 -9
  234. package/dist/{exe-key-266A5GJN.js → exe-key-UUMREJEU.js} +101 -100
  235. package/dist/{exe-org-T5DQXHGZ.js → exe-org-GV72LHO5.js} +36 -36
  236. package/dist/{exe-snapshot-LMMGFX7O.js → exe-snapshot-EQG3R45R.js} +25 -25
  237. package/dist/{fast-db-init-6MQDCHEB.js → fast-db-init-YRCNKGFD.js} +1 -1
  238. package/dist/{founder-context-6Q6OU7Q7.js → founder-context-3X5JFEQQ.js} +3 -3
  239. package/dist/{founder-monitor-envelope-RBSOSB6K.js → founder-monitor-envelope-OYRYJZBS.js} +4 -4
  240. package/dist/{fts-integrity-PHCKKOBC.js → fts-integrity-PL7TKYTM.js} +1 -1
  241. package/dist/gateway/index.js +21 -21
  242. package/dist/{gateway-client-4GHRSWHK.js → gateway-client-R3XZHUNA.js} +1 -1
  243. package/dist/{git-staleness-APYCKV4V.js → git-staleness-JWTUU3B7.js} +3 -3
  244. package/dist/{global-procedures-HYFE2UTQ.js → global-procedures-GUCIJGTG.js} +5 -5
  245. package/dist/{graph-auto-extract-LFXYAEY5.js → graph-auto-extract-SGRQ37NU.js} +6 -6
  246. package/dist/{graph-query-4F4D4NDH.js → graph-query-ABAIG6YK.js} +1 -1
  247. package/dist/{graph-rag-YZNY6Z3H.js → graph-rag-DB5SXSJ6.js} +3 -3
  248. package/dist/{hook-integrity-KNCDGZUD.js → hook-integrity-AGQSJJGP.js} +1 -1
  249. package/dist/{hook-prefetch-ZBUCJBJB.js → hook-prefetch-GUBRFD5N.js} +18 -18
  250. package/dist/hooks/bug-report-worker.js +22 -22
  251. package/dist/hooks/codex-stop-task-finalizer.js +24 -24
  252. package/dist/hooks/commit-complete.js +22 -22
  253. package/dist/hooks/error-recall.js +11 -11
  254. package/dist/hooks/exe-heartbeat-hook.js +5 -5
  255. package/dist/hooks/ingest-worker.js +7 -7
  256. package/dist/hooks/ingest.js +13 -13
  257. package/dist/hooks/instructions-loaded.js +7 -7
  258. package/dist/hooks/manifest.json +20 -20
  259. package/dist/hooks/notification.js +6 -6
  260. package/dist/hooks/post-compact.js +5 -5
  261. package/dist/hooks/post-tool-combined.js +13 -13
  262. package/dist/hooks/pre-compact.js +21 -21
  263. package/dist/hooks/pre-tool-use.js +2 -2
  264. package/dist/hooks/prompt-submit.js +39 -39
  265. package/dist/hooks/session-end.js +26 -26
  266. package/dist/hooks/session-start.js +18 -18
  267. package/dist/hooks/stop.js +24 -24
  268. package/dist/hooks/subagent-stop.js +23 -23
  269. package/dist/hooks/summary-worker.js +25 -25
  270. package/dist/index.js +29 -29
  271. package/dist/{installer-TNTAEKCO.js → installer-IRALYZ4O.js} +7 -7
  272. package/dist/{installer-MABZRBTF.js → installer-KC5BRKQD.js} +7 -7
  273. package/dist/{installer-ZWGREGIY.js → installer-W2REG4OT.js} +7 -7
  274. package/dist/{intercom-queue-UHL4MXLB.js → intercom-queue-WJ52Y7ZM.js} +17 -17
  275. package/dist/lib/cloud-sync.js +17 -17
  276. package/dist/lib/consolidation.js +9 -9
  277. package/dist/lib/crypto.js +3 -3
  278. package/dist/lib/database.js +3 -3
  279. package/dist/lib/db-backup.js +1 -1
  280. package/dist/lib/db-write-worker.js +3 -3
  281. package/dist/lib/db.js +3 -3
  282. package/dist/lib/device-registry.js +1 -1
  283. package/dist/lib/employee-templates.js +6 -6
  284. package/dist/lib/employees.js +3 -3
  285. package/dist/lib/exe-daemon.js +90 -90
  286. package/dist/lib/hybrid-search.js +9 -9
  287. package/dist/lib/identity.js +3 -3
  288. package/dist/lib/keychain.js +1 -1
  289. package/dist/lib/license.js +3 -3
  290. package/dist/lib/messaging.js +18 -18
  291. package/dist/lib/post-tool-memory.js +5 -5
  292. package/dist/lib/registry-proxy.js +1 -1
  293. package/dist/lib/reminders.js +4 -4
  294. package/dist/lib/schedules.js +8 -8
  295. package/dist/lib/session-registry.js +5 -5
  296. package/dist/lib/skill-learning.js +9 -9
  297. package/dist/lib/store.js +7 -7
  298. package/dist/lib/task-router.js +4 -4
  299. package/dist/lib/tasks.js +19 -19
  300. package/dist/lib/tmux-routing.js +17 -17
  301. package/dist/lib/token-spend.js +4 -4
  302. package/dist/lib/workflow-drift.js +270 -0
  303. package/dist/lib/ws-client.js +1 -1
  304. package/dist/{license-gate-PJVMRJFR.js → license-gate-YAA3BFTG.js} +4 -4
  305. package/dist/{license-recheck-5PXGSCSR.js → license-recheck-WOVNBY54.js} +1 -1
  306. package/dist/{license-sync-YCV3GMHN.js → license-sync-4GBRQ3NQ.js} +3 -3
  307. package/dist/mcp/register-tools.js +100 -99
  308. package/dist/mcp/server.js +100 -99
  309. package/dist/mcp/tools/complete-reminder.js +5 -5
  310. package/dist/mcp/tools/create-reminder.js +5 -5
  311. package/dist/mcp/tools/create-task.js +21 -21
  312. package/dist/mcp/tools/deactivate-behavior.js +10 -10
  313. package/dist/mcp/tools/list-reminders.js +5 -5
  314. package/dist/mcp/tools/list-tasks.js +21 -21
  315. package/dist/mcp/tools/send-message.js +20 -20
  316. package/dist/mcp/tools/update-task.js +20 -20
  317. package/dist/{mcp-http-config-TZLMIQDV.js → mcp-http-config-JJFHT7EU.js} +5 -5
  318. package/dist/{mcp-session-identity-FQUOB5SF.js → mcp-session-identity-AA24Y7M7.js} +17 -17
  319. package/dist/{memory-cards-BH53SM42.js → memory-cards-FE7CH766.js} +7 -7
  320. package/dist/{memory-graph-extractor-I6WXM5IC.js → memory-graph-extractor-XALPE33I.js} +7 -7
  321. package/dist/{memory-maintenance-CD2PUBDK.js → memory-maintenance-42VRD746.js} +1 -1
  322. package/dist/{memory-poisoning-defense-CC6RGH6M.js → memory-poisoning-defense-R7T4ZQBO.js} +3 -3
  323. package/dist/{memory-pressure-watchdog-CDEOMXDR.js → memory-pressure-watchdog-YR7OOVNY.js} +18 -18
  324. package/dist/{memory-reflection-VXFXG55L.js → memory-reflection-SU57VEBT.js} +7 -7
  325. package/dist/{memory-write-repository-NLQLH4UL.js → memory-write-repository-AZFMYNFE.js} +1 -1
  326. package/dist/{monitor-grants-6VWM3J3S.js → monitor-grants-EQOXKY44.js} +3 -3
  327. package/dist/{monitor-identity-YPFRT4AT.js → monitor-identity-QO7YCJ45.js} +2 -2
  328. package/dist/{notification-ledger-2GIT6AZ7.js → notification-ledger-BYBU427R.js} +18 -18
  329. package/dist/{notifications-LHDV4WKP.js → notifications-7EBPEORY.js} +17 -17
  330. package/dist/{orchestration-events-ABHTWWN4.js → orchestration-events-UWSAFL25.js} +4 -4
  331. package/dist/{orchestrator-N7FCY6H2.js → orchestrator-T3LSQK7S.js} +19 -19
  332. package/dist/{org-brief-session-O6YNFSX3.js → org-brief-session-4VXN7UFY.js} +15 -15
  333. package/dist/{org-consent-policy-FJH3KTAL.js → org-consent-policy-X4ZEAHIR.js} +5 -5
  334. package/dist/{org-join-55WN6YRL.js → org-join-2GRVJWCW.js} +11 -11
  335. package/dist/{org-key-admin-FFMICGMY.js → org-key-admin-Q54ZASNY.js} +13 -13
  336. package/dist/{org-key-epoch-RKOF3H2A.js → org-key-epoch-F3XYALXK.js} +5 -5
  337. package/dist/{org-key-pin-SMZS3GE3.js → org-key-pin-3ZKOEYQS.js} +3 -3
  338. package/dist/{org-membership-7VBJJBGO.js → org-membership-3EHM5TDB.js} +4 -4
  339. package/dist/{org-partner-config-7LOXIBW5.js → org-partner-config-N32CQSIW.js} +8 -8
  340. package/dist/{org-partner-runtime-CIFSQNOI.js → org-partner-runtime-S7Q4W5I5.js} +15 -15
  341. package/dist/{org-row-visibility-EBN7EI6C.js → org-row-visibility-IUOZSB56.js} +1 -1
  342. package/dist/{pipeline-router-VETNF3MF.js → pipeline-router-GCAJZN4H.js} +4 -4
  343. package/dist/{plan-limits-7NDDDRHR.js → plan-limits-N5TAWTKK.js} +7 -7
  344. package/dist/{pre-tool-use-impl-GIVQWE6Q.js → pre-tool-use-impl-VCHU3RAP.js} +33 -33
  345. package/dist/{project-name-5D6ZQNAY.js → project-name-2GN2XXVD.js} +4 -4
  346. package/dist/{projection-worker-4BB4ZN3S.js → projection-worker-3GKE4WEE.js} +2 -2
  347. package/dist/{prospective-memory-WUK4ZEVR.js → prospective-memory-TYA3TWQD.js} +3 -3
  348. package/dist/{push-notifications-UZQLJGEY.js → push-notifications-NKOXRWUY.js} +18 -18
  349. package/dist/{reproject-worktree-memories-XFUKN3ZC.js → reproject-worktree-memories-OPUWR2K2.js} +17 -17
  350. package/dist/{reranker-6F6Y7QHA.js → reranker-IYVEMKHW.js} +1 -1
  351. package/dist/{retrieval-health-SCFZCV7Q.js → retrieval-health-BIGTBGIP.js} +2 -2
  352. package/dist/{review-polling-CFDLKJE4.js → review-polling-ZLIBMKW4.js} +18 -18
  353. package/dist/runtime/index.js +21 -21
  354. package/dist/{seat-benefit-VDQJYJOB.js → seat-benefit-YEUQBNCS.js} +2 -2
  355. package/dist/{session-events-4SCVQUMA.js → session-events-H5T2UBTK.js} +18 -18
  356. package/dist/{session-kill-telemetry-OBBCVT3O.js → session-kill-telemetry-AHUOYQEM.js} +18 -18
  357. package/dist/{session-scope-LDRY5PBO.js → session-scope-KVIRKTX7.js} +17 -17
  358. package/dist/{setup-wizard-LS6BNHYK.js → setup-wizard-5VRFHYUR.js} +2 -2
  359. package/dist/{shard-manager-7X42DNFE.js → shard-manager-TPRWCONR.js} +2 -2
  360. package/dist/{skill-refinement-B4EGDBE2.js → skill-refinement-2IOY2TOP.js} +4 -4
  361. package/dist/{skill-retrieval-2ZHX6EQZ.js → skill-retrieval-55KMSROF.js} +11 -11
  362. package/dist/{skill-usage-DO6M6W5E.js → skill-usage-JCSBXOM6.js} +4 -4
  363. package/dist/{stack-generate-manifest-H2YBCYRW.js → stack-generate-manifest-HDZZ5ZRU.js} +5 -5
  364. package/dist/{stack-promote-WOATPAGM.js → stack-promote-OLIJI4GI.js} +5 -5
  365. package/dist/{stack-release-BAD4BTHF.js → stack-release-QBLVY2ZF.js} +6 -11
  366. package/dist/{stack-update-H3YXPL7Z.js → stack-update-JHPGK6AM.js} +4 -4
  367. package/dist/{steward-gate-T2XM2NE4.js → steward-gate-2YQ6DOO3.js} +4 -4
  368. package/dist/{subagent-brief-injection-5B2XWRZI.js → subagent-brief-injection-BKSHRUTQ.js} +28 -28
  369. package/dist/{support-bug-actions-GQYF373N.js → support-bug-actions-G2I77EPX.js} +4 -4
  370. package/dist/{support-inbox-WYWKDLFI.js → support-inbox-FP44VIA4.js} +14 -14
  371. package/dist/{task-enforcement-IIWZPEHF.js → task-enforcement-MJSY7ZZF.js} +18 -18
  372. package/dist/{task-request-inbox-GYK2XLSB.js → task-request-inbox-AZUGPSW6.js} +5 -5
  373. package/dist/{task-scope-YHXKRO2Y.js → task-scope-NF7JKUD7.js} +17 -17
  374. package/dist/{tasks-crud-BHG6IQ5Z.js → tasks-crud-SRP4GIL2.js} +17 -17
  375. package/dist/{tasks-notify-PX22TSMC.js → tasks-notify-VP3ZRTKA.js} +18 -18
  376. package/dist/{tasks-review-6BPGUXJB.js → tasks-review-ASOST3JT.js} +17 -17
  377. package/dist/{telemetry-upload-HCV4KRB6.js → telemetry-upload-KIMFENPR.js} +9 -9
  378. package/dist/{token-budget-YVIX2L2Y.js → token-budget-47HHAV2D.js} +4 -4
  379. package/dist/{tool-telemetry-JWI2CHI3.js → tool-telemetry-D6DUOQHB.js} +1 -1
  380. package/dist/tui/App.js +27 -27
  381. package/dist/{tui-data-E5EA34WJ.js → tui-data-3Y2DUC57.js} +21 -21
  382. package/dist/{update-support-JCUIC5J2.js → update-support-5G5P4ZGV.js} +12 -12
  383. package/dist/{whatsapp-XRTRUPFR.js → whatsapp-KGOFKMVE.js} +2 -2
  384. package/dist/{wiki-acl-PKJLSR6U.js → wiki-acl-CXFMQHKZ.js} +1 -1
  385. package/dist/{work-claims-BB6S6QU5.js → work-claims-O2WSV3EK.js} +4 -4
  386. package/dist/{work-state-heartbeat-O2SS2VWD.js → work-state-heartbeat-EPJZICCW.js} +1 -1
  387. package/dist/{workflow-engine-XWQS7VBY.js → workflow-engine-MVMZIOEQ.js} +2 -2
  388. package/dist/{worktree-F3TKPS5Z.js → worktree-DIXUIFXS.js} +5 -5
  389. package/dist/{worktree-sweep-OF4ST7IR.js → worktree-sweep-ZKPAO5EG.js} +10 -6
  390. package/package.json +2 -1
  391. package/release-notes.json +27 -7
  392. package/stack.release.json +3 -3
  393. /package/dist/{chunk-PKPJ62VF.js → chunk-3JRVKBF2.js} +0 -0
  394. /package/dist/{chunk-CEPUA7JC.js → chunk-BTIXHM2F.js} +0 -0
  395. /package/dist/{chunk-W3DHPCFX.js → chunk-FMCLWB6A.js} +0 -0
  396. /package/dist/{chunk-XDZWSK3F.js → chunk-GASLH556.js} +0 -0
  397. /package/dist/{chunk-MQNHXT54.js → chunk-GZL3DOGB.js} +0 -0
  398. /package/dist/{chunk-4D7SDPAB.js → chunk-MBZXKIG3.js} +0 -0
  399. /package/dist/{chunk-KY5XPFMA.js → chunk-OJ7SLC5P.js} +0 -0
  400. /package/dist/{chunk-CULFTILF.js → chunk-ONXR3HDH.js} +0 -0
  401. /package/dist/{chunk-MFRU5TLH.js → chunk-RICCASG5.js} +0 -0
  402. /package/dist/{chunk-I3F7MGSI.js → chunk-RYXW24OR.js} +0 -0
  403. /package/dist/{chunk-GNFWZ2MA.js → chunk-TXMGX6U2.js} +0 -0
  404. /package/dist/{chunk-NRR6VAG2.js → chunk-X7VWZ4ZI.js} +0 -0
  405. /package/dist/{chunk-W7S7AEVC.js → chunk-ZZBQO44I.js} +0 -0
  406. /package/dist/{core-memory-Z4FUMYA6.js → core-memory-LDOO2QBB.js} +0 -0
  407. /package/dist/{memory-isolation-PDFRPDVY.js → memory-isolation-JVIFSPYK.js} +0 -0
  408. /package/dist/{oauth-server-TM5XWRX3.js → oauth-server-N22SJWOH.js} +0 -0
  409. /package/dist/{project-boot-VFW3KDOY.js → project-boot-46E2KI2Y.js} +0 -0
@@ -0,0 +1,270 @@
1
+ import {
2
+ applyLivenessAcks
3
+ } from "../chunk-RT57D7C4.js";
4
+ import "../chunk-MLKGABMK.js";
5
+
6
+ // src/lib/workflow-drift.ts
7
+ import { createHash } from "crypto";
8
+ import { isMap, isNode, isSeq, LineCounter, parseDocument, visit } from "yaml";
9
+ var BLOCK_OPEN_RE = /^(\s*)(?:-\s+)?(?:[^#\s][^:]*:\s*|-\s*)[|>](?:[1-9][+-]?|[+-][1-9]?)?\s*(?:#.*)?$/;
10
+ function blockScalarLines(lines) {
11
+ const flags = new Array(lines.length).fill(false);
12
+ let blockIndent = null;
13
+ let pendingBlanks = [];
14
+ for (let i = 0; i < lines.length; i++) {
15
+ const line = lines[i] ?? "";
16
+ const indent = line.length - line.trimStart().length;
17
+ if (blockIndent !== null) {
18
+ if (line.trim() === "") {
19
+ pendingBlanks.push(i);
20
+ continue;
21
+ }
22
+ if (indent > blockIndent) {
23
+ for (const b of pendingBlanks) flags[b] = true;
24
+ pendingBlanks = [];
25
+ flags[i] = true;
26
+ continue;
27
+ }
28
+ blockIndent = null;
29
+ pendingBlanks = [];
30
+ }
31
+ if (BLOCK_OPEN_RE.test(line)) blockIndent = indent;
32
+ }
33
+ const lineCounter = new LineCounter();
34
+ visit(parseDocument(lines.join("\n"), { lineCounter, keepSourceTokens: true }), {
35
+ Scalar(_key, node) {
36
+ const block = node.type === "BLOCK_LITERAL" || node.type === "BLOCK_FOLDED";
37
+ const multilinePlain = node.type === "PLAIN" && !!node.range && lineCounter.linePos(node.range[0]).line !== lineCounter.linePos(node.range[1] - 1).line;
38
+ if (!node.range || !block && !multilinePlain && node.type !== "QUOTE_SINGLE" && node.type !== "QUOTE_DOUBLE") return;
39
+ const firstContinuation = lineCounter.linePos(node.range[0]).line;
40
+ let last = lineCounter.linePos(node.range[1] - 1).line - 1;
41
+ const keepTrailing = node.srcToken?.type === "block-scalar" && node.srcToken.props.some((token) => token.type === "block-scalar-header" && token.source.includes("+"));
42
+ if (block && !keepTrailing) while (last >= firstContinuation && !lines[last]?.trim()) last--;
43
+ for (let i = firstContinuation; i <= last; i++) flags[i] = true;
44
+ }
45
+ });
46
+ return flags;
47
+ }
48
+ function isCommentaryLine(line, inBlockScalar = false) {
49
+ if (inBlockScalar) return false;
50
+ const t = line.trim();
51
+ return t === "" || t.startsWith("#");
52
+ }
53
+ function classifyDifference(removed, added) {
54
+ const all = [...removed, ...added];
55
+ if (all.length === 0) return "comment-only";
56
+ return all.every(
57
+ (e) => typeof e === "string" ? isCommentaryLine(e) : isCommentaryLine(e.line, e.inBlockScalar)
58
+ ) ? "comment-only" : "semantic";
59
+ }
60
+ var KEY_RE = /^(\s*)-?\s*([A-Za-z_][\w.-]*)\s*:/;
61
+ function anchorAt(lines, index) {
62
+ const start = Math.min(Math.max(index, 0), Math.max(lines.length - 1, 0));
63
+ let baseIndent = null;
64
+ for (let i = start; i >= 0; i--) {
65
+ const line = lines[i] ?? "";
66
+ if (isCommentaryLine(line)) continue;
67
+ baseIndent = (/^\s*/.exec(line)?.[0] ?? "").length;
68
+ break;
69
+ }
70
+ let nearestKey = null;
71
+ for (let i = start; i >= 0; i--) {
72
+ const line = lines[i] ?? "";
73
+ if (isCommentaryLine(line)) continue;
74
+ const m = KEY_RE.exec(line);
75
+ if (!m) continue;
76
+ if (nearestKey === null) nearestKey = m[2];
77
+ if (baseIndent !== null && m[1].length < baseIndent) return m[2];
78
+ }
79
+ return nearestKey ?? "(file header)";
80
+ }
81
+ function fileKey(repo, workflow) {
82
+ return `${repo}:${workflow}`;
83
+ }
84
+ function differenceKey(repo, workflow, removed, added, location = "") {
85
+ const body = [
86
+ ...removed.map((l) => `-${l}`),
87
+ ...added.map((l) => `+${l}`)
88
+ ].join("\n");
89
+ const hash = createHash("sha256").update(JSON.stringify([workflow, location, body])).digest("hex").slice(0, 12);
90
+ return `${repo}:${workflow}:${hash}`;
91
+ }
92
+ function structuralLocation(text, index) {
93
+ const lines = text.split("\n");
94
+ const indent = lines[index]?.match(/^\s*/)?.[0].length ?? 0;
95
+ const offset = lines.slice(0, index).reduce((n, line) => n + line.length + 1, 0) + indent;
96
+ function locate(node, path) {
97
+ if (!isNode(node) || !node.range || offset < node.range[0] || offset >= node.range[2]) return null;
98
+ if (isMap(node)) {
99
+ for (const pair of node.items) {
100
+ const childPath = [...path, String(pair.key)];
101
+ const found = locate(pair.value, childPath) ?? locate(pair.key, childPath);
102
+ if (found) return found;
103
+ }
104
+ } else if (isSeq(node)) {
105
+ for (const [i, child] of node.items.entries()) {
106
+ const found = locate(child, [...path, String(i)]);
107
+ if (found) return found;
108
+ }
109
+ }
110
+ return JSON.stringify([path, text.slice(node.range[0], offset).split("\n").length - 1]);
111
+ }
112
+ return locate(parseDocument(text).contents, []) ?? `line:${index}`;
113
+ }
114
+ function diffLines(canonical, copy) {
115
+ const n = canonical.length;
116
+ const m = copy.length;
117
+ const lcs = Array.from({ length: n + 1 }, () => new Array(m + 1).fill(0));
118
+ for (let i2 = n - 1; i2 >= 0; i2--) {
119
+ for (let j2 = m - 1; j2 >= 0; j2--) {
120
+ lcs[i2][j2] = canonical[i2] === copy[j2] ? lcs[i2 + 1][j2 + 1] + 1 : Math.max(lcs[i2 + 1][j2], lcs[i2][j2 + 1]);
121
+ }
122
+ }
123
+ const hunks = [];
124
+ let i = 0;
125
+ let j = 0;
126
+ let current = null;
127
+ const flush = () => {
128
+ if (current && (current.removed.length > 0 || current.added.length > 0)) hunks.push(current);
129
+ current = null;
130
+ };
131
+ while (i < n || j < m) {
132
+ if (i < n && j < m && canonical[i] === copy[j]) {
133
+ flush();
134
+ i++;
135
+ j++;
136
+ continue;
137
+ }
138
+ if (!current) current = { canonicalIndex: i, copyIndex: j, removed: [], added: [] };
139
+ if (j < m && (i >= n || lcs[i][j + 1] >= lcs[i + 1][j])) {
140
+ current.added.push(copy[j]);
141
+ j++;
142
+ } else {
143
+ current.removed.push(canonical[i]);
144
+ i++;
145
+ }
146
+ }
147
+ flush();
148
+ return hunks;
149
+ }
150
+ function compareWorkflow(input) {
151
+ const canonical = input.canonicalText.split("\n");
152
+ const copy = input.copyText.split("\n");
153
+ const canonicalBlocks = blockScalarLines(canonical);
154
+ const copyBlocks = blockScalarLines(copy);
155
+ return diffLines(canonical, copy).map((h) => ({
156
+ key: differenceKey(input.repo, input.workflow, h.removed, h.added, structuralLocation(input.canonicalText, h.canonicalIndex)),
157
+ kind: classifyDifference(
158
+ h.removed.map((line, k) => ({
159
+ line,
160
+ inBlockScalar: canonicalBlocks[h.canonicalIndex + k] === true
161
+ })),
162
+ h.added.map((line, k) => ({
163
+ line,
164
+ inBlockScalar: copyBlocks[h.copyIndex + k] === true
165
+ }))
166
+ ),
167
+ anchor: anchorAt(canonical, h.canonicalIndex),
168
+ canonicalLine: h.canonicalIndex + 1,
169
+ removed: h.removed,
170
+ added: h.added
171
+ }));
172
+ }
173
+ function verdictFor(input) {
174
+ const base = { repo: input.repo, workflow: input.workflow };
175
+ if (input.repo === input.canonicalRepo) {
176
+ return { ...base, verdict: "canonical", differences: [], unverifiedReason: null };
177
+ }
178
+ if (input.copyText === null) {
179
+ if (input.absent) {
180
+ return { ...base, verdict: "absent", differences: [], unverifiedReason: null };
181
+ }
182
+ return {
183
+ ...base,
184
+ verdict: "unverified",
185
+ differences: [],
186
+ unverifiedReason: input.error ?? "the copy could not be read and no reason was captured -- treated as UNVERIFIED, never as in-sync"
187
+ };
188
+ }
189
+ const differences = compareWorkflow({
190
+ repo: input.repo,
191
+ workflow: input.workflow,
192
+ canonicalText: input.canonicalText,
193
+ copyText: input.copyText
194
+ });
195
+ const unexcused = differences.filter(
196
+ (d) => d.kind === "semantic" && !isExcused(d, input.repo, input.workflow, input.excusedKeys)
197
+ );
198
+ return {
199
+ ...base,
200
+ verdict: unexcused.length > 0 ? "diverged" : "agreed",
201
+ differences,
202
+ unverifiedReason: null
203
+ };
204
+ }
205
+ function isExcused(d, repo, workflow, excused) {
206
+ return excused.has(d.key) || excused.has(fileKey(repo, workflow));
207
+ }
208
+ function decideDrift(input) {
209
+ const { results, exceptions, now } = input;
210
+ const semanticKeys = [];
211
+ for (const r of results) {
212
+ const semantic = r.differences.filter((d) => d.kind === "semantic");
213
+ if (semantic.length === 0) continue;
214
+ semanticKeys.push(fileKey(r.repo, r.workflow));
215
+ for (const d of semantic) semanticKeys.push(d.key);
216
+ }
217
+ const ackApplication = applyLivenessAcks({ findingKeys: semanticKeys, acks: exceptions, now });
218
+ const excused = new Set(ackApplication.acknowledged);
219
+ const errors = [];
220
+ const inspected = results.filter((r) => r.verdict !== "canonical");
221
+ const readable = inspected.filter((r) => r.verdict === "agreed" || r.verdict === "diverged");
222
+ if (inspected.length === 0 || readable.length === 0) {
223
+ errors.push({
224
+ code: "probe",
225
+ repo: "(none)",
226
+ message: `workflow-drift inspected ${inspected.length} sibling repo(s) and could read ${readable.length} of them. A drift check that compared nothing has not established that anything is in sync -- this is a failure, not a pass.`
227
+ });
228
+ }
229
+ for (const r of results) {
230
+ if (r.verdict === "unverified") {
231
+ errors.push({
232
+ code: "unverified",
233
+ repo: r.repo,
234
+ message: `${r.repo}: ${r.workflow} is UNVERIFIED -- ${r.unverifiedReason}. This is not "in sync"; it is "we do not know", which is the state that let this workflow stay broken for weeks.`
235
+ });
236
+ continue;
237
+ }
238
+ const unexcused = r.differences.filter(
239
+ (d) => d.kind === "semantic" && !isExcused(d, r.repo, r.workflow, excused)
240
+ );
241
+ for (const d of unexcused) {
242
+ errors.push({
243
+ code: "drift",
244
+ repo: r.repo,
245
+ message: `${r.repo}: ${r.workflow} diverges at \`${d.anchor}\` (canonical line ${d.canonicalLine}, id ${d.key}) -- ${d.removed.length} line(s) removed, ${d.added.length} added. Either port the canonical behaviour, or add an owned, dated exception naming why this repo is deliberately different.`
246
+ });
247
+ }
248
+ }
249
+ for (const p of ackApplication.ackProblems) {
250
+ errors.push({
251
+ code: "exception",
252
+ repo: p.ack?.key?.split(":")[0] ?? "(unknown)",
253
+ message: `${p.state} exception: ${p.detail}`
254
+ });
255
+ }
256
+ return { decision: { failed: errors.length > 0, errors }, ackApplication };
257
+ }
258
+ export {
259
+ anchorAt,
260
+ blockScalarLines,
261
+ classifyDifference,
262
+ compareWorkflow,
263
+ decideDrift,
264
+ diffLines,
265
+ differenceKey,
266
+ fileKey,
267
+ isCommentaryLine,
268
+ isExcused,
269
+ verdictFor
270
+ };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  assertSecureWsUrl
3
- } from "../chunk-W7S7AEVC.js";
3
+ } from "../chunk-ZZBQO44I.js";
4
4
  import "../chunk-MLKGABMK.js";
5
5
 
6
6
  // src/lib/ws-client.ts
@@ -3,10 +3,10 @@ import {
3
3
  getCachedLicenseGate,
4
4
  initLicenseGate,
5
5
  refreshLicenseGate
6
- } from "./chunk-WUQSEZWR.js";
7
- import "./chunk-6VMVQ3G7.js";
8
- import "./chunk-A7XLR3K7.js";
9
- import "./chunk-PKPJ62VF.js";
6
+ } from "./chunk-AUZ4VPKO.js";
7
+ import "./chunk-GTW56AUB.js";
8
+ import "./chunk-3R7UDPVR.js";
9
+ import "./chunk-3JRVKBF2.js";
10
10
  import "./chunk-MMS2HBRT.js";
11
11
  import "./chunk-RH4AH3YB.js";
12
12
  import "./chunk-HSGBZSCA.js";
@@ -6,7 +6,7 @@ var LICENSE_RECHECK_FIRST_DELAY_MS = 5 * 60 * 1e3;
6
6
  async function defaultDeps() {
7
7
  const [{ maybeRefreshLicense }, { refreshLicenseGate }] = await Promise.all([
8
8
  import("./lib/license.js"),
9
- import("./license-gate-PJVMRJFR.js")
9
+ import("./license-gate-YAA3BFTG.js")
10
10
  ]);
11
11
  return {
12
12
  maybeRefresh: maybeRefreshLicense,
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  pgSslConfig
3
3
  } from "./chunk-EQSQ4HBW.js";
4
- import "./chunk-6VMVQ3G7.js";
4
+ import "./chunk-GTW56AUB.js";
5
5
  import {
6
6
  PLAN_LIMITS
7
- } from "./chunk-A7XLR3K7.js";
8
- import "./chunk-PKPJ62VF.js";
7
+ } from "./chunk-3R7UDPVR.js";
8
+ import "./chunk-3JRVKBF2.js";
9
9
  import "./chunk-MMS2HBRT.js";
10
10
  import "./chunk-RH4AH3YB.js";
11
11
  import "./chunk-HSGBZSCA.js";
@@ -1,100 +1,101 @@
1
1
  import {
2
2
  registerAllTools
3
- } from "../chunk-M7DI6JWD.js";
4
- import "../chunk-7C4YKCUK.js";
5
- import "../chunk-SXBLRCQY.js";
3
+ } from "../chunk-EZ2JLFDT.js";
4
+ import "../chunk-XYB7GHGV.js";
5
+ import "../chunk-2WMPGRZV.js";
6
6
  import "../chunk-557C2IGL.js";
7
- import "../chunk-TQEW3RJ3.js";
8
- import "../chunk-5BUJW46U.js";
9
- import "../chunk-OWPOJ6OG.js";
7
+ import "../chunk-SC3QNY3H.js";
8
+ import "../chunk-K5FSX6H6.js";
9
+ import "../chunk-ZBUUFS5G.js";
10
10
  import "../chunk-L6DCLZG7.js";
11
11
  import "../chunk-USZHUBHT.js";
12
- import "../chunk-4CB4VETH.js";
13
- import "../chunk-D2ZII4AG.js";
14
- import "../chunk-CEPUA7JC.js";
15
- import "../chunk-ZTFNKVOM.js";
16
- import "../chunk-Y5ZD4CTB.js";
17
- import "../chunk-3CAKKEEY.js";
18
- import "../chunk-VH4IRABX.js";
19
- import "../chunk-Q7WMOEKA.js";
20
- import "../chunk-C6U7XWOC.js";
21
- import "../chunk-TFVMRQCZ.js";
22
- import "../chunk-WUQSEZWR.js";
23
- import "../chunk-GNFWZ2MA.js";
24
- import "../chunk-J4MJ3DVJ.js";
12
+ import "../chunk-ITV2CEFW.js";
13
+ import "../chunk-PTI2NYAM.js";
14
+ import "../chunk-GW67QP3K.js";
15
+ import "../chunk-BTIXHM2F.js";
16
+ import "../chunk-3ODUTQG5.js";
17
+ import "../chunk-XWOEPR2Q.js";
18
+ import "../chunk-TWHPVYBU.js";
19
+ import "../chunk-BNLXWJLD.js";
20
+ import "../chunk-AZRKNXMB.js";
25
21
  import "../chunk-P6WC6Z5G.js";
22
+ import "../chunk-C6U7XWOC.js";
26
23
  import "../chunk-NAZBCT55.js";
27
- import "../chunk-NTWCFT5X.js";
28
- import "../chunk-5RDMJ325.js";
29
- import "../chunk-4NOGWIBA.js";
30
- import "../chunk-B2P6OX3V.js";
31
- import "../chunk-4UOEKQF3.js";
32
- import "../chunk-X2X3IGZU.js";
33
- import "../chunk-T6C6RT6R.js";
34
- import "../chunk-YQJC5ETC.js";
35
- import "../chunk-K3EU7B72.js";
36
- import "../chunk-TQJMG65I.js";
37
- import "../chunk-VV7D7KEX.js";
24
+ import "../chunk-AUZ4VPKO.js";
25
+ import "../chunk-TXMGX6U2.js";
26
+ import "../chunk-J4MJ3DVJ.js";
27
+ import "../chunk-4BC5DUD7.js";
28
+ import "../chunk-TM2BQ6PS.js";
29
+ import "../chunk-AQZ3WYPU.js";
30
+ import "../chunk-5DFDHMOD.js";
31
+ import "../chunk-HSEBRWE2.js";
32
+ import "../chunk-VESYCD2K.js";
33
+ import "../chunk-XG7OHNPA.js";
34
+ import "../chunk-W4H2MZAS.js";
35
+ import "../chunk-4Y5EKT3D.js";
36
+ import "../chunk-RC6Q5KSW.js";
37
+ import "../chunk-VRPXCQV6.js";
38
38
  import "../chunk-EVMOKRBC.js";
39
39
  import "../chunk-XHU3KOKJ.js";
40
- import "../chunk-MFRU5TLH.js";
41
- import "../chunk-OODTK35C.js";
42
- import "../chunk-HHNGQIP3.js";
43
- import "../chunk-LGNDHTDP.js";
40
+ import "../chunk-RICCASG5.js";
41
+ import "../chunk-QKH64COS.js";
42
+ import "../chunk-D73NQPRC.js";
43
+ import "../chunk-MB3XK7YW.js";
44
44
  import "../chunk-3FGBBJYM.js";
45
- import "../chunk-V7NXFHZM.js";
46
- import "../chunk-7WDLUCHN.js";
47
- import "../chunk-QQJI7JGN.js";
48
- import "../chunk-G7BVAQVT.js";
49
- import "../chunk-JVK6JYR4.js";
50
- import "../chunk-XOPIR34P.js";
51
- import "../chunk-EHFPSOLD.js";
52
- import "../chunk-S2Q2RXYQ.js";
53
- import "../chunk-MOQBMEMW.js";
54
- import "../chunk-ZEYBEJBX.js";
45
+ import "../chunk-TQDEHRVD.js";
46
+ import "../chunk-KDRYMX6M.js";
55
47
  import "../chunk-S2YTU74T.js";
56
- import "../chunk-SSGIMXA6.js";
57
- import "../chunk-UALXBUDX.js";
58
- import "../chunk-5M4UNU6O.js";
59
- import "../chunk-VN27TCZE.js";
60
- import "../chunk-RPV6CHKA.js";
61
- import "../chunk-Y7BP2MO2.js";
48
+ import "../chunk-FQMLNMUZ.js";
49
+ import "../chunk-FZPJBU3F.js";
50
+ import "../chunk-3MK5RGIP.js";
51
+ import "../chunk-QR7VJ5WB.js";
52
+ import "../chunk-36WZEH4Z.js";
53
+ import "../chunk-6G7CTQBF.js";
54
+ import "../chunk-TRBSWP2V.js";
55
+ import "../chunk-AFYSK7BX.js";
56
+ import "../chunk-YYPHTYOV.js";
57
+ import "../chunk-2DDXCN4A.js";
58
+ import "../chunk-YLY66VLU.js";
59
+ import "../chunk-DFNCYH7G.js";
60
+ import "../chunk-SKWDDWHT.js";
61
+ import "../chunk-44FX5OK6.js";
62
62
  import "../chunk-3OEVDGIY.js";
63
- import "../chunk-ONMKHJJL.js";
64
- import "../chunk-BREDG6EG.js";
63
+ import "../chunk-QTVEBBQT.js";
64
+ import "../chunk-RGPEUXOE.js";
65
+ import "../chunk-BIHUXE5T.js";
65
66
  import "../chunk-SSC7EKY2.js";
66
- import "../chunk-6FWHAROQ.js";
67
- import "../chunk-PE7RXZQE.js";
67
+ import "../chunk-JI7TFGJY.js";
68
+ import "../chunk-TFKVXWVG.js";
68
69
  import "../chunk-VPHJ2LUI.js";
69
70
  import "../chunk-SNHYZYGZ.js";
70
71
  import "../chunk-KM6XSFHP.js";
71
72
  import "../chunk-ZPPPHVSU.js";
72
73
  import "../chunk-PYS43F2X.js";
73
- import "../chunk-4CGMGUDL.js";
74
- import "../chunk-U4GMOT4M.js";
74
+ import "../chunk-BMGX4GUS.js";
75
+ import "../chunk-5TAJDCZY.js";
75
76
  import "../chunk-YQGMSXT5.js";
76
77
  import "../chunk-CBPNZFSU.js";
77
- import "../chunk-RFIAHXTF.js";
78
+ import "../chunk-DNCEIP3G.js";
78
79
  import "../chunk-MMRUBN3I.js";
79
80
  import "../chunk-2XZ6X3PJ.js";
80
81
  import "../chunk-PMVVUIHH.js";
81
- import "../chunk-45R4367S.js";
82
- import "../chunk-X5FCZYWK.js";
82
+ import "../chunk-ROOST7ZU.js";
83
+ import "../chunk-GUZOREJ4.js";
83
84
  import "../chunk-IZWMWJZT.js";
84
- import "../chunk-4D7SDPAB.js";
85
- import "../chunk-LEA7VKPU.js";
85
+ import "../chunk-MBZXKIG3.js";
86
+ import "../chunk-GGSXOKK6.js";
86
87
  import "../chunk-NEHOQ3P2.js";
87
- import "../chunk-DSZM7OHM.js";
88
- import "../chunk-INLY2LLN.js";
89
- import "../chunk-7UCCSSJO.js";
88
+ import "../chunk-M65DE5CO.js";
89
+ import "../chunk-SDYIUXW7.js";
90
+ import "../chunk-4MFPPHG4.js";
90
91
  import "../chunk-NPXIS2RY.js";
91
92
  import "../chunk-SKTAZGFI.js";
92
93
  import "../chunk-X2Z5GT3V.js";
93
- import "../chunk-KBCUHYHP.js";
94
- import "../chunk-LNCTMU7Y.js";
94
+ import "../chunk-I3MPYHFM.js";
95
+ import "../chunk-HNVYH2WE.js";
95
96
  import "../chunk-W5BFPFVY.js";
96
- import "../chunk-WDLJZKJK.js";
97
- import "../chunk-JSOXH5HW.js";
97
+ import "../chunk-M7P6GCXS.js";
98
+ import "../chunk-NW6XAQLN.js";
98
99
  import "../chunk-Z6BZQHP5.js";
99
100
  import "../chunk-GUMRIUI5.js";
100
101
  import "../chunk-VGMACSEV.js";
@@ -103,48 +104,48 @@ import "../chunk-ZM6EZAVY.js";
103
104
  import "../chunk-3OX5S7KZ.js";
104
105
  import "../chunk-IJCWBYA5.js";
105
106
  import "../chunk-QGGH7LOU.js";
106
- import "../chunk-G3KSUXEA.js";
107
+ import "../chunk-F63FRP7L.js";
107
108
  import "../chunk-2MUKF6YI.js";
108
- import "../chunk-I4DBM5ME.js";
109
- import "../chunk-CEKNYT2D.js";
110
- import "../chunk-W3DHPCFX.js";
109
+ import "../chunk-F6OV7JP2.js";
110
+ import "../chunk-E7IALVOP.js";
111
+ import "../chunk-FMCLWB6A.js";
111
112
  import "../chunk-VMHZSZQJ.js";
112
- import "../chunk-V4JWFJZR.js";
113
- import "../chunk-I3F7MGSI.js";
113
+ import "../chunk-P4C3BX2L.js";
114
+ import "../chunk-RYXW24OR.js";
114
115
  import "../chunk-CHCA3ZM2.js";
115
116
  import "../chunk-OTVEIJUQ.js";
116
- import "../chunk-MQNHXT54.js";
117
- import "../chunk-L2AUCHHJ.js";
118
- import "../chunk-IVGAATAY.js";
119
- import "../chunk-NRR6VAG2.js";
120
- import "../chunk-5UUHXDX6.js";
117
+ import "../chunk-GZL3DOGB.js";
118
+ import "../chunk-7KMFHVKB.js";
119
+ import "../chunk-5523XPQ5.js";
120
+ import "../chunk-X7VWZ4ZI.js";
121
+ import "../chunk-KPDKZEVT.js";
121
122
  import "../chunk-RJ67XAJU.js";
122
- import "../chunk-RPOIKNJZ.js";
123
+ import "../chunk-C44UWID5.js";
123
124
  import "../chunk-NRLJOV7M.js";
124
125
  import "../chunk-5MOYSU5A.js";
125
126
  import "../chunk-T4IDLAZM.js";
126
127
  import "../chunk-76CJBM36.js";
127
128
  import "../chunk-QLZ46RCK.js";
128
- import "../chunk-V4RIHICU.js";
129
- import "../chunk-BJ3ZQAIL.js";
130
- import "../chunk-UW5KXM4D.js";
131
- import "../chunk-WFKZZSEB.js";
129
+ import "../chunk-Y2DTTZCV.js";
130
+ import "../chunk-IV63ZWK6.js";
131
+ import "../chunk-TTHUPNBU.js";
132
+ import "../chunk-3QYMH77Q.js";
133
+ import "../chunk-WT4RI36X.js";
134
+ import "../chunk-E23LNUWJ.js";
132
135
  import "../chunk-TDF2XKLK.js";
133
136
  import "../chunk-EIKATSE4.js";
134
137
  import "../chunk-ZKGWHT56.js";
135
- import "../chunk-WT4RI36X.js";
136
138
  import "../chunk-MJCSEIFI.js";
137
- import "../chunk-E23LNUWJ.js";
138
- import "../chunk-FJPCVXQX.js";
139
+ import "../chunk-DFIH6ZZF.js";
139
140
  import "../chunk-VI4ATC6I.js";
140
141
  import "../chunk-A27Q27CT.js";
141
142
  import "../chunk-6L4VIYLZ.js";
142
- import "../chunk-OGJCUMSM.js";
143
+ import "../chunk-2YESHX5N.js";
143
144
  import "../chunk-T5SM4RXY.js";
144
- import "../chunk-JKUCAMV4.js";
145
+ import "../chunk-AFDVI6KB.js";
145
146
  import "../chunk-GWAN2BDB.js";
146
147
  import "../chunk-AM7S2TY6.js";
147
- import "../chunk-KM7M4LKN.js";
148
+ import "../chunk-QRWGGJAA.js";
148
149
  import "../chunk-CVYC6DUW.js";
149
150
  import "../chunk-3NFV2N4Y.js";
150
151
  import "../chunk-HME6ITKV.js";
@@ -156,21 +157,21 @@ import "../chunk-IMYGYIAI.js";
156
157
  import "../chunk-NLEW62VC.js";
157
158
  import "../chunk-3DAEZILW.js";
158
159
  import "../chunk-DRTJCG6B.js";
159
- import "../chunk-GHIMWZN4.js";
160
+ import "../chunk-ROQ6R3FV.js";
160
161
  import "../chunk-HYZV25LY.js";
161
162
  import "../chunk-GJV3WDWM.js";
162
163
  import "../chunk-H5V5N3Q4.js";
163
- import "../chunk-XDZWSK3F.js";
164
+ import "../chunk-GASLH556.js";
164
165
  import "../chunk-ML4S5SHZ.js";
165
166
  import "../chunk-MP2AFCGL.js";
166
167
  import "../chunk-YRUZK2QA.js";
167
- import "../chunk-DXQIIZQC.js";
168
+ import "../chunk-GAUMGWSQ.js";
168
169
  import "../chunk-BBMTVAE3.js";
169
170
  import "../chunk-TKDITWDN.js";
170
- import "../chunk-EHDAWQ5P.js";
171
+ import "../chunk-DQQTUIQJ.js";
172
+ import "../chunk-JO7ZJTFL.js";
171
173
  import "../chunk-7FE43JRU.js";
172
174
  import "../chunk-5YEUPUV4.js";
173
- import "../chunk-BKKZN3DJ.js";
174
175
  import "../chunk-YYB5PMTK.js";
175
176
  import "../chunk-WAAGVFFN.js";
176
177
  import "../chunk-QH5ZQ5SJ.js";
@@ -178,13 +179,13 @@ import "../chunk-ZQEJ4IX2.js";
178
179
  import "../chunk-C7GHNJPW.js";
179
180
  import "../chunk-SO7KTH3Q.js";
180
181
  import "../chunk-3VW5ZP2F.js";
181
- import "../chunk-5AGOX2XD.js";
182
+ import "../chunk-O22YLZXQ.js";
182
183
  import "../chunk-F55P3H4S.js";
183
184
  import "../chunk-B6TI3TZT.js";
184
185
  import "../chunk-FTZET5YX.js";
185
- import "../chunk-6VMVQ3G7.js";
186
- import "../chunk-A7XLR3K7.js";
187
- import "../chunk-PKPJ62VF.js";
186
+ import "../chunk-GTW56AUB.js";
187
+ import "../chunk-3R7UDPVR.js";
188
+ import "../chunk-3JRVKBF2.js";
188
189
  import "../chunk-A7JYF4RG.js";
189
190
  import "../chunk-ARX6TAGN.js";
190
191
  import "../chunk-MMS2HBRT.js";