@askexenow/exe-os 0.9.217 → 0.9.219
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.
- package/deploy/compose/.env.customer.example +12 -2
- package/deploy/compose/.env.example +42 -16
- package/deploy/compose/PROTECTED_FILES.md +1 -0
- package/deploy/compose/README.md +1 -1
- package/deploy/compose/backup.sh +3 -1
- package/deploy/compose/clickhouse-config.xml +18 -0
- package/deploy/compose/docker-compose.yml +37 -13
- package/deploy/compose/gateway.json +12 -2
- package/deploy/compose/generate-env.ts +17 -1
- package/deploy/compose/init-db.sql +12 -0
- package/deploy/compose/restore.sh +1 -0
- package/deploy/compose/setup.sh +3 -1
- package/deploy/compose/uptime-check.sh +143 -0
- package/deploy/stack-manifests/v0.9.json +4 -4
- package/dist/{active-agent-R7QDYADX.js → active-agent-65SRKUVF.js} +2 -2
- package/dist/{active-agent-4XH2Q6KJ.js → active-agent-YLIAU6SX.js} +2 -2
- package/dist/{agentic-ontology-CHAWPTEY.js → agentic-ontology-VZWBROYO.js} +1 -1
- package/dist/{backfill-metadata-I6VR7JZ2.js → backfill-metadata-YUN6DXIE.js} +3 -3
- package/dist/{behaviors-YJ3HEQED.js → behaviors-4PGM7IJJ.js} +2 -2
- package/dist/bin/agentic-ontology-backfill.js +4 -4
- package/dist/bin/agentic-reflection-backfill.js +5 -5
- package/dist/bin/agentic-semantic-label.js +4 -4
- package/dist/bin/backfill-conversations.js +3 -3
- package/dist/bin/backfill-responses.js +3 -3
- package/dist/bin/backfill-vectors.js +4 -4
- package/dist/bin/bulk-sync-postgres.js +5 -5
- package/dist/bin/cleanup-stale-review-tasks.js +8 -8
- package/dist/bin/cli.js +30 -12
- package/dist/bin/exe-agent-config.js +1 -1
- package/dist/bin/exe-agent.js +6 -6
- package/dist/bin/exe-assign.js +4 -4
- package/dist/bin/exe-boot.js +15 -15
- package/dist/bin/exe-call.js +3 -3
- package/dist/bin/exe-cloud.js +3 -3
- package/dist/bin/exe-dispatch.js +8 -8
- package/dist/bin/exe-doctor.js +1 -1
- package/dist/bin/exe-export-behaviors.js +6 -6
- package/dist/bin/exe-forget.js +5 -5
- package/dist/bin/exe-gateway.js +38 -12
- package/dist/bin/exe-heartbeat.js +8 -8
- package/dist/bin/exe-kill.js +11 -11
- package/dist/bin/exe-launch-agent.js +15 -15
- package/dist/bin/exe-new-employee.js +5 -5
- package/dist/bin/exe-pending-messages.js +9 -9
- package/dist/bin/exe-pending-notifications.js +8 -8
- package/dist/bin/exe-pending-reviews.js +8 -8
- package/dist/bin/exe-rename.js +3 -3
- package/dist/bin/exe-review.js +10 -10
- package/dist/bin/exe-search.js +4 -4
- package/dist/bin/exe-session-cleanup.js +13 -13
- package/dist/bin/exe-settings.js +3 -3
- package/dist/bin/exe-start-codex.js +10 -10
- package/dist/bin/exe-start-opencode.js +7 -7
- package/dist/bin/exe-status.js +9 -9
- package/dist/bin/exe-team.js +2 -2
- package/dist/bin/git-sweep.js +8 -8
- package/dist/bin/graph-backfill.js +3 -3
- package/dist/bin/graph-export.js +4 -4
- package/dist/bin/import-history.js +4 -4
- package/dist/bin/install.js +5 -5
- package/dist/bin/intercom-check.js +4 -4
- package/dist/bin/mcp-sessions.js +2 -2
- package/dist/bin/orchestration-metrics.js +3 -3
- package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
- package/dist/bin/postgres-agentic-semantic-backfill.js +1 -1
- package/dist/bin/scan-tasks.js +8 -8
- package/dist/bin/setup.js +1 -1
- package/dist/bin/shard-migrate.js +3 -3
- package/dist/bin/stack-update.js +1 -1
- package/dist/bin/vps-health-gate.js +1 -1
- package/dist/{capacity-monitor-XFMZSJDB.js → capacity-monitor-A6TMCY5F.js} +9 -9
- package/dist/{catchup-brief-D5IZFZDO.js → catchup-brief-TU4C22MJ.js} +10 -10
- package/dist/{chunk-F54CVIXL.js → chunk-222EGJ6Z.js} +1 -1
- package/dist/{chunk-6UY62EGD.js → chunk-2F7URV5H.js} +4 -4
- package/dist/{chunk-2DRWIXOO.js → chunk-2OERQW4L.js} +2 -2
- package/dist/{chunk-4GXXYDNU.js → chunk-3XGZAFHE.js} +36 -0
- package/dist/{chunk-BN3HRSEU.js → chunk-443YQ2FS.js} +2 -2
- package/dist/{chunk-5QKUR5KS.js → chunk-4UHKYQZJ.js} +1 -1
- package/dist/{chunk-QOY6CTHV.js → chunk-55VWU47L.js} +2 -2
- package/dist/{chunk-ACOW43IN.js → chunk-56NWZFB2.js} +1 -1
- package/dist/{chunk-UO3IEPSY.js → chunk-5ZTZ3SHF.js} +233 -333
- package/dist/{chunk-GKNYEJQ3.js → chunk-7DYKIMN2.js} +1 -1
- package/dist/{chunk-5G643UWZ.js → chunk-7EUYGWPH.js} +117 -8
- package/dist/{chunk-FXD53Q32.js → chunk-7F5MJSWJ.js} +3 -3
- package/dist/{chunk-2QNMGFIF.js → chunk-7WEP4DNC.js} +2 -2
- package/dist/{chunk-S5TTV7PC.js → chunk-A24RUKU6.js} +1 -1
- package/dist/{chunk-NEGJAEZ7.js → chunk-AAMUHY6Y.js} +3 -3
- package/dist/{chunk-46WQ76VA.js → chunk-AMGEPNUB.js} +1 -1
- package/dist/{chunk-HURS5JVX.js → chunk-BCREJ6FD.js} +21 -3
- package/dist/{chunk-S2T7CE4P.js → chunk-BMRLKOGT.js} +1 -1
- package/dist/{chunk-S4I3UITZ.js → chunk-BXLA6CQM.js} +1 -1
- package/dist/{chunk-JXJV64JW.js → chunk-D7DRYXDE.js} +1 -1
- package/dist/{chunk-5VOC35A3.js → chunk-DAE4I3UN.js} +1 -1
- package/dist/{chunk-R766IOBQ.js → chunk-DF67VZ2H.js} +1 -1
- package/dist/{chunk-HW46Q4AR.js → chunk-DZE2MBOW.js} +257 -10
- package/dist/{chunk-RTGN42GD.js → chunk-E6KXZF4B.js} +2 -2
- package/dist/{chunk-IFSAR5IX.js → chunk-EB3AAVAK.js} +5 -5
- package/dist/{chunk-PKIOJQ2N.js → chunk-EUS7TKVR.js} +1 -1
- package/dist/{chunk-T43SC2XX.js → chunk-FJQPH2W3.js} +2 -2
- package/dist/{chunk-GEFZHKEN.js → chunk-GJFS27NL.js} +5 -5
- package/dist/{chunk-KEFHCL4U.js → chunk-GT5E5PW6.js} +1 -1
- package/dist/{chunk-XPKACO5A.js → chunk-GYIPOKH6.js} +8 -8
- package/dist/chunk-I3MJHU76.js +225 -0
- package/dist/{chunk-2IMUAL3X.js → chunk-IEAXNG3H.js} +8 -8
- package/dist/{chunk-YJNRRQOG.js → chunk-ILTZBCLW.js} +2 -2
- package/dist/{chunk-SDQSOQOE.js → chunk-JEBWC4VU.js} +2 -2
- package/dist/{chunk-7X6QKJGM.js → chunk-JHEABI3I.js} +2 -2
- package/dist/{chunk-R2MZDZTQ.js → chunk-JUWC7V2I.js} +3 -3
- package/dist/{chunk-6I7O6YW3.js → chunk-OM3CETSN.js} +3 -3
- package/dist/{chunk-WEJ45ZFF.js → chunk-PBI526CO.js} +2 -2
- package/dist/{chunk-I22ZH3XF.js → chunk-PXO6SF6L.js} +1 -1
- package/dist/{chunk-B7NO5U7H.js → chunk-Q4GGIM3A.js} +1 -1
- package/dist/{chunk-I6474EQW.js → chunk-QG6IPAT6.js} +1 -1
- package/dist/{chunk-NO5GHSNU.js → chunk-QPU5QQLX.js} +4 -3
- package/dist/{chunk-4ANCHFE2.js → chunk-R6JBGFSE.js} +1 -1
- package/dist/{chunk-ALVYUOBW.js → chunk-RQJDO6LP.js} +1 -1
- package/dist/{chunk-BFLBZGPZ.js → chunk-S5KQLCYU.js} +1 -1
- package/dist/{chunk-NUUAYDD6.js → chunk-SRJLG6RC.js} +1 -1
- package/dist/{chunk-O6LFXATW.js → chunk-SURCM7EO.js} +3 -3
- package/dist/{chunk-CIANVJ3G.js → chunk-UVUA2DQM.js} +61 -6
- package/dist/{chunk-64DYFA5X.js → chunk-V224L2GJ.js} +3 -3
- package/dist/{chunk-W7OCXE2L.js → chunk-V24ZGSQW.js} +1 -1
- package/dist/{chunk-RSHVFBKD.js → chunk-V2BQL663.js} +8 -8
- package/dist/{chunk-JJHJOGYR.js → chunk-WYPNZALJ.js} +1 -1
- package/dist/{chunk-RSVJQ4E2.js → chunk-YTBT3SW2.js} +1 -1
- package/dist/{chunk-CUKIMXQ7.js → chunk-YTPLK6QP.js} +1 -1
- package/dist/{co-occurrence-EWVCCFOI.js → co-occurrence-FBP2GTER.js} +1 -1
- package/dist/{crdt-sync-TSO4O67N.js → crdt-sync-KFPZWAIE.js} +1 -1
- package/dist/{crm-webhook-WMAW6ZT2.js → crm-webhook-56OJDKXK.js} +2 -2
- package/dist/{cto-delegation-gate-YNWMQEQB.js → cto-delegation-gate-5WNDH4IL.js} +7 -7
- package/dist/{daemon-orchestration-5KUKQOZ4.js → daemon-orchestration-KYK662AN.js} +14 -10
- package/dist/{exe-drift-KP5RZCXA.js → exe-drift-C254MZW4.js} +2 -2
- package/dist/{exe-export-RAYK76SO.js → exe-export-S56FIA5P.js} +4 -4
- package/dist/{exe-import-SAJBGUN5.js → exe-import-7F7Y4I6T.js} +4 -4
- package/dist/{exe-key-W3CME65M.js → exe-key-U7TAND3I.js} +1 -1
- package/dist/{fast-db-init-5VDTKVKX.js → fast-db-init-6DG7B7NO.js} +1 -1
- package/dist/gateway/index.js +6 -6
- package/dist/{git-staleness-M7WLXBAA.js → git-staleness-FDYT34WP.js} +1 -1
- package/dist/{git-task-sweep-GED54WTZ.js → git-task-sweep-EERTURH7.js} +8 -8
- package/dist/{global-procedures-EYWKFVOO.js → global-procedures-74U75Y2I.js} +2 -2
- package/dist/{graph-auto-extract-B4W4BEOZ.js → graph-auto-extract-VUBFSL6D.js} +1 -1
- package/dist/hooks/bug-report-worker.js +9 -9
- package/dist/hooks/codex-stop-task-finalizer.js +9 -9
- package/dist/hooks/commit-complete.js +10 -10
- package/dist/hooks/error-recall.js +5 -5
- package/dist/hooks/exe-heartbeat-hook.js +2 -2
- package/dist/hooks/ingest.js +5 -5
- package/dist/hooks/instructions-loaded.js +3 -3
- package/dist/hooks/manifest.json +19 -19
- package/dist/hooks/notification.js +3 -3
- package/dist/hooks/post-compact.js +9 -9
- package/dist/hooks/post-tool-combined.js +4 -4
- package/dist/hooks/pre-compact.js +10 -10
- package/dist/hooks/pre-tool-use.js +13 -13
- package/dist/hooks/prompt-submit.js +19 -19
- package/dist/hooks/session-end.js +13 -13
- package/dist/hooks/session-start.js +28 -9
- package/dist/hooks/stop.js +13 -13
- package/dist/hooks/subagent-stop.js +9 -9
- package/dist/hooks/summary-worker.js +13 -13
- package/dist/import-conversations-FO4IQCOP.js +23 -0
- package/dist/index.js +15 -15
- package/dist/{installer-EYRABPEC.js → installer-MWLYK37L.js} +4 -4
- package/dist/{installer-WVPFKMDW.js → installer-XIP332UC.js} +4 -4
- package/dist/{installer-X6XJE2EA.js → installer-XZ4H2J3J.js} +4 -4
- package/dist/lib/cloud-sync.js +3 -3
- package/dist/lib/consolidation.js +4 -4
- package/dist/lib/database.js +1 -1
- package/dist/lib/db.js +1 -1
- package/dist/lib/employee-templates.js +3 -3
- package/dist/lib/employees.js +1 -1
- package/dist/lib/exe-daemon.js +65 -25
- package/dist/lib/hybrid-search.js +4 -4
- package/dist/lib/identity.js +1 -1
- package/dist/lib/messaging.js +8 -8
- package/dist/lib/reminders.js +2 -2
- package/dist/lib/schedules.js +4 -4
- package/dist/lib/session-registry.js +3 -3
- package/dist/lib/skill-learning.js +3 -3
- package/dist/lib/store.js +3 -3
- package/dist/lib/task-router.js +2 -2
- package/dist/lib/tasks.js +8 -8
- package/dist/lib/tmux-routing.js +7 -7
- package/dist/lib/token-spend.js +2 -2
- package/dist/mcp/register-tools.js +47 -46
- package/dist/mcp/server.js +48 -47
- package/dist/mcp/tools/complete-reminder.js +3 -3
- package/dist/mcp/tools/create-reminder.js +3 -3
- package/dist/mcp/tools/create-task.js +10 -10
- package/dist/mcp/tools/deactivate-behavior.js +4 -4
- package/dist/mcp/tools/list-reminders.js +3 -3
- package/dist/mcp/tools/list-tasks.js +10 -10
- package/dist/mcp/tools/send-message.js +10 -10
- package/dist/mcp/tools/update-task.js +9 -9
- package/dist/{mcp-http-config-L4U52ZAF.js → mcp-http-config-GYVAS5HQ.js} +2 -2
- package/dist/{memory-cards-I55OBMVE.js → memory-cards-HU5WIUTY.js} +1 -1
- package/dist/{memory-graph-extractor-6M6J5FNX.js → memory-graph-extractor-PNRAGL4V.js} +2 -2
- package/dist/{memory-poisoning-defense-UXB75NB7.js → memory-poisoning-defense-KBBWI6ZL.js} +1 -1
- package/dist/{memory-reflection-3BMVNA6T.js → memory-reflection-UP56KTJ5.js} +1 -1
- package/dist/{notifications-SCHILQCQ.js → notifications-VWAMI4ZE.js} +7 -7
- package/dist/{orchestration-events-RDW7BTCK.js → orchestration-events-7XAYQ2MT.js} +2 -2
- package/dist/{orchestrator-NCEFZF32.js → orchestrator-D7NWJTJO.js} +9 -9
- package/dist/{plan-limits-YE5WKMQM.js → plan-limits-EA3VBZJ2.js} +2 -2
- package/dist/{projection-worker-ENYZ7THQ.js → projection-worker-HNI2TOO3.js} +1 -1
- package/dist/{reranker-QFLVGVRT.js → reranker-M52JJADT.js} +1 -1
- package/dist/{review-polling-ZKYFETP3.js → review-polling-YT3BEKPV.js} +8 -8
- package/dist/runtime/index.js +10 -10
- package/dist/{session-events-XCNQDXF4.js → session-events-7EN6W4EX.js} +8 -8
- package/dist/{session-kill-telemetry-SPB6LEI5.js → session-kill-telemetry-XIFWDG3L.js} +2 -2
- package/dist/{session-scope-FEZQJMD4.js → session-scope-7F3JL2RJ.js} +7 -7
- package/dist/{setup-wizard-KUYMMP35.js → setup-wizard-OT5R6PJ6.js} +1 -1
- package/dist/{skill-refinement-QHOS6CGQ.js → skill-refinement-N5RINY42.js} +1 -1
- package/dist/{stack-update-UCIPCTBO.js → stack-update-SASYGDOB.js} +1 -1
- package/dist/{task-enforcement-HVY36QRD.js → task-enforcement-DCBYO3R6.js} +7 -7
- package/dist/{task-scope-ODSOEGTH.js → task-scope-NM2C2QZX.js} +7 -7
- package/dist/{tasks-crud-RIUHZJGR.js → tasks-crud-AVVOQKZY.js} +17 -7
- package/dist/{tasks-review-EBUVFQUJ.js → tasks-review-QNBO3D7U.js} +7 -7
- package/dist/{telemetry-upload-DFISOB2V.js → telemetry-upload-ZJ4UP2RP.js} +3 -3
- package/dist/{token-budget-6TTILQW7.js → token-budget-SPQB44ZI.js} +1 -1
- package/dist/{tool-telemetry-BNZJICWG.js → tool-telemetry-EIRCR2VO.js} +1 -1
- package/dist/tui/App.js +15 -15
- package/dist/{tui-data-UM6LR4EQ.js → tui-data-5B6YA4VV.js} +7 -7
- package/dist/{worker-gate-K5YTO2H5.js → worker-gate-WQV3FR4R.js} +1 -1
- package/dist/{workflow-engine-WUU5OZ3N.js → workflow-engine-TZKS5QB7.js} +2 -2
- package/dist/{worktree-XZBJQWQZ.js → worktree-KI3X6POI.js} +3 -3
- package/package.json +1 -1
- package/release-notes.json +52 -52
- /package/dist/{chunk-MQA6K7DH.js → chunk-3OZ7LXUY.js} +0 -0
- /package/dist/{chunk-KVOTLCAX.js → chunk-4B7JKVUT.js} +0 -0
- /package/dist/{chunk-HNXHUG7A.js → chunk-HUVQ2NUX.js} +0 -0
- /package/dist/{chunk-Y2B6MB3J.js → chunk-PN7MTAYN.js} +0 -0
- /package/dist/{chunk-54JMB5UI.js → chunk-Q3YGPFZH.js} +0 -0
- /package/dist/{chunk-WRVFZ433.js → chunk-QSWZI7NH.js} +0 -0
- /package/dist/{chunk-4AJYZFDE.js → chunk-V3CEFPKS.js} +0 -0
- /package/dist/{chunk-K77FHRYS.js → chunk-V3NHFF3Z.js} +0 -0
- /package/dist/{chunk-DXB3CB2O.js → chunk-ZPQ2RUIU.js} +0 -0
- /package/dist/{core-memory-NZOLAIOE.js → core-memory-3XHQZ5EI.js} +0 -0
- /package/dist/{wiki-acl-QYGMJDUT.js → wiki-acl-QSO37KYW.js} +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
listRecentSessionEvents
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-EUS7TKVR.js";
|
|
4
4
|
import {
|
|
5
5
|
AUTO_WAKE_MAX_RETRIES
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-7EUYGWPH.js";
|
|
7
7
|
import {
|
|
8
8
|
isRerankerAvailable,
|
|
9
9
|
rerankWithScores
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-4B7JKVUT.js";
|
|
11
11
|
import {
|
|
12
12
|
getEntityByName,
|
|
13
13
|
getEntityNeighbors,
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
} from "./chunk-E6ORBQHP.js";
|
|
29
29
|
import {
|
|
30
30
|
getToolUsageStats
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-V3NHFF3Z.js";
|
|
32
32
|
import {
|
|
33
33
|
analyzeBlastRadius,
|
|
34
34
|
buildCodeContextIndex,
|
|
@@ -42,71 +42,64 @@ import {
|
|
|
42
42
|
exportOrchestration,
|
|
43
43
|
importOrchestration,
|
|
44
44
|
validatePackage
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-AMGEPNUB.js";
|
|
46
|
+
import {
|
|
47
|
+
registerImportConversations
|
|
48
|
+
} from "./chunk-I3MJHU76.js";
|
|
46
49
|
import {
|
|
47
50
|
runDriftProbes
|
|
48
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-WYPNZALJ.js";
|
|
49
52
|
import {
|
|
50
53
|
loadOrchestrationPhase,
|
|
51
54
|
setOrchestrationPhase
|
|
52
55
|
} from "./chunk-XHTOAJYD.js";
|
|
53
56
|
import {
|
|
54
57
|
createOrRefreshResumeTask
|
|
55
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-GJFS27NL.js";
|
|
56
59
|
import {
|
|
57
60
|
registerUpdateTask
|
|
58
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-V224L2GJ.js";
|
|
59
62
|
import {
|
|
60
63
|
registerCreateReminder
|
|
61
|
-
} from "./chunk-
|
|
64
|
+
} from "./chunk-QG6IPAT6.js";
|
|
62
65
|
import {
|
|
63
66
|
registerListReminders
|
|
64
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-222EGJ6Z.js";
|
|
65
68
|
import {
|
|
66
69
|
registerCompleteReminder
|
|
67
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-DF67VZ2H.js";
|
|
68
71
|
import {
|
|
69
72
|
registerDeactivateBehavior
|
|
70
|
-
} from "./chunk-
|
|
73
|
+
} from "./chunk-AAMUHY6Y.js";
|
|
71
74
|
import {
|
|
72
75
|
completeReminder,
|
|
73
76
|
createReminder,
|
|
74
77
|
listReminders
|
|
75
|
-
} from "./chunk-
|
|
76
|
-
import {
|
|
77
|
-
conversationsToMemories,
|
|
78
|
-
detectFormat,
|
|
79
|
-
parseChatGPT,
|
|
80
|
-
parseClaude,
|
|
81
|
-
parseGeneric
|
|
82
|
-
} from "./chunk-Q2G5C3HV.js";
|
|
83
|
-
import {
|
|
84
|
-
extractMemoryGraph
|
|
85
|
-
} from "./chunk-2QNMGFIF.js";
|
|
78
|
+
} from "./chunk-PXO6SF6L.js";
|
|
86
79
|
import {
|
|
87
80
|
registerSendMessage
|
|
88
|
-
} from "./chunk-
|
|
81
|
+
} from "./chunk-PBI526CO.js";
|
|
89
82
|
import {
|
|
90
83
|
registerCreateTask
|
|
91
|
-
} from "./chunk-
|
|
84
|
+
} from "./chunk-GYIPOKH6.js";
|
|
92
85
|
import {
|
|
93
86
|
registerListTasks
|
|
94
|
-
} from "./chunk-
|
|
87
|
+
} from "./chunk-2OERQW4L.js";
|
|
95
88
|
import {
|
|
96
89
|
TOKENS_PER_IDLE_MINUTE,
|
|
97
90
|
countKillsSince,
|
|
98
91
|
sumTokensSavedSince
|
|
99
|
-
} from "./chunk-
|
|
92
|
+
} from "./chunk-V24ZGSQW.js";
|
|
100
93
|
import {
|
|
101
94
|
createSchedule,
|
|
102
95
|
parseHumanCron
|
|
103
|
-
} from "./chunk-
|
|
96
|
+
} from "./chunk-443YQ2FS.js";
|
|
104
97
|
import {
|
|
105
98
|
status
|
|
106
|
-
} from "./chunk-
|
|
99
|
+
} from "./chunk-7F5MJSWJ.js";
|
|
107
100
|
import {
|
|
108
101
|
getAgentSpend
|
|
109
|
-
} from "./chunk-
|
|
102
|
+
} from "./chunk-YTBT3SW2.js";
|
|
110
103
|
import {
|
|
111
104
|
exportGraphHTML,
|
|
112
105
|
generateGraphReport
|
|
@@ -122,7 +115,7 @@ import {
|
|
|
122
115
|
fixShards,
|
|
123
116
|
formatReport,
|
|
124
117
|
runAudit
|
|
125
|
-
} from "./chunk-
|
|
118
|
+
} from "./chunk-ILTZBCLW.js";
|
|
126
119
|
import {
|
|
127
120
|
runHealthCheck
|
|
128
121
|
} from "./chunk-RAV23DU2.js";
|
|
@@ -133,12 +126,12 @@ import {
|
|
|
133
126
|
} from "./chunk-WSZS2KVV.js";
|
|
134
127
|
import {
|
|
135
128
|
renderClientCOOTemplate
|
|
136
|
-
} from "./chunk-
|
|
129
|
+
} from "./chunk-RQJDO6LP.js";
|
|
137
130
|
import {
|
|
138
131
|
deactivateGlobalProcedure,
|
|
139
132
|
loadGlobalProcedures,
|
|
140
133
|
storeGlobalProcedure
|
|
141
|
-
} from "./chunk-
|
|
134
|
+
} from "./chunk-D7DRYXDE.js";
|
|
142
135
|
import {
|
|
143
136
|
PLATFORM_PROCEDURES
|
|
144
137
|
} from "./chunk-2ZYEO7U7.js";
|
|
@@ -147,27 +140,27 @@ import {
|
|
|
147
140
|
cloudSync,
|
|
148
141
|
getCloudReuploadRequired,
|
|
149
142
|
markCloudReuploadRequired
|
|
150
|
-
} from "./chunk-
|
|
143
|
+
} from "./chunk-OM3CETSN.js";
|
|
151
144
|
import {
|
|
152
145
|
createARecord
|
|
153
146
|
} from "./chunk-X2Z5GT3V.js";
|
|
154
147
|
import {
|
|
155
148
|
findSimilarTrajectories,
|
|
156
149
|
hashSignature
|
|
157
|
-
} from "./chunk-
|
|
150
|
+
} from "./chunk-E6KXZF4B.js";
|
|
158
151
|
import {
|
|
159
152
|
deactivateBehavior,
|
|
160
153
|
listBehaviorsByDomain,
|
|
161
154
|
listSharedSkills,
|
|
162
155
|
reactivateBehavior,
|
|
163
156
|
storeBehavior
|
|
164
|
-
} from "./chunk-
|
|
157
|
+
} from "./chunk-S5KQLCYU.js";
|
|
165
158
|
import {
|
|
166
159
|
countUnconsolidated,
|
|
167
160
|
groupMemories,
|
|
168
161
|
runConsolidation,
|
|
169
162
|
selectUnconsolidated
|
|
170
|
-
} from "./chunk-
|
|
163
|
+
} from "./chunk-55VWU47L.js";
|
|
171
164
|
import {
|
|
172
165
|
embed
|
|
173
166
|
} from "./chunk-OUHHUKPC.js";
|
|
@@ -178,17 +171,17 @@ import {
|
|
|
178
171
|
} from "./chunk-GD4VXNXO.js";
|
|
179
172
|
import {
|
|
180
173
|
updateTask
|
|
181
|
-
} from "./chunk-
|
|
174
|
+
} from "./chunk-EB3AAVAK.js";
|
|
182
175
|
import {
|
|
183
176
|
fastDbInit
|
|
184
|
-
} from "./chunk-
|
|
177
|
+
} from "./chunk-V3CEFPKS.js";
|
|
185
178
|
import {
|
|
186
179
|
MAX_CONCURRENT_WORKERS
|
|
187
|
-
} from "./chunk-
|
|
180
|
+
} from "./chunk-R6JBGFSE.js";
|
|
188
181
|
import {
|
|
189
182
|
hybridSearch,
|
|
190
183
|
recentRecords
|
|
191
|
-
} from "./chunk-
|
|
184
|
+
} from "./chunk-V2BQL663.js";
|
|
192
185
|
import {
|
|
193
186
|
attachDocumentMetadata,
|
|
194
187
|
flushBatch,
|
|
@@ -196,14 +189,10 @@ import {
|
|
|
196
189
|
reserveVersions,
|
|
197
190
|
vectorToBlob,
|
|
198
191
|
writeMemory
|
|
199
|
-
} from "./chunk-
|
|
200
|
-
import {
|
|
201
|
-
extractKeywords,
|
|
202
|
-
keywordsToString
|
|
203
|
-
} from "./chunk-CHCA3ZM2.js";
|
|
192
|
+
} from "./chunk-IEAXNG3H.js";
|
|
204
193
|
import {
|
|
205
194
|
getActiveAgent
|
|
206
|
-
} from "./chunk-
|
|
195
|
+
} from "./chunk-BXLA6CQM.js";
|
|
207
196
|
import {
|
|
208
197
|
getMySession,
|
|
209
198
|
resolveExeSession,
|
|
@@ -211,13 +200,13 @@ import {
|
|
|
211
200
|
sessionScopeFilter,
|
|
212
201
|
updateTaskStatus,
|
|
213
202
|
writeCheckpoint
|
|
214
|
-
} from "./chunk-
|
|
203
|
+
} from "./chunk-DZE2MBOW.js";
|
|
215
204
|
import {
|
|
216
205
|
listSessions
|
|
217
|
-
} from "./chunk-
|
|
206
|
+
} from "./chunk-Q4GGIM3A.js";
|
|
218
207
|
import {
|
|
219
208
|
recordOrchestrationEventBestEffort
|
|
220
|
-
} from "./chunk-
|
|
209
|
+
} from "./chunk-BCREJ6FD.js";
|
|
221
210
|
import {
|
|
222
211
|
DEFAULT_MODELS,
|
|
223
212
|
KNOWN_RUNTIMES,
|
|
@@ -234,7 +223,7 @@ import {
|
|
|
234
223
|
assertEmployeeLimit,
|
|
235
224
|
assertFeature,
|
|
236
225
|
assertMemoryLimit
|
|
237
|
-
} from "./chunk-
|
|
226
|
+
} from "./chunk-GT5E5PW6.js";
|
|
238
227
|
import {
|
|
239
228
|
getProjectName
|
|
240
229
|
} from "./chunk-OPU3NYOO.js";
|
|
@@ -247,7 +236,7 @@ import {
|
|
|
247
236
|
isScheduledTrigger,
|
|
248
237
|
loadTriggers,
|
|
249
238
|
sanitizeParam
|
|
250
|
-
} from "./chunk-
|
|
239
|
+
} from "./chunk-ZPQ2RUIU.js";
|
|
251
240
|
import {
|
|
252
241
|
pushConversationToCRM
|
|
253
242
|
} from "./chunk-ONKIWA3R.js";
|
|
@@ -267,7 +256,7 @@ import {
|
|
|
267
256
|
loadEmployeesSync,
|
|
268
257
|
saveEmployees,
|
|
269
258
|
updateIdentity
|
|
270
|
-
} from "./chunk-
|
|
259
|
+
} from "./chunk-3XGZAFHE.js";
|
|
271
260
|
import {
|
|
272
261
|
getMasterKey
|
|
273
262
|
} from "./chunk-6D23UNXU.js";
|
|
@@ -1453,7 +1442,7 @@ async function handleSupersede(input) {
|
|
|
1453
1442
|
}
|
|
1454
1443
|
try {
|
|
1455
1444
|
const { getClient: getClient2 } = await import("./lib/database.js");
|
|
1456
|
-
const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-
|
|
1445
|
+
const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-YLIAU6SX.js");
|
|
1457
1446
|
const { writeMemory: writeMemory2, flushBatch: flushBatch2 } = await import("./lib/store.js");
|
|
1458
1447
|
const { randomUUID: randomUUID2 } = await import("crypto");
|
|
1459
1448
|
const client = getClient2();
|
|
@@ -1563,7 +1552,7 @@ function registerMemory(server) {
|
|
|
1563
1552
|
return handleSupersede(input);
|
|
1564
1553
|
}
|
|
1565
1554
|
if (action === "update_working_memory" || action === "get_working_memory") {
|
|
1566
|
-
const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-
|
|
1555
|
+
const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-YLIAU6SX.js");
|
|
1567
1556
|
const { agentId } = getActiveAgent2();
|
|
1568
1557
|
const { readWorkingMemory, writeWorkingMemory, WORKING_MEMORY_MAX_BYTES } = await import("./working-memory-PKUUMWZK.js");
|
|
1569
1558
|
if (action === "get_working_memory") {
|
|
@@ -1580,9 +1569,9 @@ function registerMemory(server) {
|
|
|
1580
1569
|
}
|
|
1581
1570
|
}
|
|
1582
1571
|
if (action === "core_get" || action === "core_set" || action === "core_delete") {
|
|
1583
|
-
const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-
|
|
1572
|
+
const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-YLIAU6SX.js");
|
|
1584
1573
|
const { agentId } = getActiveAgent2();
|
|
1585
|
-
const { getCoreMemory, setCoreMemory, deleteCoreMemory, formatCoreMemoryBlock } = await import("./core-memory-
|
|
1574
|
+
const { getCoreMemory, setCoreMemory, deleteCoreMemory, formatCoreMemoryBlock } = await import("./core-memory-3XHQZ5EI.js");
|
|
1586
1575
|
if (action === "core_get") {
|
|
1587
1576
|
const entries = await getCoreMemory(agentId);
|
|
1588
1577
|
const block = formatCoreMemoryBlock(entries);
|
|
@@ -2307,7 +2296,7 @@ function registerResumeEmployee(server) {
|
|
|
2307
2296
|
};
|
|
2308
2297
|
}
|
|
2309
2298
|
try {
|
|
2310
|
-
const { isTmuxSessionAlive } = await import("./tasks-crud-
|
|
2299
|
+
const { isTmuxSessionAlive } = await import("./tasks-crud-AVVOQKZY.js");
|
|
2311
2300
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
2312
2301
|
for (const row of openTasks.rows) {
|
|
2313
2302
|
const status2 = String(row.status);
|
|
@@ -2333,11 +2322,47 @@ function registerResumeEmployee(server) {
|
|
|
2333
2322
|
}
|
|
2334
2323
|
} catch {
|
|
2335
2324
|
}
|
|
2325
|
+
let checkpointInfo = "";
|
|
2326
|
+
try {
|
|
2327
|
+
const { readLatestCheckpoint } = await import("./tasks-crud-AVVOQKZY.js");
|
|
2328
|
+
const checkpoint = await readLatestCheckpoint(agent_id);
|
|
2329
|
+
if (checkpoint) {
|
|
2330
|
+
const filesTouched = checkpoint.files_touched?.length > 0 ? checkpoint.files_touched.join(", ") : "none";
|
|
2331
|
+
checkpointInfo = [
|
|
2332
|
+
"",
|
|
2333
|
+
"## Checkpoint Context (auto-loaded)",
|
|
2334
|
+
`**Step:** ${checkpoint.step}`,
|
|
2335
|
+
`**Summary:** ${checkpoint.context_summary}`,
|
|
2336
|
+
`**Files touched:** ${filesTouched}`,
|
|
2337
|
+
`**Last checkpoint:** ${checkpoint.last_checkpoint_at}`,
|
|
2338
|
+
"",
|
|
2339
|
+
"Continue from this point. Do NOT restart from scratch."
|
|
2340
|
+
].join("\n");
|
|
2341
|
+
}
|
|
2342
|
+
} catch {
|
|
2343
|
+
}
|
|
2336
2344
|
const { created, taskId } = await createOrRefreshResumeTask(
|
|
2337
2345
|
agent_id,
|
|
2338
2346
|
process.cwd(),
|
|
2339
2347
|
openTasks.rows
|
|
2340
2348
|
);
|
|
2349
|
+
if (checkpointInfo && taskId) {
|
|
2350
|
+
try {
|
|
2351
|
+
const client2 = getClient();
|
|
2352
|
+
const existing = await client2.execute({
|
|
2353
|
+
sql: "SELECT context FROM tasks WHERE id = ?",
|
|
2354
|
+
args: [taskId]
|
|
2355
|
+
});
|
|
2356
|
+
if (existing.rows.length > 0) {
|
|
2357
|
+
const currentContext = String(existing.rows[0].context ?? "");
|
|
2358
|
+
await client2.execute({
|
|
2359
|
+
sql: "UPDATE tasks SET context = ?, updated_at = ? WHERE id = ?",
|
|
2360
|
+
args: [currentContext + checkpointInfo, (/* @__PURE__ */ new Date()).toISOString(), taskId]
|
|
2361
|
+
});
|
|
2362
|
+
}
|
|
2363
|
+
} catch {
|
|
2364
|
+
}
|
|
2365
|
+
}
|
|
2341
2366
|
let dispatchStatus = "";
|
|
2342
2367
|
try {
|
|
2343
2368
|
const { ensureEmployee, resolveExeSession: resolveExeSession2 } = await import("./lib/tmux-routing.js");
|
|
@@ -2556,8 +2581,12 @@ var ACTION_TO_LEGACY_TOOL2 = {
|
|
|
2556
2581
|
checkpoint: "checkpoint_task",
|
|
2557
2582
|
resume: "resume_employee",
|
|
2558
2583
|
dependency_tree: "dependency_tree",
|
|
2559
|
-
verify_dispatch: null
|
|
2584
|
+
verify_dispatch: null,
|
|
2560
2585
|
// Handled inline — not a legacy tool
|
|
2586
|
+
create_group: null,
|
|
2587
|
+
// Handled inline — task group primitives
|
|
2588
|
+
group_status: null,
|
|
2589
|
+
group_results: null
|
|
2561
2590
|
};
|
|
2562
2591
|
var REQUIRED_FIELDS2 = {
|
|
2563
2592
|
create: ["title", "assigned_to", "project_name", "context"],
|
|
@@ -2568,7 +2597,10 @@ var REQUIRED_FIELDS2 = {
|
|
|
2568
2597
|
checkpoint: ["task_id", "step", "context_summary"],
|
|
2569
2598
|
resume: ["agent_id"],
|
|
2570
2599
|
dependency_tree: [],
|
|
2571
|
-
verify_dispatch: ["task_id"]
|
|
2600
|
+
verify_dispatch: ["task_id"],
|
|
2601
|
+
create_group: ["title", "coordinator"],
|
|
2602
|
+
group_status: ["group_id"],
|
|
2603
|
+
group_results: ["group_id"]
|
|
2572
2604
|
};
|
|
2573
2605
|
function errorResult2(text3) {
|
|
2574
2606
|
return {
|
|
@@ -2604,7 +2636,7 @@ function registerTask(server) {
|
|
|
2604
2636
|
title: "Task",
|
|
2605
2637
|
description: "Consolidated task domain tool. Use action=create/list/get/update/close/checkpoint/resume/dependency_tree/verify_dispatch instead of separate task tools. verify_dispatch checks if a dispatched task was acknowledged by the agent. Legacy task tools remain available during migration.",
|
|
2606
2638
|
inputSchema: {
|
|
2607
|
-
action: z17.enum(["create", "list", "get", "update", "close", "checkpoint", "resume", "dependency_tree", "verify_dispatch"]).describe("Task operation to perform"),
|
|
2639
|
+
action: z17.enum(["create", "list", "get", "update", "close", "checkpoint", "resume", "dependency_tree", "verify_dispatch", "create_group", "group_status", "group_results"]).describe("Task operation to perform"),
|
|
2608
2640
|
task_id: z17.string().optional().describe("Task identifier \u2014 UUID, slug, filename fragment, or title substring"),
|
|
2609
2641
|
title: z17.string().optional().describe("Task title for action=create"),
|
|
2610
2642
|
assigned_to: z17.string().optional().describe("Employee name for action=create/list filter"),
|
|
@@ -2625,7 +2657,11 @@ function registerTask(server) {
|
|
|
2625
2657
|
context_summary: z17.string().optional().describe("Checkpoint summary for action=checkpoint"),
|
|
2626
2658
|
files_touched: z17.array(z17.string()).optional().describe("Files touched for action=checkpoint"),
|
|
2627
2659
|
agent_id: z17.string().optional().describe("Employee name for action=resume"),
|
|
2628
|
-
cross_session: z17.boolean().optional().describe("When true, action=list returns tasks from ALL coordinator sessions (read-only). Default: false.")
|
|
2660
|
+
cross_session: z17.boolean().optional().describe("When true, action=list returns tasks from ALL coordinator sessions (read-only). Default: false."),
|
|
2661
|
+
group_id: z17.string().optional().describe("Task group ID \u2014 for action=create (link task to group), action=group_status, or action=group_results"),
|
|
2662
|
+
coordinator: z17.string().optional().describe("Coordinator agent name for action=create_group"),
|
|
2663
|
+
timeout_minutes: z17.number().optional().describe("Barrier timeout in minutes for action=create_group (default: 120)"),
|
|
2664
|
+
on_partial_failure: z17.enum(["notify", "cancel_remaining", "block"]).optional().describe("Partial failure handling for action=create_group (default: notify)")
|
|
2629
2665
|
}
|
|
2630
2666
|
},
|
|
2631
2667
|
async (input, extra) => {
|
|
@@ -2635,14 +2671,57 @@ function registerTask(server) {
|
|
|
2635
2671
|
if (!taskId) return errorResult2("verify_dispatch requires task_id");
|
|
2636
2672
|
try {
|
|
2637
2673
|
const { checkDispatchStatus } = await import("./dispatch-ack-JYCKAWKZ.js");
|
|
2638
|
-
const
|
|
2674
|
+
const result4 = checkDispatchStatus(taskId);
|
|
2639
2675
|
return {
|
|
2640
|
-
content: [{ type: "text", text: JSON.stringify(
|
|
2676
|
+
content: [{ type: "text", text: JSON.stringify(result4, null, 2) }]
|
|
2641
2677
|
};
|
|
2642
2678
|
} catch (err) {
|
|
2643
2679
|
return errorResult2(`verify_dispatch failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
2644
2680
|
}
|
|
2645
2681
|
}
|
|
2682
|
+
if (action === "create_group") {
|
|
2683
|
+
const args = input;
|
|
2684
|
+
const missing2 = missingRequiredFields2(args, REQUIRED_FIELDS2.create_group);
|
|
2685
|
+
if (missing2.length > 0) return errorResult2(`task action "create_group" missing required field(s): ${missing2.join(", ")}`);
|
|
2686
|
+
try {
|
|
2687
|
+
const { createTaskGroup } = await import("./tasks-crud-AVVOQKZY.js");
|
|
2688
|
+
const group = await createTaskGroup({
|
|
2689
|
+
title: args.title,
|
|
2690
|
+
coordinator: args.coordinator,
|
|
2691
|
+
sessionScope: args.session_scope ?? void 0,
|
|
2692
|
+
projectName: args.project_name ?? void 0,
|
|
2693
|
+
timeoutMinutes: args.timeout_minutes ?? void 0,
|
|
2694
|
+
onPartialFailure: args.on_partial_failure ?? void 0
|
|
2695
|
+
});
|
|
2696
|
+
return { content: [{ type: "text", text: JSON.stringify(group, null, 2) }] };
|
|
2697
|
+
} catch (err) {
|
|
2698
|
+
return errorResult2(`create_group failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
2699
|
+
}
|
|
2700
|
+
}
|
|
2701
|
+
if (action === "group_status") {
|
|
2702
|
+
const args = input;
|
|
2703
|
+
const missing2 = missingRequiredFields2(args, REQUIRED_FIELDS2.group_status);
|
|
2704
|
+
if (missing2.length > 0) return errorResult2(`task action "group_status" missing required field(s): ${missing2.join(", ")}`);
|
|
2705
|
+
try {
|
|
2706
|
+
const { getGroupStatus } = await import("./tasks-crud-AVVOQKZY.js");
|
|
2707
|
+
const status2 = await getGroupStatus(args.group_id);
|
|
2708
|
+
return { content: [{ type: "text", text: JSON.stringify(status2, null, 2) }] };
|
|
2709
|
+
} catch (err) {
|
|
2710
|
+
return errorResult2(`group_status failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
2711
|
+
}
|
|
2712
|
+
}
|
|
2713
|
+
if (action === "group_results") {
|
|
2714
|
+
const args = input;
|
|
2715
|
+
const missing2 = missingRequiredFields2(args, REQUIRED_FIELDS2.group_results);
|
|
2716
|
+
if (missing2.length > 0) return errorResult2(`task action "group_results" missing required field(s): ${missing2.join(", ")}`);
|
|
2717
|
+
try {
|
|
2718
|
+
const { getGroupResults } = await import("./tasks-crud-AVVOQKZY.js");
|
|
2719
|
+
const results = await getGroupResults(args.group_id);
|
|
2720
|
+
return { content: [{ type: "text", text: JSON.stringify(results, null, 2) }] };
|
|
2721
|
+
} catch (err) {
|
|
2722
|
+
return errorResult2(`group_results failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
2723
|
+
}
|
|
2724
|
+
}
|
|
2646
2725
|
const legacyToolName = ACTION_TO_LEGACY_TOOL2[action];
|
|
2647
2726
|
if (!legacyToolName) {
|
|
2648
2727
|
return errorResult2(`Unknown task action: ${String(input.action)}`);
|
|
@@ -2667,7 +2746,28 @@ function registerTask(server) {
|
|
|
2667
2746
|
if (!legacyTool) {
|
|
2668
2747
|
return errorResult2(`Legacy task handler not found for action "${action}" (${legacyToolName})`);
|
|
2669
2748
|
}
|
|
2670
|
-
|
|
2749
|
+
const result3 = await legacyTool.handler(legacyArgs, extra);
|
|
2750
|
+
if (action === "create" && legacyArgs.group_id && !result3.isError) {
|
|
2751
|
+
try {
|
|
2752
|
+
const resultText = result3.content?.[0]?.text ?? "";
|
|
2753
|
+
const parsed = JSON.parse(resultText);
|
|
2754
|
+
const taskId = parsed?.id;
|
|
2755
|
+
if (taskId) {
|
|
2756
|
+
const { getClient: getClient2 } = await import("./lib/database.js");
|
|
2757
|
+
const client = getClient2();
|
|
2758
|
+
await client.execute({
|
|
2759
|
+
sql: "UPDATE tasks SET group_id = ? WHERE id = ?",
|
|
2760
|
+
args: [String(legacyArgs.group_id), taskId]
|
|
2761
|
+
});
|
|
2762
|
+
parsed.group_id = String(legacyArgs.group_id);
|
|
2763
|
+
return {
|
|
2764
|
+
content: [{ type: "text", text: JSON.stringify(parsed, null, 2) }]
|
|
2765
|
+
};
|
|
2766
|
+
}
|
|
2767
|
+
} catch {
|
|
2768
|
+
}
|
|
2769
|
+
}
|
|
2770
|
+
return result3;
|
|
2671
2771
|
}
|
|
2672
2772
|
);
|
|
2673
2773
|
}
|
|
@@ -3422,8 +3522,8 @@ function registerIngestDocument(server) {
|
|
|
3422
3522
|
},
|
|
3423
3523
|
async (input) => {
|
|
3424
3524
|
try {
|
|
3425
|
-
const { assertFeature: assertFeature2 } = await import("./plan-limits-
|
|
3426
|
-
const { assertMemoryLimit: assertMemoryLimit2 } = await import("./plan-limits-
|
|
3525
|
+
const { assertFeature: assertFeature2 } = await import("./plan-limits-EA3VBZJ2.js");
|
|
3526
|
+
const { assertMemoryLimit: assertMemoryLimit2 } = await import("./plan-limits-EA3VBZJ2.js");
|
|
3427
3527
|
await assertFeature2("wiki");
|
|
3428
3528
|
await assertMemoryLimit2();
|
|
3429
3529
|
const result3 = await ingestDocument(input);
|
|
@@ -4621,12 +4721,12 @@ function registerExportGraph(server) {
|
|
|
4621
4721
|
}
|
|
4622
4722
|
const html = await exportGraphHTML(client);
|
|
4623
4723
|
const fs = await import("fs");
|
|
4624
|
-
const
|
|
4724
|
+
const path18 = await import("path");
|
|
4625
4725
|
const os5 = await import("os");
|
|
4626
|
-
const outDir =
|
|
4726
|
+
const outDir = path18.join(os5.homedir(), ".exe-os", "exports");
|
|
4627
4727
|
fs.mkdirSync(outDir, { recursive: true });
|
|
4628
4728
|
const timestamp = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-").slice(0, 19);
|
|
4629
|
-
const filePath =
|
|
4729
|
+
const filePath = path18.join(outDir, `graph-${timestamp}.html`);
|
|
4630
4730
|
fs.writeFileSync(filePath, html, "utf-8");
|
|
4631
4731
|
return {
|
|
4632
4732
|
content: [
|
|
@@ -5540,7 +5640,7 @@ async function getAgentSessionLoad() {
|
|
|
5540
5640
|
return { sessions: [], totalLive: 0, busySessions: 0, idleSessions: 0 };
|
|
5541
5641
|
}
|
|
5542
5642
|
const { getClient: getClient2 } = await import("./lib/database.js");
|
|
5543
|
-
const { sessionScopeFilter: sessionScopeFilter2 } = await import("./task-scope-
|
|
5643
|
+
const { sessionScopeFilter: sessionScopeFilter2 } = await import("./task-scope-NM2C2QZX.js");
|
|
5544
5644
|
const client = getClient2();
|
|
5545
5645
|
const scope = sessionScopeFilter2();
|
|
5546
5646
|
for (const s of liveAgentSessions) {
|
|
@@ -6571,9 +6671,9 @@ var HostingerApiClient = class {
|
|
|
6571
6671
|
}
|
|
6572
6672
|
this.lastRequestTime = Date.now();
|
|
6573
6673
|
}
|
|
6574
|
-
async request(method,
|
|
6674
|
+
async request(method, path18, body) {
|
|
6575
6675
|
await this.rateLimit();
|
|
6576
|
-
const url = `${this.baseUrl}${
|
|
6676
|
+
const url = `${this.baseUrl}${path18}`;
|
|
6577
6677
|
const headers = {
|
|
6578
6678
|
Authorization: `Bearer ${this.apiKey}`,
|
|
6579
6679
|
"Content-Type": "application/json",
|
|
@@ -7190,7 +7290,7 @@ function registerCreateTrigger(server) {
|
|
|
7190
7290
|
}
|
|
7191
7291
|
},
|
|
7192
7292
|
async ({ name, event, conditions, actions, project, enabled, schedule, query }) => {
|
|
7193
|
-
const { assertFeature: assertFeature2 } = await import("./plan-limits-
|
|
7293
|
+
const { assertFeature: assertFeature2 } = await import("./plan-limits-EA3VBZJ2.js");
|
|
7194
7294
|
const gatedActions = {
|
|
7195
7295
|
send_whatsapp: "external_agents",
|
|
7196
7296
|
update_wiki: "wiki"
|
|
@@ -8094,7 +8194,7 @@ function registerConfig(server) {
|
|
|
8094
8194
|
const existing = loadEmployeesSync2();
|
|
8095
8195
|
if (existing.some((e) => e.name === employeeName)) return errorResult8(`Employee "${employeeName}" already exists.`);
|
|
8096
8196
|
try {
|
|
8097
|
-
const { assertEmployeeLimit: assertEmployeeLimit2 } = await import("./plan-limits-
|
|
8197
|
+
const { assertEmployeeLimit: assertEmployeeLimit2 } = await import("./plan-limits-EA3VBZJ2.js");
|
|
8098
8198
|
await assertEmployeeLimit2();
|
|
8099
8199
|
} catch (e) {
|
|
8100
8200
|
return errorResult8(e instanceof Error ? e.message : "Employee limit reached.");
|
|
@@ -8110,10 +8210,10 @@ function registerConfig(server) {
|
|
|
8110
8210
|
const { getTemplate: getIdentityTemplate, getTemplateForTitle } = await import("./lib/identity-templates.js");
|
|
8111
8211
|
const { identityPath } = await import("./lib/identity.js");
|
|
8112
8212
|
const { existsSync: existsSync10, mkdirSync: mkdirSync4, writeFileSync: writeFileSync5 } = await import("fs");
|
|
8113
|
-
const
|
|
8213
|
+
const path18 = await import("path");
|
|
8114
8214
|
const template = getIdentityTemplate(role) ?? getTemplateForTitle(role);
|
|
8115
8215
|
const idPath = identityPath(employeeName);
|
|
8116
|
-
const dir =
|
|
8216
|
+
const dir = path18.dirname(idPath);
|
|
8117
8217
|
if (!existsSync10(dir)) mkdirSync4(dir, { recursive: true });
|
|
8118
8218
|
if (template) {
|
|
8119
8219
|
writeFileSync5(idPath, template.replace(/^agent_id: \w+/m, `agent_id: ${employeeName}`), "utf-8");
|
|
@@ -8135,7 +8235,7 @@ You are ${employeeName}. Role: ${role}.`, "utf-8");
|
|
|
8135
8235
|
}
|
|
8136
8236
|
try {
|
|
8137
8237
|
const { generateSessionWrappers } = await import("./lib/session-wrappers.js");
|
|
8138
|
-
const { resolvePackageRoot } = await import("./installer-
|
|
8238
|
+
const { resolvePackageRoot } = await import("./installer-MWLYK37L.js");
|
|
8139
8239
|
generateSessionWrappers(resolvePackageRoot());
|
|
8140
8240
|
} catch {
|
|
8141
8241
|
}
|
|
@@ -8171,7 +8271,7 @@ function registerListWikiPages(server) {
|
|
|
8171
8271
|
}
|
|
8172
8272
|
},
|
|
8173
8273
|
async ({ workspace, folder }) => {
|
|
8174
|
-
const { assertFeature: assertFeature2 } = await import("./plan-limits-
|
|
8274
|
+
const { assertFeature: assertFeature2 } = await import("./plan-limits-EA3VBZJ2.js");
|
|
8175
8275
|
await assertFeature2("wiki");
|
|
8176
8276
|
const apiUrl = process.env.EXE_WIKI_API_URL;
|
|
8177
8277
|
const apiKey = process.env.EXE_WIKI_API_KEY;
|
|
@@ -8271,7 +8371,7 @@ function registerGetWikiPage(server) {
|
|
|
8271
8371
|
}
|
|
8272
8372
|
},
|
|
8273
8373
|
async ({ workspace, document_id, title }) => {
|
|
8274
|
-
const { assertFeature: assertFeature2 } = await import("./plan-limits-
|
|
8374
|
+
const { assertFeature: assertFeature2 } = await import("./plan-limits-EA3VBZJ2.js");
|
|
8275
8375
|
await assertFeature2("wiki");
|
|
8276
8376
|
const apiUrl = process.env.EXE_WIKI_API_URL;
|
|
8277
8377
|
const apiKey = process.env.EXE_WIKI_API_KEY;
|
|
@@ -8466,7 +8566,7 @@ function registerWiki(server) {
|
|
|
8466
8566
|
if (!legacyToolName) return errorResult9(`Unknown wiki action: ${String(input.action)}`);
|
|
8467
8567
|
const { action: _action, user_id, ...legacyArgs } = input;
|
|
8468
8568
|
if (user_id && legacyArgs.workspace) {
|
|
8469
|
-
const { checkWikiAccess } = await import("./wiki-acl-
|
|
8569
|
+
const { checkWikiAccess } = await import("./wiki-acl-QSO37KYW.js");
|
|
8470
8570
|
const { allowed } = await checkWikiAccess(
|
|
8471
8571
|
String(user_id),
|
|
8472
8572
|
String(legacyArgs.workspace),
|
|
@@ -8792,7 +8892,7 @@ Use /exe-forget to remove any that this supersedes.`;
|
|
|
8792
8892
|
return { content: [{ type: "text", text: `Behavior not found: ${behavior_id}` }], isError: true };
|
|
8793
8893
|
}
|
|
8794
8894
|
const row2 = result4.rows[0];
|
|
8795
|
-
const { reactivateBehavior: reactivateBehavior2 } = await import("./behaviors-
|
|
8895
|
+
const { reactivateBehavior: reactivateBehavior2 } = await import("./behaviors-4PGM7IJJ.js");
|
|
8796
8896
|
const wasReactivated = await reactivateBehavior2(behavior_id);
|
|
8797
8897
|
if (!wasReactivated) {
|
|
8798
8898
|
return { content: [{ type: "text", text: `Behavior ${behavior_id} is already active.` }] };
|
|
@@ -9730,7 +9830,7 @@ function registerWorkflowTool(server) {
|
|
|
9730
9830
|
getWorkflowInstance,
|
|
9731
9831
|
listWorkflowInstances,
|
|
9732
9832
|
approveWorkflowStep
|
|
9733
|
-
} = await import("./workflow-engine-
|
|
9833
|
+
} = await import("./workflow-engine-TZKS5QB7.js");
|
|
9734
9834
|
try {
|
|
9735
9835
|
switch (input.action) {
|
|
9736
9836
|
case "create_workflow": {
|
|
@@ -10163,7 +10263,7 @@ function registerCreateBugReport(server) {
|
|
|
10163
10263
|
const version = package_version ?? "unknown";
|
|
10164
10264
|
let metricsSnapshot = "";
|
|
10165
10265
|
try {
|
|
10166
|
-
const { getOrchestrationMetrics, formatOrchestrationMetrics } = await import("./orchestration-events-
|
|
10266
|
+
const { getOrchestrationMetrics, formatOrchestrationMetrics } = await import("./orchestration-events-7XAYQ2MT.js");
|
|
10167
10267
|
const sinceIso = new Date(Date.now() - 60 * 60 * 1e3).toISOString();
|
|
10168
10268
|
const metrics = await getOrchestrationMetrics({ sinceIso });
|
|
10169
10269
|
if (metrics.totalEvents > 0) {
|
|
@@ -10961,7 +11061,7 @@ function registerCodeContext(server) {
|
|
|
10961
11061
|
const index = buildCodeContextIndex(opts);
|
|
10962
11062
|
let graphExtract;
|
|
10963
11063
|
try {
|
|
10964
|
-
const { autoExtractGraphEntities } = await import("./graph-auto-extract-
|
|
11064
|
+
const { autoExtractGraphEntities } = await import("./graph-auto-extract-VUBFSL6D.js");
|
|
10965
11065
|
graphExtract = await autoExtractGraphEntities(opts.projectRoot);
|
|
10966
11066
|
} catch {
|
|
10967
11067
|
}
|
|
@@ -11455,208 +11555,8 @@ Upstream status: ${upstreamStatus}`
|
|
|
11455
11555
|
);
|
|
11456
11556
|
}
|
|
11457
11557
|
|
|
11458
|
-
// src/mcp/tools/import-conversations.ts
|
|
11459
|
-
import { z as z93 } from "zod";
|
|
11460
|
-
import crypto7 from "crypto";
|
|
11461
|
-
import { readFile as readFile3, readdir as readdir2, stat } from "fs/promises";
|
|
11462
|
-
import path18 from "path";
|
|
11463
|
-
var DEFAULT_MAX_MEMORIES = 5e4;
|
|
11464
|
-
var YIELD_INTERVAL = 50;
|
|
11465
|
-
async function parseFile(filePath, format2) {
|
|
11466
|
-
const content = await readFile3(filePath, "utf-8");
|
|
11467
|
-
const detectedFormat = format2 === "auto" ? detectFormat(content, filePath) : format2;
|
|
11468
|
-
let conversations;
|
|
11469
|
-
switch (detectedFormat) {
|
|
11470
|
-
case "chatgpt":
|
|
11471
|
-
conversations = parseChatGPT(content, filePath);
|
|
11472
|
-
break;
|
|
11473
|
-
case "claude":
|
|
11474
|
-
conversations = parseClaude(content, filePath);
|
|
11475
|
-
break;
|
|
11476
|
-
case "markdown":
|
|
11477
|
-
case "generic":
|
|
11478
|
-
default:
|
|
11479
|
-
conversations = parseGeneric(content, filePath);
|
|
11480
|
-
break;
|
|
11481
|
-
}
|
|
11482
|
-
return { conversations, detectedFormat };
|
|
11483
|
-
}
|
|
11484
|
-
async function collectFiles(dirPath) {
|
|
11485
|
-
const entries = await readdir2(dirPath, { withFileTypes: true });
|
|
11486
|
-
const files = [];
|
|
11487
|
-
for (const entry of entries) {
|
|
11488
|
-
const full = path18.join(dirPath, entry.name);
|
|
11489
|
-
if (entry.isDirectory()) {
|
|
11490
|
-
files.push(...await collectFiles(full));
|
|
11491
|
-
} else if (entry.isFile()) {
|
|
11492
|
-
const ext = path18.extname(entry.name).toLowerCase();
|
|
11493
|
-
if ([".json", ".md", ".markdown", ".txt"].includes(ext)) {
|
|
11494
|
-
files.push(full);
|
|
11495
|
-
}
|
|
11496
|
-
}
|
|
11497
|
-
}
|
|
11498
|
-
return files;
|
|
11499
|
-
}
|
|
11500
|
-
function registerImportConversations(server) {
|
|
11501
|
-
server.registerTool(
|
|
11502
|
-
"import_conversations",
|
|
11503
|
-
{
|
|
11504
|
-
title: "Import Conversations",
|
|
11505
|
-
description: "Import conversation history from ChatGPT, Claude, or generic exports. Parses conversations, extracts keywords and graph entities, stores as memories. Supports conversations.json (ChatGPT), Claude JSON export, markdown files, and generic JSON arrays. Deduplicates by content hash.",
|
|
11506
|
-
inputSchema: {
|
|
11507
|
-
path: z93.string().describe("File path or directory to import from"),
|
|
11508
|
-
format: z93.enum(["chatgpt", "claude", "generic", "markdown", "auto"]).default("auto").describe("Conversation format. 'auto' detects from content."),
|
|
11509
|
-
project_name: z93.string().optional().describe("Project name for memory scoping"),
|
|
11510
|
-
dry_run: z93.boolean().default(false).describe("Parse and report counts without storing"),
|
|
11511
|
-
force: z93.boolean().default(false).describe("Override the 50K memory safety cap"),
|
|
11512
|
-
max_memories: z93.number().optional().describe("Custom memory cap (default 50000)")
|
|
11513
|
-
}
|
|
11514
|
-
},
|
|
11515
|
-
async ({ path: inputPath, format: format2, project_name, dry_run, force, max_memories }) => {
|
|
11516
|
-
const { agentId, agentRole } = getActiveAgent();
|
|
11517
|
-
const cap = max_memories ?? DEFAULT_MAX_MEMORIES;
|
|
11518
|
-
const resolvedPath = path18.resolve(inputPath);
|
|
11519
|
-
let files;
|
|
11520
|
-
try {
|
|
11521
|
-
const stats = await stat(resolvedPath);
|
|
11522
|
-
if (stats.isDirectory()) {
|
|
11523
|
-
files = await collectFiles(resolvedPath);
|
|
11524
|
-
} else {
|
|
11525
|
-
files = [resolvedPath];
|
|
11526
|
-
}
|
|
11527
|
-
} catch (err) {
|
|
11528
|
-
return {
|
|
11529
|
-
content: [{
|
|
11530
|
-
type: "text",
|
|
11531
|
-
text: `Path not found: ${resolvedPath}
|
|
11532
|
-
${err instanceof Error ? err.message : String(err)}`
|
|
11533
|
-
}],
|
|
11534
|
-
isError: true
|
|
11535
|
-
};
|
|
11536
|
-
}
|
|
11537
|
-
if (files.length === 0) {
|
|
11538
|
-
return {
|
|
11539
|
-
content: [{
|
|
11540
|
-
type: "text",
|
|
11541
|
-
text: `No importable files found in ${resolvedPath}. Supported: .json, .md, .markdown, .txt`
|
|
11542
|
-
}],
|
|
11543
|
-
isError: true
|
|
11544
|
-
};
|
|
11545
|
-
}
|
|
11546
|
-
let totalConversations = 0;
|
|
11547
|
-
let allDetectedFormat = "generic";
|
|
11548
|
-
const allConversations = [];
|
|
11549
|
-
for (const file of files) {
|
|
11550
|
-
try {
|
|
11551
|
-
const { conversations, detectedFormat } = await parseFile(file, format2);
|
|
11552
|
-
allConversations.push(...conversations);
|
|
11553
|
-
totalConversations += conversations.length;
|
|
11554
|
-
allDetectedFormat = detectedFormat;
|
|
11555
|
-
} catch (err) {
|
|
11556
|
-
console.warn(`[import] Skipping ${file}: ${err instanceof Error ? err.message : String(err)}`);
|
|
11557
|
-
}
|
|
11558
|
-
}
|
|
11559
|
-
if (allConversations.length === 0) {
|
|
11560
|
-
return {
|
|
11561
|
-
content: [{
|
|
11562
|
-
type: "text",
|
|
11563
|
-
text: `No conversations found in ${files.length} file(s). Format: ${format2}. Path: ${resolvedPath}`
|
|
11564
|
-
}]
|
|
11565
|
-
};
|
|
11566
|
-
}
|
|
11567
|
-
const memories = conversationsToMemories(allConversations, allDetectedFormat);
|
|
11568
|
-
if (memories.length > cap && !force) {
|
|
11569
|
-
return {
|
|
11570
|
-
content: [{
|
|
11571
|
-
type: "text",
|
|
11572
|
-
text: `Import would create ${memories.length} memories (cap: ${cap}). Use force=true to override.
|
|
11573
|
-
Files: ${files.length} | Conversations: ${totalConversations} | Format: ${allDetectedFormat}`
|
|
11574
|
-
}]
|
|
11575
|
-
};
|
|
11576
|
-
}
|
|
11577
|
-
if (dry_run) {
|
|
11578
|
-
return {
|
|
11579
|
-
content: [{
|
|
11580
|
-
type: "text",
|
|
11581
|
-
text: `[dry run] Import summary:
|
|
11582
|
-
Files: ${files.length}
|
|
11583
|
-
Format: ${allDetectedFormat}
|
|
11584
|
-
Conversations: ${totalConversations}
|
|
11585
|
-
Memories to create: ${memories.length}
|
|
11586
|
-
Path: ${resolvedPath}`
|
|
11587
|
-
}]
|
|
11588
|
-
};
|
|
11589
|
-
}
|
|
11590
|
-
let stored = 0;
|
|
11591
|
-
let skipped = 0;
|
|
11592
|
-
const projectName = project_name ?? "import";
|
|
11593
|
-
const sessionId = process.env.SESSION_ID ?? "import";
|
|
11594
|
-
for (let i = 0; i < memories.length; i++) {
|
|
11595
|
-
const mem = memories[i];
|
|
11596
|
-
const keywords = extractKeywords(mem.text);
|
|
11597
|
-
const graphResult = extractMemoryGraph(
|
|
11598
|
-
mem.text,
|
|
11599
|
-
agentId,
|
|
11600
|
-
projectName,
|
|
11601
|
-
"import_conversations"
|
|
11602
|
-
);
|
|
11603
|
-
const memoryId = crypto7.randomUUID();
|
|
11604
|
-
try {
|
|
11605
|
-
await writeMemory({
|
|
11606
|
-
id: memoryId,
|
|
11607
|
-
agent_id: agentId,
|
|
11608
|
-
agent_role: agentRole,
|
|
11609
|
-
session_id: sessionId,
|
|
11610
|
-
timestamp: mem.metadata.original_timestamp ?? (/* @__PURE__ */ new Date()).toISOString(),
|
|
11611
|
-
tool_name: "import_conversations",
|
|
11612
|
-
project_name: projectName,
|
|
11613
|
-
has_error: false,
|
|
11614
|
-
raw_text: mem.text,
|
|
11615
|
-
vector: null,
|
|
11616
|
-
// NULL vectors — backfill later
|
|
11617
|
-
source_path: mem.metadata.source_path,
|
|
11618
|
-
source_type: "conversation_import",
|
|
11619
|
-
memory_type: "conversation",
|
|
11620
|
-
tier: 3,
|
|
11621
|
-
// Passive ingestion
|
|
11622
|
-
importance: 4,
|
|
11623
|
-
// Imported conversations are moderate importance
|
|
11624
|
-
intent: "import",
|
|
11625
|
-
domain: "conversation",
|
|
11626
|
-
keywords: keywordsToString(keywords),
|
|
11627
|
-
referenced_entities: graphResult.entities.length > 0 ? JSON.stringify(graphResult.entities.map((e) => e.name)) : null
|
|
11628
|
-
});
|
|
11629
|
-
stored++;
|
|
11630
|
-
} catch {
|
|
11631
|
-
skipped++;
|
|
11632
|
-
}
|
|
11633
|
-
if ((i + 1) % YIELD_INTERVAL === 0) {
|
|
11634
|
-
await flushBatch();
|
|
11635
|
-
await new Promise((r) => setTimeout(r, 0));
|
|
11636
|
-
if ((i + 1) % (YIELD_INTERVAL * 10) === 0) {
|
|
11637
|
-
console.log(`[import] ${i + 1}/${memories.length} memories processed, ${stored} stored`);
|
|
11638
|
-
}
|
|
11639
|
-
}
|
|
11640
|
-
}
|
|
11641
|
-
await flushBatch();
|
|
11642
|
-
return {
|
|
11643
|
-
content: [{
|
|
11644
|
-
type: "text",
|
|
11645
|
-
text: `Import complete.
|
|
11646
|
-
Files: ${files.length}
|
|
11647
|
-
Format: ${allDetectedFormat}
|
|
11648
|
-
Conversations: ${totalConversations}
|
|
11649
|
-
Memories stored: ${stored}
|
|
11650
|
-
Skipped (duplicates): ${skipped}
|
|
11651
|
-
Path: ${resolvedPath}`
|
|
11652
|
-
}]
|
|
11653
|
-
};
|
|
11654
|
-
}
|
|
11655
|
-
);
|
|
11656
|
-
}
|
|
11657
|
-
|
|
11658
11558
|
// src/mcp/tools/decision.ts
|
|
11659
|
-
import { z as
|
|
11559
|
+
import { z as z93 } from "zod";
|
|
11660
11560
|
function buildHandlers6() {
|
|
11661
11561
|
const tools = /* @__PURE__ */ new Map();
|
|
11662
11562
|
const fake = {
|
|
@@ -11680,12 +11580,12 @@ function registerDecision(server) {
|
|
|
11680
11580
|
title: "Decision",
|
|
11681
11581
|
description: "Store or retrieve authoritative decisions. Actions: store (persist a decision by domain), get (look up a decision by domain/query).",
|
|
11682
11582
|
inputSchema: {
|
|
11683
|
-
action:
|
|
11684
|
-
domain:
|
|
11685
|
-
decision:
|
|
11686
|
-
rationale:
|
|
11687
|
-
query:
|
|
11688
|
-
limit:
|
|
11583
|
+
action: z93.enum(["store", "get"]).describe("Decision operation"),
|
|
11584
|
+
domain: z93.string().optional().describe("Decision domain (e.g. 'architecture', 'hiring')"),
|
|
11585
|
+
decision: z93.string().optional().describe("Decision text for action=store"),
|
|
11586
|
+
rationale: z93.string().optional().describe("Why this decision was made (action=store)"),
|
|
11587
|
+
query: z93.string().optional().describe("Search query for action=get"),
|
|
11588
|
+
limit: z93.coerce.number().optional().describe("Max results for action=get")
|
|
11689
11589
|
}
|
|
11690
11590
|
},
|
|
11691
11591
|
async (input, extra) => {
|
|
@@ -11701,7 +11601,7 @@ function registerDecision(server) {
|
|
|
11701
11601
|
}
|
|
11702
11602
|
|
|
11703
11603
|
// src/mcp/tools/session.ts
|
|
11704
|
-
import { z as
|
|
11604
|
+
import { z as z94 } from "zod";
|
|
11705
11605
|
function buildHandlers7() {
|
|
11706
11606
|
const tools = /* @__PURE__ */ new Map();
|
|
11707
11607
|
const fake = {
|
|
@@ -11725,9 +11625,9 @@ function registerSession(server) {
|
|
|
11725
11625
|
title: "Session",
|
|
11726
11626
|
description: "Session inspection tools. Actions: events (get session event log), last_response (get the most recent assistant response text).",
|
|
11727
11627
|
inputSchema: {
|
|
11728
|
-
action:
|
|
11729
|
-
session_id:
|
|
11730
|
-
limit:
|
|
11628
|
+
action: z94.enum(["events", "last_response"]).describe("Session operation"),
|
|
11629
|
+
session_id: z94.string().optional().describe("Session ID for action=events"),
|
|
11630
|
+
limit: z94.coerce.number().optional().describe("Max events for action=events")
|
|
11731
11631
|
}
|
|
11732
11632
|
},
|
|
11733
11633
|
async (input, extra) => {
|
|
@@ -11743,7 +11643,7 @@ function registerSession(server) {
|
|
|
11743
11643
|
}
|
|
11744
11644
|
|
|
11745
11645
|
// src/mcp/tools/support-consolidated.ts
|
|
11746
|
-
import { z as
|
|
11646
|
+
import { z as z95 } from "zod";
|
|
11747
11647
|
function buildHandlers8() {
|
|
11748
11648
|
const tools = /* @__PURE__ */ new Map();
|
|
11749
11649
|
const fake = {
|
|
@@ -11789,7 +11689,7 @@ function registerSupportConsolidated(server) {
|
|
|
11789
11689
|
title: "Support",
|
|
11790
11690
|
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, send_telemetry. Use 'product' param to file bugs for any AskExe product (exe-os, exe-create, exe-wiki, etc.).",
|
|
11791
11691
|
inputSchema: {
|
|
11792
|
-
action:
|
|
11692
|
+
action: z95.enum([
|
|
11793
11693
|
"create_bug",
|
|
11794
11694
|
"create_feature",
|
|
11795
11695
|
"update_bug",
|
|
@@ -11806,35 +11706,35 @@ function registerSupportConsolidated(server) {
|
|
|
11806
11706
|
"test",
|
|
11807
11707
|
"send_telemetry"
|
|
11808
11708
|
]).describe("Support operation"),
|
|
11809
|
-
title:
|
|
11810
|
-
description:
|
|
11811
|
-
steps_to_reproduce:
|
|
11812
|
-
expected_behavior:
|
|
11813
|
-
actual_behavior:
|
|
11814
|
-
severity:
|
|
11815
|
-
product:
|
|
11816
|
-
use_case:
|
|
11817
|
-
proposed_solution:
|
|
11818
|
-
priority:
|
|
11819
|
-
id:
|
|
11820
|
-
status:
|
|
11821
|
-
classification:
|
|
11822
|
-
resolution:
|
|
11823
|
-
notes:
|
|
11824
|
-
triage_notes:
|
|
11825
|
-
linked_task_id:
|
|
11826
|
-
linked_commit:
|
|
11827
|
-
fixed_version:
|
|
11828
|
-
shipped_version:
|
|
11829
|
-
limit:
|
|
11830
|
-
since_hours:
|
|
11709
|
+
title: z95.string().optional().describe("Bug/feature title"),
|
|
11710
|
+
description: z95.string().optional().describe("Bug/feature description"),
|
|
11711
|
+
steps_to_reproduce: z95.string().optional().describe("Steps to reproduce (bugs)"),
|
|
11712
|
+
expected_behavior: z95.string().optional().describe("Expected behavior (bugs)"),
|
|
11713
|
+
actual_behavior: z95.string().optional().describe("Actual behavior (bugs)"),
|
|
11714
|
+
severity: z95.string().optional().describe("Severity: p0/p1/p2/p3"),
|
|
11715
|
+
product: z95.string().optional().describe("Product: exe-os (default), exe-create, exe-wiki, exe-gateway, exe-crm, exe-build"),
|
|
11716
|
+
use_case: z95.string().optional().describe("Use case (features)"),
|
|
11717
|
+
proposed_solution: z95.string().optional().describe("Proposed solution (features)"),
|
|
11718
|
+
priority: z95.string().optional().describe("Priority (features)"),
|
|
11719
|
+
id: z95.string().optional().describe("Bug/feature ID for get/triage"),
|
|
11720
|
+
status: z95.string().optional().describe("Filter by status"),
|
|
11721
|
+
classification: z95.string().optional().describe("Triage classification"),
|
|
11722
|
+
resolution: z95.string().optional().describe("Triage resolution"),
|
|
11723
|
+
notes: z95.string().optional().describe("Triage notes (mapped to triage_notes for bug/feature triage)"),
|
|
11724
|
+
triage_notes: z95.string().optional().describe("Triage notes (legacy field name)"),
|
|
11725
|
+
linked_task_id: z95.string().optional().describe("Linked task ID for triage"),
|
|
11726
|
+
linked_commit: z95.string().optional().describe("Linked commit hash for triage"),
|
|
11727
|
+
fixed_version: z95.string().optional().describe("Version that fixes this bug"),
|
|
11728
|
+
shipped_version: z95.string().optional().describe("Version that ships this feature (features only)"),
|
|
11729
|
+
limit: z95.coerce.number().optional().describe("Max results"),
|
|
11730
|
+
since_hours: z95.coerce.number().optional().describe("Telemetry window in hours for send_telemetry")
|
|
11831
11731
|
}
|
|
11832
11732
|
},
|
|
11833
11733
|
async (input, extra) => {
|
|
11834
11734
|
const action = input.action;
|
|
11835
11735
|
if (action === "send_telemetry") {
|
|
11836
11736
|
try {
|
|
11837
|
-
const { sendTelemetry, isTelemetryEnabled } = await import("./telemetry-upload-
|
|
11737
|
+
const { sendTelemetry, isTelemetryEnabled } = await import("./telemetry-upload-ZJ4UP2RP.js");
|
|
11838
11738
|
if (!isTelemetryEnabled()) {
|
|
11839
11739
|
return { content: [{ type: "text", text: "Telemetry disabled (EXE_TELEMETRY=0)." }] };
|
|
11840
11740
|
}
|
|
@@ -11919,7 +11819,7 @@ function registerSupportConsolidated(server) {
|
|
|
11919
11819
|
}
|
|
11920
11820
|
|
|
11921
11821
|
// src/mcp/tools/diagnostics.ts
|
|
11922
|
-
import { z as
|
|
11822
|
+
import { z as z96 } from "zod";
|
|
11923
11823
|
function buildHandlers9() {
|
|
11924
11824
|
const tools = /* @__PURE__ */ new Map();
|
|
11925
11825
|
const fake = {
|
|
@@ -11940,17 +11840,17 @@ function registerDiagnostics(server) {
|
|
|
11940
11840
|
title: "Diagnostics",
|
|
11941
11841
|
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).`,
|
|
11942
11842
|
inputSchema: {
|
|
11943
|
-
action:
|
|
11843
|
+
action: z96.string().describe(`Diagnostic operation: ${toolNames.join(", ")}`),
|
|
11944
11844
|
// Pass-through params used by various sub-tools
|
|
11945
|
-
agent_id:
|
|
11946
|
-
name:
|
|
11947
|
-
new_name:
|
|
11948
|
-
query:
|
|
11949
|
-
format:
|
|
11950
|
-
limit:
|
|
11951
|
-
from_agent_id:
|
|
11952
|
-
to_agent_id:
|
|
11953
|
-
dry_run:
|
|
11845
|
+
agent_id: z96.string().optional().describe("Agent to probe (drift). Defaults to all agents."),
|
|
11846
|
+
name: z96.string().optional().describe("Employee name (rename_employee)"),
|
|
11847
|
+
new_name: z96.string().optional().describe("New employee name (rename_employee)"),
|
|
11848
|
+
query: z96.string().optional().describe("Search/filter query, or natural language for tool_search"),
|
|
11849
|
+
format: z96.string().optional().describe("Output format"),
|
|
11850
|
+
limit: z96.coerce.number().int().min(1).max(100).optional().describe("Max results for tool_search (default 20)"),
|
|
11851
|
+
from_agent_id: z96.string().optional().describe("Source agent ID to merge from (merge_agent_memories)"),
|
|
11852
|
+
to_agent_id: z96.string().optional().describe("Target agent ID to merge into (merge_agent_memories)"),
|
|
11853
|
+
dry_run: z96.boolean().optional().default(true).describe("Preview mode \u2014 show count without changing (merge_agent_memories). Default: true")
|
|
11954
11854
|
}
|
|
11955
11855
|
},
|
|
11956
11856
|
async (input, extra) => {
|
|
@@ -12302,11 +12202,11 @@ function registerAllTools(server, license, hasKey) {
|
|
|
12302
12202
|
}
|
|
12303
12203
|
if (exposeLegacyDocuments) {
|
|
12304
12204
|
gate("registerIngestDocument", registerIngestDocument);
|
|
12205
|
+
gate("registerImportConversations", registerImportConversations);
|
|
12305
12206
|
gate("registerListDocuments", registerListDocuments);
|
|
12306
12207
|
gate("registerPurgeDocument", registerPurgeDocument);
|
|
12307
12208
|
gate("registerSetDocumentImportance", registerSetDocumentImportance);
|
|
12308
12209
|
gate("registerRerankDocuments", registerRerankDocuments);
|
|
12309
|
-
gate("registerImportConversations", registerImportConversations);
|
|
12310
12210
|
}
|
|
12311
12211
|
if (exposeLegacyMessages) {
|
|
12312
12212
|
gate("registerAcknowledgeMessages", registerAcknowledgeMessages);
|