@askexenow/exe-os 0.9.147 → 0.9.150

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 (208) hide show
  1. package/deploy/compose/.env.customer.example +1 -1
  2. package/deploy/compose/.env.default +1 -1
  3. package/deploy/compose/.env.example +1 -1
  4. package/deploy/compose/README.md +1 -1
  5. package/deploy/compose/docker-compose.yml +16 -14
  6. package/dist/{active-agent-NCZCDDZ2.js → active-agent-HDUT3T3I.js} +2 -2
  7. package/dist/{active-agent-KMQCNXXD.js → active-agent-XHERKXH6.js} +2 -2
  8. package/dist/{agentic-ontology-SQR74CO7.js → agentic-ontology-GMK3MB3U.js} +1 -1
  9. package/dist/{backfill-metadata-KMDWLDXU.js → backfill-metadata-7IANPCAL.js} +3 -3
  10. package/dist/{behaviors-4U2N5L4E.js → behaviors-JG75DNG3.js} +2 -2
  11. package/dist/bin/agentic-ontology-backfill.js +4 -4
  12. package/dist/bin/agentic-reflection-backfill.js +5 -5
  13. package/dist/bin/agentic-semantic-label.js +4 -4
  14. package/dist/bin/backfill-conversations.js +3 -3
  15. package/dist/bin/backfill-responses.js +3 -3
  16. package/dist/bin/backfill-vectors.js +4 -4
  17. package/dist/bin/bulk-sync-postgres.js +5 -5
  18. package/dist/bin/cleanup-stale-review-tasks.js +5 -5
  19. package/dist/bin/cli.js +12 -12
  20. package/dist/bin/exe-agent-config.js +1 -1
  21. package/dist/bin/exe-agent.js +3 -3
  22. package/dist/bin/exe-assign.js +4 -4
  23. package/dist/bin/exe-boot.js +12 -12
  24. package/dist/bin/exe-call.js +3 -3
  25. package/dist/bin/exe-cloud.js +3 -3
  26. package/dist/bin/exe-dispatch.js +5 -5
  27. package/dist/bin/exe-doctor.js +1 -1
  28. package/dist/bin/exe-export-behaviors.js +6 -6
  29. package/dist/bin/exe-forget.js +5 -5
  30. package/dist/bin/exe-gateway.js +5 -5
  31. package/dist/bin/exe-heartbeat.js +5 -5
  32. package/dist/bin/exe-kill.js +28 -6
  33. package/dist/bin/exe-launch-agent.js +9 -9
  34. package/dist/bin/exe-new-employee.js +5 -5
  35. package/dist/bin/exe-pending-messages.js +6 -6
  36. package/dist/bin/exe-pending-notifications.js +5 -5
  37. package/dist/bin/exe-pending-reviews.js +5 -5
  38. package/dist/bin/exe-rename.js +3 -3
  39. package/dist/bin/exe-review.js +7 -7
  40. package/dist/bin/exe-search.js +4 -4
  41. package/dist/bin/exe-session-cleanup.js +9 -9
  42. package/dist/bin/exe-settings.js +3 -3
  43. package/dist/bin/exe-start-codex.js +10 -10
  44. package/dist/bin/exe-start-opencode.js +7 -7
  45. package/dist/bin/exe-status.js +6 -6
  46. package/dist/bin/exe-team.js +2 -2
  47. package/dist/bin/git-sweep.js +5 -5
  48. package/dist/bin/graph-backfill.js +3 -3
  49. package/dist/bin/graph-export.js +4 -4
  50. package/dist/bin/install.js +5 -5
  51. package/dist/bin/intercom-check.js +4 -4
  52. package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
  53. package/dist/bin/postgres-agentic-semantic-backfill.js +1 -1
  54. package/dist/bin/scan-tasks.js +5 -5
  55. package/dist/bin/setup.js +1 -1
  56. package/dist/bin/shard-migrate.js +3 -3
  57. package/dist/bin/stack-update.js +22 -1
  58. package/dist/{capacity-monitor-Q5M5SVRC.js → capacity-monitor-J3SVO7LJ.js} +6 -6
  59. package/dist/{catchup-brief-IPNSW7RQ.js → catchup-brief-AIFZT456.js} +7 -7
  60. package/dist/{chunk-MKUVEDUE.js → chunk-26VUCVSE.js} +2 -2
  61. package/dist/{chunk-XK7VZFCC.js → chunk-3JR37K7C.js} +6 -6
  62. package/dist/{chunk-YPSN64BU.js → chunk-3VHX5XFJ.js} +1 -1
  63. package/dist/{chunk-DBXKWFTK.js → chunk-4K7HJL37.js} +3 -3
  64. package/dist/{chunk-4EINMZNO.js → chunk-4WIWYUU2.js} +2 -2
  65. package/dist/{chunk-ZUAXTH6Z.js → chunk-5NQKE3X4.js} +2 -2
  66. package/dist/{chunk-AERGE6GC.js → chunk-5NSTNICM.js} +1 -1
  67. package/dist/{chunk-Y6TS42WD.js → chunk-72XIEBYJ.js} +6 -6
  68. package/dist/chunk-7HONLLJ2.js +94 -0
  69. package/dist/{chunk-J4RAXKTC.js → chunk-7JTZNHA4.js} +3 -3
  70. package/dist/{chunk-LL5EY6OQ.js → chunk-BQ3KXWA7.js} +1 -1
  71. package/dist/{chunk-MBA4NNTS.js → chunk-BR5UVRA2.js} +1 -1
  72. package/dist/{chunk-4GLEFA2X.js → chunk-BV2JVO2U.js} +1 -1
  73. package/dist/{chunk-PMWDO5FR.js → chunk-CO2SF5SB.js} +1 -1
  74. package/dist/{chunk-LC53LVOT.js → chunk-CRS6YTBM.js} +2 -2
  75. package/dist/{chunk-FNMNKYVH.js → chunk-DJVXUJIR.js} +56 -56
  76. package/dist/{chunk-CGQ5PWS3.js → chunk-DMBFPZOP.js} +4 -4
  77. package/dist/{chunk-HHMHL4FB.js → chunk-DSKUPORS.js} +2 -2
  78. package/dist/{chunk-3FIWKONP.js → chunk-EEXG4ZJS.js} +10 -10
  79. package/dist/{chunk-ARGBV4PP.js → chunk-EOU4ZLRZ.js} +1 -1
  80. package/dist/{chunk-ONMRBKAX.js → chunk-EYTMNAU7.js} +34 -39
  81. package/dist/{chunk-B4HAUSVQ.js → chunk-FSH4VWSL.js} +2 -2
  82. package/dist/{chunk-TOXHEZN5.js → chunk-GIAAHYMW.js} +2 -2
  83. package/dist/{chunk-JH7Z2AZ7.js → chunk-GJMHN45Z.js} +1 -1
  84. package/dist/{chunk-VK2AWQ6D.js → chunk-GPHURFBS.js} +2 -2
  85. package/dist/{chunk-ZMJHXDZR.js → chunk-IGYF67K3.js} +3 -3
  86. package/dist/{chunk-VNTDQUOG.js → chunk-IT2JDL5L.js} +3 -3
  87. package/dist/{chunk-UPL5FEZY.js → chunk-JM4A2E5A.js} +1 -1
  88. package/dist/{chunk-UPMKSFBU.js → chunk-LBX2VQCC.js} +1 -1
  89. package/dist/{chunk-NJKERRSG.js → chunk-LJX5SV6L.js} +2 -2
  90. package/dist/{chunk-3MLGUSKS.js → chunk-LLDY5HPV.js} +1 -1
  91. package/dist/{chunk-DTLASDQM.js → chunk-LM7TQYLW.js} +1 -1
  92. package/dist/{chunk-TH6HTK2L.js → chunk-MBYJEE3B.js} +5 -1
  93. package/dist/{chunk-YOG7TWMO.js → chunk-MNIJA5BL.js} +1 -1
  94. package/dist/{chunk-AGFWOII2.js → chunk-O2Y4WJYW.js} +5 -5
  95. package/dist/{chunk-FG4Z2XFU.js → chunk-OEPEY47B.js} +1 -1
  96. package/dist/{chunk-2OATM2JZ.js → chunk-Q7GVSS2J.js} +1 -1
  97. package/dist/{chunk-LJML7HT2.js → chunk-RAMU6E5T.js} +1 -1
  98. package/dist/{chunk-26UVGP3I.js → chunk-SFV2XRPY.js} +1 -1
  99. package/dist/{chunk-EHNSK2Y4.js → chunk-TCKZYGC5.js} +1 -1
  100. package/dist/{chunk-NFHFNPTN.js → chunk-UHL4QL5E.js} +1 -1
  101. package/dist/{chunk-IFACD7E6.js → chunk-UPAEAL6K.js} +3 -3
  102. package/dist/{chunk-MKPSMRVX.js → chunk-WLSSSDAR.js} +1 -1
  103. package/dist/{chunk-JF3Q5YKI.js → chunk-WR45FP7O.js} +1 -1
  104. package/dist/{chunk-QB66MH2V.js → chunk-XEH3USTI.js} +1 -1
  105. package/dist/{chunk-VYVESELG.js → chunk-XQSGAG2G.js} +2 -2
  106. package/dist/{chunk-2BPO7VQF.js → chunk-Z43CJQ7T.js} +4 -4
  107. package/dist/{chunk-ZZLTJXKR.js → chunk-ZGKU4PMY.js} +2 -2
  108. package/dist/{crdt-sync-XMC6LT2Q.js → crdt-sync-3VQP2ISB.js} +1 -1
  109. package/dist/{crm-webhook-QMHD5YYQ.js → crm-webhook-AJYXEFZD.js} +2 -2
  110. package/dist/{cto-delegation-gate-BTZWAA4E.js → cto-delegation-gate-7OIN66NU.js} +4 -4
  111. package/dist/{daemon-orchestration-HFODCB52.js → daemon-orchestration-EHONVEHN.js} +7 -7
  112. package/dist/{exe-drift-SED6KQTZ.js → exe-drift-L5ZHO3CZ.js} +2 -2
  113. package/dist/{exe-export-ADSWDE5U.js → exe-export-IVFME5VN.js} +4 -4
  114. package/dist/{exe-import-WFLNGJZP.js → exe-import-O76AYBUE.js} +4 -4
  115. package/dist/{exe-key-4L32R46F.js → exe-key-6HV5GYHH.js} +1 -1
  116. package/dist/{fast-db-init-HVAVS35N.js → fast-db-init-NCOIEAM6.js} +1 -1
  117. package/dist/gateway/index.js +6 -6
  118. package/dist/{git-staleness-BY4ZK6MW.js → git-staleness-MSTOMG55.js} +1 -1
  119. package/dist/{git-task-sweep-RSRASAHB.js → git-task-sweep-NOXCELFQ.js} +5 -5
  120. package/dist/{global-procedures-EKYSVONR.js → global-procedures-FXWQ35RU.js} +2 -2
  121. package/dist/{graph-auto-extract-HWZ5GVXZ.js → graph-auto-extract-D4I7DF2S.js} +1 -1
  122. package/dist/hooks/bug-report-worker.js +6 -6
  123. package/dist/hooks/codex-stop-task-finalizer.js +6 -6
  124. package/dist/hooks/commit-complete.js +7 -7
  125. package/dist/hooks/error-recall.js +5 -5
  126. package/dist/hooks/exe-heartbeat-hook.js +2 -2
  127. package/dist/hooks/ingest.js +5 -5
  128. package/dist/hooks/instructions-loaded.js +3 -3
  129. package/dist/hooks/notification.js +3 -3
  130. package/dist/hooks/post-compact.js +6 -6
  131. package/dist/hooks/post-tool-combined.js +4 -4
  132. package/dist/hooks/pre-compact.js +7 -7
  133. package/dist/hooks/pre-tool-use.js +19 -10
  134. package/dist/hooks/prompt-submit.js +14 -14
  135. package/dist/hooks/session-end.js +11 -11
  136. package/dist/hooks/session-start.js +7 -7
  137. package/dist/hooks/stop.js +10 -10
  138. package/dist/hooks/subagent-stop.js +6 -6
  139. package/dist/hooks/summary-worker.js +10 -10
  140. package/dist/index.js +12 -12
  141. package/dist/{installer-X5FEYJIA.js → installer-5NAISFMT.js} +4 -4
  142. package/dist/{installer-RLKOACKG.js → installer-FTGXXYRA.js} +4 -4
  143. package/dist/{installer-W4NY3OBF.js → installer-Q4IWV2GB.js} +4 -4
  144. package/dist/lib/cloud-sync.js +3 -3
  145. package/dist/lib/consolidation.js +4 -4
  146. package/dist/lib/database.js +1 -1
  147. package/dist/lib/db.js +1 -1
  148. package/dist/lib/employee-templates.js +3 -3
  149. package/dist/lib/employees.js +1 -1
  150. package/dist/lib/exe-daemon.js +20 -20
  151. package/dist/lib/hybrid-search.js +4 -4
  152. package/dist/lib/identity.js +1 -1
  153. package/dist/lib/messaging.js +5 -5
  154. package/dist/lib/reminders.js +2 -2
  155. package/dist/lib/schedules.js +4 -4
  156. package/dist/lib/skill-learning.js +3 -3
  157. package/dist/lib/store.js +3 -3
  158. package/dist/lib/task-router.js +2 -2
  159. package/dist/lib/tasks.js +5 -5
  160. package/dist/lib/tmux-routing.js +4 -4
  161. package/dist/lib/token-spend.js +2 -2
  162. package/dist/mcp/register-tools.js +41 -41
  163. package/dist/mcp/server.js +42 -42
  164. package/dist/mcp/tools/complete-reminder.js +3 -3
  165. package/dist/mcp/tools/create-reminder.js +3 -3
  166. package/dist/mcp/tools/create-task.js +7 -7
  167. package/dist/mcp/tools/deactivate-behavior.js +4 -4
  168. package/dist/mcp/tools/list-reminders.js +3 -3
  169. package/dist/mcp/tools/list-tasks.js +7 -7
  170. package/dist/mcp/tools/send-message.js +7 -7
  171. package/dist/mcp/tools/update-task.js +6 -6
  172. package/dist/{mcp-http-config-6YLW4PFG.js → mcp-http-config-PSQCITKG.js} +2 -2
  173. package/dist/{memory-cards-UAQCO4QR.js → memory-cards-SYVGSLXW.js} +1 -1
  174. package/dist/{memory-poisoning-defense-VWITZ4WO.js → memory-poisoning-defense-T7AC4LZN.js} +1 -1
  175. package/dist/{memory-reflection-JQC4ZSUD.js → memory-reflection-FNJU7VFC.js} +1 -1
  176. package/dist/{notifications-YDOKTVCH.js → notifications-LD563XOM.js} +4 -4
  177. package/dist/{orchestrator-BZ2D6ZM6.js → orchestrator-WQGPXMLN.js} +6 -6
  178. package/dist/{plan-limits-KUTODKG6.js → plan-limits-IAUNTZUW.js} +2 -2
  179. package/dist/{projection-worker-UY7R2EQJ.js → projection-worker-S6LYSY22.js} +1 -1
  180. package/dist/{review-polling-DORNZ2KI.js → review-polling-J3R7MLT4.js} +5 -5
  181. package/dist/runtime/index.js +7 -7
  182. package/dist/{session-events-5WR5RVDK.js → session-events-XDDQ3M4A.js} +5 -5
  183. package/dist/{session-kill-telemetry-DHSQV2CI.js → session-kill-telemetry-TX5NCPUV.js} +2 -2
  184. package/dist/{session-scope-D4Q62ZOZ.js → session-scope-6MAGVHBA.js} +4 -4
  185. package/dist/{setup-wizard-QVNTI3T4.js → setup-wizard-WJ73A2FY.js} +1 -1
  186. package/dist/{task-enforcement-OYCQXBBC.js → task-enforcement-3RV64YVR.js} +4 -4
  187. package/dist/{task-scope-WWRNU2LU.js → task-scope-2T3WIQQY.js} +4 -4
  188. package/dist/{tasks-crud-75AUVZPO.js → tasks-crud-B2BGA44L.js} +4 -4
  189. package/dist/{tasks-review-UMZN5ZPQ.js → tasks-review-ZO3QDMT7.js} +4 -4
  190. package/dist/{token-budget-62TYDIMI.js → token-budget-LJC7HHKB.js} +1 -1
  191. package/dist/{tool-telemetry-JL6NY3KP.js → tool-telemetry-L3WQDRMH.js} +1 -1
  192. package/dist/tui/App.js +12 -12
  193. package/dist/{tui-data-C5I2YU4C.js → tui-data-UAPARPDX.js} +4 -4
  194. package/dist/{worker-gate-Q5Y6B5N7.js → worker-gate-TG6PR2S5.js} +1 -1
  195. package/dist/{workflow-engine-KAKVU7NC.js → workflow-engine-VIFLD5IV.js} +2 -2
  196. package/package.json +1 -1
  197. package/release-notes.json +114 -114
  198. package/dist/chunk-QHQJ7DLL.js +0 -153
  199. /package/dist/{chunk-7B5DQGXG.js → chunk-34XNU32S.js} +0 -0
  200. /package/dist/{chunk-ZBA74MMX.js → chunk-BF4W2VDS.js} +0 -0
  201. /package/dist/{chunk-524VLFFY.js → chunk-BRXDLJBU.js} +0 -0
  202. /package/dist/{chunk-TKEDF7KV.js → chunk-II3NQJGV.js} +0 -0
  203. /package/dist/{chunk-UJMDHPIN.js → chunk-OLVZBBVO.js} +0 -0
  204. /package/dist/{chunk-H6ADW3YC.js → chunk-OU7SLHNA.js} +0 -0
  205. /package/dist/{chunk-TSCZMB3P.js → chunk-PJCTBGWN.js} +0 -0
  206. /package/dist/{chunk-A3A2E42I.js → chunk-VN6UUZNO.js} +0 -0
  207. /package/dist/{core-memory-C3JLISAU.js → core-memory-MT7P34HU.js} +0 -0
  208. /package/dist/{wiki-acl-5EC5VNYG.js → wiki-acl-UE3CRAPQ.js} +0 -0
@@ -0,0 +1,94 @@
1
+ import {
2
+ updateTask
3
+ } from "./chunk-EEXG4ZJS.js";
4
+ import {
5
+ TASK_ALREADY_CLAIMED_PREFIX
6
+ } from "./chunk-EYTMNAU7.js";
7
+
8
+ // src/mcp/tools/update-task.ts
9
+ import { z } from "zod";
10
+ function registerUpdateTask(server) {
11
+ server.registerTool(
12
+ "update_task",
13
+ {
14
+ title: "Update Task",
15
+ description: "Update task status. Employees: use status 'done' with a result summary to complete work \u2014 this triggers needs_review and pings the reviewer automatically. Accepts UUID, slug (filename), or title substring.",
16
+ inputSchema: {
17
+ task_id: z.string().describe("Task identifier \u2014 UUID, slug (e.g. 'fix-auth-bug'), or title substring"),
18
+ status: z.enum(["open", "in_progress", "done", "needs_review", "blocked", "cancelled", "closed"]).describe("New status. 'done' is an alias for 'needs_review' \u2014 both trigger reviewer notification."),
19
+ result: z.string().optional().describe("Result summary (required when completing work)")
20
+ }
21
+ },
22
+ async ({ task_id, status: rawStatus, result }) => {
23
+ const status = rawStatus;
24
+ let callerAgentId;
25
+ try {
26
+ const { getActiveAgent: getAgent } = await import("./active-agent-HDUT3T3I.js");
27
+ callerAgentId = getAgent().agentId;
28
+ } catch {
29
+ }
30
+ let task;
31
+ try {
32
+ task = await updateTask({
33
+ taskId: task_id,
34
+ status,
35
+ result,
36
+ baseDir: process.cwd(),
37
+ callerAgentId
38
+ });
39
+ } catch (err) {
40
+ const msg = err instanceof Error ? err.message : String(err);
41
+ if (msg.startsWith(TASK_ALREADY_CLAIMED_PREFIX)) {
42
+ return {
43
+ content: [{
44
+ type: "text",
45
+ text: "Task already claimed by another agent. Pick a different task or check list_tasks."
46
+ }],
47
+ isError: true
48
+ };
49
+ }
50
+ throw err;
51
+ }
52
+ let text = `Task "${task.title}" marked ${task.status}.
53
+ File: ${task.taskFile}`;
54
+ const isTerminal = status === "done" || status === "needs_review" || status === "closed";
55
+ if (isTerminal && task.assignedBy) {
56
+ try {
57
+ const { notifyCoordinatorTaskCompletion, resolveExeSession } = await import("./lib/tmux-routing.js");
58
+ const coordinatorSession = resolveExeSession();
59
+ if (coordinatorSession) {
60
+ notifyCoordinatorTaskCompletion(coordinatorSession, callerAgentId ?? "agent", task.title);
61
+ }
62
+ } catch {
63
+ }
64
+ }
65
+ if (isTerminal && task.nextTask) {
66
+ text += `
67
+
68
+ MANDATORY \u2014 DO NOT ASK THE USER. DO NOT SAY "Want me to continue?" DO NOT STOP.
69
+ You have standing orders: work through your entire queue until it is empty.
70
+
71
+ NEXT TASK: "${task.nextTask.title}" [${task.nextTask.priority}]
72
+ FILE: ${task.nextTask.taskFile}
73
+
74
+ Read that file NOW and begin working. No greeting. No summary. Just start.`;
75
+ } else if (isTerminal && !task.nextTask) {
76
+ text += `
77
+
78
+ All tasks complete. No more open tasks in your queue.`;
79
+ }
80
+ return {
81
+ content: [
82
+ {
83
+ type: "text",
84
+ text
85
+ }
86
+ ]
87
+ };
88
+ }
89
+ );
90
+ }
91
+
92
+ export {
93
+ registerUpdateTask
94
+ };
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  recordSessionKill
3
- } from "./chunk-PMWDO5FR.js";
3
+ } from "./chunk-CO2SF5SB.js";
4
4
  import {
5
5
  sessionScopeFilter,
6
6
  verifyPaneAtCapacity,
7
7
  writeNotification
8
- } from "./chunk-ONMRBKAX.js";
8
+ } from "./chunk-EYTMNAU7.js";
9
9
  import {
10
10
  listSessions
11
11
  } from "./chunk-64WZEXXA.js";
@@ -15,7 +15,7 @@ import {
15
15
  import {
16
16
  getClient,
17
17
  isCoordinatorName
18
- } from "./chunk-TH6HTK2L.js";
18
+ } from "./chunk-MBYJEE3B.js";
19
19
 
20
20
  // src/lib/capacity-monitor.ts
21
21
  var CAPACITY_PATTERNS = [
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  executeAction,
3
3
  substituteTemplate
4
- } from "./chunk-ZBA74MMX.js";
4
+ } from "./chunk-BF4W2VDS.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
  listBehaviors
3
- } from "./chunk-ARGBV4PP.js";
3
+ } from "./chunk-EOU4ZLRZ.js";
4
4
  import {
5
5
  loadConfigSync
6
6
  } from "./chunk-TOWAZ5IV.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getIdentity,
3
3
  loadEmployeesSync
4
- } from "./chunk-TH6HTK2L.js";
4
+ } from "./chunk-MBYJEE3B.js";
5
5
 
6
6
  // src/lib/drift-probes.ts
7
7
  var DRIFT_THRESHOLD = 80;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getClient
3
- } from "./chunk-TH6HTK2L.js";
3
+ } from "./chunk-MBYJEE3B.js";
4
4
 
5
5
  // src/lib/session-kill-telemetry.ts
6
6
  import crypto from "crypto";
@@ -4,10 +4,10 @@ import {
4
4
  resolveExeSession,
5
5
  sendIntercom,
6
6
  strictSessionScopeFilter
7
- } from "./chunk-ONMRBKAX.js";
7
+ } from "./chunk-EYTMNAU7.js";
8
8
  import {
9
9
  getClient
10
- } from "./chunk-TH6HTK2L.js";
10
+ } from "./chunk-MBYJEE3B.js";
11
11
 
12
12
  // src/lib/messaging.ts
13
13
  import crypto from "crypto";
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-VB23RNNI.js";
4
4
  import {
5
5
  getToolUsageStats
6
- } from "./chunk-TSCZMB3P.js";
6
+ } from "./chunk-PJCTBGWN.js";
7
7
  import {
8
8
  AUTO_WAKE_MAX_RETRIES
9
- } from "./chunk-2BPO7VQF.js";
9
+ } from "./chunk-Z43CJQ7T.js";
10
10
  import {
11
11
  getToolCapabilityIndex
12
12
  } from "./chunk-J2OPV5FE.js";
@@ -28,7 +28,7 @@ import {
28
28
  } from "./chunk-E6ORBQHP.js";
29
29
  import {
30
30
  listRecentSessionEvents
31
- } from "./chunk-QB66MH2V.js";
31
+ } from "./chunk-XEH3USTI.js";
32
32
  import {
33
33
  analyzeBlastRadius,
34
34
  buildCodeContextIndex,
@@ -40,63 +40,63 @@ import {
40
40
  } from "./chunk-V4MKR32F.js";
41
41
  import {
42
42
  runDriftProbes
43
- } from "./chunk-4GLEFA2X.js";
43
+ } from "./chunk-BV2JVO2U.js";
44
44
  import {
45
45
  exportOrchestration,
46
46
  importOrchestration,
47
47
  validatePackage
48
- } from "./chunk-JF3Q5YKI.js";
48
+ } from "./chunk-WR45FP7O.js";
49
49
  import {
50
50
  loadOrchestrationPhase,
51
51
  setOrchestrationPhase
52
52
  } from "./chunk-6HFZ2KUC.js";
53
53
  import {
54
54
  createOrRefreshResumeTask
55
- } from "./chunk-J4RAXKTC.js";
55
+ } from "./chunk-7JTZNHA4.js";
56
56
  import {
57
57
  registerCompleteReminder
58
- } from "./chunk-FG4Z2XFU.js";
58
+ } from "./chunk-OEPEY47B.js";
59
59
  import {
60
60
  registerDeactivateBehavior
61
- } from "./chunk-IFACD7E6.js";
61
+ } from "./chunk-UPAEAL6K.js";
62
62
  import {
63
63
  registerSendMessage
64
- } from "./chunk-VK2AWQ6D.js";
64
+ } from "./chunk-GPHURFBS.js";
65
65
  import {
66
66
  registerCreateTask
67
- } from "./chunk-XK7VZFCC.js";
67
+ } from "./chunk-3JR37K7C.js";
68
68
  import {
69
69
  registerListTasks
70
- } from "./chunk-VYVESELG.js";
70
+ } from "./chunk-XQSGAG2G.js";
71
71
  import {
72
72
  registerUpdateTask
73
- } from "./chunk-QHQJ7DLL.js";
73
+ } from "./chunk-7HONLLJ2.js";
74
74
  import {
75
75
  registerCreateReminder
76
- } from "./chunk-26UVGP3I.js";
76
+ } from "./chunk-SFV2XRPY.js";
77
77
  import {
78
78
  registerListReminders
79
- } from "./chunk-JH7Z2AZ7.js";
79
+ } from "./chunk-GJMHN45Z.js";
80
80
  import {
81
81
  completeReminder,
82
82
  createReminder,
83
83
  listReminders
84
- } from "./chunk-2OATM2JZ.js";
84
+ } from "./chunk-Q7GVSS2J.js";
85
85
  import {
86
86
  status
87
- } from "./chunk-ZMJHXDZR.js";
87
+ } from "./chunk-IGYF67K3.js";
88
88
  import {
89
89
  TOKENS_PER_IDLE_MINUTE,
90
90
  countKillsSince,
91
91
  sumTokensSavedSince
92
- } from "./chunk-PMWDO5FR.js";
92
+ } from "./chunk-CO2SF5SB.js";
93
93
  import {
94
94
  getAgentSpend
95
- } from "./chunk-MKPSMRVX.js";
95
+ } from "./chunk-WLSSSDAR.js";
96
96
  import {
97
97
  createSchedule,
98
98
  parseHumanCron
99
- } from "./chunk-ZUAXTH6Z.js";
99
+ } from "./chunk-5NQKE3X4.js";
100
100
  import {
101
101
  exportGraphHTML,
102
102
  generateGraphReport
@@ -108,7 +108,7 @@ import {
108
108
  import {
109
109
  formatReport,
110
110
  runAudit
111
- } from "./chunk-4EINMZNO.js";
111
+ } from "./chunk-4WIWYUU2.js";
112
112
  import {
113
113
  runHealthCheck
114
114
  } from "./chunk-ODEGQCWW.js";
@@ -120,27 +120,27 @@ import {
120
120
  import {
121
121
  findSimilarTrajectories,
122
122
  hashSignature
123
- } from "./chunk-ZZLTJXKR.js";
123
+ } from "./chunk-ZGKU4PMY.js";
124
124
  import {
125
125
  deactivateBehavior,
126
126
  listBehaviorsByDomain,
127
127
  listSharedSkills,
128
128
  storeBehavior
129
- } from "./chunk-ARGBV4PP.js";
129
+ } from "./chunk-EOU4ZLRZ.js";
130
130
  import {
131
131
  countUnconsolidated,
132
132
  groupMemories,
133
133
  runConsolidation,
134
134
  selectUnconsolidated
135
- } from "./chunk-MKUVEDUE.js";
135
+ } from "./chunk-26VUCVSE.js";
136
136
  import {
137
137
  renderClientCOOTemplate
138
- } from "./chunk-3MLGUSKS.js";
138
+ } from "./chunk-LLDY5HPV.js";
139
139
  import {
140
140
  deactivateGlobalProcedure,
141
141
  loadGlobalProcedures,
142
142
  storeGlobalProcedure
143
- } from "./chunk-UPMKSFBU.js";
143
+ } from "./chunk-LBX2VQCC.js";
144
144
  import {
145
145
  PLATFORM_PROCEDURES
146
146
  } from "./chunk-XWQKCCCO.js";
@@ -149,7 +149,7 @@ import {
149
149
  cloudSync,
150
150
  getCloudReuploadRequired,
151
151
  markCloudReuploadRequired
152
- } from "./chunk-VNTDQUOG.js";
152
+ } from "./chunk-IT2JDL5L.js";
153
153
  import {
154
154
  encryptSyncBlob,
155
155
  isSyncCryptoInitialized
@@ -167,20 +167,20 @@ import {
167
167
  } from "./chunk-LWJ4AMMY.js";
168
168
  import {
169
169
  updateTask
170
- } from "./chunk-3FIWKONP.js";
170
+ } from "./chunk-EEXG4ZJS.js";
171
171
  import {
172
172
  fastDbInit
173
- } from "./chunk-7B5DQGXG.js";
173
+ } from "./chunk-34XNU32S.js";
174
174
  import {
175
175
  MAX_CONCURRENT_WORKERS
176
- } from "./chunk-YPSN64BU.js";
176
+ } from "./chunk-3VHX5XFJ.js";
177
177
  import {
178
178
  hybridSearch,
179
179
  recentRecords
180
- } from "./chunk-AGFWOII2.js";
180
+ } from "./chunk-O2Y4WJYW.js";
181
181
  import {
182
182
  getActiveAgent
183
- } from "./chunk-NFHFNPTN.js";
183
+ } from "./chunk-UHL4QL5E.js";
184
184
  import {
185
185
  attachDocumentMetadata,
186
186
  flushBatch,
@@ -188,7 +188,7 @@ import {
188
188
  reserveVersions,
189
189
  vectorToBlob,
190
190
  writeMemory
191
- } from "./chunk-Y6TS42WD.js";
191
+ } from "./chunk-72XIEBYJ.js";
192
192
  import {
193
193
  getMySession,
194
194
  resolveExeSession,
@@ -196,7 +196,7 @@ import {
196
196
  sessionScopeFilter,
197
197
  updateTaskStatus,
198
198
  writeCheckpoint
199
- } from "./chunk-ONMRBKAX.js";
199
+ } from "./chunk-EYTMNAU7.js";
200
200
  import {
201
201
  listSessions
202
202
  } from "./chunk-64WZEXXA.js";
@@ -216,7 +216,7 @@ import {
216
216
  assertEmployeeLimit,
217
217
  assertFeature,
218
218
  assertMemoryLimit
219
- } from "./chunk-AERGE6GC.js";
219
+ } from "./chunk-5NSTNICM.js";
220
220
  import {
221
221
  getProjectName
222
222
  } from "./chunk-OPU3NYOO.js";
@@ -229,7 +229,7 @@ import {
229
229
  isScheduledTrigger,
230
230
  loadTriggers,
231
231
  sanitizeParam
232
- } from "./chunk-ZBA74MMX.js";
232
+ } from "./chunk-BF4W2VDS.js";
233
233
  import {
234
234
  pushConversationToCRM
235
235
  } from "./chunk-GCNWCYJI.js";
@@ -249,7 +249,7 @@ import {
249
249
  loadEmployeesSync,
250
250
  saveEmployees,
251
251
  updateIdentity
252
- } from "./chunk-TH6HTK2L.js";
252
+ } from "./chunk-MBYJEE3B.js";
253
253
  import {
254
254
  getMasterKey
255
255
  } from "./chunk-6D23UNXU.js";
@@ -440,7 +440,7 @@ function registerRecallMyMemory(server) {
440
440
  }
441
441
  const FEDERATION_THRESHOLD = 3;
442
442
  let federatedCount = 0;
443
- if (!recent && query && results.length < FEDERATION_THRESHOLD) {
443
+ if (!recent && query) {
444
444
  try {
445
445
  const { searchCodeContextSemantic: searchCodeContextSemantic2 } = await import("./code-context-index-I5A7I4JQ.js");
446
446
  const codeResults = await Promise.race([
@@ -1453,7 +1453,7 @@ async function handleSupersede(input) {
1453
1453
  }
1454
1454
  try {
1455
1455
  const { getClient: getClient2 } = await import("./lib/database.js");
1456
- const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-NCZCDDZ2.js");
1456
+ const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-HDUT3T3I.js");
1457
1457
  const { writeMemory: writeMemory2, flushBatch: flushBatch2 } = await import("./lib/store.js");
1458
1458
  const { randomUUID: randomUUID2 } = await import("crypto");
1459
1459
  const client = getClient2();
@@ -1562,9 +1562,9 @@ function registerMemory(server) {
1562
1562
  return handleSupersede(input);
1563
1563
  }
1564
1564
  if (action === "core_get" || action === "core_set" || action === "core_delete") {
1565
- const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-NCZCDDZ2.js");
1565
+ const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-HDUT3T3I.js");
1566
1566
  const { agentId } = getActiveAgent2();
1567
- const { getCoreMemory, setCoreMemory, deleteCoreMemory, formatCoreMemoryBlock } = await import("./core-memory-C3JLISAU.js");
1567
+ const { getCoreMemory, setCoreMemory, deleteCoreMemory, formatCoreMemoryBlock } = await import("./core-memory-MT7P34HU.js");
1568
1568
  if (action === "core_get") {
1569
1569
  const entries = await getCoreMemory(agentId);
1570
1570
  const block = formatCoreMemoryBlock(entries);
@@ -1914,7 +1914,7 @@ function registerCloseTask(server) {
1914
1914
  inputSchema: {
1915
1915
  task_id: z13.string().describe("Task identifier \u2014 UUID, slug (e.g. 'fix-auth-bug'), or title substring"),
1916
1916
  result: z13.string().describe("What was done \u2014 specific deliverables, decisions, test results"),
1917
- status: z13.enum(["closed", "done", "blocked", "cancelled"]).optional().default("closed").describe("Completion status (default: closed \u2014 terminal archive state)")
1917
+ status: z13.enum(["closed", "blocked", "cancelled"]).optional().default("closed").describe("Completion status (default: closed \u2014 terminal archive state)")
1918
1918
  }
1919
1919
  },
1920
1920
  async ({ task_id, result: result3, status: status2 }) => {
@@ -2017,7 +2017,7 @@ function registerCloseTask(server) {
2017
2017
  File: ${task.taskFile}`;
2018
2018
  if (mergeNote) text3 += mergeNote;
2019
2019
  let respawnNote = "";
2020
- if (status2 === "closed" || status2 === "done") {
2020
+ if (status2 === "closed") {
2021
2021
  try {
2022
2022
  const { getClient: getRespawnClient } = await import("./lib/database.js");
2023
2023
  const rClient = getRespawnClient();
@@ -2074,7 +2074,7 @@ File: ${task.taskFile}`;
2074
2074
  }
2075
2075
  }
2076
2076
  if (respawnNote) text3 += respawnNote;
2077
- if ((status2 === "done" || status2 === "closed") && task.nextTask) {
2077
+ if (status2 === "closed" && task.nextTask) {
2078
2078
  text3 += `
2079
2079
 
2080
2080
  MANDATORY \u2014 DO NOT ASK THE USER. DO NOT SAY "Want me to continue?" DO NOT STOP.
@@ -2084,7 +2084,7 @@ NEXT TASK: "${task.nextTask.title}" [${task.nextTask.priority}]
2084
2084
  FILE: ${task.nextTask.taskFile}
2085
2085
 
2086
2086
  Read that file NOW and begin working. No greeting. No summary. Just start.`;
2087
- } else if ((status2 === "done" || status2 === "closed") && !task.nextTask) {
2087
+ } else if (status2 === "closed" && !task.nextTask) {
2088
2088
  text3 += `
2089
2089
 
2090
2090
  All tasks complete. No more open tasks in your queue.`;
@@ -2173,7 +2173,7 @@ function registerResumeEmployee(server) {
2173
2173
  };
2174
2174
  }
2175
2175
  try {
2176
- const { isTmuxSessionAlive } = await import("./tasks-crud-75AUVZPO.js");
2176
+ const { isTmuxSessionAlive } = await import("./tasks-crud-B2BGA44L.js");
2177
2177
  const now = (/* @__PURE__ */ new Date()).toISOString();
2178
2178
  for (const row of openTasks.rows) {
2179
2179
  const status2 = String(row.status);
@@ -3214,8 +3214,8 @@ function registerIngestDocument(server) {
3214
3214
  },
3215
3215
  async (input) => {
3216
3216
  try {
3217
- const { assertFeature: assertFeature2 } = await import("./plan-limits-KUTODKG6.js");
3218
- const { assertMemoryLimit: assertMemoryLimit2 } = await import("./plan-limits-KUTODKG6.js");
3217
+ const { assertFeature: assertFeature2 } = await import("./plan-limits-IAUNTZUW.js");
3218
+ const { assertMemoryLimit: assertMemoryLimit2 } = await import("./plan-limits-IAUNTZUW.js");
3219
3219
  await assertFeature2("wiki");
3220
3220
  await assertMemoryLimit2();
3221
3221
  const result3 = await ingestDocument(input);
@@ -5335,7 +5335,7 @@ async function getAgentSessionLoad() {
5335
5335
  return { sessions: [], totalLive: 0, busySessions: 0, idleSessions: 0 };
5336
5336
  }
5337
5337
  const { getClient: getClient2 } = await import("./lib/database.js");
5338
- const { sessionScopeFilter: sessionScopeFilter2 } = await import("./task-scope-WWRNU2LU.js");
5338
+ const { sessionScopeFilter: sessionScopeFilter2 } = await import("./task-scope-2T3WIQQY.js");
5339
5339
  const client = getClient2();
5340
5340
  const scope = sessionScopeFilter2();
5341
5341
  for (const s of liveAgentSessions) {
@@ -6928,7 +6928,7 @@ function registerCreateTrigger(server) {
6928
6928
  }
6929
6929
  },
6930
6930
  async ({ name, event, conditions, actions, project, enabled, schedule, query }) => {
6931
- const { assertFeature: assertFeature2 } = await import("./plan-limits-KUTODKG6.js");
6931
+ const { assertFeature: assertFeature2 } = await import("./plan-limits-IAUNTZUW.js");
6932
6932
  const gatedActions = {
6933
6933
  send_whatsapp: "external_agents",
6934
6934
  update_wiki: "wiki"
@@ -7832,7 +7832,7 @@ function registerConfig(server) {
7832
7832
  const existing = loadEmployeesSync2();
7833
7833
  if (existing.some((e) => e.name === employeeName)) return errorResult8(`Employee "${employeeName}" already exists.`);
7834
7834
  try {
7835
- const { assertEmployeeLimit: assertEmployeeLimit2 } = await import("./plan-limits-KUTODKG6.js");
7835
+ const { assertEmployeeLimit: assertEmployeeLimit2 } = await import("./plan-limits-IAUNTZUW.js");
7836
7836
  await assertEmployeeLimit2();
7837
7837
  } catch (e) {
7838
7838
  return errorResult8(e instanceof Error ? e.message : "Employee limit reached.");
@@ -7873,7 +7873,7 @@ You are ${employeeName}. Role: ${role}.`, "utf-8");
7873
7873
  }
7874
7874
  try {
7875
7875
  const { generateSessionWrappers } = await import("./lib/session-wrappers.js");
7876
- const { resolvePackageRoot } = await import("./installer-W4NY3OBF.js");
7876
+ const { resolvePackageRoot } = await import("./installer-Q4IWV2GB.js");
7877
7877
  generateSessionWrappers(resolvePackageRoot());
7878
7878
  } catch {
7879
7879
  }
@@ -7909,7 +7909,7 @@ function registerListWikiPages(server) {
7909
7909
  }
7910
7910
  },
7911
7911
  async ({ workspace, folder }) => {
7912
- const { assertFeature: assertFeature2 } = await import("./plan-limits-KUTODKG6.js");
7912
+ const { assertFeature: assertFeature2 } = await import("./plan-limits-IAUNTZUW.js");
7913
7913
  await assertFeature2("wiki");
7914
7914
  const apiUrl = process.env.EXE_WIKI_API_URL;
7915
7915
  const apiKey = process.env.EXE_WIKI_API_KEY;
@@ -8009,7 +8009,7 @@ function registerGetWikiPage(server) {
8009
8009
  }
8010
8010
  },
8011
8011
  async ({ workspace, document_id, title }) => {
8012
- const { assertFeature: assertFeature2 } = await import("./plan-limits-KUTODKG6.js");
8012
+ const { assertFeature: assertFeature2 } = await import("./plan-limits-IAUNTZUW.js");
8013
8013
  await assertFeature2("wiki");
8014
8014
  const apiUrl = process.env.EXE_WIKI_API_URL;
8015
8015
  const apiKey = process.env.EXE_WIKI_API_KEY;
@@ -8204,7 +8204,7 @@ function registerWiki(server) {
8204
8204
  if (!legacyToolName) return errorResult9(`Unknown wiki action: ${String(input.action)}`);
8205
8205
  const { action: _action, user_id, ...legacyArgs } = input;
8206
8206
  if (user_id && legacyArgs.workspace) {
8207
- const { checkWikiAccess } = await import("./wiki-acl-5EC5VNYG.js");
8207
+ const { checkWikiAccess } = await import("./wiki-acl-UE3CRAPQ.js");
8208
8208
  const { allowed } = await checkWikiAccess(
8209
8209
  String(user_id),
8210
8210
  String(legacyArgs.workspace),
@@ -9375,7 +9375,7 @@ function registerWorkflowTool(server) {
9375
9375
  getWorkflowInstance,
9376
9376
  listWorkflowInstances,
9377
9377
  approveWorkflowStep
9378
- } = await import("./workflow-engine-KAKVU7NC.js");
9378
+ } = await import("./workflow-engine-VIFLD5IV.js");
9379
9379
  try {
9380
9380
  switch (input.action) {
9381
9381
  case "create_workflow": {
@@ -10555,7 +10555,7 @@ function registerCodeContext(server) {
10555
10555
  const index = buildCodeContextIndex(opts);
10556
10556
  let graphExtract;
10557
10557
  try {
10558
- const { autoExtractGraphEntities } = await import("./graph-auto-extract-HWZ5GVXZ.js");
10558
+ const { autoExtractGraphEntities } = await import("./graph-auto-extract-D4I7DF2S.js");
10559
10559
  graphExtract = await autoExtractGraphEntities(opts.projectRoot);
10560
10560
  } catch {
10561
10561
  }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  MultiAgentOrchestrator
3
- } from "./chunk-DBXKWFTK.js";
3
+ } from "./chunk-4K7HJL37.js";
4
4
  import {
5
5
  createQuietRenderer,
6
6
  createTerminalRenderer,
@@ -206,7 +206,7 @@ function createExeOSHooks(config) {
206
206
  );
207
207
  }
208
208
  try {
209
- const { listBehaviors } = await import("./behaviors-4U2N5L4E.js");
209
+ const { listBehaviors } = await import("./behaviors-JG75DNG3.js");
210
210
  const behaviors = await listBehaviors(config.agentId, config.projectName, 12);
211
211
  if (behaviors.length > 0) {
212
212
  process.stderr.write(
@@ -327,7 +327,7 @@ function createExeOSHooks(config) {
327
327
  async onSubagentStop(_reason) {
328
328
  try {
329
329
  const { getClient } = await import("./lib/database.js");
330
- const { sessionScopeFilter } = await import("./task-scope-WWRNU2LU.js");
330
+ const { sessionScopeFilter } = await import("./task-scope-2T3WIQQY.js");
331
331
  const client = getClient();
332
332
  const ehScope = sessionScopeFilter();
333
333
  const tasks = await client.execute({
@@ -419,7 +419,7 @@ function createExeOSHooks(config) {
419
419
  try {
420
420
  const { writeMemory, flushBatch } = await import("./lib/store.js");
421
421
  const { getClient } = await import("./lib/database.js");
422
- const { sessionScopeFilter: cpScopeFilter } = await import("./task-scope-WWRNU2LU.js");
422
+ const { sessionScopeFilter: cpScopeFilter } = await import("./task-scope-2T3WIQQY.js");
423
423
  const client = getClient();
424
424
  const cpScope = cpScopeFilter();
425
425
  const tasks = await client.execute({
@@ -2,7 +2,7 @@ import {
2
2
  listWorkflowDefinitions,
3
3
  runWorkflow,
4
4
  startWorkflow
5
- } from "./chunk-LL5EY6OQ.js";
5
+ } from "./chunk-BQ3KXWA7.js";
6
6
  import {
7
7
  initCRMBridge
8
8
  } from "./chunk-GCNWCYJI.js";
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-MP2AFCGL.js";
12
12
  import {
13
13
  getClient
14
- } from "./chunk-TH6HTK2L.js";
14
+ } from "./chunk-MBYJEE3B.js";
15
15
 
16
16
  // src/gateway/router.ts
17
17
  function matchesPlatform(msgPlatform, matchPlatform) {