@askexenow/exe-os 0.9.348 → 0.9.349

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 (196) hide show
  1. package/deploy/compose/docker-compose.yml +15 -6
  2. package/deploy/compose/erp-nginx/nginx.conf +17 -10
  3. package/deploy/stack-manifests/v0.9.30-apps.json +81 -0
  4. package/deploy/stack-manifests/v0.9.json +111 -2
  5. package/dist/{backfill-metadata-MCFBGWKX.js → backfill-metadata-TUUT3QII.js} +1 -1
  6. package/dist/{behaviors-6GI6VND2.js → behaviors-3DQM4PSA.js} +2 -2
  7. package/dist/bin/agentic-ontology-backfill.js +1 -1
  8. package/dist/bin/agentic-reflection-backfill.js +1 -1
  9. package/dist/bin/agentic-semantic-label.js +1 -1
  10. package/dist/bin/backfill-conversations.js +1 -1
  11. package/dist/bin/backfill-responses.js +1 -1
  12. package/dist/bin/backfill-vectors.js +2 -2
  13. package/dist/bin/bulk-sync-postgres.js +3 -3
  14. package/dist/bin/cleanup-stale-review-tasks.js +3 -3
  15. package/dist/bin/cli.js +8 -8
  16. package/dist/bin/deferred-daemon-restart.js +38 -38
  17. package/dist/bin/exe-agent.js +3 -3
  18. package/dist/bin/exe-assign.js +1 -1
  19. package/dist/bin/exe-boot.js +14 -14
  20. package/dist/bin/exe-call.js +3 -3
  21. package/dist/bin/exe-cloud.js +3 -3
  22. package/dist/bin/exe-dispatch.js +3 -3
  23. package/dist/bin/exe-doctor.js +1 -1
  24. package/dist/bin/exe-export-behaviors.js +4 -4
  25. package/dist/bin/exe-forget.js +3 -3
  26. package/dist/bin/exe-gateway.js +5 -5
  27. package/dist/bin/exe-heartbeat.js +5 -5
  28. package/dist/bin/exe-kill.js +5 -5
  29. package/dist/bin/exe-launch-agent.js +9 -9
  30. package/dist/bin/exe-memory-reads.js +1 -1
  31. package/dist/bin/exe-new-employee.js +3 -3
  32. package/dist/bin/exe-pending-messages.js +4 -4
  33. package/dist/bin/exe-pending-notifications.js +3 -3
  34. package/dist/bin/exe-pending-reviews.js +3 -3
  35. package/dist/bin/exe-rename.js +3 -3
  36. package/dist/bin/exe-review.js +4 -4
  37. package/dist/bin/exe-search.js +2 -2
  38. package/dist/bin/exe-session-cleanup.js +4 -4
  39. package/dist/bin/exe-settings.js +3 -3
  40. package/dist/bin/exe-start-codex.js +4 -4
  41. package/dist/bin/exe-start-opencode.js +3 -3
  42. package/dist/bin/exe-status.js +4 -4
  43. package/dist/bin/exe-team.js +1 -1
  44. package/dist/bin/git-sweep.js +3 -3
  45. package/dist/bin/graph-backfill.js +1 -1
  46. package/dist/bin/graph-export.js +2 -2
  47. package/dist/bin/import-history.js +2 -2
  48. package/dist/bin/install.js +38 -38
  49. package/dist/bin/intercom-check.js +4 -4
  50. package/dist/bin/mcp-sessions.js +2 -2
  51. package/dist/bin/orchestration-metrics.js +1 -1
  52. package/dist/bin/pre-publish.js +1 -1
  53. package/dist/bin/reconcile-backlog.js +1 -1
  54. package/dist/bin/scan-tasks.js +3 -3
  55. package/dist/bin/setup.js +1 -1
  56. package/dist/bin/shard-migrate.js +1 -1
  57. package/dist/{boot-review-sections-QF5MZGJI.js → boot-review-sections-UTOPAQQJ.js} +2 -2
  58. package/dist/{capacity-monitor-CG2IGONS.js → capacity-monitor-IO6JHLXV.js} +4 -4
  59. package/dist/{catchup-brief-QFVNMTU5.js → catchup-brief-QCKB32YC.js} +4 -4
  60. package/dist/{chunk-DXMTJJP3.js → chunk-2N5MLJLM.js} +2 -2
  61. package/dist/{chunk-L36RX54F.js → chunk-2T6NZLMO.js} +1 -1
  62. package/dist/{chunk-YAIFZXOM.js → chunk-3QLWBLS3.js} +2 -2
  63. package/dist/{chunk-WL3IQJKN.js → chunk-453QJHGW.js} +2 -2
  64. package/dist/{chunk-2WJYLXPF.js → chunk-4DZDXS5N.js} +1 -1
  65. package/dist/{chunk-SMQ642D3.js → chunk-4FHBXWSA.js} +2 -2
  66. package/dist/{chunk-DJYJDK53.js → chunk-4HMZQRQD.js} +6 -6
  67. package/dist/{chunk-6GSYN262.js → chunk-5TBGZK55.js} +1 -1
  68. package/dist/{chunk-7WQ3WHPW.js → chunk-5YDNNUZ6.js} +52 -52
  69. package/dist/{chunk-PAXAF2UY.js → chunk-5YXC7GF5.js} +3 -3
  70. package/dist/{chunk-HL24OHHS.js → chunk-6NRY3CFI.js} +6 -6
  71. package/dist/{chunk-GLOWJP5H.js → chunk-7HO5VMDR.js} +2 -2
  72. package/dist/{chunk-UTQWVRU6.js → chunk-7OPIIYF2.js} +4 -4
  73. package/dist/{chunk-PBLDPW4U.js → chunk-ADRZXHUB.js} +1 -1
  74. package/dist/{chunk-MMXIE6HV.js → chunk-BHDOPDPY.js} +7 -1
  75. package/dist/{chunk-GA655CUD.js → chunk-CIKFGNES.js} +1 -1
  76. package/dist/{chunk-5KCC26FB.js → chunk-D3DCRA3H.js} +1 -1
  77. package/dist/{chunk-A43SIGAO.js → chunk-E76MXORZ.js} +1 -1
  78. package/dist/{chunk-AQ24P2O7.js → chunk-FXE56MAI.js} +2 -2
  79. package/dist/{chunk-H3TA23PH.js → chunk-GTZKETSS.js} +2 -2
  80. package/dist/{chunk-ZXSFUR77.js → chunk-IFSKL5QW.js} +7 -7
  81. package/dist/{chunk-KZUU6MNF.js → chunk-IKYQ2HSH.js} +1 -1
  82. package/dist/{chunk-TLWYOMSS.js → chunk-NAHDJLLB.js} +2 -2
  83. package/dist/{chunk-6WFXNQDJ.js → chunk-NBTSUPTB.js} +1 -1
  84. package/dist/{chunk-JW5XS35A.js → chunk-NUWAB2ZB.js} +2 -2
  85. package/dist/{chunk-AXNUMBLO.js → chunk-O5RXPXDD.js} +1 -1
  86. package/dist/{chunk-5RPCWLXE.js → chunk-OYEBUJ5W.js} +1 -1
  87. package/dist/{chunk-H5QNVWU4.js → chunk-P3JQDXY6.js} +2 -2
  88. package/dist/{chunk-FFCPSPNK.js → chunk-R6POL63K.js} +1 -1
  89. package/dist/{chunk-YM6GJM2F.js → chunk-RFKWETK3.js} +1 -1
  90. package/dist/{chunk-BUUGFQHL.js → chunk-SRK5AWVS.js} +2 -2
  91. package/dist/{chunk-CCOKYSJA.js → chunk-SUJFXYMQ.js} +1 -1
  92. package/dist/{chunk-WZJ3VYRJ.js → chunk-TIWFOWL6.js} +1 -1
  93. package/dist/{chunk-FPK753IZ.js → chunk-TRIK7MXS.js} +5 -5
  94. package/dist/{chunk-43RTUMUT.js → chunk-UG2R4LHI.js} +1 -1
  95. package/dist/{chunk-MGMXYI7Y.js → chunk-UPZQLFRJ.js} +1 -1
  96. package/dist/{chunk-AUILJKSM.js → chunk-UUJZAOF3.js} +1 -1
  97. package/dist/{chunk-WWT3E7DO.js → chunk-UXPMDQHP.js} +1 -1
  98. package/dist/{chunk-GJ6KIHOM.js → chunk-VC2OE37S.js} +2 -2
  99. package/dist/{chunk-AFY4V4N3.js → chunk-VRQTOLRH.js} +1 -1
  100. package/dist/{chunk-6QRS3IZF.js → chunk-W3T76WFH.js} +1 -1
  101. package/dist/{chunk-BOQUXG7N.js → chunk-XF2G47JS.js} +1 -1
  102. package/dist/{chunk-Y3JXLIZV.js → chunk-Y6IP4R5M.js} +1 -1
  103. package/dist/{chunk-Z52QQB4Z.js → chunk-YF3B3NQF.js} +2 -2
  104. package/dist/chunk-YFLHS7GV.js +58 -0
  105. package/dist/{cleanup-graph-garbage-XTSBQXD6.js → cleanup-graph-garbage-ON45J7RR.js} +1 -1
  106. package/dist/{crm-webhook-P64SXEHD.js → crm-webhook-OJFVII6G.js} +2 -2
  107. package/dist/{cto-delegation-gate-6KLGT2LB.js → cto-delegation-gate-KNH5TRUS.js} +2 -2
  108. package/dist/{daemon-orchestration-JQGKEWPD.js → daemon-orchestration-VFM2FKGY.js} +7 -7
  109. package/dist/{documents-7EPH3VPE.js → documents-253FGKPI.js} +2 -2
  110. package/dist/{dreaming-O4P2W5E5.js → dreaming-EFRFVQDZ.js} +4 -4
  111. package/dist/{exe-export-YJI4USGZ.js → exe-export-AVGUGDMJ.js} +4 -4
  112. package/dist/{exe-import-SUTAYKUW.js → exe-import-ALYVE4XT.js} +4 -4
  113. package/dist/{exe-key-CRSDAOZD.js → exe-key-5MDOPRDS.js} +38 -38
  114. package/dist/{exe-snapshot-KB4YYDCA.js → exe-snapshot-ZN523QP6.js} +5 -5
  115. package/dist/{fast-db-init-3K2PV6GJ.js → fast-db-init-GJGO22F5.js} +1 -1
  116. package/dist/gateway/index.js +6 -6
  117. package/dist/{global-procedures-PEWDBSPJ.js → global-procedures-HZFQ3WJB.js} +2 -2
  118. package/dist/{hook-prefetch-O6ZCZCTX.js → hook-prefetch-ITWBE3XZ.js} +3 -3
  119. package/dist/hooks/bug-report-worker.js +5 -5
  120. package/dist/hooks/codex-stop-task-finalizer.js +6 -6
  121. package/dist/hooks/commit-complete.js +5 -5
  122. package/dist/hooks/error-recall.js +2 -2
  123. package/dist/hooks/ingest.js +2 -2
  124. package/dist/hooks/instructions-loaded.js +1 -1
  125. package/dist/hooks/manifest.json +18 -18
  126. package/dist/hooks/notification.js +1 -1
  127. package/dist/hooks/post-compact.js +3 -3
  128. package/dist/hooks/post-tool-combined.js +3 -3
  129. package/dist/hooks/pre-compact.js +4 -4
  130. package/dist/hooks/pre-tool-use.js +9 -9
  131. package/dist/hooks/prompt-submit.js +13 -13
  132. package/dist/hooks/session-end.js +6 -6
  133. package/dist/hooks/session-start.js +7 -7
  134. package/dist/hooks/stop.js +6 -6
  135. package/dist/hooks/subagent-stop.js +5 -5
  136. package/dist/hooks/summary-worker.js +6 -6
  137. package/dist/index.js +10 -10
  138. package/dist/{intercom-queue-A52WQOCD.js → intercom-queue-RLWMSZHB.js} +2 -2
  139. package/dist/lib/cloud-sync.js +3 -3
  140. package/dist/lib/consolidation.js +2 -2
  141. package/dist/lib/employee-templates.js +3 -3
  142. package/dist/lib/exe-daemon.js +35 -35
  143. package/dist/lib/hybrid-search.js +2 -2
  144. package/dist/lib/messaging.js +3 -3
  145. package/dist/lib/schedules.js +2 -2
  146. package/dist/lib/skill-learning.js +3 -3
  147. package/dist/lib/store.js +1 -1
  148. package/dist/lib/tasks.js +4 -4
  149. package/dist/lib/tmux-routing.js +2 -2
  150. package/dist/mcp/register-tools.js +37 -37
  151. package/dist/mcp/server.js +38 -38
  152. package/dist/mcp/tools/create-task.js +5 -5
  153. package/dist/mcp/tools/deactivate-behavior.js +3 -3
  154. package/dist/mcp/tools/list-tasks.js +5 -5
  155. package/dist/mcp/tools/send-message.js +4 -4
  156. package/dist/mcp/tools/update-task.js +5 -5
  157. package/dist/{mcp-session-identity-OPRX32H5.js → mcp-session-identity-YTXFSOWN.js} +2 -2
  158. package/dist/{memory-cards-GFO2CSPV.js → memory-cards-CJJJ2EP6.js} +1 -1
  159. package/dist/{memory-pressure-watchdog-IG7VRFIX.js → memory-pressure-watchdog-VNKYRODT.js} +3 -3
  160. package/dist/{notification-ledger-KSCPGLQG.js → notification-ledger-OE4XNOAY.js} +2 -2
  161. package/dist/{notifications-YKHZPCXU.js → notifications-DU4WVNET.js} +2 -2
  162. package/dist/{orchestrator-4MZEQULR.js → orchestrator-JRSVEKLB.js} +3 -3
  163. package/dist/{pipeline-router-RSRJPZNI.js → pipeline-router-4RRX65W7.js} +1 -1
  164. package/dist/{platform-procedures-DZ6YABEK.js → platform-procedures-NBKHO33A.js} +1 -1
  165. package/dist/{projection-worker-SKAMSZJF.js → projection-worker-PXJZEKFK.js} +1 -1
  166. package/dist/{reranker-HXMJ7SKW.js → reranker-DWNE7KUB.js} +1 -1
  167. package/dist/{review-polling-KQUALBEU.js → review-polling-K2V34KEA.js} +3 -3
  168. package/dist/runtime/index.js +4 -4
  169. package/dist/{session-events-3KL735DZ.js → session-events-R3WL7J7D.js} +3 -3
  170. package/dist/{session-kill-telemetry-KVRGLYVI.js → session-kill-telemetry-BQSJZ2A7.js} +3 -3
  171. package/dist/{session-scope-LBG6DT5O.js → session-scope-SMYECIDA.js} +2 -2
  172. package/dist/{setup-wizard-UL3AKI6E.js → setup-wizard-BUFVAFWP.js} +1 -1
  173. package/dist/{skill-refinement-6HPISXQC.js → skill-refinement-VG3UU7MU.js} +1 -1
  174. package/dist/{stack-promote-RSOWO6EY.js → stack-promote-RARBN276.js} +13 -3
  175. package/dist/{stack-release-HGFFFCGC.js → stack-release-OTVTLA6B.js} +464 -169
  176. package/dist/{task-enforcement-OAOL7XFL.js → task-enforcement-RNSASE3R.js} +3 -3
  177. package/dist/{task-scope-PSVAE3EM.js → task-scope-TW3BWFVJ.js} +2 -2
  178. package/dist/{tasks-crud-TLELWWUL.js → tasks-crud-VXCTTSB5.js} +2 -2
  179. package/dist/{tasks-notify-7Q2XTDZ7.js → tasks-notify-ETPCCUXG.js} +3 -3
  180. package/dist/{tasks-review-S6QB5KGS.js → tasks-review-TY7OZBAT.js} +2 -2
  181. package/dist/{telemetry-upload-LTL5SW24.js → telemetry-upload-ABCUA2WS.js} +1 -1
  182. package/dist/tui/App.js +11 -11
  183. package/dist/{tui-data-3JSV56ME.js → tui-data-XZX7VSG4.js} +2 -2
  184. package/dist/{update-support-LMPGWJVG.js → update-support-Q5HFD4IN.js} +2 -2
  185. package/dist/{worker-gate-P2O64XMH.js → worker-gate-RKHQLE4F.js} +1 -1
  186. package/dist/{workflow-engine-BLLQKA3O.js → workflow-engine-CXUJIH3R.js} +2 -2
  187. package/package.json +3 -2
  188. package/release-notes.json +26 -34
  189. /package/dist/{chunk-BTP7BORU.js → chunk-4N3NTBGJ.js} +0 -0
  190. /package/dist/{chunk-AQ6ECPUP.js → chunk-A4X7SCDG.js} +0 -0
  191. /package/dist/{chunk-HTJKAAHD.js → chunk-E77V5MTE.js} +0 -0
  192. /package/dist/{chunk-PIUDQ7P2.js → chunk-ELJSXKYA.js} +0 -0
  193. /package/dist/{chunk-DRHXISWL.js → chunk-GI3O5MGF.js} +0 -0
  194. /package/dist/{chunk-SLH2743O.js → chunk-WUNXNNJL.js} +0 -0
  195. /package/dist/{chunk-A42356G7.js → chunk-ZFR4A5W4.js} +0 -0
  196. /package/dist/{core-memory-Z7LPR3RX.js → core-memory-PCKGCUZU.js} +0 -0
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-OBWIVRD6.js";
12
12
  import {
13
13
  incrementSkillSuccess
14
- } from "./chunk-A42356G7.js";
14
+ } from "./chunk-ZFR4A5W4.js";
15
15
  import {
16
16
  LEASE_MINUTES,
17
17
  isLeaseExpired,
@@ -1513,7 +1513,7 @@ async function createTaskCore(input) {
1513
1513
  if (isCoordinatorSession) {
1514
1514
  earlySessionScope = resolved;
1515
1515
  } else {
1516
- const { getSessionProject } = await import("./session-scope-LBG6DT5O.js");
1516
+ const { getSessionProject } = await import("./session-scope-SMYECIDA.js");
1517
1517
  const sessionProject = getSessionProject(resolved);
1518
1518
  if (sessionProject && sessionProject !== input.projectName) {
1519
1519
  scopeMismatchWarning = `session/project mismatch: session "${resolved}" owns "${sessionProject}" but task targets "${input.projectName}". Routed to default scope.`;
@@ -5142,7 +5142,7 @@ async function verifyPaneAtCapacity(sessionName) {
5142
5142
  reason: `capture-pane failed: ${err instanceof Error ? err.message : String(err)}`
5143
5143
  };
5144
5144
  }
5145
- const { isAtCapacity } = await import("./capacity-monitor-CG2IGONS.js");
5145
+ const { isAtCapacity } = await import("./capacity-monitor-IO6JHLXV.js");
5146
5146
  if (!isAtCapacity(pane)) {
5147
5147
  return {
5148
5148
  atCapacity: false,
@@ -5345,7 +5345,7 @@ async function countScopedPendingReviews(targetSession, reviewer) {
5345
5345
  }
5346
5346
  async function countScopedOpenTasks(targetSession, agentId) {
5347
5347
  try {
5348
- const { fastDbInit } = await import("./fast-db-init-3K2PV6GJ.js");
5348
+ const { fastDbInit } = await import("./fast-db-init-GJGO22F5.js");
5349
5349
  const client = await fastDbInit();
5350
5350
  const scope = extractRootExe(targetSession);
5351
5351
  if (!scope) return 0;
@@ -5400,7 +5400,7 @@ function buildScopedInProgressTaskQuery(targetSession) {
5400
5400
  async function findScopedInProgressTaskId(targetSession) {
5401
5401
  const q = buildScopedInProgressTaskQuery(targetSession);
5402
5402
  if (!q) return null;
5403
- const { fastDbInit } = await import("./fast-db-init-3K2PV6GJ.js");
5403
+ const { fastDbInit } = await import("./fast-db-init-GJGO22F5.js");
5404
5404
  const client = await fastDbInit();
5405
5405
  const result = await client.execute(q);
5406
5406
  const id = result.rows[0]?.id;
@@ -5520,7 +5520,7 @@ function sendIntercom(targetSession, opts) {
5520
5520
  }
5521
5521
  if ((process.env.EXE_NOTIFICATION_LEDGER ?? "").trim().toLowerCase() === "shadow") {
5522
5522
  const shadowScope = opts && "callerSessionScope" in opts ? opts.callerSessionScope : void 0;
5523
- void import("./notification-ledger-KSCPGLQG.js").then((m) => m.recordShadowNudge(targetSession, reason, shadowScope)).catch(() => {
5523
+ void import("./notification-ledger-OE4XNOAY.js").then((m) => m.recordShadowNudge(targetSession, reason, shadowScope)).catch(() => {
5524
5524
  });
5525
5525
  }
5526
5526
  if (!opts?.force && isDebounced(targetSession)) {
@@ -5641,7 +5641,7 @@ function scheduleDeferredSpawnNudge(input) {
5641
5641
  return;
5642
5642
  }
5643
5643
  queueIntercom(input.sessionName, `spawn nudge failed after ${attempt} attempts: ${msg}`, "signal");
5644
- void import("./notifications-YKHZPCXU.js").then(({ writeNotification: writeNotification2 }) => writeNotification2({
5644
+ void import("./notifications-DU4WVNET.js").then(({ writeNotification: writeNotification2 }) => writeNotification2({
5645
5645
  agentId: getCoordinatorName(),
5646
5646
  agentRole: "COO",
5647
5647
  event: "error_spike",
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  sessionScopeFilter
3
- } from "./chunk-ZXSFUR77.js";
3
+ } from "./chunk-IFSKL5QW.js";
4
4
  import {
5
5
  leaseExpiryIso
6
6
  } from "./chunk-E23LNUWJ.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  fastDbInit
3
- } from "./chunk-AQ6ECPUP.js";
3
+ } from "./chunk-A4X7SCDG.js";
4
4
  import {
5
5
  sessionScopeFilter
6
- } from "./chunk-ZXSFUR77.js";
6
+ } from "./chunk-IFSKL5QW.js";
7
7
  import {
8
8
  formatStatusAll,
9
9
  formatStatusDeep,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  listBehaviors
3
- } from "./chunk-MGMXYI7Y.js";
3
+ } from "./chunk-UPZQLFRJ.js";
4
4
  import {
5
5
  loadConfigSync
6
6
  } from "./chunk-BCZF3AGJ.js";
@@ -6,7 +6,7 @@ import {
6
6
  queryTaskRows,
7
7
  resolveExeSession,
8
8
  sendIntercom
9
- } from "./chunk-ZXSFUR77.js";
9
+ } from "./chunk-IFSKL5QW.js";
10
10
  import {
11
11
  getTransport
12
12
  } from "./chunk-AD2VCHSS.js";
@@ -89,7 +89,7 @@ async function dispatchTaskToEmployee(input) {
89
89
  let crossProject = false;
90
90
  if (input.projectName) {
91
91
  try {
92
- const { assertSessionScope } = await import("./session-scope-LBG6DT5O.js");
92
+ const { assertSessionScope } = await import("./session-scope-SMYECIDA.js");
93
93
  const check = assertSessionScope("dispatch_task", input.projectName);
94
94
  if (check.reason === "cross_session_denied") {
95
95
  crossProject = true;
@@ -8,7 +8,7 @@ import {
8
8
  import {
9
9
  buildSystemStateExclusionFilter,
10
10
  vectorToBlob
11
- } from "./chunk-H5QNVWU4.js";
11
+ } from "./chunk-P3JQDXY6.js";
12
12
  import {
13
13
  extractKeywords,
14
14
  keywordsToString
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getCurrentSessionScope,
3
3
  strictSessionScopeFilter
4
- } from "./chunk-ZXSFUR77.js";
4
+ } from "./chunk-IFSKL5QW.js";
5
5
  import {
6
6
  getProjectName
7
7
  } from "./chunk-OPU3NYOO.js";
@@ -179,7 +179,7 @@ async function initStore(options) {
179
179
  );
180
180
  _nextVersion = (Number(vResult.rows[0]?.max_v) || 0) + 1;
181
181
  try {
182
- const { loadGlobalProcedures } = await import("./global-procedures-PEWDBSPJ.js");
182
+ const { loadGlobalProcedures } = await import("./global-procedures-HZFQ3WJB.js");
183
183
  await loadGlobalProcedures();
184
184
  } catch (e) {
185
185
  logStoreWarn("catch", e);
@@ -506,7 +506,7 @@ async function flushBatch() {
506
506
  _nextVersion = baseVersion;
507
507
  if (insertedBatch.length > 0) {
508
508
  try {
509
- const { insertMemoryCardsForBatch } = await import("./memory-cards-GFO2CSPV.js");
509
+ const { insertMemoryCardsForBatch } = await import("./memory-cards-CJJJ2EP6.js");
510
510
  await insertMemoryCardsForBatch(insertedBatch);
511
511
  } catch (e) {
512
512
  logStoreWarn("catch", e);
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-WCGNCH3Q.js";
4
4
  import {
5
5
  registerAllTools
6
- } from "./chunk-7WQ3WHPW.js";
6
+ } from "./chunk-5YDNNUZ6.js";
7
7
 
8
8
  // src/mcp/mcp-surface-hash.ts
9
9
  function computeMcpSurfaceHash() {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  deactivateBehavior
3
- } from "./chunk-MGMXYI7Y.js";
3
+ } from "./chunk-UPZQLFRJ.js";
4
4
  import {
5
5
  getActiveAgent
6
6
  } from "./chunk-TF5E6O5Q.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  sessionScopeFilter
3
- } from "./chunk-ZXSFUR77.js";
3
+ } from "./chunk-IFSKL5QW.js";
4
4
 
5
5
  // src/lib/git-task-sweep.ts
6
6
  import { execSync } from "child_process";
@@ -238,7 +238,7 @@ async function sweepTasks(projectName, options = {}) {
238
238
  }
239
239
  if (!dryRun) {
240
240
  try {
241
- const { updateTaskStatus } = await import("./tasks-crud-TLELWWUL.js");
241
+ const { updateTaskStatus } = await import("./tasks-crud-VXCTTSB5.js");
242
242
  await updateTaskStatus({
243
243
  taskId: task.id,
244
244
  status: "needs_review",
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  reserveVersions,
6
6
  vectorToBlob
7
- } from "./chunk-H5QNVWU4.js";
7
+ } from "./chunk-P3JQDXY6.js";
8
8
  import {
9
9
  getClient
10
10
  } from "./chunk-QNKR7WEL.js";
@@ -4,7 +4,7 @@ import {
4
4
  resolveExeSession,
5
5
  sendIntercom,
6
6
  strictSessionScopeFilter
7
- } from "./chunk-ZXSFUR77.js";
7
+ } from "./chunk-IFSKL5QW.js";
8
8
  import {
9
9
  parseMessage,
10
10
  serializeMessage
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  isPaneBusy
3
- } from "./chunk-SMQ642D3.js";
3
+ } from "./chunk-4FHBXWSA.js";
4
4
  import {
5
5
  recordSessionKill
6
- } from "./chunk-Y3JXLIZV.js";
6
+ } from "./chunk-Y6IP4R5M.js";
7
7
  import {
8
8
  eventLoopBlockedMarkerPath
9
9
  } from "./chunk-APRVAUOR.js";
10
10
  import {
11
11
  updateTask
12
- } from "./chunk-DJYJDK53.js";
12
+ } from "./chunk-4HMZQRQD.js";
13
13
  import {
14
14
  countPendingReviews,
15
15
  ensureEmployeeAsync,
@@ -25,7 +25,7 @@ import {
25
25
  sessionScopeFilter,
26
26
  strictSessionScopeFilter,
27
27
  writeNotification
28
- } from "./chunk-ZXSFUR77.js";
28
+ } from "./chunk-IFSKL5QW.js";
29
29
  import {
30
30
  LEASE_MINUTES,
31
31
  isLeaseExpired
@@ -3297,7 +3297,7 @@ async function gcStaleCheckpoints() {
3297
3297
  }
3298
3298
  async function pollTaskGroupBarriers() {
3299
3299
  try {
3300
- const { checkAndFireBarriers } = await import("./tasks-crud-TLELWWUL.js");
3300
+ const { checkAndFireBarriers } = await import("./tasks-crud-VXCTTSB5.js");
3301
3301
  const firedGroupIds = await checkAndFireBarriers();
3302
3302
  if (firedGroupIds.length === 0) return 0;
3303
3303
  const { getClient } = await import("./lib/database.js");
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  executeAction,
3
3
  substituteTemplate
4
- } from "./chunk-PIUDQ7P2.js";
4
+ } from "./chunk-ELJSXKYA.js";
5
5
 
6
6
  // src/automation/workflow-engine.ts
7
7
  import { randomUUID } from "crypto";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  vectorToSqlLiteral
3
- } from "./chunk-H5QNVWU4.js";
3
+ } from "./chunk-P3JQDXY6.js";
4
4
  import {
5
5
  blobToVector
6
6
  } from "./chunk-OTVEIJUQ.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  PLATFORM_PROCEDURES,
3
3
  PLATFORM_PROCEDURE_TITLES
4
- } from "./chunk-MMXIE6HV.js";
4
+ } from "./chunk-BHDOPDPY.js";
5
5
  import {
6
6
  getClient
7
7
  } from "./chunk-QNKR7WEL.js";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-TF5E6O5Q.js";
4
4
  import {
5
5
  listTasks
6
- } from "./chunk-ZXSFUR77.js";
6
+ } from "./chunk-IFSKL5QW.js";
7
7
  import {
8
8
  getAgentContext
9
9
  } from "./chunk-GJV3WDWM.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  isExeSession,
3
3
  strictSessionScopeFilter
4
- } from "./chunk-ZXSFUR77.js";
4
+ } from "./chunk-IFSKL5QW.js";
5
5
  import {
6
6
  recordOrchestrationEventBestEffort
7
7
  } from "./chunk-AMC2OPYP.js";
@@ -260,7 +260,7 @@ function createRealDeps(getClient) {
260
260
  });
261
261
  },
262
262
  createReviewForOrphan: async (task) => {
263
- const { createReviewForCompletedTask } = await import("./tasks-review-S6QB5KGS.js");
263
+ const { createReviewForCompletedTask } = await import("./tasks-review-TY7OZBAT.js");
264
264
  const cwd = process.cwd();
265
265
  await createReviewForCompletedTask(
266
266
  task,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  processCRMEvent
3
- } from "./chunk-PIUDQ7P2.js";
3
+ } from "./chunk-ELJSXKYA.js";
4
4
 
5
5
  // src/gateway/adapters/crm-webhook.ts
6
6
  function parseTwentyWebhook(payload) {
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  flushBatch,
6
6
  writeMemory
7
- } from "./chunk-H5QNVWU4.js";
7
+ } from "./chunk-P3JQDXY6.js";
8
8
  import {
9
9
  redactSecrets
10
10
  } from "./chunk-4QCFFW2H.js";
@@ -9,7 +9,7 @@ import {
9
9
  isEmployeeAlive,
10
10
  sessionScopeFilter,
11
11
  updateTaskStatus
12
- } from "./chunk-ZXSFUR77.js";
12
+ } from "./chunk-IFSKL5QW.js";
13
13
  import {
14
14
  DEFAULT_COORDINATOR_TEMPLATE_NAME,
15
15
  getCoordinatorName
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isExeSession
3
- } from "./chunk-ZXSFUR77.js";
3
+ } from "./chunk-IFSKL5QW.js";
4
4
  import {
5
5
  recordOrchestrationEventBestEffort
6
6
  } from "./chunk-AMC2OPYP.js";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  ingest
3
- } from "./chunk-SLH2743O.js";
3
+ } from "./chunk-WUNXNNJL.js";
4
4
  import {
5
5
  listWorkflowDefinitions,
6
6
  runWorkflow,
7
7
  startWorkflow
8
- } from "./chunk-43RTUMUT.js";
8
+ } from "./chunk-UG2R4LHI.js";
9
9
  import {
10
10
  initCRMBridge
11
11
  } from "./chunk-ML4S5SHZ.js";
@@ -0,0 +1,58 @@
1
+ import {
2
+ canonicalizeStackManifest
3
+ } from "./chunk-6JQTSKDR.js";
4
+
5
+ // src/lib/stack-manifest-write.ts
6
+ import { readFileSync, writeFileSync } from "fs";
7
+ import { createPrivateKey, createSign, sign as cryptoSign } from "crypto";
8
+ function loadStackSigningKey(env = process.env) {
9
+ const keyId = env.EXE_STACK_SIGNING_KEY_ID || "exe-stack-1";
10
+ if (env.EXE_STACK_SIGNING_KEY) {
11
+ return { key: createPrivateKey(env.EXE_STACK_SIGNING_KEY), keyId };
12
+ }
13
+ if (env.EXE_STACK_SIGNING_KEY_FILE) {
14
+ return { key: createPrivateKey(readFileSync(env.EXE_STACK_SIGNING_KEY_FILE, "utf8")), keyId };
15
+ }
16
+ return null;
17
+ }
18
+ function signStackManifest(manifest, signingKey) {
19
+ const payload = Buffer.from(canonicalizeStackManifest(manifest));
20
+ const keyType = signingKey.key.asymmetricKeyType;
21
+ if (keyType === "ed25519") {
22
+ return {
23
+ keyId: signingKey.keyId,
24
+ alg: "ed25519",
25
+ signature: cryptoSign(null, payload, signingKey.key).toString("base64")
26
+ };
27
+ }
28
+ if (keyType === "rsa") {
29
+ const signer = createSign("RSA-SHA256");
30
+ signer.update(payload);
31
+ signer.end();
32
+ return {
33
+ keyId: signingKey.keyId,
34
+ alg: "rsa-sha256",
35
+ signature: signer.sign(signingKey.key).toString("base64")
36
+ };
37
+ }
38
+ throw new Error(`Unsupported stack signing key type: ${String(keyType)}`);
39
+ }
40
+ function writeSignedStackManifest(filePath, manifest, options = {}) {
41
+ const warn = options.warn ?? ((msg) => console.warn(msg));
42
+ const signingKey = loadStackSigningKey(options.env);
43
+ if (signingKey) {
44
+ manifest.signature = signStackManifest(manifest, signingKey);
45
+ writeFileSync(filePath, JSON.stringify(manifest, null, 2) + "\n");
46
+ return { signed: true };
47
+ }
48
+ delete manifest.signature;
49
+ writeFileSync(filePath, JSON.stringify(manifest, null, 2) + "\n");
50
+ warn(
51
+ "\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557\n\u2551 WARNING: stack manifest written UNSIGNED \u2551\n\u2551 No EXE_STACK_SIGNING_KEY / EXE_STACK_SIGNING_KEY_FILE in env. \u2551\n\u2551 Any stale signature was STRIPPED (bug d84537ac). Fleets that \u2551\n\u2551 require a signature (EXE_STACK_PUBLIC_KEY) will REJECT this \u2551\n\u2551 manifest until it is re-signed by the key custodian: \u2551\n\u2551 node scripts/sign-stack-manifest.mjs <manifest.json> \u2551\n\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D"
52
+ );
53
+ return { signed: false };
54
+ }
55
+
56
+ export {
57
+ writeSignedStackManifest
58
+ };
@@ -10,7 +10,7 @@ import "./chunk-CHCA3ZM2.js";
10
10
  import "./chunk-GPZQZTJB.js";
11
11
  import {
12
12
  fastDbInit
13
- } from "./chunk-AQ6ECPUP.js";
13
+ } from "./chunk-A4X7SCDG.js";
14
14
  import "./chunk-5MOYSU5A.js";
15
15
  import "./chunk-4QCFFW2H.js";
16
16
  import "./chunk-76CJBM36.js";
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  createCRMWebhookHandler,
3
3
  parseTwentyWebhook
4
- } from "./chunk-AFY4V4N3.js";
5
- import "./chunk-PIUDQ7P2.js";
4
+ } from "./chunk-VRQTOLRH.js";
5
+ import "./chunk-ELJSXKYA.js";
6
6
  import "./chunk-MLKGABMK.js";
7
7
  export {
8
8
  createCRMWebhookHandler,
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  sessionScopeFilter
3
- } from "./chunk-ZXSFUR77.js";
3
+ } from "./chunk-IFSKL5QW.js";
4
4
  import "./chunk-RBRGSOK5.js";
5
5
  import "./chunk-OBWIVRD6.js";
6
- import "./chunk-A42356G7.js";
6
+ import "./chunk-ZFR4A5W4.js";
7
7
  import "./chunk-E23LNUWJ.js";
8
8
  import "./chunk-4JERP7NT.js";
9
9
  import "./chunk-EIKATSE4.js";
@@ -73,17 +73,17 @@ import {
73
73
  shouldKillIdleSession,
74
74
  shouldKillSession,
75
75
  shouldNudgeEmployee
76
- } from "./chunk-FPK753IZ.js";
77
- import "./chunk-SMQ642D3.js";
78
- import "./chunk-Y3JXLIZV.js";
76
+ } from "./chunk-TRIK7MXS.js";
77
+ import "./chunk-4FHBXWSA.js";
78
+ import "./chunk-Y6IP4R5M.js";
79
79
  import "./chunk-APRVAUOR.js";
80
- import "./chunk-DJYJDK53.js";
81
- import "./chunk-JW5XS35A.js";
80
+ import "./chunk-4HMZQRQD.js";
81
+ import "./chunk-NUWAB2ZB.js";
82
82
  import "./chunk-76CJBM36.js";
83
- import "./chunk-ZXSFUR77.js";
83
+ import "./chunk-IFSKL5QW.js";
84
84
  import "./chunk-RBRGSOK5.js";
85
85
  import "./chunk-OBWIVRD6.js";
86
- import "./chunk-A42356G7.js";
86
+ import "./chunk-ZFR4A5W4.js";
87
87
  import "./chunk-E23LNUWJ.js";
88
88
  import "./chunk-4JERP7NT.js";
89
89
  import "./chunk-EIKATSE4.js";
@@ -14,9 +14,9 @@ import {
14
14
  rowToDocument,
15
15
  rowToWorkspace,
16
16
  updateChunksImportance
17
- } from "./chunk-CCOKYSJA.js";
17
+ } from "./chunk-SUJFXYMQ.js";
18
18
  import "./chunk-I5AVZOL2.js";
19
- import "./chunk-H5QNVWU4.js";
19
+ import "./chunk-P3JQDXY6.js";
20
20
  import "./chunk-H4JKOLXU.js";
21
21
  import "./chunk-CHCA3ZM2.js";
22
22
  import "./chunk-OTVEIJUQ.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  DreamingEngine
3
- } from "./chunk-DXMTJJP3.js";
4
- import "./chunk-H5QNVWU4.js";
3
+ } from "./chunk-2N5MLJLM.js";
4
+ import "./chunk-P3JQDXY6.js";
5
5
  import "./chunk-H4JKOLXU.js";
6
6
  import "./chunk-CHCA3ZM2.js";
7
7
  import "./chunk-OTVEIJUQ.js";
@@ -9,10 +9,10 @@ import "./chunk-GPZQZTJB.js";
9
9
  import "./chunk-5MOYSU5A.js";
10
10
  import "./chunk-4QCFFW2H.js";
11
11
  import "./chunk-76CJBM36.js";
12
- import "./chunk-ZXSFUR77.js";
12
+ import "./chunk-IFSKL5QW.js";
13
13
  import "./chunk-RBRGSOK5.js";
14
14
  import "./chunk-OBWIVRD6.js";
15
- import "./chunk-A42356G7.js";
15
+ import "./chunk-ZFR4A5W4.js";
16
16
  import "./chunk-E23LNUWJ.js";
17
17
  import "./chunk-4JERP7NT.js";
18
18
  import "./chunk-EIKATSE4.js";
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  exportOrchestration
4
- } from "./chunk-WL3IQJKN.js";
5
- import "./chunk-MMXIE6HV.js";
6
- import "./chunk-MGMXYI7Y.js";
4
+ } from "./chunk-453QJHGW.js";
5
+ import "./chunk-BHDOPDPY.js";
6
+ import "./chunk-UPZQLFRJ.js";
7
7
  import {
8
8
  disposeStore,
9
9
  initStore
10
- } from "./chunk-H5QNVWU4.js";
10
+ } from "./chunk-P3JQDXY6.js";
11
11
  import "./chunk-H4JKOLXU.js";
12
12
  import "./chunk-CHCA3ZM2.js";
13
13
  import "./chunk-OTVEIJUQ.js";
@@ -2,13 +2,13 @@
2
2
  import {
3
3
  importOrchestration,
4
4
  validatePackage
5
- } from "./chunk-WL3IQJKN.js";
6
- import "./chunk-MMXIE6HV.js";
7
- import "./chunk-MGMXYI7Y.js";
5
+ } from "./chunk-453QJHGW.js";
6
+ import "./chunk-BHDOPDPY.js";
7
+ import "./chunk-UPZQLFRJ.js";
8
8
  import {
9
9
  disposeStore,
10
10
  initStore
11
- } from "./chunk-H5QNVWU4.js";
11
+ } from "./chunk-P3JQDXY6.js";
12
12
  import "./chunk-H4JKOLXU.js";
13
13
  import "./chunk-CHCA3ZM2.js";
14
14
  import "./chunk-OTVEIJUQ.js";