@askexenow/exe-os 0.9.384 → 0.9.389

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 (481) hide show
  1. package/deploy/compose/.env.askexe-control-plane.example +6 -0
  2. package/deploy/compose/.env.customer.example +1 -1
  3. package/deploy/compose/.env.example +1 -1
  4. package/deploy/compose/docker-compose.yml +16 -0
  5. package/deploy/compose/generate-env.ts +1 -1
  6. package/deploy/compose/sso-edge/sso-redirect.conf +18 -3
  7. package/deploy/stack-manifests/v0.9.json +1160 -1
  8. package/dist/.dist-verified.json +3 -3
  9. package/dist/{active-agent-F5V4E4UL.js → active-agent-RZ24KSJN.js} +8 -6
  10. package/dist/{active-agent-YTBB4ZQM.js → active-agent-YWSWPIEA.js} +8 -6
  11. package/dist/{agent-defs-generator-7TFISIJQ.js → agent-defs-generator-GY3UBREJ.js} +8 -6
  12. package/dist/{agent-heartbeat-CQPGJIFF.js → agent-heartbeat-GUVUUQVM.js} +1 -1
  13. package/dist/{agent-loop-EZ7LDAGD.js → agent-loop-HPNCH3HK.js} +1 -1
  14. package/dist/{agentic-ontology-XVTUVV7W.js → agentic-ontology-RHYNXEKE.js} +1 -1
  15. package/dist/{artifact-backup-TF6YWQT2.js → artifact-backup-HGUFSIJH.js} +19 -6
  16. package/dist/{backfill-metadata-J6MXIDCW.js → backfill-metadata-XLFASEOD.js} +11 -9
  17. package/dist/{backup-verify-6DVBQMDP.js → backup-verify-TUQEICWA.js} +1 -1
  18. package/dist/{behavior-injection-XDA7ZCYN.js → behavior-injection-GXO7ERGN.js} +14 -12
  19. package/dist/{behavior-promotion-4VLQ7LXK.js → behavior-promotion-V63WIZ4N.js} +13 -11
  20. package/dist/{behaviors-SCCZP7RZ.js → behaviors-RMLDPLOF.js} +18 -11
  21. package/dist/bin/agentic-ontology-backfill.js +12 -10
  22. package/dist/bin/agentic-reflection-backfill.js +13 -11
  23. package/dist/bin/agentic-semantic-label.js +12 -10
  24. package/dist/bin/backfill-conversations.js +11 -9
  25. package/dist/bin/backfill-responses.js +11 -9
  26. package/dist/bin/backfill-vectors.js +13 -11
  27. package/dist/bin/bulk-sync-postgres.js +20 -18
  28. package/dist/bin/cc-doctor.js +15 -13
  29. package/dist/bin/cleanup-stale-review-tasks.js +44 -32
  30. package/dist/bin/cli.js +109 -30
  31. package/dist/bin/customer-readiness.js +55 -25
  32. package/dist/bin/deferred-daemon-restart.js +111 -108
  33. package/dist/bin/exe-actions.js +7 -1
  34. package/dist/bin/exe-agent-config.js +8 -6
  35. package/dist/bin/exe-agent.js +18 -16
  36. package/dist/bin/exe-assign.js +13 -11
  37. package/dist/bin/exe-boot.js +49 -47
  38. package/dist/bin/exe-call.js +9 -7
  39. package/dist/bin/exe-cicd.js +19 -8
  40. package/dist/bin/exe-cloud.js +59 -25
  41. package/dist/bin/exe-config-dump.js +8 -6
  42. package/dist/bin/exe-dispatch.js +23 -21
  43. package/dist/bin/exe-doctor.js +11 -8
  44. package/dist/bin/exe-export-behaviors.js +16 -14
  45. package/dist/bin/exe-forget.js +14 -12
  46. package/dist/bin/exe-gateway.js +12 -10
  47. package/dist/bin/exe-grant.js +6 -6
  48. package/dist/bin/exe-healthcheck.js +15 -13
  49. package/dist/bin/exe-heartbeat.js +28 -26
  50. package/dist/bin/exe-kill.js +28 -26
  51. package/dist/bin/exe-launch-agent.js +35 -33
  52. package/dist/bin/exe-mcp.js +9 -7
  53. package/dist/bin/exe-memory-reads.js +11 -9
  54. package/dist/bin/exe-new-employee.js +13 -11
  55. package/dist/bin/exe-os-mcp-proxy.js +9 -7
  56. package/dist/bin/exe-pending-messages.js +23 -21
  57. package/dist/bin/exe-pending-notifications.js +22 -20
  58. package/dist/bin/exe-pending-reviews.js +23 -21
  59. package/dist/bin/exe-preflight.js +1 -1
  60. package/dist/bin/exe-rename.js +9 -7
  61. package/dist/bin/exe-review.js +59 -55
  62. package/dist/bin/exe-search-quality.js +16 -3
  63. package/dist/bin/exe-search.js +13 -11
  64. package/dist/bin/exe-session-cleanup.js +29 -27
  65. package/dist/bin/exe-settings.js +22 -20
  66. package/dist/bin/exe-start-codex.js +23 -21
  67. package/dist/bin/exe-start-opencode.js +21 -19
  68. package/dist/bin/exe-status.js +24 -22
  69. package/dist/bin/exe-support.js +3 -3
  70. package/dist/bin/exe-team.js +8 -6
  71. package/dist/bin/exe-verify-running-images.js +644 -17
  72. package/dist/bin/git-sweep.js +24 -22
  73. package/dist/bin/graph-backfill.js +12 -10
  74. package/dist/bin/graph-export.js +12 -10
  75. package/dist/bin/hooks-cli.js +4 -4
  76. package/dist/bin/import-history.js +16 -14
  77. package/dist/bin/install.js +113 -110
  78. package/dist/bin/intercom-check.js +5 -5
  79. package/dist/bin/mcp-sessions.js +2 -2
  80. package/dist/bin/orchestration-metrics.js +8 -6
  81. package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
  82. package/dist/bin/postgres-agentic-semantic-backfill.js +1 -1
  83. package/dist/bin/pre-build-guard.js +55 -16
  84. package/dist/bin/pre-publish.js +1 -1
  85. package/dist/bin/prune-orphan-chunks.js +154 -28
  86. package/dist/bin/reconcile-backlog.js +5 -3
  87. package/dist/bin/registry-proxy.js +1 -1
  88. package/dist/bin/repair-document-chunks.js +11 -9
  89. package/dist/bin/scan-tasks.js +23 -21
  90. package/dist/bin/setup.js +3 -3
  91. package/dist/bin/shard-migrate.js +12 -10
  92. package/dist/bin/stack-update.js +622 -43
  93. package/dist/bin/verify-stack.js +2 -2
  94. package/dist/bin/vps-health-gate.js +1 -1
  95. package/dist/{boot-generation-Q7LGQ3AO.js → boot-generation-VCQXVYGT.js} +7 -5
  96. package/dist/{boot-review-sections-G5774FR5.js → boot-review-sections-3QO6Q7MP.js} +21 -19
  97. package/dist/{branch-hygiene-44WLSOZR.js → branch-hygiene-DDXXI6ZA.js} +59 -21
  98. package/dist/bug-landed-reconciler-TQVNOUCU.js +353 -0
  99. package/dist/build-manifest.json +1269 -1194
  100. package/dist/{capability-cards-I3RHCF4F.js → capability-cards-XPDLT6LU.js} +6 -4
  101. package/dist/{capacity-monitor-7I7GDONU.js → capacity-monitor-N3AW242L.js} +23 -21
  102. package/dist/{catchup-brief-3T5PARIR.js → catchup-brief-3PKX7FUP.js} +29 -27
  103. package/dist/{chunk-C5ISP5FO.js → chunk-2BKJAOO4.js} +11 -1
  104. package/dist/{chunk-JJTPPAZY.js → chunk-2CUQHG6H.js} +1609 -1356
  105. package/dist/{chunk-HU3VD4MQ.js → chunk-2Q2GGYBX.js} +1 -1
  106. package/dist/{chunk-CHIUS5QB.js → chunk-36LMIOVU.js} +9 -9
  107. package/dist/{chunk-46VSBDUW.js → chunk-3DCBDG4T.js} +2 -2
  108. package/dist/{chunk-W3KPQE7H.js → chunk-3GL3E4TD.js} +3 -3
  109. package/dist/{chunk-GL47M7NY.js → chunk-3UD3OF3X.js} +202 -117
  110. package/dist/{chunk-WNBZJSQT.js → chunk-3VW5ZP2F.js} +1 -1
  111. package/dist/{chunk-JDDM6C57.js → chunk-3X74IQBU.js} +1 -1
  112. package/dist/{chunk-NVFNADTX.js → chunk-3ZL4MDQ6.js} +18 -4
  113. package/dist/{chunk-R5E7WNAC.js → chunk-4ESNDGMB.js} +3 -3
  114. package/dist/{chunk-CYCIX7AW.js → chunk-4FLLIQRQ.js} +2 -2
  115. package/dist/{chunk-3RGTLZNO.js → chunk-4GAKF7KR.js} +99 -74
  116. package/dist/{chunk-RVO5O5SR.js → chunk-4S3A52AV.js} +38 -10
  117. package/dist/{chunk-7J2ZQ4XN.js → chunk-4VQ3QR6B.js} +29 -28
  118. package/dist/{chunk-MROSARM5.js → chunk-5BJBTFFQ.js} +7 -1
  119. package/dist/chunk-5LQZABW5.js +6 -0
  120. package/dist/chunk-5ONMHTNI.js +236 -0
  121. package/dist/{chunk-APL7HUE3.js → chunk-5QQJUO3F.js} +200 -31
  122. package/dist/{chunk-UOPCVFVR.js → chunk-5RK75SWH.js} +205 -278
  123. package/dist/{chunk-T5FEAQES.js → chunk-5TYJYGS5.js} +1 -1
  124. package/dist/{chunk-P3QQ52QK.js → chunk-5U6EOTZV.js} +3 -3
  125. package/dist/{chunk-ALRHGEAJ.js → chunk-637FL62O.js} +1 -1
  126. package/dist/{chunk-PUBA5B4M.js → chunk-6L4VIYLZ.js} +33 -19
  127. package/dist/{chunk-VF2KRROX.js → chunk-754P2UXM.js} +1 -1
  128. package/dist/{chunk-CM7N5MBY.js → chunk-7FZG7WP4.js} +5 -5
  129. package/dist/{chunk-NYLJQ2M2.js → chunk-7NEBFB3L.js} +4 -4
  130. package/dist/{chunk-E7C2WNR5.js → chunk-AEIOFFFX.js} +5 -5
  131. package/dist/{chunk-VOVFUKEB.js → chunk-AIB2EWO2.js} +5 -5
  132. package/dist/{chunk-EGOEB42T.js → chunk-AP2C4OGS.js} +3 -3
  133. package/dist/{chunk-MPZ2AVNS.js → chunk-ATNV3BVZ.js} +1 -1
  134. package/dist/{chunk-F4BBMIPG.js → chunk-B4XJQBQB.js} +2 -2
  135. package/dist/{chunk-BPVFZ6Q4.js → chunk-B5EGDNG6.js} +2 -2
  136. package/dist/{chunk-AGC2V7JS.js → chunk-B6CBN6EF.js} +1 -1
  137. package/dist/{chunk-KTKIFXIP.js → chunk-B7FDRN7G.js} +1 -1
  138. package/dist/{chunk-C5HUMAA7.js → chunk-B7WVYLAQ.js} +67 -15
  139. package/dist/chunk-BGVP5RMT.js +185 -0
  140. package/dist/{chunk-FVLNNNH6.js → chunk-BNI4LIU5.js} +35 -4
  141. package/dist/{chunk-P4XLIPB7.js → chunk-BU5JRLZT.js} +1 -1
  142. package/dist/{chunk-PHUHIVD5.js → chunk-C6U7XWOC.js} +34 -5
  143. package/dist/chunk-C7GHNJPW.js +8 -0
  144. package/dist/{chunk-4AR5XKCH.js → chunk-CL2MU3OX.js} +1 -1
  145. package/dist/{chunk-ZPP63JSQ.js → chunk-CL3AB7Z2.js} +1 -1
  146. package/dist/{chunk-FHIFTSPL.js → chunk-CP7XUSOF.js} +8 -3
  147. package/dist/{chunk-3OX34OC3.js → chunk-CUDNRHHT.js} +30 -10
  148. package/dist/chunk-CYUUNIEL.js +21 -0
  149. package/dist/{chunk-P2UY34XE.js → chunk-D4C57S2H.js} +5 -5
  150. package/dist/{chunk-XSUALA32.js → chunk-DDYFNBYV.js} +3 -3
  151. package/dist/{chunk-LSNBTGW4.js → chunk-DPYZW42H.js} +1 -1
  152. package/dist/{chunk-FMIYFHLE.js → chunk-E2PRXEZK.js} +9 -3
  153. package/dist/{chunk-L63V25HS.js → chunk-E54SPUYJ.js} +3 -3
  154. package/dist/{chunk-DMUOTCDN.js → chunk-E5CKRHIZ.js} +1 -1
  155. package/dist/{chunk-BV2IET6B.js → chunk-EVMOKRBC.js} +15 -2
  156. package/dist/{chunk-YLFCH3VA.js → chunk-FDWI3T6I.js} +133 -31
  157. package/dist/{chunk-PWC3C5ME.js → chunk-FNJTCJGY.js} +4 -4
  158. package/dist/{chunk-TNS63ATU.js → chunk-FWRPDSO3.js} +350 -50
  159. package/dist/{chunk-JA3Y5TV6.js → chunk-GDLB6BPM.js} +141 -74
  160. package/dist/{chunk-IGJMS7C5.js → chunk-GOVGG7HU.js} +2 -2
  161. package/dist/{chunk-MB47DRF5.js → chunk-GP7CTIUK.js} +2 -2
  162. package/dist/{chunk-L5EPGGDP.js → chunk-GWAN2BDB.js} +4 -4
  163. package/dist/{chunk-YRQ26MNP.js → chunk-H3YF7X4J.js} +12 -5
  164. package/dist/{chunk-VLBHZ6TF.js → chunk-H6PLIFUE.js} +2 -2
  165. package/dist/{chunk-GSLFH4AI.js → chunk-HRNM3N4Y.js} +6 -15
  166. package/dist/chunk-IG2ISRTF.js +48 -0
  167. package/dist/{chunk-MWEIBVBS.js → chunk-IJCWBYA5.js} +14 -1
  168. package/dist/{chunk-NKEFYE4R.js → chunk-IPTUKX3N.js} +1 -1
  169. package/dist/{chunk-RB3J2WYQ.js → chunk-IVE7H6KA.js} +1 -1
  170. package/dist/{chunk-HA63SH5W.js → chunk-IWY2OGQG.js} +1 -1
  171. package/dist/{chunk-BQEZPRUC.js → chunk-IZWMWJZT.js} +64 -46
  172. package/dist/{chunk-AHESD3KW.js → chunk-J4UVI652.js} +1 -1
  173. package/dist/{chunk-PLII76NJ.js → chunk-JBUCA4OX.js} +33 -6
  174. package/dist/{chunk-2PZTMSMG.js → chunk-JOF4HQDF.js} +5 -5
  175. package/dist/{chunk-OBBO6EJR.js → chunk-JQN3QGSF.js} +1 -1
  176. package/dist/{chunk-P4PIZOL2.js → chunk-JWYIH5DR.js} +3 -3
  177. package/dist/{chunk-3XY57PKT.js → chunk-KZLKE7I3.js} +210 -48
  178. package/dist/{chunk-DYVLEMKS.js → chunk-L3GXMYBK.js} +1 -1
  179. package/dist/{chunk-72V3S44T.js → chunk-LUA4SLJY.js} +46 -19
  180. package/dist/{chunk-ZT4LFTUJ.js → chunk-LW3JCBXP.js} +20 -3
  181. package/dist/{chunk-YLB365YX.js → chunk-M5XHN4OM.js} +3 -3
  182. package/dist/{chunk-VHHX4UCP.js → chunk-MDTWARSF.js} +22 -93
  183. package/dist/{chunk-JFJP6ATJ.js → chunk-MWKXQSF6.js} +3 -2
  184. package/dist/{chunk-VJEJ7JNB.js → chunk-N32DVIKY.js} +1 -1
  185. package/dist/{chunk-MUCNYSJP.js → chunk-NRLJOV7M.js} +32 -4
  186. package/dist/{chunk-PL4CFSQ7.js → chunk-NSXJOSH7.js} +1 -1
  187. package/dist/{chunk-NF5FOSLD.js → chunk-NVTG66CK.js} +1 -1
  188. package/dist/chunk-O45GBJEH.js +1500 -0
  189. package/dist/{chunk-4AAMFWJT.js → chunk-OHZSTZXN.js} +4 -2
  190. package/dist/chunk-OSIS7ZQW.js +344 -0
  191. package/dist/{chunk-E3ZM32LF.js → chunk-P22VFGFK.js} +14 -5
  192. package/dist/{chunk-KILR4FBR.js → chunk-PAFLR7WD.js} +3 -3
  193. package/dist/{chunk-R3CZWFFC.js → chunk-PEYQ6MWO.js} +15 -3
  194. package/dist/{chunk-RDWIKDMY.js → chunk-PZR54BEI.js} +8 -20
  195. package/dist/{chunk-2FKU4ZEO.js → chunk-QDBKMEYY.js} +9 -9
  196. package/dist/{chunk-7UHZBVP3.js → chunk-QDVLVLXP.js} +97 -31
  197. package/dist/{chunk-PRDDPQLC.js → chunk-QLXEQRHD.js} +5 -5
  198. package/dist/{chunk-MUAWCFW6.js → chunk-QNPDXV5V.js} +5 -2
  199. package/dist/{chunk-LR5O2XWZ.js → chunk-QUZYLDNJ.js} +5 -5
  200. package/dist/chunk-RBQUXHYK.js +48 -0
  201. package/dist/{chunk-3SUPEE6H.js → chunk-RDMBSHGG.js} +3 -3
  202. package/dist/{chunk-I5XIW2BP.js → chunk-RGUM474V.js} +7 -7
  203. package/dist/{chunk-OAFENIHN.js → chunk-RJ67XAJU.js} +76 -28
  204. package/dist/{chunk-LFUBEHFW.js → chunk-RT57D7C4.js} +39 -1
  205. package/dist/{chunk-MKM6D7JM.js → chunk-RWG7DLOG.js} +42 -5
  206. package/dist/{chunk-P3UX5EH4.js → chunk-RWKAHHIX.js} +3 -3
  207. package/dist/{chunk-XEBKIWI7.js → chunk-RYNT3HB7.js} +12 -12
  208. package/dist/{chunk-EUGEFBGV.js → chunk-S2V272KJ.js} +3 -3
  209. package/dist/{chunk-W6BZ4UGA.js → chunk-SGYEM2PD.js} +1 -1
  210. package/dist/{chunk-VROK4X2L.js → chunk-SJP57MQM.js} +1 -1
  211. package/dist/{chunk-5MVKTNZP.js → chunk-SL4JWAMQ.js} +54 -4
  212. package/dist/{chunk-MOANZQXF.js → chunk-SLMKLEU6.js} +1 -1
  213. package/dist/{chunk-RZN2LEAK.js → chunk-SQA7XCYI.js} +3 -3
  214. package/dist/{chunk-4YNA3CM6.js → chunk-SSFS4NCH.js} +262 -56
  215. package/dist/{chunk-6FIC57PH.js → chunk-T4P2G3PO.js} +1 -1
  216. package/dist/{chunk-5U2IJBFV.js → chunk-TA3B4N24.js} +1 -1
  217. package/dist/{chunk-ZOTTYCP5.js → chunk-TEWWBVQP.js} +40 -4
  218. package/dist/{chunk-SDYWZRPN.js → chunk-TLSFGXXE.js} +1 -1
  219. package/dist/{chunk-L3VUW5M4.js → chunk-TQS2YHLB.js} +1 -1
  220. package/dist/{chunk-KXYKSLW4.js → chunk-TU4M757W.js} +399 -116
  221. package/dist/{chunk-MC4IM2CC.js → chunk-TYD4F4XU.js} +6 -6
  222. package/dist/{chunk-TKS5GMYA.js → chunk-U44Y7RC7.js} +2 -0
  223. package/dist/{chunk-B7AMNZTC.js → chunk-UKBPEEEQ.js} +2 -2
  224. package/dist/{chunk-ZBPZDADW.js → chunk-UWVXQEQQ.js} +467 -78
  225. package/dist/{chunk-P2VVMGMI.js → chunk-V4WH3FV7.js} +35 -16
  226. package/dist/{worktree-ownership-guard-O6JQF2CL.js → chunk-V6F4I2XY.js} +13 -14
  227. package/dist/{chunk-JFTUAV4J.js → chunk-VBKUESIW.js} +1 -1
  228. package/dist/{chunk-AZSTIAVL.js → chunk-VBPYYJPC.js} +1 -1
  229. package/dist/{chunk-LKTN22L6.js → chunk-VIP4LKLO.js} +57 -24
  230. package/dist/{chunk-L5CGXEZC.js → chunk-WAAGVFFN.js} +63 -71
  231. package/dist/{chunk-D3LXVAIQ.js → chunk-WC7AE3PT.js} +244 -103
  232. package/dist/{chunk-EOTZSAQL.js → chunk-WUCUDHKR.js} +1 -1
  233. package/dist/{chunk-VF3BZOZK.js → chunk-X7HZHKY4.js} +50 -3
  234. package/dist/{chunk-LFBLQE2P.js → chunk-XCAKYVKI.js} +1 -1
  235. package/dist/{chunk-UXN4BICC.js → chunk-XMX5J52Z.js} +1 -1
  236. package/dist/{chunk-6YDY6ZTD.js → chunk-XTCXGWTV.js} +9 -4
  237. package/dist/{chunk-XUZK23V7.js → chunk-XW2FW6LS.js} +2 -2
  238. package/dist/{chunk-CH7BUBP3.js → chunk-XWVHUDEK.js} +5 -4
  239. package/dist/{chunk-S26CV7BE.js → chunk-YA5LK6KB.js} +45 -8
  240. package/dist/{chunk-ELCRJGCH.js → chunk-YMRQIENV.js} +2 -2
  241. package/dist/{chunk-QNZ4562V.js → chunk-Z3LXWCB7.js} +1 -1
  242. package/dist/{chunk-EYMFVITZ.js → chunk-Z7I6NQMA.js} +2 -2
  243. package/dist/{chunk-6BJCDWSM.js → chunk-ZB4FS2EG.js} +1 -1
  244. package/dist/{chunk-ZAEUEDTN.js → chunk-ZD6FZ3WL.js} +1 -1
  245. package/dist/{chunk-FEU6QEEL.js → chunk-ZM6EZAVY.js} +1 -0
  246. package/dist/{chunk-2KY7WZZF.js → chunk-ZPA4R2UI.js} +1 -1
  247. package/dist/chunk-ZPPPHVSU.js +285 -0
  248. package/dist/{chunk-ELEGH4DX.js → chunk-ZUGQPYUY.js} +51 -4
  249. package/dist/{chunk-UX2EO653.js → chunk-ZZWFZ46U.js} +66 -8
  250. package/dist/{cleanup-graph-garbage-VQAJ2RBT.js → cleanup-graph-garbage-HFUD5ZQT.js} +12 -10
  251. package/dist/{cloud-sync-command-J7NEFUY7.js → cloud-sync-command-3JHJJKPN.js} +25 -3
  252. package/dist/{cloud-sync-db-init-KWEMNMGA.js → cloud-sync-db-init-2LHIQOSF.js} +1 -1
  253. package/dist/{cloud-sync-shutdown-P63AUTUI.js → cloud-sync-shutdown-ZXAXA3Z7.js} +6 -4
  254. package/dist/{cloud-sync-state-QF3TMMJ4.js → cloud-sync-state-VSQFGPP6.js} +1 -1
  255. package/dist/{co-activation-7IHRPBZN.js → co-activation-NX4EH4AP.js} +6 -4
  256. package/dist/{co-occurrence-R5AG4OAU.js → co-occurrence-5LBYCW3U.js} +10 -8
  257. package/dist/{consent-passphrase-5ZBDJ5G7.js → consent-passphrase-65W3DJIJ.js} +2 -2
  258. package/dist/{content-extractor-ZLXC6GNR.js → content-extractor-OGXETBOX.js} +2 -2
  259. package/dist/{conversation-entity-extractor-7FRKLLBD.js → conversation-entity-extractor-FQCOAH4F.js} +5 -4
  260. package/dist/conversations-retention-XTBFJBUM.js +166 -0
  261. package/dist/{crdt-sync-IFRZOEIS.js → crdt-sync-7TDUBTLH.js} +4 -4
  262. package/dist/{crm-webhook-L2S63ASV.js → crm-webhook-776JTY55.js} +2 -2
  263. package/dist/{cto-delegation-gate-3WU7OHX7.js → cto-delegation-gate-ZNUWVYCN.js} +25 -23
  264. package/dist/{daemon-orchestration-3VQYKLOR.js → daemon-orchestration-76BOFDEP.js} +30 -24
  265. package/dist/{doc-graph-extractor-YIR5E7OF.js → doc-graph-extractor-F724KZJX.js} +10 -8
  266. package/dist/{documents-QEHPTYIY.js → documents-Q24V4GRD.js} +13 -11
  267. package/dist/{dreaming-LNFE7DTN.js → dreaming-IY6NQTSP.js} +27 -25
  268. package/dist/{employee-boot-brief-ZTXDYNWM.js → employee-boot-brief-CCTXO5DQ.js} +35 -29
  269. package/dist/{entity-boost-R5N6JWXD.js → entity-boost-XGOB7HDM.js} +1 -1
  270. package/dist/{exe-drift-WYSJVZFO.js → exe-drift-NEPXLNGP.js} +7 -5
  271. package/dist/{exe-export-GOLNAEAV.js → exe-export-ZHJQFKR2.js} +14 -12
  272. package/dist/{exe-import-U4BSI6OH.js → exe-import-7SVNI4FW.js} +14 -12
  273. package/dist/{exe-key-V42G3NGO.js → exe-key-QJKU56WZ.js} +119 -108
  274. package/dist/{exe-org-U4GLQ6OP.js → exe-org-SJXHLV6K.js} +76 -51
  275. package/dist/{exe-snapshot-U7ONBYNY.js → exe-snapshot-EFWPXTXE.js} +45 -36
  276. package/dist/{fast-db-init-W3NGKAEU.js → fast-db-init-BQZOQNT3.js} +1 -1
  277. package/dist/{founder-context-ZSIBRVDM.js → founder-context-KG2ZAOXY.js} +2 -2
  278. package/dist/{founder-monitor-envelope-L3IWZLFY.js → founder-monitor-envelope-NYB5LLU4.js} +4 -4
  279. package/dist/gateway/index.js +20 -18
  280. package/dist/{gateway-client-DJFCVIPT.js → gateway-client-ODMUXUL3.js} +1 -1
  281. package/dist/{git-staleness-OF24QXFZ.js → git-staleness-OPGEAJA7.js} +6 -4
  282. package/dist/{global-procedures-WSIOWO43.js → global-procedures-3KXY4LL6.js} +8 -6
  283. package/dist/{graph-auto-extract-IEVVN3L3.js → graph-auto-extract-I7H2F5NJ.js} +10 -8
  284. package/dist/{graph-query-JDZWAVCU.js → graph-query-E7JBSNY5.js} +1 -1
  285. package/dist/{graph-rag-BKAD2XQA.js → graph-rag-H24CMFP2.js} +5 -4
  286. package/dist/{hook-integrity-TPWDGX2M.js → hook-integrity-PGQ3OX4S.js} +1 -1
  287. package/dist/{hook-prefetch-FD6VGJJA.js → hook-prefetch-7AZJER6Z.js} +23 -21
  288. package/dist/hook-registration-liveness-NGQRFKAA.js +11 -0
  289. package/dist/hooks/bug-report-worker.js +26 -24
  290. package/dist/hooks/codex-stop-task-finalizer.js +28 -26
  291. package/dist/hooks/commit-complete.js +26 -24
  292. package/dist/hooks/error-recall.js +16 -14
  293. package/dist/hooks/exe-heartbeat-hook.js +9 -7
  294. package/dist/hooks/ingest-worker.js +12 -10
  295. package/dist/hooks/ingest.js +22 -17
  296. package/dist/hooks/instructions-loaded.js +11 -9
  297. package/dist/hooks/manifest.json +20 -20
  298. package/dist/hooks/notification.js +10 -8
  299. package/dist/hooks/post-compact.js +9 -7
  300. package/dist/hooks/post-tool-combined.js +14 -14
  301. package/dist/hooks/pre-compact.js +26 -24
  302. package/dist/hooks/pre-tool-use.js +2 -2
  303. package/dist/hooks/prompt-submit.js +47 -41
  304. package/dist/hooks/session-end.js +38 -42
  305. package/dist/hooks/session-start.js +26 -18
  306. package/dist/hooks/stop.js +29 -27
  307. package/dist/hooks/subagent-stop.js +29 -27
  308. package/dist/hooks/summary-worker.js +32 -30
  309. package/dist/index.js +37 -35
  310. package/dist/{installer-OTI5SA43.js → installer-2ZS3LHCU.js} +12 -9
  311. package/dist/{installer-NMOBSEZ2.js → installer-NH3A3HWC.js} +14 -9
  312. package/dist/{installer-SRJGE4GU.js → installer-UJ73PGRD.js} +21 -9
  313. package/dist/{intercom-queue-4FFXCBHO.js → intercom-queue-OE25GJF2.js} +21 -19
  314. package/dist/lib/agent-config.js +2 -2
  315. package/dist/lib/cloud-sync.js +24 -18
  316. package/dist/lib/consolidation.js +13 -11
  317. package/dist/lib/crypto.js +3 -3
  318. package/dist/lib/database.js +6 -4
  319. package/dist/lib/db-backup.js +1 -1
  320. package/dist/lib/db-write-worker-client.js +3 -1
  321. package/dist/lib/db-write-worker.js +65 -89
  322. package/dist/lib/db.js +6 -4
  323. package/dist/lib/delivery-truth.js +5 -1
  324. package/dist/lib/device-registry.js +1 -1
  325. package/dist/lib/embedder.js +2 -2
  326. package/dist/lib/employee-templates.js +9 -7
  327. package/dist/lib/employees.js +6 -4
  328. package/dist/lib/exe-daemon.js +425 -314
  329. package/dist/lib/file-grep.js +15 -21
  330. package/dist/lib/hybrid-search.js +19 -13
  331. package/dist/lib/identity-templates.js +1 -1
  332. package/dist/lib/identity.js +6 -4
  333. package/dist/lib/keychain.js +1 -1
  334. package/dist/lib/license.js +22 -6
  335. package/dist/lib/messaging.js +22 -20
  336. package/dist/lib/post-tool-memory.js +10 -8
  337. package/dist/lib/registry-proxy.js +1 -1
  338. package/dist/lib/reminders.js +7 -5
  339. package/dist/lib/runtime-table.js +1 -1
  340. package/dist/lib/schedules.js +12 -10
  341. package/dist/lib/session-registry.js +8 -6
  342. package/dist/lib/skill-learning.js +13 -11
  343. package/dist/lib/status-brief.js +2 -2
  344. package/dist/lib/store.js +17 -9
  345. package/dist/lib/task-router.js +7 -5
  346. package/dist/lib/tasks.js +23 -21
  347. package/dist/lib/tmux-routing.js +21 -19
  348. package/dist/lib/tmux-status.js +4 -1
  349. package/dist/lib/token-spend.js +7 -5
  350. package/dist/lib/ws-client.js +1 -1
  351. package/dist/{license-gate-R4JWTWM4.js → license-gate-XQ2KN5I5.js} +3 -3
  352. package/dist/{license-recheck-3MBJ4IJX.js → license-recheck-IIBKR2V5.js} +1 -1
  353. package/dist/{license-sync-BVSG3WMW.js → license-sync-76JVI2M5.js} +151 -8
  354. package/dist/{local-secret-inventory-JWNBHZZ4.js → local-secret-inventory-MJT7NJLY.js} +2 -2
  355. package/dist/{mailbox-inbox-MTAT4MXX.js → mailbox-inbox-BPZP4GIZ.js} +1 -1
  356. package/dist/maintenance-worker-54VZTFIK.js +371 -0
  357. package/dist/mcp/register-tools.js +110 -107
  358. package/dist/mcp/server.js +113 -110
  359. package/dist/mcp/tools/complete-reminder.js +8 -6
  360. package/dist/mcp/tools/create-reminder.js +8 -6
  361. package/dist/mcp/tools/create-task.js +26 -24
  362. package/dist/mcp/tools/deactivate-behavior.js +15 -13
  363. package/dist/mcp/tools/list-reminders.js +8 -6
  364. package/dist/mcp/tools/list-tasks.js +26 -24
  365. package/dist/mcp/tools/send-message.js +25 -23
  366. package/dist/mcp/tools/update-task.js +24 -22
  367. package/dist/{mcp-child-registry-TIZERM7O.js → mcp-child-registry-5VUG5ATZ.js} +1 -1
  368. package/dist/{mcp-http-config-VUMSFWFH.js → mcp-http-config-SKXESWHA.js} +9 -7
  369. package/dist/{mcp-session-identity-DZHWEJRV.js → mcp-session-identity-HYMLJXXA.js} +21 -19
  370. package/dist/{memory-cards-JVXTMSAT.js → memory-cards-PAZDUQ3B.js} +16 -32
  371. package/dist/{memory-graph-extractor-PPBJMYFJ.js → memory-graph-extractor-BC6QKBY6.js} +11 -9
  372. package/dist/{memory-poisoning-defense-K5Q74XQ4.js → memory-poisoning-defense-BRGIHF6J.js} +9 -7
  373. package/dist/{memory-pressure-watchdog-YMJH5CSA.js → memory-pressure-watchdog-HR6TPOMT.js} +22 -20
  374. package/dist/{memory-reflection-7BZWIHRE.js → memory-reflection-LO7VFBL3.js} +38 -59
  375. package/dist/memory-write-repository-J25USX63.js +16 -0
  376. package/dist/{monitor-grants-Q7X3MYQP.js → monitor-grants-YQTO6NWR.js} +3 -3
  377. package/dist/{monitor-identity-ZQB4IXEE.js → monitor-identity-POVTG76Y.js} +2 -2
  378. package/dist/{notification-ledger-XRAXL5OI.js → notification-ledger-KLD6GZTG.js} +22 -20
  379. package/dist/{notifications-JE3PX55X.js → notifications-3R6HNHDR.js} +21 -19
  380. package/dist/{orchestration-events-JCQ5F5IJ.js → orchestration-events-CHY3GOJD.js} +7 -5
  381. package/dist/{orchestrator-X65INDTR.js → orchestrator-GAL3HOAD.js} +23 -21
  382. package/dist/{org-brief-session-3PQ22UIX.js → org-brief-session-LQ2DBYVF.js} +17 -15
  383. package/dist/{org-consent-policy-VGELJ7K7.js → org-consent-policy-KFUP7QPG.js} +5 -5
  384. package/dist/{org-join-6TO5ZYUZ.js → org-join-MXZCIQWX.js} +8 -8
  385. package/dist/{org-key-admin-XHYVRRAZ.js → org-key-admin-4UK6QUT7.js} +9 -9
  386. package/dist/{org-key-pin-TTTYGTQL.js → org-key-pin-ZOX4OM3O.js} +3 -3
  387. package/dist/{org-membership-Y7T2BS57.js → org-membership-D5TPN45F.js} +4 -4
  388. package/dist/{org-partner-config-OP4NEUNF.js → org-partner-config-3FXSYPQA.js} +7 -7
  389. package/dist/{org-partner-runtime-YNVUNT2R.js → org-partner-runtime-TH3LMPII.js} +20 -16
  390. package/dist/{org-row-visibility-JBBXNYXD.js → org-row-visibility-Y5R33C5U.js} +1 -1
  391. package/dist/{pipeline-router-EIBB7QNG.js → pipeline-router-E2JZLDK6.js} +7 -5
  392. package/dist/{plan-limits-MEWXYLEN.js → plan-limits-NYI6R4IK.js} +9 -7
  393. package/dist/{platform-procedures-Z7ZGBJWN.js → platform-procedures-RTD5E3BD.js} +5 -3
  394. package/dist/{pre-tool-use-impl-C6KJY22W.js → pre-tool-use-impl-LT4FRXBP.js} +127 -83
  395. package/dist/{project-boot-VEYFCCSL.js → project-boot-LIMXQKAF.js} +25 -17
  396. package/dist/{project-name-UYORSNGE.js → project-name-V62GWALX.js} +7 -5
  397. package/dist/{projection-worker-WYFDWS57.js → projection-worker-KLE3IZQ2.js} +5 -2
  398. package/dist/{prospective-memory-E6XBQFJA.js → prospective-memory-HRN7JFT2.js} +6 -4
  399. package/dist/{push-notifications-M7YU63FY.js → push-notifications-XC6EQEXF.js} +22 -20
  400. package/dist/{reproject-worktree-memories-B5XMGJSD.js → reproject-worktree-memories-4CAVZSFE.js} +21 -19
  401. package/dist/{reranker-SRA4BR7N.js → reranker-2RU6IIX2.js} +1 -1
  402. package/dist/{retrieval-health-P2JPZUPV.js → retrieval-health-4Q5TOV2S.js} +1 -1
  403. package/dist/{review-polling-KQPN7IQE.js → review-polling-WOWIMBCL.js} +22 -20
  404. package/dist/runtime/index.js +30 -28
  405. package/dist/{session-events-6LDDKKY3.js → session-events-OPMS2C5F.js} +22 -20
  406. package/dist/{session-kill-telemetry-5DSRGWCL.js → session-kill-telemetry-3GWATSIX.js} +22 -20
  407. package/dist/{session-scope-XG5R3P3D.js → session-scope-TIRGR4MH.js} +21 -19
  408. package/dist/{setup-wizard-7QFLZIKT.js → setup-wizard-B2JBVGNH.js} +3 -3
  409. package/dist/{shard-manager-HHHHV2KZ.js → shard-manager-C7LYX6E4.js} +5 -1
  410. package/dist/{skill-refinement-I5RMAHSC.js → skill-refinement-FWQFYNBI.js} +7 -5
  411. package/dist/skill-retrieval-PPLFC5RY.js +166 -0
  412. package/dist/skill-usage-NDB67PU2.js +25 -0
  413. package/dist/{stack-generate-manifest-AKMZ3AUX.js → stack-generate-manifest-AXI55MEQ.js} +6 -6
  414. package/dist/{stack-promote-34CE2HHF.js → stack-promote-6N23OGZY.js} +6 -6
  415. package/dist/stack-release-2CXFYVWM.js +2770 -0
  416. package/dist/{stack-update-ZQQ5YYPJ.js → stack-update-U53FBVCQ.js} +13 -5
  417. package/dist/{steward-gate-AQJ6KT2C.js → steward-gate-TUA3QCN7.js} +7 -5
  418. package/dist/{subagent-brief-injection-3GU7YAWY.js → subagent-brief-injection-N52RWYFZ.js} +34 -32
  419. package/dist/{subagent-spawn-ledger-52I66CLW.js → subagent-spawn-ledger-OI23OT4I.js} +1 -1
  420. package/dist/support-bug-actions-XWCJI6S5.js +30 -0
  421. package/dist/support-inbox-MMVTCXRX.js +77 -0
  422. package/dist/{support-outbox-KNI3FR3G.js → support-outbox-2TG2UV6J.js} +2 -2
  423. package/dist/{task-enforcement-CAA6D2MH.js → task-enforcement-JDMBAAOY.js} +22 -20
  424. package/dist/{task-request-inbox-QBZVU66E.js → task-request-inbox-PKJCYKJV.js} +9 -5
  425. package/dist/{task-scope-NHXB4ZRN.js → task-scope-32HQEV6W.js} +27 -19
  426. package/dist/{tasks-crud-JHSWL5NM.js → tasks-crud-CYKUKS3F.js} +21 -19
  427. package/dist/{tasks-notify-7PBE4U7T.js → tasks-notify-YND5MKWJ.js} +22 -20
  428. package/dist/{tasks-review-PPPVEE62.js → tasks-review-CG2A5GM3.js} +23 -19
  429. package/dist/{telemetry-upload-YU2VRNHX.js → telemetry-upload-WLUMEFAB.js} +11 -9
  430. package/dist/{token-budget-QCMWKG3K.js → token-budget-3YHAY5LL.js} +7 -5
  431. package/dist/{tool-capability-index-7AWQAJRP.js → tool-capability-index-2ADOWH43.js} +2 -2
  432. package/dist/{tool-gates-5Q3RSQEG.js → tool-gates-7ENOOYMR.js} +5 -3
  433. package/dist/{tool-gates-QD26D2NE.js → tool-gates-EKJTLVGN.js} +1 -1
  434. package/dist/{tool-telemetry-LTOIC64I.js → tool-telemetry-VUP7S6HC.js} +1 -1
  435. package/dist/tui/App.js +59 -35
  436. package/dist/{tui-data-NDBXD6U7.js → tui-data-BOQTOW2G.js} +25 -23
  437. package/dist/{update-support-BMJM4NG7.js → update-support-WT3S3AQ4.js} +21 -21
  438. package/dist/{whatsapp-QQLDAHUX.js → whatsapp-OZGIF2EM.js} +2 -2
  439. package/dist/{wiki-acl-W6WDCVCP.js → wiki-acl-LTEQJVDA.js} +1 -1
  440. package/dist/{work-claims-6DM32MGO.js → work-claims-CMV2GWIW.js} +8 -6
  441. package/dist/{work-state-heartbeat-HG7D4AWJ.js → work-state-heartbeat-S45TXK4M.js} +1 -1
  442. package/dist/{worker-gate-FTMW7GBB.js → worker-gate-7Z6NMM3G.js} +1 -1
  443. package/dist/{workflow-engine-ZWC6CCXE.js → workflow-engine-ZSQDXZQ7.js} +2 -2
  444. package/dist/{worktree-EMQCPGFE.js → worktree-NMWDVT6N.js} +8 -6
  445. package/dist/worktree-ownership-guard-ZVIWJAOP.js +35 -0
  446. package/dist/{worktree-sweep-XVUJZBXV.js → worktree-sweep-Q62ZIT3U.js} +9 -7
  447. package/package.json +14 -8
  448. package/release-notes.json +7 -41
  449. package/src/commands/exe/afk.md +6 -0
  450. package/src/commands/exe/call.md +6 -0
  451. package/src/commands/exe/employee-heartbeat.md +6 -0
  452. package/src/commands/exe/intercom.md +6 -0
  453. package/src/commands/exe/kill.md +6 -0
  454. package/src/commands/exe/launch.md +6 -0
  455. package/src/commands/exe/logs.md +1 -1
  456. package/src/commands/exe/sessions.md +6 -0
  457. package/src/commands/exe/setup.md +7 -3
  458. package/src/commands/exe/status.md +6 -0
  459. package/src/commands/exe-reference.md +25 -36
  460. package/src/commands/exe.md +19 -28
  461. package/stack.release.json +11 -11
  462. package/dist/chunk-3B6FLNLV.js +0 -30
  463. package/dist/chunk-FXU7JOXK.js +0 -6
  464. package/dist/chunk-QFAFKEB5.js +0 -820
  465. package/dist/conversations-retention-C4BLKFEL.js +0 -54
  466. package/dist/stack-release-5PGWV5D4.js +0 -1607
  467. package/dist/support-inbox-NY5TB3FN.js +0 -51
  468. /package/dist/{chunk-U2D6PJ5T.js → chunk-65G7ZTGE.js} +0 -0
  469. /package/dist/{chunk-DN3ZR3UE.js → chunk-CP7Z35MJ.js} +0 -0
  470. /package/dist/{chunk-XDVOGDBC.js → chunk-KBBWALJV.js} +0 -0
  471. /package/dist/{chunk-JRIH6I7D.js → chunk-LZXYPTY4.js} +0 -0
  472. /package/dist/{chunk-GIRD7O5X.js → chunk-MCWEW2SG.js} +0 -0
  473. /package/dist/{chunk-TKAU7IJ2.js → chunk-MQHUJLCA.js} +0 -0
  474. /package/dist/{chunk-M4XY4JRK.js → chunk-O53LTOXK.js} +0 -0
  475. /package/dist/{chunk-DZN7SDY2.js → chunk-OSVTH3SG.js} +0 -0
  476. /package/dist/{chunk-AJK2PVQW.js → chunk-QXXEXGX3.js} +0 -0
  477. /package/dist/{chunk-AWWDKF22.js → chunk-SFWNTO2F.js} +0 -0
  478. /package/dist/{chunk-2Q2CD6CD.js → chunk-WC5HF2FN.js} +0 -0
  479. /package/dist/{core-memory-O6D5UC3T.js → core-memory-MMMW3TF3.js} +0 -0
  480. /package/dist/{memory-isolation-EBFFC6HF.js → memory-isolation-67ACKQ2M.js} +0 -0
  481. /package/dist/{oauth-server-ZKBUHDFI.js → oauth-server-OILIKR7D.js} +0 -0
@@ -1,148 +1,149 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  computeMcpSurfaceHash
4
- } from "./chunk-EOTZSAQL.js";
4
+ } from "./chunk-WUCUDHKR.js";
5
5
  import "./chunk-WCGNCH3Q.js";
6
- import "./chunk-JJTPPAZY.js";
7
- import "./chunk-XSUALA32.js";
8
- import "./chunk-PL4CFSQ7.js";
6
+ import "./chunk-2CUQHG6H.js";
7
+ import "./chunk-DDYFNBYV.js";
8
+ import "./chunk-NSXJOSH7.js";
9
+ import "./chunk-OSIS7ZQW.js";
9
10
  import "./chunk-557C2IGL.js";
10
- import "./chunk-FVLNNNH6.js";
11
- import "./chunk-VF3BZOZK.js";
12
- import "./chunk-QFAFKEB5.js";
13
- import "./chunk-3B6FLNLV.js";
14
- import "./chunk-P3QQ52QK.js";
15
- import "./chunk-ZT4LFTUJ.js";
16
- import "./chunk-XUZK23V7.js";
17
- import "./chunk-I5XIW2BP.js";
18
- import "./chunk-E7C2WNR5.js";
19
- import "./chunk-DN3ZR3UE.js";
20
- import "./chunk-MB47DRF5.js";
21
- import "./chunk-PHUHIVD5.js";
22
- import "./chunk-APL7HUE3.js";
23
- import "./chunk-MKM6D7JM.js";
24
- import "./chunk-T5FEAQES.js";
25
- import "./chunk-U2D6PJ5T.js";
26
- import "./chunk-2KY7WZZF.js";
27
- import "./chunk-5MVKTNZP.js";
11
+ import "./chunk-O45GBJEH.js";
12
+ import "./chunk-BNI4LIU5.js";
13
+ import "./chunk-X7HZHKY4.js";
14
+ import "./chunk-5U6EOTZV.js";
15
+ import "./chunk-LW3JCBXP.js";
16
+ import "./chunk-XW2FW6LS.js";
17
+ import "./chunk-RGUM474V.js";
18
+ import "./chunk-AEIOFFFX.js";
19
+ import "./chunk-CP7Z35MJ.js";
20
+ import "./chunk-GP7CTIUK.js";
21
+ import "./chunk-5QQJUO3F.js";
22
+ import "./chunk-RWG7DLOG.js";
23
+ import "./chunk-65G7ZTGE.js";
24
+ import "./chunk-ZPA4R2UI.js";
25
+ import "./chunk-SL4JWAMQ.js";
26
+ import "./chunk-C6U7XWOC.js";
28
27
  import "./chunk-QPTSA4PP.js";
29
- import "./chunk-CH7BUBP3.js";
30
- import "./chunk-E3ZM32LF.js";
28
+ import "./chunk-5TYJYGS5.js";
29
+ import "./chunk-3ZL4MDQ6.js";
30
+ import "./chunk-EVMOKRBC.js";
31
+ import "./chunk-PAFLR7WD.js";
32
+ import "./chunk-GOVGG7HU.js";
33
+ import "./chunk-XWVHUDEK.js";
34
+ import "./chunk-P22VFGFK.js";
31
35
  import "./chunk-X2X3IGZU.js";
32
36
  import "./chunk-XHU3KOKJ.js";
33
- import "./chunk-NVFNADTX.js";
34
- import "./chunk-BV2IET6B.js";
35
- import "./chunk-KILR4FBR.js";
36
- import "./chunk-IGJMS7C5.js";
37
- import "./chunk-VOVFUKEB.js";
38
- import "./chunk-ZAEUEDTN.js";
39
- import "./chunk-AJK2PVQW.js";
40
- import "./chunk-LR5O2XWZ.js";
41
- import "./chunk-YLFCH3VA.js";
42
- import "./chunk-DMUOTCDN.js";
43
- import "./chunk-6FIC57PH.js";
37
+ import "./chunk-AIB2EWO2.js";
38
+ import "./chunk-ZD6FZ3WL.js";
39
+ import "./chunk-QXXEXGX3.js";
40
+ import "./chunk-QUZYLDNJ.js";
41
+ import "./chunk-FDWI3T6I.js";
42
+ import "./chunk-E5CKRHIZ.js";
43
+ import "./chunk-T4P2G3PO.js";
44
44
  import "./chunk-3FGBBJYM.js";
45
- import "./chunk-OBBO6EJR.js";
46
- import "./chunk-VF2KRROX.js";
47
- import "./chunk-KTKIFXIP.js";
48
- import "./chunk-NYLJQ2M2.js";
49
- import "./chunk-UXN4BICC.js";
50
- import "./chunk-PRDDPQLC.js";
51
- import "./chunk-LKTN22L6.js";
45
+ import "./chunk-JQN3QGSF.js";
46
+ import "./chunk-754P2UXM.js";
47
+ import "./chunk-B7FDRN7G.js";
48
+ import "./chunk-7NEBFB3L.js";
49
+ import "./chunk-XMX5J52Z.js";
50
+ import "./chunk-QLXEQRHD.js";
51
+ import "./chunk-VIP4LKLO.js";
52
52
  import "./chunk-S2YTU74T.js";
53
- import "./chunk-EGOEB42T.js";
54
- import "./chunk-PWC3C5ME.js";
55
- import "./chunk-R5E7WNAC.js";
56
- import "./chunk-P4PIZOL2.js";
57
- import "./chunk-P3UX5EH4.js";
58
- import "./chunk-B7AMNZTC.js";
59
- import "./chunk-CM7N5MBY.js";
60
- import "./chunk-MROSARM5.js";
53
+ import "./chunk-AP2C4OGS.js";
54
+ import "./chunk-FNJTCJGY.js";
55
+ import "./chunk-4ESNDGMB.js";
56
+ import "./chunk-JWYIH5DR.js";
57
+ import "./chunk-RWKAHHIX.js";
58
+ import "./chunk-UKBPEEEQ.js";
59
+ import "./chunk-7FZG7WP4.js";
60
+ import "./chunk-5BJBTFFQ.js";
61
61
  import "./chunk-3OEVDGIY.js";
62
- import "./chunk-4YNA3CM6.js";
63
- import "./chunk-YLB365YX.js";
64
- import "./chunk-3OX34OC3.js";
62
+ import "./chunk-SSFS4NCH.js";
63
+ import "./chunk-M5XHN4OM.js";
64
+ import "./chunk-CUDNRHHT.js";
65
65
  import "./chunk-VPHJ2LUI.js";
66
66
  import "./chunk-SNHYZYGZ.js";
67
67
  import "./chunk-KM6XSFHP.js";
68
+ import "./chunk-ZPPPHVSU.js";
68
69
  import "./chunk-YQGMSXT5.js";
69
- import "./chunk-MC4IM2CC.js";
70
+ import "./chunk-TYD4F4XU.js";
70
71
  import "./chunk-SSC7EKY2.js";
71
- import "./chunk-MPZ2AVNS.js";
72
- import "./chunk-AZSTIAVL.js";
72
+ import "./chunk-ATNV3BVZ.js";
73
+ import "./chunk-VBPYYJPC.js";
73
74
  import "./chunk-U4GMOT4M.js";
74
75
  import "./chunk-CBPNZFSU.js";
75
- import "./chunk-6YDY6ZTD.js";
76
+ import "./chunk-XTCXGWTV.js";
76
77
  import "./chunk-MMRUBN3I.js";
77
78
  import "./chunk-2XZ6X3PJ.js";
78
79
  import "./chunk-PMVVUIHH.js";
79
- import "./chunk-7J2ZQ4XN.js";
80
- import "./chunk-EYMFVITZ.js";
81
- import "./chunk-BQEZPRUC.js";
82
- import "./chunk-GIRD7O5X.js";
83
- import "./chunk-KXYKSLW4.js";
84
- import "./chunk-VROK4X2L.js";
80
+ import "./chunk-4VQ3QR6B.js";
81
+ import "./chunk-Z7I6NQMA.js";
82
+ import "./chunk-IZWMWJZT.js";
83
+ import "./chunk-MCWEW2SG.js";
84
+ import "./chunk-TU4M757W.js";
85
+ import "./chunk-SJP57MQM.js";
85
86
  import "./chunk-NEHOQ3P2.js";
86
- import "./chunk-JA3Y5TV6.js";
87
- import "./chunk-HU3VD4MQ.js";
87
+ import "./chunk-GDLB6BPM.js";
88
+ import "./chunk-2Q2GGYBX.js";
88
89
  import "./chunk-NPXIS2RY.js";
89
90
  import "./chunk-SKTAZGFI.js";
90
91
  import "./chunk-X2Z5GT3V.js";
91
- import "./chunk-FMIYFHLE.js";
92
- import "./chunk-S26CV7BE.js";
92
+ import "./chunk-E2PRXEZK.js";
93
+ import "./chunk-YA5LK6KB.js";
93
94
  import "./chunk-EIOGV75A.js";
94
- import "./chunk-3SUPEE6H.js";
95
- import "./chunk-46VSBDUW.js";
95
+ import "./chunk-RDMBSHGG.js";
96
+ import "./chunk-3DCBDG4T.js";
96
97
  import "./chunk-Z6BZQHP5.js";
97
98
  import "./chunk-GUMRIUI5.js";
98
99
  import "./chunk-VGMACSEV.js";
99
- import "./chunk-NKEFYE4R.js";
100
+ import "./chunk-IPTUKX3N.js";
100
101
  import "./chunk-3OX5S7KZ.js";
101
- import "./chunk-FEU6QEEL.js";
102
- import "./chunk-MWEIBVBS.js";
102
+ import "./chunk-ZM6EZAVY.js";
103
+ import "./chunk-IJCWBYA5.js";
103
104
  import "./chunk-QGGH7LOU.js";
104
- import "./chunk-ZPP63JSQ.js";
105
+ import "./chunk-CL3AB7Z2.js";
105
106
  import "./chunk-TWMWHDOY.js";
106
- import "./chunk-4AR5XKCH.js";
107
- import "./chunk-3RGTLZNO.js";
108
- import "./chunk-M4XY4JRK.js";
107
+ import "./chunk-CL2MU3OX.js";
108
+ import "./chunk-4GAKF7KR.js";
109
109
  import "./chunk-VMHZSZQJ.js";
110
- import "./chunk-UOPCVFVR.js";
111
- import "./chunk-AWWDKF22.js";
110
+ import "./chunk-O53LTOXK.js";
111
+ import "./chunk-5RK75SWH.js";
112
+ import "./chunk-SFWNTO2F.js";
112
113
  import "./chunk-CHCA3ZM2.js";
113
114
  import "./chunk-OTVEIJUQ.js";
114
- import "./chunk-VHHX4UCP.js";
115
- import "./chunk-2FKU4ZEO.js";
116
- import "./chunk-P2UY34XE.js";
117
- import "./chunk-XDVOGDBC.js";
118
- import "./chunk-CYCIX7AW.js";
119
- import "./chunk-OAFENIHN.js";
120
- import "./chunk-F4BBMIPG.js";
121
- import "./chunk-MUCNYSJP.js";
115
+ import "./chunk-MDTWARSF.js";
116
+ import "./chunk-QDBKMEYY.js";
117
+ import "./chunk-D4C57S2H.js";
118
+ import "./chunk-KBBWALJV.js";
119
+ import "./chunk-4FLLIQRQ.js";
120
+ import "./chunk-RJ67XAJU.js";
121
+ import "./chunk-B4XJQBQB.js";
122
+ import "./chunk-NRLJOV7M.js";
122
123
  import "./chunk-5MOYSU5A.js";
123
- import "./chunk-ELEGH4DX.js";
124
+ import "./chunk-ZUGQPYUY.js";
124
125
  import "./chunk-76CJBM36.js";
125
126
  import "./chunk-QLZ46RCK.js";
126
- import "./chunk-7UHZBVP3.js";
127
- import "./chunk-6BJCDWSM.js";
128
- import "./chunk-JDDM6C57.js";
127
+ import "./chunk-QDVLVLXP.js";
128
+ import "./chunk-ZB4FS2EG.js";
129
+ import "./chunk-Z3LXWCB7.js";
130
+ import "./chunk-3X74IQBU.js";
129
131
  import "./chunk-ZKGWHT56.js";
130
- import "./chunk-QNZ4562V.js";
131
132
  import "./chunk-WT4RI36X.js";
133
+ import "./chunk-EIKATSE4.js";
132
134
  import "./chunk-E23LNUWJ.js";
133
135
  import "./chunk-TDF2XKLK.js";
134
- import "./chunk-EIKATSE4.js";
135
136
  import "./chunk-MJCSEIFI.js";
136
- import "./chunk-ALRHGEAJ.js";
137
- import "./chunk-PUBA5B4M.js";
137
+ import "./chunk-637FL62O.js";
138
+ import "./chunk-6L4VIYLZ.js";
138
139
  import "./chunk-VI4ATC6I.js";
139
140
  import "./chunk-A27Q27CT.js";
140
- import "./chunk-LSNBTGW4.js";
141
+ import "./chunk-DPYZW42H.js";
141
142
  import "./chunk-T5SM4RXY.js";
142
- import "./chunk-VJEJ7JNB.js";
143
- import "./chunk-L5EPGGDP.js";
143
+ import "./chunk-N32DVIKY.js";
144
+ import "./chunk-GWAN2BDB.js";
144
145
  import "./chunk-AM7S2TY6.js";
145
- import "./chunk-BPVFZ6Q4.js";
146
+ import "./chunk-B5EGDNG6.js";
146
147
  import "./chunk-CVYC6DUW.js";
147
148
  import "./chunk-ANVHWV2X.js";
148
149
  import "./chunk-HME6ITKV.js";
@@ -156,11 +157,11 @@ import "./chunk-NLEW62VC.js";
156
157
  import "./chunk-IMYGYIAI.js";
157
158
  import "./chunk-3DAEZILW.js";
158
159
  import "./chunk-DRTJCG6B.js";
159
- import "./chunk-UX2EO653.js";
160
+ import "./chunk-ZZWFZ46U.js";
160
161
  import "./chunk-HYZV25LY.js";
161
162
  import "./chunk-GJV3WDWM.js";
162
163
  import "./chunk-GL57PO3K.js";
163
- import "./chunk-P2VVMGMI.js";
164
+ import "./chunk-V4WH3FV7.js";
164
165
  import "./chunk-ML4S5SHZ.js";
165
166
  import "./chunk-MP2AFCGL.js";
166
167
  import "./chunk-YRUZK2QA.js";
@@ -169,7 +170,7 @@ import {
169
170
  ensureSchema,
170
171
  getClient,
171
172
  initDatabase
172
- } from "./chunk-GL47M7NY.js";
173
+ } from "./chunk-3UD3OF3X.js";
173
174
  import "./chunk-BBMTVAE3.js";
174
175
  import {
175
176
  assertValidDbPath
@@ -177,14 +178,16 @@ import {
177
178
  import {
178
179
  recordDbOpen
179
180
  } from "./chunk-5YEUPUV4.js";
180
- import "./chunk-72V3S44T.js";
181
+ import "./chunk-LUA4SLJY.js";
182
+ import "./chunk-5ONMHTNI.js";
183
+ import "./chunk-RBQUXHYK.js";
181
184
  import "./chunk-YYB5PMTK.js";
182
- import "./chunk-L5CGXEZC.js";
185
+ import "./chunk-WAAGVFFN.js";
183
186
  import "./chunk-QH5ZQ5SJ.js";
184
187
  import "./chunk-ZQEJ4IX2.js";
185
- import "./chunk-FXU7JOXK.js";
188
+ import "./chunk-C7GHNJPW.js";
186
189
  import "./chunk-SO7KTH3Q.js";
187
- import "./chunk-WNBZJSQT.js";
190
+ import "./chunk-3VW5ZP2F.js";
188
191
  import {
189
192
  exportMnemonic,
190
193
  getKeyStorageInfo,
@@ -192,13 +195,13 @@ import {
192
195
  importMnemonic,
193
196
  retireMasterKey,
194
197
  setMasterKey
195
- } from "./chunk-5U2IJBFV.js";
198
+ } from "./chunk-TA3B4N24.js";
196
199
  import "./chunk-F55P3H4S.js";
197
200
  import "./chunk-B6TI3TZT.js";
198
201
  import "./chunk-FTZET5YX.js";
199
- import "./chunk-TNS63ATU.js";
202
+ import "./chunk-FWRPDSO3.js";
200
203
  import "./chunk-A7XLR3K7.js";
201
- import "./chunk-DZN7SDY2.js";
204
+ import "./chunk-OSVTH3SG.js";
202
205
  import "./chunk-A7JYF4RG.js";
203
206
  import "./chunk-ARX6TAGN.js";
204
207
  import {
@@ -769,6 +772,14 @@ async function acceptRotationWizard(argv) {
769
772
  await initStore({ lightweight: true });
770
773
  const result = await cloudSync({ apiKey: config.cloud.apiKey, endpoint: config.cloud.endpoint });
771
774
  await disposeStore();
775
+ if (result.pullIncomplete) {
776
+ console.error(`Cloud verification PARTIAL: remote memory history was not read to the end (${result.pullPartialReason ?? "unknown"}).`);
777
+ console.error("Refusing to accept the rotation on an unverified partial restore.");
778
+ console.error("Rolling back to the old key/local DB backup...");
779
+ await restoreOldState();
780
+ console.error("Rollback complete. The old key remains active on this machine. Re-run `exe-os key accept-rotation` once cloud sync can complete a full pull.");
781
+ return 1;
782
+ }
772
783
  console.log(`\u2713 Cloud verification succeeded: ${result.totalMemories.toLocaleString()} memories visible after sync`);
773
784
  } catch (err) {
774
785
  console.error(`Cloud verification failed: ${err instanceof Error ? err.message : String(err)}`);
@@ -31,8 +31,10 @@ Orchestration phase:
31
31
 
32
32
  AI Partner \u2014 joining an org (the member side):
33
33
  exe-os org join <invite-code> Show the Org Key this install would pin
34
- exe-os org join <invite-code> --confirm "<phrase>"
35
- Redeem the invite and pin that exact Org Key
34
+ exe-os org join <invite-code> --confirm "<phrase>" --claim-passphrase "<passphrase>"
35
+ Redeem the invite and pin that exact Org Key. Both the phrase
36
+ and the claim passphrase are required \u2014 the invite code alone
37
+ does not claim a seat. Omit --claim-passphrase to be prompted.
36
38
  exe-os org unpin <org-id> --confirm "<phrase>"
37
39
  Discard a pinned Org Key (a key rotation is a security event)
38
40
 
@@ -84,9 +86,7 @@ function flag(argv, name) {
84
86
  function has(argv, name) {
85
87
  return argv.includes(`--${name}`);
86
88
  }
87
- async function promptSecret(prompt) {
88
- const fromEnv = process.env.EXE_CONSENT_PASSPHRASE;
89
- if (fromEnv !== void 0 && fromEnv !== "") return fromEnv;
89
+ async function readSecretLine(prompt) {
90
90
  const stdin = process.stdin;
91
91
  process.stderr.write(prompt);
92
92
  return await new Promise((resolve) => {
@@ -124,19 +124,27 @@ async function promptSecret(prompt) {
124
124
  stdin.on("data", onData);
125
125
  });
126
126
  }
127
+ async function promptSecret(prompt) {
128
+ const fromEnv = process.env.EXE_CONSENT_PASSPHRASE;
129
+ if (fromEnv !== void 0 && fromEnv !== "") return fromEnv;
130
+ return await readSecretLine(prompt);
131
+ }
132
+ async function promptClaimSecret(prompt) {
133
+ return await readSecretLine(prompt);
134
+ }
127
135
  async function printOrgSection() {
128
- const { resolveOrgPartnerBindings, resolvePartnerIdentities } = await import("./org-partner-config-OP4NEUNF.js");
136
+ const { resolveOrgPartnerBindings, resolvePartnerIdentities } = await import("./org-partner-config-3FXSYPQA.js");
129
137
  const bindings = resolveOrgPartnerBindings();
130
138
  if (!bindings.orgMode) {
131
139
  console.log("Org membership: none \u2014 this is a personal install. The AI Partner org surface is inactive.");
132
140
  console.log("");
133
141
  return;
134
142
  }
135
- const { orgPartnerRuntimeStatus } = await import("./org-partner-runtime-YNVUNT2R.js");
136
- const { getStandingPolicies } = await import("./org-consent-policy-VGELJ7K7.js");
137
- const { listTaskRequests } = await import("./task-request-inbox-QBZVU66E.js");
143
+ const { orgPartnerRuntimeStatus } = await import("./org-partner-runtime-TH3LMPII.js");
144
+ const { getStandingPolicies } = await import("./org-consent-policy-KFUP7QPG.js");
145
+ const { listTaskRequests } = await import("./task-request-inbox-PKJCYKJV.js");
138
146
  const { getMailboxOutboxStatus, listFailureNotices } = await import("./mailbox-outbox-OY4IU6S4.js");
139
- const { getMailboxInboxState } = await import("./mailbox-inbox-MTAT4MXX.js");
147
+ const { getMailboxInboxState } = await import("./mailbox-inbox-BPZP4GIZ.js");
140
148
  const runtime = orgPartnerRuntimeStatus();
141
149
  console.log("Org membership: ACTIVE (org mode is latched on this machine)");
142
150
  if (bindings.readError) {
@@ -186,9 +194,9 @@ async function printOrgSection() {
186
194
  if (runtime.defects.length > 0) console.log("");
187
195
  }
188
196
  async function runReport(argv) {
189
- const { assertOrgPartnerRuntimeReady } = await import("./org-partner-runtime-YNVUNT2R.js");
190
- const { draftOrgUpBrief, sendOpenDraft } = await import("./org-brief-session-3PQ22UIX.js");
191
- const { resolveOrgPartnerBindings } = await import("./org-partner-config-OP4NEUNF.js");
197
+ const { assertOrgPartnerRuntimeReady } = await import("./org-partner-runtime-TH3LMPII.js");
198
+ const { draftOrgUpBrief, sendOpenDraft } = await import("./org-brief-session-LQ2DBYVF.js");
199
+ const { resolveOrgPartnerBindings } = await import("./org-partner-config-3FXSYPQA.js");
192
200
  assertOrgPartnerRuntimeReady();
193
201
  let orgId = flag(argv, "org");
194
202
  if (!orgId) {
@@ -263,10 +271,10 @@ async function runReport(argv) {
263
271
  return 0;
264
272
  }
265
273
  async function runRequests(argv) {
266
- const { assertOrgPartnerRuntimeReady } = await import("./org-partner-runtime-YNVUNT2R.js");
267
- const { requireOrgPartnerBinding, resolveOrgPartnerBindings, resolvePartnerIdentities } = await import("./org-partner-config-OP4NEUNF.js");
268
- const { listTaskRequests, getTaskRequest, acceptTaskRequest, declineTaskRequest } = await import("./task-request-inbox-QBZVU66E.js");
269
- const { decideRequestManually } = await import("./org-consent-policy-VGELJ7K7.js");
274
+ const { assertOrgPartnerRuntimeReady } = await import("./org-partner-runtime-TH3LMPII.js");
275
+ const { requireOrgPartnerBinding, resolveOrgPartnerBindings, resolvePartnerIdentities } = await import("./org-partner-config-3FXSYPQA.js");
276
+ const { listTaskRequests, getTaskRequest, acceptTaskRequest, declineTaskRequest } = await import("./task-request-inbox-PKJCYKJV.js");
277
+ const { decideRequestManually } = await import("./org-consent-policy-KFUP7QPG.js");
270
278
  assertOrgPartnerRuntimeReady();
271
279
  let orgId = flag(argv, "org");
272
280
  if (!orgId) {
@@ -345,8 +353,8 @@ async function runRequests(argv) {
345
353
  return 0;
346
354
  }
347
355
  async function runConsent(argv) {
348
- const { resolveOrgPartnerBindings } = await import("./org-partner-config-OP4NEUNF.js");
349
- const { setConsentPassphrase, clearConsentPassphrase, consentPassphraseIsSet, MIN_CONSENT_PASSPHRASE_LENGTH } = await import("./consent-passphrase-5ZBDJ5G7.js");
356
+ const { resolveOrgPartnerBindings } = await import("./org-partner-config-3FXSYPQA.js");
357
+ const { setConsentPassphrase, clearConsentPassphrase, consentPassphraseIsSet, MIN_CONSENT_PASSPHRASE_LENGTH } = await import("./consent-passphrase-65W3DJIJ.js");
350
358
  const sub = argv[0];
351
359
  let orgId = flag(argv, "org");
352
360
  if (!orgId) {
@@ -401,12 +409,10 @@ async function runJoin(argv) {
401
409
  console.error('exe-os org join <invite-code> [--confirm "<phrase>"]');
402
410
  return 1;
403
411
  }
404
- const { fetchInviteOffer, completeOrgJoin, orgKeyPinConfirmation } = await import("./org-join-6TO5ZYUZ.js");
405
- const { readOrgKeyPin, orgKeyUnpinConfirmation } = await import("./org-key-pin-TTTYGTQL.js");
406
- const { resolvePartnerIdentities } = await import("./org-partner-config-OP4NEUNF.js");
407
- const offer = await fetchInviteOffer(code, {
408
- ...flag(argv, "endpoint") ? { endpoint: flag(argv, "endpoint") } : {}
409
- });
412
+ const { fetchInviteOffer, completeOrgJoin, orgKeyPinConfirmation } = await import("./org-join-MXZCIQWX.js");
413
+ const { readOrgKeyPin, orgKeyUnpinConfirmation } = await import("./org-key-pin-ZOX4OM3O.js");
414
+ const { resolvePartnerIdentities } = await import("./org-partner-config-3FXSYPQA.js");
415
+ const offer = await fetchInviteOffer(code, {});
410
416
  console.log(`Invite for org ${offer.orgId}${offer.orgName ? ` (${offer.orgName})` : ""}`);
411
417
  console.log("");
412
418
  console.log("You are about to PIN this organization's Org Key on this machine.");
@@ -446,17 +452,26 @@ async function runJoin(argv) {
446
452
  if (supplied !== phrase) {
447
453
  console.log("Compare that fingerprint with your org over a channel the relay does not control.");
448
454
  console.log("");
449
- console.log("Then re-run with the exact phrase:");
450
- console.log(` exe-os org join ${code} --confirm "${phrase}"`);
455
+ console.log("You will also need the claim passphrase your org gave you alongside the invite code");
456
+ console.log("(a SEPARATE value from this fingerprint) \u2014 the invite code alone does not claim a");
457
+ console.log("seat, for a member seat or an admin seat.");
458
+ console.log("");
459
+ console.log("Then re-run with the exact phrase and --claim-passphrase:");
460
+ console.log(` exe-os org join ${code} --confirm "${phrase}" --claim-passphrase "<passphrase>"`);
451
461
  console.log("");
452
462
  console.log("Nothing was pinned and nothing was joined.");
453
463
  return 1;
454
464
  }
465
+ const claimPassphrase = flag(argv, "claim-passphrase") ?? await promptClaimSecret("Claim passphrase: ");
466
+ if (!claimPassphrase) {
467
+ console.error("A claim passphrase is required. The invite code alone does not claim a seat.");
468
+ return 1;
469
+ }
455
470
  const result = await completeOrgJoin({
456
471
  code,
457
472
  offer,
458
473
  confirmation: supplied,
459
- ...flag(argv, "endpoint") ? { endpoint: flag(argv, "endpoint") } : {}
474
+ claimPassphrase
460
475
  });
461
476
  console.log(
462
477
  result.pinCreated ? `Pinned ${result.pin.org_key_sign_fp.slice(0, 16)} as the Org Key for ${result.offer.orgId}.` : `That identity was already pinned for ${result.offer.orgId} \u2014 re-joined, nothing re-pinned.`
@@ -484,10 +499,9 @@ async function runCreate(argv) {
484
499
  console.error("before it is sent and refused by the database if it ever arrives uncanonical.");
485
500
  return 1;
486
501
  }
487
- const { createOrg } = await import("./org-key-admin-XHYVRRAZ.js");
502
+ const { createOrg } = await import("./org-key-admin-4UK6QUT7.js");
488
503
  const created = await createOrg({
489
- orgId,
490
- ...flag(argv, "endpoint") ? { endpoint: flag(argv, "endpoint") } : {}
504
+ orgId
491
505
  });
492
506
  console.log(`Created ${created.orgId}. You are its first admin.`);
493
507
  console.log("");
@@ -520,10 +534,9 @@ async function runPublishKey(argv) {
520
534
  console.error("without publishing again.");
521
535
  return 1;
522
536
  }
523
- const { publishOrgKey, readMyPinnedOrgKey, describeRotation } = await import("./org-key-admin-XHYVRRAZ.js");
524
- const transport = flag(argv, "endpoint") ? { endpoint: flag(argv, "endpoint") } : {};
525
- const existing = await readMyPinnedOrgKey({ orgId, ...transport });
526
- const { resolvePartnerIdentities } = await import("./org-partner-config-OP4NEUNF.js");
537
+ const { publishOrgKey, readMyPinnedOrgKey, describeRotation } = await import("./org-key-admin-4UK6QUT7.js");
538
+ const existing = await readMyPinnedOrgKey({ orgId });
539
+ const { resolvePartnerIdentities } = await import("./org-partner-config-3FXSYPQA.js");
527
540
  const mine = await resolvePartnerIdentities(orgId);
528
541
  const myFp = mine.sign.fingerprint.toString("hex").slice(0, 16);
529
542
  if (existing && existing.fingerprint !== myFp && !has(argv, "rotate")) {
@@ -533,7 +546,7 @@ async function runPublishKey(argv) {
533
546
  console.error(` exe-os org publish-key --org ${orgId} --mailbox ${mailboxId} --rotate`);
534
547
  return 1;
535
548
  }
536
- const published = await publishOrgKey({ orgId, mailboxId, ...transport });
549
+ const published = await publishOrgKey({ orgId, mailboxId });
537
550
  if (published.rotated && published.previousFingerprint) {
538
551
  console.log(describeRotation(orgId, published.previousFingerprint, published.fingerprint));
539
552
  console.log("");
@@ -576,12 +589,11 @@ async function runInvite(argv) {
576
589
  console.error("directory entry. Try `engineer.03` or `support.lead`.");
577
590
  return 1;
578
591
  }
579
- const { issueSeatInvite } = await import("./org-key-admin-XHYVRRAZ.js");
592
+ const { issueSeatInvite } = await import("./org-key-admin-4UK6QUT7.js");
580
593
  const invite = await issueSeatInvite({
581
594
  orgId,
582
595
  seatRef,
583
- ...has(argv, "admin") ? { isAdmin: true } : {},
584
- ...flag(argv, "endpoint") ? { endpoint: flag(argv, "endpoint") } : {}
596
+ ...has(argv, "admin") ? { isAdmin: true } : {}
585
597
  });
586
598
  const { adminInviteDisclosureText } = await import("./seat-benefit-VDQJYJOB.js");
587
599
  console.log(adminInviteDisclosureText({
@@ -594,26 +606,39 @@ async function runInvite(argv) {
594
606
  console.log("");
595
607
  console.log(`Invite for seat "${invite.seatRef}" in ${invite.orgId}${invite.isAdmin ? " (ORG ADMIN)" : ""}.`);
596
608
  console.log("");
597
- console.log(" \u2500\u2500 SHOWN ONCE. Only its hash is stored; this is the only copy. \u2500\u2500");
609
+ console.log(" \u2500\u2500 SHOWN ONCE. Only their hashes are stored; this is the only copy. \u2500\u2500");
598
610
  console.log("");
599
611
  console.log(` invite code ${invite.inviteToken}`);
612
+ console.log(` claim passphrase ${invite.claimPassphrase}`);
600
613
  console.log(` Org Key fingerprint ${invite.fingerprint}`);
601
614
  console.log(` expires ${invite.expiresAt}`);
602
615
  console.log("");
603
- console.log("SEND BOTH. The joiner must present that fingerprint when they redeem, and the");
604
- console.log("database refuses the join if it disagrees \u2014 so an invite code alone is useless to");
605
- console.log("whoever it leaks to, and a substituted key is a hard refusal rather than a silent");
606
- console.log("re-point.");
616
+ console.log("THREE VALUES, AND THE FIRST TWO ARE NOT INTERCHANGEABLE WITH THE THIRD. The invite");
617
+ console.log("code and the claim passphrase are BOTH required to claim this seat \u2014 an invite code");
618
+ console.log("by itself claims nothing, for this seat or any seat, admin included.");
619
+ console.log("");
620
+ console.log("That was not always true, and it is worth being precise about why: the Org Key");
621
+ console.log("fingerprint looks like a second factor, but it is SHA-256(org_key_sign_pub), and the");
622
+ console.log("join server hands org_key_sign_pub back to anyone who merely presents the invite code");
623
+ console.log("(the non-consuming preview). Holding only the code was always enough to compute the");
624
+ console.log("fingerprint. The claim passphrase is the thing that actually gates redemption: it is");
625
+ console.log("checked entirely server-side, it is never returned by the preview, and there is");
626
+ console.log("nothing a joiner's Partner can compute to produce it.");
607
627
  console.log("");
608
- console.log("Send the fingerprint over a channel that is NOT the one carrying the code, and");
609
- console.log("ideally not one this relay controls. Reading it aloud is best: an attacker who has");
610
- console.log("both channels defeats this, and one who has only the code defeats nothing.");
628
+ console.log("SEND THE CODE AND THE PASSPHRASE OVER DIFFERENT CHANNELS FROM EACH OTHER. The same");
629
+ console.log("message carrying both is one secret wearing two labels. Send the Org Key fingerprint");
630
+ console.log("out of band too, for its own, separate reason: it protects the JOINER from being");
631
+ console.log("pointed at a substituted Org Key, and a substituted key is a hard refusal at redeem");
632
+ console.log("rather than a silent re-point \u2014 but that protection has nothing to do with keeping");
633
+ console.log("this invite from being claimed by whoever it leaks to. Keep invite code and claim");
634
+ console.log("passphrase as secret as the seat they jointly grant.");
611
635
  console.log("");
612
636
  console.log("What they run \u2014 or say to their Partner:");
613
637
  console.log(` exe-os org join ${invite.inviteToken}`);
614
- console.log(" \u2026then re-run with the --confirm phrase it prints.");
638
+ console.log(" \u2026then re-run with the --confirm phrase it prints AND --claim-passphrase.");
615
639
  console.log("");
616
- console.log("Single use. It expires in 24 hours. If it is not redeemed, issue another.");
640
+ console.log("Single use. Both expire in 24 hours. If they are not redeemed, issue another invite \u2014");
641
+ console.log("a fresh code always comes with a fresh passphrase.");
617
642
  return 0;
618
643
  }
619
644
  async function runUnpin(argv) {
@@ -622,7 +647,7 @@ async function runUnpin(argv) {
622
647
  console.error('exe-os org unpin <org-id> --confirm "<phrase>"');
623
648
  return 1;
624
649
  }
625
- const { readOrgKeyPin, unpinOrgKey, orgKeyUnpinConfirmation } = await import("./org-key-pin-TTTYGTQL.js");
650
+ const { readOrgKeyPin, unpinOrgKey, orgKeyUnpinConfirmation } = await import("./org-key-pin-ZOX4OM3O.js");
626
651
  const pin = readOrgKeyPin(orgId);
627
652
  if (!pin) {
628
653
  console.error(`No pinned Org Key for org "${orgId}".`);
@@ -646,7 +671,7 @@ async function runUnpin(argv) {
646
671
  return 0;
647
672
  }
648
673
  async function runLeave(argv) {
649
- const { clearOrgModeSticky, ORG_MODE_CLEAR_CONFIRMATION, orgMembershipPresent } = await import("./org-membership-Y7T2BS57.js");
674
+ const { clearOrgModeSticky, ORG_MODE_CLEAR_CONFIRMATION, orgMembershipPresent } = await import("./org-membership-D5TPN45F.js");
650
675
  if (!orgMembershipPresent()) {
651
676
  console.log("This install is not an org member \u2014 nothing to leave.");
652
677
  return 0;