@askexenow/exe-os 0.9.178 → 0.9.180

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 (145) hide show
  1. package/deploy/compose/init-db.sql +76 -0
  2. package/dist/{backfill-metadata-RUPJUXIG.js → backfill-metadata-HPMDXCZX.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 +5 -5
  12. package/dist/bin/exe-agent.js +3 -3
  13. package/dist/bin/exe-assign.js +1 -1
  14. package/dist/bin/exe-boot.js +6 -6
  15. package/dist/bin/exe-call.js +3 -3
  16. package/dist/bin/exe-dispatch.js +2 -2
  17. package/dist/bin/exe-doctor.js +1 -1
  18. package/dist/bin/exe-export-behaviors.js +2 -2
  19. package/dist/bin/exe-forget.js +3 -3
  20. package/dist/bin/exe-gateway.js +4 -4
  21. package/dist/bin/exe-heartbeat.js +2 -2
  22. package/dist/bin/exe-kill.js +3 -3
  23. package/dist/bin/exe-launch-agent.js +5 -5
  24. package/dist/bin/exe-new-employee.js +3 -3
  25. package/dist/bin/exe-pending-messages.js +3 -3
  26. package/dist/bin/exe-pending-notifications.js +2 -2
  27. package/dist/bin/exe-pending-reviews.js +2 -2
  28. package/dist/bin/exe-rename.js +3 -3
  29. package/dist/bin/exe-review.js +3 -3
  30. package/dist/bin/exe-search.js +2 -2
  31. package/dist/bin/exe-session-cleanup.js +5 -5
  32. package/dist/bin/exe-start-codex.js +2 -2
  33. package/dist/bin/exe-start-opencode.js +1 -1
  34. package/dist/bin/exe-status.js +3 -3
  35. package/dist/bin/exe-team.js +1 -1
  36. package/dist/bin/git-sweep.js +2 -2
  37. package/dist/bin/graph-backfill.js +1 -1
  38. package/dist/bin/graph-export.js +2 -2
  39. package/dist/bin/import-history.js +1 -1
  40. package/dist/bin/intercom-check.js +3 -3
  41. package/dist/bin/pre-publish.js +1 -1
  42. package/dist/bin/scan-tasks.js +2 -2
  43. package/dist/bin/setup.js +1 -1
  44. package/dist/bin/shard-migrate.js +1 -1
  45. package/dist/bin/stack-update.js +1 -1
  46. package/dist/bin/vps-health-gate.js +1 -1
  47. package/dist/{capacity-monitor-5O3LAPGD.js → capacity-monitor-OQUDVUQC.js} +2 -2
  48. package/dist/{catchup-brief-3YBGR6BS.js → catchup-brief-RYXZY7KB.js} +3 -3
  49. package/dist/{chunk-LOYXXG6M.js → chunk-25CVYGFX.js} +1 -1
  50. package/dist/{chunk-KH34KOGR.js → chunk-2IV3YWK5.js} +1 -1
  51. package/dist/{chunk-GSGT3QI5.js → chunk-3VLOR4S5.js} +1 -1
  52. package/dist/{chunk-WCKGOI5P.js → chunk-64GZ6HDC.js} +1 -1
  53. package/dist/{chunk-BAKUXZZO.js → chunk-6WIKWLPV.js} +2 -2
  54. package/dist/{chunk-ZKHX26H3.js → chunk-6Z53VOF7.js} +2 -2
  55. package/dist/{chunk-34RVMFJL.js → chunk-7E3E43AS.js} +1 -1
  56. package/dist/{chunk-ERA4FE5C.js → chunk-BHWEKC56.js} +1 -1
  57. package/dist/{chunk-WCYT54XP.js → chunk-BV7EZIL4.js} +29 -17
  58. package/dist/{chunk-QU62Q3YI.js → chunk-CD76FDBD.js} +10 -2
  59. package/dist/{chunk-SUUPTAK3.js → chunk-CPPE7RAI.js} +1 -1
  60. package/dist/{chunk-LGY2BIOT.js → chunk-EB6OU665.js} +7 -0
  61. package/dist/{chunk-AWODEQI5.js → chunk-EWINUEVJ.js} +27 -27
  62. package/dist/{chunk-WP3ZXXPB.js → chunk-FFJ7E5UY.js} +1 -1
  63. package/dist/{chunk-LJ4MEZP5.js → chunk-H5XWQ4WA.js} +1 -1
  64. package/dist/{chunk-H2762FYW.js → chunk-HBUTUNH2.js} +2 -2
  65. package/dist/{chunk-3XIZVQ6I.js → chunk-HKSEZXKE.js} +1 -1
  66. package/dist/{chunk-3MN7V2SR.js → chunk-HSIIGUNO.js} +1 -1
  67. package/dist/{chunk-GROYT25I.js → chunk-HW3QT5BC.js} +1 -1
  68. package/dist/{chunk-XDAJN7CD.js → chunk-HYBT5PXK.js} +2 -2
  69. package/dist/{chunk-X4OO7RXI.js → chunk-I7RMP3RW.js} +3 -3
  70. package/dist/{chunk-QLZ2UY7X.js → chunk-IATLKAGH.js} +1 -1
  71. package/dist/{chunk-2TARUE5G.js → chunk-L4YMK3VA.js} +1 -1
  72. package/dist/{chunk-KFDIV7EE.js → chunk-NJL7VJ5O.js} +4 -4
  73. package/dist/{chunk-Y6OHW3L7.js → chunk-OZOKIJUD.js} +2 -2
  74. package/dist/{chunk-ZXP72SMJ.js → chunk-T3VJ6SD7.js} +2 -2
  75. package/dist/{chunk-JEL26633.js → chunk-U2UQMLJ3.js} +1 -1
  76. package/dist/{chunk-N4B65WIH.js → chunk-UAP3COVL.js} +3 -3
  77. package/dist/{chunk-X56DHLUW.js → chunk-VMZJWKOI.js} +1 -1
  78. package/dist/{chunk-ONESYIVC.js → chunk-ZFMOZRTQ.js} +3 -3
  79. package/dist/{crm-webhook-3TRJK4ZC.js → crm-webhook-PBW7CPZW.js} +2 -2
  80. package/dist/{cto-delegation-gate-LLO7QYHQ.js → cto-delegation-gate-WT4KGVMH.js} +1 -1
  81. package/dist/{daemon-orchestration-XL2UYSHK.js → daemon-orchestration-CF5CT3DV.js} +3 -3
  82. package/dist/{exe-export-IYLD7DFY.js → exe-export-KCM5YOYE.js} +3 -3
  83. package/dist/{exe-import-SO5HSWSN.js → exe-import-JCF2TJJO.js} +3 -3
  84. package/dist/{fast-db-init-BA6F2QTN.js → fast-db-init-3TIBU435.js} +1 -1
  85. package/dist/gateway/index.js +5 -5
  86. package/dist/{git-task-sweep-JCJ2QNSY.js → git-task-sweep-CJDQXX5K.js} +2 -2
  87. package/dist/{global-procedures-ZAMSXV2K.js → global-procedures-Q6JIKQZT.js} +2 -2
  88. package/dist/hooks/bug-report-worker.js +3 -3
  89. package/dist/hooks/codex-stop-task-finalizer.js +3 -3
  90. package/dist/hooks/commit-complete.js +4 -4
  91. package/dist/hooks/error-recall.js +2 -2
  92. package/dist/hooks/ingest.js +2 -2
  93. package/dist/hooks/instructions-loaded.js +1 -1
  94. package/dist/hooks/notification.js +1 -1
  95. package/dist/hooks/post-compact.js +2 -2
  96. package/dist/hooks/post-tool-combined.js +2 -2
  97. package/dist/hooks/pre-compact.js +3 -3
  98. package/dist/hooks/pre-tool-use.js +100 -21
  99. package/dist/hooks/prompt-submit.js +8 -8
  100. package/dist/hooks/session-end.js +6 -6
  101. package/dist/hooks/session-start.js +4 -4
  102. package/dist/hooks/stop.js +5 -5
  103. package/dist/hooks/subagent-stop.js +2 -2
  104. package/dist/hooks/summary-worker.js +5 -5
  105. package/dist/index.js +8 -8
  106. package/dist/lib/consolidation.js +2 -2
  107. package/dist/lib/employee-templates.js +3 -3
  108. package/dist/lib/exe-daemon.js +11 -11
  109. package/dist/lib/hybrid-search.js +2 -2
  110. package/dist/lib/messaging.js +2 -2
  111. package/dist/lib/schedules.js +2 -2
  112. package/dist/lib/store.js +1 -1
  113. package/dist/lib/tasks.js +2 -2
  114. package/dist/lib/tmux-routing.js +1 -1
  115. package/dist/mcp/register-tools.js +24 -24
  116. package/dist/mcp/server.js +25 -25
  117. package/dist/mcp/tools/create-task.js +3 -3
  118. package/dist/mcp/tools/list-tasks.js +3 -3
  119. package/dist/mcp/tools/send-message.js +3 -3
  120. package/dist/mcp/tools/update-task.js +3 -3
  121. package/dist/{notifications-SGFDN7D4.js → notifications-2J7EAPDU.js} +1 -1
  122. package/dist/{orchestrator-6P55DLMF.js → orchestrator-OO5WF4JS.js} +2 -2
  123. package/dist/{review-polling-LUFX7TBF.js → review-polling-KIJVM4Y5.js} +2 -2
  124. package/dist/runtime/index.js +3 -3
  125. package/dist/{self-query-router-37VB3PKQ.js → self-query-router-VNUCMGFX.js} +15 -5
  126. package/dist/{session-events-QW53IKLI.js → session-events-DRTJ4D2L.js} +2 -2
  127. package/dist/{session-scope-GCMG466H.js → session-scope-UMJVV7SW.js} +1 -1
  128. package/dist/{setup-wizard-RYBPL4WR.js → setup-wizard-BS5DUIVT.js} +1 -1
  129. package/dist/{stack-update-2B2UXREV.js → stack-update-LEUGR7HP.js} +1 -1
  130. package/dist/{task-enforcement-B4GIMP3P.js → task-enforcement-OJAURWWJ.js} +1 -1
  131. package/dist/{task-scope-MCCHWZT3.js → task-scope-ZINRRB5G.js} +1 -1
  132. package/dist/{tasks-crud-FSFQEHQS.js → tasks-crud-PH24HPHF.js} +1 -1
  133. package/dist/{tasks-review-ZX2IWJTJ.js → tasks-review-A2UWRTGM.js} +1 -1
  134. package/dist/tui/App.js +10 -10
  135. package/dist/{tui-data-VS5J33MW.js → tui-data-FTXRDBRP.js} +1 -1
  136. package/dist/{worker-gate-PF3NYYBS.js → worker-gate-IVJSJBPD.js} +1 -1
  137. package/dist/{workflow-engine-JKDPHNI2.js → workflow-engine-WWVNS2YO.js} +2 -2
  138. package/package.json +1 -1
  139. /package/dist/{chunk-56O7ERGE.js → chunk-6RL7NSY7.js} +0 -0
  140. /package/dist/{chunk-BLMF7ZQE.js → chunk-7EQXVRA3.js} +0 -0
  141. /package/dist/{chunk-PILV2QE3.js → chunk-WCJKG4WW.js} +0 -0
  142. /package/dist/{chunk-5WHMIXVB.js → chunk-XUBWK2W7.js} +0 -0
  143. /package/dist/{core-memory-XXATFASI.js → core-memory-6IN5YJZ7.js} +0 -0
  144. /package/dist/{exe-key-ELN6UW2L.js → exe-key-QJFDXAPI.js} +0 -0
  145. /package/dist/{skill-refinement-4NZ2EF4P.js → skill-refinement-LC7WAD62.js} +0 -0
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  sweepTasks
4
- } from "../chunk-Y6OHW3L7.js";
5
- import "../chunk-KFDIV7EE.js";
4
+ } from "../chunk-OZOKIJUD.js";
5
+ import "../chunk-NJL7VJ5O.js";
6
6
  import "../chunk-LOQCOHEW.js";
7
7
  import "../chunk-QI4IXJN7.js";
8
8
  import "../chunk-64WZEXXA.js";
@@ -11,7 +11,7 @@ import "../chunk-I7AW4237.js";
11
11
  import {
12
12
  disposeStore,
13
13
  initStore
14
- } from "../chunk-JEL26633.js";
14
+ } from "../chunk-U2UQMLJ3.js";
15
15
  import "../chunk-CHCA3ZM2.js";
16
16
  import "../chunk-DOWW3EIO.js";
17
17
  import "../chunk-MP2AFCGL.js";
@@ -5,10 +5,10 @@ import {
5
5
  } from "../chunk-46SQTBQW.js";
6
6
  import {
7
7
  fastDbInit
8
- } from "../chunk-BLMF7ZQE.js";
8
+ } from "../chunk-7EQXVRA3.js";
9
9
  import {
10
10
  disposeStore
11
- } from "../chunk-JEL26633.js";
11
+ } from "../chunk-U2UQMLJ3.js";
12
12
  import "../chunk-CHCA3ZM2.js";
13
13
  import "../chunk-DOWW3EIO.js";
14
14
  import "../chunk-MP2AFCGL.js";
@@ -12,7 +12,7 @@ import {
12
12
  flushBatch,
13
13
  initStore,
14
14
  writeMemory
15
- } from "../chunk-JEL26633.js";
15
+ } from "../chunk-U2UQMLJ3.js";
16
16
  import {
17
17
  extractKeywords,
18
18
  keywordsToString
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  fastDbInit
4
- } from "../chunk-BLMF7ZQE.js";
4
+ } from "../chunk-7EQXVRA3.js";
5
5
  import "../chunk-MLKGABMK.js";
6
6
 
7
7
  // src/bin/intercom-check.ts
@@ -17,7 +17,7 @@ async function main() {
17
17
  }
18
18
  if (isCoordinator) {
19
19
  try {
20
- const { listPendingReviews, cleanupOrphanedReviews, formatAge, isStale } = await import("../tasks-review-ZX2IWJTJ.js");
20
+ const { listPendingReviews, cleanupOrphanedReviews, formatAge, isStale } = await import("../tasks-review-A2UWRTGM.js");
21
21
  const { extractRootExe } = await import("../lib/tmux-routing.js");
22
22
  let sessionScope = process.env.EXE_SESSION ? extractRootExe(process.env.EXE_SESSION) ?? void 0 : void 0;
23
23
  if (!sessionScope) {
@@ -115,7 +115,7 @@ async function main() {
115
115
  }
116
116
  }
117
117
  try {
118
- const { readUnreadNotifications, markAsRead } = await import("../notifications-SGFDN7D4.js");
118
+ const { readUnreadNotifications, markAsRead } = await import("../notifications-2J7EAPDU.js");
119
119
  const { resolveExeSession } = await import("../lib/tmux-routing.js");
120
120
  const sessionScope = resolveExeSession();
121
121
  const notifications = await readUnreadNotifications(agent, sessionScope);
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  PLATFORM_PROCEDURES
4
- } from "../chunk-LGY2BIOT.js";
4
+ } from "../chunk-EB6OU665.js";
5
5
  import "../chunk-MLKGABMK.js";
6
6
 
7
7
  // src/bin/pre-publish.ts
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  queryTaskRows
4
- } from "../chunk-KFDIV7EE.js";
4
+ } from "../chunk-NJL7VJ5O.js";
5
5
  import "../chunk-LOQCOHEW.js";
6
6
  import "../chunk-QI4IXJN7.js";
7
7
  import "../chunk-64WZEXXA.js";
@@ -72,7 +72,7 @@ function checkMcpHealth() {
72
72
  }
73
73
  }
74
74
  async function scanFromDb(agentId, tmuxSession, projectName) {
75
- const { fastDbInit } = await import("../fast-db-init-BA6F2QTN.js");
75
+ const { fastDbInit } = await import("../fast-db-init-3TIBU435.js");
76
76
  try {
77
77
  await fastDbInit();
78
78
  } catch (err) {
package/dist/bin/setup.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runSetupWizard
4
- } from "../chunk-56O7ERGE.js";
4
+ } from "../chunk-6RL7NSY7.js";
5
5
  import "../chunk-6D23UNXU.js";
6
6
  import "../chunk-4GXRETYL.js";
7
7
  import "../chunk-LYH5HE24.js";
@@ -8,7 +8,7 @@ import {
8
8
  import {
9
9
  disposeStore,
10
10
  initStore
11
- } from "../chunk-JEL26633.js";
11
+ } from "../chunk-U2UQMLJ3.js";
12
12
  import "../chunk-CHCA3ZM2.js";
13
13
  import "../chunk-DOWW3EIO.js";
14
14
  import "../chunk-MP2AFCGL.js";
@@ -11,7 +11,7 @@ import {
11
11
  patchEnv,
12
12
  readCurrentStackVersion,
13
13
  runStackUpdate
14
- } from "../chunk-WCYT54XP.js";
14
+ } from "../chunk-BV7EZIL4.js";
15
15
  import "../chunk-MVMMULOJ.js";
16
16
  import "../chunk-4GXRETYL.js";
17
17
  import "../chunk-LYH5HE24.js";
@@ -207,7 +207,7 @@ async function main(args) {
207
207
  console.log("[health-gate] Starting rollback...");
208
208
  restorePreDeployBackup();
209
209
  try {
210
- const { rollbackStackUpdate, defaultStackPaths } = await import("../stack-update-2B2UXREV.js");
210
+ const { rollbackStackUpdate, defaultStackPaths } = await import("../stack-update-LEUGR7HP.js");
211
211
  const paths = defaultStackPaths();
212
212
  await rollbackStackUpdate({
213
213
  manifestRef: paths.manifestRef,
@@ -8,9 +8,9 @@ import {
8
8
  isAtCapacity,
9
9
  isWithinRelaunchCooldown,
10
10
  pollCapacityDead
11
- } from "./chunk-QLZ2UY7X.js";
11
+ } from "./chunk-IATLKAGH.js";
12
12
  import "./chunk-L4VM6PZ7.js";
13
- import "./chunk-KFDIV7EE.js";
13
+ import "./chunk-NJL7VJ5O.js";
14
14
  import "./chunk-LOQCOHEW.js";
15
15
  import "./chunk-QI4IXJN7.js";
16
16
  import "./chunk-64WZEXXA.js";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  lightweightSearch
3
- } from "./chunk-QU62Q3YI.js";
4
- import "./chunk-JEL26633.js";
3
+ } from "./chunk-CD76FDBD.js";
4
+ import "./chunk-U2UQMLJ3.js";
5
5
  import "./chunk-CHCA3ZM2.js";
6
6
  import "./chunk-DOWW3EIO.js";
7
7
  import {
8
8
  sessionScopeFilter,
9
9
  strictSessionScopeFilter
10
- } from "./chunk-KFDIV7EE.js";
10
+ } from "./chunk-NJL7VJ5O.js";
11
11
  import "./chunk-LOQCOHEW.js";
12
12
  import "./chunk-QI4IXJN7.js";
13
13
  import "./chunk-64WZEXXA.js";
@@ -111,7 +111,7 @@ function releaseBackfillLock() {
111
111
  }
112
112
  async function getTaskAwareCapacity() {
113
113
  const { getClient } = await import("./lib/database.js");
114
- const { sessionScopeFilter } = await import("./task-scope-MCCHWZT3.js");
114
+ const { sessionScopeFilter } = await import("./task-scope-ZINRRB5G.js");
115
115
  const client = getClient();
116
116
  const scope = sessionScopeFilter();
117
117
  const result = await client.execute({
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getCurrentSessionScope,
3
3
  strictSessionScopeFilter
4
- } from "./chunk-KFDIV7EE.js";
4
+ } from "./chunk-NJL7VJ5O.js";
5
5
  import {
6
6
  getProjectName
7
7
  } from "./chunk-OPU3NYOO.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getGlobalProceduresBlock
3
- } from "./chunk-3MN7V2SR.js";
3
+ } from "./chunk-HSIIGUNO.js";
4
4
 
5
5
  // src/lib/employee-templates.ts
6
6
  var BASE_OPERATING_PROCEDURES = `
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  initStore
3
- } from "./chunk-JEL26633.js";
3
+ } from "./chunk-U2UQMLJ3.js";
4
4
  import {
5
5
  getClient,
6
6
  isInitialized
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  updateTask
3
- } from "./chunk-X4OO7RXI.js";
3
+ } from "./chunk-I7RMP3RW.js";
4
4
  import {
5
5
  TASK_ALREADY_CLAIMED_PREFIX
6
- } from "./chunk-KFDIV7EE.js";
6
+ } from "./chunk-NJL7VJ5O.js";
7
7
 
8
8
  // src/mcp/tools/update-task.ts
9
9
  import { z } from "zod";
@@ -19,7 +19,7 @@ import {
19
19
  import {
20
20
  createCRMWebhookHandler,
21
21
  parseTwentyWebhook
22
- } from "./chunk-SUUPTAK3.js";
22
+ } from "./chunk-CPPE7RAI.js";
23
23
  import {
24
24
  BotRegistry,
25
25
  BotRuntime,
@@ -42,7 +42,7 @@ import {
42
42
  retryWithBackoff,
43
43
  routeMessage,
44
44
  validateGatewayConfig
45
- } from "./chunk-34RVMFJL.js";
45
+ } from "./chunk-7E3E43AS.js";
46
46
  import {
47
47
  OllamaProvider
48
48
  } from "./chunk-FWFFZGSC.js";
@@ -2,7 +2,7 @@ import {
2
2
  listWorkflowDefinitions,
3
3
  runWorkflow,
4
4
  startWorkflow
5
- } from "./chunk-WP3ZXXPB.js";
5
+ } from "./chunk-FFJ7E5UY.js";
6
6
  import {
7
7
  initCRMBridge
8
8
  } from "./chunk-ONKIWA3R.js";
@@ -9,7 +9,7 @@ import {
9
9
  isEmployeeAlive,
10
10
  sessionScopeFilter,
11
11
  updateTaskStatus
12
- } from "./chunk-KFDIV7EE.js";
12
+ } from "./chunk-NJL7VJ5O.js";
13
13
  import {
14
14
  DEFAULT_COORDINATOR_TEMPLATE_NAME,
15
15
  getCoordinatorName
@@ -762,16 +762,26 @@ async function runStackUpdate(options) {
762
762
  }
763
763
  async function fetchImageCredentials(options) {
764
764
  if (!options.imageCredentialsUrl) return null;
765
- const res = await fetch(options.imageCredentialsUrl, {
766
- method: "POST",
767
- headers: {
768
- "content-type": "application/json",
769
- ...options.manifestAuthToken ? { authorization: `Bearer ${options.manifestAuthToken}` } : {}
770
- },
771
- body: JSON.stringify({ deviceId: options.deviceId, licenseKey: options.licenseKey })
772
- });
773
- if (!res.ok) throw new Error(`Failed to fetch image credentials: HTTP ${res.status}`);
774
- return await res.json();
765
+ try {
766
+ const res = await fetch(options.imageCredentialsUrl, {
767
+ method: "POST",
768
+ headers: {
769
+ "content-type": "application/json",
770
+ ...options.manifestAuthToken ? { authorization: `Bearer ${options.manifestAuthToken}` } : {}
771
+ },
772
+ body: JSON.stringify({ deviceId: options.deviceId, licenseKey: options.licenseKey }),
773
+ signal: AbortSignal.timeout(1e4)
774
+ });
775
+ if (!res.ok) {
776
+ console.warn(`[stack-update] Image credentials unavailable (HTTP ${res.status}). Docker pull will use existing auth.`);
777
+ return null;
778
+ }
779
+ return await res.json();
780
+ } catch (err) {
781
+ const reason = err instanceof Error ? err.message : String(err);
782
+ console.warn(`[stack-update] Image credentials fetch failed: ${reason}. Docker pull will use existing auth.`);
783
+ return null;
784
+ }
775
785
  }
776
786
  function readCurrentStackVersion(lockFile) {
777
787
  if (!existsSync(lockFile)) return void 0;
@@ -886,18 +896,20 @@ function defaultStackPaths() {
886
896
  const cwdCompose = path.resolve("docker-compose.yml");
887
897
  const cwdEnv = path.resolve(".env");
888
898
  const packagedManifest = path.join(resolvePackageRoot(), "deploy", "stack-manifests", "v0.9.json");
889
- const manifestRef = process.env.EXE_STACK_MANIFEST || (existsSync(packagedManifest) ? packagedManifest : "https://api.askexe.com/stack-manifest.json");
899
+ const manifestRef = process.env.EXE_STACK_MANIFEST || (existsSync(packagedManifest) ? packagedManifest : "https://update.askexe.com/v1/stack-manifest.json");
900
+ const licenseKey = process.env.EXE_LICENSE_KEY || loadLicense() || process.env.EXE_STACK_UPDATE_TOKEN || void 0;
901
+ const isRemoteManifest = /^https?:\/\//.test(manifestRef);
902
+ const hasLicenseForRemote = !!licenseKey;
903
+ const updateServiceUrl = process.env.EXE_UPDATE_SERVICE_URL || "https://update.askexe.com";
890
904
  return {
891
905
  composeFile: process.env.EXE_STACK_COMPOSE_FILE || (existsSync(cwdCompose) ? cwdCompose : "/opt/exe-stack/docker-compose.yml"),
892
906
  envFile: process.env.EXE_STACK_ENV_FILE || (existsSync(cwdEnv) ? cwdEnv : "/opt/exe-stack/.env"),
893
907
  manifestRef,
894
- // Only call api.askexe.com if explicitly configured or if a remote manifest was requested.
895
- // Packaged manifests keep cold-start installs unblocked even before update-service entitlements are provisioned.
896
- auditUrl: process.env.EXE_STACK_AUDIT_URL || (/^https?:\/\//.test(manifestRef) ? "https://api.askexe.com/v1/deploy-audits" : void 0),
897
- imageCredentialsUrl: process.env.EXE_STACK_IMAGE_CREDENTIALS_URL || (/^https?:\/\//.test(manifestRef) ? "https://api.askexe.com/v1/image-credentials" : void 0),
898
- // License key IS the auth token for api.askexe.com — no separate update token needed.
908
+ auditUrl: process.env.EXE_STACK_AUDIT_URL || (isRemoteManifest || hasLicenseForRemote ? `${updateServiceUrl}/v1/deploy-audits` : void 0),
909
+ imageCredentialsUrl: process.env.EXE_STACK_IMAGE_CREDENTIALS_URL || (isRemoteManifest || hasLicenseForRemote ? `${updateServiceUrl}/v1/image-credentials` : void 0),
910
+ // License key IS the auth token for update.askexe.com no separate update token needed.
899
911
  // EXE_STACK_UPDATE_TOKEN kept as legacy fallback during migration.
900
- manifestAuthToken: process.env.EXE_LICENSE_KEY || loadLicense() || process.env.EXE_STACK_UPDATE_TOKEN || void 0,
912
+ manifestAuthToken: licenseKey,
901
913
  manifestPublicKey: loadDefaultPublicKey()
902
914
  };
903
915
  }
@@ -3,7 +3,7 @@ import {
3
3
  buildRawVisibilityFilter,
4
4
  buildWikiScopeFilter,
5
5
  searchMemories
6
- } from "./chunk-JEL26633.js";
6
+ } from "./chunk-U2UQMLJ3.js";
7
7
  import {
8
8
  getClient
9
9
  } from "./chunk-RD77OX3W.js";
@@ -201,12 +201,14 @@ async function hybridSearch(queryText, agentId, options) {
201
201
  let effectiveQuery = queryText;
202
202
  const effectiveOptions = { ...options };
203
203
  let _isBroadQuery = false;
204
+ let inferredTerms = [];
204
205
  if (config.selfQueryRouter && process.env.ANTHROPIC_API_KEY) {
205
206
  try {
206
- const { routeQuery } = await import("./self-query-router-37VB3PKQ.js");
207
+ const { routeQuery } = await import("./self-query-router-VNUCMGFX.js");
207
208
  const routed = await routeQuery(queryText, config.selfQueryModel);
208
209
  effectiveQuery = routed.semanticQuery;
209
210
  _isBroadQuery = routed.isBroadQuery;
211
+ inferredTerms = routed.inferredTerms ?? [];
210
212
  if (routed.projectFilter && !effectiveOptions.projectName) {
211
213
  effectiveOptions.projectName = routed.projectFilter;
212
214
  }
@@ -266,6 +268,11 @@ async function hybridSearch(queryText, agentId, options) {
266
268
  }
267
269
  }
268
270
  const entitySubqueries = extractEntitySubqueries(effectiveQuery);
271
+ if (inferredTerms.length > 0) {
272
+ entitySubqueries.push(...inferredTerms.filter(
273
+ (t) => !entitySubqueries.some((sq) => sq.toLowerCase() === t.toLowerCase())
274
+ ));
275
+ }
269
276
  const subqueryPromises = entitySubqueries.map(
270
277
  (sq) => lightweightSearch(sq, agentId, { ...fetchOptions, limit: Math.min(fetchLimit, 20) }).catch(() => [])
271
278
  );
@@ -444,6 +451,7 @@ async function hybridSearch(queryText, agentId, options) {
444
451
  contradictionResolution: merged.length >= 2,
445
452
  reranker: rerankedAndBlended !== null,
446
453
  selfQueryRouter: effectiveQuery !== queryText,
454
+ inferredTerms: inferredTerms.length > 0 ? inferredTerms : void 0,
447
455
  lowConfidence: finalResults[0]?._lowConfidence ?? false
448
456
  },
449
457
  topResults: finalResults.slice(0, 10).map((r, i) => {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  processCRMEvent
3
- } from "./chunk-5WHMIXVB.js";
3
+ } from "./chunk-XUBWK2W7.js";
4
4
 
5
5
  // src/gateway/adapters/crm-webhook.ts
6
6
  function parseTwentyWebhook(payload) {
@@ -193,6 +193,13 @@ var PLATFORM_PROCEDURES = [
193
193
  priority: "p1",
194
194
  content: "Fresh install: `npm install -g @askexenow/exe-os` then run `exe` to start the setup wizard. The wizard prompts for: encryption passphrase (creates master key), license key (exe_sk_* from AskExe team), COO name, and optional team members. No license key = free tier (1 employee, 5K memories). After setup: hooks install automatically, MCP server registers in ~/.claude.json, daemon starts. Verify health: run `exe-os healthcheck` or use mcp_ping() tool."
195
195
  },
196
+ // --- Work discipline ---
197
+ {
198
+ title: "Never defer \u2014 fix it now or assign it now",
199
+ domain: "operations",
200
+ priority: "p0",
201
+ content: "NEVER defer work. If something is broken or needed, fix it in this session. Do NOT say 'we can do this later', 'save for next sprint', 'when prioritized', or 'not urgent right now'. Every defer is a broken promise \u2014 the work was identified but not done, which is worse than not identifying it. Deferred items pile up, get forgotten, block other work, and erode trust. If you find a bug while working on something else: fix it immediately, then continue your original task. If it's outside your scope: create_task to assign it to someone who can fix it NOW, not 'later'. If it genuinely cannot be done right now (missing credentials, needs external human action, blocked by third-party API), say exactly what's blocking and who needs to act \u2014 but never defer something within our control. The only acceptable reason to not fix something is 'it is physically impossible right now' \u2014 not 'it's not urgent'."
202
+ },
196
203
  // --- Observability ---
197
204
  {
198
205
  title: "Daemon logs and session lifecycle \u2014 full transparency for debugging",
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-R4IK2YT3.js";
7
7
  import {
8
8
  AUTO_WAKE_MAX_RETRIES
9
- } from "./chunk-XDAJN7CD.js";
9
+ } from "./chunk-HYBT5PXK.js";
10
10
  import {
11
11
  getToolCapabilityIndex
12
12
  } from "./chunk-6BZF3TEG.js";
@@ -28,7 +28,7 @@ import {
28
28
  } from "./chunk-E6ORBQHP.js";
29
29
  import {
30
30
  listRecentSessionEvents
31
- } from "./chunk-KH34KOGR.js";
31
+ } from "./chunk-2IV3YWK5.js";
32
32
  import {
33
33
  analyzeBlastRadius,
34
34
  buildCodeContextIndex,
@@ -42,7 +42,7 @@ import {
42
42
  exportOrchestration,
43
43
  importOrchestration,
44
44
  validatePackage
45
- } from "./chunk-GROYT25I.js";
45
+ } from "./chunk-HW3QT5BC.js";
46
46
  import {
47
47
  runDriftProbes
48
48
  } from "./chunk-ZR2ZH5CN.js";
@@ -52,7 +52,7 @@ import {
52
52
  } from "./chunk-DH65L4XI.js";
53
53
  import {
54
54
  createOrRefreshResumeTask
55
- } from "./chunk-QLZ2UY7X.js";
55
+ } from "./chunk-IATLKAGH.js";
56
56
  import {
57
57
  registerCompleteReminder
58
58
  } from "./chunk-UUZJU5NL.js";
@@ -61,16 +61,16 @@ import {
61
61
  } from "./chunk-3KVMAWJO.js";
62
62
  import {
63
63
  registerSendMessage
64
- } from "./chunk-2TARUE5G.js";
64
+ } from "./chunk-L4YMK3VA.js";
65
65
  import {
66
66
  registerCreateTask
67
- } from "./chunk-ONESYIVC.js";
67
+ } from "./chunk-ZFMOZRTQ.js";
68
68
  import {
69
69
  registerListTasks
70
- } from "./chunk-3XIZVQ6I.js";
70
+ } from "./chunk-HKSEZXKE.js";
71
71
  import {
72
72
  registerUpdateTask
73
- } from "./chunk-BAKUXZZO.js";
73
+ } from "./chunk-6WIKWLPV.js";
74
74
  import {
75
75
  registerCreateReminder
76
76
  } from "./chunk-BYVSOED6.js";
@@ -100,10 +100,10 @@ import {
100
100
  import {
101
101
  createSchedule,
102
102
  parseHumanCron
103
- } from "./chunk-WCKGOI5P.js";
103
+ } from "./chunk-64GZ6HDC.js";
104
104
  import {
105
105
  status
106
- } from "./chunk-ZXP72SMJ.js";
106
+ } from "./chunk-T3VJ6SD7.js";
107
107
  import {
108
108
  getAgentSpend
109
109
  } from "./chunk-TY4SOOBC.js";
@@ -118,7 +118,7 @@ import {
118
118
  import {
119
119
  formatReport,
120
120
  runAudit
121
- } from "./chunk-H2762FYW.js";
121
+ } from "./chunk-HBUTUNH2.js";
122
122
  import {
123
123
  runHealthCheck
124
124
  } from "./chunk-J73N5EJ6.js";
@@ -129,15 +129,15 @@ import {
129
129
  } from "./chunk-46Q3LLXC.js";
130
130
  import {
131
131
  renderClientCOOTemplate
132
- } from "./chunk-GSGT3QI5.js";
132
+ } from "./chunk-3VLOR4S5.js";
133
133
  import {
134
134
  deactivateGlobalProcedure,
135
135
  loadGlobalProcedures,
136
136
  storeGlobalProcedure
137
- } from "./chunk-3MN7V2SR.js";
137
+ } from "./chunk-HSIIGUNO.js";
138
138
  import {
139
139
  PLATFORM_PROCEDURES
140
- } from "./chunk-LGY2BIOT.js";
140
+ } from "./chunk-EB6OU665.js";
141
141
  import {
142
142
  clearCloudReuploadRequired,
143
143
  cloudSync,
@@ -162,7 +162,7 @@ import {
162
162
  groupMemories,
163
163
  runConsolidation,
164
164
  selectUnconsolidated
165
- } from "./chunk-X56DHLUW.js";
165
+ } from "./chunk-VMZJWKOI.js";
166
166
  import {
167
167
  embed
168
168
  } from "./chunk-7XKOGQJ2.js";
@@ -173,17 +173,17 @@ import {
173
173
  } from "./chunk-T5YT64SZ.js";
174
174
  import {
175
175
  updateTask
176
- } from "./chunk-X4OO7RXI.js";
176
+ } from "./chunk-I7RMP3RW.js";
177
177
  import {
178
178
  fastDbInit
179
- } from "./chunk-BLMF7ZQE.js";
179
+ } from "./chunk-7EQXVRA3.js";
180
180
  import {
181
181
  MAX_CONCURRENT_WORKERS
182
- } from "./chunk-LOYXXG6M.js";
182
+ } from "./chunk-25CVYGFX.js";
183
183
  import {
184
184
  hybridSearch,
185
185
  recentRecords
186
- } from "./chunk-QU62Q3YI.js";
186
+ } from "./chunk-CD76FDBD.js";
187
187
  import {
188
188
  attachDocumentMetadata,
189
189
  flushBatch,
@@ -191,7 +191,7 @@ import {
191
191
  reserveVersions,
192
192
  vectorToBlob,
193
193
  writeMemory
194
- } from "./chunk-JEL26633.js";
194
+ } from "./chunk-U2UQMLJ3.js";
195
195
  import {
196
196
  extractKeywords,
197
197
  keywordsToString
@@ -206,7 +206,7 @@ import {
206
206
  sessionScopeFilter,
207
207
  updateTaskStatus,
208
208
  writeCheckpoint
209
- } from "./chunk-KFDIV7EE.js";
209
+ } from "./chunk-NJL7VJ5O.js";
210
210
  import {
211
211
  listSessions
212
212
  } from "./chunk-64WZEXXA.js";
@@ -242,7 +242,7 @@ import {
242
242
  isScheduledTrigger,
243
243
  loadTriggers,
244
244
  sanitizeParam
245
- } from "./chunk-5WHMIXVB.js";
245
+ } from "./chunk-XUBWK2W7.js";
246
246
  import {
247
247
  EMPLOYEES_PATH,
248
248
  addEmployee,
@@ -1553,7 +1553,7 @@ function registerMemory(server) {
1553
1553
  if (action === "core_get" || action === "core_set" || action === "core_delete") {
1554
1554
  const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-I6RTMUJQ.js");
1555
1555
  const { agentId } = getActiveAgent2();
1556
- const { getCoreMemory, setCoreMemory, deleteCoreMemory, formatCoreMemoryBlock } = await import("./core-memory-XXATFASI.js");
1556
+ const { getCoreMemory, setCoreMemory, deleteCoreMemory, formatCoreMemoryBlock } = await import("./core-memory-6IN5YJZ7.js");
1557
1557
  if (action === "core_get") {
1558
1558
  const entries = await getCoreMemory(agentId);
1559
1559
  const block = formatCoreMemoryBlock(entries);
@@ -2262,7 +2262,7 @@ function registerResumeEmployee(server) {
2262
2262
  };
2263
2263
  }
2264
2264
  try {
2265
- const { isTmuxSessionAlive } = await import("./tasks-crud-FSFQEHQS.js");
2265
+ const { isTmuxSessionAlive } = await import("./tasks-crud-PH24HPHF.js");
2266
2266
  const now = (/* @__PURE__ */ new Date()).toISOString();
2267
2267
  for (const row of openTasks.rows) {
2268
2268
  const status2 = String(row.status);
@@ -5200,7 +5200,7 @@ function registerGetDaemonHealth(server) {
5200
5200
  lines.push(`| Requests served | ${health.requests_served.toLocaleString()} |`);
5201
5201
  }
5202
5202
  try {
5203
- const { getQueryCacheStats } = await import("./self-query-router-37VB3PKQ.js");
5203
+ const { getQueryCacheStats } = await import("./self-query-router-VNUCMGFX.js");
5204
5204
  const cache = getQueryCacheStats();
5205
5205
  lines.push(`| Query cache size | ${cache.size} / ${cache.maxSize} |`);
5206
5206
  lines.push(`| Query cache hit rate | ${cache.hitRate} |`);
@@ -5421,7 +5421,7 @@ async function getAgentSessionLoad() {
5421
5421
  return { sessions: [], totalLive: 0, busySessions: 0, idleSessions: 0 };
5422
5422
  }
5423
5423
  const { getClient: getClient2 } = await import("./lib/database.js");
5424
- const { sessionScopeFilter: sessionScopeFilter2 } = await import("./task-scope-MCCHWZT3.js");
5424
+ const { sessionScopeFilter: sessionScopeFilter2 } = await import("./task-scope-ZINRRB5G.js");
5425
5425
  const client = getClient2();
5426
5426
  const scope = sessionScopeFilter2();
5427
5427
  for (const s of liveAgentSessions) {
@@ -9460,7 +9460,7 @@ function registerWorkflowTool(server) {
9460
9460
  getWorkflowInstance,
9461
9461
  listWorkflowInstances,
9462
9462
  approveWorkflowStep
9463
- } = await import("./workflow-engine-JKDPHNI2.js");
9463
+ } = await import("./workflow-engine-WWVNS2YO.js");
9464
9464
  try {
9465
9465
  switch (input.action) {
9466
9466
  case "create_workflow": {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  executeAction,
3
3
  substituteTemplate
4
- } from "./chunk-5WHMIXVB.js";
4
+ } from "./chunk-XUBWK2W7.js";
5
5
 
6
6
  // src/automation/workflow-engine.ts
7
7
  import { randomUUID } from "crypto";
@@ -4,7 +4,7 @@ import {
4
4
  resolveExeSession,
5
5
  sendIntercom,
6
6
  strictSessionScopeFilter
7
- } from "./chunk-KFDIV7EE.js";
7
+ } from "./chunk-NJL7VJ5O.js";
8
8
  import {
9
9
  getClient
10
10
  } from "./chunk-RD77OX3W.js";
@@ -849,7 +849,7 @@ function formatReport(report, flags) {
849
849
  return lines.join("\n");
850
850
  }
851
851
  async function fixNullVectors() {
852
- const { tryAcquireWorkerSlot, registerWorkerPid } = await import("./worker-gate-PF3NYYBS.js");
852
+ const { tryAcquireWorkerSlot, registerWorkerPid } = await import("./worker-gate-IVJSJBPD.js");
853
853
  if (!tryAcquireWorkerSlot()) {
854
854
  process.stderr.write("[exe-doctor] Worker gate full \u2014 waiting for existing backfill workers to finish\n");
855
855
  await new Promise((r) => setTimeout(r, 5e3));
@@ -970,7 +970,7 @@ function splitAtSentences(text, maxChunkSize) {
970
970
  }
971
971
  async function main(argv = process.argv.slice(2)) {
972
972
  const flags = parseFlags(argv);
973
- const { fastDbInit } = await import("./fast-db-init-BA6F2QTN.js");
973
+ const { fastDbInit } = await import("./fast-db-init-3TIBU435.js");
974
974
  const client = await fastDbInit();
975
975
  const report = await runAudit(client, flags);
976
976
  console.log(formatReport(report, flags));
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-7WPIM2L6.js";
4
4
  import {
5
5
  listTasks
6
- } from "./chunk-KFDIV7EE.js";
6
+ } from "./chunk-NJL7VJ5O.js";
7
7
 
8
8
  // src/mcp/tools/list-tasks.ts
9
9
  import { z } from "zod";