@askexenow/exe-os 0.9.252 → 0.9.256

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 (144) hide show
  1. package/deploy/stack-manifests/v0.9.json +105 -1
  2. package/dist/{backfill-metadata-UK6AKSDG.js → backfill-metadata-R7PNZ5TX.js} +1 -1
  3. package/dist/bin/agentic-ontology-backfill.js +1 -1
  4. package/dist/bin/agentic-reflection-backfill.js +1 -1
  5. package/dist/bin/agentic-semantic-label.js +1 -1
  6. package/dist/bin/backfill-conversations.js +1 -1
  7. package/dist/bin/backfill-responses.js +1 -1
  8. package/dist/bin/backfill-vectors.js +2 -2
  9. package/dist/bin/bulk-sync-postgres.js +1 -1
  10. package/dist/bin/cleanup-stale-review-tasks.js +2 -2
  11. package/dist/bin/cli.js +6 -6
  12. package/dist/bin/exe-assign.js +1 -1
  13. package/dist/bin/exe-boot.js +3 -3
  14. package/dist/bin/exe-dispatch.js +2 -2
  15. package/dist/bin/exe-doctor.js +1 -1
  16. package/dist/bin/exe-export-behaviors.js +2 -2
  17. package/dist/bin/exe-forget.js +3 -3
  18. package/dist/bin/exe-gateway.js +5 -5
  19. package/dist/bin/exe-heartbeat.js +2 -2
  20. package/dist/bin/exe-kill.js +3 -3
  21. package/dist/bin/exe-launch-agent.js +3 -3
  22. package/dist/bin/exe-pending-messages.js +3 -3
  23. package/dist/bin/exe-pending-notifications.js +2 -2
  24. package/dist/bin/exe-pending-reviews.js +2 -2
  25. package/dist/bin/exe-review.js +3 -3
  26. package/dist/bin/exe-search.js +2 -2
  27. package/dist/bin/exe-session-cleanup.js +5 -5
  28. package/dist/bin/exe-start-codex.js +1 -1
  29. package/dist/bin/exe-start-opencode.js +1 -1
  30. package/dist/bin/exe-status.js +3 -3
  31. package/dist/bin/exe-team.js +1 -1
  32. package/dist/bin/git-sweep.js +2 -2
  33. package/dist/bin/graph-backfill.js +1 -1
  34. package/dist/bin/graph-export.js +2 -2
  35. package/dist/bin/import-history.js +2 -2
  36. package/dist/bin/intercom-check.js +3 -3
  37. package/dist/bin/mcp-sessions.js +2 -2
  38. package/dist/bin/orchestration-metrics.js +1 -1
  39. package/dist/bin/pre-publish.js +9 -1
  40. package/dist/bin/scan-tasks.js +2 -2
  41. package/dist/bin/shard-migrate.js +1 -1
  42. package/dist/{capacity-monitor-WZ45OYX4.js → capacity-monitor-QMKII67L.js} +2 -2
  43. package/dist/{catchup-brief-USYMBBJO.js → catchup-brief-CNISNLV7.js} +3 -3
  44. package/dist/{chunk-O2MBCA6W.js → chunk-2QKNXGII.js} +2 -2
  45. package/dist/{chunk-TPP2X2LO.js → chunk-3VLFVOM7.js} +2 -2
  46. package/dist/{chunk-YJMAQ2WJ.js → chunk-4FT3SQAS.js} +1 -1
  47. package/dist/{chunk-OTLK73GO.js → chunk-5NBOFYJG.js} +3 -3
  48. package/dist/{chunk-SVL3IDO5.js → chunk-5R4R743Q.js} +4 -4
  49. package/dist/{chunk-LO2H7J5S.js → chunk-ABNALOLM.js} +2 -2
  50. package/dist/{chunk-YAHDK57Z.js → chunk-AQOCHSIR.js} +2 -2
  51. package/dist/{chunk-UEYKJ7DB.js → chunk-CS267UMH.js} +5 -5
  52. package/dist/{chunk-A5U6ER76.js → chunk-DJYIBHN5.js} +1 -1
  53. package/dist/{chunk-B3VCJQTH.js → chunk-FQVITYVF.js} +1 -1
  54. package/dist/{chunk-MOTVVPK6.js → chunk-JGEGEOVP.js} +1 -1
  55. package/dist/{chunk-BG76C2PG.js → chunk-LYIUESG2.js} +4 -4
  56. package/dist/{chunk-T2UKG7XV.js → chunk-MU6ESLYL.js} +1 -1
  57. package/dist/{chunk-XVEVB5D7.js → chunk-MXCBORCC.js} +1 -1
  58. package/dist/{chunk-FXPTI5UY.js → chunk-O477L4LV.js} +1 -1
  59. package/dist/{chunk-UIZVCAH6.js → chunk-O7SFCX5B.js} +1 -1
  60. package/dist/{chunk-IRK7IICO.js → chunk-PHTRZQR4.js} +2 -2
  61. package/dist/{chunk-QR7HOUVS.js → chunk-RDCE652I.js} +1 -1
  62. package/dist/{chunk-6HTHFLCZ.js → chunk-RF54NGPJ.js} +1 -1
  63. package/dist/{chunk-OERXBIAU.js → chunk-RLDOG7DI.js} +31 -31
  64. package/dist/{chunk-D5KEF64F.js → chunk-VRVHIVUE.js} +1 -1
  65. package/dist/{chunk-BOZNNZOT.js → chunk-X7I6NLIA.js} +1 -1
  66. package/dist/{chunk-SCNNQJR7.js → chunk-XTIHYH64.js} +2 -2
  67. package/dist/{chunk-NZBGWKVC.js → chunk-Y7NMPQXZ.js} +3 -3
  68. package/dist/{chunk-KSTM7JVP.js → chunk-YDHPC4PX.js} +2 -2
  69. package/dist/{chunk-2FBIIZ6S.js → chunk-YXMXP45V.js} +1 -1
  70. package/dist/{chunk-NA5XVCFX.js → chunk-YYSQAM4W.js} +3 -3
  71. package/dist/{crm-webhook-TPOTOHWY.js → crm-webhook-QO3ZESKR.js} +2 -2
  72. package/dist/{cto-delegation-gate-E5R3YKIJ.js → cto-delegation-gate-UFPVFLIW.js} +1 -1
  73. package/dist/{daemon-orchestration-KDSJS7WA.js → daemon-orchestration-6XAISQ7B.js} +4 -4
  74. package/dist/{dreaming-FMX36SR3.js → dreaming-FJ75QVGZ.js} +2 -2
  75. package/dist/{exe-export-VESUZYBQ.js → exe-export-UYKYNVBU.js} +1 -1
  76. package/dist/{exe-import-QT5P2DS6.js → exe-import-Q4FNSMLJ.js} +1 -1
  77. package/dist/{exe-snapshot-KA5PHQ3G.js → exe-snapshot-J7CL6QEL.js} +3 -3
  78. package/dist/{fast-db-init-H35LIFCV.js → fast-db-init-QXGL2PKQ.js} +1 -1
  79. package/dist/gateway/index.js +6 -6
  80. package/dist/{git-task-sweep-DGRGDDIL.js → git-task-sweep-RRCOTTIS.js} +2 -2
  81. package/dist/hooks/bug-report-worker.js +4 -4
  82. package/dist/hooks/codex-stop-task-finalizer.js +4 -4
  83. package/dist/hooks/commit-complete.js +4 -4
  84. package/dist/hooks/error-recall.js +2 -2
  85. package/dist/hooks/ingest.js +2 -2
  86. package/dist/hooks/instructions-loaded.js +1 -1
  87. package/dist/hooks/manifest.json +18 -18
  88. package/dist/hooks/notification.js +1 -1
  89. package/dist/hooks/post-compact.js +2 -2
  90. package/dist/hooks/post-tool-combined.js +2 -2
  91. package/dist/hooks/pre-compact.js +3 -3
  92. package/dist/hooks/pre-tool-use.js +6 -6
  93. package/dist/hooks/prompt-submit.js +8 -8
  94. package/dist/hooks/session-end.js +5 -5
  95. package/dist/hooks/session-start.js +5 -5
  96. package/dist/hooks/stop.js +5 -5
  97. package/dist/hooks/subagent-stop.js +2 -2
  98. package/dist/hooks/summary-worker.js +5 -5
  99. package/dist/index.js +9 -9
  100. package/dist/lib/consolidation.js +2 -2
  101. package/dist/lib/exe-daemon.js +17 -17
  102. package/dist/lib/hybrid-search.js +2 -2
  103. package/dist/lib/messaging.js +2 -2
  104. package/dist/lib/schedules.js +2 -2
  105. package/dist/lib/store.js +1 -1
  106. package/dist/lib/tasks.js +3 -3
  107. package/dist/lib/tmux-routing.js +1 -1
  108. package/dist/mcp/register-tools.js +24 -24
  109. package/dist/mcp/server.js +25 -25
  110. package/dist/mcp/tools/create-task.js +4 -4
  111. package/dist/mcp/tools/list-tasks.js +4 -4
  112. package/dist/mcp/tools/send-message.js +3 -3
  113. package/dist/mcp/tools/update-task.js +4 -4
  114. package/dist/{notifications-MYH6GD74.js → notifications-BETWD6EK.js} +1 -1
  115. package/dist/{orchestrator-YGCIRYFV.js → orchestrator-X564XCWC.js} +2 -2
  116. package/dist/{pipeline-router-SQNAKH3W.js → pipeline-router-RVHLL7UA.js} +1 -1
  117. package/dist/{reranker-KWCF74HT.js → reranker-SRJL4IWB.js} +1 -1
  118. package/dist/{review-polling-NJLHANZP.js → review-polling-5JTTHHEO.js} +2 -2
  119. package/dist/runtime/index.js +3 -3
  120. package/dist/{session-events-R4U6QMEP.js → session-events-RCSYHQQ2.js} +2 -2
  121. package/dist/{session-scope-6PZE6QHM.js → session-scope-ZB4SR3AX.js} +1 -1
  122. package/dist/{stack-release-PFZI22WC.js → stack-release-7WDKQOCO.js} +161 -2
  123. package/dist/{task-enforcement-BZZ2TYAR.js → task-enforcement-A6AZTYAN.js} +1 -1
  124. package/dist/{task-scope-MDQTTLHS.js → task-scope-XKNAY5S7.js} +1 -1
  125. package/dist/{tasks-crud-7F7ICEOA.js → tasks-crud-F732BVOE.js} +1 -1
  126. package/dist/{tasks-notify-KANCGCFV.js → tasks-notify-LJ65U7DF.js} +2 -2
  127. package/dist/{tasks-review-7POLLSQS.js → tasks-review-Y5F4HRAR.js} +1 -1
  128. package/dist/{telemetry-upload-4PYVAB4Q.js → telemetry-upload-HVYO6FL3.js} +1 -1
  129. package/dist/tui/App.js +7 -7
  130. package/dist/{tui-data-GIAVZJJF.js → tui-data-EHJWRNRZ.js} +1 -1
  131. package/dist/{worker-gate-UD4MNUKK.js → worker-gate-4AS4K7G4.js} +1 -1
  132. package/dist/{workflow-engine-WY5VEVF3.js → workflow-engine-BXGNFNUW.js} +2 -2
  133. package/package.json +1 -1
  134. package/release-notes.json +23 -114
  135. package/stack.release.json +3 -3
  136. /package/dist/{chunk-SJ27UI23.js → chunk-3EMZZZNU.js} +0 -0
  137. /package/dist/{chunk-VPYHCC5K.js → chunk-7GR7VBBW.js} +0 -0
  138. /package/dist/{chunk-RS7EAZ2R.js → chunk-LY2DYTDL.js} +0 -0
  139. /package/dist/{chunk-CAFJIGAZ.js → chunk-PSQNT5DS.js} +0 -0
  140. /package/dist/{chunk-BCCJYW6O.js → chunk-VPHOOQLR.js} +0 -0
  141. /package/dist/{chunk-FCDLGS3S.js → chunk-X2E6W3DB.js} +0 -0
  142. /package/dist/{core-memory-O5SPRBHB.js → core-memory-WFP2L52F.js} +0 -0
  143. /package/dist/{exe-key-O2Z3XA3H.js → exe-key-22LOIIUX.js} +0 -0
  144. /package/dist/{skill-refinement-YFYK3BD2.js → skill-refinement-TT4VDYYW.js} +0 -0
@@ -1,44 +1,44 @@
1
1
  import {
2
2
  registerAllTools
3
- } from "../chunk-OERXBIAU.js";
3
+ } from "../chunk-RLDOG7DI.js";
4
4
  import "../chunk-AIXZ5O7U.js";
5
5
  import "../chunk-557C2IGL.js";
6
- import "../chunk-MOTVVPK6.js";
7
- import "../chunk-NZBGWKVC.js";
8
- import "../chunk-FCDLGS3S.js";
6
+ import "../chunk-JGEGEOVP.js";
7
+ import "../chunk-Y7NMPQXZ.js";
8
+ import "../chunk-X2E6W3DB.js";
9
9
  import "../chunk-2WBBVEIB.js";
10
10
  import "../chunk-4S5TEBXD.js";
11
11
  import "../chunk-CCPCIW4Z.js";
12
12
  import "../chunk-E6ORBQHP.js";
13
13
  import "../chunk-KH5Y6RR4.js";
14
14
  import "../chunk-CQSFIQGN.js";
15
- import "../chunk-YJMAQ2WJ.js";
15
+ import "../chunk-4FT3SQAS.js";
16
16
  import "../chunk-ZTB6E2ZL.js";
17
17
  import "../chunk-4MONXPWR.js";
18
18
  import "../chunk-NL35XNLI.js";
19
- import "../chunk-BOZNNZOT.js";
19
+ import "../chunk-X7I6NLIA.js";
20
20
  import "../chunk-LL2ARYTZ.js";
21
21
  import "../chunk-E4CCKWZN.js";
22
22
  import "../chunk-LPK5JPME.js";
23
23
  import "../chunk-VKCZ3OGM.js";
24
24
  import "../chunk-2YJSDJEH.js";
25
- import "../chunk-6HTHFLCZ.js";
25
+ import "../chunk-RF54NGPJ.js";
26
26
  import "../chunk-X4T7LR2X.js";
27
- import "../chunk-B3VCJQTH.js";
28
- import "../chunk-NA5XVCFX.js";
27
+ import "../chunk-FQVITYVF.js";
28
+ import "../chunk-YYSQAM4W.js";
29
29
  import "../chunk-MLXJ5EZG.js";
30
- import "../chunk-UIZVCAH6.js";
31
- import "../chunk-LO2H7J5S.js";
30
+ import "../chunk-O7SFCX5B.js";
31
+ import "../chunk-ABNALOLM.js";
32
32
  import "../chunk-6QMXKKFD.js";
33
- import "../chunk-D5KEF64F.js";
34
- import "../chunk-KSTM7JVP.js";
33
+ import "../chunk-VRVHIVUE.js";
34
+ import "../chunk-YDHPC4PX.js";
35
35
  import "../chunk-TVTRMINO.js";
36
36
  import "../chunk-46SQTBQW.js";
37
- import "../chunk-XVEVB5D7.js";
37
+ import "../chunk-MXCBORCC.js";
38
38
  import "../chunk-GP6G6EQI.js";
39
39
  import "../chunk-GUMRIUI5.js";
40
40
  import "../chunk-I7AW4237.js";
41
- import "../chunk-IRK7IICO.js";
41
+ import "../chunk-PHTRZQR4.js";
42
42
  import "../chunk-RQI5TG5F.js";
43
43
  import "../chunk-QP4FHME2.js";
44
44
  import "../chunk-X3SS45PO.js";
@@ -49,23 +49,23 @@ import "../chunk-FCII2MMI.js";
49
49
  import "../chunk-X2Z5GT3V.js";
50
50
  import "../chunk-WIRJ574R.js";
51
51
  import "../chunk-2NEQQCRC.js";
52
- import "../chunk-2FBIIZ6S.js";
52
+ import "../chunk-YXMXP45V.js";
53
53
  import "../chunk-HOKOOBDL.js";
54
54
  import "../chunk-CIX64N7D.js";
55
55
  import "../chunk-LBRIPVY3.js";
56
- import "../chunk-SVL3IDO5.js";
57
- import "../chunk-YAHDK57Z.js";
58
- import "../chunk-RS7EAZ2R.js";
59
- import "../chunk-QR7HOUVS.js";
56
+ import "../chunk-5R4R743Q.js";
57
+ import "../chunk-AQOCHSIR.js";
58
+ import "../chunk-LY2DYTDL.js";
59
+ import "../chunk-RDCE652I.js";
60
60
  import "../chunk-Z6GHDYQI.js";
61
61
  import "../chunk-7IZWLMTP.js";
62
- import "../chunk-BG76C2PG.js";
63
- import "../chunk-CAFJIGAZ.js";
62
+ import "../chunk-LYIUESG2.js";
63
+ import "../chunk-PSQNT5DS.js";
64
64
  import "../chunk-CHCA3ZM2.js";
65
65
  import "../chunk-AWVDA2FL.js";
66
66
  import "../chunk-VGWQBI76.js";
67
67
  import "../chunk-Y25OJWOQ.js";
68
- import "../chunk-UEYKJ7DB.js";
68
+ import "../chunk-CS267UMH.js";
69
69
  import "../chunk-6LFFIEDM.js";
70
70
  import "../chunk-5CHYEKMH.js";
71
71
  import "../chunk-4JERP7NT.js";
@@ -81,7 +81,7 @@ import "../chunk-CVYC6DUW.js";
81
81
  import "../chunk-OPU3NYOO.js";
82
82
  import "../chunk-GJV3WDWM.js";
83
83
  import "../chunk-YGAAZN3E.js";
84
- import "../chunk-BCCJYW6O.js";
84
+ import "../chunk-VPHOOQLR.js";
85
85
  import "../chunk-ONKIWA3R.js";
86
86
  import "../chunk-MP2AFCGL.js";
87
87
  import "../chunk-L3TB7CC3.js";
@@ -3,12 +3,12 @@ import {
3
3
  } from "../chunk-V4TZI6EO.js";
4
4
  import {
5
5
  registerAllTools
6
- } from "../chunk-OERXBIAU.js";
6
+ } from "../chunk-RLDOG7DI.js";
7
7
  import "../chunk-AIXZ5O7U.js";
8
8
  import "../chunk-557C2IGL.js";
9
- import "../chunk-MOTVVPK6.js";
10
- import "../chunk-NZBGWKVC.js";
11
- import "../chunk-FCDLGS3S.js";
9
+ import "../chunk-JGEGEOVP.js";
10
+ import "../chunk-Y7NMPQXZ.js";
11
+ import "../chunk-X2E6W3DB.js";
12
12
  import {
13
13
  initLicenseGate
14
14
  } from "../chunk-2WBBVEIB.js";
@@ -20,33 +20,33 @@ import "../chunk-CCPCIW4Z.js";
20
20
  import "../chunk-E6ORBQHP.js";
21
21
  import "../chunk-KH5Y6RR4.js";
22
22
  import "../chunk-CQSFIQGN.js";
23
- import "../chunk-YJMAQ2WJ.js";
23
+ import "../chunk-4FT3SQAS.js";
24
24
  import "../chunk-ZTB6E2ZL.js";
25
25
  import "../chunk-4MONXPWR.js";
26
26
  import "../chunk-NL35XNLI.js";
27
- import "../chunk-BOZNNZOT.js";
27
+ import "../chunk-X7I6NLIA.js";
28
28
  import "../chunk-LL2ARYTZ.js";
29
29
  import "../chunk-E4CCKWZN.js";
30
30
  import "../chunk-LPK5JPME.js";
31
31
  import "../chunk-VKCZ3OGM.js";
32
32
  import "../chunk-2YJSDJEH.js";
33
- import "../chunk-6HTHFLCZ.js";
33
+ import "../chunk-RF54NGPJ.js";
34
34
  import "../chunk-X4T7LR2X.js";
35
- import "../chunk-B3VCJQTH.js";
36
- import "../chunk-NA5XVCFX.js";
35
+ import "../chunk-FQVITYVF.js";
36
+ import "../chunk-YYSQAM4W.js";
37
37
  import "../chunk-MLXJ5EZG.js";
38
- import "../chunk-UIZVCAH6.js";
39
- import "../chunk-LO2H7J5S.js";
38
+ import "../chunk-O7SFCX5B.js";
39
+ import "../chunk-ABNALOLM.js";
40
40
  import "../chunk-6QMXKKFD.js";
41
- import "../chunk-D5KEF64F.js";
42
- import "../chunk-KSTM7JVP.js";
41
+ import "../chunk-VRVHIVUE.js";
42
+ import "../chunk-YDHPC4PX.js";
43
43
  import "../chunk-TVTRMINO.js";
44
44
  import "../chunk-46SQTBQW.js";
45
- import "../chunk-XVEVB5D7.js";
45
+ import "../chunk-MXCBORCC.js";
46
46
  import "../chunk-GP6G6EQI.js";
47
47
  import "../chunk-GUMRIUI5.js";
48
48
  import "../chunk-I7AW4237.js";
49
- import "../chunk-IRK7IICO.js";
49
+ import "../chunk-PHTRZQR4.js";
50
50
  import "../chunk-RQI5TG5F.js";
51
51
  import "../chunk-QP4FHME2.js";
52
52
  import "../chunk-X3SS45PO.js";
@@ -57,28 +57,28 @@ import "../chunk-FCII2MMI.js";
57
57
  import "../chunk-X2Z5GT3V.js";
58
58
  import "../chunk-WIRJ574R.js";
59
59
  import "../chunk-2NEQQCRC.js";
60
- import "../chunk-2FBIIZ6S.js";
60
+ import "../chunk-YXMXP45V.js";
61
61
  import "../chunk-HOKOOBDL.js";
62
62
  import {
63
63
  disposeEmbedder
64
64
  } from "../chunk-CIX64N7D.js";
65
65
  import "../chunk-LBRIPVY3.js";
66
- import "../chunk-SVL3IDO5.js";
67
- import "../chunk-YAHDK57Z.js";
68
- import "../chunk-RS7EAZ2R.js";
69
- import "../chunk-QR7HOUVS.js";
66
+ import "../chunk-5R4R743Q.js";
67
+ import "../chunk-AQOCHSIR.js";
68
+ import "../chunk-LY2DYTDL.js";
69
+ import "../chunk-RDCE652I.js";
70
70
  import "../chunk-Z6GHDYQI.js";
71
71
  import "../chunk-7IZWLMTP.js";
72
- import "../chunk-BG76C2PG.js";
72
+ import "../chunk-LYIUESG2.js";
73
73
  import {
74
74
  disposeStore,
75
75
  initStore
76
- } from "../chunk-CAFJIGAZ.js";
76
+ } from "../chunk-PSQNT5DS.js";
77
77
  import "../chunk-CHCA3ZM2.js";
78
78
  import "../chunk-AWVDA2FL.js";
79
79
  import "../chunk-VGWQBI76.js";
80
80
  import "../chunk-Y25OJWOQ.js";
81
- import "../chunk-UEYKJ7DB.js";
81
+ import "../chunk-CS267UMH.js";
82
82
  import "../chunk-6LFFIEDM.js";
83
83
  import "../chunk-5CHYEKMH.js";
84
84
  import "../chunk-4JERP7NT.js";
@@ -94,7 +94,7 @@ import "../chunk-CVYC6DUW.js";
94
94
  import "../chunk-OPU3NYOO.js";
95
95
  import "../chunk-GJV3WDWM.js";
96
96
  import "../chunk-YGAAZN3E.js";
97
- import "../chunk-BCCJYW6O.js";
97
+ import "../chunk-VPHOOQLR.js";
98
98
  import "../chunk-ONKIWA3R.js";
99
99
  import "../chunk-MP2AFCGL.js";
100
100
  import "../chunk-L3TB7CC3.js";
@@ -271,7 +271,7 @@ try {
271
271
  );
272
272
  const nullCount = Number(result.rows[0]?.cnt) || 0;
273
273
  if (nullCount === 0) return;
274
- const { tryAcquireWorkerSlot, registerWorkerPid } = await import("../worker-gate-UD4MNUKK.js");
274
+ const { tryAcquireWorkerSlot, registerWorkerPid } = await import("../worker-gate-4AS4K7G4.js");
275
275
  if (!tryAcquireWorkerSlot()) {
276
276
  process.stderr.write(`[exe-os] Periodic backfill: ${nullCount} NULL vectors \u2014 skipped (worker gate full)
277
277
  `);
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  registerCreateTask
3
- } from "../../chunk-NA5XVCFX.js";
3
+ } from "../../chunk-YYSQAM4W.js";
4
4
  import "../../chunk-MLXJ5EZG.js";
5
- import "../../chunk-SVL3IDO5.js";
6
- import "../../chunk-YAHDK57Z.js";
5
+ import "../../chunk-5R4R743Q.js";
6
+ import "../../chunk-AQOCHSIR.js";
7
7
  import "../../chunk-VGWQBI76.js";
8
- import "../../chunk-UEYKJ7DB.js";
8
+ import "../../chunk-CS267UMH.js";
9
9
  import "../../chunk-6LFFIEDM.js";
10
10
  import "../../chunk-5CHYEKMH.js";
11
11
  import "../../chunk-4JERP7NT.js";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  registerListTasks
3
- } from "../../chunk-UIZVCAH6.js";
4
- import "../../chunk-SVL3IDO5.js";
5
- import "../../chunk-YAHDK57Z.js";
3
+ } from "../../chunk-O7SFCX5B.js";
4
+ import "../../chunk-5R4R743Q.js";
5
+ import "../../chunk-AQOCHSIR.js";
6
6
  import "../../chunk-VGWQBI76.js";
7
- import "../../chunk-UEYKJ7DB.js";
7
+ import "../../chunk-CS267UMH.js";
8
8
  import "../../chunk-6LFFIEDM.js";
9
9
  import "../../chunk-5CHYEKMH.js";
10
10
  import "../../chunk-4JERP7NT.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  registerSendMessage
3
- } from "../../chunk-B3VCJQTH.js";
4
- import "../../chunk-XVEVB5D7.js";
3
+ } from "../../chunk-FQVITYVF.js";
4
+ import "../../chunk-MXCBORCC.js";
5
5
  import "../../chunk-VGWQBI76.js";
6
- import "../../chunk-UEYKJ7DB.js";
6
+ import "../../chunk-CS267UMH.js";
7
7
  import "../../chunk-6LFFIEDM.js";
8
8
  import "../../chunk-5CHYEKMH.js";
9
9
  import "../../chunk-4JERP7NT.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  registerUpdateTask
3
- } from "../../chunk-LO2H7J5S.js";
4
- import "../../chunk-SVL3IDO5.js";
5
- import "../../chunk-YAHDK57Z.js";
6
- import "../../chunk-UEYKJ7DB.js";
3
+ } from "../../chunk-ABNALOLM.js";
4
+ import "../../chunk-5R4R743Q.js";
5
+ import "../../chunk-AQOCHSIR.js";
6
+ import "../../chunk-CS267UMH.js";
7
7
  import "../../chunk-6LFFIEDM.js";
8
8
  import "../../chunk-5CHYEKMH.js";
9
9
  import "../../chunk-4JERP7NT.js";
@@ -7,7 +7,7 @@ import {
7
7
  migrateJsonNotifications,
8
8
  readUnreadNotifications,
9
9
  writeNotification
10
- } from "./chunk-UEYKJ7DB.js";
10
+ } from "./chunk-CS267UMH.js";
11
11
  import "./chunk-6LFFIEDM.js";
12
12
  import "./chunk-5CHYEKMH.js";
13
13
  import "./chunk-4JERP7NT.js";
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  MultiAgentOrchestrator
3
- } from "./chunk-A5U6ER76.js";
3
+ } from "./chunk-DJYIBHN5.js";
4
4
  import "./chunk-5WEH43HH.js";
5
- import "./chunk-UEYKJ7DB.js";
5
+ import "./chunk-CS267UMH.js";
6
6
  import "./chunk-6LFFIEDM.js";
7
7
  import "./chunk-5CHYEKMH.js";
8
8
  import "./chunk-4JERP7NT.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ingest
3
- } from "./chunk-SJ27UI23.js";
3
+ } from "./chunk-3EMZZZNU.js";
4
4
  import "./chunk-5U7WB4YG.js";
5
5
  import "./chunk-ITPIBVSG.js";
6
6
  import "./chunk-FXU7JOXK.js";
@@ -5,7 +5,7 @@ import {
5
5
  rerank,
6
6
  rerankWithContext,
7
7
  rerankWithScores
8
- } from "./chunk-FCDLGS3S.js";
8
+ } from "./chunk-X2E6W3DB.js";
9
9
  import "./chunk-VXIMSRTO.js";
10
10
  import "./chunk-LYH5HE24.js";
11
11
  import "./chunk-MLKGABMK.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  isExeSession,
3
3
  strictSessionScopeFilter
4
- } from "./chunk-UEYKJ7DB.js";
4
+ } from "./chunk-CS267UMH.js";
5
5
  import "./chunk-6LFFIEDM.js";
6
6
  import "./chunk-5CHYEKMH.js";
7
7
  import "./chunk-4JERP7NT.js";
@@ -102,7 +102,7 @@ function createRealDeps(getClient) {
102
102
  return result.rows;
103
103
  },
104
104
  createReviewForOrphan: async (task) => {
105
- const { createReviewForCompletedTask } = await import("./tasks-review-7POLLSQS.js");
105
+ const { createReviewForCompletedTask } = await import("./tasks-review-Y5F4HRAR.js");
106
106
  const cwd = process.cwd();
107
107
  await createReviewForCompletedTask(
108
108
  task,
@@ -3,10 +3,10 @@ import {
3
3
  SessionManager,
4
4
  checkGitSafety,
5
5
  targetsMainBranch
6
- } from "../chunk-OTLK73GO.js";
6
+ } from "../chunk-5NBOFYJG.js";
7
7
  import {
8
8
  MultiAgentOrchestrator
9
- } from "../chunk-A5U6ER76.js";
9
+ } from "../chunk-DJYIBHN5.js";
10
10
  import {
11
11
  createQuietRenderer,
12
12
  createTerminalRenderer,
@@ -57,7 +57,7 @@ import {
57
57
  createDefaultHooks
58
58
  } from "../chunk-O377P7GM.js";
59
59
  import "../chunk-5WEH43HH.js";
60
- import "../chunk-UEYKJ7DB.js";
60
+ import "../chunk-CS267UMH.js";
61
61
  import "../chunk-6LFFIEDM.js";
62
62
  import "../chunk-5CHYEKMH.js";
63
63
  import "../chunk-4JERP7NT.js";
@@ -2,8 +2,8 @@ import {
2
2
  ensureSessionEventsTable,
3
3
  listRecentSessionEvents,
4
4
  recordSessionEvent
5
- } from "./chunk-MOTVVPK6.js";
6
- import "./chunk-UEYKJ7DB.js";
5
+ } from "./chunk-JGEGEOVP.js";
6
+ import "./chunk-CS267UMH.js";
7
7
  import "./chunk-6LFFIEDM.js";
8
8
  import "./chunk-5CHYEKMH.js";
9
9
  import "./chunk-4JERP7NT.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolveExeSession
3
- } from "./chunk-UEYKJ7DB.js";
3
+ } from "./chunk-CS267UMH.js";
4
4
  import "./chunk-6LFFIEDM.js";
5
5
  import "./chunk-5CHYEKMH.js";
6
6
  import "./chunk-4JERP7NT.js";
@@ -98,7 +98,8 @@ function parseReleaseArgs(argv) {
98
98
  yes: false,
99
99
  repos: null,
100
100
  major: false,
101
- minor: false
101
+ minor: false,
102
+ skipImageVerify: false
102
103
  };
103
104
  for (let i = 0; i < argv.length; i++) {
104
105
  const arg = argv[i];
@@ -107,6 +108,7 @@ function parseReleaseArgs(argv) {
107
108
  else if (arg === "--yes" || arg === "-y") flags.yes = true;
108
109
  else if (arg === "--major") flags.major = true;
109
110
  else if (arg === "--minor") flags.minor = true;
111
+ else if (arg === "--skip-image-verify") flags.skipImageVerify = true;
110
112
  else if (arg === "--repos" && argv[i + 1]) {
111
113
  flags.repos = argv[++i].split(",").map((s) => s.trim()).filter(Boolean);
112
114
  } else if (arg.startsWith("--repos=")) {
@@ -307,6 +309,132 @@ async function waitForCI(changes, dryRun) {
307
309
  }
308
310
  return statuses;
309
311
  }
312
+ var PROXY_REGISTRY = "update.askexe.com";
313
+ var GHCR_REGISTRY = "ghcr.io";
314
+ function shortImageName(imageName) {
315
+ const parts = imageName.split("/");
316
+ return parts[parts.length - 1] ?? imageName;
317
+ }
318
+ async function checkRegistryManifest(registry, repo, tag, token) {
319
+ const url = `https://${registry}/v2/${repo}/manifests/${tag}`;
320
+ const headers = [
321
+ "-H",
322
+ "Accept: application/vnd.oci.image.index.v1+json"
323
+ ];
324
+ if (token) {
325
+ headers.push("-H", `Authorization: Bearer ${token}`);
326
+ }
327
+ try {
328
+ const { stdout } = await execFile("curl", [
329
+ "-sS",
330
+ "-m",
331
+ "30",
332
+ "-o",
333
+ "/dev/null",
334
+ "-w",
335
+ "%{http_code}",
336
+ ...headers,
337
+ url
338
+ ]);
339
+ const code = parseInt(stdout.trim(), 10);
340
+ return { status: code, ok: code >= 200 && code < 300 };
341
+ } catch {
342
+ return { status: 0, ok: false };
343
+ }
344
+ }
345
+ async function warmProxyCache(imageRef) {
346
+ try {
347
+ await execFile("docker", ["pull", imageRef], { timeout: 12e4 });
348
+ return true;
349
+ } catch {
350
+ return false;
351
+ }
352
+ }
353
+ async function verifyImages(changes, ciStatuses, dryRun) {
354
+ if (dryRun) {
355
+ return changes.map((c) => ({
356
+ repo: c.repo,
357
+ tag: `v${c.newVersion}`,
358
+ ghcr: "ok",
359
+ proxy: "ok"
360
+ }));
361
+ }
362
+ const proxyToken = process.env.EXE_REGISTRY_PROXY_PULL_TOKEN ?? void 0;
363
+ const results = [];
364
+ log("info", "Verifying Docker images are pullable...");
365
+ for (const change of changes) {
366
+ const ci = ciStatuses.find((s) => s.repo.serviceKey === change.repo.serviceKey);
367
+ if (!ci || ci.status !== "completed" || ci.conclusion !== "success") continue;
368
+ const tag = `v${change.newVersion}`;
369
+ const shortName = shortImageName(change.repo.imageName);
370
+ const proxyRepo = `askexe/${shortName}`;
371
+ const ghcrRepo = `askexe/${shortName}`;
372
+ const result = {
373
+ repo: change.repo,
374
+ tag,
375
+ ghcr: "error",
376
+ proxy: "error"
377
+ };
378
+ const proxyCheck = await checkRegistryManifest(PROXY_REGISTRY, proxyRepo, tag, proxyToken);
379
+ if (proxyCheck.ok) {
380
+ result.proxy = "ok";
381
+ } else {
382
+ result.proxy = "pending";
383
+ }
384
+ let ghcrToken;
385
+ try {
386
+ const { stdout } = await execFile("gh", ["auth", "token"]);
387
+ ghcrToken = stdout.trim();
388
+ } catch {
389
+ }
390
+ const ghcrCheck = await checkRegistryManifest(GHCR_REGISTRY, ghcrRepo, tag, ghcrToken);
391
+ if (ghcrCheck.ok) {
392
+ result.ghcr = "ok";
393
+ } else if (ghcrCheck.status === 401 || ghcrCheck.status === 403) {
394
+ result.ghcr = "ok";
395
+ result.detail = `GHCR auth insufficient (${ghcrCheck.status}) but CI passed \u2014 trusting CI`;
396
+ log("warn", `GHCR auth returned ${ghcrCheck.status} for ${shortName}:${tag} \u2014 trusting CI success`);
397
+ } else {
398
+ result.ghcr = "missing";
399
+ result.detail = `GHCR returned ${ghcrCheck.status} for ${ghcrRepo}:${tag}`;
400
+ }
401
+ if (result.ghcr === "ok" && result.proxy !== "ok") {
402
+ log("info", `Warming proxy cache for ${shortName}:${tag}...`);
403
+ const proxyRef = `${PROXY_REGISTRY}/${proxyRepo}:${tag}`;
404
+ const warmed = await warmProxyCache(proxyRef);
405
+ if (warmed) {
406
+ result.proxy = "ok";
407
+ log("ok", `Proxy cache warmed: ${shortName}:${tag}`);
408
+ } else {
409
+ result.proxy = "pending";
410
+ log("warn", `Could not warm proxy for ${shortName}:${tag} \u2014 GHCR has it, proxy will cache on first customer pull`);
411
+ }
412
+ }
413
+ if (result.ghcr === "ok" && result.proxy === "ok") {
414
+ log("ok", `Image verified: ${shortName}:${tag} (GHCR + proxy)`);
415
+ } else if (result.ghcr === "ok" && result.proxy === "pending") {
416
+ log("warn", `Image on GHCR only: ${shortName}:${tag} (proxy will cache on first pull)`);
417
+ } else if (result.ghcr === "missing") {
418
+ log("fail", `Image NOT FOUND on GHCR: ${shortName}:${tag} \u2014 release may be broken!`);
419
+ }
420
+ results.push(result);
421
+ }
422
+ return results;
423
+ }
424
+ function printImageVerification(results) {
425
+ if (results.length === 0) return;
426
+ console.log("\n Image verification:");
427
+ for (const r of results) {
428
+ const shortName = shortImageName(r.repo.imageName);
429
+ const ghcrIcon = r.ghcr === "ok" ? "\x1B[32m\u2713\x1B[0m" : "\x1B[31m\u2717\x1B[0m";
430
+ const proxyIcon = r.proxy === "ok" ? "\x1B[32m\u2713\x1B[0m" : r.proxy === "pending" ? "\x1B[33m~\x1B[0m" : "\x1B[31m\u2717\x1B[0m";
431
+ const proxyLabel = r.proxy === "pending" ? "pending (first pull will cache)" : r.proxy;
432
+ console.log(
433
+ ` ${shortName}:${r.tag}`.padEnd(40) + `${ghcrIcon} GHCR ${proxyIcon} proxy${r.proxy === "pending" ? ` (${proxyLabel})` : ""}`
434
+ );
435
+ }
436
+ console.log("");
437
+ }
310
438
  function updateStackManifest(changes, ciStatuses, dryRun) {
311
439
  const manifest = JSON.parse(readFileSync(MANIFEST_PATH, "utf8"));
312
440
  const currentLatest = manifest.latest;
@@ -446,7 +574,7 @@ async function confirm(message) {
446
574
  }
447
575
  async function runStackRelease(flags) {
448
576
  if (!flags.stack) {
449
- console.error("Usage: exe-os release --stack [--dry-run] [--repos <list>] [--yes]");
577
+ console.error("Usage: exe-os release --stack [--dry-run] [--repos <list>] [--yes] [--skip-image-verify]");
450
578
  process.exit(1);
451
579
  }
452
580
  console.log(`
@@ -509,11 +637,42 @@ async function runStackRelease(flags) {
509
637
  log("info", "Tagging repos and triggering CI...");
510
638
  await tagAndTriggerCI(changes, flags.dryRun);
511
639
  const ciStatuses = await waitForCI(changes, flags.dryRun);
640
+ let imageResults = [];
641
+ if (flags.skipImageVerify) {
642
+ log("warn", "Image verification skipped (--skip-image-verify)");
643
+ } else {
644
+ imageResults = await verifyImages(changes, ciStatuses, flags.dryRun);
645
+ const missing = imageResults.filter((r) => r.ghcr === "missing" && r.proxy !== "ok");
646
+ if (missing.length > 0 && !flags.dryRun) {
647
+ for (const m of missing) {
648
+ log("fail", `${shortImageName(m.repo.imageName)}:${m.tag} not found on GHCR or proxy \u2014 cannot release`);
649
+ }
650
+ log("fail", "Aborting: images missing. Fix CI or use --skip-image-verify to override.");
651
+ process.exit(1);
652
+ }
653
+ printImageVerification(imageResults);
654
+ }
512
655
  log("info", "Updating stack manifest...");
513
656
  const newStackVersion = updateStackManifest(changes, ciStatuses, flags.dryRun);
514
657
  const exeOsChange = changes.find((c) => c.repo.serviceKey === "exe-os");
515
658
  await commitAndTagExeOs(newStackVersion, exeOsChange, flags.dryRun);
516
659
  printSummary(changes, ciStatuses, newStackVersion, flags.dryRun);
660
+ if (!flags.skipImageVerify && !flags.dryRun && imageResults.length > 0) {
661
+ const pendingImages = imageResults.filter((r) => r.proxy === "pending");
662
+ if (pendingImages.length > 0) {
663
+ log("info", "Re-checking proxy availability for pending images...");
664
+ for (const r of pendingImages) {
665
+ const shortName = shortImageName(r.repo.imageName);
666
+ const proxyRepo = `askexe/${shortName}`;
667
+ const proxyToken = process.env.EXE_REGISTRY_PROXY_PULL_TOKEN ?? void 0;
668
+ const recheck = await checkRegistryManifest(PROXY_REGISTRY, proxyRepo, r.tag, proxyToken);
669
+ if (recheck.ok) {
670
+ r.proxy = "ok";
671
+ }
672
+ }
673
+ printImageVerification(imageResults);
674
+ }
675
+ }
517
676
  }
518
677
  export {
519
678
  parseReleaseArgs,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  sendIntercom,
3
3
  updateTaskStatus
4
- } from "./chunk-UEYKJ7DB.js";
4
+ } from "./chunk-CS267UMH.js";
5
5
  import "./chunk-6LFFIEDM.js";
6
6
  import "./chunk-5CHYEKMH.js";
7
7
  import "./chunk-4JERP7NT.js";
@@ -2,7 +2,7 @@ import {
2
2
  getCurrentSessionScope,
3
3
  sessionScopeFilter,
4
4
  strictSessionScopeFilter
5
- } from "./chunk-UEYKJ7DB.js";
5
+ } from "./chunk-CS267UMH.js";
6
6
  import "./chunk-6LFFIEDM.js";
7
7
  import "./chunk-5CHYEKMH.js";
8
8
  import "./chunk-4JERP7NT.js";
@@ -23,7 +23,7 @@ import {
23
23
  slugify,
24
24
  updateTaskStatus,
25
25
  writeCheckpoint
26
- } from "./chunk-UEYKJ7DB.js";
26
+ } from "./chunk-CS267UMH.js";
27
27
  import "./chunk-6LFFIEDM.js";
28
28
  import "./chunk-5CHYEKMH.js";
29
29
  import "./chunk-4JERP7NT.js";
@@ -3,8 +3,8 @@ import {
3
3
  markTaskNotificationsRead,
4
4
  notifyTaskDone,
5
5
  verifyDispatch
6
- } from "./chunk-YAHDK57Z.js";
7
- import "./chunk-UEYKJ7DB.js";
6
+ } from "./chunk-AQOCHSIR.js";
7
+ import "./chunk-CS267UMH.js";
8
8
  import "./chunk-6LFFIEDM.js";
9
9
  import "./chunk-5CHYEKMH.js";
10
10
  import "./chunk-4JERP7NT.js";
@@ -8,7 +8,7 @@ import {
8
8
  getReviewChecklist,
9
9
  isStale,
10
10
  listPendingReviews
11
- } from "./chunk-UEYKJ7DB.js";
11
+ } from "./chunk-CS267UMH.js";
12
12
  import "./chunk-6LFFIEDM.js";
13
13
  import "./chunk-5CHYEKMH.js";
14
14
  import "./chunk-4JERP7NT.js";
@@ -397,7 +397,7 @@ async function buildTelemetryPayload(sinceHours = 24) {
397
397
  }
398
398
  let calibration;
399
399
  try {
400
- const { DreamingEngine } = await import("./dreaming-FMX36SR3.js");
400
+ const { DreamingEngine } = await import("./dreaming-FJ75QVGZ.js");
401
401
  const engine = new DreamingEngine();
402
402
  const cal = await engine.computeCalibration("*", sinceHours);
403
403
  if (cal.assertions.total > 0 || cal.estimation.total > 0) {