@askexenow/exe-os 0.9.367 → 0.9.369

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 (344) hide show
  1. package/deploy/compose/.env.askexe-control-plane.example +3 -1
  2. package/deploy/compose/.env.customer.example +6 -2
  3. package/deploy/compose/.env.example +8 -2
  4. package/deploy/compose/docker-compose.yml +21 -2
  5. package/deploy/compose/generate-env.ts +21 -1
  6. package/dist/.dist-verified.json +3 -3
  7. package/dist/{active-agent-V3CUDNED.js → active-agent-6WNC756A.js} +3 -3
  8. package/dist/{active-agent-R6Q7UEUD.js → active-agent-RDTJGZHP.js} +3 -3
  9. package/dist/{agent-defs-generator-MLPRGY75.js → agent-defs-generator-M5AUL3WM.js} +2 -2
  10. package/dist/{agentic-ontology-5FMQWGDZ.js → agentic-ontology-ZJBRYETW.js} +1 -1
  11. package/dist/{backfill-metadata-YXUMCKRV.js → backfill-metadata-Q4X23XLR.js} +5 -5
  12. package/dist/{backup-verify-GYHKAX7K.js → backup-verify-UKLX6IEK.js} +1 -1
  13. package/dist/behavior-injection-C3HEKSJY.js +60 -0
  14. package/dist/{behaviors-O6HKTSOF.js → behaviors-UCMAREU3.js} +8 -6
  15. package/dist/bin/agentic-ontology-backfill.js +6 -6
  16. package/dist/bin/agentic-reflection-backfill.js +7 -7
  17. package/dist/bin/agentic-semantic-label.js +6 -6
  18. package/dist/bin/backfill-conversations.js +5 -5
  19. package/dist/bin/backfill-responses.js +5 -5
  20. package/dist/bin/backfill-vectors.js +6 -6
  21. package/dist/bin/bulk-sync-postgres.js +10 -10
  22. package/dist/bin/cc-doctor.js +4 -4
  23. package/dist/bin/cleanup-stale-review-tasks.js +14 -14
  24. package/dist/bin/cli.js +20 -20
  25. package/dist/bin/deferred-daemon-restart.js +83 -81
  26. package/dist/bin/exe-agent-config.js +2 -2
  27. package/dist/bin/exe-agent.js +11 -11
  28. package/dist/bin/exe-assign.js +6 -6
  29. package/dist/bin/exe-boot.js +30 -30
  30. package/dist/bin/exe-call.js +4 -4
  31. package/dist/bin/exe-cloud.js +11 -11
  32. package/dist/bin/exe-config-dump.js +2 -2
  33. package/dist/bin/exe-dispatch.js +15 -15
  34. package/dist/bin/exe-doctor.js +5 -5
  35. package/dist/bin/exe-export-behaviors.js +10 -8
  36. package/dist/bin/exe-forget.js +7 -7
  37. package/dist/bin/exe-gateway.js +7 -7
  38. package/dist/bin/exe-healthcheck.js +4 -4
  39. package/dist/bin/exe-heartbeat.js +17 -17
  40. package/dist/bin/exe-kill.js +18 -18
  41. package/dist/bin/exe-launch-agent.js +24 -23
  42. package/dist/bin/exe-mcp.js +3 -3
  43. package/dist/bin/exe-memory-reads.js +5 -5
  44. package/dist/bin/exe-new-employee.js +8 -8
  45. package/dist/bin/exe-os-mcp-proxy.js +3 -3
  46. package/dist/bin/exe-pending-messages.js +15 -15
  47. package/dist/bin/exe-pending-notifications.js +14 -14
  48. package/dist/bin/exe-pending-reviews.js +14 -14
  49. package/dist/bin/exe-rename.js +4 -4
  50. package/dist/bin/exe-review.js +17 -17
  51. package/dist/bin/exe-search.js +6 -6
  52. package/dist/bin/exe-session-cleanup.js +19 -18
  53. package/dist/bin/exe-settings.js +10 -10
  54. package/dist/bin/exe-start-codex.js +73 -19
  55. package/dist/bin/exe-start-opencode.js +11 -9
  56. package/dist/bin/exe-status.js +16 -16
  57. package/dist/bin/exe-support.js +3 -3
  58. package/dist/bin/exe-team.js +4 -4
  59. package/dist/bin/exe-verify-running-images.js +123 -4
  60. package/dist/bin/exe-watchdog.js +44 -3
  61. package/dist/bin/git-sweep.js +16 -15
  62. package/dist/bin/graph-backfill.js +7 -7
  63. package/dist/bin/graph-export.js +6 -6
  64. package/dist/bin/import-history.js +10 -10
  65. package/dist/bin/install.js +85 -83
  66. package/dist/bin/intercom-check.js +4 -4
  67. package/dist/bin/mcp-sessions.js +2 -2
  68. package/dist/bin/orchestration-metrics.js +4 -4
  69. package/dist/bin/postgres-agentic-reflection-backfill.js +4 -4
  70. package/dist/bin/postgres-agentic-semantic-backfill.js +4 -4
  71. package/dist/bin/reconcile-backlog.js +47 -6
  72. package/dist/bin/registry-proxy.js +1 -1
  73. package/dist/bin/scan-tasks.js +14 -14
  74. package/dist/bin/setup.js +1 -1
  75. package/dist/bin/shard-migrate.js +5 -5
  76. package/dist/bin/stack-update.js +6 -5
  77. package/dist/bin/verify-stack.js +6 -1
  78. package/dist/bin/vps-health-gate.js +1 -1
  79. package/dist/{boot-generation-EZ2Y74IG.js → boot-generation-7H7Y4KC2.js} +3 -3
  80. package/dist/{boot-review-sections-7CNQTAYR.js → boot-review-sections-4AGCECCP.js} +13 -13
  81. package/dist/build-manifest.json +808 -773
  82. package/dist/{capability-cards-ZTFMK4VJ.js → capability-cards-6KAC5D2Z.js} +2 -2
  83. package/dist/{capacity-monitor-B2XU4YHP.js → capacity-monitor-J2Y4SFLA.js} +15 -15
  84. package/dist/{catchup-brief-3BEOL7EV.js → catchup-brief-F2HKF2CU.js} +18 -18
  85. package/dist/{chunk-PR3AHVFW.js → chunk-2AS6FG6C.js} +3 -3
  86. package/dist/{chunk-WCDIDSLR.js → chunk-2UBMXN4D.js} +2 -2
  87. package/dist/{chunk-267QB6VB.js → chunk-2UGU3V63.js} +1 -1
  88. package/dist/{chunk-PQ6NRLKL.js → chunk-34BMZTWV.js} +1 -1
  89. package/dist/{chunk-XA4EU3CW.js → chunk-4DGIOK6T.js} +1 -1
  90. package/dist/{chunk-JJRZE2LD.js → chunk-4GVJIMMK.js} +12 -6
  91. package/dist/{chunk-2IZH6W73.js → chunk-4L732DE5.js} +3 -3
  92. package/dist/{chunk-ZSHLY5BS.js → chunk-4RRMZJLG.js} +1 -1
  93. package/dist/{chunk-MQ3N4KZY.js → chunk-5IVLOOJR.js} +1 -1
  94. package/dist/{chunk-PFR6EOUY.js → chunk-5YKNEL3W.js} +2 -2
  95. package/dist/{chunk-AE3PYLLS.js → chunk-6EXOW5ZA.js} +9 -9
  96. package/dist/{chunk-CTPG4KYZ.js → chunk-6P7DVFKA.js} +1 -1
  97. package/dist/{chunk-F3PIHVVY.js → chunk-6UZ3DEQI.js} +1 -1
  98. package/dist/{chunk-URHJDUWO.js → chunk-72JZQ7EV.js} +1 -1
  99. package/dist/{chunk-66BFQOWR.js → chunk-72QUZX6J.js} +4 -4
  100. package/dist/{chunk-JOKKIFRN.js → chunk-AAL6CDMQ.js} +7 -7
  101. package/dist/{chunk-FSIAGX55.js → chunk-AJGX4Z34.js} +1 -1
  102. package/dist/{chunk-OADOH45L.js → chunk-BEPO36MW.js} +3 -3
  103. package/dist/{chunk-UI3K73LD.js → chunk-BFL3UB77.js} +1 -1
  104. package/dist/{chunk-KDD26FUY.js → chunk-BFPQXPN3.js} +1 -1
  105. package/dist/{chunk-7W5LCREK.js → chunk-BJKC6ZJU.js} +40 -84
  106. package/dist/{chunk-OPS7KUFV.js → chunk-BLNSUBP3.js} +3 -3
  107. package/dist/{chunk-5CH6XKVC.js → chunk-BNDHQGOY.js} +1 -1
  108. package/dist/{chunk-Z5Z3MYUW.js → chunk-BPQWRR4H.js} +2 -2
  109. package/dist/{chunk-YA4PM3MV.js → chunk-BTGR55GX.js} +3 -3
  110. package/dist/{chunk-WYVBWDFY.js → chunk-C4IJ5IS5.js} +1 -1
  111. package/dist/{chunk-XVRQZCTS.js → chunk-C5FOA5GO.js} +14 -3
  112. package/dist/{chunk-XKFMNAJ7.js → chunk-CSBD7QLZ.js} +1 -1
  113. package/dist/{chunk-BY3V5CLX.js → chunk-CU2OUUSV.js} +25 -5
  114. package/dist/{chunk-Y4JVM3SI.js → chunk-CXHRNESJ.js} +1 -1
  115. package/dist/{chunk-SFKIZYKK.js → chunk-DRMGPZSC.js} +2 -2
  116. package/dist/{chunk-PFOJX6CR.js → chunk-DYPKSVB7.js} +5 -5
  117. package/dist/{chunk-PS4NA7PM.js → chunk-EDB3LXBQ.js} +268 -166
  118. package/dist/{chunk-TCR7NBHD.js → chunk-EDRXCUEP.js} +4 -4
  119. package/dist/{chunk-BQYQES2Z.js → chunk-ELY5WBZX.js} +10 -10
  120. package/dist/{chunk-ALYI3P5D.js → chunk-EZUSIF66.js} +1 -1
  121. package/dist/{chunk-CYNL3ZFD.js → chunk-FHYX64H3.js} +3 -3
  122. package/dist/{chunk-PWCZFIQH.js → chunk-FSALI4B7.js} +4 -4
  123. package/dist/{chunk-4DJDC4Y2.js → chunk-FWKTZURC.js} +4 -4
  124. package/dist/{chunk-53LCVVX5.js → chunk-FWVPGXHD.js} +5 -5
  125. package/dist/{chunk-O3F5P6Z5.js → chunk-GILYOIMP.js} +2 -2
  126. package/dist/{chunk-NPND34FS.js → chunk-GP3J3AOT.js} +4 -4
  127. package/dist/{chunk-6NJURKRG.js → chunk-H6J7N3BZ.js} +1 -1
  128. package/dist/{chunk-WSLFGJBA.js → chunk-HQSUXAB4.js} +1 -1
  129. package/dist/{chunk-XTEKGO44.js → chunk-HTLJHSN4.js} +1 -1
  130. package/dist/{chunk-AEVE654G.js → chunk-HXV3DGL7.js} +1 -1
  131. package/dist/{chunk-LW5WRSDD.js → chunk-IEE6X6R2.js} +1 -1
  132. package/dist/{chunk-V3ISR2QT.js → chunk-IKRIUEIF.js} +1 -1
  133. package/dist/{chunk-52CFP2AV.js → chunk-J44774XC.js} +1 -1
  134. package/dist/{chunk-TJSTWACD.js → chunk-J77ZIMH5.js} +5 -5
  135. package/dist/{chunk-Y7OK5PJE.js → chunk-JDPV7W2L.js} +1 -1
  136. package/dist/{chunk-7W6FDHHY.js → chunk-KGPWS4KE.js} +1 -1
  137. package/dist/{chunk-XAMLDTRA.js → chunk-KWQ7RHYD.js} +4 -4
  138. package/dist/{chunk-IIVFXD6P.js → chunk-KYVIV54Y.js} +1 -1
  139. package/dist/chunk-KZXMP6JG.js +319 -0
  140. package/dist/{chunk-ZZ3JQM5I.js → chunk-LJWCK2DR.js} +9 -9
  141. package/dist/{chunk-WBKIU6UJ.js → chunk-MCXYNYZI.js} +30 -2
  142. package/dist/{chunk-L2VZBPJJ.js → chunk-MWEIBVBS.js} +13 -1
  143. package/dist/{chunk-GUOMZ3JM.js → chunk-MXP27XTP.js} +2 -2
  144. package/dist/{chunk-EDZ5URGR.js → chunk-N3CGSO3S.js} +1 -1
  145. package/dist/{chunk-QWDZNQXA.js → chunk-NNXPIJRB.js} +1 -1
  146. package/dist/{chunk-OISZ2I4X.js → chunk-NWE3CFX7.js} +4 -4
  147. package/dist/{chunk-HSBKV5LB.js → chunk-OBESOWFJ.js} +3 -3
  148. package/dist/{chunk-XKZD5FGK.js → chunk-OL3QP3AU.js} +116 -1
  149. package/dist/{chunk-6MCUXRIP.js → chunk-P3PAD6AA.js} +1 -1
  150. package/dist/{chunk-N3JLNMPF.js → chunk-PGF5I7EV.js} +2 -2
  151. package/dist/{chunk-CX4MVEM3.js → chunk-PVWM2WMM.js} +1 -1
  152. package/dist/{chunk-JFOZHVNO.js → chunk-QCSAYYL6.js} +1 -1
  153. package/dist/{chunk-J6VQ7HYV.js → chunk-QE5KWKVU.js} +27 -6
  154. package/dist/{chunk-4WOOCTON.js → chunk-QKZEUCTS.js} +2 -2
  155. package/dist/{chunk-P5XER5QY.js → chunk-QT6CNCXO.js} +3 -3
  156. package/dist/{chunk-P76VYS6V.js → chunk-QZYYCPNL.js} +1 -1
  157. package/dist/{chunk-DTTISDTI.js → chunk-RDIZSXXD.js} +1 -1
  158. package/dist/{chunk-R4AROSYI.js → chunk-RFWOXKVL.js} +10 -179
  159. package/dist/chunk-S2YTU74T.js +76 -0
  160. package/dist/{chunk-K2OFS57E.js → chunk-TP7BFVQP.js} +2 -2
  161. package/dist/{chunk-LIZ3QQGK.js → chunk-TTJWPV4G.js} +1 -1
  162. package/dist/{chunk-XUGOVOID.js → chunk-UATT6BNO.js} +3 -3
  163. package/dist/{chunk-ALKYXAMB.js → chunk-UVM5ZXO2.js} +4 -4
  164. package/dist/{chunk-R3H3WW7H.js → chunk-V7E37GE3.js} +2 -2
  165. package/dist/{chunk-XSXZVKJ7.js → chunk-VD3CVNGB.js} +3 -3
  166. package/dist/{chunk-CKKLSY7B.js → chunk-VIW62NN5.js} +1 -1
  167. package/dist/{chunk-VY3QUSWS.js → chunk-VTOO5UB3.js} +9 -9
  168. package/dist/chunk-W5MCOZTW.js +304 -0
  169. package/dist/{chunk-TZFOWWPM.js → chunk-WJOJWRN5.js} +139 -33
  170. package/dist/{chunk-PS6VPW64.js → chunk-X4MRVNR3.js} +1 -1
  171. package/dist/{chunk-YYLVHUYZ.js → chunk-XBTQPQN7.js} +1 -1
  172. package/dist/{behavior-injection-7VGYY2KO.js → chunk-XOTDAKJL.js} +24 -38
  173. package/dist/{chunk-QX33D4CH.js → chunk-Y4AYNLXU.js} +25 -25
  174. package/dist/{chunk-BTMX2D4X.js → chunk-YGPJ7VSJ.js} +48 -10
  175. package/dist/{chunk-DXCTHNEF.js → chunk-ZR3VMM3X.js} +9 -9
  176. package/dist/{chunk-MLPPG2OG.js → chunk-ZWONQU5S.js} +1 -1
  177. package/dist/{cleanup-graph-garbage-XDIX3HLN.js → cleanup-graph-garbage-FBSQI33K.js} +8 -8
  178. package/dist/{cloud-sync-command-VPYE4FIH.js → cloud-sync-command-NHGVDTLM.js} +11 -3
  179. package/dist/{cloud-sync-db-init-NSDBTFGI.js → cloud-sync-db-init-I75VOTXC.js} +1 -1
  180. package/dist/{cloud-sync-shutdown-6OUYTG4T.js → cloud-sync-shutdown-JGOFGGET.js} +2 -2
  181. package/dist/{cloud-sync-state-5DFKLWNB.js → cloud-sync-state-QF3TMMJ4.js} +3 -1
  182. package/dist/{co-activation-EAAKGGZH.js → co-activation-AE5L2SJV.js} +2 -2
  183. package/dist/{co-occurrence-OFVF55RX.js → co-occurrence-O65D4SCN.js} +6 -6
  184. package/dist/{conversation-entity-extractor-ZR5GFKAI.js → conversation-entity-extractor-LFIDTD2O.js} +4 -4
  185. package/dist/{crdt-sync-FGH4SBFW.js → crdt-sync-NRWDBRSE.js} +1 -1
  186. package/dist/{crm-webhook-PJATR2DC.js → crm-webhook-XOQGX6DV.js} +2 -2
  187. package/dist/{cto-delegation-gate-PO4LSSQ4.js → cto-delegation-gate-ZGOAXQI2.js} +13 -13
  188. package/dist/{daemon-orchestration-IJFZFQUX.js → daemon-orchestration-ZMQWYYDT.js} +18 -18
  189. package/dist/dispatch-intent-journal-VV6HMZC4.js +17 -0
  190. package/dist/{doc-graph-extractor-CAYUAM5A.js → doc-graph-extractor-6C5JBKPP.js} +6 -6
  191. package/dist/{documents-W2G477QE.js → documents-FKSQGSO4.js} +6 -6
  192. package/dist/{dreaming-FVXSIIWV.js → dreaming-IB3H6NDZ.js} +17 -17
  193. package/dist/{employee-boot-brief-OYMSHFHA.js → employee-boot-brief-5YRTUEJH.js} +24 -21
  194. package/dist/{exe-drift-67RGJOBX.js → exe-drift-CUWUYX3O.js} +3 -3
  195. package/dist/{exe-export-SGYX6XZG.js → exe-export-XWENYJNM.js} +7 -7
  196. package/dist/{exe-import-UABVA5N3.js → exe-import-OWOMRF2S.js} +7 -7
  197. package/dist/{exe-key-XNYDCVFE.js → exe-key-P356FGK5.js} +83 -81
  198. package/dist/{exe-org-XJVSU5HN.js → exe-org-UKIVF3KE.js} +8 -8
  199. package/dist/{exe-snapshot-YXOGYZUX.js → exe-snapshot-AZI2WW5Y.js} +18 -18
  200. package/dist/{fast-db-init-GDFJY5UH.js → fast-db-init-FPAPF3GB.js} +1 -1
  201. package/dist/{founder-context-KUXSNXKS.js → founder-context-QTQ6V3B5.js} +2 -2
  202. package/dist/gateway/index.js +11 -11
  203. package/dist/{git-staleness-NN6RWNLW.js → git-staleness-6ACWLV5Q.js} +2 -2
  204. package/dist/{global-procedures-XDNA3TNA.js → global-procedures-RXIKBVLZ.js} +3 -3
  205. package/dist/{graph-auto-extract-KTOR45V4.js → graph-auto-extract-Q4A4QMOF.js} +6 -6
  206. package/dist/{graph-rag-L5NV5YWD.js → graph-rag-RLRQMY54.js} +4 -4
  207. package/dist/{hook-integrity-X3YAVGUW.js → hook-integrity-3X2JRLBM.js} +1 -1
  208. package/dist/{hook-prefetch-WE4MIXBM.js → hook-prefetch-DU44UZQP.js} +14 -14
  209. package/dist/hooks/bug-report-worker.js +18 -18
  210. package/dist/hooks/codex-stop-task-finalizer.js +19 -19
  211. package/dist/hooks/commit-complete.js +20 -18
  212. package/dist/hooks/error-recall.js +8 -8
  213. package/dist/hooks/exe-heartbeat-hook.js +4 -4
  214. package/dist/hooks/ingest-worker.js +2 -2
  215. package/dist/hooks/ingest.js +11 -11
  216. package/dist/hooks/instructions-loaded.js +5 -5
  217. package/dist/hooks/manifest.json +20 -20
  218. package/dist/hooks/notification.js +5 -5
  219. package/dist/hooks/post-compact.js +4 -4
  220. package/dist/hooks/post-tool-combined.js +11 -11
  221. package/dist/hooks/pre-compact.js +17 -17
  222. package/dist/hooks/pre-tool-use.js +44 -37
  223. package/dist/hooks/prompt-submit.js +35 -31
  224. package/dist/hooks/session-end.js +21 -21
  225. package/dist/hooks/session-start.js +16 -16
  226. package/dist/hooks/stop.js +20 -20
  227. package/dist/hooks/subagent-stop.js +18 -18
  228. package/dist/hooks/summary-worker.js +22 -22
  229. package/dist/index.js +25 -25
  230. package/dist/{installer-EAAYEEEF.js → installer-B7QYQE56.js} +7 -5
  231. package/dist/{installer-UDRMFY75.js → installer-EXR25DDG.js} +5 -5
  232. package/dist/{installer-EPQAOI6M.js → installer-TOPA7673.js} +5 -5
  233. package/dist/{intercom-queue-IBOAVT2I.js → intercom-queue-BZ4M3L4S.js} +13 -13
  234. package/dist/lib/cloud-sync.js +10 -10
  235. package/dist/lib/consolidation.js +8 -8
  236. package/dist/lib/database.js +2 -2
  237. package/dist/lib/db-backup.js +1 -1
  238. package/dist/lib/db-write-worker.js +3 -3
  239. package/dist/lib/db.js +2 -2
  240. package/dist/lib/delivery-truth.js +25 -0
  241. package/dist/lib/device-registry.js +1 -1
  242. package/dist/lib/employee-templates.js +4 -4
  243. package/dist/lib/employees.js +2 -2
  244. package/dist/lib/exe-daemon.js +181 -76
  245. package/dist/lib/hybrid-search.js +6 -6
  246. package/dist/lib/identity.js +2 -2
  247. package/dist/lib/license.js +2 -2
  248. package/dist/lib/messaging.js +14 -14
  249. package/dist/lib/registry-proxy.js +1 -1
  250. package/dist/lib/reminders.js +3 -3
  251. package/dist/lib/schedules.js +6 -6
  252. package/dist/lib/session-registry.js +4 -4
  253. package/dist/lib/skill-learning.js +7 -7
  254. package/dist/lib/store.js +5 -5
  255. package/dist/lib/task-router.js +3 -3
  256. package/dist/lib/tasks.js +15 -15
  257. package/dist/lib/tmux-routing.js +13 -13
  258. package/dist/lib/token-spend.js +3 -3
  259. package/dist/{license-gate-3TTWJABL.js → license-gate-YTIOLKVV.js} +3 -3
  260. package/dist/{license-sync-ZC6TPKVV.js → license-sync-5VE5OSTV.js} +2 -2
  261. package/dist/mcp/register-tools.js +82 -80
  262. package/dist/mcp/server.js +85 -83
  263. package/dist/mcp/tools/complete-reminder.js +4 -4
  264. package/dist/mcp/tools/create-reminder.js +4 -4
  265. package/dist/mcp/tools/create-task.js +25 -23
  266. package/dist/mcp/tools/deactivate-behavior.js +8 -8
  267. package/dist/mcp/tools/list-reminders.js +4 -4
  268. package/dist/mcp/tools/list-tasks.js +17 -17
  269. package/dist/mcp/tools/send-message.js +16 -16
  270. package/dist/mcp/tools/update-task.js +16 -16
  271. package/dist/{mcp-http-config-ROF5EPEF.js → mcp-http-config-XUNRIGQH.js} +3 -3
  272. package/dist/{mcp-session-identity-ERU6FEUB.js → mcp-session-identity-4UIG7KLK.js} +13 -13
  273. package/dist/{memory-cards-3QTXI2SG.js → memory-cards-R74YU4CO.js} +5 -5
  274. package/dist/{memory-graph-extractor-7GAILMYG.js → memory-graph-extractor-3B4QJUXI.js} +7 -7
  275. package/dist/{memory-poisoning-defense-TPXSRJTQ.js → memory-poisoning-defense-OAKFL5O2.js} +2 -2
  276. package/dist/{memory-pressure-watchdog-ZSOP6T2F.js → memory-pressure-watchdog-FFC2CHFJ.js} +14 -14
  277. package/dist/{memory-reflection-3AI4JBV2.js → memory-reflection-5IJ6RE2J.js} +2 -2
  278. package/dist/{notification-ledger-ZU7ZFJJX.js → notification-ledger-P5XBUYKO.js} +14 -14
  279. package/dist/{notifications-S4GU22GF.js → notifications-LLCCHRYV.js} +13 -13
  280. package/dist/{orchestration-events-HVG56HJ5.js → orchestration-events-VBGCIQSS.js} +3 -3
  281. package/dist/{orchestrator-UW3Q3WYG.js → orchestrator-EB3SCTAJ.js} +15 -15
  282. package/dist/{org-brief-session-G36TJBN4.js → org-brief-session-GDCDKBFF.js} +6 -6
  283. package/dist/{org-consent-policy-RMYVMM3X.js → org-consent-policy-HCD42NBN.js} +2 -2
  284. package/dist/{org-partner-runtime-KXMGEYFW.js → org-partner-runtime-TPVKFR6E.js} +6 -6
  285. package/dist/{org-row-visibility-UI5PGN76.js → org-row-visibility-ZZLOPZLH.js} +1 -1
  286. package/dist/{pipeline-router-IODWXDDI.js → pipeline-router-3JTL2KF6.js} +3 -3
  287. package/dist/{plan-limits-XMAQVEJZ.js → plan-limits-MTHRP4WY.js} +5 -5
  288. package/dist/{projection-worker-6LZUCI3B.js → projection-worker-FLASNERC.js} +2 -2
  289. package/dist/{prospective-memory-G5VK5GCD.js → prospective-memory-HI3WUY4U.js} +2 -2
  290. package/dist/{push-notifications-S2RYRXLF.js → push-notifications-DFSR6P7V.js} +14 -14
  291. package/dist/{reranker-EHQTAA3L.js → reranker-XHBKUDGG.js} +1 -1
  292. package/dist/{retrieval-health-WZ4ICGNF.js → retrieval-health-NYKSDS6M.js} +1 -1
  293. package/dist/{review-polling-MAWLRDSP.js → review-polling-UAV6DZIZ.js} +14 -14
  294. package/dist/runtime/index.js +21 -21
  295. package/dist/{session-events-BRUIZ5E4.js → session-events-YCYPLWPG.js} +14 -14
  296. package/dist/{session-kill-telemetry-PTZLHT33.js → session-kill-telemetry-UEJTHL65.js} +14 -14
  297. package/dist/{session-scope-G4RVJJGR.js → session-scope-LXDW7LJJ.js} +13 -13
  298. package/dist/{setup-wizard-WFEUB63Z.js → setup-wizard-OVJQYUUL.js} +1 -1
  299. package/dist/{skill-refinement-2OYPH7WD.js → skill-refinement-EWRJID73.js} +3 -3
  300. package/dist/{stack-promote-DLYYQXQI.js → stack-promote-4IJM36OG.js} +4 -4
  301. package/dist/{stack-release-OPWARLXI.js → stack-release-BAIRY65H.js} +4 -4
  302. package/dist/{stack-update-SJ43IEQE.js → stack-update-VDM5WXRS.js} +3 -3
  303. package/dist/stalled-dispatch-escalation-MHLYH2PT.js +80 -0
  304. package/dist/{steward-gate-V7PBGVFK.js → steward-gate-Y4N2XY3R.js} +3 -3
  305. package/dist/{subagent-brief-injection-BLCRI2AJ.js → subagent-brief-injection-7A6JEVTP.js} +21 -20
  306. package/dist/{support-inbox-6HOQYFD2.js → support-inbox-LT4WJECQ.js} +4 -3
  307. package/dist/{task-enforcement-EF6O2V26.js → task-enforcement-WOIZ5TLK.js} +14 -14
  308. package/dist/{task-request-inbox-OB2KIJWO.js → task-request-inbox-D65BPUKZ.js} +2 -2
  309. package/dist/{task-scope-74JBTKJN.js → task-scope-PQ67YRWP.js} +13 -13
  310. package/dist/{tasks-crud-ZU6RZDEZ.js → tasks-crud-TJNMUKKH.js} +13 -13
  311. package/dist/{tasks-notify-767DRYAA.js → tasks-notify-7UVC3VGI.js} +14 -14
  312. package/dist/{tasks-review-4F6PZZ3B.js → tasks-review-WDWYISZ2.js} +13 -13
  313. package/dist/{telemetry-upload-2JM6KIAB.js → telemetry-upload-6LBGRJUE.js} +7 -7
  314. package/dist/{token-budget-NH2RD4YX.js → token-budget-XO5XW6DL.js} +3 -3
  315. package/dist/{tool-telemetry-CHCBD4OQ.js → tool-telemetry-ZL6TTZWG.js} +1 -1
  316. package/dist/tui/App.js +21 -21
  317. package/dist/{tui-data-244GF3BI.js → tui-data-UK7ZPKN4.js} +13 -13
  318. package/dist/{update-support-P2LO3DAB.js → update-support-BGL5KAZO.js} +12 -12
  319. package/dist/{work-claims-4QOE7DT2.js → work-claims-XZL2DKQ3.js} +3 -3
  320. package/dist/{work-state-heartbeat-GX3VWWWK.js → work-state-heartbeat-267YQ75U.js} +1 -1
  321. package/dist/{worker-gate-62PZATOV.js → worker-gate-RUM6MLIR.js} +1 -1
  322. package/dist/{workflow-engine-7YIRU62F.js → workflow-engine-YQHGHKSJ.js} +2 -2
  323. package/dist/{worktree-3TUKIZWY.js → worktree-3FO6EQ4G.js} +4 -4
  324. package/dist/{worktree-sweep-MYQHUXDE.js → worktree-sweep-X7MUEEQS.js} +5 -5
  325. package/package.json +2 -1
  326. package/release-notes.json +56 -52
  327. /package/dist/{chunk-25EN7XXN.js → chunk-4AN2PWUK.js} +0 -0
  328. /package/dist/{chunk-WM7Y5ZV2.js → chunk-5U4UJGTW.js} +0 -0
  329. /package/dist/{chunk-62U63R3E.js → chunk-EYIX6JU7.js} +0 -0
  330. /package/dist/{chunk-JLYHJJHU.js → chunk-FDA45THL.js} +0 -0
  331. /package/dist/{chunk-JZBZI36P.js → chunk-GIO4VU4J.js} +0 -0
  332. /package/dist/{chunk-BTFDA3UJ.js → chunk-I76LRCNA.js} +0 -0
  333. /package/dist/{chunk-YNPOELAN.js → chunk-LBWEAQ6Z.js} +0 -0
  334. /package/dist/{chunk-65ZSFW3O.js → chunk-MQ5RUHNZ.js} +0 -0
  335. /package/dist/{chunk-XM7HJ5SS.js → chunk-PFCE4AXQ.js} +0 -0
  336. /package/dist/{chunk-FLP2BQOA.js → chunk-SXAERZL2.js} +0 -0
  337. /package/dist/{chunk-OUIEDJFO.js → chunk-TKTQRSSD.js} +0 -0
  338. /package/dist/{chunk-DAXFAXLN.js → chunk-U2AZUMBZ.js} +0 -0
  339. /package/dist/{chunk-GTOMDMJL.js → chunk-W6FVADZS.js} +0 -0
  340. /package/dist/{core-memory-EARETDZ6.js → core-memory-W5ZHHBRR.js} +0 -0
  341. /package/dist/{memory-isolation-XASOGA7G.js → memory-isolation-ZE7EDBO4.js} +0 -0
  342. /package/dist/{oauth-server-C3BXAKAW.js → oauth-server-3HG62YYJ.js} +0 -0
  343. /package/dist/{project-boot-LCFBQ6NB.js → project-boot-3OAWKYLO.js} +0 -0
  344. /package/dist/{wiki-acl-XQH4UBP2.js → wiki-acl-FQV4E6M4.js} +0 -0
@@ -3,16 +3,17 @@ import {
3
3
  findBestMatch,
4
4
  getRecentCommits,
5
5
  pushUnpushedCommits
6
- } from "../chunk-R4AROSYI.js";
6
+ } from "../chunk-RFWOXKVL.js";
7
+ import "../chunk-KZXMP6JG.js";
7
8
  import {
8
9
  flushBatch,
9
10
  initStore,
10
11
  writeMemory
11
- } from "../chunk-BQYQES2Z.js";
12
- import "../chunk-JLYHJJHU.js";
12
+ } from "../chunk-ELY5WBZX.js";
13
+ import "../chunk-FDA45THL.js";
13
14
  import "../chunk-CHCA3ZM2.js";
14
15
  import "../chunk-OTVEIJUQ.js";
15
- import "../chunk-WM7Y5ZV2.js";
16
+ import "../chunk-5U4UJGTW.js";
16
17
  import "../chunk-5MOYSU5A.js";
17
18
  import "../chunk-4QCFFW2H.js";
18
19
  import "../chunk-76CJBM36.js";
@@ -20,26 +21,26 @@ import {
20
21
  createReviewForCompletedTask,
21
22
  sessionScopeFilter,
22
23
  updateTaskStatus
23
- } from "../chunk-QX33D4CH.js";
24
+ } from "../chunk-Y4AYNLXU.js";
24
25
  import "../chunk-BTSWFMEH.js";
25
- import "../chunk-6MCUXRIP.js";
26
- import "../chunk-7W6FDHHY.js";
27
- import "../chunk-IIVFXD6P.js";
26
+ import "../chunk-P3PAD6AA.js";
27
+ import "../chunk-KGPWS4KE.js";
28
+ import "../chunk-KYVIV54Y.js";
28
29
  import "../chunk-WT4RI36X.js";
29
- import "../chunk-CX4MVEM3.js";
30
30
  import "../chunk-KI5PFRG6.js";
31
+ import "../chunk-QAEWWYHL.js";
31
32
  import "../chunk-EIKATSE4.js";
32
33
  import "../chunk-E23LNUWJ.js";
33
- import "../chunk-QAEWWYHL.js";
34
- import "../chunk-XKFMNAJ7.js";
34
+ import "../chunk-CSBD7QLZ.js";
35
35
  import "../chunk-GBNB4EWD.js";
36
36
  import "../chunk-UXLO7VHX.js";
37
37
  import "../chunk-DSOQUQTV.js";
38
- import "../chunk-UI3K73LD.js";
38
+ import "../chunk-BFL3UB77.js";
39
39
  import "../chunk-AJIXH5JF.js";
40
+ import "../chunk-PVWM2WMM.js";
40
41
  import "../chunk-XTWHNLGD.js";
41
42
  import "../chunk-AM7S2TY6.js";
42
- import "../chunk-N3JLNMPF.js";
43
+ import "../chunk-PGF5I7EV.js";
43
44
  import "../chunk-CVYC6DUW.js";
44
45
  import "../chunk-ZVTKWWLV.js";
45
46
  import "../chunk-CDUB5Q6J.js";
@@ -55,11 +56,11 @@ import "../chunk-GJV3WDWM.js";
55
56
  import "../chunk-MP2AFCGL.js";
56
57
  import {
57
58
  getClient
58
- } from "../chunk-HSBKV5LB.js";
59
+ } from "../chunk-OBESOWFJ.js";
59
60
  import "../chunk-TKDITWDN.js";
60
61
  import "../chunk-BBMTVAE3.js";
61
62
  import "../chunk-5YEUPUV4.js";
62
- import "../chunk-Y7OK5PJE.js";
63
+ import "../chunk-JDPV7W2L.js";
63
64
  import "../chunk-YYB5PMTK.js";
64
65
  import "../chunk-NJFJWQNN.js";
65
66
  import "../chunk-V3W3SATA.js";
@@ -67,9 +68,9 @@ import "../chunk-JY5GAZYC.js";
67
68
  import "../chunk-FXU7JOXK.js";
68
69
  import "../chunk-HPXFKUGU.js";
69
70
  import "../chunk-WNBZJSQT.js";
70
- import "../chunk-F3PIHVVY.js";
71
+ import "../chunk-6UZ3DEQI.js";
71
72
  import "../chunk-A7XLR3K7.js";
72
- import "../chunk-65ZSFW3O.js";
73
+ import "../chunk-MQ5RUHNZ.js";
73
74
  import "../chunk-QILQ5FCG.js";
74
75
  import "../chunk-ARX6TAGN.js";
75
76
  import "../chunk-QMSEL5YS.js";
@@ -440,7 +441,7 @@ try {
440
441
  } catch {
441
442
  }
442
443
  try {
443
- const { cleanupWorktree } = await import("../worktree-3TUKIZWY.js");
444
+ const { cleanupWorktree } = await import("../worktree-3FO6EQ4G.js");
444
445
  const cleanup = cleanupWorktree(process.cwd(), agentName);
445
446
  if (cleanup.cleaned) {
446
447
  process.stderr.write(`[session-cleanup] worktree cleaned: ${cleanup.reason}
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  assertSecureEndpoint
3
- } from "../chunk-BTMX2D4X.js";
3
+ } from "../chunk-YGPJ7VSJ.js";
4
+ import "../chunk-EYIX6JU7.js";
4
5
  import "../chunk-NEHOQ3P2.js";
5
- import "../chunk-62U63R3E.js";
6
6
  import "../chunk-CW2UCKHS.js";
7
7
  import "../chunk-VV5EZZNT.js";
8
8
  import "../chunk-JTB5V6BV.js";
9
9
  import "../chunk-NUTZJZKW.js";
10
- import "../chunk-WBKIU6UJ.js";
10
+ import "../chunk-MCXYNYZI.js";
11
11
  import "../chunk-VMJ2UH4S.js";
12
12
  import "../chunk-QGGH7LOU.js";
13
13
  import "../chunk-VHJVD3MZ.js";
@@ -17,11 +17,11 @@ import {
17
17
  resolveEmbeddingsEnabled,
18
18
  setEmbeddingsEnabled
19
19
  } from "../chunk-KWOAM7TA.js";
20
- import "../chunk-BQYQES2Z.js";
21
- import "../chunk-JLYHJJHU.js";
20
+ import "../chunk-ELY5WBZX.js";
21
+ import "../chunk-FDA45THL.js";
22
22
  import "../chunk-CHCA3ZM2.js";
23
23
  import "../chunk-OTVEIJUQ.js";
24
- import "../chunk-WM7Y5ZV2.js";
24
+ import "../chunk-5U4UJGTW.js";
25
25
  import "../chunk-5MOYSU5A.js";
26
26
  import "../chunk-4QCFFW2H.js";
27
27
  import "../chunk-76CJBM36.js";
@@ -41,11 +41,11 @@ import "../chunk-NLEW62VC.js";
41
41
  import "../chunk-MP2AFCGL.js";
42
42
  import {
43
43
  loadEmployeesSync
44
- } from "../chunk-HSBKV5LB.js";
44
+ } from "../chunk-OBESOWFJ.js";
45
45
  import "../chunk-TKDITWDN.js";
46
46
  import "../chunk-BBMTVAE3.js";
47
47
  import "../chunk-5YEUPUV4.js";
48
- import "../chunk-Y7OK5PJE.js";
48
+ import "../chunk-JDPV7W2L.js";
49
49
  import "../chunk-YYB5PMTK.js";
50
50
  import "../chunk-NJFJWQNN.js";
51
51
  import "../chunk-V3W3SATA.js";
@@ -55,9 +55,9 @@ import "../chunk-HPXFKUGU.js";
55
55
  import {
56
56
  DEFAULT_RUNTIME
57
57
  } from "../chunk-WNBZJSQT.js";
58
- import "../chunk-F3PIHVVY.js";
58
+ import "../chunk-6UZ3DEQI.js";
59
59
  import "../chunk-A7XLR3K7.js";
60
- import "../chunk-65ZSFW3O.js";
60
+ import "../chunk-MQ5RUHNZ.js";
61
61
  import "../chunk-QILQ5FCG.js";
62
62
  import "../chunk-ARX6TAGN.js";
63
63
  import {
@@ -1,18 +1,19 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  exportBehaviorsForAgent
4
- } from "../chunk-XVRQZCTS.js";
5
- import "../chunk-WBKIU6UJ.js";
4
+ } from "../chunk-C5FOA5GO.js";
5
+ import "../chunk-XOTDAKJL.js";
6
+ import "../chunk-MCXYNYZI.js";
6
7
  import "../chunk-VMJ2UH4S.js";
7
8
  import "../chunk-QGGH7LOU.js";
8
9
  import {
9
10
  disposeStore,
10
11
  initStore
11
- } from "../chunk-BQYQES2Z.js";
12
- import "../chunk-JLYHJJHU.js";
12
+ } from "../chunk-ELY5WBZX.js";
13
+ import "../chunk-FDA45THL.js";
13
14
  import "../chunk-CHCA3ZM2.js";
14
15
  import "../chunk-OTVEIJUQ.js";
15
- import "../chunk-WM7Y5ZV2.js";
16
+ import "../chunk-5U4UJGTW.js";
16
17
  import "../chunk-5MOYSU5A.js";
17
18
  import "../chunk-4QCFFW2H.js";
18
19
  import "../chunk-76CJBM36.js";
@@ -20,6 +21,7 @@ import {
20
21
  clearTerminalLauncherFailure,
21
22
  writeTerminalLauncherFailure
22
23
  } from "../chunk-AJIXH5JF.js";
24
+ import "../chunk-PVWM2WMM.js";
23
25
  import {
24
26
  CODEX_CHATGPT_UNSUPPORTED_MODELS,
25
27
  assertCodexModelForAuth,
@@ -35,11 +37,11 @@ import "../chunk-MP2AFCGL.js";
35
37
  import {
36
38
  baseAgentName,
37
39
  loadEmployeesSync
38
- } from "../chunk-HSBKV5LB.js";
40
+ } from "../chunk-OBESOWFJ.js";
39
41
  import "../chunk-TKDITWDN.js";
40
42
  import "../chunk-BBMTVAE3.js";
41
43
  import "../chunk-5YEUPUV4.js";
42
- import "../chunk-Y7OK5PJE.js";
44
+ import "../chunk-JDPV7W2L.js";
43
45
  import "../chunk-YYB5PMTK.js";
44
46
  import "../chunk-NJFJWQNN.js";
45
47
  import "../chunk-V3W3SATA.js";
@@ -235,8 +237,37 @@ function writePromptFile(agent, identity, behaviorsPath, globalProcedures) {
235
237
  writeFileSync(outPath, prompt, "utf-8");
236
238
  return outPath;
237
239
  }
238
- var CODEX_PINNED_SANDBOX_ARGS = ["--sandbox", "workspace-write"];
239
- var CODEX_PINNED_APPROVAL_ARGS = ["--approval-policy", "never"];
240
+ var CODEX_PINNED_SANDBOX_MODE = "workspace-write";
241
+ var CODEX_PINNED_APPROVAL_POLICY = "never";
242
+ var CODEX_APPROVAL_FLAG_PREFERENCE = ["--ask-for-approval", "--approval-policy"];
243
+ var CODEX_SANDBOX_FLAG_PREFERENCE = ["--sandbox"];
244
+ function parseCodexSupportedFlags(helpText) {
245
+ const flags = /* @__PURE__ */ new Set();
246
+ for (const match of helpText.matchAll(/(?<![\w-])--[a-z0-9][a-z0-9-]*/g)) {
247
+ flags.add(match[0]);
248
+ }
249
+ return flags;
250
+ }
251
+ function buildCodexConstraintArgs(supported, preference, configKey, value) {
252
+ const flag = preference.find((f) => supported.has(f));
253
+ return flag ? [flag, value] : ["-c", `${configKey}=${JSON.stringify(value)}`];
254
+ }
255
+ var cachedCodexExecFlags = null;
256
+ function detectCodexExecFlags(binary) {
257
+ if (cachedCodexExecFlags) return cachedCodexExecFlags;
258
+ let help = "";
259
+ try {
260
+ const probe = spawnSync(binary, ["exec", "--help"], {
261
+ encoding: "utf-8",
262
+ timeout: 1e4
263
+ });
264
+ help = `${probe.stdout ?? ""}
265
+ ${probe.stderr ?? ""}`;
266
+ } catch {
267
+ }
268
+ cachedCodexExecFlags = parseCodexSupportedFlags(help);
269
+ return cachedCodexExecFlags;
270
+ }
240
271
  function sanitizeCodexPassthroughArgs(passthrough) {
241
272
  const sanitized = [];
242
273
  for (let i = 0; i < passthrough.length; i++) {
@@ -244,26 +275,44 @@ function sanitizeCodexPassthroughArgs(passthrough) {
244
275
  if (arg === "--dangerously-bypass-approvals-and-sandbox" || arg === "--full-auto") {
245
276
  continue;
246
277
  }
247
- if (arg === "--sandbox" || arg === "-s" || arg === "--approval-policy") {
278
+ if (arg === "--sandbox" || arg === "-s" || arg === "--approval-policy" || arg === "--ask-for-approval" || arg === "-a") {
248
279
  i++;
249
280
  continue;
250
281
  }
251
- if (arg.startsWith("--sandbox=") || arg.startsWith("-s=") || arg.startsWith("--approval-policy=")) {
282
+ if (arg.startsWith("--sandbox=") || arg.startsWith("-s=") || arg.startsWith("--approval-policy=") || arg.startsWith("--ask-for-approval=") || arg.startsWith("-a=")) {
252
283
  continue;
253
284
  }
285
+ if (arg === "-c" || arg === "--config") {
286
+ const next = passthrough[i + 1];
287
+ if (next && /^(sandbox_mode|approval_policy)\s*=/.test(next)) {
288
+ i++;
289
+ continue;
290
+ }
291
+ }
254
292
  sanitized.push(arg);
255
293
  }
256
294
  return sanitized;
257
295
  }
258
296
  function buildCodexLaunchArgs(input) {
297
+ const supported = input.supportedExecFlags ?? detectCodexExecFlags(CODEX.binary);
259
298
  const args = [
260
299
  "exec",
261
300
  "-m",
262
301
  input.effectiveModel,
263
302
  "-c",
264
303
  `model=${JSON.stringify(input.effectiveModel)}`,
265
- ...CODEX_PINNED_SANDBOX_ARGS,
266
- ...CODEX_PINNED_APPROVAL_ARGS,
304
+ ...buildCodexConstraintArgs(
305
+ supported,
306
+ CODEX_SANDBOX_FLAG_PREFERENCE,
307
+ "sandbox_mode",
308
+ CODEX_PINNED_SANDBOX_MODE
309
+ ),
310
+ ...buildCodexConstraintArgs(
311
+ supported,
312
+ CODEX_APPROVAL_FLAG_PREFERENCE,
313
+ "approval_policy",
314
+ CODEX_PINNED_APPROVAL_POLICY
315
+ ),
267
316
  "--color",
268
317
  "never",
269
318
  ...sanitizeCodexPassthroughArgs(input.passthrough)
@@ -525,7 +574,7 @@ async function main() {
525
574
  await initStore();
526
575
  behaviorsPath = await exportBehaviorsForAgent(baseAgent, "");
527
576
  try {
528
- const { loadGlobalProcedures, getGlobalProceduresBlock } = await import("../global-procedures-XDNA3TNA.js");
577
+ const { loadGlobalProcedures, getGlobalProceduresBlock } = await import("../global-procedures-RXIKBVLZ.js");
529
578
  await loadGlobalProcedures();
530
579
  const block = getGlobalProceduresBlock();
531
580
  if (block) globalProcedures = block;
@@ -575,8 +624,8 @@ async function main() {
575
624
  let codexProfileName = null;
576
625
  if (exeSessionName) {
577
626
  try {
578
- const { readOrCreateDaemonToken } = await import("../mcp-http-config-ROF5EPEF.js");
579
- const { mcpHttpUrl } = await import("../mcp-http-config-ROF5EPEF.js");
627
+ const { readOrCreateDaemonToken } = await import("../mcp-http-config-XUNRIGQH.js");
628
+ const { mcpHttpUrl } = await import("../mcp-http-config-XUNRIGQH.js");
580
629
  const token = readOrCreateDaemonToken();
581
630
  const profileContent = buildCodexMcpProfileContent({
582
631
  agentId: codexIdentity.memoryAgent,
@@ -606,12 +655,12 @@ async function main() {
606
655
  }
607
656
  }
608
657
  try {
609
- const { writeActiveAgent } = await import("../active-agent-R6Q7UEUD.js");
658
+ const { writeActiveAgent } = await import("../active-agent-RDTJGZHP.js");
610
659
  writeActiveAgent(memoryAgent, empRole);
611
660
  } catch {
612
661
  }
613
662
  try {
614
- const { verifyCodexHooks, runCodexInstaller } = await import("../installer-EPQAOI6M.js");
663
+ const { verifyCodexHooks, runCodexInstaller } = await import("../installer-TOPA7673.js");
615
664
  if (!verifyCodexHooks()) {
616
665
  process.stderr.write("[exe-start-codex] hooks missing \u2014 registering now\n");
617
666
  await runCodexInstaller();
@@ -629,7 +678,7 @@ async function main() {
629
678
  `);
630
679
  if (WORKTREE_ROLES.has(empRole)) {
631
680
  try {
632
- const { ensureWorktree, parseInstanceLabel } = await import("../worktree-3TUKIZWY.js");
681
+ const { ensureWorktree, parseInstanceLabel } = await import("../worktree-3FO6EQ4G.js");
633
682
  const { base, instance } = parseInstanceLabel(worktreeName);
634
683
  worktreePath = ensureWorktree(process.cwd(), base, instance);
635
684
  if (worktreePath) {
@@ -707,12 +756,17 @@ if (!process.env.VITEST) {
707
756
  export {
708
757
  CODEX_AUTONOMOUS_BOOT_PROMPT,
709
758
  CODEX_BOOT_INSTRUCTIONS,
759
+ CODEX_PINNED_APPROVAL_POLICY,
760
+ CODEX_PINNED_SANDBOX_MODE,
710
761
  buildCodexBootPrompt,
762
+ buildCodexConstraintArgs,
711
763
  buildCodexLaunchArgs,
712
764
  buildCodexMcpProfileContent,
765
+ detectCodexExecFlags,
713
766
  detectCodexModelNotSupported,
714
767
  launchCodex,
715
768
  loadIdentity,
769
+ parseCodexSupportedFlags,
716
770
  readCodexUserConfig,
717
771
  resolveCodexMcpIdentity,
718
772
  resolveEffectiveCodexModel,
@@ -1,21 +1,23 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  exportBehaviorsForAgent
4
- } from "../chunk-XVRQZCTS.js";
5
- import "../chunk-WBKIU6UJ.js";
4
+ } from "../chunk-C5FOA5GO.js";
5
+ import "../chunk-XOTDAKJL.js";
6
+ import "../chunk-MCXYNYZI.js";
6
7
  import "../chunk-VMJ2UH4S.js";
7
8
  import "../chunk-QGGH7LOU.js";
8
9
  import {
9
10
  disposeStore,
10
11
  initStore
11
- } from "../chunk-BQYQES2Z.js";
12
- import "../chunk-JLYHJJHU.js";
12
+ } from "../chunk-ELY5WBZX.js";
13
+ import "../chunk-FDA45THL.js";
13
14
  import "../chunk-CHCA3ZM2.js";
14
15
  import "../chunk-OTVEIJUQ.js";
15
- import "../chunk-WM7Y5ZV2.js";
16
+ import "../chunk-5U4UJGTW.js";
16
17
  import "../chunk-5MOYSU5A.js";
17
18
  import "../chunk-4QCFFW2H.js";
18
19
  import "../chunk-76CJBM36.js";
20
+ import "../chunk-PVWM2WMM.js";
19
21
  import "../chunk-BNHAZ65R.js";
20
22
  import "../chunk-RIECV7SR.js";
21
23
  import "../chunk-LNOS24GV.js";
@@ -24,11 +26,11 @@ import "../chunk-MP2AFCGL.js";
24
26
  import {
25
27
  baseAgentName,
26
28
  loadEmployeesSync
27
- } from "../chunk-HSBKV5LB.js";
29
+ } from "../chunk-OBESOWFJ.js";
28
30
  import "../chunk-TKDITWDN.js";
29
31
  import "../chunk-BBMTVAE3.js";
30
32
  import "../chunk-5YEUPUV4.js";
31
- import "../chunk-Y7OK5PJE.js";
33
+ import "../chunk-JDPV7W2L.js";
32
34
  import "../chunk-YYB5PMTK.js";
33
35
  import "../chunk-NJFJWQNN.js";
34
36
  import "../chunk-V3W3SATA.js";
@@ -196,12 +198,12 @@ async function main() {
196
198
  })();
197
199
  process.env.AGENT_ROLE = empRole;
198
200
  try {
199
- const { writeActiveAgent } = await import("../active-agent-R6Q7UEUD.js");
201
+ const { writeActiveAgent } = await import("../active-agent-RDTJGZHP.js");
200
202
  writeActiveAgent(memoryAgent, empRole);
201
203
  } catch {
202
204
  }
203
205
  try {
204
- const { verifyOpenCodeHooks, runOpenCodeInstaller } = await import("../installer-UDRMFY75.js");
206
+ const { verifyOpenCodeHooks, runOpenCodeInstaller } = await import("../installer-EXR25DDG.js");
205
207
  if (!verifyOpenCodeHooks()) {
206
208
  process.stderr.write("[exe-start-opencode] hooks missing \u2014 registering now\n");
207
209
  await runOpenCodeInstaller();
@@ -1,29 +1,29 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  status
4
- } from "../chunk-NPND34FS.js";
5
- import "../chunk-JZBZI36P.js";
6
- import "../chunk-BTFDA3UJ.js";
7
- import "../chunk-QX33D4CH.js";
4
+ } from "../chunk-GP3J3AOT.js";
5
+ import "../chunk-GIO4VU4J.js";
6
+ import "../chunk-I76LRCNA.js";
7
+ import "../chunk-Y4AYNLXU.js";
8
8
  import "../chunk-BTSWFMEH.js";
9
- import "../chunk-6MCUXRIP.js";
10
- import "../chunk-7W6FDHHY.js";
11
- import "../chunk-IIVFXD6P.js";
9
+ import "../chunk-P3PAD6AA.js";
10
+ import "../chunk-KGPWS4KE.js";
11
+ import "../chunk-KYVIV54Y.js";
12
12
  import "../chunk-WT4RI36X.js";
13
- import "../chunk-CX4MVEM3.js";
14
13
  import "../chunk-KI5PFRG6.js";
14
+ import "../chunk-QAEWWYHL.js";
15
15
  import "../chunk-EIKATSE4.js";
16
16
  import "../chunk-E23LNUWJ.js";
17
- import "../chunk-QAEWWYHL.js";
18
- import "../chunk-XKFMNAJ7.js";
17
+ import "../chunk-CSBD7QLZ.js";
19
18
  import "../chunk-GBNB4EWD.js";
20
19
  import "../chunk-UXLO7VHX.js";
21
20
  import "../chunk-DSOQUQTV.js";
22
- import "../chunk-UI3K73LD.js";
21
+ import "../chunk-BFL3UB77.js";
23
22
  import "../chunk-AJIXH5JF.js";
23
+ import "../chunk-PVWM2WMM.js";
24
24
  import "../chunk-XTWHNLGD.js";
25
25
  import "../chunk-AM7S2TY6.js";
26
- import "../chunk-N3JLNMPF.js";
26
+ import "../chunk-PGF5I7EV.js";
27
27
  import "../chunk-CVYC6DUW.js";
28
28
  import "../chunk-ZVTKWWLV.js";
29
29
  import "../chunk-CDUB5Q6J.js";
@@ -35,20 +35,20 @@ import "../chunk-W2IRQJ6R.js";
35
35
  import "../chunk-HYZV25LY.js";
36
36
  import "../chunk-GJV3WDWM.js";
37
37
  import "../chunk-MP2AFCGL.js";
38
- import "../chunk-HSBKV5LB.js";
38
+ import "../chunk-OBESOWFJ.js";
39
39
  import "../chunk-TKDITWDN.js";
40
40
  import "../chunk-BBMTVAE3.js";
41
41
  import "../chunk-5YEUPUV4.js";
42
- import "../chunk-Y7OK5PJE.js";
42
+ import "../chunk-JDPV7W2L.js";
43
43
  import "../chunk-YYB5PMTK.js";
44
44
  import "../chunk-NJFJWQNN.js";
45
45
  import "../chunk-V3W3SATA.js";
46
46
  import "../chunk-JY5GAZYC.js";
47
47
  import "../chunk-FXU7JOXK.js";
48
48
  import "../chunk-WNBZJSQT.js";
49
- import "../chunk-F3PIHVVY.js";
49
+ import "../chunk-6UZ3DEQI.js";
50
50
  import "../chunk-A7XLR3K7.js";
51
- import "../chunk-65ZSFW3O.js";
51
+ import "../chunk-MQ5RUHNZ.js";
52
52
  import "../chunk-QILQ5FCG.js";
53
53
  import "../chunk-ARX6TAGN.js";
54
54
  import "../chunk-QMSEL5YS.js";
@@ -4,12 +4,12 @@ import {
4
4
  main,
5
5
  runHealth,
6
6
  runTest
7
- } from "../chunk-JJRZE2LD.js";
7
+ } from "../chunk-4GVJIMMK.js";
8
8
  import "../chunk-MMRUBN3I.js";
9
9
  import "../chunk-2XZ6X3PJ.js";
10
- import "../chunk-F3PIHVVY.js";
10
+ import "../chunk-6UZ3DEQI.js";
11
11
  import "../chunk-A7XLR3K7.js";
12
- import "../chunk-65ZSFW3O.js";
12
+ import "../chunk-MQ5RUHNZ.js";
13
13
  import "../chunk-QMSEL5YS.js";
14
14
  import "../chunk-HSGBZSCA.js";
15
15
  import "../chunk-JKKZGDLP.js";
@@ -1,18 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  shutdownCli
4
- } from "../chunk-JZBZI36P.js";
4
+ } from "../chunk-GIO4VU4J.js";
5
5
  import {
6
6
  fastDbInit
7
- } from "../chunk-BTFDA3UJ.js";
7
+ } from "../chunk-I76LRCNA.js";
8
8
  import {
9
9
  getClient,
10
10
  loadEmployees
11
- } from "../chunk-HSBKV5LB.js";
11
+ } from "../chunk-OBESOWFJ.js";
12
12
  import "../chunk-TKDITWDN.js";
13
13
  import "../chunk-BBMTVAE3.js";
14
14
  import "../chunk-5YEUPUV4.js";
15
- import "../chunk-Y7OK5PJE.js";
15
+ import "../chunk-JDPV7W2L.js";
16
16
  import "../chunk-YYB5PMTK.js";
17
17
  import "../chunk-NJFJWQNN.js";
18
18
  import "../chunk-V3W3SATA.js";
@@ -7,6 +7,12 @@ import {
7
7
  isFirstPartyImage,
8
8
  normalizeVersion
9
9
  } from "../chunk-L25OAFOU.js";
10
+ import {
11
+ compareLiveArtifacts,
12
+ declaredArtifactsFromManifest,
13
+ deliveryStateOf,
14
+ parseDigest
15
+ } from "../chunk-W5MCOZTW.js";
10
16
  import "../chunk-MLKGABMK.js";
11
17
 
12
18
  // src/bin/exe-verify-running-images.ts
@@ -93,6 +99,82 @@ function inspectContainer(name) {
93
99
  labels: { [VERSION_LABEL]: clean(version), [REVISION_LABEL]: clean(revision) }
94
100
  };
95
101
  }
102
+ function resolveRunningRef(containerName, configuredImage) {
103
+ const imageId = run("docker", ["inspect", containerName, "--format", "{{ .Image }}"]);
104
+ if (imageId.status !== 0) return configuredImage;
105
+ const id = imageId.stdout.trim();
106
+ if (!id) return configuredImage;
107
+ const digests = run("docker", ["inspect", id, "--format", "{{ json .RepoDigests }}"]);
108
+ if (digests.status !== 0) return configuredImage;
109
+ let list = [];
110
+ try {
111
+ const parsed = JSON.parse(digests.stdout.trim() || "[]");
112
+ if (Array.isArray(parsed)) list = parsed.filter((x) => typeof x === "string");
113
+ } catch {
114
+ return configuredImage;
115
+ }
116
+ if (list.length === 0) return configuredImage;
117
+ const configuredRepo = (configuredImage.split("@")[0] ?? "").replace(/:[^/:]+$/, "");
118
+ return list.find((d) => d.startsWith(`${configuredRepo}@`)) ?? list[0] ?? configuredImage;
119
+ }
120
+ function groupRunningArtifacts(entries) {
121
+ const byRef = /* @__PURE__ */ new Map();
122
+ for (const e of entries) {
123
+ const existing = byRef.get(e.ref);
124
+ if (existing) {
125
+ existing.containers.push(e.container);
126
+ continue;
127
+ }
128
+ byRef.set(e.ref, { containers: [e.container], ref: e.ref, digest: parseDigest(e.ref) });
129
+ }
130
+ return [...byRef.values()];
131
+ }
132
+ function loadManifest(explicitPath) {
133
+ const candidates = explicitPath ? [explicitPath] : DEFAULT_MANIFESTS;
134
+ for (const candidate of candidates) {
135
+ if (!existsSync(candidate)) continue;
136
+ try {
137
+ return { manifest: JSON.parse(readFileSync(candidate, "utf8")), path: candidate };
138
+ } catch {
139
+ }
140
+ }
141
+ return void 0;
142
+ }
143
+ function loadDeclared(explicitPath) {
144
+ const loaded = loadManifest(explicitPath);
145
+ if (!loaded) return { declared: [], source: "no manifest found" };
146
+ try {
147
+ return { declared: declaredArtifactsFromManifest(loaded.manifest), source: loaded.path };
148
+ } catch {
149
+ return { declared: [], source: `${loaded.path} (unreadable stacks)` };
150
+ }
151
+ }
152
+ var VERDICT_ICON = {
153
+ agrees: "\u{1F7E2}",
154
+ disagrees: "\u{1F534}",
155
+ undeclared: "\u{1F7E0}",
156
+ "unknown-provenance": "\u{1F7E0}",
157
+ "not-running": "\u{1F7E0}"
158
+ };
159
+ function printLiveState(report) {
160
+ console.log(
161
+ `
162
+ What is live \u2014 ${report.inventory.runningArtifacts} running artifact(s) vs ${report.inventory.declaredArtifacts} declared (${report.inventory.source})
163
+ `
164
+ );
165
+ for (const e of report.entries) {
166
+ const icon = VERDICT_ICON[e.verdict] ?? "?";
167
+ console.log(` ${icon} ${e.service.padEnd(22)} ${e.verdict}`);
168
+ if (e.running) console.log(` running ${e.running.digest ?? e.running.ref} [${e.running.containers.join(", ")}]`);
169
+ if (e.declared) console.log(` declared ${e.declared.digest ?? e.declared.ref}`);
170
+ if (e.verdict !== "agrees") console.log(` ${e.detail}`);
171
+ }
172
+ console.log(
173
+ `
174
+ agrees: ${report.counts.agrees} disagrees: ${report.counts.disagrees} undeclared: ${report.counts.undeclared} unknown-provenance: ${report.counts["unknown-provenance"]} not-running: ${report.counts["not-running"]}
175
+ `
176
+ );
177
+ }
96
178
  function loadKnownVersions(explicitPath) {
97
179
  const candidates = explicitPath ? [explicitPath] : DEFAULT_MANIFESTS;
98
180
  for (const candidate of candidates) {
@@ -118,8 +200,33 @@ function main(argv) {
118
200
  const containers = names.map(inspectContainer).filter((c) => c !== void 0);
119
201
  const knownVersions = loadKnownVersions(manifestPath);
120
202
  const findings = findRunningImageIssues(containers, knownVersions);
203
+ const { declared, source } = loadDeclared(manifestPath);
204
+ const running = groupRunningArtifacts(
205
+ containers.map((c) => ({ container: c.name, ref: resolveRunningRef(c.name, c.image) }))
206
+ );
207
+ const liveState = compareLiveArtifacts(running, declared, {
208
+ source,
209
+ // A declared service with nothing running it is real information on a full
210
+ // stack host, and pure noise on a subset install. Reported only when the
211
+ // manifest was actually readable, and always as a finding the reader can
212
+ // dismiss — see limitation 4 in delivery-truth.ts.
213
+ reportNotRunning: declared.length > 0
214
+ });
121
215
  if (json) {
122
- console.log(JSON.stringify({ ok: findings.length === 0, checked: containers.length, findings }, null, 2));
216
+ console.log(
217
+ JSON.stringify(
218
+ {
219
+ ok: findings.length === 0 && liveState.findings.length === 0,
220
+ checked: containers.length,
221
+ findings,
222
+ liveState,
223
+ // The contract the bug/task close gates should consume (#690/#694).
224
+ delivery: deliveryStateOf(liveState)
225
+ },
226
+ null,
227
+ 2
228
+ )
229
+ );
123
230
  } else {
124
231
  console.log(`Running-image version assertion \u2014 inspected ${containers.length} container(s)`);
125
232
  if (knownVersions.size === 0) {
@@ -131,15 +238,27 @@ function main(argv) {
131
238
  for (const f of findings) {
132
239
  console.error(` \u{1F534} [${f.kind}] ${f.message}`);
133
240
  }
241
+ if (declared.length === 0) {
242
+ console.log(" \u26A0\uFE0F no declared artifacts readable \u2014 live-vs-declared comparison SKIPPED (this is not a pass)");
243
+ } else {
244
+ printLiveState(liveState);
245
+ }
134
246
  }
135
- if (findings.length === 0) return 0;
247
+ const enforceable = liveState.findings.filter((f) => f.verdict !== "not-running");
248
+ const total = findings.length + enforceable.length;
249
+ if (total === 0) return 0;
136
250
  if (!enforce) {
137
251
  console.error(
138
- `::warning::${findings.length} running-image finding(s) \u2014 WARN-first, not failing. Pass --enforce (or EXE_VERIFY_RUNNING_IMAGES_ENFORCE=1) to fail closed.`
252
+ `::warning::${findings.length} running-image finding(s) and ${liveState.findings.length} live-vs-declared finding(s) \u2014 WARN-first, not failing. Pass --enforce (or EXE_VERIFY_RUNNING_IMAGES_ENFORCE=1) to fail closed.`
139
253
  );
140
254
  return 0;
141
255
  }
142
- console.error(`::error::${findings.length} running container(s) do not resolve to a known release.`);
256
+ for (const f of enforceable) {
257
+ console.error(`::error::[${f.verdict}] ${f.service}: ${f.detail}`);
258
+ }
259
+ console.error(
260
+ `::error::${total} finding(s): ${findings.length} container(s) do not resolve to a known release; ${enforceable.length} artifact(s) are not the artifact the signed manifest pins.`
261
+ );
143
262
  return 1;
144
263
  }
145
264
  process.exit(main(process.argv));