@askexenow/exe-os 0.9.236 → 0.9.237

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 (232) hide show
  1. package/dist/{active-agent-JD6BCCFZ.js → active-agent-6WX7GZBH.js} +3 -3
  2. package/dist/{active-agent-RCXBLWQS.js → active-agent-X3GALNAR.js} +3 -3
  3. package/dist/{agentic-ontology-PAYLA3Q6.js → agentic-ontology-NBU3FHEX.js} +1 -1
  4. package/dist/{backfill-metadata-63Y4JVSZ.js → backfill-metadata-NG2L5GUP.js} +4 -4
  5. package/dist/behavior-effectiveness-UP76GMOC.js +344 -0
  6. package/dist/{behaviors-I7JQLV6G.js → behaviors-DH7XFONJ.js} +3 -3
  7. package/dist/bin/agentic-ontology-backfill.js +5 -5
  8. package/dist/bin/agentic-reflection-backfill.js +6 -6
  9. package/dist/bin/agentic-semantic-label.js +5 -5
  10. package/dist/bin/backfill-conversations.js +4 -4
  11. package/dist/bin/backfill-responses.js +4 -4
  12. package/dist/bin/backfill-vectors.js +5 -5
  13. package/dist/bin/bulk-sync-postgres.js +6 -6
  14. package/dist/bin/cleanup-stale-review-tasks.js +9 -9
  15. package/dist/bin/cli.js +14 -14
  16. package/dist/bin/exe-agent-config.js +2 -2
  17. package/dist/bin/exe-agent.js +9 -9
  18. package/dist/bin/exe-assign.js +5 -5
  19. package/dist/bin/exe-boot.js +17 -17
  20. package/dist/bin/exe-call.js +5 -5
  21. package/dist/bin/exe-cloud.js +4 -4
  22. package/dist/bin/exe-dispatch.js +9 -9
  23. package/dist/bin/exe-doctor.js +1 -1
  24. package/dist/bin/exe-export-behaviors.js +7 -7
  25. package/dist/bin/exe-forget.js +6 -6
  26. package/dist/bin/exe-gateway.js +7 -7
  27. package/dist/bin/exe-heartbeat.js +9 -9
  28. package/dist/bin/exe-kill.js +12 -12
  29. package/dist/bin/exe-launch-agent.js +17 -17
  30. package/dist/bin/exe-new-employee.js +7 -7
  31. package/dist/bin/exe-pending-messages.js +10 -10
  32. package/dist/bin/exe-pending-notifications.js +9 -9
  33. package/dist/bin/exe-pending-reviews.js +9 -9
  34. package/dist/bin/exe-rename.js +5 -5
  35. package/dist/bin/exe-review.js +11 -11
  36. package/dist/bin/exe-search.js +5 -5
  37. package/dist/bin/exe-session-cleanup.js +14 -14
  38. package/dist/bin/exe-settings.js +4 -4
  39. package/dist/bin/exe-start-codex.js +11 -11
  40. package/dist/bin/exe-start-opencode.js +8 -8
  41. package/dist/bin/exe-status.js +10 -10
  42. package/dist/bin/exe-team.js +3 -3
  43. package/dist/bin/git-sweep.js +9 -9
  44. package/dist/bin/graph-backfill.js +4 -4
  45. package/dist/bin/graph-export.js +5 -5
  46. package/dist/bin/import-history.js +7 -7
  47. package/dist/bin/install.js +6 -6
  48. package/dist/bin/intercom-check.js +4 -4
  49. package/dist/bin/mcp-sessions.js +2 -2
  50. package/dist/bin/orchestration-metrics.js +4 -4
  51. package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
  52. package/dist/bin/postgres-agentic-semantic-backfill.js +1 -1
  53. package/dist/bin/pre-publish.js +1 -1
  54. package/dist/bin/scan-tasks.js +9 -9
  55. package/dist/bin/setup.js +1 -1
  56. package/dist/bin/shard-migrate.js +4 -4
  57. package/dist/{capacity-monitor-NVSZABQG.js → capacity-monitor-KAKNWAA4.js} +10 -10
  58. package/dist/{catchup-brief-L76MGN2J.js → catchup-brief-RZF7HEYB.js} +11 -11
  59. package/dist/{chunk-VTLUUTWI.js → chunk-2LYJTK47.js} +40 -1
  60. package/dist/{chunk-MJMJMHFC.js → chunk-2O5GJFYQ.js} +1 -1
  61. package/dist/{chunk-N5VQ3PVS.js → chunk-2VXHPSIJ.js} +1 -1
  62. package/dist/{chunk-Q25V2UO6.js → chunk-3JVO6X4W.js} +1 -1
  63. package/dist/{chunk-Y2PQS2GI.js → chunk-3NYRIK73.js} +2 -2
  64. package/dist/{chunk-QK7R2CUS.js → chunk-4HMKJDPB.js} +3 -3
  65. package/dist/{chunk-5NIUTWV4.js → chunk-5KDROSDV.js} +1 -1
  66. package/dist/{chunk-5SYO2FD7.js → chunk-627ZOPZQ.js} +64 -12
  67. package/dist/{chunk-24KEYEYL.js → chunk-7LIXU3TB.js} +8 -8
  68. package/dist/{chunk-NEXKWAVU.js → chunk-7PVUUC3O.js} +5 -5
  69. package/dist/{chunk-X4AZWJP4.js → chunk-AYBC6AYP.js} +8 -8
  70. package/dist/{chunk-YVN2WG5T.js → chunk-BTPXNV5W.js} +1 -1
  71. package/dist/{chunk-Z7A6DTIN.js → chunk-CJEVAKKC.js} +2 -2
  72. package/dist/{chunk-J2QQMTCD.js → chunk-COMWI7SO.js} +1 -1
  73. package/dist/{chunk-ENGXTDTJ.js → chunk-ENQIADYO.js} +479 -149
  74. package/dist/{chunk-PBA32J2M.js → chunk-ENWFSMOS.js} +10 -10
  75. package/dist/{chunk-CKTFH5RQ.js → chunk-ES5JM6V2.js} +2 -2
  76. package/dist/{chunk-NOQSYYVA.js → chunk-FQJWTRCB.js} +1 -1
  77. package/dist/{chunk-XORJOW4J.js → chunk-G67R75DG.js} +1 -1
  78. package/dist/{chunk-SUQSNH4N.js → chunk-GXU3XRI5.js} +3 -3
  79. package/dist/{chunk-CHFBYRJX.js → chunk-HFYCKIVJ.js} +2 -2
  80. package/dist/{chunk-LX7AMJIX.js → chunk-HUVSY6NF.js} +2 -2
  81. package/dist/{chunk-CNCTKOX2.js → chunk-IDCJNL7C.js} +1 -1
  82. package/dist/{chunk-ZOPLM7G3.js → chunk-IQNT6KAE.js} +1 -1
  83. package/dist/{chunk-XPRYBSMJ.js → chunk-JBMZS5WO.js} +1 -1
  84. package/dist/{chunk-BWHBPDYB.js → chunk-JBUHOWIV.js} +1 -1
  85. package/dist/{chunk-2QRT6G4V.js → chunk-JHFXCYZP.js} +1 -1
  86. package/dist/{chunk-6XOAK64X.js → chunk-JLHSEBNQ.js} +3 -3
  87. package/dist/{chunk-5NFBE376.js → chunk-K77WC6HA.js} +12 -0
  88. package/dist/{chunk-LWQ3PFSR.js → chunk-KRLR26L2.js} +2 -2
  89. package/dist/{chunk-2EBKU2XN.js → chunk-KWH6H64R.js} +145 -3
  90. package/dist/{chunk-ZAS43I3E.js → chunk-LUCHTCME.js} +1 -1
  91. package/dist/{chunk-VXVI75ED.js → chunk-LXP6VRFH.js} +1 -1
  92. package/dist/{chunk-OMHTKVHC.js → chunk-MPG2FFQS.js} +1 -1
  93. package/dist/{chunk-43AN2SYJ.js → chunk-N4IJWOIS.js} +2 -2
  94. package/dist/{chunk-PJPPO6EF.js → chunk-NCJNGQUZ.js} +1 -1
  95. package/dist/{chunk-2UD2P2LO.js → chunk-NJS4GRIR.js} +1 -1
  96. package/dist/{chunk-L3GKFCXW.js → chunk-NQU2RTCP.js} +8 -8
  97. package/dist/{chunk-J2LPDECR.js → chunk-NS7FW3NG.js} +2 -2
  98. package/dist/{chunk-SL7SYDNI.js → chunk-PQBANSH6.js} +2 -2
  99. package/dist/{chunk-M4ERGSIO.js → chunk-Q4MZN62R.js} +3 -3
  100. package/dist/{chunk-MDE2ZNWZ.js → chunk-QQFZID36.js} +1 -1
  101. package/dist/{chunk-H3UGSTZH.js → chunk-QXKWSRUZ.js} +9 -9
  102. package/dist/{chunk-Q4GHOMRW.js → chunk-RM6PJ34R.js} +1 -1
  103. package/dist/{chunk-Z2EJ234K.js → chunk-RXGTA6YQ.js} +3 -3
  104. package/dist/{chunk-DEAYJXHL.js → chunk-T3ASODFG.js} +3 -3
  105. package/dist/{chunk-DGZJXYK7.js → chunk-UISUGXJU.js} +1 -1
  106. package/dist/{chunk-4DIB3GXJ.js → chunk-VEU6LVBR.js} +1 -1
  107. package/dist/{chunk-ZPZFR3EN.js → chunk-VK5IBXXT.js} +5 -5
  108. package/dist/{chunk-WJH6IM7Q.js → chunk-WQCSGDRG.js} +1 -1
  109. package/dist/{chunk-CFG73TVV.js → chunk-WQXJIMBO.js} +2 -2
  110. package/dist/{chunk-NFHSUQ2R.js → chunk-XCGJPZ6H.js} +2 -2
  111. package/dist/{chunk-JH7CK57B.js → chunk-YDG343II.js} +4 -3
  112. package/dist/{chunk-L6LDDOYW.js → chunk-YENDNLAD.js} +1 -1
  113. package/dist/{chunk-QUTBXURR.js → chunk-YUQ7GGAL.js} +4 -3
  114. package/dist/{chunk-26JSRH2T.js → chunk-YUS7IS3I.js} +8 -8
  115. package/dist/{chunk-4TKI4VW7.js → chunk-ZZBOV6WA.js} +4 -4
  116. package/dist/{co-activation-XS7CDNIK.js → co-activation-OCQPRJ2I.js} +2 -2
  117. package/dist/{co-occurrence-R5D6WB4A.js → co-occurrence-S62AC2BR.js} +2 -2
  118. package/dist/{crdt-sync-NEINCZF7.js → crdt-sync-VS254UOH.js} +1 -1
  119. package/dist/{crm-webhook-C2LSU33R.js → crm-webhook-CST5WBNY.js} +2 -2
  120. package/dist/{cto-delegation-gate-4DLESYKG.js → cto-delegation-gate-2PY563OA.js} +8 -8
  121. package/dist/{daemon-orchestration-IW3MD56I.js → daemon-orchestration-P34RDHTM.js} +11 -11
  122. package/dist/{db-backup-C44Q44WQ.js → db-backup-JEHRFLYW.js} +1 -1
  123. package/dist/{dreaming-YKXGUTVR.js → dreaming-WIBDVAED.js} +3 -3
  124. package/dist/{exe-drift-B5ZMICND.js → exe-drift-DOWP33NY.js} +3 -3
  125. package/dist/{exe-export-WPJD5XA3.js → exe-export-QCB5UOXQ.js} +6 -6
  126. package/dist/{exe-import-AIGIF253.js → exe-import-JHFIXRB5.js} +6 -6
  127. package/dist/{exe-key-2C23CONG.js → exe-key-EAQDAUPT.js} +2 -2
  128. package/dist/{exe-snapshot-2NZ6BL7S.js → exe-snapshot-RKMMV52M.js} +6 -6
  129. package/dist/{fast-db-init-O6Y4G47U.js → fast-db-init-PTUUO2IO.js} +1 -1
  130. package/dist/gateway/index.js +8 -8
  131. package/dist/{git-staleness-DFHISHY2.js → git-staleness-5SFBUMPC.js} +2 -2
  132. package/dist/{git-task-sweep-6P4YPAIY.js → git-task-sweep-XMK5IQXK.js} +9 -9
  133. package/dist/{global-procedures-45Z53UIF.js → global-procedures-W4U257TI.js} +4 -4
  134. package/dist/{graph-auto-extract-I37N7WQN.js → graph-auto-extract-5ZD4AUSB.js} +2 -2
  135. package/dist/hooks/bug-report-worker.js +10 -10
  136. package/dist/hooks/codex-stop-task-finalizer.js +10 -10
  137. package/dist/hooks/commit-complete.js +11 -11
  138. package/dist/hooks/error-recall.js +6 -6
  139. package/dist/hooks/exe-heartbeat-hook.js +3 -3
  140. package/dist/hooks/ingest.js +6 -6
  141. package/dist/hooks/instructions-loaded.js +4 -4
  142. package/dist/hooks/manifest.json +19 -19
  143. package/dist/hooks/notification.js +4 -4
  144. package/dist/hooks/post-compact.js +10 -10
  145. package/dist/hooks/post-tool-combined.js +21 -4
  146. package/dist/hooks/pre-compact.js +11 -11
  147. package/dist/hooks/pre-tool-use.js +14 -14
  148. package/dist/hooks/prompt-submit.js +20 -20
  149. package/dist/hooks/session-end.js +28 -15
  150. package/dist/hooks/session-start.js +10 -10
  151. package/dist/hooks/stop.js +14 -14
  152. package/dist/hooks/subagent-stop.js +10 -10
  153. package/dist/hooks/summary-worker.js +14 -14
  154. package/dist/index.js +18 -18
  155. package/dist/{installer-SCPRAYJN.js → installer-2HULECDJ.js} +5 -5
  156. package/dist/{installer-OSIEPXXH.js → installer-BCOJG2SE.js} +5 -5
  157. package/dist/{installer-3MSU3GSG.js → installer-N5XZAFE4.js} +5 -5
  158. package/dist/investigation-tracker-WSCY4XBP.js +410 -0
  159. package/dist/lib/cloud-sync.js +4 -4
  160. package/dist/lib/consolidation.js +5 -5
  161. package/dist/lib/database.js +2 -2
  162. package/dist/lib/db.js +2 -2
  163. package/dist/lib/employee-templates.js +5 -5
  164. package/dist/lib/employees.js +2 -2
  165. package/dist/lib/exe-daemon.js +30 -30
  166. package/dist/lib/hybrid-search.js +5 -5
  167. package/dist/lib/identity.js +2 -2
  168. package/dist/lib/messaging.js +9 -9
  169. package/dist/lib/reminders.js +3 -3
  170. package/dist/lib/schedules.js +5 -5
  171. package/dist/lib/session-registry.js +4 -4
  172. package/dist/lib/skill-learning.js +4 -4
  173. package/dist/lib/store.js +4 -4
  174. package/dist/lib/task-router.js +3 -3
  175. package/dist/lib/tasks.js +9 -9
  176. package/dist/lib/tmux-routing.js +8 -8
  177. package/dist/lib/token-spend.js +3 -3
  178. package/dist/mcp/register-tools.js +52 -52
  179. package/dist/mcp/server.js +53 -53
  180. package/dist/mcp/tools/complete-reminder.js +4 -4
  181. package/dist/mcp/tools/create-reminder.js +4 -4
  182. package/dist/mcp/tools/create-task.js +11 -11
  183. package/dist/mcp/tools/deactivate-behavior.js +5 -5
  184. package/dist/mcp/tools/list-reminders.js +4 -4
  185. package/dist/mcp/tools/list-tasks.js +11 -11
  186. package/dist/mcp/tools/send-message.js +11 -11
  187. package/dist/mcp/tools/update-task.js +10 -10
  188. package/dist/{mcp-http-config-KBPJ4QNG.js → mcp-http-config-RTXPLRH5.js} +3 -3
  189. package/dist/{memory-cards-ICBAONHA.js → memory-cards-3FBGRV6J.js} +2 -2
  190. package/dist/{memory-graph-extractor-B33AXVOW.js → memory-graph-extractor-5D3FU5N5.js} +3 -3
  191. package/dist/{memory-poisoning-defense-KNQGXMQ2.js → memory-poisoning-defense-P6GL2RMF.js} +2 -2
  192. package/dist/{memory-reflection-H6WTTBDO.js → memory-reflection-5CVV2M3G.js} +2 -2
  193. package/dist/{notifications-3SVZCDEY.js → notifications-NV54INLG.js} +8 -8
  194. package/dist/{orchestration-events-PCGTHJ67.js → orchestration-events-TEYCD6GO.js} +3 -3
  195. package/dist/{orchestrator-46YDSPQI.js → orchestrator-JCNHGP6M.js} +10 -10
  196. package/dist/{pipeline-router-RCPUSLWO.js → pipeline-router-IX635D3U.js} +3 -3
  197. package/dist/{plan-limits-4JH2GWCP.js → plan-limits-H65VL6LC.js} +3 -3
  198. package/dist/{projection-worker-B4TWS2FX.js → projection-worker-JMGAPKH6.js} +1 -1
  199. package/dist/{reranker-CCAEXD25.js → reranker-Y2RHN7TX.js} +1 -1
  200. package/dist/{review-polling-Z7NRBMHV.js → review-polling-SAQ24T6L.js} +9 -9
  201. package/dist/runtime/index.js +15 -15
  202. package/dist/{session-events-TNO5ISQB.js → session-events-JNUK47KH.js} +9 -9
  203. package/dist/{session-kill-telemetry-6FDEUGO5.js → session-kill-telemetry-GLCDARKV.js} +3 -3
  204. package/dist/{session-scope-MGHWXZYK.js → session-scope-UR7OFFOB.js} +8 -8
  205. package/dist/{setup-wizard-5O5OQOXH.js → setup-wizard-ZMYO7QKZ.js} +1 -1
  206. package/dist/{skill-refinement-Y7N2Q25B.js → skill-refinement-WWWFGTUS.js} +2 -2
  207. package/dist/{steward-gate-H2VKZNW2.js → steward-gate-TAD7GEVL.js} +3 -3
  208. package/dist/{task-enforcement-QTVMU2RS.js → task-enforcement-2LI5KWFE.js} +8 -8
  209. package/dist/{task-scope-YQ6O3DIE.js → task-scope-AYK6BVC7.js} +8 -8
  210. package/dist/{tasks-crud-ZGQZPZAM.js → tasks-crud-OD75EH2G.js} +8 -8
  211. package/dist/{tasks-review-EM3YKWOR.js → tasks-review-CC2EGWBL.js} +8 -8
  212. package/dist/{telemetry-upload-QTBI5CFE.js → telemetry-upload-NXRMUNSW.js} +128 -6
  213. package/dist/{token-budget-OQ6XR5EK.js → token-budget-6TK55BBU.js} +2 -2
  214. package/dist/{tool-telemetry-NKCCCPQJ.js → tool-telemetry-E7NWXX5R.js} +1 -1
  215. package/dist/tui/App.js +17 -17
  216. package/dist/{tui-data-MSZKTQDJ.js → tui-data-ROOXTJQ5.js} +8 -8
  217. package/dist/{worker-gate-WQ2BEQTX.js → worker-gate-MOQZ2D34.js} +1 -1
  218. package/dist/{workflow-engine-YB7OOSAT.js → workflow-engine-4MQJI5F2.js} +2 -2
  219. package/dist/{worktree-W6OAHIBE.js → worktree-K2GDO4QX.js} +4 -4
  220. package/package.json +1 -1
  221. /package/dist/{chunk-THNAZQIH.js → chunk-3SVQ5REQ.js} +0 -0
  222. /package/dist/{chunk-MBEF2YKQ.js → chunk-A4TPCHMA.js} +0 -0
  223. /package/dist/{chunk-5O42LXU7.js → chunk-BJOU5MBY.js} +0 -0
  224. /package/dist/{chunk-6HYAEYQ3.js → chunk-CGTWFEXX.js} +0 -0
  225. /package/dist/{chunk-SDKRRTP6.js → chunk-HFF6YG7R.js} +0 -0
  226. /package/dist/{chunk-N345XXAA.js → chunk-IAPFFVYR.js} +0 -0
  227. /package/dist/{chunk-VJ6HKJMQ.js → chunk-NNEYTOUS.js} +0 -0
  228. /package/dist/{chunk-CU6CYZOI.js → chunk-P2JDWX67.js} +0 -0
  229. /package/dist/{chunk-FUVINDE3.js → chunk-RX2KGETT.js} +0 -0
  230. /package/dist/{chunk-ARETQ22D.js → chunk-YGJTKLGM.js} +0 -0
  231. /package/dist/{core-memory-NYBNXCKZ.js → core-memory-67AVQ3Z7.js} +0 -0
  232. /package/dist/{wiki-acl-RMP5KXYK.js → wiki-acl-AR7RIMRY.js} +0 -0
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  StewardGate
3
- } from "./chunk-J2QQMTCD.js";
3
+ } from "./chunk-COMWI7SO.js";
4
4
  import {
5
5
  listRecentSessionEvents
6
- } from "./chunk-ZAS43I3E.js";
6
+ } from "./chunk-LUCHTCME.js";
7
7
  import {
8
8
  isRerankerAvailable,
9
9
  rerankWithScores
10
- } from "./chunk-THNAZQIH.js";
10
+ } from "./chunk-3SVQ5REQ.js";
11
11
  import {
12
12
  getEntityByName,
13
13
  getEntityNeighbors,
@@ -16,22 +16,22 @@ import {
16
16
  getRelationships,
17
17
  searchEntities
18
18
  } from "./chunk-KH5Y6RR4.js";
19
+ import {
20
+ getToolCapabilityIndex
21
+ } from "./chunk-SNYDRHV3.js";
19
22
  import {
20
23
  isToolAllowed,
21
24
  isToolAllowedForPlan
22
25
  } from "./chunk-E6ORBQHP.js";
23
26
  import {
24
27
  AUTO_WAKE_MAX_RETRIES
25
- } from "./chunk-24KEYEYL.js";
28
+ } from "./chunk-7LIXU3TB.js";
26
29
  import {
27
30
  getCachedLicenseGate
28
31
  } from "./chunk-JZMVLAZ2.js";
29
32
  import {
30
33
  getToolUsageStats
31
- } from "./chunk-ARETQ22D.js";
32
- import {
33
- getToolCapabilityIndex
34
- } from "./chunk-SNYDRHV3.js";
34
+ } from "./chunk-YGJTKLGM.js";
35
35
  import {
36
36
  analyzeBlastRadius,
37
37
  buildCodeContextIndex,
@@ -43,69 +43,69 @@ import {
43
43
  } from "./chunk-UZIJDYDA.js";
44
44
  import {
45
45
  DreamingEngine
46
- } from "./chunk-2EBKU2XN.js";
46
+ } from "./chunk-KWH6H64R.js";
47
47
  import {
48
48
  exportOrchestration,
49
49
  importOrchestration,
50
50
  validatePackage
51
- } from "./chunk-Z7A6DTIN.js";
51
+ } from "./chunk-CJEVAKKC.js";
52
52
  import {
53
53
  runDriftProbes
54
- } from "./chunk-BWHBPDYB.js";
54
+ } from "./chunk-JBUHOWIV.js";
55
55
  import {
56
56
  loadOrchestrationPhase,
57
57
  setOrchestrationPhase
58
58
  } from "./chunk-MBHZDXGN.js";
59
59
  import {
60
60
  createOrRefreshResumeTask
61
- } from "./chunk-NEXKWAVU.js";
61
+ } from "./chunk-7PVUUC3O.js";
62
62
  import {
63
63
  registerCreateReminder
64
- } from "./chunk-YVN2WG5T.js";
64
+ } from "./chunk-BTPXNV5W.js";
65
65
  import {
66
66
  registerListReminders
67
- } from "./chunk-CNCTKOX2.js";
67
+ } from "./chunk-IDCJNL7C.js";
68
68
  import {
69
69
  registerCompleteReminder
70
- } from "./chunk-XPRYBSMJ.js";
70
+ } from "./chunk-JBMZS5WO.js";
71
71
  import {
72
72
  registerDeactivateBehavior
73
- } from "./chunk-4TKI4VW7.js";
73
+ } from "./chunk-ZZBOV6WA.js";
74
74
  import {
75
75
  completeReminder,
76
76
  createReminder,
77
77
  listReminders
78
- } from "./chunk-L6LDDOYW.js";
78
+ } from "./chunk-YENDNLAD.js";
79
79
  import {
80
80
  registerImportConversations
81
- } from "./chunk-QK7R2CUS.js";
81
+ } from "./chunk-4HMKJDPB.js";
82
82
  import {
83
83
  registerSendMessage
84
- } from "./chunk-J2LPDECR.js";
84
+ } from "./chunk-NS7FW3NG.js";
85
85
  import {
86
86
  registerCreateTask
87
- } from "./chunk-X4AZWJP4.js";
87
+ } from "./chunk-AYBC6AYP.js";
88
88
  import {
89
89
  registerListTasks
90
- } from "./chunk-JH7CK57B.js";
90
+ } from "./chunk-YDG343II.js";
91
91
  import {
92
92
  registerUpdateTask
93
- } from "./chunk-M4ERGSIO.js";
93
+ } from "./chunk-Q4MZN62R.js";
94
94
  import {
95
95
  TOKENS_PER_IDLE_MINUTE,
96
96
  countKillsSince,
97
97
  sumTokensSavedSince
98
- } from "./chunk-5NIUTWV4.js";
98
+ } from "./chunk-5KDROSDV.js";
99
99
  import {
100
100
  createSchedule,
101
101
  parseHumanCron
102
- } from "./chunk-NFHSUQ2R.js";
102
+ } from "./chunk-XCGJPZ6H.js";
103
103
  import {
104
104
  status
105
- } from "./chunk-SUQSNH4N.js";
105
+ } from "./chunk-GXU3XRI5.js";
106
106
  import {
107
107
  getAgentSpend
108
- } from "./chunk-PJPPO6EF.js";
108
+ } from "./chunk-NCJNGQUZ.js";
109
109
  import {
110
110
  exportGraphHTML,
111
111
  generateGraphReport
@@ -121,7 +121,7 @@ import {
121
121
  fixShards,
122
122
  formatReport,
123
123
  runAudit
124
- } from "./chunk-Z2EJ234K.js";
124
+ } from "./chunk-RXGTA6YQ.js";
125
125
  import {
126
126
  runHealthCheck
127
127
  } from "./chunk-UWQ3XCDG.js";
@@ -132,41 +132,41 @@ import {
132
132
  } from "./chunk-VI2FJY2M.js";
133
133
  import {
134
134
  renderClientCOOTemplate
135
- } from "./chunk-QUTBXURR.js";
135
+ } from "./chunk-YUQ7GGAL.js";
136
136
  import {
137
137
  deactivateGlobalProcedure,
138
138
  loadGlobalProcedures,
139
139
  storeGlobalProcedure
140
- } from "./chunk-SL7SYDNI.js";
140
+ } from "./chunk-PQBANSH6.js";
141
141
  import {
142
142
  PLATFORM_PROCEDURES
143
- } from "./chunk-5NFBE376.js";
143
+ } from "./chunk-K77WC6HA.js";
144
144
  import {
145
145
  clearCloudReuploadRequired,
146
146
  cloudSync,
147
147
  getCloudReuploadRequired,
148
148
  markCloudReuploadRequired
149
- } from "./chunk-5SYO2FD7.js";
149
+ } from "./chunk-627ZOPZQ.js";
150
150
  import {
151
151
  createARecord
152
152
  } from "./chunk-X2Z5GT3V.js";
153
153
  import {
154
154
  findSimilarTrajectories,
155
155
  hashSignature
156
- } from "./chunk-CKTFH5RQ.js";
156
+ } from "./chunk-ES5JM6V2.js";
157
157
  import {
158
158
  deactivateBehavior,
159
159
  listBehaviorsByDomain,
160
160
  listSharedSkills,
161
161
  reactivateBehavior,
162
162
  storeBehavior
163
- } from "./chunk-2QRT6G4V.js";
163
+ } from "./chunk-JHFXCYZP.js";
164
164
  import {
165
165
  countUnconsolidated,
166
166
  groupMemories,
167
167
  runConsolidation,
168
168
  selectUnconsolidated
169
- } from "./chunk-CFG73TVV.js";
169
+ } from "./chunk-WQXJIMBO.js";
170
170
  import {
171
171
  embed
172
172
  } from "./chunk-EPWDTS2Q.js";
@@ -177,17 +177,17 @@ import {
177
177
  } from "./chunk-UODVZGBQ.js";
178
178
  import {
179
179
  updateTask
180
- } from "./chunk-ZPZFR3EN.js";
180
+ } from "./chunk-VK5IBXXT.js";
181
181
  import {
182
182
  fastDbInit
183
- } from "./chunk-CU6CYZOI.js";
183
+ } from "./chunk-P2JDWX67.js";
184
184
  import {
185
185
  MAX_CONCURRENT_WORKERS
186
- } from "./chunk-DGZJXYK7.js";
186
+ } from "./chunk-UISUGXJU.js";
187
187
  import {
188
188
  hybridSearch,
189
189
  recentRecords
190
- } from "./chunk-H3UGSTZH.js";
190
+ } from "./chunk-QXKWSRUZ.js";
191
191
  import {
192
192
  attachDocumentMetadata,
193
193
  flushBatch,
@@ -195,10 +195,10 @@ import {
195
195
  reserveVersions,
196
196
  vectorToBlob,
197
197
  writeMemory
198
- } from "./chunk-L3GKFCXW.js";
198
+ } from "./chunk-NQU2RTCP.js";
199
199
  import {
200
200
  getActiveAgent
201
- } from "./chunk-ZOPLM7G3.js";
201
+ } from "./chunk-IQNT6KAE.js";
202
202
  import {
203
203
  getMySession,
204
204
  resolveExeSession,
@@ -206,13 +206,13 @@ import {
206
206
  sessionScopeFilter,
207
207
  updateTaskStatus,
208
208
  writeCheckpoint
209
- } from "./chunk-PBA32J2M.js";
209
+ } from "./chunk-ENWFSMOS.js";
210
210
  import {
211
211
  listSessions
212
- } from "./chunk-2UD2P2LO.js";
212
+ } from "./chunk-NJS4GRIR.js";
213
213
  import {
214
214
  recordOrchestrationEventBestEffort
215
- } from "./chunk-MJMJMHFC.js";
215
+ } from "./chunk-2O5GJFYQ.js";
216
216
  import {
217
217
  DEFAULT_MODELS,
218
218
  KNOWN_RUNTIMES,
@@ -229,7 +229,7 @@ import {
229
229
  assertEmployeeLimit,
230
230
  assertFeature,
231
231
  assertMemoryLimit
232
- } from "./chunk-VXVI75ED.js";
232
+ } from "./chunk-LXP6VRFH.js";
233
233
  import {
234
234
  getProjectName
235
235
  } from "./chunk-OPU3NYOO.js";
@@ -242,7 +242,7 @@ import {
242
242
  isScheduledTrigger,
243
243
  loadTriggers,
244
244
  sanitizeParam
245
- } from "./chunk-MBEF2YKQ.js";
245
+ } from "./chunk-A4TPCHMA.js";
246
246
  import {
247
247
  pushConversationToCRM
248
248
  } from "./chunk-ONKIWA3R.js";
@@ -262,7 +262,7 @@ import {
262
262
  loadEmployeesSync,
263
263
  saveEmployees,
264
264
  updateIdentity
265
- } from "./chunk-VTLUUTWI.js";
265
+ } from "./chunk-2LYJTK47.js";
266
266
  import {
267
267
  getMasterKey
268
268
  } from "./chunk-KDJRFJDL.js";
@@ -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-JD6BCCFZ.js");
1456
+ const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-6WX7GZBH.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();
@@ -1563,7 +1563,7 @@ function registerMemory(server) {
1563
1563
  return handleSupersede(input);
1564
1564
  }
1565
1565
  if (action === "update_working_memory" || action === "get_working_memory") {
1566
- const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-JD6BCCFZ.js");
1566
+ const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-6WX7GZBH.js");
1567
1567
  const { agentId } = getActiveAgent2();
1568
1568
  const { readWorkingMemory, writeWorkingMemory, WORKING_MEMORY_MAX_BYTES } = await import("./working-memory-PKUUMWZK.js");
1569
1569
  if (action === "get_working_memory") {
@@ -1580,9 +1580,9 @@ function registerMemory(server) {
1580
1580
  }
1581
1581
  }
1582
1582
  if (action === "core_get" || action === "core_set" || action === "core_delete") {
1583
- const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-JD6BCCFZ.js");
1583
+ const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-6WX7GZBH.js");
1584
1584
  const { agentId } = getActiveAgent2();
1585
- const { getCoreMemory, setCoreMemory, deleteCoreMemory, formatCoreMemoryBlock } = await import("./core-memory-NYBNXCKZ.js");
1585
+ const { getCoreMemory, setCoreMemory, deleteCoreMemory, formatCoreMemoryBlock } = await import("./core-memory-67AVQ3Z7.js");
1586
1586
  if (action === "core_get") {
1587
1587
  const entries = await getCoreMemory(agentId);
1588
1588
  const block = formatCoreMemoryBlock(entries);
@@ -1955,7 +1955,7 @@ function registerCloseTask(server) {
1955
1955
  async ({ task_id, result: result3, status: status2 }) => {
1956
1956
  const agent = getActiveAgent();
1957
1957
  try {
1958
- const { StewardGate: StewardGate2 } = await import("./steward-gate-H2VKZNW2.js");
1958
+ const { StewardGate: StewardGate2 } = await import("./steward-gate-TAD7GEVL.js");
1959
1959
  const steward = new StewardGate2();
1960
1960
  const gateDecision = await steward.checkAuthority(agent.agentId || "unknown", "close_task", task_id);
1961
1961
  if (!gateDecision.allowed) {
@@ -2316,7 +2316,7 @@ function registerResumeEmployee(server) {
2316
2316
  };
2317
2317
  }
2318
2318
  try {
2319
- const { isTmuxSessionAlive } = await import("./tasks-crud-ZGQZPZAM.js");
2319
+ const { isTmuxSessionAlive } = await import("./tasks-crud-OD75EH2G.js");
2320
2320
  const now = (/* @__PURE__ */ new Date()).toISOString();
2321
2321
  for (const row of openTasks.rows) {
2322
2322
  const status2 = String(row.status);
@@ -2344,7 +2344,7 @@ function registerResumeEmployee(server) {
2344
2344
  }
2345
2345
  let checkpointInfo = "";
2346
2346
  try {
2347
- const { readLatestCheckpoint } = await import("./tasks-crud-ZGQZPZAM.js");
2347
+ const { readLatestCheckpoint } = await import("./tasks-crud-OD75EH2G.js");
2348
2348
  const checkpoint = await readLatestCheckpoint(agent_id);
2349
2349
  if (checkpoint) {
2350
2350
  const filesTouched = checkpoint.files_touched?.length > 0 ? checkpoint.files_touched.join(", ") : "none";
@@ -2704,7 +2704,7 @@ function registerTask(server) {
2704
2704
  const missing2 = missingRequiredFields2(args, REQUIRED_FIELDS2.create_group);
2705
2705
  if (missing2.length > 0) return errorResult2(`task action "create_group" missing required field(s): ${missing2.join(", ")}`);
2706
2706
  try {
2707
- const { createTaskGroup } = await import("./tasks-crud-ZGQZPZAM.js");
2707
+ const { createTaskGroup } = await import("./tasks-crud-OD75EH2G.js");
2708
2708
  const group = await createTaskGroup({
2709
2709
  title: args.title,
2710
2710
  coordinator: args.coordinator,
@@ -2723,7 +2723,7 @@ function registerTask(server) {
2723
2723
  const missing2 = missingRequiredFields2(args, REQUIRED_FIELDS2.group_status);
2724
2724
  if (missing2.length > 0) return errorResult2(`task action "group_status" missing required field(s): ${missing2.join(", ")}`);
2725
2725
  try {
2726
- const { getGroupStatus } = await import("./tasks-crud-ZGQZPZAM.js");
2726
+ const { getGroupStatus } = await import("./tasks-crud-OD75EH2G.js");
2727
2727
  const status2 = await getGroupStatus(args.group_id);
2728
2728
  return { content: [{ type: "text", text: JSON.stringify(status2, null, 2) }] };
2729
2729
  } catch (err) {
@@ -2735,7 +2735,7 @@ function registerTask(server) {
2735
2735
  const missing2 = missingRequiredFields2(args, REQUIRED_FIELDS2.group_results);
2736
2736
  if (missing2.length > 0) return errorResult2(`task action "group_results" missing required field(s): ${missing2.join(", ")}`);
2737
2737
  try {
2738
- const { getGroupResults } = await import("./tasks-crud-ZGQZPZAM.js");
2738
+ const { getGroupResults } = await import("./tasks-crud-OD75EH2G.js");
2739
2739
  const results = await getGroupResults(args.group_id);
2740
2740
  return { content: [{ type: "text", text: JSON.stringify(results, null, 2) }] };
2741
2741
  } catch (err) {
@@ -2963,7 +2963,7 @@ function registerMessage(server) {
2963
2963
  if (msgType && msgPayload) {
2964
2964
  try {
2965
2965
  const { buildTypedMessage, serializeMessage } = await import("./typed-messages-TKDGVPHS.js");
2966
- const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-JD6BCCFZ.js");
2966
+ const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-6WX7GZBH.js");
2967
2967
  const { sendMessage } = await import("./lib/messaging.js");
2968
2968
  const { agentId } = getActiveAgent2();
2969
2969
  const envelope = buildTypedMessage({
@@ -3580,8 +3580,8 @@ function registerIngestDocument(server) {
3580
3580
  },
3581
3581
  async (input) => {
3582
3582
  try {
3583
- const { assertFeature: assertFeature2 } = await import("./plan-limits-4JH2GWCP.js");
3584
- const { assertMemoryLimit: assertMemoryLimit2 } = await import("./plan-limits-4JH2GWCP.js");
3583
+ const { assertFeature: assertFeature2 } = await import("./plan-limits-H65VL6LC.js");
3584
+ const { assertMemoryLimit: assertMemoryLimit2 } = await import("./plan-limits-H65VL6LC.js");
3585
3585
  await assertFeature2("wiki");
3586
3586
  await assertMemoryLimit2();
3587
3587
  const result3 = await ingestDocument(input);
@@ -3652,8 +3652,8 @@ function registerPurgeDocument(server) {
3652
3652
  },
3653
3653
  async ({ document_id }) => {
3654
3654
  try {
3655
- const { StewardGate: StewardGate2 } = await import("./steward-gate-H2VKZNW2.js");
3656
- const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-JD6BCCFZ.js");
3655
+ const { StewardGate: StewardGate2 } = await import("./steward-gate-TAD7GEVL.js");
3656
+ const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-6WX7GZBH.js");
3657
3657
  const steward = new StewardGate2();
3658
3658
  const agent = getActiveAgent2();
3659
3659
  const gateDecision = await steward.checkAuthority(agent.agentId || "unknown", "purge_document", document_id);
@@ -4847,12 +4847,12 @@ function registerExportGraph(server) {
4847
4847
  }
4848
4848
  const html = await exportGraphHTML(client);
4849
4849
  const fs = await import("fs");
4850
- const path19 = await import("path");
4850
+ const path20 = await import("path");
4851
4851
  const os5 = await import("os");
4852
- const outDir = path19.join(os5.homedir(), ".exe-os", "exports");
4852
+ const outDir = path20.join(os5.homedir(), ".exe-os", "exports");
4853
4853
  fs.mkdirSync(outDir, { recursive: true });
4854
4854
  const timestamp = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-").slice(0, 19);
4855
- const filePath = path19.join(outDir, `graph-${timestamp}.html`);
4855
+ const filePath = path20.join(outDir, `graph-${timestamp}.html`);
4856
4856
  fs.writeFileSync(filePath, html, "utf-8");
4857
4857
  return {
4858
4858
  content: [
@@ -4898,8 +4898,8 @@ function registerMergeEntities(server) {
4898
4898
  },
4899
4899
  async ({ source_name, source_type, target_name, target_type }) => {
4900
4900
  try {
4901
- const { StewardGate: StewardGate2 } = await import("./steward-gate-H2VKZNW2.js");
4902
- const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-JD6BCCFZ.js");
4901
+ const { StewardGate: StewardGate2 } = await import("./steward-gate-TAD7GEVL.js");
4902
+ const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-6WX7GZBH.js");
4903
4903
  const steward = new StewardGate2();
4904
4904
  const agent = getActiveAgent2();
4905
4905
  const gateDecision = await steward.checkAuthority(agent.agentId || "unknown", "merge_entities", `${source_name}\u2192${target_name}`);
@@ -5777,7 +5777,7 @@ async function getAgentSessionLoad() {
5777
5777
  return { sessions: [], totalLive: 0, busySessions: 0, idleSessions: 0 };
5778
5778
  }
5779
5779
  const { getClient: getClient2 } = await import("./lib/database.js");
5780
- const { sessionScopeFilter: sessionScopeFilter2 } = await import("./task-scope-YQ6O3DIE.js");
5780
+ const { sessionScopeFilter: sessionScopeFilter2 } = await import("./task-scope-AYK6BVC7.js");
5781
5781
  const client = getClient2();
5782
5782
  const scope = sessionScopeFilter2();
5783
5783
  for (const s of liveAgentSessions) {
@@ -5902,7 +5902,7 @@ ${mode} Applying repairs...
5902
5902
  `];
5903
5903
  if (!isDryRun) {
5904
5904
  try {
5905
- const { createBackup: createBackup2 } = await import("./db-backup-C44Q44WQ.js");
5905
+ const { createBackup: createBackup2 } = await import("./db-backup-JEHRFLYW.js");
5906
5906
  const backupPath = createBackup2("pre-fix");
5907
5907
  if (backupPath) {
5908
5908
  fixLog.push(` Backup created: ${backupPath.split("/").pop()}`);
@@ -6808,9 +6808,9 @@ var HostingerApiClient = class {
6808
6808
  }
6809
6809
  this.lastRequestTime = Date.now();
6810
6810
  }
6811
- async request(method, path19, body) {
6811
+ async request(method, path20, body) {
6812
6812
  await this.rateLimit();
6813
- const url = `${this.baseUrl}${path19}`;
6813
+ const url = `${this.baseUrl}${path20}`;
6814
6814
  const headers = {
6815
6815
  Authorization: `Bearer ${this.apiKey}`,
6816
6816
  "Content-Type": "application/json",
@@ -7427,7 +7427,7 @@ function registerCreateTrigger(server) {
7427
7427
  }
7428
7428
  },
7429
7429
  async ({ name, event, conditions, actions, project, enabled, schedule, query }) => {
7430
- const { assertFeature: assertFeature2 } = await import("./plan-limits-4JH2GWCP.js");
7430
+ const { assertFeature: assertFeature2 } = await import("./plan-limits-H65VL6LC.js");
7431
7431
  const gatedActions = {
7432
7432
  send_whatsapp: "external_agents",
7433
7433
  update_wiki: "wiki"
@@ -8336,7 +8336,7 @@ function registerConfig(server) {
8336
8336
  const existing = loadEmployeesSync2();
8337
8337
  if (existing.some((e) => e.name === employeeName)) return errorResult8(`Employee "${employeeName}" already exists.`);
8338
8338
  try {
8339
- const { assertEmployeeLimit: assertEmployeeLimit2 } = await import("./plan-limits-4JH2GWCP.js");
8339
+ const { assertEmployeeLimit: assertEmployeeLimit2 } = await import("./plan-limits-H65VL6LC.js");
8340
8340
  await assertEmployeeLimit2();
8341
8341
  } catch (e) {
8342
8342
  return errorResult8(e instanceof Error ? e.message : "Employee limit reached.");
@@ -8352,10 +8352,10 @@ function registerConfig(server) {
8352
8352
  const { getTemplate: getIdentityTemplate, getTemplateForTitle } = await import("./lib/identity-templates.js");
8353
8353
  const { identityPath } = await import("./lib/identity.js");
8354
8354
  const { existsSync: existsSync10, mkdirSync: mkdirSync4, writeFileSync: writeFileSync5 } = await import("fs");
8355
- const path19 = await import("path");
8355
+ const path20 = await import("path");
8356
8356
  const template = getIdentityTemplate(role) ?? getTemplateForTitle(role);
8357
8357
  const idPath = identityPath(employeeName);
8358
- const dir = path19.dirname(idPath);
8358
+ const dir = path20.dirname(idPath);
8359
8359
  if (!existsSync10(dir)) mkdirSync4(dir, { recursive: true });
8360
8360
  if (template) {
8361
8361
  writeFileSync5(idPath, template.replace(/^agent_id: \w+/m, `agent_id: ${employeeName}`), "utf-8");
@@ -8377,7 +8377,7 @@ You are ${employeeName}. Role: ${role}.`, "utf-8");
8377
8377
  }
8378
8378
  try {
8379
8379
  const { generateSessionWrappers } = await import("./lib/session-wrappers.js");
8380
- const { resolvePackageRoot } = await import("./installer-3MSU3GSG.js");
8380
+ const { resolvePackageRoot } = await import("./installer-N5XZAFE4.js");
8381
8381
  generateSessionWrappers(resolvePackageRoot());
8382
8382
  } catch {
8383
8383
  }
@@ -8413,7 +8413,7 @@ function registerListWikiPages(server) {
8413
8413
  }
8414
8414
  },
8415
8415
  async ({ workspace, folder }) => {
8416
- const { assertFeature: assertFeature2 } = await import("./plan-limits-4JH2GWCP.js");
8416
+ const { assertFeature: assertFeature2 } = await import("./plan-limits-H65VL6LC.js");
8417
8417
  await assertFeature2("wiki");
8418
8418
  const apiUrl = process.env.EXE_WIKI_API_URL;
8419
8419
  const apiKey = process.env.EXE_WIKI_API_KEY;
@@ -8513,7 +8513,7 @@ function registerGetWikiPage(server) {
8513
8513
  }
8514
8514
  },
8515
8515
  async ({ workspace, document_id, title }) => {
8516
- const { assertFeature: assertFeature2 } = await import("./plan-limits-4JH2GWCP.js");
8516
+ const { assertFeature: assertFeature2 } = await import("./plan-limits-H65VL6LC.js");
8517
8517
  await assertFeature2("wiki");
8518
8518
  const apiUrl = process.env.EXE_WIKI_API_URL;
8519
8519
  const apiKey = process.env.EXE_WIKI_API_KEY;
@@ -8691,10 +8691,10 @@ async function handleWikiSearch(input) {
8691
8691
  const userId = input.user_id;
8692
8692
  if (!workspace) return errorResult9('wiki action "search" requires workspace');
8693
8693
  if (!query) return errorResult9('wiki action "search" requires query');
8694
- const { assertFeature: assertFeature2 } = await import("./plan-limits-4JH2GWCP.js");
8694
+ const { assertFeature: assertFeature2 } = await import("./plan-limits-H65VL6LC.js");
8695
8695
  await assertFeature2("wiki");
8696
8696
  if (userId) {
8697
- const { checkWikiAccess } = await import("./wiki-acl-RMP5KXYK.js");
8697
+ const { checkWikiAccess } = await import("./wiki-acl-AR7RIMRY.js");
8698
8698
  const { allowed } = await checkWikiAccess(String(userId), String(workspace), "read");
8699
8699
  if (!allowed) {
8700
8700
  return errorResult9(`Access denied: user "${userId}" does not have read access to workspace "${workspace}"`);
@@ -8770,7 +8770,7 @@ function registerWiki(server) {
8770
8770
  if (!legacyToolName) return errorResult9(`Unknown wiki action: ${String(input.action)}`);
8771
8771
  const { action: _action, user_id, ...legacyArgs } = input;
8772
8772
  if (user_id && legacyArgs.workspace) {
8773
- const { checkWikiAccess } = await import("./wiki-acl-RMP5KXYK.js");
8773
+ const { checkWikiAccess } = await import("./wiki-acl-AR7RIMRY.js");
8774
8774
  const { allowed } = await checkWikiAccess(
8775
8775
  String(user_id),
8776
8776
  String(legacyArgs.workspace),
@@ -9097,7 +9097,7 @@ Use /exe-forget to remove any that this supersedes.`;
9097
9097
  return { content: [{ type: "text", text: `Behavior not found: ${behavior_id}` }], isError: true };
9098
9098
  }
9099
9099
  const row2 = result4.rows[0];
9100
- const { reactivateBehavior: reactivateBehavior2 } = await import("./behaviors-I7JQLV6G.js");
9100
+ const { reactivateBehavior: reactivateBehavior2 } = await import("./behaviors-DH7XFONJ.js");
9101
9101
  const wasReactivated = await reactivateBehavior2(behavior_id);
9102
9102
  if (!wasReactivated) {
9103
9103
  return { content: [{ type: "text", text: `Behavior ${behavior_id} is already active.` }] };
@@ -10036,7 +10036,7 @@ function registerWorkflowTool(server) {
10036
10036
  getWorkflowInstance,
10037
10037
  listWorkflowInstances,
10038
10038
  approveWorkflowStep
10039
- } = await import("./workflow-engine-YB7OOSAT.js");
10039
+ } = await import("./workflow-engine-4MQJI5F2.js");
10040
10040
  try {
10041
10041
  switch (input.action) {
10042
10042
  case "create_workflow": {
@@ -10469,7 +10469,7 @@ function registerCreateBugReport(server) {
10469
10469
  const version = package_version ?? "unknown";
10470
10470
  let metricsSnapshot = "";
10471
10471
  try {
10472
- const { getOrchestrationMetrics, formatOrchestrationMetrics } = await import("./orchestration-events-PCGTHJ67.js");
10472
+ const { getOrchestrationMetrics, formatOrchestrationMetrics } = await import("./orchestration-events-TEYCD6GO.js");
10473
10473
  const sinceIso = new Date(Date.now() - 60 * 60 * 1e3).toISOString();
10474
10474
  const metrics = await getOrchestrationMetrics({ sinceIso });
10475
10475
  if (metrics.totalEvents > 0) {
@@ -11243,6 +11243,73 @@ function registerSupportTools(server) {
11243
11243
  }
11244
11244
  }
11245
11245
  );
11246
+ server.registerTool(
11247
+ "list_my_reviews",
11248
+ {
11249
+ title: "My Reviews",
11250
+ description: "List reviews you've filed, scoped to your license. Shows status (open/in_review/approved/merged/closed/rejected), priority, and resolution.",
11251
+ inputSchema: {
11252
+ status: z89.enum(["all", "open", "in_review", "approved", "merged", "closed", "rejected"]).default("all").describe("Filter by status. Default: all"),
11253
+ limit: z89.number().min(1).max(50).default(25).describe("Max results")
11254
+ }
11255
+ },
11256
+ async ({ status: status2, limit }) => {
11257
+ const licenseKey = loadLicense();
11258
+ const licenseToken = readCachedLicenseToken();
11259
+ if (!licenseKey && !licenseToken) {
11260
+ return {
11261
+ content: [{ type: "text", text: "No license key found. Run `exe-os setup` or `exe-os cloud setup` first." }],
11262
+ isError: true
11263
+ };
11264
+ }
11265
+ const endpoint2 = new URL("https://api.askexe.com/v1/support/my-reviews");
11266
+ endpoint2.searchParams.set("status", status2);
11267
+ endpoint2.searchParams.set("limit", String(limit));
11268
+ const headers = { "content-type": "application/json" };
11269
+ if (licenseKey) {
11270
+ headers["authorization"] = `Bearer ${licenseKey}`;
11271
+ headers["x-exe-license-key"] = licenseKey;
11272
+ }
11273
+ if (licenseToken) headers["x-exe-license-token"] = licenseToken;
11274
+ try {
11275
+ const res = await fetch(endpoint2.toString(), { method: "GET", headers, signal: AbortSignal.timeout(15e3) });
11276
+ if (!res.ok) {
11277
+ const body = await res.text().catch(() => "");
11278
+ return {
11279
+ content: [{ type: "text", text: `Failed to fetch reviews: HTTP ${res.status}${body ? ` \u2014 ${body}` : ""}` }],
11280
+ isError: true
11281
+ };
11282
+ }
11283
+ const data = await res.json();
11284
+ if (data.count === 0) {
11285
+ return {
11286
+ content: [{ type: "text", text: `No reviews found${status2 !== "all" ? ` with status '${status2}'` : ""}.` }],
11287
+ structuredContent: { items: [], count: 0 }
11288
+ };
11289
+ }
11290
+ const lines = [`Reviews (${data.count}):`, ""];
11291
+ for (const r of data.items) {
11292
+ const priIcon = r.priority === "p0" ? "\u{1F534}" : r.priority === "p1" ? "\u{1F534}" : r.priority === "p2" ? "\u{1F7E0}" : "\u{1F7E2}";
11293
+ const statusIcon = r.status === "merged" ? "\u2705" : r.status === "approved" ? "\u2611\uFE0F" : r.status === "in_review" ? "\u{1F50D}" : r.status === "rejected" ? "\u26D4" : r.status === "closed" ? "\u2611\uFE0F" : "\u{1F535}";
11294
+ lines.push(`${priIcon} ${r.priority.toUpperCase()} ${statusIcon} ${r.status} \u2014 ${r.title}`);
11295
+ lines.push(` ID: ${r.id} | Filed: ${r.created_at?.slice(0, 10) ?? "?"}`);
11296
+ if (r.pr_url) lines.push(` \u{1F517} PR: ${r.pr_url}`);
11297
+ if (r.resolution) lines.push(` \u{1F4DD} Resolution: ${r.resolution}`);
11298
+ if (r.response_notes) lines.push(` \u{1F4DD} AskExe: ${r.response_notes}`);
11299
+ lines.push("");
11300
+ }
11301
+ return {
11302
+ content: [{ type: "text", text: lines.join("\n") }],
11303
+ structuredContent: data
11304
+ };
11305
+ } catch (err) {
11306
+ return {
11307
+ content: [{ type: "text", text: `Error fetching reviews: ${err instanceof Error ? err.message : String(err)}` }],
11308
+ isError: true
11309
+ };
11310
+ }
11311
+ }
11312
+ );
11246
11313
  }
11247
11314
 
11248
11315
  // src/mcp/tools/cli-parity.ts
@@ -11545,7 +11612,7 @@ function registerCodeContext(server) {
11545
11612
  const index = buildCodeContextIndex(opts);
11546
11613
  let graphExtract;
11547
11614
  try {
11548
- const { autoExtractGraphEntities } = await import("./graph-auto-extract-I37N7WQN.js");
11615
+ const { autoExtractGraphEntities } = await import("./graph-auto-extract-5ZD4AUSB.js");
11549
11616
  graphExtract = await autoExtractGraphEntities(opts.projectRoot);
11550
11617
  } catch {
11551
11618
  }
@@ -11792,6 +11859,70 @@ function registerTriageFeatureRequest(server) {
11792
11859
  }
11793
11860
  );
11794
11861
  }
11862
+ var REVIEW_STATUS = z93.enum(["open", "in_review", "approved", "merged", "closed", "rejected"]);
11863
+ function reviewEndpoint() {
11864
+ return endpoint().replace(/\/bug-reports\/?$/, "/reviews");
11865
+ }
11866
+ function registerListReviews(server) {
11867
+ server.registerTool(
11868
+ "list_reviews",
11869
+ {
11870
+ title: "List Reviews",
11871
+ description: "AskExe-internal only: list incoming review requests from the support inbox.",
11872
+ inputSchema: {
11873
+ status: z93.enum(["all", "open", "in_review", "approved", "merged", "closed", "rejected"]).default("open"),
11874
+ priority: z93.enum(["p0", "p1", "p2", "p3"]).optional(),
11875
+ limit: z93.number().int().min(1).max(100).default(25)
11876
+ }
11877
+ },
11878
+ async ({ status: status2, priority, limit }) => {
11879
+ const url = new URL(reviewEndpoint());
11880
+ url.searchParams.set("status", status2);
11881
+ url.searchParams.set("limit", String(limit));
11882
+ if (priority) url.searchParams.set("priority", priority);
11883
+ const data = await requestJson(url.toString());
11884
+ return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
11885
+ }
11886
+ );
11887
+ }
11888
+ function registerGetReview(server) {
11889
+ server.registerTool(
11890
+ "get_review",
11891
+ {
11892
+ title: "Get Review",
11893
+ description: "AskExe-internal only: fetch one review with full payload.",
11894
+ inputSchema: { id: z93.string().min(8) }
11895
+ },
11896
+ async ({ id }) => {
11897
+ const data = await requestJson(`${reviewEndpoint()}/${encodeURIComponent(id)}`);
11898
+ return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
11899
+ }
11900
+ );
11901
+ }
11902
+ function registerTriageReview(server) {
11903
+ server.registerTool(
11904
+ "triage_review",
11905
+ {
11906
+ title: "Triage Review",
11907
+ description: "AskExe-internal only: update review status, response notes, and resolution.",
11908
+ inputSchema: {
11909
+ id: z93.string().min(8),
11910
+ status: REVIEW_STATUS.optional(),
11911
+ response_notes: z93.string().optional(),
11912
+ add_note: z93.string().optional().describe("Append a timestamped progress note without changing status or replacing response_notes"),
11913
+ resolution: z93.string().optional(),
11914
+ pr_url: z93.string().optional()
11915
+ }
11916
+ },
11917
+ async ({ id, status: status2, response_notes, add_note, resolution, pr_url }) => {
11918
+ const data = await requestJson(`${reviewEndpoint()}/${encodeURIComponent(id)}`, {
11919
+ method: "PATCH",
11920
+ body: JSON.stringify({ status: status2, response_notes, add_note, resolution, pr_url })
11921
+ });
11922
+ return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
11923
+ }
11924
+ );
11925
+ }
11795
11926
 
11796
11927
  // src/mcp/tools/decision.ts
11797
11928
  import { z as z94 } from "zod";
@@ -11881,7 +12012,182 @@ function registerSession(server) {
11881
12012
  }
11882
12013
 
11883
12014
  // src/mcp/tools/support-consolidated.ts
12015
+ import { z as z97 } from "zod";
12016
+
12017
+ // src/mcp/tools/create-review.ts
11884
12018
  import { z as z96 } from "zod";
12019
+ import crypto7 from "crypto";
12020
+ import { mkdir as mkdir4, writeFile as writeFile6 } from "fs/promises";
12021
+ import path19 from "path";
12022
+ var PRIORITY2 = z96.enum(["p0", "p1", "p2", "p3"]);
12023
+ function slugify3(input) {
12024
+ return input.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "").slice(0, 80) || "review";
12025
+ }
12026
+ function section3(title, body) {
12027
+ return `## ${title}
12028
+
12029
+ ${body?.trim() || "Not provided"}`;
12030
+ }
12031
+ function buildMarkdown3(input) {
12032
+ return [
12033
+ `# Review \u2014 ${input.title}`,
12034
+ "",
12035
+ `id: ${input.id}`,
12036
+ `priority: ${input.priority}`,
12037
+ `product: ${input.product}`,
12038
+ `source: ${input.source ?? "self-improve"}`,
12039
+ `filed_by: ${input.agentId} (${input.agentRole})`,
12040
+ `package_version: ${input.packageVersion}`,
12041
+ `project: ${input.projectName ?? "unknown"}`,
12042
+ `created_at: ${(/* @__PURE__ */ new Date()).toISOString()}`,
12043
+ ...input.prUrl ? [`pr_url: ${input.prUrl}`] : [],
12044
+ "",
12045
+ section3("Description", input.description)
12046
+ ].join("\n");
12047
+ }
12048
+ async function maybeSendUpstream3(payload) {
12049
+ const config = await loadConfig();
12050
+ const routerUrl = process.env.API_ROUTER_URL?.replace(/\/+$/, "");
12051
+ const endpoint2 = config.support?.reviewEndpoint || process.env.EXE_REVIEW_ENDPOINT || (routerUrl ? `${routerUrl}/v1/support/reviews` : "https://api.askexe.com/v1/support/reviews");
12052
+ const token = config.support?.reviewToken || process.env.EXE_REVIEW_TOKEN;
12053
+ const licenseKey = loadLicense() || process.env.EXE_LICENSE_KEY || config.cloud?.apiKey;
12054
+ const licenseToken = readCachedLicenseToken();
12055
+ if (!endpoint2) {
12056
+ return "not_configured";
12057
+ }
12058
+ try {
12059
+ const parsed = new URL(endpoint2);
12060
+ if (parsed.protocol !== "https:" && !["localhost", "127.0.0.1", "::1"].includes(parsed.hostname)) {
12061
+ return "failed: insecure endpoint rejected";
12062
+ }
12063
+ const response = await fetch(parsed, {
12064
+ method: "POST",
12065
+ headers: {
12066
+ "content-type": "application/json",
12067
+ ...token ? { authorization: `Bearer ${token}` } : {},
12068
+ ...licenseKey ? { "x-exe-license-key": licenseKey } : {},
12069
+ ...licenseToken ? { "x-exe-license-token": licenseToken } : {}
12070
+ },
12071
+ body: JSON.stringify(payload),
12072
+ signal: AbortSignal.timeout(1e4)
12073
+ });
12074
+ if (!response.ok) return `failed: HTTP ${response.status}`;
12075
+ return "sent";
12076
+ } catch (err) {
12077
+ return `failed: ${err instanceof Error ? err.message : String(err)}`;
12078
+ }
12079
+ }
12080
+ function registerCreateReview(server) {
12081
+ server.registerTool(
12082
+ "create_review",
12083
+ {
12084
+ title: "Create Review",
12085
+ description: "File a review request (code review, self-improvement findings, PR review needs). Writes a local report, stores memory, and optionally sends to AskExe support.",
12086
+ inputSchema: {
12087
+ title: z96.string().min(3).describe("Short descriptive title"),
12088
+ description: z96.string().optional().describe("What needs review and why"),
12089
+ priority: PRIORITY2.default("p1").describe("p0 critical -> p3 low"),
12090
+ source: z96.string().optional().describe("Source: self-improve, manual, ci, etc."),
12091
+ pr_url: z96.string().optional().describe("PR URL if applicable"),
12092
+ product: z96.string().optional().describe("Product: exe-os (default), exe-create, exe-wiki, exe-gateway, exe-crm, exe-build"),
12093
+ package_version: z96.string().optional().describe("Installed package version"),
12094
+ project_name: z96.string().optional().describe("Project/customer context"),
12095
+ send_upstream: z96.boolean().default(true).describe("Attempt to POST to configured AskExe support endpoint")
12096
+ }
12097
+ },
12098
+ async ({
12099
+ title,
12100
+ description,
12101
+ priority,
12102
+ source,
12103
+ pr_url,
12104
+ product,
12105
+ package_version,
12106
+ project_name,
12107
+ send_upstream
12108
+ }) => {
12109
+ const { agentId, agentRole } = getActiveAgent();
12110
+ const id = crypto7.randomUUID();
12111
+ const resolvedProduct = product ?? "exe-os";
12112
+ const version = package_version ?? "unknown";
12113
+ const markdown = buildMarkdown3({
12114
+ id,
12115
+ title,
12116
+ priority,
12117
+ agentId,
12118
+ agentRole,
12119
+ product: resolvedProduct,
12120
+ packageVersion: version,
12121
+ description,
12122
+ source,
12123
+ prUrl: pr_url,
12124
+ projectName: project_name
12125
+ });
12126
+ const outDir = path19.join(EXE_AI_DIR, "reviews");
12127
+ await mkdir4(outDir, { recursive: true });
12128
+ const reportPath = path19.join(outDir, `${(/* @__PURE__ */ new Date()).toISOString().slice(0, 10)}-${slugify3(title)}-${id.slice(0, 8)}.md`);
12129
+ await writeFile6(reportPath, markdown, "utf-8");
12130
+ let vector = null;
12131
+ try {
12132
+ vector = await embed(markdown);
12133
+ } catch {
12134
+ vector = null;
12135
+ }
12136
+ await writeMemory({
12137
+ id,
12138
+ agent_id: agentId,
12139
+ agent_role: agentRole,
12140
+ session_id: process.env.SESSION_ID ?? "manual",
12141
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
12142
+ tool_name: "create_review",
12143
+ project_name: project_name ?? "support",
12144
+ has_error: false,
12145
+ raw_text: markdown,
12146
+ vector,
12147
+ source_path: reportPath,
12148
+ source_type: "review",
12149
+ memory_type: "review",
12150
+ tier: 1,
12151
+ importance: priority === "p0" ? 10 : priority === "p1" ? 9 : priority === "p2" ? 7 : 5,
12152
+ intent: "review",
12153
+ domain: "support",
12154
+ file_paths: null
12155
+ });
12156
+ await flushBatch();
12157
+ const upstreamPayload = {
12158
+ id,
12159
+ title,
12160
+ description,
12161
+ priority,
12162
+ source: source ?? "self-improve",
12163
+ pr_url,
12164
+ product: resolvedProduct,
12165
+ package_version: version,
12166
+ project_name,
12167
+ agent_id: agentId
12168
+ };
12169
+ for (const key of Object.keys(upstreamPayload)) {
12170
+ if (upstreamPayload[key] === void 0) delete upstreamPayload[key];
12171
+ }
12172
+ const upstreamStatus = send_upstream ? await maybeSendUpstream3(upstreamPayload) : "skipped";
12173
+ return {
12174
+ content: [
12175
+ {
12176
+ type: "text",
12177
+ text: `Review created.
12178
+ ID: ${id}
12179
+ Priority: ${priority}
12180
+ Local report: ${reportPath}
12181
+ Memory stored: ${id}
12182
+ Upstream status: ${upstreamStatus}`
12183
+ }
12184
+ ]
12185
+ };
12186
+ }
12187
+ );
12188
+ }
12189
+
12190
+ // src/mcp/tools/support-consolidated.ts
11885
12191
  function buildHandlers8() {
11886
12192
  const tools = /* @__PURE__ */ new Map();
11887
12193
  const fake = {
@@ -11891,6 +12197,7 @@ function buildHandlers8() {
11891
12197
  };
11892
12198
  registerCreateBugReport(fake);
11893
12199
  registerCreateFeatureRequest(fake);
12200
+ registerCreateReview(fake);
11894
12201
  registerUpdateBugReport(fake);
11895
12202
  registerUpdateFeatureRequest(fake);
11896
12203
  registerSupportTools(fake);
@@ -11900,21 +12207,29 @@ function buildHandlers8() {
11900
12207
  registerListFeatureRequests(fake);
11901
12208
  registerGetFeatureRequest(fake);
11902
12209
  registerTriageFeatureRequest(fake);
12210
+ registerListReviews(fake);
12211
+ registerGetReview(fake);
12212
+ registerTriageReview(fake);
11903
12213
  return tools;
11904
12214
  }
11905
12215
  var ACTION_TO_TOOL5 = {
11906
12216
  create_bug: "create_bug_report",
11907
12217
  create_feature: "create_feature_request",
12218
+ create_review: "create_review",
11908
12219
  update_bug: "update_bug_report",
11909
12220
  update_feature: "update_feature_request",
11910
12221
  list_my_bugs: "list_my_bug_reports",
11911
12222
  list_my_features: "list_my_feature_requests",
12223
+ list_my_reviews: "list_my_reviews",
11912
12224
  list_bugs: "list_bug_reports",
11913
12225
  get_bug: "get_bug_report",
11914
12226
  triage_bug: "triage_bug_report",
11915
12227
  list_features: "list_feature_requests",
11916
12228
  get_feature: "get_feature_request",
11917
12229
  triage_feature: "triage_feature_request",
12230
+ list_reviews: "list_reviews",
12231
+ get_review: "get_review",
12232
+ triage_review: "triage_review",
11918
12233
  health: "support_health",
11919
12234
  test: "support_test"
11920
12235
  };
@@ -11924,45 +12239,53 @@ function registerSupportConsolidated(server) {
11924
12239
  "support",
11925
12240
  {
11926
12241
  title: "Support",
11927
- description: "Bug reports, feature requests, and support system. Actions: create_bug, create_feature, update_bug, update_feature, list_my_bugs, list_my_features, list_bugs, get_bug, triage_bug, list_features, get_feature, triage_feature, health, test. Use 'product' param to file bugs for any AskExe product.",
12242
+ description: "Bug reports, feature requests, reviews, and support system. Actions: create_bug, create_feature, create_review, update_bug, update_feature, list_my_bugs, list_my_features, list_my_reviews, list_bugs, get_bug, triage_bug, list_features, get_feature, triage_feature, list_reviews, get_review, triage_review, health, test. Use 'product' param to file bugs for any AskExe product.",
11928
12243
  inputSchema: {
11929
- action: z96.enum([
12244
+ action: z97.enum([
11930
12245
  "create_bug",
11931
12246
  "create_feature",
12247
+ "create_review",
11932
12248
  "update_bug",
11933
12249
  "update_feature",
11934
12250
  "list_my_bugs",
11935
12251
  "list_my_features",
12252
+ "list_my_reviews",
11936
12253
  "list_bugs",
11937
12254
  "get_bug",
11938
12255
  "triage_bug",
11939
12256
  "list_features",
11940
12257
  "get_feature",
11941
12258
  "triage_feature",
12259
+ "list_reviews",
12260
+ "get_review",
12261
+ "triage_review",
11942
12262
  "health",
11943
12263
  "test"
11944
12264
  ]).describe("Support operation"),
11945
- title: z96.string().optional().describe("Bug/feature title"),
11946
- description: z96.string().optional().describe("Bug/feature description"),
11947
- steps_to_reproduce: z96.string().optional().describe("Steps to reproduce (bugs)"),
11948
- expected_behavior: z96.string().optional().describe("Expected behavior (bugs)"),
11949
- actual_behavior: z96.string().optional().describe("Actual behavior (bugs)"),
11950
- severity: z96.string().optional().describe("Severity: p0/p1/p2/p3"),
11951
- product: z96.string().optional().describe("Product: exe-os (default), exe-create, exe-wiki, exe-gateway, exe-crm, exe-build"),
11952
- use_case: z96.string().optional().describe("Use case (features)"),
11953
- proposed_solution: z96.string().optional().describe("Proposed solution (features)"),
11954
- priority: z96.string().optional().describe("Priority (features)"),
11955
- id: z96.string().optional().describe("Bug/feature ID for get/triage"),
11956
- status: z96.string().optional().describe("Filter by status"),
11957
- classification: z96.string().optional().describe("Triage classification"),
11958
- resolution: z96.string().optional().describe("Triage resolution"),
11959
- notes: z96.string().optional().describe("Triage notes (mapped to triage_notes for bug/feature triage)"),
11960
- triage_notes: z96.string().optional().describe("Triage notes (legacy field name)"),
11961
- linked_task_id: z96.string().optional().describe("Linked task ID for triage"),
11962
- linked_commit: z96.string().optional().describe("Linked commit hash for triage"),
11963
- fixed_version: z96.string().optional().describe("Version that fixes this bug"),
11964
- shipped_version: z96.string().optional().describe("Version that ships this feature (features only)"),
11965
- limit: z96.coerce.number().optional().describe("Max results")
12265
+ title: z97.string().optional().describe("Bug/feature title"),
12266
+ description: z97.string().optional().describe("Bug/feature description"),
12267
+ steps_to_reproduce: z97.string().optional().describe("Steps to reproduce (bugs)"),
12268
+ expected_behavior: z97.string().optional().describe("Expected behavior (bugs)"),
12269
+ actual_behavior: z97.string().optional().describe("Actual behavior (bugs)"),
12270
+ severity: z97.string().optional().describe("Severity: p0/p1/p2/p3"),
12271
+ product: z97.string().optional().describe("Product: exe-os (default), exe-create, exe-wiki, exe-gateway, exe-crm, exe-build"),
12272
+ use_case: z97.string().optional().describe("Use case (features)"),
12273
+ proposed_solution: z97.string().optional().describe("Proposed solution (features)"),
12274
+ priority: z97.string().optional().describe("Priority (features)"),
12275
+ id: z97.string().optional().describe("Bug/feature ID for get/triage"),
12276
+ status: z97.string().optional().describe("Filter by status"),
12277
+ classification: z97.string().optional().describe("Triage classification"),
12278
+ resolution: z97.string().optional().describe("Triage resolution"),
12279
+ notes: z97.string().optional().describe("Triage notes (mapped to triage_notes for bug/feature triage)"),
12280
+ triage_notes: z97.string().optional().describe("Triage notes (legacy field name)"),
12281
+ linked_task_id: z97.string().optional().describe("Linked task ID for triage"),
12282
+ linked_commit: z97.string().optional().describe("Linked commit hash for triage"),
12283
+ fixed_version: z97.string().optional().describe("Version that fixes this bug"),
12284
+ shipped_version: z97.string().optional().describe("Version that ships this feature (features only)"),
12285
+ source: z97.string().optional().describe("Review source: self-improve, manual, ci"),
12286
+ pr_url: z97.string().optional().describe("PR URL (reviews)"),
12287
+ resolution: z97.string().optional().describe("Resolution text (reviews)"),
12288
+ limit: z97.coerce.number().optional().describe("Max results")
11966
12289
  }
11967
12290
  },
11968
12291
  async (input, extra) => {
@@ -12024,6 +12347,13 @@ function registerSupportConsolidated(server) {
12024
12347
  args.shipped_version = args.fixed_version;
12025
12348
  delete args.fixed_version;
12026
12349
  }
12350
+ if (action === "create_review") {
12351
+ if (args.send_upstream === void 0) args.send_upstream = true;
12352
+ }
12353
+ if (action === "triage_review" && args.notes && !args.response_notes) {
12354
+ args.response_notes = args.notes;
12355
+ delete args.notes;
12356
+ }
12027
12357
  if (action === "triage_bug" && args.fixed_version && !args.status) {
12028
12358
  args.status = "closed";
12029
12359
  }
@@ -12036,7 +12366,7 @@ function registerSupportConsolidated(server) {
12036
12366
  }
12037
12367
 
12038
12368
  // src/mcp/tools/diagnostics.ts
12039
- import { z as z97 } from "zod";
12369
+ import { z as z98 } from "zod";
12040
12370
  function buildHandlers9() {
12041
12371
  const tools = /* @__PURE__ */ new Map();
12042
12372
  const fake = {
@@ -12057,17 +12387,17 @@ function registerDiagnostics(server) {
12057
12387
  title: "Diagnostics",
12058
12388
  description: `System diagnostics and admin operations. Actions: ${toolNames.join(", ")}. Covers health checks, update status, cloud status, key management, employee rename, semantic tool discovery (tool_search), identity drift detection (drift), agent liveness monitoring (agent_liveness), and agent memory reassignment (merge_agent_memories).`,
12059
12389
  inputSchema: {
12060
- action: z97.string().describe(`Diagnostic operation: ${toolNames.join(", ")}`),
12390
+ action: z98.string().describe(`Diagnostic operation: ${toolNames.join(", ")}`),
12061
12391
  // Pass-through params used by various sub-tools
12062
- agent_id: z97.string().optional().describe("Agent to probe (drift). Defaults to all agents."),
12063
- name: z97.string().optional().describe("Employee name (rename_employee)"),
12064
- new_name: z97.string().optional().describe("New employee name (rename_employee)"),
12065
- query: z97.string().optional().describe("Search/filter query, or natural language for tool_search"),
12066
- format: z97.string().optional().describe("Output format"),
12067
- limit: z97.coerce.number().int().min(1).max(100).optional().describe("Max results for tool_search (default 20)"),
12068
- from_agent_id: z97.string().optional().describe("Source agent ID to merge from (merge_agent_memories)"),
12069
- to_agent_id: z97.string().optional().describe("Target agent ID to merge into (merge_agent_memories)"),
12070
- dry_run: z97.boolean().optional().default(true).describe("Preview mode \u2014 show count without changing (merge_agent_memories). Default: true")
12392
+ agent_id: z98.string().optional().describe("Agent to probe (drift). Defaults to all agents."),
12393
+ name: z98.string().optional().describe("Employee name (rename_employee)"),
12394
+ new_name: z98.string().optional().describe("New employee name (rename_employee)"),
12395
+ query: z98.string().optional().describe("Search/filter query, or natural language for tool_search"),
12396
+ format: z98.string().optional().describe("Output format"),
12397
+ limit: z98.coerce.number().int().min(1).max(100).optional().describe("Max results for tool_search (default 20)"),
12398
+ from_agent_id: z98.string().optional().describe("Source agent ID to merge from (merge_agent_memories)"),
12399
+ to_agent_id: z98.string().optional().describe("Target agent ID to merge into (merge_agent_memories)"),
12400
+ dry_run: z98.boolean().optional().default(true).describe("Preview mode \u2014 show count without changing (merge_agent_memories). Default: true")
12071
12401
  }
12072
12402
  },
12073
12403
  async (input, extra) => {
@@ -12276,7 +12606,7 @@ async function handleDrift(input) {
12276
12606
  }
12277
12607
 
12278
12608
  // src/mcp/tools/dreaming.ts
12279
- import { z as z98 } from "zod";
12609
+ import { z as z99 } from "zod";
12280
12610
  function registerDreaming(server) {
12281
12611
  server.registerTool(
12282
12612
  "dreaming",
@@ -12284,10 +12614,10 @@ function registerDreaming(server) {
12284
12614
  title: "Dreaming",
12285
12615
  description: "Self-improvement loop \u2014 reviews recent work, identifies patterns, proposes behavior changes, and detects identity drift. Actions: run (execute dream cycle), status (last cycle result), history (past cycles).",
12286
12616
  inputSchema: {
12287
- action: z98.enum(["run", "status", "history"]).describe("Action to perform"),
12288
- agent_id: z98.string().optional().describe("Agent to analyze. Defaults to calling agent."),
12289
- hours: z98.coerce.number().min(1).max(720).optional().describe("Lookback window in hours (run). Default 24."),
12290
- limit: z98.coerce.number().int().min(1).max(50).optional().describe("Max results for history. Default 10.")
12617
+ action: z99.enum(["run", "status", "history"]).describe("Action to perform"),
12618
+ agent_id: z99.string().optional().describe("Agent to analyze. Defaults to calling agent."),
12619
+ hours: z99.coerce.number().min(1).max(720).optional().describe("Lookback window in hours (run). Default 24."),
12620
+ limit: z99.coerce.number().int().min(1).max(50).optional().describe("Max results for history. Default 10.")
12291
12621
  }
12292
12622
  },
12293
12623
  async ({ action, agent_id, hours, limit }) => {
@@ -12384,7 +12714,7 @@ ${String(row.text)}`
12384
12714
  }
12385
12715
 
12386
12716
  // src/mcp/tools/steward.ts
12387
- import { z as z99 } from "zod";
12717
+ import { z as z100 } from "zod";
12388
12718
  function errorResult11(text6) {
12389
12719
  return { content: [{ type: "text", text: text6 }], isError: true };
12390
12720
  }
@@ -12396,12 +12726,12 @@ function registerSteward(server) {
12396
12726
  title: "Steward Identity Gate",
12397
12727
  description: "Constitutional check before destructive operations. action=check: verify agent authority for an operation. action=audit_log: query the audit trail. action=override: coordinator-only bypass with reason.",
12398
12728
  inputSchema: {
12399
- action: z99.enum(["check", "audit_log", "override"]).describe("Steward operation to perform"),
12400
- agent: z99.string().optional().describe("Agent to check (defaults to calling agent for action=check)"),
12401
- operation: z99.string().optional().describe("Operation name (required for check/override)"),
12402
- target: z99.string().optional().describe("Target resource (required for check/override)"),
12403
- reason: z99.string().optional().describe("Override reason (required for action=override)"),
12404
- limit: z99.number().optional().describe("Max audit entries to return (default: 50)")
12729
+ action: z100.enum(["check", "audit_log", "override"]).describe("Steward operation to perform"),
12730
+ agent: z100.string().optional().describe("Agent to check (defaults to calling agent for action=check)"),
12731
+ operation: z100.string().optional().describe("Operation name (required for check/override)"),
12732
+ target: z100.string().optional().describe("Target resource (required for check/override)"),
12733
+ reason: z100.string().optional().describe("Override reason (required for action=override)"),
12734
+ limit: z100.number().optional().describe("Max audit entries to return (default: 50)")
12405
12735
  }
12406
12736
  },
12407
12737
  async (input) => {
@@ -12484,7 +12814,7 @@ function registerSteward(server) {
12484
12814
  }
12485
12815
 
12486
12816
  // src/mcp/tools/pipeline.ts
12487
- import { z as z100 } from "zod";
12817
+ import { z as z101 } from "zod";
12488
12818
  function text3(content, isError = false) {
12489
12819
  return { content: [{ type: "text", text: content }], ...isError ? { isError: true } : {} };
12490
12820
  }
@@ -12546,7 +12876,7 @@ async function handleTrigger(limit) {
12546
12876
  if (rows.rows.length === 0) {
12547
12877
  return text3("No conversations found to re-process.");
12548
12878
  }
12549
- const { ingest } = await import("./pipeline-router-RCPUSLWO.js");
12879
+ const { ingest } = await import("./pipeline-router-IX635D3U.js");
12550
12880
  const results = [];
12551
12881
  for (const row of rows.rows) {
12552
12882
  const r = row;
@@ -12619,8 +12949,8 @@ function registerPipeline(server) {
12619
12949
  title: "Pipeline",
12620
12950
  description: "E2E data pipeline observability. Actions: status (sink health), trigger (re-process recent events), history (recent pipeline activity).",
12621
12951
  inputSchema: {
12622
- action: z100.enum(["status", "trigger", "history"]).describe("Pipeline operation"),
12623
- limit: z100.number().optional().describe("Max events to process (trigger) or show (history). Default: 10, max: 50/100.")
12952
+ action: z101.enum(["status", "trigger", "history"]).describe("Pipeline operation"),
12953
+ limit: z101.number().optional().describe("Max events to process (trigger) or show (history). Default: 10, max: 50/100.")
12624
12954
  }
12625
12955
  }, async ({ action, limit }) => {
12626
12956
  const lim = Math.max(1, Math.min(Number(limit) || 10, 100));
@@ -12638,7 +12968,7 @@ function registerPipeline(server) {
12638
12968
  }
12639
12969
 
12640
12970
  // src/mcp/tools/resonance.ts
12641
- import { z as z101 } from "zod";
12971
+ import { z as z102 } from "zod";
12642
12972
  function text4(content, isError = false) {
12643
12973
  return { content: [{ type: "text", text: content }], ...isError ? { isError: true } : {} };
12644
12974
  }
@@ -12647,13 +12977,13 @@ function registerResonance(server) {
12647
12977
  title: "Resonance Network",
12648
12978
  description: "Co-activation network queries. Actions: hot_pairs (top co-activated entity pairs), neighbors (co-activation neighbors for a specific entity).",
12649
12979
  inputSchema: {
12650
- action: z101.enum(["hot_pairs", "neighbors"]).describe("Resonance query type"),
12651
- entity_id: z101.string().optional().describe("Entity/memory ID for neighbors action"),
12652
- limit: z101.number().optional().describe("Max results (default 20)")
12980
+ action: z102.enum(["hot_pairs", "neighbors"]).describe("Resonance query type"),
12981
+ entity_id: z102.string().optional().describe("Entity/memory ID for neighbors action"),
12982
+ limit: z102.number().optional().describe("Max results (default 20)")
12653
12983
  }
12654
12984
  }, async ({ action, entity_id, limit }) => {
12655
12985
  try {
12656
- const { getHotPairs, getCoActivationNeighbors } = await import("./co-activation-XS7CDNIK.js");
12986
+ const { getHotPairs, getCoActivationNeighbors } = await import("./co-activation-OCQPRJ2I.js");
12657
12987
  if (action === "hot_pairs") {
12658
12988
  const pairs = await getHotPairs(limit ?? 20);
12659
12989
  if (pairs.length === 0) return text4("No co-activation data yet. Pairs are recorded as memories are accessed together in searches.");
@@ -12673,7 +13003,7 @@ function registerResonance(server) {
12673
13003
  }
12674
13004
 
12675
13005
  // src/mcp/tools/prediction.ts
12676
- import { z as z102 } from "zod";
13006
+ import { z as z103 } from "zod";
12677
13007
  function text5(content, isError = false) {
12678
13008
  return { content: [{ type: "text", text: content }], ...isError ? { isError: true } : {} };
12679
13009
  }
@@ -12684,15 +13014,15 @@ function registerPrediction(server) {
12684
13014
  title: "Prediction Log",
12685
13015
  description: "Anticipation calibration. Log predictions with confidence, resolve with outcomes, view calibration stats. Actions: log, resolve, list, stats.",
12686
13016
  inputSchema: {
12687
- action: z102.enum(["log", "resolve", "list", "stats"]).describe("Prediction operation"),
12688
- prediction: z102.string().optional().describe("Prediction text (for action=log)"),
12689
- confidence: z102.number().optional().describe("Confidence 0.0-1.0 (for action=log)"),
12690
- prediction_id: z102.string().optional().describe("Prediction ID (for action=resolve)"),
12691
- outcome: z102.enum(["correct", "wrong", "partial"]).optional().describe("Outcome (for action=resolve)"),
12692
- note: z102.string().optional().describe("Resolution note (for action=resolve)"),
12693
- unresolved: z102.boolean().optional().describe("Filter to unresolved only (for action=list)"),
12694
- agent_id: z102.string().optional().describe("Filter by agent (for action=list/stats)"),
12695
- limit: z102.number().optional().describe("Max results (for action=list, default 20)")
13017
+ action: z103.enum(["log", "resolve", "list", "stats"]).describe("Prediction operation"),
13018
+ prediction: z103.string().optional().describe("Prediction text (for action=log)"),
13019
+ confidence: z103.number().optional().describe("Confidence 0.0-1.0 (for action=log)"),
13020
+ prediction_id: z103.string().optional().describe("Prediction ID (for action=resolve)"),
13021
+ outcome: z103.enum(["correct", "wrong", "partial"]).optional().describe("Outcome (for action=resolve)"),
13022
+ note: z103.string().optional().describe("Resolution note (for action=resolve)"),
13023
+ unresolved: z103.boolean().optional().describe("Filter to unresolved only (for action=list)"),
13024
+ agent_id: z103.string().optional().describe("Filter by agent (for action=list/stats)"),
13025
+ limit: z103.number().optional().describe("Max results (for action=list, default 20)")
12696
13026
  }
12697
13027
  },
12698
13028
  async (input) => {